diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/common/data/controller/vo/DataOpinionRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/common/data/controller/vo/DataOpinionRespVO.java index c79f8413..dae2219f 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/common/data/controller/vo/DataOpinionRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/common/data/controller/vo/DataOpinionRespVO.java @@ -83,4 +83,13 @@ public class DataOpinionRespVO { @ExcelProperty("创建时间") private LocalDateTime createTime; + + //===========扩展字段 + + @Schema(description = "审批时间年月日") + @ExcelProperty("审批时间年月日") + private String opinionTimeYYYYMMDD; + + @Schema(description = "base64签名图片") + private String signatureIdBase64; } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/common/data/service/DataOpinionService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/common/data/service/DataOpinionService.java index 1b672932..43c4c95e 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/common/data/service/DataOpinionService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/common/data/service/DataOpinionService.java @@ -28,6 +28,8 @@ public interface DataOpinionService { List getListByFlowInsId(String flowInsId); + JSONObject assembleOpinion(Long busId); + /** * 创建审批意见 * diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/common/data/service/DataOpinionServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/common/data/service/DataOpinionServiceImpl.java index c76b80f0..c64a5280 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/common/data/service/DataOpinionServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/common/data/service/DataOpinionServiceImpl.java @@ -1,6 +1,7 @@ package com.zt.plat.module.qms.common.data.service; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -20,6 +21,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.*; import com.zt.plat.module.qms.common.data.dal.dataobject.DataOpinionDO; @@ -105,6 +107,30 @@ public class DataOpinionServiceImpl implements DataOpinionService { return dataOpinionMapper.selectList(query); } + @Override + public JSONObject assembleOpinion(Long busId) { + List opinionList = this.getListByBusId(busId); + List opinionRespVOList = BeanUtils.toBean(opinionList, DataOpinionRespVO.class); + List signatureIdList = opinionRespVOList.stream().map(DataOpinionRespVO::getOpinionSignatureId).distinct().toList(); + List signatureList = new ArrayList<>(); + if(!signatureIdList.isEmpty()) + signatureList = configUserSignatureService.getByIdList(signatureIdList); + JSONObject opinion = new JSONObject(); + for(DataOpinionRespVO opinionRespVO : opinionRespVOList){ + for(ConfigUserSignatureDO signature : signatureList){ + if(signature.getId().equals(opinionRespVO.getOpinionSignatureId())){ + opinionRespVO.setSignatureIdBase64(signature.getSignatureContent()); + } + } + if(opinionRespVO.getOpinionTime() != null){ + opinionRespVO.setOpinionTimeYYYYMMDD(DateUtil.format(opinionRespVO.getOpinionTime(), "yyyy-MM-dd")); + } + String nodeKey = opinionRespVO.getNodeKey(); + opinion.put(nodeKey, opinionRespVO); + } + return opinion; + } + @Override public DataOpinionRespVO createDataOpinion(DataOpinionSaveReqVO createReqVO) { // 插入 diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/common/DeviceConstant.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/common/DeviceConstant.java index 50937890..68998837 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/common/DeviceConstant.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/common/DeviceConstant.java @@ -13,4 +13,9 @@ public class DeviceConstant { public static final String FREQUENCY_TYPE_MONTH = "month"; public static final String FREQUENCY_TYPE_DAY = "day"; + + //期间核查目标类型 + public static final String PERIOD_CHECK_TAGET_DEVICE = "device"; + public static final String PERIOD_CHECK_TAGET_MATERIAL = "material"; + } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DeviceCalibrationController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DeviceCalibrationController.java index e193c5cc..5fbcca17 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DeviceCalibrationController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DeviceCalibrationController.java @@ -56,7 +56,6 @@ public class DeviceCalibrationController extends AbstractFileUploadController im } @Resource private DeviceCalibrationService deviceCalibrationService; - @Resource private DeviceCalibrationPlanService deviceCalibrationPlanService; @Resource private DeviceProductService deviceProductService; @PostMapping("/create") @@ -65,11 +64,18 @@ public class DeviceCalibrationController extends AbstractFileUploadController im return success(deviceCalibrationService.createDeviceCalibration(createReqVO)); } + @PostMapping("/createByDeviceId") + @Operation(summary = "创建设备-检定校准") + public CommonResult createByDeviceId(@RequestBody DeviceCalibrationSaveReqVO createReqVO) { + return success(deviceCalibrationService.createByDeviceId(createReqVO)); + } + @PutMapping("/update") @Operation(summary = "更新设备-检定校准") - public CommonResult updateDeviceCalibration(@Valid @RequestBody DeviceCalibrationSaveReqVO updateReqVO) { - deviceCalibrationService.updateDeviceCalibration(updateReqVO); - return success(true); + public CommonResult updateDeviceCalibration(@Valid @RequestBody DeviceCalibrationSaveReqVO updateReqVO) { + DeviceCalibrationDO entity = deviceCalibrationService.updateDeviceCalibration(updateReqVO); + DeviceCalibrationRespVO vo = BeanUtils.toBean(entity, DeviceCalibrationRespVO.class); + return success(vo); } @DeleteMapping("/delete") diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DevicePeriodCheckController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DevicePeriodCheckController.java index 9fa3d782..cfe6bd08 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DevicePeriodCheckController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DevicePeriodCheckController.java @@ -2,8 +2,10 @@ package com.zt.plat.module.qms.resource.device.controller.admin; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.zt.plat.module.qms.resource.device.common.DeviceConstant; import com.zt.plat.module.qms.resource.device.controller.vo.*; import com.zt.plat.module.qms.resource.device.service.DeviceProductService; +import com.zt.plat.module.qms.resource.material.service.MaterialProductService; import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; import jakarta.annotation.Resource; @@ -56,6 +58,7 @@ public class DevicePeriodCheckController extends AbstractFileUploadController im @Resource private DevicePeriodCheckService devicePeriodCheckService; @Resource private DeviceProductService deviceProductService; + @Resource private MaterialProductService materialProductService; @PostMapping("/create") @Operation(summary = "创建设备-期间核查") @@ -65,9 +68,10 @@ public class DevicePeriodCheckController extends AbstractFileUploadController im @PutMapping("/update") @Operation(summary = "更新设备-期间核查") - public CommonResult updateDevicePeriodCheck(@Valid @RequestBody DevicePeriodCheckSaveReqVO updateReqVO) { - devicePeriodCheckService.updateDevicePeriodCheck(updateReqVO); - return success(true); + public CommonResult updateDevicePeriodCheck(@Valid @RequestBody DevicePeriodCheckSaveReqVO updateReqVO) { + DevicePeriodCheckDO entity = devicePeriodCheckService.updateDevicePeriodCheck(updateReqVO); + DevicePeriodCheckRespVO vo = BeanUtils.toBean(entity, DevicePeriodCheckRespVO.class); + return success(vo); } @DeleteMapping("/delete") @@ -95,11 +99,19 @@ public class DevicePeriodCheckController extends AbstractFileUploadController im return success(BeanUtils.toBean(devicePeriodCheck, DevicePeriodCheckRespVO.class)); } - @GetMapping("/getVO") + @GetMapping("/getVoDevice") @Operation(summary = "获得设备-检定校准") @Parameter(name = "id", description = "编号", required = true, example = "1024") - public CommonResult getVO(@RequestParam("id") Long id) { - DevicePeriodCheckVO vo = devicePeriodCheckService.getDevicePeriodCheckVO(id); + public CommonResult getVoDevice(@RequestParam("id") Long id) { + DevicePeriodCheckVO vo = devicePeriodCheckService.getVoDevice(id); + return success(vo); + } + + @GetMapping("/getVoMaterial") + @Operation(summary = "获得设备-检定校准") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + public CommonResult getVoMaterial(@RequestParam("id") Long id) { + DevicePeriodCheckVO vo = devicePeriodCheckService.getVoMaterial(id); return success(vo); } @@ -109,9 +121,9 @@ public class DevicePeriodCheckController extends AbstractFileUploadController im return devicePeriodCheckService.submitApply(param); } - @GetMapping("/page") + @GetMapping("/pageDevice") @Operation(summary = "获得设备-期间核查分页") - public CommonResult> getDevicePeriodCheckPage(@Valid DevicePeriodCheckPageReqVO param) { + public CommonResult> pageDevice(@Valid DevicePeriodCheckPageReqVO param) { Page page = new Page<>(param.getPageNo(), param.getPageSize()); Long productId = param.getProductId(); if(!ObjectUtils.isEmpty(productId)){ @@ -124,7 +136,29 @@ public class DevicePeriodCheckController extends AbstractFileUploadController im param.setFlowStatusList(Arrays.asList(flowStatus.split(","))); param.setFlowStatus(""); } - IPage pageList = devicePeriodCheckService.queryPageList(page, param); + param.setCheckTarget(DeviceConstant.PERIOD_CHECK_TAGET_DEVICE); + IPage pageList = devicePeriodCheckService.queryPageListDevice(page, param); + PageResult pageResult = new PageResult<>(pageList.getRecords(), pageList.getTotal()); + return CommonResult.success(pageResult); + } + + @GetMapping("/pageMaterial") + @Operation(summary = "获得设备-期间核查分页") + public CommonResult> pageMaterial(@Valid DevicePeriodCheckPageReqVO param) { + Page page = new Page<>(param.getPageNo(), param.getPageSize()); + Long productId = param.getProductId(); + if(!ObjectUtils.isEmpty(productId)){ + List productIdList = deviceProductService.getIdListByIdPath(productId); + param.setProductIdList(productIdList); + param.setProductId(null); + } + String flowStatus = param.getFlowStatus(); + if (!ObjectUtils.isEmpty(flowStatus)) { + param.setFlowStatusList(Arrays.asList(flowStatus.split(","))); + param.setFlowStatus(""); + } + param.setCheckTarget(DeviceConstant.PERIOD_CHECK_TAGET_MATERIAL); + IPage pageList = devicePeriodCheckService.queryPageListMaterial(page, param); PageResult pageResult = new PageResult<>(pageList.getRecords(), pageList.getTotal()); return CommonResult.success(pageResult); } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DevicePeriodCheckPlanController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DevicePeriodCheckPlanController.java index 25f6563e..4c1715b0 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DevicePeriodCheckPlanController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DevicePeriodCheckPlanController.java @@ -55,11 +55,18 @@ public class DevicePeriodCheckPlanController extends AbstractFileUploadControlle @Resource private DevicePeriodCheckPlanService devicePeriodCheckPlanService; - @PostMapping("/createPlan") + @PostMapping("/createPlanDevice") @Operation(summary = "创建设备-期间核查计划") - public CommonResult createDevicePeriodCheckPlan(@RequestBody JSONObject param) { + public CommonResult createPlanDevice(@RequestBody JSONObject param) { String checkYear = param.getString("checkYear"); - return success(devicePeriodCheckPlanService.createPlan(checkYear)); + return success(devicePeriodCheckPlanService.createPlanDevice(checkYear)); + } + + @PostMapping("/createPlanMaterial") + @Operation(summary = "创建设备-期间核查计划") + public CommonResult createPlanMaterial(@RequestBody JSONObject param) { + String checkYear = param.getString("checkYear"); + return success(devicePeriodCheckPlanService.createPlanMaterial(checkYear)); } @RequestMapping("/savePlan") diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DeviceCalibrationVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DeviceCalibrationVO.java index 2cd9c958..a866fabc 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DeviceCalibrationVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DeviceCalibrationVO.java @@ -52,4 +52,7 @@ public class DeviceCalibrationVO extends DeviceCalibrationRespVO{ private String deviceCode; //管理编号 private String factoryCode; //出厂编号 + + //============其他字段============ + private JSONObject signatureData; } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DevicePeriodCheckPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DevicePeriodCheckPageReqVO.java index b0d2103d..b2234428 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DevicePeriodCheckPageReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DevicePeriodCheckPageReqVO.java @@ -59,6 +59,9 @@ public class DevicePeriodCheckPageReqVO extends PageParam { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] checkDate; + @Schema(description = "核查对象类型") + private String checkTarget; + @Schema(description = "上次检查日期") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] lastCheckDate; @@ -92,7 +95,7 @@ public class DevicePeriodCheckPageReqVO extends PageParam { private LocalDateTime[] createTime; - //======================设备大类字段============================== + //======================设备大类字段========================== diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DevicePeriodCheckPlanPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DevicePeriodCheckPlanPageReqVO.java index 0cc26110..6247cf0e 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DevicePeriodCheckPlanPageReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DevicePeriodCheckPlanPageReqVO.java @@ -40,6 +40,9 @@ public class DevicePeriodCheckPlanPageReqVO extends PageParam { @Schema(description = "数据类型,班组/汇总", example = "1") private String dataType; + @Schema(description = "核查对象类型") + private String checkTarget; + @Schema(description = "作废标识:0-有效;1-作废") private String cancelFlag; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DevicePeriodCheckPlanRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DevicePeriodCheckPlanRespVO.java index acc372a1..674bc3a8 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DevicePeriodCheckPlanRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DevicePeriodCheckPlanRespVO.java @@ -54,6 +54,10 @@ public class DevicePeriodCheckPlanRespVO { @ExcelProperty("数据类型,班组/汇总") private String dataType; + @ExcelProperty("核查对象类型") + @Schema(description = "核查对象类型") + private String checkTarget; + @Schema(description = "作废标识:0-有效;1-作废") @ExcelProperty("作废标识:0-有效;1-作废") private String cancelFlag; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DevicePeriodCheckPlanSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DevicePeriodCheckPlanSaveReqVO.java index f5fd1d55..2d9f04a9 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DevicePeriodCheckPlanSaveReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DevicePeriodCheckPlanSaveReqVO.java @@ -41,6 +41,9 @@ public class DevicePeriodCheckPlanSaveReqVO { @Schema(description = "数据类型,班组/汇总", example = "1") private String dataType; + @Schema(description = "核查对象类型") + private String checkTarget; + @Schema(description = "作废标识:0-有效;1-作废") private String cancelFlag; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DevicePeriodCheckRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DevicePeriodCheckRespVO.java index 8cf286fb..6bd44eeb 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DevicePeriodCheckRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DevicePeriodCheckRespVO.java @@ -73,6 +73,10 @@ public class DevicePeriodCheckRespVO { @ExcelProperty("实际检查日期") private LocalDateTime checkDate; + @ExcelProperty("核查对象类型") + @Schema(description = "核查对象类型") + private String checkTarget; + @Schema(description = "上次检查日期") @ExcelProperty("上次检查日期") private LocalDateTime lastCheckDate; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DevicePeriodCheckSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DevicePeriodCheckSaveReqVO.java index c7a2334e..37b5d93a 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DevicePeriodCheckSaveReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DevicePeriodCheckSaveReqVO.java @@ -56,6 +56,9 @@ public class DevicePeriodCheckSaveReqVO { @Schema(description = "实际检查日期") private LocalDateTime checkDate; + @Schema(description = "核查对象类型") + private String checkTarget; + @Schema(description = "上次检查日期") private LocalDateTime lastCheckDate; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DevicePeriodCheckVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DevicePeriodCheckVO.java index b9b7577e..c2f52e5e 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DevicePeriodCheckVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DevicePeriodCheckVO.java @@ -51,4 +51,11 @@ public class DevicePeriodCheckVO extends DevicePeriodCheckRespVO{ private String deviceCode; //管理编号 private String factoryCode; //出厂编号 + + //============物料试剂字段============ + + + //============其他字段============ + private JSONObject signatureData; + } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/dataobject/DevicePeriodCheckDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/dataobject/DevicePeriodCheckDO.java index 08991b68..327fdab1 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/dataobject/DevicePeriodCheckDO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/dataobject/DevicePeriodCheckDO.java @@ -101,6 +101,10 @@ public class DevicePeriodCheckDO extends BusinessBaseDO { */ @TableField("CHK_DT") private LocalDateTime checkDate; + + @TableField("CHK_TGT") + private String checkTarget; + /** * 上次检查日期 */ diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/dataobject/DevicePeriodCheckPlanDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/dataobject/DevicePeriodCheckPlanDO.java index 95442e12..d4207736 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/dataobject/DevicePeriodCheckPlanDO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/dataobject/DevicePeriodCheckPlanDO.java @@ -73,6 +73,10 @@ public class DevicePeriodCheckPlanDO extends BusinessBaseDO { */ @TableField("DAT_TP") private String dataType; + + @TableField("CHK_TGT") + private String checkTarget; + /** * 作废标识:0-有效;1-作废 */ diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/mapper/DevicePeriodCheckMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/mapper/DevicePeriodCheckMapper.java index 6c9a4248..8922a30e 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/mapper/DevicePeriodCheckMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/mapper/DevicePeriodCheckMapper.java @@ -55,5 +55,7 @@ public interface DevicePeriodCheckMapper extends BaseMapperX getLastDataCheckList(@Param("param") JSONObject param); - IPage queryPageList(Page page, @Param("param") DevicePeriodCheckPageReqVO param); + IPage queryPageListDevice(Page page, @Param("param") DevicePeriodCheckPageReqVO param); + + IPage queryPageListMaterial(Page page, @Param("param") DevicePeriodCheckPageReqVO param); } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/mapper/DevicePeriodCheckPlanMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/mapper/DevicePeriodCheckPlanMapper.java index 4a5098d6..22ba79d3 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/mapper/DevicePeriodCheckPlanMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/mapper/DevicePeriodCheckPlanMapper.java @@ -21,6 +21,7 @@ public interface DevicePeriodCheckPlanMapper extends BaseMapperX deviceList = deviceInfomationService.getListNeedByRule(ruleParam); + String formKey = dictionaryBusinessService.getValueByDataKey(formDicKey); + DataTemplateDO formTemplate = dataTemplateService.getLatestDataByKey(formKey); + Long formTemplateId = formTemplate.getId(); + DeviceCalibrationDO entity = new DeviceCalibrationDO(); + entity.setDeviceId(deviceId); + entity.setPlanId(0L); + entity.setEffectiveFlag("1"); + entity.setFormId(formTemplateId); + entity.setFlowStatus(QmsCommonConstant.NOT_START); + if(deviceList.isEmpty()){ + deviceCalibrationMapper.insert(entity); + return BeanUtils.toBean(entity, DeviceCalibrationRespVO.class); + } + DeviceInfoWithBizConfigVO configVO = deviceList.get(0); + DeviceConfigBusinessRuleDO rule = configVO.getRule(); + if(rule == null){ + deviceCalibrationMapper.insert(entity); + return BeanUtils.toBean(entity, DeviceCalibrationRespVO.class); + } + entity.setSpecification(rule.getStandard()); + entity.setCheckType(rule.getCalibrationCheckType()); + entity.setFrequencyRemark(rule.getFrequencyRemark()); + deviceCalibrationMapper.insert(entity); + return BeanUtils.toBean(entity, DeviceCalibrationRespVO.class); + } + + @Override + public DeviceCalibrationDO updateDeviceCalibration(DeviceCalibrationSaveReqVO updateReqVO) { // 校验存在 validateDeviceCalibrationExists(updateReqVO.getId()); // 更新 DeviceCalibrationDO updateObj = BeanUtils.toBean(updateReqVO, DeviceCalibrationDO.class); deviceCalibrationMapper.updateById(updateObj); + return updateObj; } @Override @@ -256,7 +293,11 @@ public class DeviceCalibrationServiceImpl implements DeviceCalibrationService, B PageResult pageResult = new PageResult<>(pageList.getRecords(), pageList.getTotal()); if(pageResult.getList().isEmpty()) return null; - return pageResult.getList().get(0); + DeviceCalibrationVO vo = pageResult.getList().get(0); + //处理审批意见 + JSONObject opinion = dataOpinionService.assembleOpinion(id); + vo.setSignatureData( opinion); + return vo; } @Override diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DevicePeriodCheckPlanService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DevicePeriodCheckPlanService.java index 195239d1..570bdf1d 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DevicePeriodCheckPlanService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DevicePeriodCheckPlanService.java @@ -18,7 +18,9 @@ public interface DevicePeriodCheckPlanService { /** * 创建-期间核查计划 */ - DevicePeriodCheckPlanRespVO createPlan(String checkYear); + DevicePeriodCheckPlanRespVO createPlanDevice(String checkYear); + + DevicePeriodCheckPlanRespVO createPlanMaterial(String checkYear); CommonResult savePlan(DevicePeriodCheckPlanSaveReqVO paramVO); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DevicePeriodCheckPlanServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DevicePeriodCheckPlanServiceImpl.java index 3abfa9cb..fe97bb05 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DevicePeriodCheckPlanServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DevicePeriodCheckPlanServiceImpl.java @@ -16,6 +16,7 @@ import com.zt.plat.module.qms.common.data.service.DataOpinionService; import com.zt.plat.module.qms.common.dic.service.DictionaryBusinessService; import com.zt.plat.module.qms.enums.QmsBpmConstant; import com.zt.plat.module.qms.enums.QmsCommonConstant; +import com.zt.plat.module.qms.resource.device.common.DeviceConstant; import com.zt.plat.module.qms.resource.device.controller.vo.DevicePeriodCheckPlanRespVO; import com.zt.plat.module.qms.resource.device.controller.vo.DevicePeriodCheckPlanPageReqVO; import com.zt.plat.module.qms.resource.device.controller.vo.DevicePeriodCheckPlanSaveReqVO; @@ -62,18 +63,34 @@ public class DevicePeriodCheckPlanServiceImpl implements DevicePeriodCheckPlanSe @Override @Transactional(rollbackFor = Exception.class) - public DevicePeriodCheckPlanRespVO createPlan(String checkYear) { + public DevicePeriodCheckPlanRespVO createPlanDevice(String checkYear) { LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); String userName = SecurityFrameworkUtils.getLoginUserNickname(); - String title = userName + "的"+checkYear+"年度期间核查计划"; DevicePeriodCheckPlanDO entity = new DevicePeriodCheckPlanDO(); entity.setCheckYear(checkYear); entity.setTitle(title); entity.setApplyUserName(userName); entity.setFlowStatus(QmsCommonConstant.NOT_START); + entity.setCheckTarget(DeviceConstant.PERIOD_CHECK_TAGET_DEVICE); devicePeriodCheckPlanMapper.insert(entity); - devicePeriodCheckService.createListByPlan(entity); + devicePeriodCheckService.createListByPlanDevice(entity); + return BeanUtils.toBean(entity, DevicePeriodCheckPlanRespVO.class); + } + + @Override + public DevicePeriodCheckPlanRespVO createPlanMaterial(String checkYear) { + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + String userName = SecurityFrameworkUtils.getLoginUserNickname(); + String title = userName + "的"+checkYear+"年度期间核查计划"; + DevicePeriodCheckPlanDO entity = new DevicePeriodCheckPlanDO(); + entity.setCheckYear(checkYear); + entity.setTitle(title); + entity.setApplyUserName(userName); + entity.setFlowStatus(QmsCommonConstant.NOT_START); + entity.setCheckTarget(DeviceConstant.PERIOD_CHECK_TAGET_MATERIAL); + devicePeriodCheckPlanMapper.insert(entity); + devicePeriodCheckService.createListByPlanMaterial(entity); return BeanUtils.toBean(entity, DevicePeriodCheckPlanRespVO.class); } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DevicePeriodCheckService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DevicePeriodCheckService.java index db0e0f7e..7951c8ec 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DevicePeriodCheckService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DevicePeriodCheckService.java @@ -2,16 +2,13 @@ package com.zt.plat.module.qms.resource.device.service; import java.util.*; -import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.module.qms.resource.device.controller.vo.*; -import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceCalibrationDO; import com.zt.plat.module.qms.resource.device.dal.dataobject.DevicePeriodCheckDO; import com.zt.plat.module.qms.resource.device.dal.dataobject.DevicePeriodCheckPlanDO; import jakarta.validation.*; -import com.zt.plat.module.qms.resource.device.dal.dataobject.DevicePeriodCheckDO; import com.zt.plat.framework.common.pojo.PageResult; /** @@ -22,11 +19,14 @@ import com.zt.plat.framework.common.pojo.PageResult; public interface DevicePeriodCheckService { - void createListByPlan(DevicePeriodCheckPlanDO plan); + void createListByPlanDevice(DevicePeriodCheckPlanDO plan); + + void createListByPlanMaterial(DevicePeriodCheckPlanDO plan); CommonResult> getLastDataCheckList(List deviceIds, String flowStatus); - IPage queryPageList(Page page, DevicePeriodCheckPageReqVO pageReqVO); + IPage queryPageListDevice(Page page, DevicePeriodCheckPageReqVO pageReqVO); + IPage queryPageListMaterial(Page page, DevicePeriodCheckPageReqVO pageReqVO); void updateEffectiveFlag(Long planId, String effectiveFlag); @@ -42,12 +42,14 @@ public interface DevicePeriodCheckService { */ DevicePeriodCheckRespVO createDevicePeriodCheck(@Valid DevicePeriodCheckSaveReqVO createReqVO); + DevicePeriodCheckRespVO createByDeviceId(DevicePeriodCheckSaveReqVO createReqVO); + /** * 更新设备-期间核查 * * @param updateReqVO 更新信息 */ - void updateDevicePeriodCheck(@Valid DevicePeriodCheckSaveReqVO updateReqVO); + DevicePeriodCheckDO updateDevicePeriodCheck(@Valid DevicePeriodCheckSaveReqVO updateReqVO); /** * 删除设备-期间核查 @@ -71,7 +73,8 @@ public interface DevicePeriodCheckService { */ DevicePeriodCheckDO getDevicePeriodCheck(Long id); - DevicePeriodCheckVO getDevicePeriodCheckVO(Long id); + DevicePeriodCheckVO getVoDevice(Long id); + DevicePeriodCheckVO getVoMaterial(Long id); /** * 获得设备-期间核查分页 * diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DevicePeriodCheckServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DevicePeriodCheckServiceImpl.java index 96a6c7cd..6fe395c9 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DevicePeriodCheckServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DevicePeriodCheckServiceImpl.java @@ -78,7 +78,7 @@ public class DevicePeriodCheckServiceImpl implements DevicePeriodCheckService, B * */ @Override @Transactional(rollbackFor = Exception.class) - public void createListByPlan(DevicePeriodCheckPlanDO plan) { + public void createListByPlanDevice(DevicePeriodCheckPlanDO plan) { Long planId = plan.getId(); String checkYear = plan.getCheckYear(); JSONObject ruleParam = new JSONObject(); @@ -95,9 +95,26 @@ public class DevicePeriodCheckServiceImpl implements DevicePeriodCheckService, B for (DeviceInfoWithBizConfigVO device : deviceList) { DeviceConfigBusinessRuleDO rule = device.getRule(); Long deviceId = device.getId(); - initPeriodCheckData(planId, checkList, lastDeviceDataList, rule, deviceId, formTemplateId); + initPeriodCheckData(planId, checkList, lastDeviceDataList, rule, deviceId, formTemplateId, DeviceConstant.PERIOD_CHECK_TAGET_DEVICE); } + devicePeriodCheckMapper.insertBatch(checkList); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void createListByPlanMaterial(DevicePeriodCheckPlanDO plan) { + Long planId = plan.getId(); + String checkYear = plan.getCheckYear(); + JSONObject ruleParam = new JSONObject(); + ruleParam.put("businessType", DeviceConstant.PERIOD_TYPE); + List checkList = new ArrayList<>(); + String wfStatus = QmsCommonConstant.COMPLETED; + + String formKey = dictionaryBusinessService.getValueByDataKey(formDicKey); + DataTemplateDO formTemplate = dataTemplateService.getLatestDataByKey(formKey); + Long formTemplateId = formTemplate.getId(); + //处理物料试剂 List materialList = materialInfomationService.getListNeedByRule(ruleParam); List materialIds = convertList(materialList, MaterialInfoWithBizConfigVO::getId); @@ -105,12 +122,13 @@ public class DevicePeriodCheckServiceImpl implements DevicePeriodCheckService, B for (MaterialInfoWithBizConfigVO material : materialList) { DeviceConfigBusinessRuleDO rule = material.getRule(); Long deviceId = material.getId(); - initPeriodCheckData(planId, checkList, lastMaterialDataList, rule, deviceId, formTemplateId); + initPeriodCheckData(planId, checkList, lastMaterialDataList, rule, deviceId, formTemplateId, DeviceConstant.PERIOD_CHECK_TAGET_MATERIAL); } devicePeriodCheckMapper.insertBatch(checkList); } - private void initPeriodCheckData(Long planId, List checkList, List lastCheckList, DeviceConfigBusinessRuleDO rule, Long deviceId, Long formTemplateId) { + private void initPeriodCheckData(Long planId, List checkList, List lastCheckList, DeviceConfigBusinessRuleDO rule, Long deviceId, + Long formTemplateId, String checkTarget) { DevicePeriodCheckDO data = new DevicePeriodCheckDO(); DevicePeriodCheckVO lastCheck = null; for(DevicePeriodCheckVO check : lastCheckList){ @@ -130,6 +148,7 @@ public class DevicePeriodCheckServiceImpl implements DevicePeriodCheckService, B data.setFrequencyRemark(rule.getFrequencyRemark()); data.setFlowStatus(QmsCommonConstant.NOT_START); data.setFormId(formTemplateId); + data.setCheckTarget(checkTarget); checkList.add(data); } @@ -144,8 +163,13 @@ public class DevicePeriodCheckServiceImpl implements DevicePeriodCheckService, B @Override - public IPage queryPageList(Page page, DevicePeriodCheckPageReqVO pageReqVO) { - return devicePeriodCheckMapper.queryPageList(page, pageReqVO); + public IPage queryPageListDevice(Page page, DevicePeriodCheckPageReqVO pageReqVO) { + return devicePeriodCheckMapper.queryPageListDevice(page, pageReqVO); + } + + @Override + public IPage queryPageListMaterial(Page page, DevicePeriodCheckPageReqVO pageReqVO) { + return devicePeriodCheckMapper.queryPageListMaterial(page, pageReqVO); } @Override @@ -199,15 +223,35 @@ public class DevicePeriodCheckServiceImpl implements DevicePeriodCheckService, B } @Override - public DevicePeriodCheckVO getDevicePeriodCheckVO(Long id) { + public DevicePeriodCheckVO getVoDevice(Long id) { Page page = new Page<>(1,10); DevicePeriodCheckPageReqVO param = new DevicePeriodCheckPageReqVO(); param.setId( id); - IPage pageList = queryPageList(page, param); + IPage pageList = queryPageListDevice(page, param); PageResult pageResult = new PageResult<>(pageList.getRecords(), pageList.getTotal()); if(pageResult.getList().isEmpty()) return null; - return pageResult.getList().get(0); + DevicePeriodCheckVO vo = pageResult.getList().get(0); + //处理审批意见 + JSONObject opinion = dataOpinionService.assembleOpinion(id); + vo.setSignatureData( opinion); + return vo; + } + + @Override + public DevicePeriodCheckVO getVoMaterial(Long id) { + Page page = new Page<>(1,10); + DevicePeriodCheckPageReqVO param = new DevicePeriodCheckPageReqVO(); + param.setId( id); + IPage pageList = queryPageListMaterial(page, param); + PageResult pageResult = new PageResult<>(pageList.getRecords(), pageList.getTotal()); + if(pageResult.getList().isEmpty()) + return null; + DevicePeriodCheckVO vo = pageResult.getList().get(0); + //处理审批意见 + JSONObject opinion = dataOpinionService.assembleOpinion(id); + vo.setSignatureData( opinion); + return vo; } @Override @@ -220,12 +264,46 @@ public class DevicePeriodCheckServiceImpl implements DevicePeriodCheckService, B } @Override - public void updateDevicePeriodCheck(DevicePeriodCheckSaveReqVO updateReqVO) { + public DevicePeriodCheckRespVO createByDeviceId(DevicePeriodCheckSaveReqVO createReqVO) { + Long deviceId = createReqVO.getDeviceId(); + if(deviceId == null) + throw exception0(DEVICE_PERIOD_CHECK_NOT_EXISTS.getCode(), "请选择设备或标准物质"); + JSONObject ruleParam = new JSONObject(); + ruleParam.put("businessType", DeviceConstant.PERIOD_TYPE); + ruleParam.put("deviceId", deviceId); + List deviceList = deviceInfomationService.getListNeedByRule(ruleParam); + String formKey = dictionaryBusinessService.getValueByDataKey(formDicKey); + DataTemplateDO formTemplate = dataTemplateService.getLatestDataByKey(formKey); + Long formTemplateId = formTemplate.getId(); + DevicePeriodCheckDO entity = new DevicePeriodCheckDO(); + entity.setDeviceId(deviceId); + entity.setPlanId(0L); + entity.setEffectiveFlag("1"); + entity.setFormId(formTemplateId); + entity.setFlowStatus(QmsCommonConstant.NOT_START); + if(deviceList.isEmpty()){ + devicePeriodCheckMapper.insert(entity); + return BeanUtils.toBean(entity, DevicePeriodCheckRespVO.class); + } + DeviceInfoWithBizConfigVO configVO = deviceList.get(0); + DeviceConfigBusinessRuleDO rule = configVO.getRule(); + if(rule == null){ + devicePeriodCheckMapper.insert(entity); + return BeanUtils.toBean(entity, DevicePeriodCheckRespVO.class); + } + entity.setFrequencyRemark(rule.getFrequencyRemark()); + devicePeriodCheckMapper.insert(entity); + return BeanUtils.toBean(entity, DevicePeriodCheckRespVO.class); + } + + @Override + public DevicePeriodCheckDO updateDevicePeriodCheck(DevicePeriodCheckSaveReqVO updateReqVO) { // 校验存在 validateDevicePeriodCheckExists(updateReqVO.getId()); // 更新 DevicePeriodCheckDO updateObj = BeanUtils.toBean(updateReqVO, DevicePeriodCheckDO.class); devicePeriodCheckMapper.updateById(updateObj); + return updateObj; } @Override diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/CommonRecordController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/CommonRecordController.java index 86ff169d..619bc733 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/CommonRecordController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/CommonRecordController.java @@ -6,6 +6,9 @@ import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore; import com.zt.plat.framework.security.core.LoginUser; import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils; +import com.zt.plat.module.qms.resource.record.controller.admin.recordassign.vo.RecordAssignRespVO; +import com.zt.plat.module.qms.resource.record.dal.dataobject.recordassign.RecordAssignDO; +import com.zt.plat.module.qms.resource.record.service.recordassign.RecordAssignService; import com.zt.plat.module.system.api.dept.DeptApi; import com.zt.plat.module.system.api.dept.dto.DeptRespDTO; import com.zt.plat.module.system.api.user.AdminUserApi; @@ -44,6 +47,30 @@ public class CommonRecordController { @Resource private PermissionCommonApi permissionCommonApi; + @Resource + private RecordAssignService recordAssignService; + + @GetMapping("/dept-assign-list") + @Operation(summary = "获取当前用户所在公司的所有部门,以及分发号") + public CommonResult> getDeptAssignList() { + CommonResult> deptList = this.getDeptList(); + if (ObjectUtils.isEmpty(deptList)) return CommonResult.success(new ArrayList<>()); + List data = deptList.getData(); + List deptIds = data.stream().map(DeptRespDTO::getId).toList(); + List recordAssignDOList = recordAssignService.selectListByTargetIds(deptIds); + return CommonResult.success(recordAssignDOList); + } + + @GetMapping("/user-assign-list") + @Operation(summary = "获取当前用户所在公司的所有部门,以及分发号") + public CommonResult> getUserAssignList() { + CommonResult> deptList = this.getUserList(); + if (ObjectUtils.isEmpty(deptList)) return CommonResult.success(new ArrayList<>()); + List data = deptList.getData(); + List deptIds = data.stream().map(AdminUserRespDTO::getId).toList(); + List recordAssignDOList = recordAssignService.selectListByTargetIds(deptIds); + return CommonResult.success(recordAssignDOList); + } @GetMapping("/dept-list") @Operation(summary = "获取当前用户所在公司的所有部门") @@ -80,7 +107,7 @@ public class CommonRecordController { */ private void getChildDeptListRecursive(List list, List allDeptList, int depth) { // 递归深度限制为4层 - if (ObjectUtils.isEmpty(list) || depth >= 4) { + if (ObjectUtils.isEmpty(list) || depth >= 3) { return; } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/RecordApplyController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/RecordApplyController.java index 9440ba57..2f16c590 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/RecordApplyController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/RecordApplyController.java @@ -134,37 +134,6 @@ public class RecordApplyController extends AbstractFileUploadController implemen return success(BeanUtils.toBean(pageResult, RecordApplyPageReqVO.class)); } - @GetMapping("/recordDistributePage") - @Operation(summary = "文件分发分页") - //@PreAuthorize("@ss.hasPermission('qms:record-record:query')") - public CommonResult> recordDistributePage(@Valid RecordApplyPageReqVO pageReqVO) { - LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); - Long userId = loginUser.getId(); - pageReqVO.setApplyUserId(userId); - PageResult recordApplyJoinPageVOPageResult = recordApplyService.recordDistributePage(pageReqVO); - return success(recordApplyJoinPageVOPageResult); - } - - @GetMapping("/recordUpdatePage") - @Operation(summary = "文件更改申请分页") - //@PreAuthorize("@ss.hasPermission('qms:record-record:query')") - public CommonResult> recordUpdatePage(@Valid RecordApplyPageReqVO pageReqVO) { - LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); - Long userId = loginUser.getId(); - pageReqVO.setApplyUserId(userId); - return success(recordApplyService.recordUpdatePage(pageReqVO)); - } - - @GetMapping("/recordInvalidPage") - @Operation(summary = "文件更改申请分页") - //@PreAuthorize("@ss.hasPermission('qms:record-record:query')") - public CommonResult> recordInvalidPage(@Valid RecordApplyPageReqVO pageReqVO) { - LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); - Long userId = loginUser.getId(); - pageReqVO.setApplyUserId(userId); - return success(recordApplyService.recordInvalidPage(pageReqVO)); - } - @GetMapping("/export-excel") @Operation(summary = "导出文件记录通用申请 Excel") //@PreAuthorize("@ss.hasPermission('qms:record-apply:export')") diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/vo/RecordApplyPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/vo/RecordApplyPageReqVO.java index 557a5484..581390b2 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/vo/RecordApplyPageReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/vo/RecordApplyPageReqVO.java @@ -44,8 +44,8 @@ public class RecordApplyPageReqVO extends PageParam { @Schema(description = "评审范围") private String reviewRange; - @Schema(description = "分发目标") - private String assignTarget; +// @Schema(description = "分发目标") +// private String assignTarget; @Schema(description = "参加评审部门") private String targetDepartmentIds; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/vo/RecordApplyRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/vo/RecordApplyRespVO.java index fa114438..0291308a 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/vo/RecordApplyRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/vo/RecordApplyRespVO.java @@ -56,8 +56,8 @@ public class RecordApplyRespVO { @ExcelProperty("评审范围") private String reviewRange; - @Schema(description = "分发目标") - private String assignTarget; +// @Schema(description = "分发目标") +// private String assignTarget; @Schema(description = "参加评审部门") @ExcelProperty("参加评审部门") diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/vo/RecordApplySaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/vo/RecordApplySaveReqVO.java index ae70bc2f..759d3203 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/vo/RecordApplySaveReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapply/vo/RecordApplySaveReqVO.java @@ -45,8 +45,8 @@ public class RecordApplySaveReqVO { @ExcelProperty("部门名称") private String applyDepartmentName; - @Schema(description = "分发目标") - private String assignTarget; +// @Schema(description = "分发目标") +// private String assignTarget; @Schema(description = "评审时间") private LocalDateTime reviewTime; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/vo/RecordApplyDetailPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/vo/RecordApplyDetailPageReqVO.java index 89203f2b..d6f38c9f 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/vo/RecordApplyDetailPageReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/vo/RecordApplyDetailPageReqVO.java @@ -41,8 +41,14 @@ public class RecordApplyDetailPageReqVO extends PageParam { @Schema(description = "是否保留") private String saveFlag; - @Schema(description = "保留结束日期") - private LocalDateTime saveEndDate; + @Schema(description = "分发号") + private String assignCode; + + @Schema(description = "分发编号") + private String assignId; + + @Schema(description = "结束日期") + private LocalDateTime endDate; @Schema(description = "是否长期有效") private String permanently; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/vo/RecordApplyDetailRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/vo/RecordApplyDetailRespVO.java index f2185be7..280e1b94 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/vo/RecordApplyDetailRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/vo/RecordApplyDetailRespVO.java @@ -50,6 +50,12 @@ public class RecordApplyDetailRespVO { @ExcelProperty("更改原因") private String modifyCause; + @Schema(description = "分发号") + private String assignCode; + + @Schema(description = "分发编号") + private String assignId; + @Schema(description = "表单数据") @ExcelProperty("表单数据") private String formData; @@ -62,7 +68,7 @@ public class RecordApplyDetailRespVO { private String saveFlag; @Schema(description = "保留结束日期") - private LocalDateTime saveEndDate; + private LocalDateTime endDate; @Schema(description = "开始日期") @ExcelProperty("开始日期") diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/vo/RecordApplyDetailSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/vo/RecordApplyDetailSaveReqVO.java index c4453aed..dad68a93 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/vo/RecordApplyDetailSaveReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordapplydetail/vo/RecordApplyDetailSaveReqVO.java @@ -40,8 +40,8 @@ public class RecordApplyDetailSaveReqVO { @Schema(description = "是否保留") private String saveFlag; - @Schema(description = "保留结束日期") - private LocalDateTime saveEndDate; + @Schema(description = "结束日期") + private LocalDateTime endDate; private String formData; @@ -63,8 +63,12 @@ public class RecordApplyDetailSaveReqVO { @Schema(description = "备注") private String remark; - //================================ @Schema(description = "分发号") private String assignCode; + @Schema(description = "分发编号") + private String assignId; + + //================================ + } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordassign/RecordAssignController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordassign/RecordAssignController.java index bc0c4f6d..649ea5a1 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordassign/RecordAssignController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordassign/RecordAssignController.java @@ -9,6 +9,7 @@ import com.zt.plat.framework.common.pojo.PageParam; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO; import com.zt.plat.framework.common.util.object.BeanUtils; +import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore; import com.zt.plat.framework.excel.core.util.ExcelUtils; import com.zt.plat.module.qms.resource.record.controller.admin.recordassign.vo.RecordAssignPageReqVO; import com.zt.plat.module.qms.resource.record.controller.admin.recordassign.vo.RecordAssignRespVO; @@ -35,6 +36,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success; @RestController @RequestMapping("/qms/resource/record-assign") @Validated +@DeptDataPermissionIgnore(enable = "true") @FileUploadController(source = "qms.recordassign") public class RecordAssignController extends AbstractFileUploadController implements BusinessControllerMarker{ diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordassign/vo/RecordAssignPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordassign/vo/RecordAssignPageReqVO.java index 4faee7a6..da9b0118 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordassign/vo/RecordAssignPageReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordassign/vo/RecordAssignPageReqVO.java @@ -44,8 +44,11 @@ public class RecordAssignPageReqVO extends PageParam { @Schema(description = "长期有效") private String permanently; - @Schema(description = "通知") - private String adviceFlag; + @Schema(description = "原始父级Id") + private String mainId; + + @Schema(description = "当前版标志") + private Integer currentFlag; @Schema(description = "所属部门") private String systemDepartmentCode; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordassign/vo/RecordAssignRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordassign/vo/RecordAssignRespVO.java index e572f176..a0a3e9c9 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordassign/vo/RecordAssignRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordassign/vo/RecordAssignRespVO.java @@ -16,10 +16,6 @@ public class RecordAssignRespVO { @ExcelProperty("ID") private Long id; -// @Schema(description = "申请明细ID", example = "13369") -// @ExcelProperty("申请明细ID") -// private Long applyDetailId; - @Schema(description = "目标类型,人/部门", example = "2") @ExcelProperty("目标类型,人/部门") private String targetType; @@ -51,8 +47,11 @@ public class RecordAssignRespVO { @Schema(description = "是否收回") private Integer CollectionFlag; - @Schema(description = "通知") - private String adviceFlag; + @Schema(description = "原始父级Id") + private String mainId; + + @Schema(description = "当前版标志") + private Integer currentFlag; @Schema(description = "所属部门") @ExcelProperty("所属部门") diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordassign/vo/RecordAssignSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordassign/vo/RecordAssignSaveReqVO.java index 6a9675f7..c2f0286f 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordassign/vo/RecordAssignSaveReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordassign/vo/RecordAssignSaveReqVO.java @@ -14,9 +14,6 @@ public class RecordAssignSaveReqVO { @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "28660") private Long id; - @Schema(description = "申请明细ID", example = "13369") - private Long applyDetailId; - @Schema(description = "目标类型,人/部门", example = "2") private String targetType; @@ -44,8 +41,11 @@ public class RecordAssignSaveReqVO { @Schema(description = "长期有效") private String permanently; - @Schema(description = "通知") - private String adviceFlag; + @Schema(description = "原始父级Id") + private String mainId; + + @Schema(description = "当前版标志") + private Integer currentFlag; @Schema(description = "所属部门") private String systemDepartmentCode; @@ -53,4 +53,8 @@ public class RecordAssignSaveReqVO { @Schema(description = "备注") private String remark; + //============================= + + private Integer isModify; // 是否更改 + } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/RecordPermissionController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/RecordPermissionController.java index 07e3901f..a81fdddd 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/RecordPermissionController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/RecordPermissionController.java @@ -144,4 +144,16 @@ public class RecordPermissionController extends AbstractFileUploadController imp BeanUtils.toBean(list, RecordPermissionRespVO.class)); } + /** + * 定时更新 权限到期,定时回收权限 + * @return + */ + @GetMapping("/timing-withdrawPermissionJob") + @Operation(summary = "定时更新文件、模板、记录状态") + //@PreAuthorize("@ss.hasPermission('qms:record-record:update')") + public CommonResult timingWithdrawPermissionJob() { + recordPermissionService.withdrawPermissionJob(); + return success(true); + } + } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionPageReqVO.java index 2d146de8..5ca99309 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionPageReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionPageReqVO.java @@ -56,7 +56,7 @@ public class RecordPermissionPageReqVO extends PageParam { private String saveFlag; @Schema(description = "保留结束日期") - private String saveEndDate; + private LocalDateTime saveEndDate; @Schema(description = "所属部门") private String systemDepartmentCode; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionRespVO.java index ac24fcf1..7970cea0 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionRespVO.java @@ -71,7 +71,7 @@ public class RecordPermissionRespVO { private String saveFlag; @Schema(description = "保留结束日期") - private String saveEndDate; + private LocalDateTime saveEndDate; @Schema(description = "所属部门") @ExcelProperty("所属部门") diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionSaveReqVO.java index ab49d3e3..a8304a43 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionSaveReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordpermission/vo/RecordPermissionSaveReqVO.java @@ -58,7 +58,7 @@ public class RecordPermissionSaveReqVO { private String saveFlag; @Schema(description = "保留结束日期") - private String saveEndDate; + private LocalDateTime saveEndDate; @Schema(description = "所属部门") private String systemDepartmentCode; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/RecordRecordController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/RecordRecordController.java index db9ac39c..3edf02c0 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/RecordRecordController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/RecordRecordController.java @@ -142,16 +142,6 @@ public class RecordRecordController extends AbstractFileUploadController impleme } - // 流程-评审--查询记录列表 -// @GetMapping("/getRecordList") -// @Operation(summary = "获得文件、模板、记录分页") -// //@PreAuthorize("@ss.hasPermission('qms:record-record:query')") -// public CommonResult> getRecordList(RecordRecordPageReqVO pageReqVO) { -// -// List result = recordRecordService.getRecordList(pageReqVO); -// return success(BeanUtils.toBean(result, RecordRecordRespVO.class)); -// } - /** * 流程-查看申请--查询记录列表 * 参数: @@ -166,6 +156,11 @@ public class RecordRecordController extends AbstractFileUploadController impleme } // 已由 XXL-Job 定时任务(updateRecordStatusJob)驱动,此接口保留用于手动触发/测试 + + /** + * 定时更新文件记录生效状态 + * @return + */ @GetMapping("/timing-updateRecordStatus") @Operation(summary = "定时更新文件、模板、记录状态") //@PreAuthorize("@ss.hasPermission('qms:record-record:update')") @@ -174,4 +169,16 @@ public class RecordRecordController extends AbstractFileUploadController impleme return success(true); } + /** + * 定时更新文件到期状态(到期自动作废) + * @return + */ + @GetMapping("/timing-updateExpireRecordJob") + @Operation(summary = "定时更新文件、模板、记录状态") + //@PreAuthorize("@ss.hasPermission('qms:record-record:update')") + public CommonResult timingUpdateExpireRecordJob() { + recordRecordService.updateExpireRecordJob(); + return success(true); + } + } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordPageReqVO.java index f7c09dd4..505733ed 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordPageReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordPageReqVO.java @@ -1,12 +1,11 @@ package com.zt.plat.module.qms.resource.record.controller.admin.recordrecord.vo; -import com.baomidou.mybatisplus.annotation.TableField; -import com.zt.plat.module.qms.core.aspect.annotation.Dict; -import lombok.*; -import java.util.*; -import io.swagger.v3.oas.annotations.media.Schema; import com.zt.plat.framework.common.pojo.PageParam; +import com.zt.plat.module.qms.core.aspect.annotation.Dict; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; + import java.time.LocalDateTime; import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -57,7 +56,7 @@ public class RecordRecordPageReqVO extends PageParam { @Schema(description = "是否需要提交(用来判断文件是否需要走流程)") @Dict(dicCode = "yes_or_no") - private String submitFlag; + private Integer submitFlag; @Schema(description = "文件记录状态,0: 无效,1: 有效") @Dict(dicCode = "file_record_status") diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordRespVO.java index 42c15793..54d82343 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordRespVO.java @@ -1,21 +1,15 @@ package com.zt.plat.module.qms.resource.record.controller.admin.recordrecord.vo; -import com.baomidou.mybatisplus.annotation.TableField; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.module.infra.api.businessfile.dto.BusinessFileWithUrlRespDTO; import com.zt.plat.module.qms.core.aspect.annotation.Dict; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; - -import java.util.*; - -import org.springframework.format.annotation.DateTimeFormat; +import lombok.Data; import java.time.LocalDateTime; - -import com.alibaba.excel.annotation.*; - -import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; +import java.util.List; @Schema(description = "管理后台 - 文件、模板、记录 Response VO") @Data @@ -84,7 +78,7 @@ public class RecordRecordRespVO { @Schema(description = "是否需要提交(用来判断文件是否需要走流程)") @Dict(dicCode = "yes_or_no") @ExcelProperty("是否需要提交(用来判断文件是否需要走流程)") - private String submitFlag; + private Integer submitFlag; @Schema(description = "文件记录状态,0: 无效,1: 有效") @ExcelProperty("文件记录状态,0: 无效,1: 有效") diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordSaveReqVO.java index 1dadb4c4..557ecab6 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordSaveReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordSaveReqVO.java @@ -1,6 +1,5 @@ package com.zt.plat.module.qms.resource.record.controller.admin.recordrecord.vo; -import com.alibaba.excel.annotation.ExcelProperty; import com.zt.plat.module.qms.resource.clientManage.controller.vo.UploadFileVo; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotEmpty; @@ -62,7 +61,7 @@ public class RecordRecordSaveReqVO { private Integer permanently; @Schema(description = "是否需要提交(用来判断文件是否需要走流程)") - private String submitFlag; + private Integer submitFlag; @Schema(description = "文件记录状态,0: 无效,1: 有效") private Integer recordStatus; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordapply/RecordApplyDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordapply/RecordApplyDO.java index 9aca278c..1a3f3bc4 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordapply/RecordApplyDO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordapply/RecordApplyDO.java @@ -86,11 +86,11 @@ public class RecordApplyDO extends BusinessBaseDO { */ @TableField("RVW_RNG") private String reviewRange; - /** - * 分发目标 - */ - @TableField("ASN_TGT") - private String assignTarget; +// /** +// * 分发目标 +// */ +// @TableField("ASN_TGT") +// private String assignTarget; /** * 目标部门 */ diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordapplydetail/RecordApplyDetailDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordapplydetail/RecordApplyDetailDO.java index b1389114..45d9b9be 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordapplydetail/RecordApplyDetailDO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordapplydetail/RecordApplyDetailDO.java @@ -82,10 +82,20 @@ public class RecordApplyDetailDO extends BusinessBaseDO { @TableField("SVE_FLG") private String saveFlag; /** - * 保留结束日期 + * 分发号 */ - @TableField("SVE_END_DT") - private LocalDateTime saveEndDate; + @TableField("ASN_CD") + private String assignCode; + /** + * 分发编号 + */ + @TableField("ASN_ID") + private String assignId; + /** + * 结束日期 + */ + @TableField("END_DT") + private LocalDateTime endDate; /** * 是否长期有效 */ diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordassign/RecordAssignDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordassign/RecordAssignDO.java index 91ba5e43..09c6cb08 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordassign/RecordAssignDO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordassign/RecordAssignDO.java @@ -31,11 +31,6 @@ public class RecordAssignDO extends BusinessBaseDO { */ @TableId(type = IdType.ASSIGN_ID) private Long id; - /** - * 申请ID - */ -// @TableField("APL_DL_ID") -// private Long applyDetailId; /** * 目标类型,人/部门 */ @@ -82,8 +77,13 @@ public class RecordAssignDO extends BusinessBaseDO { /** * 通知 */ - @TableField("ADV_FLG") - private String adviceFlag; + @TableField("MAIN_ID") + private String mainId; + /** + * 当前版标志 + */ + @TableField("CRNT_FLG") + private Integer currentFlag; /** * 所属部门 */ diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordpermission/RecordPermissionDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordpermission/RecordPermissionDO.java index 2f124cfa..517097bf 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordpermission/RecordPermissionDO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordpermission/RecordPermissionDO.java @@ -102,8 +102,8 @@ public class RecordPermissionDO extends BusinessBaseDO { /** * 保留结束日期 */ - @TableField("SVE_FLG") - private String saveEndDate; + @TableField("SVE_END_DT") + private LocalDateTime saveEndDate; /** * 所属部门 */ diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordrecord/RecordRecordDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordrecord/RecordRecordDO.java index 4b393c64..bdb9a13c 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordrecord/RecordRecordDO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/dataobject/recordrecord/RecordRecordDO.java @@ -102,7 +102,7 @@ public class RecordRecordDO extends BusinessBaseDO { * 是否需要提交(用来判断文件是否需要走流程) */ @TableField("SBM_FLG") - private String submitFlag; + private Integer submitFlag; /** * 是否需要提交(用来判断文件是否需要走流程) */ diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordApplyDetailMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordApplyDetailMapper.java index 4b811e0f..225248bc 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordApplyDetailMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordApplyDetailMapper.java @@ -37,26 +37,6 @@ public interface RecordApplyDetailMapper extends BaseMapperX selectJoinByDocumentIdAndBusinessType(Long documentId, String businessType); - - List selectDetailAndRecordList(@Param("applyId") Long applyId); - - List selectDistributionDetailAndRecordList(@Param("applyId") Long applyId); - IPage selectDetailAndApplyList(Page page, RecordApplyDetailPageReqVO reqVO); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordApplyMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordApplyMapper.java index 5b3a7de6..f6660fc8 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordApplyMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordApplyMapper.java @@ -46,14 +46,14 @@ public interface RecordApplyMapper extends BaseMapperX { .orderByDesc(RecordApplyDO::getId)); } - List selectApplyByStatus(String businessType, java.util.List documentIds, java.util.List businessStatuses); +// List selectApplyByStatus(String businessType, java.util.List documentIds, java.util.List businessStatuses); // 分页查询--文件分发 - IPage recordDistributePage(Page page,RecordApplyPageReqVO respVO); +// IPage recordDistributePage(Page page,RecordApplyPageReqVO respVO); // 分页查询--文件更改 - IPage recordUpdatePage(Page page, RecordApplyPageReqVO respVO); +// IPage recordUpdatePage(Page page, RecordApplyPageReqVO respVO); // 分页查询--文件作废 - IPage recordInvalidPage(Page page, RecordApplyPageReqVO respVO); +// IPage recordInvalidPage(Page page, RecordApplyPageReqVO respVO); } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordAssignMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordAssignMapper.java index 5a276148..5753ff36 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordAssignMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordAssignMapper.java @@ -17,7 +17,8 @@ public interface RecordAssignMapper extends BaseMapperX { default PageResult selectPage(RecordAssignPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() -// .eqIfPresent(RecordAssignDO::getApplyDetailId, reqVO.getApplyDetailId()) + .eqIfPresent(RecordAssignDO::getMainId, reqVO.getMainId()) + .eqIfPresent(RecordAssignDO::getCurrentFlag, reqVO.getCurrentFlag()) .eqIfPresent(RecordAssignDO::getTargetType, reqVO.getTargetType()) .likeIfPresent(RecordAssignDO::getTargetName, reqVO.getTargetName()) .eqIfPresent(RecordAssignDO::getTargetId, reqVO.getTargetId()) diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRecordMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRecordMapper.java index ac6c62b8..852f51c8 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRecordMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRecordMapper.java @@ -57,44 +57,44 @@ public interface RecordRecordMapper extends BaseMapperX { * 关联关系:recordRecord.id = recordApplyDetail.documentId * recordApplyDetail.applyId = recordApply.id */ - IPage selectRecordWithApplyPage(Page page, @Param("reqVO") RecordRecordPageReqVO reqVO); +// IPage selectRecordWithApplyPage(Page page, @Param("reqVO") RecordRecordPageReqVO reqVO); /** * 文件评审分页查询:关联查询 recordApply、recordApplyDetail、recordRecord * 查询条件:recordApply 的 businessType = '文件评审' */ - @Select("SELECT DISTINCT trr.* FROM t_rcd_rcd trr " + - "INNER JOIN t_rcd_apl_dtl trad ON trr.ID = trad.DOC_ID " + - "INNER JOIN t_rcd_apl tra ON trad.APL_ID = tra.ID " + - "WHERE tra.BSN_TP = #{businessType} " + - "ORDER BY trr.ID DESC " + - "LIMIT #{offset}, #{pageSize}") - List selectRecordReviewPage(String businessType, int offset, int pageSize); +// @Select("SELECT DISTINCT trr.* FROM t_rcd_rcd trr " + +// "INNER JOIN t_rcd_apl_dtl trad ON trr.ID = trad.DOC_ID " + +// "INNER JOIN t_rcd_apl tra ON trad.APL_ID = tra.ID " + +// "WHERE tra.BSN_TP = #{businessType} " + +// "ORDER BY trr.ID DESC " + +// "LIMIT #{offset}, #{pageSize}") +// List selectRecordReviewPage(String businessType, int offset, int pageSize); /** * 获取文件评审总数 */ - @Select("SELECT COUNT(DISTINCT trr.ID) FROM t_rcd_rcd trr " + - "INNER JOIN t_rcd_apl_dtl trad ON trr.ID = trad.DOC_ID " + - "INNER JOIN t_rcd_apl tra ON trad.APL_ID = tra.ID " + - "WHERE tra.BSN_TP = #{businessType}") - Long selectRecordReviewCount(String businessType); +// @Select("SELECT COUNT(DISTINCT trr.ID) FROM t_rcd_rcd trr " + +// "INNER JOIN t_rcd_apl_dtl trad ON trr.ID = trad.DOC_ID " + +// "INNER JOIN t_rcd_apl tra ON trad.APL_ID = tra.ID " + +// "WHERE tra.BSN_TP = #{businessType}") +// Long selectRecordReviewCount(String businessType); /** * 通过 idPath 模糊查询 关联的文件记录 * - * @param pathList + * @param * @return */ - IPage selectRecordByIdPathLike(Page page, - @Param("reqVO") RecordRecordPageReqVO reqVO, - @Param("pathList") List pathList); +// IPage selectRecordByIdPathLike(Page page, +// @Param("reqVO") RecordRecordPageReqVO reqVO, +// @Param("pathList") List pathList); IPage getSubmitEffectRecordPage(Page page, RecordRecordPageReqVO reqVO, List categoryIds); - IPage getEffectiveRecordBySubmitFlagPage(Page page, @Param("reqVO") RecordRecordPageReqVO reqVO); +// IPage getEffectiveRecordBySubmitFlagPage(Page page, @Param("reqVO") RecordRecordPageReqVO reqVO); IPage getNotSubmitEffectRecordPage(Page page, @Param("reqVO") RecordRecordPageReqVO reqVO, List categoryIds); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/job/RecordRecordJob.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/job/RecordRecordJob.java index f9d0ed5d..27431506 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/job/RecordRecordJob.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/job/RecordRecordJob.java @@ -3,6 +3,7 @@ package com.zt.plat.module.qms.resource.record.job; import com.xxl.job.core.context.XxlJobHelper; import com.xxl.job.core.handler.annotation.XxlJob; import com.zt.plat.module.qms.resource.record.service.recordapply.RecordApplyService; +import com.zt.plat.module.qms.resource.record.service.recordpermission.RecordPermissionService; import com.zt.plat.module.qms.resource.record.service.recordrecord.RecordRecordService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -17,6 +18,8 @@ public class RecordRecordJob { @Autowired private RecordRecordService recordRecordService; + @Autowired + private RecordPermissionService recordPermissionService; /** * 定时更新文件记录生效状态 @@ -70,7 +73,7 @@ public class RecordRecordJob { public void withdrawPermissionJob() { log.info("[withdrawPermissionJob] 开始执行文件记录生效状态更新任务"); try { - Integer updateCount = recordRecordService.withdrawPermissionJob(); + Integer updateCount = recordPermissionService.withdrawPermissionJob(); log.info("[withdrawPermissionJob] 任务执行成功,共更新 {} 条记录", updateCount); XxlJobHelper.handleSuccess(String.format("任务执行成功,共更新 %d 条记录", updateCount)); } catch (Exception e) { diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapply/RecordApplyService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapply/RecordApplyService.java index 55c51d5e..8775f94d 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapply/RecordApplyService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapply/RecordApplyService.java @@ -90,24 +90,4 @@ public interface RecordApplyService { */ CommonResult callback(QmsBpmDTO reqDTO); - /** - * 文件评审分页查询 - * @param pageReqVO - * @return - */ - -// PageResult recordReviewPage(@Valid RecordRecordPageReqVO pageReqVO); - - // 分发 - PageResult recordDistributePage(@Valid RecordApplyPageReqVO pageReqVO); - - // 更改申请 - PageResult recordUpdatePage(@Valid RecordApplyPageReqVO pageReqVO); - - // 更改作废 - PageResult recordInvalidPage(@Valid RecordApplyPageReqVO pageReqVO); - -// Integer updateDistributionPermissionJob(); - -// List selectApplyByStatus(String businessType, java.util.List documentIds, java.util.List businessStatuses); } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapply/RecordApplyServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapply/RecordApplyServiceImpl.java index 688bb136..6c07972e 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapply/RecordApplyServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapply/RecordApplyServiceImpl.java @@ -3,7 +3,7 @@ package com.zt.plat.module.qms.resource.record.service.recordapply; import cn.hutool.core.collection.CollUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zt.plat.framework.common.pojo.CommonResult; @@ -15,9 +15,7 @@ import com.zt.plat.module.bpm.api.task.BpmProcessInstanceApi; import com.zt.plat.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; import com.zt.plat.module.qms.api.task.BMPCallbackInterface; import com.zt.plat.module.qms.api.task.dto.QmsBpmDTO; -import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentMainDO; import com.zt.plat.module.qms.common.data.dal.dataobject.DataCommonType; -import com.zt.plat.module.qms.common.data.dal.dataobject.DataOpinionDO; import com.zt.plat.module.qms.common.data.service.DataKeyCheckService; import com.zt.plat.module.qms.common.data.service.DataOpinionService; import com.zt.plat.module.qms.common.service.BusinessFileService; @@ -31,10 +29,8 @@ import com.zt.plat.module.qms.resource.record.controller.admin.recordapply.vo.Re import com.zt.plat.module.qms.resource.record.controller.admin.recordapply.vo.RecordApplySaveReqVO; import com.zt.plat.module.qms.resource.record.controller.admin.recordapplydetail.vo.RecordApplyDetailPageReqVO; import com.zt.plat.module.qms.resource.record.controller.admin.recordapplydetail.vo.RecordApplyDetailSaveReqVO; -import com.zt.plat.module.qms.resource.record.controller.admin.recordrecord.vo.RecordRecordSaveReqVO; import com.zt.plat.module.qms.resource.record.dal.dataobject.recordapply.RecordApplyDO; import com.zt.plat.module.qms.resource.record.dal.dataobject.recordapplydetail.RecordApplyDetailDO; -import com.zt.plat.module.qms.resource.record.dal.dataobject.recordassign.RecordAssignDO; import com.zt.plat.module.qms.resource.record.dal.dataobject.recordcategory.RecordCategoryDO; import com.zt.plat.module.qms.resource.record.dal.dataobject.recordpermission.RecordPermissionDO; import com.zt.plat.module.qms.resource.record.dal.dataobject.recordrecord.RecordRecordDO; @@ -44,10 +40,6 @@ import com.zt.plat.module.qms.resource.record.service.recordassign.RecordAssignS import com.zt.plat.module.qms.resource.record.service.recordcategory.RecordCategoryService; import com.zt.plat.module.qms.resource.record.service.recordpermission.RecordPermissionService; import com.zt.plat.module.qms.resource.record.service.recordrecord.RecordRecordService; -import com.zt.plat.module.system.api.dept.DeptApi; -import com.zt.plat.module.system.api.dept.dto.DeptRespDTO; -import com.zt.plat.module.system.api.user.AdminUserApi; -import com.zt.plat.module.system.api.user.dto.AdminUserRespDTO; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -59,9 +51,7 @@ import java.text.SimpleDateFormat; import java.time.Instant; import java.time.LocalDateTime; import java.time.ZoneId; -import java.time.format.DateTimeFormatter; import java.util.*; -import java.util.stream.IntStream; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception0; @@ -101,12 +91,6 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn @Resource private BusinessFileService businessFileService; - @Resource - private AdminUserApi adminUserApi; - - @Resource - private DeptApi deptApi; - @Resource private RecordAssignService recordAssignService; @@ -119,6 +103,24 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn return BeanUtils.toBean(recordApply, RecordApplyRespVO.class); } + public boolean updateDistributionDetail(RecordApplySaveReqVO param, RecordApplySaveReqVO updateReqVO, RecordApplyDO recordApplyDO) { + Long applyId = updateReqVO.getId(); + List detailList = param.getDetailList(); + List recordApplyDetailDOS = recordApplyDetailService.selectAllList(applyId); + if (!ObjectUtils.isEmpty(recordApplyDetailDOS)) { + Long documentId = recordApplyDetailDOS.get(0).getDocumentId(); + // 判断文件是否改变 + Long newDocumentId = detailList.get(0).getDocumentId(); + if (!documentId.equals(newDocumentId)) { // 删除重新添加 + List deleteFileIdList = recordApplyDetailDOS.stream().map(RecordApplyDetailDO::getId).toList(); + recordApplyDetailService.deleteRecordApplyDetailListByIds(deleteFileIdList); + createApplyDetailData(updateReqVO, recordApplyDO); + return true; + } + } + return false; + } + @Override @Transactional(rollbackFor = Exception.class) public RecordApplyRespVO updateRecordApply(RecordApplySaveReqVO updateReqVO) { @@ -127,23 +129,29 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn Long applyId = updateReqVO.getId(); RecordApplyDO recordApplyDO = recordApplyMapper.selectById(applyId); if (ObjectUtils.isEmpty(recordApplyDO)) CommonResult.error(RECORD_APPLY_NOT_EXISTS); - // 查询所有明细 + // 分发单独处理 RecordApplyDO updateObj = BeanUtils.toBean(updateReqVO, RecordApplyDO.class); List detailList = updateObj.getDetailList(); + // 查询所有明细 + String businessType = recordApplyDO.getBusinessType(); + if (RecordConstants.BusinessType.DISTRIBUTION.equals(businessType)) { + boolean b = updateDistributionDetail(updateReqVO, updateReqVO, recordApplyDO); + if (b) return BeanUtils.toBean(recordApplyDO, RecordApplyRespVO.class); + } // 判断更新中的明细是否存在 //判断 detailList 中的数据 和 数据库中 recordApplyDetail 的数据是否一致,如果有相同的,数据保持不变,有新的,则插入; // detailList 中没有的数据,则删除 recordApplyDetail 表中的数据 List detailIds = new ArrayList<>(); List newDetailList = new ArrayList<>(); - detailList.forEach(item->{ + detailList.forEach(item -> { if (item.getId() != null) detailIds.add(item.getId()); // 有id的 else { item.setApplyId(applyId); - newDetailList.add( item); // 新数据 + newDetailList.add(item); // 新数据 } }); - List deleteDetailAllList = recordApplyDetailService.selectNotInDetailIdList(applyId,detailIds); - if (!ObjectUtils.isEmpty(deleteDetailAllList)){ + List deleteDetailAllList = recordApplyDetailService.selectNotInDetailIdList(applyId, detailIds); + if (!ObjectUtils.isEmpty(deleteDetailAllList)) { List deleteDetailIds = deleteDetailAllList.stream().map(RecordApplyDetailDO::getId).toList(); recordApplyDetailService.deleteRecordApplyDetailListByIds(deleteDetailIds); } @@ -151,7 +159,7 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn if (!ObjectUtils.isEmpty(newDetailList)) { recordApplyDetailService.createRecordApplyDetailBatch(newDetailList); } - String businessType = recordApplyDO.getBusinessType(); + updateReqVO.setBusinessType(businessType); recordApplyMapper.updateById(updateObj); @@ -197,11 +205,11 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn if (ObjectUtils.isEmpty(recordApplyDO)) return recordApplyDO; String businessType = recordApplyDO.getBusinessType(); List recordApplyDetailDOS; - if (businessType.equals(RecordConstants.BusinessType.DISTRIBUTION)) +// if (businessType.equals(RecordConstants.BusinessType.DISTRIBUTION)) recordApplyDetailDOS = recordApplyDetailService.selectAllList(id); - else - recordApplyDetailDOS = recordApplyDetailService.selectDetailAndRecordList(id); - if (!recordApplyDetailDOS.isEmpty()) recordApplyDO.setDetailList(recordApplyDetailDOS); +// else +// recordApplyDetailDOS = recordApplyDetailService.selectDetailAndRecordList(id); + recordApplyDO.setDetailList(recordApplyDetailDOS); return recordApplyDO; } @@ -243,7 +251,7 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn @Override @Transactional(rollbackFor = Exception.class) public CommonResult createApplyData(RecordApplySaveReqVO param) { - LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); if (ObjectUtils.isEmpty(loginUser)) throw exception0(CURRENT_USER_NOT_EXISTS.getCode(), "用户不存在"); List detailList = param.getDetailList(); @@ -258,23 +266,24 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn public CommonResult createApplyDetailData(RecordApplySaveReqVO param, RecordApplyDO recordApply) { List detailSaveReqVOList = new ArrayList<>(); String businessType = param.getBusinessType(); + List detailList = param.getDetailList(); if (ObjectUtils.isEmpty(businessType)) throw exception0(RECORD_APPLY_NOT_EXISTS.getCode(), "请选择业务类型"); switch (businessType) { case RecordConstants.BusinessType.REVIEW: // 评审 - detailSaveReqVOList = addReviewDetail(param, recordApply); + detailSaveReqVOList = addReviewDetail(detailList, recordApply); break; case RecordConstants.BusinessType.DISTRIBUTION: // 分发 - detailSaveReqVOList = addDistributionDetail(param, recordApply); + detailSaveReqVOList = addDistributionDetail(detailList, recordApply); break; case RecordConstants.BusinessType.RECORD_UPDATE: // 更改申请 - detailSaveReqVOList = addUpdateDetail(param, recordApply); + detailSaveReqVOList = addUpdateDetail(detailList, recordApply); break; case RecordConstants.BusinessType.INVALID: // 作废 - detailSaveReqVOList = addInvalidDetail(param, recordApply); + detailSaveReqVOList = addInvalidDetail(detailList, recordApply); break; case RecordConstants.BusinessType.VIEW_APPLY: // 查看 - detailSaveReqVOList = addViewApplyDetail(param, recordApply); + detailSaveReqVOList = addViewApplyDetail(detailList, recordApply); break; case RecordConstants.BusinessType.RECORD_SUBMIT: // 提交 Long recordId = param.getDetailList().get(0).getDocumentId(); // 记录Id @@ -293,8 +302,7 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn } // 保存评审明细 - public List addReviewDetail(RecordApplySaveReqVO param, RecordApplyDO recordApplyDO) { - List detailList = param.getDetailList(); + public List addReviewDetail(List detailList, RecordApplyDO recordApplyDO) { List detailSaveReqVOList = new ArrayList<>(); for (RecordApplyDetailSaveReqVO item : detailList) { RecordApplyDetailDO recordApplyDetailDO = new RecordApplyDetailDO(); @@ -309,12 +317,12 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn } // 添加分发明细 - public List addDistributionDetail(RecordApplySaveReqVO param, RecordApplyDO recordApplyDO) { - List detailList = param.getDetailList(); + public List addDistributionDetail(List detailList, RecordApplyDO recordApplyDO) { if (ObjectUtils.isEmpty(detailList)) throw exception0(RECORD_APPLY_DETAIL_NOT_EXISTS.getCode(), "申请明细不存在"); for (RecordApplyDetailSaveReqVO item : detailList) { + item.setId(null); // 更新使用 item.setApplyId(recordApplyDO.getId()); item.setApplyStartDate(LocalDateTime.now()); } @@ -323,8 +331,7 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn } // 添加更改申请明细 - public List addUpdateDetail(RecordApplySaveReqVO param, RecordApplyDO recordApplyDO) { - List detailList = param.getDetailList(); + public List addUpdateDetail(List detailList, RecordApplyDO recordApplyDO) { List detailSaveReqVOList = new ArrayList<>(); for (RecordApplyDetailSaveReqVO item : detailList) { RecordApplyDetailDO recordApplyDetailDO = new RecordApplyDetailDO(); @@ -339,8 +346,7 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn } // 添加作废明细 - public List addInvalidDetail(RecordApplySaveReqVO param, RecordApplyDO recordApplyDO) { - List detailList = param.getDetailList(); + public List addInvalidDetail(List detailList, RecordApplyDO recordApplyDO) { List detailSaveReqVOList = new ArrayList<>(); for (RecordApplyDetailSaveReqVO item : detailList) { RecordApplyDetailDO recordApplyDetailDO = new RecordApplyDetailDO(); @@ -355,19 +361,20 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn } // 添加查看申请 - public List addViewApplyDetail(RecordApplySaveReqVO param, RecordApplyDO recordApplyDO) { - List detailList = param.getDetailList(); + public List addViewApplyDetail(List detailList, RecordApplyDO recordApplyDO) { + Long userId = SecurityFrameworkUtils.getLoginUser().getId(); + String loginUserNickname = SecurityFrameworkUtils.getLoginUserNickname(); List detailSaveReqVOList = new ArrayList<>(); for (RecordApplyDetailSaveReqVO item : detailList) { RecordApplyDetailDO recordApplyDetailDO = new RecordApplyDetailDO(); recordApplyDetailDO.setApplyId(recordApplyDO.getId()); recordApplyDetailDO.setDocumentId(item.getDocumentId()); - Long userId = SecurityFrameworkUtils.getLoginUser().getId(); recordApplyDetailDO.setTargetId(userId); + recordApplyDetailDO.setTargetName(loginUserNickname); recordApplyDetailDO.setTargetType(RecordConstants.TargetType.USER); // 用户 - recordApplyDetailDO.setIsModify(item.getIsModify()); - recordApplyDetailDO.setModifyCause(item.getModifyCause()); - recordApplyDetailDO.setFormData(item.getFormData()); + recordApplyDetailDO.setSaveFlag(item.getSaveFlag()); + recordApplyDetailDO.setEndDate(item.getEndDate()); +// recordApplyDetailDO.setFormData(item.getFormData()); detailSaveReqVOList.add(recordApplyDetailDO); } return detailSaveReqVOList; @@ -421,7 +428,7 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn } else { // 需要走流程 // 判断是否到生效日期 // RecordRecordDO effectiveRecordRecordDO = isEffective(recordDO); - recordDO.setSubmitFlag("1"); + recordDO.setSubmitFlag(1); recordDO.setRecordStatus(0); recordRecordService.updateRecordRecordById(recordDO); } @@ -451,7 +458,7 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn List recordRecordDOS = new ArrayList<>(); for (RecordApplyDetailDO it : recordApplyDetailDOS) { RecordRecordDO recordRecordDO = new RecordRecordDO(); - recordRecordDO.setSubmitFlag("0"); // 评审中 + recordRecordDO.setSubmitFlag(0); // 评审中 recordRecordDO.setId(it.getDocumentId()); recordRecordDOS.add(recordRecordDO); } @@ -531,7 +538,7 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn formData.put("applyDepartmentId", loginUser.getVisitDeptId()); formData.put("applyTime", sdf.format(new Date())); formData.put("businessType", businessType); - formData.put("title", businessType); // 文件名 + formData.put("title", recordApplyDO.getTitle()); // 文件名 Map variables = formData.toJavaObject(Map.class); variables.put(BPM_CALLBACK_BEAN_NAME, "recordApplyService"); @@ -550,7 +557,7 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn recordApplyMapper.updateById(recordApplyDO); // 提交申请-发起流程, 更新 实例Id到文件记录 - if (paramBusinessType.equals(RecordConstants.BusinessType.RECORD_SUBMIT)){ + if (businessType.equals(RecordConstants.BusinessType.RECORD_SUBMIT)) { recordRecordDO.setFlowInstanceId(wfInsId); recordRecordDO.setApplyStatus(QmsCommonConstant.IN_PROGRESS); recordRecordService.updateRecordRecordById(recordRecordDO); @@ -598,163 +605,101 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn //流程状态 1-提交(含退回) 4-取消流程 String PROCESS_STATUS = variables.getString(QmsBpmConstant.PROCESS_INSTANCE_VARIABLE_STATUS); JSONArray fieldExtensions = new JSONArray(); - if(variables.containsKey(QmsBpmConstant.BPM_FIELD_EXTENSIONS)){ + if (variables.containsKey(QmsBpmConstant.BPM_FIELD_EXTENSIONS)) { fieldExtensions = variables.getJSONArray(QmsBpmConstant.BPM_FIELD_EXTENSIONS); } //判断是否最后一个节点 String lastActivityFlag = "0"; String firstActivityFlag = "0"; - if(!fieldExtensions.isEmpty()){ - for(int i = 0; i < fieldExtensions.size(); i++){ + if (!fieldExtensions.isEmpty()) { + for (int i = 0; i < fieldExtensions.size(); i++) { JSONObject extension = fieldExtensions.getJSONObject(i); String fieldName = extension.getString("fieldName"); String stringValue = extension.getString("stringValue"); - if(ObjectUtils.isEmpty(stringValue)) + if (ObjectUtils.isEmpty(stringValue)) stringValue = ""; - if(fieldName.equalsIgnoreCase(QmsBpmConstant.BPM_LAST_ACTIVITY_FLAG) && stringValue.equals("1")){ + if (fieldName.equalsIgnoreCase(QmsBpmConstant.BPM_LAST_ACTIVITY_FLAG) && stringValue.equals("1")) { lastActivityFlag = "1"; } - if(fieldName.equalsIgnoreCase(QmsBpmConstant.BPM_FIRST_ACTIVITY_FLAG) && stringValue.equals("1")){ + if (fieldName.equalsIgnoreCase(QmsBpmConstant.BPM_FIRST_ACTIVITY_FLAG) && stringValue.equals("1")) { firstActivityFlag = "1"; } } } List recordApplyDetailDOS = recordApplyDetailService.selectList(new RecordApplyDetailPageReqVO().setApplyId(Long.valueOf(mainId))); + if (ObjectUtils.isEmpty(recordApplyDetailDOS)) + throw exception0(RECORD_RECORD_NOT_EXISTS.getCode(), "未找到对应的申请明细记录"); //"RETURN_FLAG_Activity_001": true 标识驳回到发起环节 - if(("1").equals(returnFlag)){ + if (("1").equals(returnFlag)) { //驳回。流程需要配置退回到发起节点 log.info("文件下发流程回调:驳回"); recordApplyDO.setBusinessStatus(QmsCommonConstant.REJECTED); - }else if("3".equals(PROCESS_STATUS)){ + } else if ("3".equals(PROCESS_STATUS)) { //作废 log.info("文件下发流程回调:作废"); - recordApplyDO.setBusinessStatus(QmsCommonConstant.VOID); - Long documentId = recordApplyDetailDOS.get(0).getDocumentId(); - recordRecordService.updateRecordRecordById(new RecordRecordDO().setId(documentId).setApplyStatus(QmsCommonConstant.VOID)); - }else if("1".equals(PROCESS_STATUS)){ + if ("1".equals(firstActivityFlag)) { + recordApplyDO.setBusinessStatus(QmsCommonConstant.VOID); + } + recordApplyMapper.updateById(recordApplyDO); + if (businessType.equals(RecordConstants.BusinessType.RECORD_SUBMIT)){ // 文件申请, 更新文件记录审批状态 + RecordRecordDO recordRecordDO = new RecordRecordDO(); + recordRecordDO.setId(recordApplyDetailDOS.get(0).getDocumentId()); + recordRecordDO.setApplyStatus(QmsCommonConstant.VOID); + recordRecordService.updateRecordRecordById(recordRecordDO); + } + } else if ("1".equals(PROCESS_STATUS)) { //通过 保存审批意见 DataCommonType dataCommonType = new DataCommonType(); dataCommonType.setBusinessId(Long.valueOf(mainId)); dataCommonType.setFlowInstanceId(recordApplyDO.getFlowInstanceId()); dataOpinionService.saveOpinionByWfCallback(dataCommonType, currentActivityId, currentActivityName, taskVariables); - if("1".equals(lastActivityFlag)) - { + // 最后一个节点 + if ("1".equals(lastActivityFlag)) { //通过 - - if (ObjectUtils.isEmpty(recordApplyDetailDOS)) - throw exception0(RECORD_RECORD_NOT_EXISTS.getCode(), "未找到对应的申请明细记录"); - // TODO 业务代码,通过业务类型判断 - List recordRecordDOS = new ArrayList<>(); - switch (businessType) { - case RecordConstants.BusinessType.RECORD_SUBMIT: - recordSubmitCallHandle(recordApplyDetailDOS); - break; - case RecordConstants.BusinessType.REVIEW: // 评审 - reviewCallHandle(recordApplyDetailDOS); - break; - case RecordConstants.BusinessType.DISTRIBUTION: // 分发 - recordPermissionAdd(recordApplyDetailDOS); - // 更改申请流程 - break; - case RecordConstants.BusinessType.RECORD_UPDATE: // 修改申请 - break; - case RecordConstants.BusinessType.VIEW_APPLY: // 查看申请 - recordPermissionAdd(recordApplyDetailDOS); - break; - case RecordConstants.BusinessType.INVALID: // 作废 -- > 回收权限 - // 修改文件作废状态 - for (RecordApplyDetailDO applyDetailDO : recordApplyDetailDOS) { - RecordRecordDO recordRecordDO = new RecordRecordDO(); - recordRecordDO.setId(applyDetailDO.getDocumentId()); - recordRecordDO.setCancelFlag(1); // 评审通过 - recordRecordDO.setRecordStatus(0); // 状态 无效 - recordRecordDOS.add(recordRecordDO); - } - recordInvalidFlowStatus(recordRecordDOS); - break; - default: - throw exception(RECORD_APPLY_NOT_EXISTS, "未知的业务类型"); - } - recordApplyDO.setBusinessStatus(QmsCommonConstant.COMPLETED); + String completed = processHandle(businessType, recordApplyDetailDOS); + recordApplyDO.setBusinessStatus(completed); } } // 审批完成,修改申请通用记录状态为已完成 recordApplyMapper.updateById(recordApplyDO); -// String PROCESS_STATUS = variables.getString(QmsBpmConstant.PROCESS_INSTANCE_VARIABLE_STATUS); - -// JSONArray bpmFieldExtensions = variables.getJSONArray("bpmFieldExtensions"); -// String firstActivityFlag = IntStream.range(0, bpmFieldExtensions.size()) -// .mapToObj(bpmFieldExtensions::getJSONObject) -// .filter(field -> "firstActivityFlag".equals(field.getString("fieldName"))) -// .map(field -> field.getString("stringValue")) -// .findFirst() -// .orElse(null); -// -// log.info("firstActivityFlag:{}", firstActivityFlag); - -// if ("1".equals(firstActivityFlag)) { // 执行到申请人节点,待处理 -// if (PROCESS_STATUS.equals("1")) { -// return CommonResult.success(ret); -// } else if ("3".equals(PROCESS_STATUS)) { -// // 提交流程,发起人拒绝,修改提交状态 -// if (businessType.equals(RecordConstants.BusinessType.RECORD_SUBMIT)){ -// Long applyId = recordApplyDO.getId(); -// List recordApplyDetailDOS = recordApplyDetailService.selectAllList(applyId); -// if (ObjectUtils.isEmpty(recordApplyDetailDOS)) throw exception0(RECORD_APPLY_DETAIL_NOT_EXISTS.getCode(),"申请明细不存在"); -// RecordApplyDetailDO recordApplyDetailDO = recordApplyDetailDOS.get(0); -// Long documentId = recordApplyDetailDO.getDocumentId(); -// RecordRecordDO recordDO = new RecordRecordDO(); -// recordDO.setId(documentId); -// recordDO.setSubmitFlag("0"); -// recordRecordService.updateRecordRecordById(recordDO); -// } -// // 发起人拒绝,申请作废 -// recordApplyDO.setBusinessStatus(QmsCommonConstant.VOID); -// recordApplyMapper.updateById(recordApplyDO); -// return CommonResult.success(ret); -// } -// } -// -// // 拒绝,PROCESS_STATUS 状态是3,拒绝。回退上一步流程,修改状态 -// if ("3".equals(PROCESS_STATUS)) { -// if (businessType.equals(RecordConstants.BusinessType.RECORD_SUBMIT)) { -// recordApplyDO.setBusinessStatus(QmsCommonConstant.VOID); -// recordApplyMapper.updateById(recordApplyDO); -// return CommonResult.success(ret); -// } -// String businessStatus = recordApplyDO.getBusinessStatus(); -// if ("running".equals(businessStatus)) { -// recordApplyDO.setBusinessStatus(QmsCommonConstant.NOT_START); -// } else if ("not_start".equals(businessStatus)) { // 直接作废 -// recordApplyDO.setBusinessStatus(QmsCommonConstant.VOID); -// } -// recordApplyMapper.updateById(recordApplyDO); -// return CommonResult.success(ret); -// } - JSONObject ret = new JSONObject(); return CommonResult.success(ret); } + public String processHandle(String businessType, List recordApplyDetailDOS){ + switch (businessType) { + case RecordConstants.BusinessType.RECORD_SUBMIT: + recordSubmitCallHandle(recordApplyDetailDOS); + break; + case RecordConstants.BusinessType.REVIEW: // 评审 + reviewCallHandle(recordApplyDetailDOS); + break; + case RecordConstants.BusinessType.DISTRIBUTION: // 分发 + recordPermissionAdd(recordApplyDetailDOS); + // 更改申请流程 + break; + case RecordConstants.BusinessType.RECORD_UPDATE: // 修改申请 + break; + case RecordConstants.BusinessType.VIEW_APPLY: // 查看申请 + recordPermissionAdd(recordApplyDetailDOS); + break; + case RecordConstants.BusinessType.INVALID: // 作废 -- > 回收权限 + recordInvalidFlowStatus(recordApplyDetailDOS); + break; + default: + throw exception(RECORD_APPLY_NOT_EXISTS, "未知的业务类型"); + } + return QmsCommonConstant.COMPLETED; + } public void recordSubmitCallHandle(List recordApplyDetailDOS) { RecordApplyDetailDO recordApplyDetailDO = recordApplyDetailDOS.get(0); Long documentId = recordApplyDetailDO.getDocumentId(); RecordRecordDO entity = recordRecordService.getRecordById(documentId); // 判断生效日期 -// LocalDateTime effectiveDate = entity.getEffectiveDate(); // 有效日期 -// if (effectiveDate != null) { -// // 判断是否到生效日期 -// LocalDateTime now = LocalDateTime.now(); -// if (now.isAfter(effectiveDate) || now.isEqual(effectiveDate)) { -// entity.setRecordStatus(1); // 已生效 -// } -// } else { -// entity.setRecordStatus(1); // 默认已生效 -// } RecordRecordDO effectiveRecordRecordDO = isEffective(entity); effectiveRecordRecordDO.setApplyStatus(QmsCommonConstant.COMPLETED); // 审批完成 // 修改状态 @@ -769,6 +714,9 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn if (applyDetailDO.getIsModify() == 1) { //是否修改,是:直接创建更改申请 RecordApplyDetailSaveReqVO detailDO = new RecordApplyDetailSaveReqVO(); detailDO.setDocumentId(applyDetailDO.getDocumentId()); + detailDO.setIsModify(1); + detailDO.setModifyCause(applyDetailDO.getModifyCause()); + detailDO.setApplyStartDate(LocalDateTime.now()); detailDOList.add(detailDO); } } @@ -788,30 +736,22 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn } // 文件批量跟新状态 - public void recordInvalidFlowStatus(List recordDO) { + public void recordInvalidFlowStatus(List recordApplyDetailDOS) { + List recordIds = recordApplyDetailDOS.stream().map(RecordApplyDetailDO::getDocumentId).toList(); // 修改文件状态为已生效 - recordRecordService.updateRecordRecordListByIds(recordDO); - List list = new ArrayList<>(); - recordDO.forEach(item -> { - list.add(item.getId()); - }); + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.in(RecordRecordDO::getId, recordIds); + updateWrapper.set(RecordRecordDO::getCancelFlag, 1); + updateWrapper.set(RecordRecordDO::getRecordStatus, 0); + recordRecordService.updateRecord(updateWrapper); // 回收文件权限 - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(RecordPermissionDO::getSourceType, RecordConstants.PermissionSourceType.RECORD); - queryWrapper.in(RecordPermissionDO::getSourceId, list); // 记录id - List recordPermissionDOS = recordPermissionService.selectList(queryWrapper); - List recordPermissionDOList = new ArrayList<>(); - List permissionIds = new ArrayList<>(); - for (RecordPermissionDO recordPermissionDO : recordPermissionDOS) { - recordPermissionDO.setCancelFlag("1"); -// recordPermissionDO.setDeleted(true); - recordPermissionDOList.add(recordPermissionDO); - } - if (!ObjectUtils.isEmpty(recordPermissionDOList)) - recordPermissionService.updateRecordPermissionBatch(recordPermissionDOList); - // 回收权限 - if (!ObjectUtils.isEmpty(permissionIds)) recordPermissionService.deleteRecordPermissionListByIds(permissionIds); + LambdaUpdateWrapper update = new LambdaUpdateWrapper<>(); + update.eq(RecordPermissionDO::getSourceType, RecordConstants.PermissionSourceType.RECORD); + update.eq(RecordPermissionDO::getCancelFlag, "0"); // 未回收 + update.in(RecordPermissionDO::getSourceId, recordIds); // 记录id + update.set(RecordPermissionDO::getCancelFlag, "1"); // 设置为已回收 + recordPermissionService.updatePermission(update); } /** @@ -842,74 +782,42 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn // 文件分发/申请-添加权限 public void recordPermissionAdd(List recordApplyDetailDOS) { -// String loginUserNickname = SecurityFrameworkUtils.getLoginUserNickname(); LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); - String visitDeptName = loginUser.getVisitDeptName(); for (RecordApplyDetailDO applyDetailDO : recordApplyDetailDOS) { // 添加记录 String targetType = applyDetailDO.getTargetType(); if (ObjectUtils.isEmpty(targetType)) throw exception(RECORD_APPLY_NOT_EXISTS, "分发对象类型不能为空"); // 通过-----> 创建人员权限表记录 - String formData = applyDetailDO.getFormData(); - JSONObject jsonObject = JSONObject.parseObject(formData, JSONObject.class); - Object expirationDate = jsonObject.getTimestamp("expirationDate"); - LocalDateTime localDateTime = convertToLocalDateTime(expirationDate); +// String formData = applyDetailDO.getFormData(); +// JSONObject jsonObject = JSONObject.parseObject(formData, JSONObject.class); +// //TODO +// Object expirationDate = jsonObject.getTimestamp("expirationDate"); +// LocalDateTime localDateTime = convertToLocalDateTime(endDate); RecordPermissionDO permissionDO = new RecordPermissionDO(); - permissionDO.setExpirationDate(localDateTime); + + String saveFlag = applyDetailDO.getSaveFlag(); // 文件查看使用 + LocalDateTime endDate = applyDetailDO.getEndDate(); + if (!ObjectUtils.isEmpty(saveFlag)) { + permissionDO.setSaveFlag(saveFlag); + permissionDO.setSaveEndDate(endDate); + }else { + permissionDO.setExpirationDate(endDate); + } + List permissionDOList = new ArrayList<>(); + permissionDO.setPermission(RecordConstants.PermissionType.VIEW); // 可查看 permissionDO.setSourceType(RecordConstants.PermissionSourceType.RECORD); // 记录权限 permissionDO.setSourceId(applyDetailDO.getDocumentId()); // 文件Id permissionDO.setDeptId(loginUser.getVisitDeptId()); permissionDO.setDeptName(loginUser.getVisitDeptName()); - List permissionDOList = new ArrayList<>(); - if (targetType.equals(RecordConstants.TargetType.USER)) { - permissionDO.setTargetId(String.valueOf(applyDetailDO.getTargetId())); // 用户Id - permissionDO.setTargetType(RecordConstants.TargetType.USER); - // TODO - CommonResult user = adminUserApi.getUser(applyDetailDO.getTargetId()); - AdminUserRespDTO data = user.getData(); - permissionDO.setTargetName(data.getNickname()); - } else if (targetType.equals(RecordConstants.TargetType.DEPT)) { // 部门 - permissionDO.setTargetId(String.valueOf(applyDetailDO.getTargetId())); // 部门Id - permissionDO.setTargetType(RecordConstants.TargetType.DEPT); - CommonResult dept = deptApi.getDept(applyDetailDO.getTargetId()); - DeptRespDTO data = dept.getData(); - permissionDO.setTargetName(data.getName()); - } + permissionDO.setTargetId(String.valueOf(applyDetailDO.getTargetId())); // 用户Id + permissionDO.setTargetType(targetType); + permissionDO.setTargetName(applyDetailDO.getTargetName()); permissionDOList.add(permissionDO); boolean b = recordPermissionService.insertRecordPermissionBatch(permissionDOList); if (!b) throw exception(RECORD_APPLY_NOT_EXISTS, "保存分发权限失败"); } } - - // 分发 - @Override - public PageResult recordDistributePage(RecordApplyPageReqVO pageReqVO) { - Page page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); - IPage recordApplyJoinPageVOIPage = recordApplyMapper.recordDistributePage(page, pageReqVO); - return new PageResult<>(recordApplyJoinPageVOIPage.getRecords(), recordApplyJoinPageVOIPage.getTotal()); - } - - // 更改申请 - @Override - public PageResult recordUpdatePage(RecordApplyPageReqVO pageReqVO) { - Page page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); - recordApplyMapper.recordUpdatePage(page, pageReqVO); - return null; - } - - // 文件作废 - @Override - public PageResult recordInvalidPage(RecordApplyPageReqVO pageReqVO) { - Page page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); - recordApplyMapper.recordUpdatePage(page, pageReqVO); - return null; - } - - //查询提交的流程是否存在没有处理或者通过的的数据 -// public List selectApplyByStatus(String businessType, java.util.List documentIds, java.util.List businessStatuses) { -// return recordApplyMapper.selectApplyByStatus(businessType, documentIds, businessStatuses); -// } } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapplydetail/RecordApplyDetailService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapplydetail/RecordApplyDetailService.java index 50135888..956b889b 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapplydetail/RecordApplyDetailService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapplydetail/RecordApplyDetailService.java @@ -73,33 +73,11 @@ public interface RecordApplyDetailService { */ List selectList(RecordApplyDetailPageReqVO pageReqVO); - /** - * 联合查询:根据文件ID和业务类型查询申请和申请明细 - * - * @param documentId 文件ID - * @param businessType 业务类型 - * @return 联合查询结果列表 - */ - List getRecordApplyDetailJoinList(Long documentId, String businessType); - boolean createRecordApplyDetailBatch(List detailSaveReqVOList); // 查询明细不分页 List selectAllList(Long applyId) ; - /** - * 关联 - * @param applyId - * @return - */ - List selectDetailAndRecordList(Long applyId); - - /** - * 关联 - * @param applyId - * @return - */ - List selectDistributionDetailAndRecordList(Long applyId); int deleteRecordApplyDetailByApplyId(Long applyId); @@ -107,5 +85,4 @@ public interface RecordApplyDetailService { List selectNotInDetailIdList(Long applyId,List detailIds); -// List updateDistributionPermissionJob(); } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapplydetail/RecordApplyDetailServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapplydetail/RecordApplyDetailServiceImpl.java index bd7df3bc..61df9609 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapplydetail/RecordApplyDetailServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapplydetail/RecordApplyDetailServiceImpl.java @@ -103,11 +103,6 @@ public class RecordApplyDetailServiceImpl implements RecordApplyDetailService { return pageResult.getList(); } - @Override - public List getRecordApplyDetailJoinList(Long documentId, String businessType) { - return recordApplyDetailMapper.selectJoinByDocumentIdAndBusinessType(documentId, businessType); - } - @Override public boolean createRecordApplyDetailBatch(List detailSaveReqVOList) { return recordApplyDetailMapper.insertBatch(detailSaveReqVOList); @@ -118,16 +113,6 @@ public class RecordApplyDetailServiceImpl implements RecordApplyDetailService { return recordApplyDetailMapper.selectList(RecordApplyDetailDO::getApplyId, applyId); } - // 通过 recordApplyDetail 表关联查询 recordRecord 表 - public List selectDetailAndRecordList(Long applyId) { - return recordApplyDetailMapper.selectDetailAndRecordList(applyId); - } - - // 通过 recordApplyDetail 表关联查询 recordRecord 表 分发 单条数据 - public List selectDistributionDetailAndRecordList(Long applyId) { - return recordApplyDetailMapper.selectDistributionDetailAndRecordList(applyId); - } - @Override public int deleteRecordApplyDetailByApplyId(Long applyId) { // 通过申请Id,批量删除明细数据 @@ -153,11 +138,11 @@ public class RecordApplyDetailServiceImpl implements RecordApplyDetailService { } @Override - public List selectNotInDetailIdList(Long applyId,List detailIds) { + public List selectNotInDetailIdList(Long applyId, List detailIds) { LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); queryWrapper.eq(RecordApplyDetailDO::getApplyId, applyId); - queryWrapper.notIn(RecordApplyDetailDO::getId, detailIds); - return recordApplyDetailMapper.selectList(); + if (!ObjectUtils.isEmpty(detailIds)) queryWrapper.notIn(RecordApplyDetailDO::getId, detailIds); + return recordApplyDetailMapper.selectList(queryWrapper); } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordassign/RecordAssignService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordassign/RecordAssignService.java index 96e1249e..f2f858c9 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordassign/RecordAssignService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordassign/RecordAssignService.java @@ -61,6 +61,8 @@ public interface RecordAssignService { */ PageResult getRecordAssignPage(RecordAssignPageReqVO pageReqVO); + List selectListByTargetIds(List targetIds); + // boolean createRecordAssignBatch(List recordAssignDOS); // // List selectRecordAssignList(List detailDOIdS); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordassign/RecordAssignServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordassign/RecordAssignServiceImpl.java index e56ed799..b4c63158 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordassign/RecordAssignServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordassign/RecordAssignServiceImpl.java @@ -12,6 +12,7 @@ import com.zt.plat.module.qms.resource.record.dal.dataobject.recordassign.Record import com.zt.plat.module.qms.resource.record.dal.mapper.RecordAssignMapper; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; import org.springframework.validation.annotation.Validated; @@ -37,17 +38,33 @@ public class RecordAssignServiceImpl implements RecordAssignService { // 插入 RecordAssignDO recordAssign = BeanUtils.toBean(createReqVO, RecordAssignDO.class); recordAssignMapper.insert(recordAssign); + String mainId = createReqVO.getMainId(); + if (ObjectUtils.isEmpty(mainId)) recordAssign.setMainId(String.valueOf(recordAssign.getId())); //原始父级Id + recordAssign.setCurrentFlag(1); + recordAssignMapper.updateById(recordAssign); // 返回 return BeanUtils.toBean(recordAssign, RecordAssignRespVO.class); } @Override + @Transactional(rollbackFor = Exception.class) public void updateRecordAssign(RecordAssignSaveReqVO updateReqVO) { - // 校验存在 - validateRecordAssignExists(updateReqVO.getId()); - // 更新 + Long id = updateReqVO.getId(); + + Integer isModify = updateReqVO.getIsModify(); RecordAssignDO updateObj = BeanUtils.toBean(updateReqVO, RecordAssignDO.class); - recordAssignMapper.updateById(updateObj); + if (!ObjectUtils.isEmpty(isModify) && isModify == 1) { // 修改 + updateReqVO.setId(null); + createRecordAssign(updateReqVO); // 创建新记录 + // 校验存在 + validateRecordAssignExists(id); + // 更新 + RecordAssignDO recordAssignDO = new RecordAssignDO(); + recordAssignDO.setId(id); + recordAssignDO.setCurrentFlag(0); // 更新成历史记录 + recordAssignMapper.updateById(recordAssignDO); + } + else recordAssignMapper.updateById(updateObj); } @Override @@ -89,16 +106,12 @@ public class RecordAssignServiceImpl implements RecordAssignService { return recordAssignMapper.selectPage(pageReqVO); } -// @Override -// public boolean createRecordAssignBatch(List recordAssignDOS) { -// return recordAssignMapper.insertBatch(recordAssignDOS); -// } - -// @Override -// public List selectRecordAssignList(List detailDOIdS) { -// LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery(); -// lambdaQueryWrapper.in(RecordAssignDO::getApplyDetailId, detailDOIdS); -// return recordAssignMapper.selectList(lambdaQueryWrapper); -// } + @Override + public List selectListByTargetIds(List targetIds) { + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(RecordAssignDO.class); + queryWrapper.in(RecordAssignDO::getTargetId, targetIds); + List recordAssignDOList = recordAssignMapper.selectList(queryWrapper); + return BeanUtils.toBean(recordAssignDOList, RecordAssignRespVO.class); + } } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordpermission/RecordPermissionService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordpermission/RecordPermissionService.java index 46d8e1b4..4ab7fb2d 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordpermission/RecordPermissionService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordpermission/RecordPermissionService.java @@ -1,16 +1,15 @@ package com.zt.plat.module.qms.resource.record.service.recordpermission; -import java.util.*; - import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.module.qms.resource.record.controller.admin.recordpermission.vo.RecordPermissionPageReqVO; import com.zt.plat.module.qms.resource.record.controller.admin.recordpermission.vo.RecordPermissionRespVO; import com.zt.plat.module.qms.resource.record.controller.admin.recordpermission.vo.RecordPermissionSaveReqVO; -import com.zt.plat.module.qms.resource.record.dal.dataobject.recordcategory.RecordCategoryDO; -import jakarta.validation.*; import com.zt.plat.module.qms.resource.record.dal.dataobject.recordpermission.RecordPermissionDO; -import com.zt.plat.framework.common.pojo.PageResult; +import jakarta.validation.Valid; + +import java.util.List; /** * 记录权限 Service 接口 @@ -115,5 +114,7 @@ public interface RecordPermissionService { boolean updateRecordPermissionBatch(List recordPermissionDOList); - void updatePermission(LambdaUpdateWrapper queryWrapper); + Integer updatePermission(LambdaUpdateWrapper queryWrapper); + + Integer withdrawPermissionJob(); } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordpermission/RecordPermissionServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordpermission/RecordPermissionServiceImpl.java index 96ec845f..e9ab1fdb 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordpermission/RecordPermissionServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordpermission/RecordPermissionServiceImpl.java @@ -4,6 +4,8 @@ import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.xxl.job.core.context.XxlJobHelper; +import com.xxl.job.core.handler.annotation.XxlJob; import com.zt.plat.framework.common.biz.system.permission.PermissionCommonApi; import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.security.core.LoginUser; @@ -25,6 +27,7 @@ import jakarta.annotation.Resource; import org.springframework.util.ObjectUtils; import org.springframework.validation.annotation.Validated; +import java.time.LocalDateTime; import java.util.*; import com.zt.plat.module.qms.resource.record.dal.dataobject.recordpermission.RecordPermissionDO; @@ -248,8 +251,8 @@ public class RecordPermissionServiceImpl implements RecordPermissionService { } @Override - public void updatePermission(LambdaUpdateWrapper updateWrapper) { - recordPermissionMapper.update(updateWrapper); + public Integer updatePermission(LambdaUpdateWrapper updateWrapper) { + return recordPermissionMapper.update(updateWrapper); } @Override @@ -300,4 +303,45 @@ public class RecordPermissionServiceImpl implements RecordPermissionService { return recordPermissionMapper.selectPage(pageReqVO); } + /** + * 权限到期,定时回收权限 + * 检测 expireDate <= 当前时间 ,将其更新为已过期,且自动作废(expireStatus = 1) + *

+ * JobHandler 名称: updateRecordStatusJob + * 推荐 Cron: 0 0 0 * * ?(每天零点执行) + */ + @Override + public Integer withdrawPermissionJob() { + log.info("[withdrawPermissionJob] 开始执行文件记录生效状态更新任务"); + try { + Integer expireJob = expireDateExpireJob(); + Integer saved = saveEndDateExpireJob(); + log.info("[withdrawPermissionJob] 任务执行成功,共更新 {} 条记录", expireJob + saved); + XxlJobHelper.handleSuccess(String.format("任务执行成功,共更新 %d 条记录", expireJob + saved)); + } catch (Exception e) { + log.error("[withdrawPermissionJob] 任务执行失败:{}", e.getMessage(), e); + throw e; + } + return 0; + } + + //权限到期,定时回收权限 + public Integer expireDateExpireJob() { + LambdaUpdateWrapper updateWrapper = Wrappers.lambdaUpdate(); + updateWrapper.eq(RecordPermissionDO::getExpirationStatus, "0"); // 未过期 + updateWrapper.le(RecordPermissionDO::getExpirationDate, LocalDateTime.now()); // 过期时间小于当前时间 + updateWrapper.set(RecordPermissionDO::getExpirationStatus, "1"); + return recordPermissionMapper.update(updateWrapper); + } + + //权限保留日期到期,定时回收权限 + public Integer saveEndDateExpireJob() { + LambdaUpdateWrapper updateWrapper = Wrappers.lambdaUpdate(); + updateWrapper.eq(RecordPermissionDO::getSaveFlag, "1"); // 保留 + updateWrapper.le(RecordPermissionDO::getSaveEndDate, LocalDateTime.now()); // 保留时间小于当前时间 + updateWrapper.set(RecordPermissionDO::getSaveFlag, "0"); + return recordPermissionMapper.update(updateWrapper); + } + + } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordrecord/RecordRecordService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordrecord/RecordRecordService.java index 215fbc67..4f107fcf 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordrecord/RecordRecordService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordrecord/RecordRecordService.java @@ -1,5 +1,6 @@ package com.zt.plat.module.qms.resource.record.service.recordrecord; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.module.qms.resource.record.controller.admin.recordrecord.vo.RecordRecordPageReqVO; import com.zt.plat.module.qms.resource.record.controller.admin.recordrecord.vo.RecordRecordRespVO; @@ -98,4 +99,5 @@ public interface RecordRecordService { Integer withdrawPermissionJob(); + int updateRecord(LambdaUpdateWrapper updateWrapper); } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordrecord/RecordRecordServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordrecord/RecordRecordServiceImpl.java index ae9e6519..6244c0f5 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordrecord/RecordRecordServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordrecord/RecordRecordServiceImpl.java @@ -11,9 +11,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.util.object.BeanUtils; -import com.zt.plat.framework.security.core.LoginUser; -import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils; import com.zt.plat.module.qms.common.service.BusinessFileService; +import com.zt.plat.module.qms.enums.QmsCommonConstant; import com.zt.plat.module.qms.resource.record.common.RecordCommonUtils; import com.zt.plat.module.qms.resource.record.constant.RecordConstants; import com.zt.plat.module.qms.resource.record.controller.admin.recordrecord.vo.RecordRecordPageReqVO; @@ -82,6 +81,7 @@ public class RecordRecordServiceImpl implements RecordRecordService { Long parentId = recordCategoryDO.getParentId(); if (parentId != null && parentId == 0) throw new RuntimeException("根节点不允许直接添加文件记录信息!"); recordRecord.setCurrentFlag(1);// 是否新版本 + recordRecord.setSubmitFlag(0); try { RecordRecordDO recordRecordDO = judgeRootCategoryJson(recordRecord); recordRecordMapper.insert(recordRecordDO); @@ -232,7 +232,8 @@ public class RecordRecordServiceImpl implements RecordRecordService { // // // IPage iPage = recordRecordMapper.selectRecordWithApplyPage(page, pageReqVO); -//// PageResult result = new PageResult<>(iPage.getRecords(), iPage.getTotal()); + + /// / PageResult result = new PageResult<>(iPage.getRecords(), iPage.getTotal()); // recordRecordList = iPage.getRecords(); // return BeanUtils.toBean(recordRecordList, RecordRecordRespVO.class); // @@ -254,8 +255,7 @@ public class RecordRecordServiceImpl implements RecordRecordService { if (sts == 3) { recordDO.setExpirationStatus(1); //过期 recordDO.setRecordStatus(0);// 状态无效 - } - else recordDO.setRecordStatus(sts); + } else recordDO.setRecordStatus(sts); } else { JSONObject jsonObject = JSONObject.parseObject(customConfig); Integer submitFlag = jsonObject.getInteger("submitFlag"); @@ -292,14 +292,14 @@ public class RecordRecordServiceImpl implements RecordRecordService { return BeanUtils.toBean(updateReqVO, RecordRecordRespVO.class); } -// 回收文件权限 + // 回收文件权限 public void recordPermissionRecycle(Long recordId) { // 回收文件权限 - 直接更新,无需先查询 LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.eq(RecordPermissionDO::getSourceType, RecordConstants.PermissionSourceType.RECORD); updateWrapper.eq(RecordPermissionDO::getSourceId, recordId); updateWrapper.set(RecordPermissionDO::getCancelFlag, "1"); - + recordPermissionService.updatePermission(updateWrapper); } @@ -387,7 +387,7 @@ public class RecordRecordServiceImpl implements RecordRecordService { return recordRecordMapper.selectById(id); } - public PageResult addCustomConfig(Long rootCategoryId,PageResult result) { + public PageResult addCustomConfig(Long rootCategoryId, PageResult result) { Object finalParse = customConfigParseJson(rootCategoryId); result.getList().forEach(record -> { try { @@ -399,7 +399,7 @@ public class RecordRecordServiceImpl implements RecordRecordService { return result; } - public List selectCategoryIds(Long categoryId){ + public List selectCategoryIds(Long categoryId) { // 判断当前分类上有没有子分类 String categoryIdPath = "/" + categoryId; List recordCategoryDOS = recordCategoryService.selectListByCategoryIdIdPath(categoryIdPath); @@ -409,22 +409,26 @@ public class RecordRecordServiceImpl implements RecordRecordService { /** * 查询文件记录分页 - * @param pageReqVO 分页参数 + * + * @param pageReqVO 分页参数 * @param categoryId 分类Id - * @param recordIds (非必传) + * @param recordIds (非必传) * @return */ public PageResult selectRecordPage(RecordRecordPageReqVO pageReqVO, Long categoryId, - List recordIds){ + List recordIds) { List categoryIds = selectCategoryIds(categoryId); LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery(); // pageReqVO.setCategoryId(null); lambdaQueryWrapper.in(RecordRecordDO::getCategoryId, categoryIds); - if (!ObjectUtils.isEmpty(pageReqVO.getCurrentFlag())) lambdaQueryWrapper.like(RecordRecordDO::getCurrentFlag, pageReqVO.getCurrentFlag());// 查询最新版本/旧版本 - if (!ObjectUtils.isEmpty(pageReqVO.getName())) lambdaQueryWrapper.like(RecordRecordDO::getName, pageReqVO.getName()); - if (!ObjectUtils.isEmpty(pageReqVO.getCode())) lambdaQueryWrapper.like(RecordRecordDO::getCode, pageReqVO.getCode()); + if (!ObjectUtils.isEmpty(pageReqVO.getCurrentFlag())) + lambdaQueryWrapper.like(RecordRecordDO::getCurrentFlag, pageReqVO.getCurrentFlag());// 查询最新版本/旧版本 + if (!ObjectUtils.isEmpty(pageReqVO.getName())) + lambdaQueryWrapper.like(RecordRecordDO::getName, pageReqVO.getName()); + if (!ObjectUtils.isEmpty(pageReqVO.getCode())) + lambdaQueryWrapper.like(RecordRecordDO::getCode, pageReqVO.getCode()); if (!ObjectUtils.isEmpty(recordIds)) lambdaQueryWrapper.in(RecordRecordDO::getId, recordIds); // 获取指定文件记录 - return recordRecordMapper.selectPage(pageReqVO,lambdaQueryWrapper); + return recordRecordMapper.selectPage(pageReqVO, lambdaQueryWrapper); } @Override @@ -474,25 +478,12 @@ public class RecordRecordServiceImpl implements RecordRecordService { String admin = RecordConstants.PermissionType.ADMIN; //判断 recordPermissionDOS 中是否有管理员权限,customConfig(仅管理员权限时填充) if (recordPermissionDOS.stream().anyMatch(item -> item.getPermission().equals(admin))) { - return addCustomConfig(parentId, result); + return addCustomConfig(parentId, result); } return result; } - // 文件评审--获取记录数据 - public boolean getRecordReviewList(Long parentId) { - // 判断根分类上是否有需要评审的文件 - Object customConfigObject = customConfigParseJson(parentId); - if (ObjectUtils.isEmpty(customConfigObject)) return false; - - JSONObject customConfig = JSONObject.parseObject(customConfigObject.toString()); - // json 解析 - Integer appraisalFlag = customConfig.getInteger("appraisalFlag");// 评审标志 - if (appraisalFlag.equals(0)) return false; - return true; - } - private Object customConfigParseJson(Long parentId) { RecordCategoryDO categoryDOByParent = recordCategoryService.selectById(parentId); // log.info("categoryDOByParent:{}", categoryDOByParent); @@ -521,21 +512,34 @@ public class RecordRecordServiceImpl implements RecordRecordService { @Override public Integer updateRecordStatus() { // 查询审批之后待生效的记录 - Page page = new Page<>(1, 2000); - RecordRecordPageReqVO reqVO = new RecordRecordPageReqVO(); - reqVO.setRecordStatus(0); - IPage effectiveRecordBySubmitFlagPage = recordRecordMapper.getEffectiveRecordBySubmitFlagPage(page, reqVO); - List records = effectiveRecordBySubmitFlagPage.getRecords(); - if (ObjectUtils.isEmpty(records)) return 0; - records.forEach(record -> { - record.setRecordStatus(1); // 生效 - }); - recordRecordMapper.updateBatch(records); - return records.size(); + LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); + lambdaUpdateWrapper.eq(RecordRecordDO::getRecordStatus, 0); // 待生效 + lambdaUpdateWrapper.lt(RecordRecordDO::getEffectiveDate, LocalDateTime.now()); + lambdaUpdateWrapper.ge(RecordRecordDO::getExpirationDate, LocalDateTime.now()); + lambdaUpdateWrapper.set(RecordRecordDO::getRecordStatus, 1); + Integer notSubmitNum = updateNotSubmitEffectRecordStatus(lambdaUpdateWrapper); // 不需要提交 + // 去除上一个的条件 + lambdaUpdateWrapper.eq(RecordRecordDO::getSubmitFlag, 0).clear(); + Integer submitNum = updateSubmitEffectRecordStatus(lambdaUpdateWrapper); // 需要提交 + return notSubmitNum + submitNum; + } + + // 跟新不需要提交,文件记录生效状态 + public Integer updateNotSubmitEffectRecordStatus(LambdaUpdateWrapper lambdaUpdateWrapper) { + lambdaUpdateWrapper.eq(RecordRecordDO::getSubmitFlag, 0); + return recordRecordMapper.update(lambdaUpdateWrapper); + } + + // 跟新不需要提交,文件记录生效状态 + public Integer updateSubmitEffectRecordStatus(LambdaUpdateWrapper lambdaUpdateWrapper) { + lambdaUpdateWrapper.eq(RecordRecordDO::getSubmitFlag, 1); + lambdaUpdateWrapper.eq(RecordRecordDO::getApplyStatus, QmsCommonConstant.COMPLETED); // 审核完成的 + return recordRecordMapper.update(lambdaUpdateWrapper); } /** * 查询生效的记录(包括需要提交,和不提交的数据) + * * @param submitFlag * @param pageReqVO * @param categoryIds @@ -543,11 +547,10 @@ public class RecordRecordServiceImpl implements RecordRecordService { */ public PageResult selectEffectRecordList(int submitFlag, RecordRecordPageReqVO pageReqVO, List categoryIds) { Page page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); - if (submitFlag == 1) { - IPage recordRecordDOPageResult = recordRecordMapper.getNotSubmitEffectRecordPage(page,pageReqVO, categoryIds); + if (submitFlag == 1) { // 不需要提交数据 + IPage recordRecordDOPageResult = recordRecordMapper.getNotSubmitEffectRecordPage(page, pageReqVO, categoryIds); return new PageResult<>(recordRecordDOPageResult.getRecords(), recordRecordDOPageResult.getTotal()); - } - else { // 需要评审,且不需要提交数据 + } else { // 需要提交数据 IPage submitEffectRecordPage = recordRecordMapper.getSubmitEffectRecordPage(page, pageReqVO, categoryIds); return new PageResult<>(submitEffectRecordPage.getRecords(), submitEffectRecordPage.getTotal()); } @@ -582,7 +585,7 @@ public class RecordRecordServiceImpl implements RecordRecordService { String appraisalFlag = pageReqVO.getAppraisalFlag(); // 判断是否需要提交(json) - Integer submitFlag = 0 ; + Integer submitFlag = 0; if (!ObjectUtils.isEmpty(customConfig)) { JSONObject jsonObject = JSONObject.parseObject(customConfig); submitFlag = jsonObject.getInteger("submitFlag"); // 提交标志 @@ -606,7 +609,9 @@ public class RecordRecordServiceImpl implements RecordRecordService { @Override public PageResult getLookRecordList(RecordRecordPageReqVO pageReqVO) { - PageResult recordRecordDOPageResult = recordRecordMapper.selectPage(pageReqVO); + Long categoryId = pageReqVO.getCategoryId(); + if (categoryId == null) return PageResult.empty(); + PageResult recordRecordDOPageResult = selectRecordPage(pageReqVO,categoryId,null); return BeanUtils.toBean(recordRecordDOPageResult, RecordRecordRespVO.class); } @@ -615,31 +620,25 @@ public class RecordRecordServiceImpl implements RecordRecordService { public Integer updateExpireRecordJob() { LocalDateTime now = LocalDateTime.now(); LambdaQueryWrapper updateWrapper = Wrappers.lambdaQuery(); - updateWrapper.eq(RecordRecordDO::getExpirationStatus, 0) - .le(RecordRecordDO::getExpirationDate, now); + updateWrapper.eq(RecordRecordDO::getExpirationStatus, 0) // 未过期 + .eq(RecordRecordDO::getRecordStatus, 1) // 已生效 + .lt(RecordRecordDO::getExpirationDate, now); // 过期时间小于当前时间 List recordRecordDOS = recordRecordMapper.selectList(updateWrapper); if (ObjectUtils.isEmpty(recordRecordDOS)) return 0; List recordIds = new ArrayList<>(); recordRecordDOS.forEach(item -> { recordIds.add(item.getId()); - item.setExpirationStatus(1); - item.setCancelFlag(1); + item.setExpirationStatus(1); // 过期 +// item.setCancelFlag(1); }); recordRecordMapper.updateBatch(recordRecordDOS); // 回收权限 - LambdaQueryWrapper query = Wrappers.lambdaQuery(); - query.eq(RecordPermissionDO::getSourceType, RecordConstants.PermissionSourceType.RECORD); - query.in(RecordPermissionDO::getTargetId, recordIds); - List recordPermissionDOS = recordPermissionService.selectList(query); - if (ObjectUtils.isEmpty(recordPermissionDOS)) return recordRecordDOS.size(); - List permissionIds = new ArrayList<>(); - recordPermissionDOS.forEach(item -> { - item.setExpirationStatus("1"); - permissionIds.add(item.getId()); - }); - recordPermissionService.updateRecordPermissionBatch(recordPermissionDOS); // 更新过期 - recordPermissionService.deleteRecordPermissionListByIds(permissionIds); // 删除 + LambdaUpdateWrapper update = Wrappers.lambdaUpdate(); + update.eq(RecordPermissionDO::getSourceType, RecordConstants.PermissionSourceType.RECORD); + update.in(RecordPermissionDO::getTargetId, recordIds); + update.set(RecordPermissionDO::getExpirationStatus, 1); // 过期 + recordPermissionService.updatePermission(update); return recordRecordDOS.size(); } @@ -647,4 +646,9 @@ public class RecordRecordServiceImpl implements RecordRecordService { public Integer withdrawPermissionJob() { return 0; } + + @Override + public int updateRecord(LambdaUpdateWrapper updateWrapper) { + return recordRecordMapper.update(updateWrapper); + } } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/device/dal/mapper/DevicePeriodCheckMapper.xml b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/device/dal/mapper/DevicePeriodCheckMapper.xml index ea4fcb6e..a0fedaca 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/device/dal/mapper/DevicePeriodCheckMapper.xml +++ b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/device/dal/mapper/DevicePeriodCheckMapper.xml @@ -25,6 +25,7 @@ + @@ -46,15 +47,19 @@ - + - + + + + + - SELECT c.*, d.DEV_NAME, @@ -113,6 +118,9 @@ and c.EFCT_FLG = #{param.effectiveFlag} + + and c.CHK_TGT = #{param.checkTarget} + and d.DEPT_ID = #{param.deptId} @@ -131,4 +139,57 @@ + + \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/dal/mapper/RecordApplyDetailMapper.xml b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/dal/mapper/RecordApplyDetailMapper.xml index 4da10ee5..6b9d3b0a 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/dal/mapper/RecordApplyDetailMapper.xml +++ b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/dal/mapper/RecordApplyDetailMapper.xml @@ -9,53 +9,53 @@ 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> - + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + - SELECT - tra.ID AS id, - tra.TTL AS title, - tra.BSN_TP AS businessType, - tra.BSN_STS AS businessStatus, - tra.FLW_INSC_ID AS flowInstanceId, - tra.APL_USER_ID AS applyUserId, - tra.APL_USER_NAME AS applyUserName, - tra.APL_DEPT_ID AS applyDepartmentId, - tra.APL_DEPT_NAME AS applyDepartmentName, - tra.RVW_TM AS reviewTime, - tra.RVW_RNG AS reviewRange, - tra.ASN_TGT AS assignTarget, - tra.TGT_DEPT_IDS AS targetDepartmentIds, - tra.TGT_USER_IDS AS targetUserIds, - tra.FORM_DAT AS formData, - tra.APL_CNTT AS applyContent, - tra.CHG_BFR AS changeBefore, - tra.CHG_AFT AS changeAfter, - tra.PMNT AS permanently, - tra.APL_STRT_DT AS applyStartDate, - tra.APL_END_DT AS applyEndDate, - tra.SYS_DEPT_CD AS systemDepartmentCode, - tra.RMK AS remark, - tra.DELETED AS deleted, - tra.CREATE_TIME AS createTime, - tra.CREATE_BY AS createBy, - tra.UPDATE_TIME AS updateTime, - tra.UPDATE_BY AS updateBy, - tra.TENANT_ID AS tenantId - FROM T_RCD_APL tra - LEFT JOIN T_RCD_APL_DTL trad ON tra.ID = trad.APL_ID - WHERE tra.DELETED = 0 - AND tra.BSN_TP = #{businessType} - - AND trad.DOC_ID IN - - #{docId} - - - - AND tra.BSN_STS IN - - #{status} - - - - - - - - - - \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRecordMapper.xml b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRecordMapper.xml index 027e0de9..16db33ed 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRecordMapper.xml +++ b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRecordMapper.xml @@ -36,122 +36,7 @@ trr.APL_STS AS applyStatus - - - - - - - + - - -