diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/entity/ProcessFbConsultationList.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/entity/ProcessFbConsultationList.java index b815a050..315eca46 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/entity/ProcessFbConsultationList.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/entity/ProcessFbConsultationList.java @@ -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; } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/entity/ProcessFbStandardConsultation.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/entity/ProcessFbStandardConsultation.java index 9325a133..373001d0 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/entity/ProcessFbStandardConsultation.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/entity/ProcessFbStandardConsultation.java @@ -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; } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbStandardConsultationServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbStandardConsultationServiceImpl.java index bd033cca..edaecd8f 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbStandardConsultationServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbStandardConsultationServiceImpl.java @@ -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() + .eq(ProcessFbStandardConsultation::getId, businessId) + .set(ProcessFbStandardConsultation::getConsultationEndDate, new Date())); } else { List taskList = taskService.createTaskQuery().processInstanceId(processInstanceId).list(); log.info("还剩 {} 个任务待完成", taskList.size()); diff --git a/laws-modules/src/main/java/com/jero/modules/laws/consultation/controller/ConsultationController.java b/laws-modules/src/main/java/com/jero/modules/laws/consultation/controller/ConsultationController.java new file mode 100644 index 00000000..453b4e64 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/consultation/controller/ConsultationController.java @@ -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> 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> queryDetailByBusinessId(String businessId) { + return Result.OK(consultationService.queryDetailByBusinessId(businessId)); + } +} diff --git a/laws-modules/src/main/java/com/jero/modules/laws/consultation/entity/Consultation.java b/laws-modules/src/main/java/com/jero/modules/laws/consultation/entity/Consultation.java new file mode 100644 index 00000000..1d67bcda --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/consultation/entity/Consultation.java @@ -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; +} diff --git a/laws-modules/src/main/java/com/jero/modules/laws/consultation/mapper/ConsultationMapper.java b/laws-modules/src/main/java/com/jero/modules/laws/consultation/mapper/ConsultationMapper.java new file mode 100644 index 00000000..b601d1cd --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/consultation/mapper/ConsultationMapper.java @@ -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 { +} diff --git a/laws-modules/src/main/java/com/jero/modules/laws/consultation/mapper/xml/ConsultationMapper.xml b/laws-modules/src/main/java/com/jero/modules/laws/consultation/mapper/xml/ConsultationMapper.xml new file mode 100644 index 00000000..66aaef60 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/consultation/mapper/xml/ConsultationMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/laws/consultation/service/IConsultationService.java b/laws-modules/src/main/java/com/jero/modules/laws/consultation/service/IConsultationService.java new file mode 100644 index 00000000..fd3331cf --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/consultation/service/IConsultationService.java @@ -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 queryByPage(ProcessFbStandardConsultation processFbStandardConsultation, Integer pageNo, Integer pageSize); + + /** + * 征求意见-详情 + * @param businessId + * @return + */ + List queryDetailByBusinessId(String businessId); +} diff --git a/laws-modules/src/main/java/com/jero/modules/laws/consultation/service/impl/ConsultationServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/consultation/service/impl/ConsultationServiceImpl.java new file mode 100644 index 00000000..2ba5f508 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/consultation/service/impl/ConsultationServiceImpl.java @@ -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 queryByPage(ProcessFbStandardConsultation processFbStandardConsultation, Integer pageNo, Integer pageSize) { + LambdaQueryWrapper 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 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() + .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 queryDetailByBusinessId(String businessId) { + List list = processFbConsultationListService.list( + new LambdaQueryWrapper() + .eq(ProcessFbConsultationList::getBusinessId, businessId)); + // 提出部门 + for (ProcessFbConsultationList consultationList : list) { + List sysDeparts = sysDepartService.queryUserDeparts(consultationList.getDesignEngineerId()); + if (!sysDeparts.isEmpty()){ + consultationList.setDepart(sysDeparts.stream().map(SysDepart::getDepartName).collect(Collectors.joining(","))); + } + } + return list; + } +}