feat(征求意见): 基础功能
This commit is contained in:
+11
-4
@@ -1,17 +1,18 @@
|
||||
package com.jero.modules.activiti.process.fb.entity;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
import com.jero.common.aspect.annotation.Dict;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
|
||||
/**
|
||||
@@ -71,6 +72,7 @@ public class ProcessFbConsultationList implements Serializable {
|
||||
/**模块负责人意见(1采纳,2部分采纳,3不采纳)*/
|
||||
@Excel(name = "模块负责人意见(1采纳,2部分采纳,3不采纳)", width = 15)
|
||||
@ApiModelProperty(value = "模块负责人意见(1采纳,2部分采纳,3不采纳)")
|
||||
@Dict(dicCode = "consultation_opinion")
|
||||
private java.lang.String isAdopt;
|
||||
@TableField(exist = false)
|
||||
private java.lang.String isAdopt_dictText;
|
||||
@@ -90,4 +92,9 @@ public class ProcessFbConsultationList implements Serializable {
|
||||
@Excel(name = "设计工程师id", width = 15)
|
||||
@ApiModelProperty(value = "设计工程师id")
|
||||
private java.lang.String designEngineerId;
|
||||
/**提出部门*/
|
||||
@Excel(name = "提出部门", width = 15)
|
||||
@ApiModelProperty(value = "提出部门")
|
||||
@TableField(exist = false)
|
||||
private java.lang.String depart;
|
||||
}
|
||||
|
||||
+32
-9
@@ -1,22 +1,19 @@
|
||||
package com.jero.modules.activiti.process.fb.entity;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.util.Date;
|
||||
import java.math.BigDecimal;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
import com.jero.common.aspect.annotation.Dict;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
|
||||
/**
|
||||
@@ -88,4 +85,30 @@ public class ProcessFbStandardConsultation implements Serializable {
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "征求意见结束日期")
|
||||
private java.util.Date consultationDueDate;
|
||||
|
||||
/**征求意见开始日期(征求意见周期)*/
|
||||
@Excel(name = "征求意见开始日期(征求意见周期)", width = 15)
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "征求意见开始日期(征求意见周期)")
|
||||
private java.util.Date consultationBeginDate;
|
||||
|
||||
/**征求意见结束日期(征求意见周期)*/
|
||||
@Excel(name = "征求意见结束日期(征求意见周期)", width = 15)
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "征求意见结束日期(征求意见周期)")
|
||||
private java.util.Date consultationEndDate;
|
||||
|
||||
/**征求意见周期*/
|
||||
@Excel(name = "征求意见周期", width = 15)
|
||||
@ApiModelProperty(value = "征求意见周期")
|
||||
@TableField(exist = false)
|
||||
private java.lang.String consultationPeriod;
|
||||
|
||||
/**标准名称/编号*/
|
||||
@Excel(name = "标准名称/编号", width = 15)
|
||||
@ApiModelProperty(value = "标准名称/编号")
|
||||
@TableField(exist = false)
|
||||
private java.lang.String standardNameNumber;
|
||||
}
|
||||
|
||||
+8
-3
@@ -1,6 +1,7 @@
|
||||
package com.jero.modules.activiti.process.fb.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.jero.common.api.vo.ResultCommon;
|
||||
import com.jero.common.util.UUIDUtils;
|
||||
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
||||
@@ -89,6 +90,7 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
|
||||
// 业务基本信息
|
||||
ProcessFbStandardConsultation businessInfoDTO = processInfoVO.getBusinessInfoDTO().getProcessFbStandardConsultation();
|
||||
businessInfoDTO.setId(UUIDUtils.randomUUID20());
|
||||
businessInfoDTO.setConsultationBeginDate(new Date());
|
||||
save(businessInfoDTO); // 保存业务信息
|
||||
processInfoVO.setBusinessId(businessInfoDTO.getId());
|
||||
|
||||
@@ -237,7 +239,7 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
|
||||
taskService.complete(taskId);
|
||||
|
||||
// 如果流程已经结束
|
||||
endProcess(processInstanceId);
|
||||
endProcess(processInstanceId, businessId);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -557,7 +559,7 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
|
||||
}
|
||||
|
||||
// 如果流程已经结束
|
||||
endProcess(processInstanceId);
|
||||
endProcess(processInstanceId, businessBasicInfo.getId());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -565,9 +567,12 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
|
||||
* @Date: 2023/11/23 13:43
|
||||
* @Description: 流程结束
|
||||
**/
|
||||
private void endProcess(String processInstanceId) {
|
||||
private void endProcess(String processInstanceId, String businessId) {
|
||||
if (processHandleService.isProcessFinish(processInstanceId)) {
|
||||
log.info("流程 {} 已经结束", processInstanceId);
|
||||
update(new LambdaUpdateWrapper<ProcessFbStandardConsultation>()
|
||||
.eq(ProcessFbStandardConsultation::getId, businessId)
|
||||
.set(ProcessFbStandardConsultation::getConsultationEndDate, new Date()));
|
||||
} else {
|
||||
List<Task> taskList = taskService.createTaskQuery().processInstanceId(processInstanceId).list();
|
||||
log.info("还剩 {} 个任务待完成", taskList.size());
|
||||
|
||||
+64
@@ -0,0 +1,64 @@
|
||||
package com.jero.modules.laws.consultation.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.aspect.annotation.AutoLog;
|
||||
import com.jero.common.aspect.annotation.Translation;
|
||||
import com.jero.modules.activiti.process.fb.entity.ProcessFbConsultationList;
|
||||
import com.jero.modules.activiti.process.fb.entity.ProcessFbStandardConsultation;
|
||||
import com.jero.modules.laws.consultation.service.IConsultationService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName: ConsultationController
|
||||
* @Description:
|
||||
* @Author: yjz
|
||||
* @Date: 2023-12-04 09:31
|
||||
* @Version: 1.0
|
||||
**/
|
||||
@Api(tags="征求意见")
|
||||
@RestController
|
||||
@RequestMapping("/laws/consultation")
|
||||
@Slf4j
|
||||
public class ConsultationController {
|
||||
private final IConsultationService consultationService;
|
||||
|
||||
public ConsultationController(IConsultationService consultationService) {
|
||||
this.consultationService = consultationService;
|
||||
}
|
||||
|
||||
/**
|
||||
* 征求意见-分页查询
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "征求意见-分页查询")
|
||||
@ApiOperation(value="征求意见-分页查询", notes="征求意见-分页查询")
|
||||
@GetMapping(value = "/queryByPage")
|
||||
@Translation
|
||||
public Result<IPage<ProcessFbStandardConsultation>> queryByPage(ProcessFbStandardConsultation processFbStandardConsultation,
|
||||
@ApiParam("当前页") @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||
@ApiParam("每页条数") @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) {
|
||||
return Result.OK(consultationService.queryByPage(processFbStandardConsultation, pageNo, pageSize));
|
||||
}
|
||||
|
||||
/**
|
||||
* 征求意见-详情
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "征求意见-详情")
|
||||
@ApiOperation(value="征求意见-详情", notes="征求意见-详情")
|
||||
@GetMapping(value = "/queryDetailByBusinessId")
|
||||
@Translation
|
||||
public Result<List<ProcessFbConsultationList>> queryDetailByBusinessId(String businessId) {
|
||||
return Result.OK(consultationService.queryDetailByBusinessId(businessId));
|
||||
}
|
||||
}
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
package com.jero.modules.laws.consultation.entity;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
|
||||
/**
|
||||
* @ClassName: consultation
|
||||
* @Description:
|
||||
* @Author: yjz
|
||||
* @Date: 2023-12-04 09:33
|
||||
* @Version: 1.0
|
||||
**/
|
||||
@Data
|
||||
public class Consultation {
|
||||
/**id*/
|
||||
@Excel(name = "id", width = 15)
|
||||
@ApiModelProperty(value = "id")
|
||||
private java.lang.String id;
|
||||
/**标准编号*/
|
||||
@Excel(name = "标准编号", width = 15)
|
||||
@ApiModelProperty(value = "标准编号")
|
||||
private java.lang.String standardNumber;
|
||||
|
||||
/**征求意见周期*/
|
||||
@Excel(name = "征求意见周期", width = 15)
|
||||
@ApiModelProperty(value = "征求意见周期")
|
||||
private java.lang.String consultationPeriod;
|
||||
|
||||
/**征求意见开始日期*/
|
||||
@Excel(name = "征求意见开始日期", width = 15)
|
||||
@ApiModelProperty(value = "征求意见开始日期")
|
||||
private java.lang.String consultationBeginDate;
|
||||
|
||||
/**征求意见结束日期*/
|
||||
@Excel(name = "征求意见结束日期", width = 15)
|
||||
@ApiModelProperty(value = "征求意见结束日期")
|
||||
private java.lang.String consultationEndDate;
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
package com.jero.modules.laws.consultation.mapper;
|
||||
|
||||
/**
|
||||
* @InterfaceName: ConsultationMapper
|
||||
* @Description:
|
||||
* @Author: yjz
|
||||
* @Date: 2023-12-04 09:34
|
||||
* @Version: 1.0
|
||||
**/
|
||||
public interface ConsultationMapper {
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.jero.modules.laws.consultation.mapper.ConsultationMapper">
|
||||
|
||||
</mapper>
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
package com.jero.modules.laws.consultation.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.jero.modules.activiti.process.fb.entity.ProcessFbConsultationList;
|
||||
import com.jero.modules.activiti.process.fb.entity.ProcessFbStandardConsultation;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @InterfaceName: consultationService
|
||||
* @Description:
|
||||
* @Author: yjz
|
||||
* @Date: 2023-12-04 09:33
|
||||
* @Version: 1.0
|
||||
**/
|
||||
public interface IConsultationService {
|
||||
/**
|
||||
* 征求意见-分页查询
|
||||
* @param processFbStandardConsultation
|
||||
* @param pageNo
|
||||
* @param pageSize
|
||||
* @return
|
||||
*/
|
||||
IPage<ProcessFbStandardConsultation> queryByPage(ProcessFbStandardConsultation processFbStandardConsultation, Integer pageNo, Integer pageSize);
|
||||
|
||||
/**
|
||||
* 征求意见-详情
|
||||
* @param businessId
|
||||
* @return
|
||||
*/
|
||||
List<ProcessFbConsultationList> queryDetailByBusinessId(String businessId);
|
||||
}
|
||||
+94
@@ -0,0 +1,94 @@
|
||||
package com.jero.modules.laws.consultation.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.modules.activiti.process.fb.entity.ProcessFbConsultationList;
|
||||
import com.jero.modules.activiti.process.fb.entity.ProcessFbStandardConsultation;
|
||||
import com.jero.modules.activiti.process.fb.service.IProcessFbConsultationListService;
|
||||
import com.jero.modules.activiti.process.fb.service.IProcessFbStandardConsultationService;
|
||||
import com.jero.modules.laws.consultation.service.IConsultationService;
|
||||
import com.jero.modules.laws.standard.entity.LawsDomesticStandard;
|
||||
import com.jero.modules.laws.standard.service.ILawsDomesticStandardService;
|
||||
import com.jero.modules.system.entity.SysDepart;
|
||||
import com.jero.modules.system.service.ISysDepartService;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @ClassName: ConsultationServiceImpl
|
||||
* @Description:
|
||||
* @Author: yjz
|
||||
* @Date: 2023-12-04 09:33
|
||||
* @Version: 1.0
|
||||
**/
|
||||
@Service
|
||||
@Transactional(rollbackFor = JeroBootException.class)
|
||||
public class ConsultationServiceImpl implements IConsultationService {
|
||||
private final IProcessFbStandardConsultationService processFbStandardConsultationService;
|
||||
private final IProcessFbConsultationListService processFbConsultationListService;
|
||||
private final ILawsDomesticStandardService lawsDomesticStandardService;
|
||||
private final ISysDepartService sysDepartService;
|
||||
|
||||
public ConsultationServiceImpl(IProcessFbStandardConsultationService processFbStandardConsultationService,
|
||||
IProcessFbConsultationListService processFbConsultationListService,
|
||||
ILawsDomesticStandardService lawsDomesticStandardService,
|
||||
ISysDepartService sysDepartService) {
|
||||
this.processFbStandardConsultationService = processFbStandardConsultationService;
|
||||
this.processFbConsultationListService = processFbConsultationListService;
|
||||
this.lawsDomesticStandardService = lawsDomesticStandardService;
|
||||
this.sysDepartService = sysDepartService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<ProcessFbStandardConsultation> queryByPage(ProcessFbStandardConsultation processFbStandardConsultation, Integer pageNo, Integer pageSize) {
|
||||
LambdaQueryWrapper<ProcessFbStandardConsultation> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.isNotNull(ProcessFbStandardConsultation::getConsultationEndDate);
|
||||
if (StringUtils.isNotBlank(processFbStandardConsultation.getConsultationPeriod())){
|
||||
String[] date = processFbStandardConsultation.getConsultationPeriod().split(",");
|
||||
queryWrapper.and(qw -> qw.between(ProcessFbStandardConsultation::getConsultationBeginDate, date[0], date[1])
|
||||
.or().between(ProcessFbStandardConsultation::getConsultationEndDate, date[0], date[1]));
|
||||
}
|
||||
if (StringUtils.isNotBlank(processFbStandardConsultation.getStandardNameNumber())){
|
||||
queryWrapper.and(qw -> qw.like(ProcessFbStandardConsultation::getStandardNumber, processFbStandardConsultation.getStandardNameNumber())
|
||||
.or().like(ProcessFbStandardConsultation::getStandardName, processFbStandardConsultation.getStandardNameNumber()));
|
||||
}
|
||||
IPage<ProcessFbStandardConsultation> page = processFbStandardConsultationService.page(new Page<>(pageNo, pageSize), queryWrapper);
|
||||
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||
for (ProcessFbStandardConsultation StandardConsultation : page.getRecords()) {
|
||||
LawsDomesticStandard lawsDomesticStandard = lawsDomesticStandardService.getOne(new LambdaQueryWrapper<LawsDomesticStandard>()
|
||||
.eq(LawsDomesticStandard::getStandardNumber, StandardConsultation.getStandardNumber()), false);
|
||||
String standardName = StandardConsultation.getStandardName();
|
||||
if (!Objects.isNull(lawsDomesticStandard) && StringUtils.isNotBlank(lawsDomesticStandard.getStandardName())){
|
||||
standardName = lawsDomesticStandard.getStandardName();
|
||||
}
|
||||
StandardConsultation.setStandardNameNumber(StandardConsultation.getStandardNumber() + " " + standardName);
|
||||
StandardConsultation.setConsultationPeriod(
|
||||
dateFormat.format(StandardConsultation.getConsultationBeginDate()) + " ~ " +
|
||||
dateFormat.format(StandardConsultation.getConsultationEndDate()));
|
||||
}
|
||||
return page;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ProcessFbConsultationList> queryDetailByBusinessId(String businessId) {
|
||||
List<ProcessFbConsultationList> list = processFbConsultationListService.list(
|
||||
new LambdaQueryWrapper<ProcessFbConsultationList>()
|
||||
.eq(ProcessFbConsultationList::getBusinessId, businessId));
|
||||
// 提出部门
|
||||
for (ProcessFbConsultationList consultationList : list) {
|
||||
List<SysDepart> sysDeparts = sysDepartService.queryUserDeparts(consultationList.getDesignEngineerId());
|
||||
if (!sysDeparts.isEmpty()){
|
||||
consultationList.setDepart(sysDeparts.stream().map(SysDepart::getDepartName).collect(Collectors.joining(",")));
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user