Merge remote-tracking branch 'origin/master'

This commit is contained in:
梁琦涛
2023-11-08 11:41:20 +08:00
13 changed files with 147 additions and 46 deletions
@@ -20,5 +20,6 @@
<if test="processInstanceId != null and processInstanceId != ''"> <if test="processInstanceId != null and processInstanceId != ''">
group by pn.id group by pn.id
</if> </if>
ORDER BY pn.sort
</select> </select>
</mapper> </mapper>
@@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
/** /**
@@ -66,6 +68,16 @@ public class ProcessDraft implements Serializable {
*/ */
private String projectId; private String projectId;
/**流程审批信息-备注*/
@ApiModelProperty(value = "流程审批信息-备注")
private java.lang.String handleText;
/**流程审批信息-附件*/
@ApiModelProperty(value = "流程审批信息-附件")
private java.lang.String handleFile;
/**用户id*/
@ApiModelProperty(value = "用户id")
private java.lang.String userId;
@TableField(exist = false) @TableField(exist = false)
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
} }
@@ -2,9 +2,7 @@ package com.jero.modules.activiti.process.fb.controller;
import com.jero.common.api.vo.Result; import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.util.MessageUtils;
import com.jero.modules.activiti.process.common.entity.TransferVO; import com.jero.modules.activiti.process.common.entity.TransferVO;
import com.jero.modules.activiti.process.esInitChange.entity.vo.InitChangeDataVO;
import com.jero.modules.activiti.process.fb.entity.ProcessFbEntryChange; import com.jero.modules.activiti.process.fb.entity.ProcessFbEntryChange;
import com.jero.modules.activiti.process.fb.service.IProcessFbEntryChangeService; import com.jero.modules.activiti.process.fb.service.IProcessFbEntryChangeService;
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
@@ -33,30 +31,11 @@ public class ProcessFbEntryChangeController extends JeroController<ProcessFbEntr
@Autowired @Autowired
private IProcessFbEntryChangeService processFbEntryChangeService; private IProcessFbEntryChangeService processFbEntryChangeService;
@AutoLog(value = "标准法规入库_变更流程-添加业务信息")
@ApiOperation(value = "标准法规入库_变更流程-添加业务信息", notes = "标准法规入库_变更流程-添加业务信息")
@PostMapping(value = "/addBusinessInfo")
public Result<T> addBusinessInfo(@Validated @RequestBody ProcessFbEntryChange processFbEntryChange) {
processFbEntryChangeService.addBusinessInfo(processFbEntryChange);
return Result.OK(MessageUtils.getMessage(ResultCommon.OK));
}
@AutoLog(value = "标准法规入库_变更流程-编辑业务信息")
@ApiOperation(value = "标准法规入库_变更流程-编辑业务信息", notes = "标准法规入库_变更流程-编辑业务信息")
@PostMapping(value = "/editBusinessInfo")
public Result<T> edit(@Validated @RequestBody ProcessFbEntryChange processFbEntryChange) {
processFbEntryChangeService.editBusinessInfo(processFbEntryChange);
return Result.OK(MessageUtils.getMessage(ResultCommon.OK));
}
@AutoLog(value = "标准法规入库_变更流程-通过id查询") @AutoLog(value = "标准法规入库_变更流程-通过id查询")
@ApiOperation(value = "标准法规入库_变更流程-通过id查询", notes = "标准法规入库_变更流程-通过id查询") @ApiOperation(value = "标准法规入库_变更流程-通过id查询", notes = "标准法规入库_变更流程-通过id查询")
@GetMapping(value = "/queryBusinessInfo") @GetMapping(value = "/queryBusinessInfo")
public Result<ProcessFbEntryChange> queryBusinessInfo(@RequestParam(name = "id") String id) { public Result<ProcessFbEntryChange> queryBusinessInfo(@RequestParam(name = "id") String id) {
ProcessFbEntryChange processFbEntryChange = processFbEntryChangeService.queryBusinessInfo(id); ProcessFbEntryChange processFbEntryChange = processFbEntryChangeService.queryBusinessInfo(id);
if (processFbEntryChange == null) {
return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND);
}
return Result.OK(processFbEntryChange); return Result.OK(processFbEntryChange);
} }
@@ -95,7 +74,7 @@ public class ProcessFbEntryChangeController extends JeroController<ProcessFbEntr
@AutoLog(value = "流程处理-保存为草稿") @AutoLog(value = "流程处理-保存为草稿")
@ApiOperation(value = "流程处理-保存为草稿", notes = "流程处理-保存为草稿") @ApiOperation(value = "流程处理-保存为草稿", notes = "流程处理-保存为草稿")
@PostMapping(value = "/saveToDraft") @PostMapping(value = "/saveToDraft")
public Result<T> saveToDraft(@Validated @RequestBody ProcessInfoVO processInfoVO) { public Result<T> saveToDraft(@Validated @RequestBody ProcessInfoVO<ProcessFbEntryChange> processInfoVO) {
processFbEntryChangeService.saveToDraft(processInfoVO); processFbEntryChangeService.saveToDraft(processInfoVO);
return Result.OK(); return Result.OK();
} }
@@ -59,5 +59,5 @@ public interface IProcessFbEntryChangeService extends IService<ProcessFbEntryCha
* @Date: 2023/11/3 10:58 * @Date: 2023/11/3 10:58
* @Description: 保存为草稿 * @Description: 保存为草稿
**/ **/
void saveToDraft(ProcessInfoVO processInfoVO); void saveToDraft(ProcessInfoVO<ProcessFbEntryChange> processInfoVO);
} }
@@ -163,7 +163,21 @@ public class ProcessFbEntryChangeServiceImpl extends ServiceImpl<ProcessFbEntryC
* @Description: 保存为草稿 * @Description: 保存为草稿
**/ **/
@Override @Override
public void saveToDraft(ProcessInfoVO processInfoVO) { public void saveToDraft(ProcessInfoVO<ProcessFbEntryChange> processInfoVO) {
// 业务信息
ProcessFbEntryChange businessInfoDTO = processInfoVO.getBusinessInfoDTO();
if (StringUtils.isBlank(businessInfoDTO.getId())) { // 如果是发起时保存
String businessId = UUIDUtils.randomUUID20();
businessInfoDTO.setId(businessId);
addBusinessInfo(businessInfoDTO);
} else { // 如果是审批时保存
processInfoVO.setBusinessId(businessInfoDTO.getId());
editBusinessInfo(businessInfoDTO);
}
// 流程信息
BasicProcessInfoDTO basicProcessInfoDTO = processInfoVO.getBasicProcessInfoDTO();
basicProcessInfoDTO.setProcessType(ProcessTypeEnum.FB_ENTRY_CHANGE.getValue()); // 流程类型
processHandleService.saveToDraft(processInfoVO); processHandleService.saveToDraft(processInfoVO);
} }
} }
@@ -1,11 +1,14 @@
package com.jero.modules.activiti.process.fb.service.impl; package com.jero.modules.activiti.process.fb.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.common.exception.JeroBootException; import com.jero.common.exception.JeroBootException;
import com.jero.modules.activiti.entity.ProcessAll; import com.jero.modules.activiti.entity.ProcessAll;
import com.jero.modules.activiti.entity.ProcessApprovalRecord; import com.jero.modules.activiti.entity.ProcessApprovalRecord;
import com.jero.modules.activiti.enums.CommitFlagEnum; import com.jero.modules.activiti.enums.CommitFlagEnum;
import com.jero.modules.activiti.enums.FinishFlagEnum; import com.jero.modules.activiti.enums.FinishFlagEnum;
import com.jero.modules.activiti.enums.ProcessTypeEnum; import com.jero.modules.activiti.enums.ProcessTypeEnum;
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
import com.jero.modules.activiti.process.common.service.ProcessDraftService;
import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO; import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO;
import com.jero.modules.activiti.process.fb.dto.BasicTaskInfoDTO; import com.jero.modules.activiti.process.fb.dto.BasicTaskInfoDTO;
import com.jero.modules.activiti.process.fb.dto.ProcessDTO; import com.jero.modules.activiti.process.fb.dto.ProcessDTO;
@@ -55,6 +58,8 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
private ProcessApprovalRecordService processApprovalRecordService; // 任务审批表 private ProcessApprovalRecordService processApprovalRecordService; // 任务审批表
@Resource @Resource
private ProcessNodeLinkService processNodeLinkService; // 流程实例节点关联用户表 private ProcessNodeLinkService processNodeLinkService; // 流程实例节点关联用户表
@Resource
private ProcessDraftService processDraftService; // 流程草稿表
/** /**
* @Author: liao * @Author: liao
@@ -222,7 +227,24 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
**/ **/
@Override @Override
public void saveToDraft(ProcessInfoVO processInfoVO) { public void saveToDraft(ProcessInfoVO processInfoVO) {
BasicProcessInfoDTO basicProcessInfoDTO = processInfoVO.getBasicProcessInfoDTO();
BasicTaskInfoDTO basicTaskInfoDTO = processInfoVO.getBasicTaskInfoDTO();
// 添加前先进行旧数据删除
LambdaQueryWrapper<ProcessDraft> deleteWrapper = new LambdaQueryWrapper<>();
deleteWrapper.eq(ProcessDraft::getProjectId, processInfoVO.getBusinessId());
deleteWrapper.eq(ProcessDraft::getUserId, CurrentUserUtil.getId());
processDraftService.remove(deleteWrapper);
ProcessDraft processDraft = new ProcessDraft();
processDraft.setProjectId(processInfoVO.getBusinessId()); // 业务id
processDraft.setProcessInstanceId(basicProcessInfoDTO.getProcessInstanceId()); // 流程实例id
processDraft.setPrcName(basicProcessInfoDTO.getProcessName()); // 流程名称
processDraft.setPrcType(basicProcessInfoDTO.getProcessType()); // 流程类型
processDraft.setHandleText(basicTaskInfoDTO.getHandleText()); // 流程审批信息-备注
processDraft.setHandleFile(basicTaskInfoDTO.getHandleFile()); // 流程审批信息-附件
processDraft.setUserId(CurrentUserUtil.getId()); // 用户id
processDraftService.save(processDraft);
} }
/** /**
@@ -3,6 +3,7 @@ package com.jero.modules.laws.enterprise.controller;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.common.api.vo.Result; import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.aspect.annotation.Translation;
import com.jero.common.system.base.controller.JeroController; import com.jero.common.system.base.controller.JeroController;
import com.jero.common.util.MessageUtils; import com.jero.common.util.MessageUtils;
import com.jero.modules.laws.common.constant.ResultCommon; import com.jero.modules.laws.common.constant.ResultCommon;
@@ -49,7 +50,6 @@ public class EnterpriseStandardRecheckPlanController extends JeroController<Ente
public Result<?> queryPageList(ESQueryCommonDTO esDeclare, public Result<?> queryPageList(ESQueryCommonDTO esDeclare,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize) { @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) {
IPage<EnterpriseStandardRecheckPlanVo> pageList= recheckPlanService.queryPageList(esDeclare, pageNo, pageSize); return Result.OK(recheckPlanService.queryPageList(esDeclare, pageNo, pageSize));
return Result.OK(pageList);
} }
} }
@@ -58,6 +58,10 @@ public class EnterpriseStandardRecheckPlan implements Serializable {
@ApiModelProperty(value = "所属部门") @ApiModelProperty(value = "所属部门")
private String orgCode; private String orgCode;
/**企标Id*/
@ApiModelProperty(value = "企标Id")
private String standardId;
/**企标编号*/ /**企标编号*/
@ApiModelProperty(value = "企标编号") @ApiModelProperty(value = "企标编号")
private String standardNo; private String standardNo;
@@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date; import java.util.Date;
@@ -18,6 +19,7 @@ import java.util.Date;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@Accessors(chain = true)
public class EnterpriseStandardRecheckPlanVo { public class EnterpriseStandardRecheckPlanVo {
/**主键ID*/ /**主键ID*/
@@ -51,9 +53,11 @@ public class EnterpriseStandardRecheckPlanVo {
/**主起草人*/ /**主起草人*/
@ApiModelProperty(value = "主起草人") @ApiModelProperty(value = "主起草人")
@Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname")
private String mainDraftingUser; private String mainDraftingUser;
/**主起草单位*/ /**主起草单位*/
@ApiModelProperty(value = "主起草单位") @ApiModelProperty(value = "主起草单位")
@Dict(dictTable = "sys_depart", dicCode = "id", dicText = "depart_name")
private String mainDraftingUnit; private String mainDraftingUnit;
} }
@@ -0,0 +1,73 @@
package com.jero.modules.laws.enterprise.job;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardRecheckPlan;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardRecheckPlanService;
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
import lombok.extern.slf4j.Slf4j;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import javax.annotation.Resource;
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author: Mzaxd
* @Date: 2023/11/8 9:11
*/
@Slf4j
public class ESRecheckPlanJob implements Job {
@Resource
private EnterpriseStandardRecheckPlanService esRecheckPlanService;
@Resource
private ILawsEnterpriseStandardService esService;
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
List<LawsEnterpriseStandard> allEs = esService.list(new LambdaQueryWrapper<LawsEnterpriseStandard>().eq(LawsEnterpriseStandard::getDelFlag, YesOrNoEnum.NO.getValue()));
List<EnterpriseStandardRecheckPlan> recheckPlanList = esRecheckPlanService.list();
Map<String, List<EnterpriseStandardRecheckPlan>> recheckPlanMap = recheckPlanList.stream().collect(Collectors.groupingBy(EnterpriseStandardRecheckPlan::getId));
for (LawsEnterpriseStandard es : allEs) {
// 根据企标发布日期判断是否当前已经达到35个月
// 请确保es.getReleaseDate()返回的是Date类型的实例
ZonedDateTime releaseZonedDateTime = es.getReleaseDate().toInstant()
.atZone(ZoneId.of("Asia/Shanghai"));
LocalDate releaseLocalDate = releaseZonedDateTime.toLocalDate();
LocalDate now = LocalDate.now();
// 36个月的复审日期
LocalDate recheckDate36Months = releaseLocalDate.plusMonths(36);
LocalDate plusMonths = releaseLocalDate.plusMonths(35);
if (plusMonths.isBefore(now)) {
// 判断是否已经存在复审计划
List<EnterpriseStandardRecheckPlan> recheckPlans = recheckPlanMap.get(es.getId());
if (recheckPlans == null || recheckPlans.size() == 0) {
// 企标已经达到35个月,需要重新复审
EnterpriseStandardRecheckPlan recheckPlan = new EnterpriseStandardRecheckPlan();
recheckPlan.setStandardId(es.getId());
recheckPlan.setStandardNo(es.getStandardNumber());
// 正确处理时区,转换回Date类型
ZonedDateTime zdtRecheck = recheckDate36Months.atStartOfDay(ZoneId.of("Asia/Shanghai"));
Date recheckDate = Date.from(zdtRecheck.toInstant());
recheckPlan.setRecheckDate(recheckDate);
esRecheckPlanService.save(recheckPlan);
}
}
}
log.info("企标复审计划定时任务执行完成");
}
}
@@ -4,21 +4,21 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan; import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService; import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled; import org.quartz.Job;
import org.springframework.stereotype.Component; import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import javax.annotation.Resource; import javax.annotation.Resource;
@Slf4j @Slf4j
@Component public class QualityStandardResetJob implements Job {
public class QualityStandardResetTask {
@Resource @Resource
private EnterpriseStandardPlanService enterpriseStandardPlanService; private EnterpriseStandardPlanService enterpriseStandardPlanService;
@Scheduled(cron = "0 0 0 1 * ?") @Override
public void qualityStandardResetTask() { public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
LambdaUpdateWrapper<EnterpriseStandardPlan> updateWrapper = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<EnterpriseStandardPlan> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(EnterpriseStandardPlan::getQualityFlag, 0); updateWrapper.set(EnterpriseStandardPlan::getQualityFlag, 0);
enterpriseStandardPlanService.update(updateWrapper); enterpriseStandardPlanService.update(updateWrapper);
@@ -12,6 +12,7 @@
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/> <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
<result property="orgCode" column="org_code" jdbcType="VARCHAR"/> <result property="orgCode" column="org_code" jdbcType="VARCHAR"/>
<result property="standardNo" column="standard_no" jdbcType="VARCHAR"/> <result property="standardNo" column="standard_no" jdbcType="VARCHAR"/>
<result property="standardId" column="standard_id" jdbcType="VARCHAR"/>
<result property="recheckDate" column="recheck_date" jdbcType="TIMESTAMP"/> <result property="recheckDate" column="recheck_date" jdbcType="TIMESTAMP"/>
<result property="recheckResult" column="recheck_result" jdbcType="VARCHAR"/> <result property="recheckResult" column="recheck_result" jdbcType="VARCHAR"/>
</resultMap> </resultMap>
@@ -30,17 +31,12 @@
s.release_date AS releaseDate, s.release_date AS releaseDate,
p.recheck_date AS recheckDate, p.recheck_date AS recheckDate,
p.recheck_result AS recheckResult, p.recheck_result AS recheckResult,
u.username AS mainDraftingUser, s.main_drafting_user AS mainDraftingUser,
d.depart_name AS mainDraftingUnit s.main_drafting_unit AS mainDraftingUnit
FROM FROM
laws_enterprise_standard_recheck_plan AS p laws_enterprise_standard_recheck_plan AS p
LEFT JOIN laws_enterprise_standard AS s ON s.standard_number = p.standard_no LEFT JOIN laws_enterprise_standard AS s ON s.id = p.standard_id
LEFT JOIN sys_user AS u ON u.id = s.main_drafting_user WHERE 1 = 1
LEFT JOIN sys_depart AS d ON d.id = s.main_drafting_unit
WHERE
(p.recheck_date BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 1 MONTH))
OR
(p.recheck_result IS NOT NULL)
<!--企标编号判断--> <!--企标编号判断-->
<if test="param.standardNo != null and param.standardNo != ''"> <if test="param.standardNo != null and param.standardNo != ''">
AND s.standard_number LIKE CONCAT('%',#{param.standardNo},'%') AND s.standard_number LIKE CONCAT('%',#{param.standardNo},'%')
@@ -32,17 +32,13 @@ import java.util.stream.Collectors;
public class EnterpriseStandardRecheckPlanServiceImpl extends ServiceImpl<EnterpriseStandardRecheckPlanMapper, EnterpriseStandardRecheckPlan> public class EnterpriseStandardRecheckPlanServiceImpl extends ServiceImpl<EnterpriseStandardRecheckPlanMapper, EnterpriseStandardRecheckPlan>
implements EnterpriseStandardRecheckPlanService{ implements EnterpriseStandardRecheckPlanService{
@Resource
private ISysBaseAPI sysBaseAPI;
@Resource @Resource
private EnterpriseStandardRecheckPlanMapper esRecheckPlanMapper; private EnterpriseStandardRecheckPlanMapper esRecheckPlanMapper;
@Override @Override
public IPage<EnterpriseStandardRecheckPlanVo> queryPageList(ESQueryCommonDTO esRecheckPlan, Integer pageNo, Integer pageSize) { public IPage<EnterpriseStandardRecheckPlanVo> queryPageList(ESQueryCommonDTO esRecheckPlan, Integer pageNo, Integer pageSize) {
IPage<EnterpriseStandardRecheckPlanVo> page = new Page<>(pageNo, pageSize); IPage<EnterpriseStandardRecheckPlanVo> page = new Page<>(pageNo, pageSize);
esRecheckPlanMapper.page(page, esRecheckPlan); return esRecheckPlanMapper.page(page, esRecheckPlan);
return page;
} }
} }