From faab71424c04f18309e44d3934622d12ff25df81 Mon Sep 17 00:00:00 2001 From: FCL Date: Thu, 19 Mar 2026 15:38:51 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=8A=A5=E5=91=8A-iwork=E7=94=A8=E5=8D=B0?= =?UTF-8?q?=E5=9B=9E=E8=B0=83=EF=BC=9B=E8=AE=BE=E5=A4=87-=E6=A3=80?= =?UTF-8?q?=E5=AE=9A=E6=A0=A1=E5=87=86=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reportdoc/constant/ReportDocConstant.java | 4 +- .../controller/admin/RocketMqDebugDemo.java | 88 +++++++ .../service/ReportDocumentAssistService.java | 1 + .../service/ReportDocumentFileService.java | 1 + .../ReportDocumentFileServiceImpl.java | 6 + .../ReportDocumentMainServiceImpl.java | 45 ++-- .../resource/device/common/DeviceUtil.java | 14 +- .../admin/DeviceCalibrationController.java | 42 +++- .../DeviceCalibrationPlanController.java | 21 +- .../admin/DeviceMaintainController.java | 10 +- .../DevicePeriodCheckPlanController.java | 12 +- .../vo/DeviceCalibrationPageReqVO.java | 31 +++ .../vo/DeviceCalibrationPlanSaveReqVO.java | 6 + .../vo/DeviceCalibrationRespVO.java | 2 +- .../vo/DeviceCalibrationSaveReqVO.java | 2 +- .../controller/vo/DeviceCalibrationVO.java | 55 +++++ .../dal/dataobject/DeviceCalibrationDO.java | 2 +- .../dal/mapper/DeviceCalibrationMapper.java | 17 ++ .../dal/mapper/DevicePeriodCheckMapper.java | 3 +- .../service/DeviceCalibrationPlanService.java | 8 + .../DeviceCalibrationPlanServiceImpl.java | 224 +++++++++++++++++- .../service/DeviceCalibrationService.java | 20 ++ .../service/DeviceCalibrationServiceImpl.java | 107 ++++++++- .../device/service/DeviceMaintainService.java | 3 +- .../service/DeviceMaintainServiceImpl.java | 13 +- .../dal/mapper/DeviceCalibrationMapper.xml | 114 +++++++++ .../dal/mapper/DevicePeriodCheckMapper.xml | 3 +- 27 files changed, 772 insertions(+), 82 deletions(-) create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/admin/RocketMqDebugDemo.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DeviceCalibrationVO.java diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/constant/ReportDocConstant.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/constant/ReportDocConstant.java index 03eaaf54..cd79cf95 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/constant/ReportDocConstant.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/constant/ReportDocConstant.java @@ -2,7 +2,7 @@ package com.zt.plat.module.qms.business.reportdoc.constant; public class ReportDocConstant { - public static final String REPORT_DOCUMENT_BUSINESS_FILE_SOURCE_QMS = "qms.reportdoc"; - public static final String REPORT_DOCUMENT_BUSINESS_FILE_SOURCE_IWORK = "iwork"; + public static final String REPORT_DOCUMENT_BUSINESS_FILE_SOURCE_QMS = "qms.reportdoc"; //报告模块产生的文件 + public static final String REPORT_DOCUMENT_BUSINESS_FILE_SOURCE_IWORK = "iwork"; //iwork产生的文件 } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/admin/RocketMqDebugDemo.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/admin/RocketMqDebugDemo.java new file mode 100644 index 00000000..3e12355b --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/controller/admin/RocketMqDebugDemo.java @@ -0,0 +1,88 @@ +package com.zt.plat.module.qms.business.reportdoc.controller.admin; + +import org.apache.rocketmq.client.producer.DefaultMQProducer; +import org.apache.rocketmq.client.producer.SendResult; +import org.apache.rocketmq.common.message.Message; +import org.apache.rocketmq.client.impl.factory.MQClientInstance; +import org.apache.rocketmq.client.impl.MQClientAPIImpl; +import org.apache.rocketmq.remoting.protocol.route.BrokerData; +import org.apache.rocketmq.remoting.protocol.route.TopicRouteData; + + +public class RocketMqDebugDemo { + + public static void main(String[] args) throws Exception { + // 1. 【标准定义】创建 Producer 实例 + // 这里的 "MyProducerGroup" 是你的生产者组名,随意定义,但要唯一 + DefaultMQProducer producer = new DefaultMQProducer("MyProducerGroup"); + + // 2. 【关键配置】设置 NameServer 地址 + // 注意:这里填你映射到宿主机的地址,如 127.0.0.1:9876 或 服务器IP:9876 + producer.setNamesrvAddr("127.0.0.1:9876"); + + // 3. 【可选优化】关闭 VIP 通道 (解决部分网络环境问题) + producer.setVipChannelEnabled(false); + + // 4. 启动 Producer + producer.start(); + System.out.println("Producer 启动成功..."); + + // ========================================== + // 5. 【插入调试代码】在发送消息前,获取路由信息 + // ========================================== + String targetTopic = "SYSTEM_IWORK_BIZ_CALLBACK"; + + try { + // 获取内部实现对象 + MQClientInstance factory = producer.getDefaultMQProducerImpl().getmQClientFactory(); + MQClientAPIImpl apiImpl = factory.getMQClientAPIImpl(); + + // 请求路由信息 (超时设为 3000ms) + TopicRouteData routeData = apiImpl.getTopicRouteInfoFromNameServer(targetTopic, 3000); + + if (routeData != null && routeData.getBrokerDatas() != null) { + System.out.println("\n====== 路由调试信息 ======"); + for (BrokerData bd : routeData.getBrokerDatas()) { + System.out.println("Broker 名称: " + bd.getBrokerName()); + System.out.println("Cluster 名称: " + bd.getCluster()); + // 【核心】打印 Broker 地址列表,Key 是 BrokerID (0 代表 Master) + System.out.println("Broker 地址列表: " + bd.getBrokerAddrs()); + + // 检查地址是否包含内网 IP (如 172.17.x.x) + bd.getBrokerAddrs().values().forEach(addr -> { + if (addr.startsWith("172.") || addr.startsWith("10.") && !addr.startsWith("10.0.0.")) { + System.out.println("⚠️ 警告:发现疑似容器内网 IP: " + addr); + System.out.println("⚠️ 这会导致外部 Producer 连接超时!请检查 brokerIP1 配置。"); + } else { + System.out.println("✅ 地址看起来是可达的: " + addr); + } + }); + } + System.out.println("========================\n"); + } else { + System.out.println("❌ 错误:未获取到 Topic [" + targetTopic + "] 的路由信息。"); + System.out.println("可能原因:Topic 不存在且自动创建被禁用,或 NameServer 连接正常但无数据。"); + } + } catch (Exception e) { + System.out.println("❌ 获取路由信息失败: " + e.getMessage()); + e.printStackTrace(); + } + + // ========================================== + // 6. 【正式发送】如果上面调试没报错,尝试发送 + // ========================================== + try { + Message msg = new Message(targetTopic, "TagA", "Hello RocketMQ from Debug Code".getBytes()); + // 发送超时时间设为 3000ms + SendResult sendResult = producer.send(msg, 3000); + System.out.println("✅ 发送成功! MessageId: " + sendResult.getMsgId()); + } catch (Exception e) { + System.out.println("❌ 发送失败! 错误信息: " + e.getMessage()); + e.printStackTrace(); + } finally { + // 7. 关闭 Producer + producer.shutdown(); + } + } + +} diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentAssistService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentAssistService.java index 9d60a3a0..bb36163f 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentAssistService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentAssistService.java @@ -220,6 +220,7 @@ public class ReportDocumentAssistService { fileSaveReqVO.setPath(fileRespDTO.getDirectory()); fileSaveReqVO.setUrl(fileRespDTO.getUrl()); fileSaveReqVO.setVersion(mainDO.getDocumentVersion()); + fileSaveReqVO.setType(ReportDocConstant.REPORT_DOCUMENT_BUSINESS_FILE_SOURCE_QMS); reportDocumentFileService.createReportDocumentFile(fileSaveReqVO); return BeanUtils.toBean(fileRespDTO, ReportDocumentFileDO.class); } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentFileService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentFileService.java index 7ba9506c..29018d75 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentFileService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentFileService.java @@ -26,6 +26,7 @@ public interface ReportDocumentFileService { * @return 编号 */ ReportDocumentFileRespVO createReportDocumentFile(@Valid ReportDocumentFileSaveReqVO createReqVO); + ReportDocumentFileDO createReportDocumentFile(ReportDocumentFileDO fileDO); /** * 更新检测报告附件 diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentFileServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentFileServiceImpl.java index 3023f56b..2ee3f6fe 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentFileServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentFileServiceImpl.java @@ -53,6 +53,12 @@ public class ReportDocumentFileServiceImpl implements ReportDocumentFileService return BeanUtils.toBean(reportDocumentFile, ReportDocumentFileRespVO.class); } + @Override + public ReportDocumentFileDO createReportDocumentFile(ReportDocumentFileDO fileDO) { + reportDocumentFileMapper.insert(fileDO); + return fileDO; + } + @Override public void updateReportDocumentFile(ReportDocumentFileSaveReqVO updateReqVO) { // 校验存在 diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentMainServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentMainServiceImpl.java index 9f815ab6..78ddf376 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentMainServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentMainServiceImpl.java @@ -30,11 +30,8 @@ import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigUserSignature import com.zt.plat.module.qms.business.config.service.ConfigUserSignatureService; import com.zt.plat.module.qms.business.reportdoc.constant.ReportDocConstant; import com.zt.plat.module.qms.business.reportdoc.controller.vo.*; -import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentDataDO; -import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentMainCorrelationDO; -import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentTypeDO; +import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.*; import com.zt.plat.module.qms.business.reportdoc.dal.mapper.ReportDocumentMainMapper; -import com.zt.plat.module.qms.business.reportdoc.dal.dataobject.ReportDocumentMainDO; import com.zt.plat.module.qms.common.data.service.DataKeyCheckService; import com.zt.plat.module.qms.core.code.SequenceUtil; import com.zt.plat.module.qms.enums.QmsBpmConstant; @@ -80,6 +77,7 @@ public class ReportDocumentMainServiceImpl implements ReportDocumentMainService, @Resource private ConfigUserSignatureService configUserSignatureService; @Resource private BusinessSampleEntrustRegistrationService businessSampleEntrustRegistrationService; @Resource private ReportDocumentAssistService reportDocumentAssistService; + @Resource private ReportDocumentFileService reportDocumentFileService; @Resource private DataKeyCheckService dataKeyCheckService; @Resource private SequenceUtil sequenceUtil; @@ -434,7 +432,6 @@ public class ReportDocumentMainServiceImpl implements ReportDocumentMainService, throw exception0(ERROR_CODE_MODULE_COMMON, result.getMsg()); } entity.setFlowStatus(QmsCommonConstant.IN_PROGRESS); - //todo 生成报告编号 documentCode reportDocumentMainMapper.updateById(entity); ReportDocumentMainRespVO respVO = BeanUtils.toBean(entity, ReportDocumentMainRespVO.class); return CommonResult.success(respVO); @@ -469,7 +466,6 @@ public class ReportDocumentMainServiceImpl implements ReportDocumentMainService, return CommonResult.success(respVO); } - //流程回调 @Override @Transactional(rollbackFor = Exception.class) @@ -594,7 +590,8 @@ public class ReportDocumentMainServiceImpl implements ReportDocumentMainService, public CommonResult execCallBackByIwork(IWorkBizCallbackMessage message){ JSONObject payload = new JSONObject(); try{ - payload = JSONObject.parseObject((String) message.getPayload()); + Map payloadMap = (Map) message.getPayload(); + payload = new JSONObject(payloadMap); }catch (Exception e){ log.error("iwork用印回调,解析回调数据失败", e.getMessage()); e.getMessage(); @@ -605,7 +602,7 @@ public class ReportDocumentMainServiceImpl implements ReportDocumentMainService, String fileName = payload.getString("fileName"); String requestId = payload.getString("requestId"); //获取主数据 - ReportDocumentMainDO entity = getByCode(businessCode); + ReportDocumentMainDO mainDO = getByCode(businessCode); //查询附件对象 BusinessFilePageReqDTO pageReqDTO = new BusinessFilePageReqDTO(); @@ -625,20 +622,30 @@ public class ReportDocumentMainServiceImpl implements ReportDocumentMainService, BusinessFileRespDTO bisFile = bisFileList.get(0); Long fileId = bisFile.getFileId(); CommonResult fileRet = fileApi.getFile(fileId); - FileRespDTO file = fileRet.getData(); + FileRespDTO fileRespDTO = fileRet.getData(); //写入ReportDocumentFile - ReportDocumentFileSaveReqVO fileSaveReqVO = new ReportDocumentFileSaveReqVO(); -// fileSaveReqVO.setMainId(mainDO.getId()); -// fileSaveReqVO.setFileId(fileRespDTO.getId()); -// fileSaveReqVO.setName(filename); -// fileSaveReqVO.setPath(fileRespDTO.getDirectory()); -// fileSaveReqVO.setUrl(fileRespDTO.getUrl()); -// fileSaveReqVO.setVersion(mainDO.getDocumentVersion()); -// reportDocumentFileService.createReportDocumentFile(fileSaveReqVO); + ReportDocumentFileDO documentFileDO = new ReportDocumentFileDO(); + documentFileDO.setMainId(mainDO.getId()); + documentFileDO.setFileId(fileRespDTO.getId()); + documentFileDO.setName(fileName); + documentFileDO.setPath(fileRespDTO.getDirectory()); + documentFileDO.setUrl(fileRespDTO.getUrl()); + documentFileDO.setVersion(mainDO.getDocumentVersion()); + documentFileDO.setType(ReportDocConstant.REPORT_DOCUMENT_BUSINESS_FILE_SOURCE_IWORK); + reportDocumentFileService.createReportDocumentFile(documentFileDO); //触发流程提交 - - return null; + String flowInsId = mainDO.getFlowInstanceId(); + CommonResult> taskRet = bpmTaskApi.getTaskListByProcessInstanceId(flowInsId); + List taskList = taskRet.getData(); + if(taskList.isEmpty()) + throw exception0(ERROR_CODE_MODULE_COMMON, "流程任务查询失败,请联系管理员处理"); + String taskId = taskList.get(taskList.size() - 1).getId(); + //驳回后重新提交 + BpmTaskApproveReqDTO reqVO = new BpmTaskApproveReqDTO(); + reqVO.setId(taskId); + CommonResult result = bpmProcessInstanceApi.approveTask(reqVO); + return CommonResult.success(""); } } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/common/DeviceUtil.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/common/DeviceUtil.java index 76f23954..d458fba9 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/common/DeviceUtil.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/common/DeviceUtil.java @@ -22,10 +22,10 @@ public class DeviceUtil { * @param frequency 频率 * @return */ - public static LocalDateTime[] getDateRangeByFrequency(LocalDate date, boolean nextFlag, String frequencyType, String frequency) { - LocalDate referenceDate = (date != null) ? date : LocalDate.now(); - LocalDate startDate = null; - LocalDate endDate = null; + public static LocalDateTime[] getDateRangeByFrequency(LocalDateTime date, boolean nextFlag, String frequencyType, String frequency) { + LocalDateTime referenceDate = (date != null) ? date : LocalDateTime.now(); + LocalDateTime startDate = null; + LocalDateTime endDate = null; int frequencyInt = Integer.parseInt(frequency); if(!nextFlag) frequencyInt --; @@ -56,8 +56,8 @@ public class DeviceUtil { } return new LocalDateTime[]{ - LocalDateTime.of(startDate, LocalTime.of(0, 0, 0)), - LocalDateTime.of(endDate, LocalTime.of(23, 59, 59)) + LocalDateTime.of(startDate.toLocalDate(), LocalTime.of(0, 0, 0)), + LocalDateTime.of(endDate.toLocalDate(), LocalTime.of(23, 59, 59)) }; } @@ -128,7 +128,7 @@ public class DeviceUtil { } public static void main(String[] args) { - LocalDate lastDate = LocalDate.of(2025, 3 , 25); + LocalDateTime lastDate = LocalDateTime.of(2025, 3 , 25, 0, 0); String frequencyType = "month"; String frequency = "3"; 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 0b3a7a90..9d3f0749 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 @@ -1,8 +1,14 @@ 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.controller.vo.DeviceCalibrationPageReqVO; import com.zt.plat.module.qms.resource.device.controller.vo.DeviceCalibrationRespVO; import com.zt.plat.module.qms.resource.device.controller.vo.DeviceCalibrationSaveReqVO; +import com.zt.plat.module.qms.resource.device.controller.vo.DeviceCalibrationVO; +import com.zt.plat.module.qms.resource.device.service.DeviceCalibrationPlanService; +import com.zt.plat.module.qms.resource.device.service.DeviceProductService; +import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -52,19 +58,18 @@ public class DeviceCalibrationController extends AbstractFileUploadController im } } - @Resource - private DeviceCalibrationService deviceCalibrationService; + @Resource private DeviceCalibrationService deviceCalibrationService; + @Resource private DeviceCalibrationPlanService deviceCalibrationPlanService; + @Resource private DeviceProductService deviceProductService; @PostMapping("/create") @Operation(summary = "创建设备-检定校准") - @PreAuthorize("@ss.hasPermission('qms:device-calibration:create')") public CommonResult createDeviceCalibration(@Valid @RequestBody DeviceCalibrationSaveReqVO createReqVO) { return success(deviceCalibrationService.createDeviceCalibration(createReqVO)); } @PutMapping("/update") @Operation(summary = "更新设备-检定校准") - @PreAuthorize("@ss.hasPermission('qms:device-calibration:update')") public CommonResult updateDeviceCalibration(@Valid @RequestBody DeviceCalibrationSaveReqVO updateReqVO) { deviceCalibrationService.updateDeviceCalibration(updateReqVO); return success(true); @@ -73,7 +78,6 @@ public class DeviceCalibrationController extends AbstractFileUploadController im @DeleteMapping("/delete") @Operation(summary = "删除设备-检定校准") @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('qms:device-calibration:delete')") public CommonResult deleteDeviceCalibration(@RequestParam("id") Long id) { deviceCalibrationService.deleteDeviceCalibration(id); return success(true); @@ -91,7 +95,6 @@ public class DeviceCalibrationController extends AbstractFileUploadController im @GetMapping("/get") @Operation(summary = "获得设备-检定校准") @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('qms:device-calibration:query')") public CommonResult getDeviceCalibration(@RequestParam("id") Long id) { DeviceCalibrationDO deviceCalibration = deviceCalibrationService.getDeviceCalibration(id); return success(BeanUtils.toBean(deviceCalibration, DeviceCalibrationRespVO.class)); @@ -99,18 +102,33 @@ public class DeviceCalibrationController extends AbstractFileUploadController im @GetMapping("/page") @Operation(summary = "获得设备-检定校准分页") - @PreAuthorize("@ss.hasPermission('qms:device-calibration:query')") - public CommonResult> getDeviceCalibrationPage(@Valid DeviceCalibrationPageReqVO pageReqVO) { - PageResult pageResult = deviceCalibrationService.getDeviceCalibrationPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, DeviceCalibrationRespVO.class)); + public CommonResult> getDeviceCalibrationPage(@Valid DeviceCalibrationPageReqVO 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(""); + } + IPage pageList = deviceCalibrationService.queryPageList(page, param); + PageResult pageResult = new PageResult<>(pageList.getRecords(), pageList.getTotal()); + return CommonResult.success(pageResult); + +// PageResult pageResult = deviceCalibrationService.getDeviceCalibrationPage(pageReqVO); +// return success(BeanUtils.toBean(pageResult, DeviceCalibrationRespVO.class)); } @GetMapping("/export-excel") @Operation(summary = "导出设备-检定校准 Excel") @PreAuthorize("@ss.hasPermission('qms:device-calibration:export')") @ApiAccessLog(operateType = EXPORT) - public void exportDeviceCalibrationExcel(@Valid DeviceCalibrationPageReqVO pageReqVO, - HttpServletResponse response) throws IOException { + public void exportDeviceCalibrationExcel(@Valid DeviceCalibrationPageReqVO pageReqVO, HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); List list = deviceCalibrationService.getDeviceCalibrationPage(pageReqVO).getList(); // 导出 Excel diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DeviceCalibrationPlanController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DeviceCalibrationPlanController.java index 92b1c36a..3f8db220 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DeviceCalibrationPlanController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DeviceCalibrationPlanController.java @@ -1,8 +1,6 @@ package com.zt.plat.module.qms.resource.device.controller.admin; -import com.zt.plat.module.qms.resource.device.controller.vo.DeviceCalibrationPlanPageReqVO; -import com.zt.plat.module.qms.resource.device.controller.vo.DeviceCalibrationPlanRespVO; -import com.zt.plat.module.qms.resource.device.controller.vo.DeviceCalibrationPlanSaveReqVO; +import com.zt.plat.module.qms.resource.device.controller.vo.*; import org.springframework.web.bind.annotation.*; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -55,16 +53,20 @@ public class DeviceCalibrationPlanController extends AbstractFileUploadControlle @Resource private DeviceCalibrationPlanService deviceCalibrationPlanService; - @PostMapping("/create") + @PostMapping("/createPlan") @Operation(summary = "创建设备-检定校准计划") - @PreAuthorize("@ss.hasPermission('qms:device-calibration-plan:create')") - public CommonResult createDeviceCalibrationPlan(@Valid @RequestBody DeviceCalibrationPlanSaveReqVO createReqVO) { - return success(deviceCalibrationPlanService.createDeviceCalibrationPlan(createReqVO)); + public CommonResult createPlan(String checkYear) { + return deviceCalibrationPlanService.createPlan(checkYear); + } + + @RequestMapping("/submitApply") + @Operation(summary = "提交申请") + public CommonResult submitApply(@RequestBody DeviceCalibrationPlanSaveReqVO param) { + return deviceCalibrationPlanService.submitApply(param); } @PutMapping("/update") @Operation(summary = "更新设备-检定校准计划") - @PreAuthorize("@ss.hasPermission('qms:device-calibration-plan:update')") public CommonResult updateDeviceCalibrationPlan(@Valid @RequestBody DeviceCalibrationPlanSaveReqVO updateReqVO) { deviceCalibrationPlanService.updateDeviceCalibrationPlan(updateReqVO); return success(true); @@ -73,7 +75,6 @@ public class DeviceCalibrationPlanController extends AbstractFileUploadControlle @DeleteMapping("/delete") @Operation(summary = "删除设备-检定校准计划") @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('qms:device-calibration-plan:delete')") public CommonResult deleteDeviceCalibrationPlan(@RequestParam("id") Long id) { deviceCalibrationPlanService.deleteDeviceCalibrationPlan(id); return success(true); @@ -91,7 +92,6 @@ public class DeviceCalibrationPlanController extends AbstractFileUploadControlle @GetMapping("/get") @Operation(summary = "获得设备-检定校准计划") @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('qms:device-calibration-plan:query')") public CommonResult getDeviceCalibrationPlan(@RequestParam("id") Long id) { DeviceCalibrationPlanDO deviceCalibrationPlan = deviceCalibrationPlanService.getDeviceCalibrationPlan(id); return success(BeanUtils.toBean(deviceCalibrationPlan, DeviceCalibrationPlanRespVO.class)); @@ -99,7 +99,6 @@ public class DeviceCalibrationPlanController extends AbstractFileUploadControlle @GetMapping("/page") @Operation(summary = "获得设备-检定校准计划分页") - @PreAuthorize("@ss.hasPermission('qms:device-calibration-plan:query')") public CommonResult> getDeviceCalibrationPlanPage(@Valid DeviceCalibrationPlanPageReqVO pageReqVO) { PageResult pageResult = deviceCalibrationPlanService.getDeviceCalibrationPlanPage(pageReqVO); return success(BeanUtils.toBean(pageResult, DeviceCalibrationPlanRespVO.class)); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DeviceMaintainController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DeviceMaintainController.java index bd0922c7..d93082cb 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DeviceMaintainController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DeviceMaintainController.java @@ -22,6 +22,8 @@ import jakarta.servlet.http.*; import java.text.SimpleDateFormat; import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.*; import java.io.IOException; @@ -125,11 +127,11 @@ public class DeviceMaintainController extends AbstractFileUploadController imple if(!checkResult.isSuccess()){ return checkResult.error(checkResult.getCode(), checkResult.getMsg()); } - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + LocalDateTime dateTime = LocalDate.now().atStartOfDay(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); if(ObjectUtils.isEmpty(dateStr)) - dateStr = sdf.format(new Date()); - LocalDate localDate = LocalDate.parse(dateStr); - return deviceMaintainService.create(deviceId, localDate, dataType); + dateTime = LocalDateTime.parse(dateStr, formatter); + return deviceMaintainService.create(deviceId, dateTime, dataType); } @PutMapping("/update") 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 ef7651f9..b8994226 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 @@ -1,8 +1,7 @@ package com.zt.plat.module.qms.resource.device.controller.admin; -import com.zt.plat.module.qms.resource.device.controller.vo.DevicePeriodCheckPlanPageReqVO; -import com.zt.plat.module.qms.resource.device.controller.vo.DevicePeriodCheckPlanRespVO; -import com.zt.plat.module.qms.resource.device.controller.vo.DevicePeriodCheckPlanSaveReqVO; +import com.zt.plat.module.qms.resource.device.controller.vo.*; +import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.web.bind.annotation.*; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -55,12 +54,15 @@ public class DevicePeriodCheckPlanController extends AbstractFileUploadControlle @Resource private DevicePeriodCheckPlanService devicePeriodCheckPlanService; - @PostMapping("/create") + @PostMapping("/createPlan") @Operation(summary = "创建设备-期间核查计划") - public CommonResult createDevicePeriodCheckPlan(String checkYear) { + public CommonResult createDevicePeriodCheckPlan(@RequestBody String checkYear) { return success(devicePeriodCheckPlanService.createPlan(checkYear)); } + + + @PutMapping("/update") @Operation(summary = "更新设备-期间核查计划") public CommonResult updateDevicePeriodCheckPlan(@Valid @RequestBody DevicePeriodCheckPlanSaveReqVO updateReqVO) { diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DeviceCalibrationPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DeviceCalibrationPageReqVO.java index 86b116e5..d006bc41 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DeviceCalibrationPageReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DeviceCalibrationPageReqVO.java @@ -84,4 +84,35 @@ public class DeviceCalibrationPageReqVO extends PageParam { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; + + //======================设备大类字段============================== + + + + //======================设备字段============================== + + + + //======================查询字段============================== + @Schema(description = "流程状态列表") + private List flowStatusList; + + @Schema(description = "设备名称") + private String deviceName; + +// @Schema(description = "计划id列表") +// private List planIdList; + + @Schema(description = "设备大类id") + private Long productId; + + @Schema(description = "设备大类id列表") + private List productIdList; + + @Schema(description = "部门id列表") + private List deptIdList; + + @Schema(description = "部门id") + private Long deptId; + } \ 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/controller/vo/DeviceCalibrationPlanSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DeviceCalibrationPlanSaveReqVO.java index a419b67f..2847b6ff 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DeviceCalibrationPlanSaveReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DeviceCalibrationPlanSaveReqVO.java @@ -1,5 +1,6 @@ package com.zt.plat.module.qms.resource.device.controller.vo; +import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceCalibrationDO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -48,4 +49,9 @@ public class DeviceCalibrationPlanSaveReqVO { @Schema(description = "备注") private String remark; + + //==============扩展字段================== + @Schema(description = "检定校准明细列表") + List deviceCalibrationList; + } \ 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/controller/vo/DeviceCalibrationRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DeviceCalibrationRespVO.java index 3dda46ad..70088f81 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DeviceCalibrationRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DeviceCalibrationRespVO.java @@ -30,7 +30,7 @@ public class DeviceCalibrationRespVO { @Schema(description = "供应商名称", example = "赵六") @ExcelProperty("供应商名称") - private Long supplierName; + private String supplierName; @Schema(description = "供应商ID", example = "24250") @ExcelProperty("供应商ID") diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DeviceCalibrationSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DeviceCalibrationSaveReqVO.java index 7f5051b7..600ea02d 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DeviceCalibrationSaveReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DeviceCalibrationSaveReqVO.java @@ -24,7 +24,7 @@ public class DeviceCalibrationSaveReqVO { private Long deviceId; @Schema(description = "供应商名称", example = "赵六") - private Long supplierName; + private String supplierName; @Schema(description = "供应商ID", example = "24250") private Long supplierId; 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 new file mode 100644 index 00000000..2cd9c958 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DeviceCalibrationVO.java @@ -0,0 +1,55 @@ +package com.zt.plat.module.qms.resource.device.controller.vo; + +import com.alibaba.fastjson.JSONObject; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +/* +* 检定校准响应对象 +* */ + +@Data +public class DeviceCalibrationVO extends DeviceCalibrationRespVO{ + + //=========公共字段============ + + private Long companyId; + private String companyName; + + private Long deptId; + + private String deptName; + + private Long postId; + private Long tenantId; + + private String updaterName; + private String creatorName; + private LocalDateTime createTime; + private LocalDateTime updateTime; + private String creator; + private String updater; + + //============大类字段============ + + private String specification; //规格 + + private String modelNo; //型号 + + private String manufacturer; //制造商 + + private String customConfig; + + private JSONObject customConfigJson; + + //============设备字段============ + private String deviceName; //设备名称 + + private String alias; //别名 + + private String deviceCode; //管理编号 + + private String factoryCode; //出厂编号 +} diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/dataobject/DeviceCalibrationDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/dataobject/DeviceCalibrationDO.java index 7ae46ee9..8ccf02ca 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/dataobject/DeviceCalibrationDO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/dataobject/DeviceCalibrationDO.java @@ -50,7 +50,7 @@ public class DeviceCalibrationDO extends BusinessBaseDO { * 供应商名称 */ @TableField("SPLR_NAME") - private Long supplierName; + private String supplierName; /** * 供应商ID */ diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/mapper/DeviceCalibrationMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/mapper/DeviceCalibrationMapper.java index 02d6c9f2..cef1d5af 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/mapper/DeviceCalibrationMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/mapper/DeviceCalibrationMapper.java @@ -1,11 +1,21 @@ package com.zt.plat.module.qms.resource.device.dal.mapper; +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.PageResult; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; +import com.zt.plat.module.qms.resource.device.controller.vo.DeviceCalibrationVO; +import com.zt.plat.module.qms.resource.device.controller.vo.DeviceInfomationMaintainVO; +import com.zt.plat.module.qms.resource.device.controller.vo.DeviceMaintainPageReqVO; import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceCalibrationDO; import com.zt.plat.module.qms.resource.device.controller.vo.DeviceCalibrationPageReqVO; +import com.zt.plat.module.qms.resource.device.dal.dataobject.DevicePeriodCheckDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 设备-检定校准 Mapper @@ -42,4 +52,11 @@ public interface DeviceCalibrationMapper extends BaseMapperX getLastDataCheckList(@Param("param") JSONObject param); + + IPage queryPageList(Page page, @Param("param") DeviceCalibrationPageReqVO 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/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 35f70695..8097e3e3 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 @@ -9,6 +9,7 @@ import com.zt.plat.module.qms.resource.device.dal.dataobject.DevicePeriodCheckDO import com.zt.plat.module.qms.resource.device.controller.vo.DevicePeriodCheckPageReqVO; import com.zt.plat.module.qms.resource.device.dal.dataobject.DevicePeriodCheckPlanDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -51,6 +52,6 @@ public interface DevicePeriodCheckMapper extends BaseMapperX getLastDataCheckList(JSONObject param); + List getLastDataCheckList(@Param("param") JSONObject 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/service/DeviceCalibrationPlanService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceCalibrationPlanService.java index a06a8cb2..dd4bcfb3 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceCalibrationPlanService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceCalibrationPlanService.java @@ -2,6 +2,7 @@ package com.zt.plat.module.qms.resource.device.service; import java.util.*; +import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.module.qms.resource.device.controller.vo.DeviceCalibrationPlanPageReqVO; import com.zt.plat.module.qms.resource.device.controller.vo.DeviceCalibrationPlanRespVO; import com.zt.plat.module.qms.resource.device.controller.vo.DeviceCalibrationPlanSaveReqVO; @@ -16,6 +17,13 @@ import com.zt.plat.framework.common.pojo.PageResult; */ public interface DeviceCalibrationPlanService { + //创建检定校准计划 + CommonResult createPlan(String checkYear); + + CommonResult savePlan(DeviceCalibrationPlanSaveReqVO paramVO); + + CommonResult submitApply(DeviceCalibrationPlanSaveReqVO paramVO); + /** * 创建设备-检定校准计划 * diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceCalibrationPlanServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceCalibrationPlanServiceImpl.java index f6c8417e..e3041f44 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceCalibrationPlanServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceCalibrationPlanServiceImpl.java @@ -1,13 +1,34 @@ package com.zt.plat.module.qms.resource.device.service; import cn.hutool.core.collection.CollUtil; -import com.zt.plat.module.qms.resource.device.controller.vo.DeviceCalibrationPlanPageReqVO; -import com.zt.plat.module.qms.resource.device.controller.vo.DeviceCalibrationPlanRespVO; -import com.zt.plat.module.qms.resource.device.controller.vo.DeviceCalibrationPlanSaveReqVO; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.framework.security.core.LoginUser; +import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils; +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.common.data.dal.dataobject.DataCommonType; +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.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.controller.vo.*; +import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceCalibrationDO; +import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceCalibrationPlanDO; +import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceConfigFlowDO; +import com.zt.plat.module.qms.resource.device.enums.DeviceBizEnum; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import jakarta.annotation.Resource; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; import org.springframework.validation.annotation.Validated; +import java.text.SimpleDateFormat; import java.util.*; import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceCalibrationPlanDO; @@ -17,20 +38,133 @@ import com.zt.plat.framework.common.util.object.BeanUtils; import com.zt.plat.module.qms.resource.device.dal.mapper.DeviceCalibrationPlanMapper; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception0; import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList; import static com.zt.plat.module.qms.enums.ErrorCodeConstants.DEVICE_CALIBRATION_PLAN_NOT_EXISTS; +import static com.zt.plat.module.qms.enums.ErrorCodeConstants.ERROR_CODE_MODULE_COMMON; +import static com.zt.plat.module.qms.enums.QmsBpmConstant.BPM_CALLBACK_BEAN_NAME; /** * 设备-检定校准计划 Service 实现类 * * @author 后台管理-1 */ -@Service +@Service("deviceCalibrationPlanService") @Validated -public class DeviceCalibrationPlanServiceImpl implements DeviceCalibrationPlanService { +@Slf4j +public class DeviceCalibrationPlanServiceImpl implements DeviceCalibrationPlanService, BMPCallbackInterface { - @Resource - private DeviceCalibrationPlanMapper deviceCalibrationPlanMapper; + @Resource private DeviceCalibrationPlanMapper deviceCalibrationPlanMapper; + @Resource private DeviceCalibrationService deviceCalibrationService; + @Resource private DictionaryBusinessService dictionaryBusinessService; + @Resource private BpmProcessInstanceApi bpmProcessInstanceApi; + @Resource private DataKeyCheckService dataKeyCheckService; + @Resource private DataOpinionService dataOpinionService; + private final String wfDicKey = "DeviceCalibrationPlanWfKey"; + + + @Override + @Transactional(rollbackFor = Exception.class) + public CommonResult createPlan(String checkYear) { + + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + String userName = SecurityFrameworkUtils.getLoginUserNickname(); + + String title = userName + "的"+checkYear+"年度检定校准计划"; + DeviceCalibrationPlanDO entity = new DeviceCalibrationPlanDO(); + entity.setCheckYear(checkYear); + entity.setTitle(title); + entity.setApplyUserName(userName); + entity.setFlowStatus(QmsCommonConstant.NOT_START); + deviceCalibrationPlanMapper.insert(entity); + deviceCalibrationService.createListByPlan(entity); + DeviceCalibrationPlanRespVO vo = BeanUtils.toBean(entity, DeviceCalibrationPlanRespVO.class); + return CommonResult.success(vo); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public CommonResult savePlan(DeviceCalibrationPlanSaveReqVO paramVO) { + + updateDeviceCalibrationPlan(paramVO); + + //处理明细 + List deviceCalibrationList = paramVO.getDeviceCalibrationList(); + List detailList = deviceCalibrationService.getListByPlanId(paramVO.getId()); + List updateList = new ArrayList<>(); + List deleteList = new ArrayList<>(); + List insertList = new ArrayList<>(); + for (DeviceCalibrationDO dbDetail : detailList) { + boolean findFlag = false; + for(DeviceCalibrationDO d : deviceCalibrationList){ + if(dbDetail.getId().equals(d.getId())){ + updateList.add(d); + findFlag = true; + break; + } + } + if(!findFlag){ + deleteList.add(dbDetail.getId()); + } + } + for (DeviceCalibrationDO d : deviceCalibrationList) { + boolean findFlag = false; + for(DeviceCalibrationDO dbDetail : detailList){ + if(d.getId().equals(dbDetail.getId())){ + findFlag = true; + break; + } + } + if(!findFlag){ + insertList.add(d); + } + } + if(!updateList.isEmpty()) + deviceCalibrationService.updateBatch(updateList); + if(!deleteList.isEmpty()) + deviceCalibrationService.deleteDeviceCalibrationListByIds(deleteList); + if(!insertList.isEmpty()) + deviceCalibrationService.insertBatch(insertList); + DeviceCalibrationPlanDO entity = getDeviceCalibrationPlan(paramVO.getId()); + DeviceCalibrationPlanRespVO vo = BeanUtils.toBean(entity, DeviceCalibrationPlanRespVO.class); + return CommonResult.success(vo); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public CommonResult submitApply(DeviceCalibrationPlanSaveReqVO paramVO) { + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + //当前登录用户昵称 + String nickName = SecurityFrameworkUtils.getLoginUserNickname(); + Long id = paramVO.getId(); + DeviceCalibrationPlanDO entity = getDeviceCalibrationPlan(id); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String processDefKey = dictionaryBusinessService.getValueByDataKey(wfDicKey); + if(ObjectUtils.isEmpty(processDefKey)) + throw exception0(DEVICE_CALIBRATION_PLAN_NOT_EXISTS.getCode(), "请先配置流程定义"); + Map variables = new JSONObject(); + variables.put("mainId", id); + variables.put("applyUser", nickName); + variables.put("applyUserId", loginUser.getId()); + variables.put("applyDepartment", loginUser.getVisitDeptName()); + variables.put("applyDepartmentId", loginUser.getVisitDeptId()); + variables.put("applyTime", sdf.format(new Date())); + variables.put(BPM_CALLBACK_BEAN_NAME, "deviceCalibrationPlanService"); //流程回调时使用的service + BpmProcessInstanceCreateReqDTO reqDTO = new BpmProcessInstanceCreateReqDTO(); + reqDTO.setBusinessKey(String.valueOf(id)); + reqDTO.setProcessDefinitionKey(processDefKey); + reqDTO.setVariables(variables); + CommonResult result = bpmProcessInstanceApi.createProcessInstance(loginUser.getId(), reqDTO); + if(!result.isSuccess()){ + throw exception0(DEVICE_CALIBRATION_PLAN_NOT_EXISTS.getCode(), result.getMsg()); + } + String wfInsId = result.getData(); + entity.setFlowInstanceId(wfInsId); + entity.setFlowStatus(QmsCommonConstant.IN_PROGRESS); + deviceCalibrationPlanMapper.updateById(entity); + DeviceCalibrationPlanRespVO respVO = BeanUtils.toBean(entity, DeviceCalibrationPlanRespVO.class); + return CommonResult.success(respVO); + } @Override public DeviceCalibrationPlanRespVO createDeviceCalibrationPlan(DeviceCalibrationPlanSaveReqVO createReqVO) { @@ -89,4 +223,80 @@ public class DeviceCalibrationPlanServiceImpl implements DeviceCalibrationPlanSe return deviceCalibrationPlanMapper.selectPage(pageReqVO); } + @Override + @Transactional(rollbackFor = Exception.class) + public CommonResult callback(QmsBpmDTO reqDTO) { + log.error("流程回调:{}", JSONObject.toJSONString(reqDTO)); + JSONObject variables = reqDTO.getVariables(); + JSONObject taskVariables = variables.getJSONObject("taskVariables"); + String processInsId = variables.getString(QmsBpmConstant.BPM_PROCESS_INS_ID); + String currentActivityInsId = variables.getString(QmsBpmConstant.BPM_CUR_ACTIVITY_INS_ID); + String currentActivityId = variables.getString(QmsBpmConstant.BPM_CALLBACK_ACTIVITY_ID); + String currentActivityName = variables.getString(QmsBpmConstant.BPM_CALLBACK_ACTIVITY_NAME); + String returnFlag = variables.getString(QmsBpmConstant.BPM_REJECT_TO_FIRST_FLAG); //退回标识。在任务监听中设置 + //同一个节点实例只触发一次 + String checkKey = currentActivityInsId; + if(ObjectUtils.isEmpty(currentActivityInsId)) + checkKey = processInsId + "-create"; + if("1".equals(returnFlag)) + checkKey += "-reject"; + try{ + dataKeyCheckService.create(checkKey, this.getClass().getName()); + }catch (Exception e){ +// e.printStackTrace(); + log.error("checkKey 重复:key={}", checkKey); + return CommonResult.success(new JSONObject()); + } + //流程状态 1-提交(含退回) 4-取消流程 + String PROCESS_STATUS = variables.getString(QmsBpmConstant.PROCESS_INSTANCE_VARIABLE_STATUS); + String mainId = variables.getString("mainId"); + JSONArray fieldExtensions = new JSONArray(); + if(variables.containsKey(QmsBpmConstant.BPM_FIELD_EXTENSIONS)){ + fieldExtensions = variables.getJSONArray(QmsBpmConstant.BPM_FIELD_EXTENSIONS); + } + DeviceCalibrationPlanDO entity = getDeviceCalibrationPlan(Long.valueOf(mainId)); + + //判断是否最后一个节点 + String lastActivityFlag = "0"; + String firstActivityFlag = "0"; + String borrowConfirm = "0"; + if(!fieldExtensions.isEmpty()){ + for(int i = 0; i < fieldExtensions.size(); i++){ + JSONObject fieldExtension = fieldExtensions.getJSONObject(i); + String stringValue = fieldExtension.getString("stringValue"); + if(fieldExtension.getString("fieldName").equalsIgnoreCase(QmsBpmConstant.BPM_LAST_ACTIVITY_FLAG) && "1".equals(stringValue)){ + lastActivityFlag = "1"; + } + if(fieldExtension.getString("fieldName").equalsIgnoreCase(QmsBpmConstant.BPM_FIRST_ACTIVITY_FLAG) && "1".equals(stringValue)){ + firstActivityFlag = "1"; + } + } + } + //"RETURN_FLAG_Activity_001": true 标识驳回到发起环节 + if(("1").equals(returnFlag)){ + //驳回。流程需要配置退回到发起节点 + entity.setFlowStatus(QmsCommonConstant.REJECTED); + dataOpinionService.disableOpinionsByBusId(entity.getId()); + }else if("4".equals(PROCESS_STATUS)){ + //作废 + entity.setFlowStatus(QmsCommonConstant.VOID); + deviceCalibrationService.updateEffectiveFlag(entity.getId(), "0"); + }else if("1".equals(PROCESS_STATUS)){ + //通过 +// assembleSignature(currentActivityId, entity); + DataCommonType dataCommonType = new DataCommonType(); + dataCommonType.setBusinessId(entity.getId()); + dataCommonType.setFlowInstanceId(entity.getFlowInstanceId()); + dataOpinionService.saveOpinionByWfCallback(dataCommonType, currentActivityId, currentActivityName, taskVariables); + if("1".equals(firstActivityFlag)) + entity.setFlowStatus(QmsCommonConstant.IN_PROGRESS); //驳回后重新提交 + if("1".equals(lastActivityFlag)){ + entity.setFlowStatus(QmsCommonConstant.COMPLETED); //结束审批 + } + deviceCalibrationService.updateEffectiveFlag(entity.getId(), "1"); + } + deviceCalibrationPlanMapper.updateById(entity); + JSONObject ret = new JSONObject(); + return CommonResult.success(ret); + } } \ 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/service/DeviceCalibrationService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceCalibrationService.java index 6703733b..57975f2b 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceCalibrationService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceCalibrationService.java @@ -2,9 +2,14 @@ package com.zt.plat.module.qms.resource.device.service; import java.util.*; +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.DeviceCalibrationPageReqVO; import com.zt.plat.module.qms.resource.device.controller.vo.DeviceCalibrationRespVO; import com.zt.plat.module.qms.resource.device.controller.vo.DeviceCalibrationSaveReqVO; +import com.zt.plat.module.qms.resource.device.controller.vo.DeviceCalibrationVO; +import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceCalibrationPlanDO; import jakarta.validation.*; import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceCalibrationDO; import com.zt.plat.framework.common.pojo.PageResult; @@ -16,6 +21,17 @@ import com.zt.plat.framework.common.pojo.PageResult; */ public interface DeviceCalibrationService { + + void createListByPlan(DeviceCalibrationPlanDO plan); + + CommonResult> getLastDataCheckList(List deviceIds, String flowStatus); + + IPage queryPageList(Page page, DeviceCalibrationPageReqVO pageReqVO); + + void updateEffectiveFlag(Long planId, String effectiveFlag); + + List getListByPlanId(Long planId); + /** * 创建设备-检定校准 * @@ -61,4 +77,8 @@ public interface DeviceCalibrationService { */ PageResult getDeviceCalibrationPage(DeviceCalibrationPageReqVO pageReqVO); + void updateBatch(List list); + + void insertBatch(List list); + } \ 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/service/DeviceCalibrationServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceCalibrationServiceImpl.java index 6f757986..f6eb7fa0 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceCalibrationServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceCalibrationServiceImpl.java @@ -1,22 +1,37 @@ package com.zt.plat.module.qms.resource.device.service; import cn.hutool.core.collection.CollUtil; +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; +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.common.DeviceUtil; import com.zt.plat.module.qms.resource.device.controller.vo.DeviceCalibrationPageReqVO; import com.zt.plat.module.qms.resource.device.controller.vo.DeviceCalibrationRespVO; import com.zt.plat.module.qms.resource.device.controller.vo.DeviceCalibrationSaveReqVO; +import com.zt.plat.module.qms.resource.device.controller.vo.DeviceCalibrationVO; +import com.zt.plat.module.qms.resource.device.dal.dataobject.*; import org.springframework.stereotype.Service; import jakarta.annotation.Resource; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.ZoneId; import java.util.*; -import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceCalibrationDO; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.util.object.BeanUtils; import com.zt.plat.module.qms.resource.device.dal.mapper.DeviceCalibrationMapper; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception0; import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList; import static com.zt.plat.module.qms.enums.ErrorCodeConstants.DEVICE_CALIBRATION_NOT_EXISTS; @@ -29,8 +44,85 @@ import static com.zt.plat.module.qms.enums.ErrorCodeConstants.DEVICE_CALIBRATION @Validated public class DeviceCalibrationServiceImpl implements DeviceCalibrationService { - @Resource - private DeviceCalibrationMapper deviceCalibrationMapper; + @Resource private DeviceCalibrationMapper deviceCalibrationMapper; + @Resource private DeviceInfomationService deviceInfomationService; + + @Override + @Transactional(rollbackFor = Exception.class) + public void createListByPlan(DeviceCalibrationPlanDO plan) { + Long planId = plan.getId(); + String checkYear = plan.getCheckYear(); + JSONObject ruleParam = new JSONObject(); + ruleParam.put("businessType", DeviceConstant.CALIBRATION_TYPE); + List checkList = new ArrayList<>(); + String wfStatus = QmsCommonConstant.COMPLETED; + //处理设备 + List deviceList = deviceInfomationService.getListNeedByRule(ruleParam); + if(deviceList.isEmpty()) + throw exception0(DEVICE_CALIBRATION_NOT_EXISTS.getCode(), "没有需要创建检定校准计划的设备,请检查“设备业务配置”!"); + List deviceIds = convertList(deviceList, DeviceInfoWithBizConfigVO::getId); + List lastDeviceDataList = getLastDataCheckList(deviceIds, wfStatus).getData(); + for (DeviceInfoWithBizConfigVO device : deviceList) { + DeviceConfigBusinessRuleDO rule = device.getRule(); + Long deviceId = device.getId(); + initCalibrationData(planId, checkList, lastDeviceDataList, rule, deviceId); + } + if(checkList.isEmpty()) + throw exception0(DEVICE_CALIBRATION_NOT_EXISTS.getCode(), "没有需要创建检定校准计划的设备!"); + deviceCalibrationMapper.insertBatch(checkList); + } + + private void initCalibrationData(Long planId, List checkList, List lastCheckList, DeviceConfigBusinessRuleDO rule, Long deviceId) { + DeviceCalibrationDO data = new DeviceCalibrationDO(); + DeviceCalibrationDO lastData = lastCheckList.stream().filter(item -> item.getDeviceId().equals(deviceId)).findFirst().orElse(null); + //计算下一次执行日期 + LocalDateTime nextDate = null; + if(lastData != null){ + data.setLastCheckDate(lastData.getCheckDate()); + LocalDateTime lastDate = lastData.getCheckDate(); + LocalDateTime[] dateRange = DeviceUtil.getDateRangeByFrequency(lastDate, true, rule.getFrequencyType(), rule.getFrequency()); + if(dateRange != null){ + nextDate = dateRange[0]; + } + } + //todo 过滤当前年度已执行过期间核查的数据 + data.setPlanId(planId); + data.setDeviceId(deviceId); + data.setPlanCheckDate(nextDate); + data.setSpecification(rule.getStandard()); + data.setCheckType(rule.getCalibrationCheckType()); + data.setFrequencyRemark(rule.getFrequencyRemark()); + checkList.add(data); + } + + @Override + public CommonResult> getLastDataCheckList(List deviceIds, String flowStatus) { + JSONObject param = new JSONObject(); + param.put("deviceIds", deviceIds); + param.put("flowStatus", flowStatus); + List list = deviceCalibrationMapper.getLastDataCheckList(param); + return CommonResult.success(list); + } + + @Override + public IPage queryPageList(Page page, DeviceCalibrationPageReqVO pageReqVO) { + return deviceCalibrationMapper.queryPageList(page, pageReqVO); + } + + @Override + public void updateEffectiveFlag(Long planId, String effectiveFlag) { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(DeviceCalibrationDO::getPlanId, planId); + updateWrapper.set(DeviceCalibrationDO::getEffectiveFlag, effectiveFlag); + deviceCalibrationMapper.update(updateWrapper); + } + + @Override + public List getListByPlanId(Long planId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(DeviceCalibrationDO::getPlanId, planId); + return deviceCalibrationMapper.selectList(queryWrapper); + } @Override public DeviceCalibrationRespVO createDeviceCalibration(DeviceCalibrationSaveReqVO createReqVO) { @@ -89,4 +181,13 @@ public class DeviceCalibrationServiceImpl implements DeviceCalibrationService { return deviceCalibrationMapper.selectPage(pageReqVO); } + @Override + public void updateBatch(List list) { + deviceCalibrationMapper.updateBatch(list); + } + + @Override + public void insertBatch(List list) { + deviceCalibrationMapper.insertBatch(list); + } } \ 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/service/DeviceMaintainService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceMaintainService.java index 3fafd205..94029056 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceMaintainService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceMaintainService.java @@ -2,6 +2,7 @@ package com.zt.plat.module.qms.resource.device.service; import java.text.ParseException; import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.*; import com.zt.plat.framework.common.pojo.CommonResult; @@ -21,7 +22,7 @@ public interface DeviceMaintainService { CommonResult createOrGet(Long deviceId, String date, String dataType); - CommonResult create(Long deviceId, LocalDate lastDate, String dataType); + CommonResult create(Long deviceId, LocalDateTime lastDate, String dataType); PageResult queryPageListWithCount(DeviceMaintainPageReqVO pageReqVO); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceMaintainServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceMaintainServiceImpl.java index e49d2605..57f6eb29 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceMaintainServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceMaintainServiceImpl.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zt.plat.framework.common.pojo.CommonResult; 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.resource.device.common.DeviceUtil; import com.zt.plat.module.qms.resource.device.controller.vo.*; import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceConfigBusinessRuleDO; @@ -48,6 +49,7 @@ public class DeviceMaintainServiceImpl implements DeviceMaintainService { @Resource private DeviceProductService deviceProductService; @Resource private DeviceInfomationService deviceInfomationService; @Autowired private DeviceConfigBusinessRuleService deviceConfigBusinessRuleService; + @Resource private BusinessFileService businessFileService; @Override @Transactional(rollbackFor = Exception.class) @@ -75,21 +77,21 @@ public class DeviceMaintainServiceImpl implements DeviceMaintainService { if(lastData != null && curDate.compareTo(lastData.getFrequencyTimeStart()) >=0 && curDate.compareTo(lastData.getFrequencyTimeEnd()) <=0 ){ return getMaintainDetail(lastData.getId()); } - LocalDate lastDate = null; + LocalDateTime lastDate = null; if(lastData != null) - lastDate = lastData.getFrequencyTimeEnd().toLocalDate(); + lastDate = lastData.getFrequencyTimeEnd(); //比较lastDate与curDate if(lastDate != null ){ - if(lastDate.isBefore(curDate.toLocalDate())) - lastDate = curDate.toLocalDate(); + if(lastDate.isBefore(curDate)) + lastDate = curDate; } return create(deviceId, lastDate, dataType); } @Override @Transactional(rollbackFor = Exception.class) - public CommonResult create(Long deviceId, LocalDate lastDate, String dataType) { + public CommonResult create(Long deviceId, LocalDateTime lastDate, String dataType) { //当前登录人 LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); //当前登录用户昵称 @@ -135,6 +137,7 @@ public class DeviceMaintainServiceImpl implements DeviceMaintainService { BeanUtils.copyProperties(entity, vo); List itemList = deviceMaintainItemService.getListByParId( id); vo.setMaintainItemList(itemList); + vo.setBusinessFileRet(businessFileService.getBusinessFileList(id)); return CommonResult.success( vo); } diff --git a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/device/dal/mapper/DeviceCalibrationMapper.xml b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/device/dal/mapper/DeviceCalibrationMapper.xml index 898b5411..53bbbed6 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/device/dal/mapper/DeviceCalibrationMapper.xml +++ b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/device/dal/mapper/DeviceCalibrationMapper.xml @@ -9,4 +9,118 @@ 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ 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 64a959a3..c32e8a07 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 @@ -49,8 +49,7 @@