cnas-device/src/main/java/com/ruoyi/device/controller/DeviceController.java
@@ -49,13 +49,14 @@ @Autowired private DataConfigService dataConfigService; @ApiOperation(value = "查询设备详情") @GetMapping("/getDeviceById") public Result getDeviceById(Integer deviceId){ return Result.success(deviceService.getById(deviceId)); } @ApiOperation(value = "查看设备二维码按钮") @GetMapping("/showDeviceQrCodeButton") public void showDeviceQrCodeButton() { } //设备工具明细 @ApiOperation(value = "查询设备详情列表") @GetMapping("/selectDeviceParameter") public Result selectDeviceParameter(Page page, DeviceDto itemParameter, Boolean laboratoryNameIsNull){ @@ -153,10 +154,10 @@ return deviceService.dataAcquisition(request, dto); } @ApiOperation(value = "维护数采配置") @PostMapping("/saveDataAcquisitionConfiguration") public Result<?> saveDataAcquisitionConfiguration(@RequestBody DataConfigDto dataConfigList) { dataConfigService.saveDataAcquisitionConfiguration(dataConfigList.getDeviceId(), dataConfigList); @ApiOperation(value = "维护设备文件配置") @PostMapping("/saveDeviceFileConfiguration") public Result<?> saveDeviceFileConfiguration(@RequestBody DataConfigDto dataConfigList) { dataConfigService.saveDeviceFileConfiguration(dataConfigList); return Result.success(); } @@ -166,21 +167,33 @@ return dataConfigService.queryDataAcquisitionConfiguration(dataConfig); } @ApiOperation(value = "查询检验项数采配置") @GetMapping("/queryProductConfiguration") public Result<?> queryProductConfiguration(DataConfig dataConfig) { return dataConfigService.queryProductConfiguration(dataConfig); } @ApiOperation(value = "删除数采配置") @DeleteMapping("/deleteDataAcquisitionConfiguration") public Result<?> deleteDataAcquisitionConfiguration(@RequestParam("ids") String ids) { List<String> split = Arrays.asList(ids.split(",")); List<String> collect = split.stream().distinct().collect(Collectors.toList()); dataConfigService.removeBatchByIds(collect); @ApiOperation(value = "维护数采配置") @PostMapping("/saveDataAcquisitionConfiguration") public Result<?> saveDataAcquisitionConfiguration(@RequestBody DataConfigDto dataConfigList) { dataConfigService.saveDataAcquisitionConfiguration(dataConfigList); return Result.success(); } @ApiOperation(value = "查询绑定了但是没有配置的检验项") @GetMapping("/getNoConfigProduct") public Result<?> getNoConfigProduct(Integer deviceId) { return Result.success(dataConfigService.getNoConfigProduct(deviceId)); public Result<?> getNoConfigProduct(Page page, Integer deviceId) { return Result.success(dataConfigService.getNoConfigProduct(page, deviceId)); } @ApiOperation(value = "删除数采配置") @DeleteMapping("/ ") public Result<?> deleteDataAcquisitionConfiguration(@RequestParam("ids") String ids) { List<String> split = Arrays.asList(ids.split(",")); List<String> collect = split.stream().distinct().collect(Collectors.toList()); dataConfigService.removeBatchByIds(collect); return Result.success(); } @ApiOperation(value = "左侧设备树形栏") cnas-device/src/main/java/com/ruoyi/device/mapper/DataConfigMapper.java
@@ -1,8 +1,11 @@ package com.ruoyi.device.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.device.dto.DeviceConfigDtoPage; import com.ruoyi.device.pojo.DataConfig; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -25,5 +28,5 @@ * @param deviceId * @return */ List<DataConfig> getNoConfigProduct(Integer deviceId); IPage<DataConfig> getNoConfigProduct(@Param("page") Page page, @Param("deviceId") Integer deviceId); } cnas-device/src/main/java/com/ruoyi/device/service/DataConfigService.java
@@ -1,5 +1,7 @@ package com.ruoyi.device.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.common.core.domain.Result; import com.ruoyi.device.dto.DataConfigDto; @@ -17,16 +19,37 @@ */ public interface DataConfigService extends IService<DataConfig> { void deleteDataConfig(); void saveDataAcquisitionConfiguration(Integer deviceId, DataConfigDto dataConfigList); /** * 维护设备文件配置 * @param dataConfigList */ void saveDeviceFileConfiguration(DataConfigDto dataConfigList); /** * 数采配置 * @param dataConfigList */ void saveDataAcquisitionConfiguration(DataConfigDto dataConfigList); /** * 查询数采配置 * @param dataConfig * @return */ Result<?> queryDataAcquisitionConfiguration(DataConfig dataConfig); /** * 查询检验项数采配置 * @param dataConfig * @return */ Result<?> queryProductConfiguration(DataConfig dataConfig); /** * 查询了绑定但是没有配置的检验项 * @param deviceId * @return */ List<DataConfig> getNoConfigProduct(Integer deviceId); IPage<DataConfig> getNoConfigProduct(Page page, Integer deviceId); } cnas-device/src/main/java/com/ruoyi/device/service/impl/DataConfigServiceImpl.java
@@ -1,8 +1,10 @@ package com.ruoyi.device.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.domain.Result; import com.ruoyi.device.dto.DataConfigDto; @@ -33,44 +35,61 @@ private DataConfigMapper dataConfigMapper; /** * 维护设备文件配置 * @param dataConfigList */ @Override public void deleteDataConfig() { List<Integer> integers = dataConfigMapper.deleteDataConfig(); if (!integers.isEmpty()) { dataConfigMapper.deleteBatchIds(integers); public void saveDeviceFileConfiguration(DataConfigDto dataConfigList) { if (dataConfigList.getDeviceId() == null) { throw new RuntimeException("缺少设备Id"); } Device device = new Device(); BeanUtils.copyProperties(dataConfigList, device); device.setId(dataConfigList.getDeviceId()); deviceMapper.updateById(device); } /** * 数采配置 * @param dataConfigList */ @Override public void saveDataAcquisitionConfiguration(Integer deviceId, DataConfigDto dataConfigList) { if (dataConfigList.getIsDevice()) { Device device = new Device(); BeanUtils.copyProperties(dataConfigList, device); device.setId(deviceId); deviceMapper.updateById(device); } else { this.saveOrUpdateBatch(dataConfigList.getDataConfigList()); public void saveDataAcquisitionConfiguration(DataConfigDto dataConfigList) { if (dataConfigList.getDeviceId() == null) { throw new RuntimeException("缺少设备id"); } for (DataConfig dataConfig : dataConfigList.getDataConfigList()) { if (dataConfig.getStructureItemParameterId() == null) { throw new RuntimeException("缺少检验项id"); } dataConfig.setDeviceId(dataConfigList.getDeviceId()); } this.saveOrUpdateBatch(dataConfigList.getDataConfigList()); } @Override public Result<?> queryDataAcquisitionConfiguration(DataConfig dataConfig) { if (dataConfig.getIsDevice()) { LambdaQueryWrapper<DataConfig> wrapper = Wrappers.<DataConfig>lambdaQuery() .eq(DataConfig::getDeviceId, dataConfig.getDeviceId()) .eq(DataConfig::getInspectionItem, dataConfig.getInspectionItem()) .eq(DataConfig::getInspectionItemSubclass, dataConfig.getInspectionItemSubclass()); if (StringUtils.isNotBlank(dataConfig.getInspectionItemClass())) { wrapper.eq(DataConfig::getInspectionItemClass, dataConfig.getInspectionItemClass()); } if (dataConfig.getStructureItemParameterId() != null) { wrapper.eq(DataConfig::getStructureItemParameterId, dataConfig.getStructureItemParameterId()); } List<DataConfig> list = baseMapper.selectList(wrapper); return Result.success(list); } else { return Result.success(dataConfigMapper.selectDataConfigList(dataConfig.getDeviceId())); return Result.success(dataConfigMapper.selectDataConfigList(dataConfig.getDeviceId())); } /** * 查询检验项数采配置 * @param dataConfig * @return */ @Override public Result<?> queryProductConfiguration(DataConfig dataConfig) { if (dataConfig.getStructureItemParameterId() == null) { throw new RuntimeException("缺少检测项id"); } List<DataConfig> list = baseMapper.selectList(Wrappers.<DataConfig>lambdaQuery().eq(DataConfig::getStructureItemParameterId, dataConfig.getStructureItemParameterId())); return Result.success(list); } /** @@ -79,7 +98,7 @@ * @return */ @Override public List<DataConfig> getNoConfigProduct(Integer deviceId) { return baseMapper.getNoConfigProduct(deviceId); public IPage<DataConfig> getNoConfigProduct(Page page, Integer deviceId) { return baseMapper.getNoConfigProduct(page, deviceId); } } cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExamineRecordServiceImpl.java
@@ -7,8 +7,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.deepoove.poi.XWPFTemplate; import com.deepoove.poi.config.Configure; import com.ruoyi.common.constant.MenuJumpPathConstants; import com.ruoyi.common.core.domain.entity.InformationNotification; import com.ruoyi.common.core.domain.entity.User; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.WxCpUtils; import com.ruoyi.device.dto.DeviceExamineRecordDto; import com.ruoyi.device.mapper.DeviceExaminePlanDetailsMapper; import com.ruoyi.device.mapper.DeviceExamineRecordMapper; @@ -23,6 +26,8 @@ import com.ruoyi.inspect.util.HackLoopTableRenderPolicy; import com.ruoyi.inspect.util.UserUtils; import com.ruoyi.system.mapper.UserMapper; import com.ruoyi.system.service.InformationNotificationService; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -54,6 +59,11 @@ private DeviceMapper deviceMapper; @Resource private UserMapper userMapper; @Resource private ThreadPoolTaskExecutor threadPoolTaskExecutor; @Resource private InformationNotificationService informationNotificationService; /** * 查询核查记录 @@ -105,6 +115,35 @@ if (deviceExamineRecordDto.getReviewUserId() != null) { User reviewUser = userMapper.selectById(deviceExamineRecordDto.getReviewUserId()); deviceExamineRecordDto.setReviewUser(reviewUser.getName()); // 消息发送 InformationNotification info = new InformationNotification(); // 发送人 info.setCreateUser(user.getName()); info.setMessageType("6"); info.setTheme("CNAS设备核查计划待批准"); info.setContent("设备编号为: " + deviceExamineRecordDto.getDeviceNumber() + " 设备核查计划待审批"); info.setSenderId(userId); // 接收人 info.setConsigneeId(deviceExamineRecordDto.getReviewUserId()); info.setJumpPath(MenuJumpPathConstants.DEVICE); informationNotificationService.addInformationNotification(info); // 发送企业微信通知 threadPoolTaskExecutor.execute(() -> { // 查询发送人 User people = userMapper.selectById(deviceExamineRecordDto.getReviewUserId()); String message = ""; message += "CNAS设备核查计划待批准"; message += "\n请去资源要求-设备-设备核查计划审批"; message += "\n" + "设备编号为: " + deviceExamineRecordDto.getDeviceNumber() + "设备核查计划待审批"; //发送企业微信消息通知 try { WxCpUtils.inform(people.getAccount(), message, null); } catch (Exception e) { throw new RuntimeException(e); } }); } } cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceServiceImpl.java
@@ -93,10 +93,6 @@ @Transactional(rollbackFor = Exception.class) @Override public int upDeviceParameter(Device itemParameter) { // 删除数采集配置数据 dataConfigService.deleteDataConfig(); // 需要同时更改 device表 return deviceMapper.updateById(itemParameter); } cnas-device/src/main/resources/mapper/DataConfigMapper.xml
@@ -13,31 +13,10 @@ </resultMap> <select id="selectDataConfigList" resultType="com.ruoyi.device.dto.DeviceConfigDtoPage"> SELECT d.device_name, d.file_type, d.collect_url, d.storage_url, d.ip, d.entrust_code, d.sample_code, d.db_file_name, ip.inspection_item, ip.inspection_item_class, if(ip.inspection_item_subclass is not null and ip.inspection_item_subclass != '', ip.inspection_item_subclass, ip.inspection_item) inspection_item_subclass, ip.sample, ddc.formula, ddc.referx, ddc.refery, ddc.x, ddc.y, ddc.another_name, ddc.matching_name, ddc.id, ip.id structureItemParameterId FROM device d left join structure_item_parameter ip on FIND_IN_SET(ip.id, d.ins_product_ids) left join device_data_config ddc on ddc.device_id = d.id and ddc.structure_item_parameter_id = ip.id SELECT ddc.*, d.device_name FROM device_data_config ddc left join device d on ddc.device_id = d.id where d.id = #{deviceId} </select> cnas-process/src/main/java/com/ruoyi/process/controller/QualityMonitorController.java
@@ -237,14 +237,14 @@ /** * 新增监控评价附件表 * @param detailsEvaluateId * @param qualityMonitorDetailsId * @param file * @return */ @ApiOperation(value = "新增监控评价附件表") @PostMapping("/uploadEvaluateFile") public Result<?> uploadEvaluateFile(Integer detailsEvaluateId, MultipartFile file) { return Result.success(qualityMonitorService.uploadEvaluateFile(detailsEvaluateId, file)); public Result<?> uploadEvaluateFile(Integer qualityMonitorDetailsId, MultipartFile file) { return Result.success(qualityMonitorService.uploadEvaluateFile(qualityMonitorDetailsId, file)); } @@ -254,8 +254,8 @@ */ @ApiOperation(value = "查询监控评价附件列表") @GetMapping("/getEvaluateFileList") public Result<List<QualityMonitorDetailsEvaluateFile>> getEvaluateFileList(Integer detailsEvaluateId) { return Result.success(qualityMonitorService.getEvaluateFileList(detailsEvaluateId)); public Result<List<QualityMonitorDetailsEvaluateFile>> getEvaluateFileList(Integer qualityMonitorDetailsId) { return Result.success(qualityMonitorService.getEvaluateFileList(qualityMonitorDetailsId)); } /** cnas-process/src/main/java/com/ruoyi/process/dto/QualityMonitorDetailsDto.java
@@ -11,7 +11,7 @@ @Data public class QualityMonitorDetailsDto extends QualityMonitorDetails { @ApiModelProperty("实施状态, 0: 未开始, 1:待批准, 2:已批准") @ApiModelProperty("实施状态, 0: 未开始, 1:待批准, 2:不批准, 3:已批准") private Integer detailsRatifyStatus; @ApiModelProperty("报告状态, 0: 未开始, 1:待提交, 2:补批准, 3:已批准") cnas-process/src/main/java/com/ruoyi/process/dto/QualitySuperviseDetailsDto.java
@@ -23,12 +23,12 @@ @ApiModelProperty("监督原因类型, 1:定期监督, 2:动态监督") private Integer causeType; @ApiModelProperty("记录状态, 0: 未开始, 1:待批准, 2:已批准") @ApiModelProperty("记录状态, 0: 未开始, 1:待批准, 2:不批准, 3:已批准") private Integer recordStatus; @ApiModelProperty("控制状态, 0: 未开始, 1:待批准, 2:已批准") @ApiModelProperty("控制状态, 0: 未开始, 1:待批准, 2:不批准, 3:已批准") private Integer accordingStatus; @ApiModelProperty("纠正状态, 0: 未开始, 1:待批准, 2:已批准") @ApiModelProperty("纠正状态, 0: 未开始, 1:待批准, 2:不批准, 3:已批准") private Integer correctStatus; } cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorService.java
@@ -124,17 +124,17 @@ /** * 新增监控评价附件表 * @param detailsEvaluateId * @param qualityMonitorDetailsId * @param file * @return */ boolean uploadEvaluateFile(Integer detailsEvaluateId, MultipartFile file); boolean uploadEvaluateFile(Integer qualityMonitorDetailsId, MultipartFile file); /** * 查询监控评价附件列表 * @return */ List<QualityMonitorDetailsEvaluateFile> getEvaluateFileList(Integer detailsEvaluateId); List<QualityMonitorDetailsEvaluateFile> getEvaluateFileList(Integer qualityMonitorDetailsId); /** cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorServiceImpl.java
@@ -21,6 +21,7 @@ import com.ruoyi.common.utils.QueryWrappers; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.WxCpUtils; import com.ruoyi.device.pojo.DeviceExamineRecord; import com.ruoyi.framework.exception.ErrorException; import com.ruoyi.inspect.util.HackLoopTableRenderPolicy; import com.ruoyi.inspect.util.UserUtils; @@ -460,7 +461,10 @@ } }); } // 清空状态 qualityMonitorDetailsRatifyService.update(Wrappers.<QualityMonitorDetailsRatify>lambdaUpdate() .eq(QualityMonitorDetailsRatify::getDetailsRatifyId, qualityMonitorDetailsRatify.getDetailsRatifyId()) .set(QualityMonitorDetailsRatify::getIsFinish, null)); return true; } @@ -471,10 +475,16 @@ */ @Override public boolean addQualityMonitorRatifyOpinion(QualityMonitorDetailsRatify qualityMonitorDetailsRatify) { qualityMonitorDetailsRatifyService.update(Wrappers.<QualityMonitorDetailsRatify>lambdaUpdate() LambdaUpdateWrapper<QualityMonitorDetailsRatify> wrapper = Wrappers.<QualityMonitorDetailsRatify>lambdaUpdate() .eq(QualityMonitorDetailsRatify::getDetailsRatifyId, qualityMonitorDetailsRatify.getDetailsRatifyId()) .set(QualityMonitorDetailsRatify::getRatifyOpinion, qualityMonitorDetailsRatify.getRatifyOpinion()) .set(QualityMonitorDetailsRatify::getIsFinish, 1)); .set(QualityMonitorDetailsRatify::getIsFinish, qualityMonitorDetailsRatify.getIsFinish()); // 为0清除审核人 if (qualityMonitorDetailsRatify.getIsFinish().equals(0)) { wrapper.set(QualityMonitorDetailsRatify::getRatifyUserId, null); } qualityMonitorDetailsRatifyService.update(wrapper); return true; } @@ -631,13 +641,13 @@ /** * 新增监控评价附件表 * @param detailsEvaluateId * @param qualityMonitorDetailsId * @param file * @return */ @Override public boolean uploadEvaluateFile(Integer detailsEvaluateId, MultipartFile file) { if (detailsEvaluateId == null) { public boolean uploadEvaluateFile(Integer qualityMonitorDetailsId, MultipartFile file) { if (qualityMonitorDetailsId == null) { throw new ErrorException("缺少监控详情id"); } @@ -647,7 +657,7 @@ String filename = file.getOriginalFilename(); String contentType = file.getContentType(); QualityMonitorDetailsEvaluateFile evaluateFile = new QualityMonitorDetailsEvaluateFile(); evaluateFile.setDetailsEvaluateId(detailsEvaluateId); evaluateFile.setDetailsEvaluateId(qualityMonitorDetailsId); evaluateFile.setFileName(filename); if (contentType != null && contentType.startsWith("image/")) { // 是图片 @@ -681,9 +691,9 @@ * @return */ @Override public List<QualityMonitorDetailsEvaluateFile> getEvaluateFileList(Integer detailsEvaluateId) { public List<QualityMonitorDetailsEvaluateFile> getEvaluateFileList(Integer qualityMonitorDetailsId) { return qualityMonitorDetailsEvaluateFileMapper.selectList(Wrappers.<QualityMonitorDetailsEvaluateFile>lambdaQuery() .eq(QualityMonitorDetailsEvaluateFile::getDetailsEvaluateId, detailsEvaluateId)); .eq(QualityMonitorDetailsEvaluateFile::getDetailsEvaluateId, qualityMonitorDetailsId)); } cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseServiceImpl.java
@@ -3,6 +3,7 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils; @@ -21,6 +22,7 @@ import com.ruoyi.common.utils.QueryWrappers; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.WxCpUtils; import com.ruoyi.device.pojo.DeviceExamineRecord; import com.ruoyi.framework.exception.ErrorException; import com.ruoyi.inspect.util.HackLoopTableRenderPolicy; import com.ruoyi.inspect.util.UserUtils; @@ -177,6 +179,7 @@ detailsUploadList.add(superviseDetails); } @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { @@ -349,8 +352,30 @@ QualitySuperviseDetailsRecord detailsRecord; detailsRecord = qualitySuperviseDetailsRecordMapper.selectOne(Wrappers.<QualitySuperviseDetailsRecord>lambdaQuery() .eq(QualitySuperviseDetailsRecord::getSuperviseDetailsId, superviseDetailsId)); // 查询上一个月第一条的记录信息, 判断被监督人去另外一个 if (detailsRecord == null) { // 查询详情信息 QualitySuperviseDetails qualitySuperviseDetails = qualitySuperviseDetailsMapper.selectById(superviseDetailsId); // 查询上一个月第一条的记录信息, 判断被监督人去另外一个 QualitySuperviseDetailsRecord laseRecord = qualitySuperviseDetailsRecordMapper.selectOne(Wrappers.<QualitySuperviseDetailsRecord>lambdaQuery() .last("limit 1")); detailsRecord = new QualitySuperviseDetailsRecord(); detailsRecord.setSuperviseDetailsId(superviseDetailsId); detailsRecord.setTestMember(qualitySuperviseDetails.getSupervisee()); detailsRecord.setSupervisor(null); detailsRecord.setPersonnel("()有相应检测员的上岗证"); detailsRecord.setEnvironment("温度:()℃ 湿度:()%"); detailsRecord.setInspectionRecord("检测人员()进行检测记录,记录内容真实有效"); detailsRecord.setExaminingReport("由()黄秋实出示的检测报告符合规范要求"); detailsRecord.setSupervisionEvaluation("检测按照要求进行,判定为满意"); detailsRecord.setHandlingAdvice("/"); } // 添加批准人名称 if (detailsRecord.getRatifyUserId() != null) { @@ -370,7 +395,11 @@ if (qualitySuperviseDetailsRecord.getSuperviseDetailsId() == null) { throw new ErrorException("缺少监督详细信息id"); } qualitySuperviseDetailsRecordMapper.insert(qualitySuperviseDetailsRecord); if (qualitySuperviseDetailsRecord.getSuperviseDetailsRecordId() == null) { qualitySuperviseDetailsRecordMapper.insert(qualitySuperviseDetailsRecord); } else { qualitySuperviseDetailsRecordMapper.updateById(qualitySuperviseDetailsRecord); } if (qualitySuperviseDetailsRecord.getRatifyUserId() != null) { @@ -408,6 +437,10 @@ } }); } // 清空状态 qualitySuperviseDetailsRecordMapper.update(null, Wrappers.<QualitySuperviseDetailsRecord>lambdaUpdate() .eq(QualitySuperviseDetailsRecord::getSuperviseDetailsRecordId, qualitySuperviseDetailsRecord.getSuperviseDetailsRecordId()) .set(QualitySuperviseDetailsRecord::getIsFinish, null)); return true; } @@ -419,16 +452,27 @@ */ @Override public boolean addSuperviseRecordOpinion(QualitySuperviseDetailsRecord qualitySuperviseDetailsRecord) { if (qualitySuperviseDetailsRecord.getIsAccording() == null) { throw new ErrorException("缺少最终结果"); if (qualitySuperviseDetailsRecord.getIsFinish() == null) { throw new RuntimeException("缺少记录结果状态"); } qualitySuperviseDetailsRecordMapper.update(null, Wrappers.<QualitySuperviseDetailsRecord>lambdaUpdate() LambdaUpdateWrapper<QualitySuperviseDetailsRecord> wrapper = Wrappers.<QualitySuperviseDetailsRecord>lambdaUpdate() .eq(QualitySuperviseDetailsRecord::getSuperviseDetailsId, qualitySuperviseDetailsRecord.getSuperviseDetailsId()) .set(QualitySuperviseDetailsRecord::getRatifyOpinion, qualitySuperviseDetailsRecord.getRatifyOpinion()) .set(QualitySuperviseDetailsRecord::getRatifyTime, LocalDateTime.now()) .set(QualitySuperviseDetailsRecord::getIsAccording, qualitySuperviseDetailsRecord.getIsAccording()) .set(QualitySuperviseDetailsRecord::getIsFinish, 1)); .set(QualitySuperviseDetailsRecord::getIsFinish, qualitySuperviseDetailsRecord.getIsFinish()); // 为0清除审核人 if (qualitySuperviseDetailsRecord.getIsFinish().equals(0)) { wrapper.set(QualitySuperviseDetailsRecord::getRatifyUserId, null) .set(QualitySuperviseDetailsRecord::getRatifyTime, null); } else { wrapper.set(QualitySuperviseDetailsRecord::getRatifyTime, LocalDateTime.now()); } qualitySuperviseDetailsRecordMapper.update(null, wrapper); return true; } @@ -439,7 +483,7 @@ */ @Override public void exportSuperviseDetailRecord(Integer superviseDetailsId, HttpServletResponse response) { QualitySuperviseDetailsRecord recordDto = qualitySuperviseDetailsRecordMapper.selectSuperviseDetailRecord(superviseDetailsId); QualitySuperviseDetailsRecord recordDto = qualitySuperviseDetailsRecordMapper.selectSuperviseDetailRecord(superviseDetailsId); //获取技术负责人的签名地址 String ratifyUrl = null; @@ -491,10 +535,10 @@ public boolean addSuperviseDetailAccording(QualitySuperviseDetailsAccording detailsAccording) { QualitySuperviseDetailsAccording according = new QualitySuperviseDetailsAccording(); // 当前登录用户信息和部门 User user = userMapper.selectById( SecurityUtils.getUserId().intValue()); User user = userMapper.selectById(SecurityUtils.getUserId().intValue()); String departmentLimsName = userMapper.selectUserDepartmentLimsName(user.getId()); switch (detailsAccording.getFlowType()) { // 不符合工作情况记录 // 不符合工作情况记录 case 0: if (detailsAccording.getSuperviseDetailsId() == null) { throw new ErrorException("缺少质量监督详情Id"); @@ -527,7 +571,7 @@ qualitySuperviseDetailsAccordingMapper.insert(according); break; // 1处理措施 // 1处理措施 case 1: according.setSuperviseDetailsAccordingId(detailsAccording.getSuperviseDetailsAccordingId()); according.setEliminateMeasure(detailsAccording.getEliminateMeasure());//清除不符合措施 @@ -542,7 +586,7 @@ qualitySuperviseDetailsAccordingMapper.updateById(according); break; // 纠正措施 // 纠正措施 case 2: according.setSuperviseDetailsAccordingId(detailsAccording.getSuperviseDetailsAccordingId()); according.setCorrectContent(detailsAccording.getCorrectContent());//纠正措施内容 @@ -557,7 +601,7 @@ qualitySuperviseDetailsAccordingMapper.updateById(according); break; //是否通知客户可恢复工作 //是否通知客户可恢复工作 case 3: according.setSuperviseDetailsAccordingId(detailsAccording.getSuperviseDetailsAccordingId()); according.setNotifyCustomer(detailsAccording.getNotifyCustomer());//通知客户 @@ -592,7 +636,12 @@ // 被监督人 User supervisedUser = userMapper.selectById(detailsAccording.getSupervisedUserId()); detailsAccording.setSupervisedUserName(supervisedUser.getName());//被监督 qualitySuperviseDetailsAccordingMapper.insert(detailsAccording); if (detailsAccording.getSuperviseDetailsAccordingId() == null) { qualitySuperviseDetailsAccordingMapper.insert(detailsAccording); } else { qualitySuperviseDetailsAccordingMapper.updateById(detailsAccording); } if (detailsAccording.getApproverUserId() != null) { // 查询详情信息 @@ -628,6 +677,11 @@ }); } // 清空状态 qualitySuperviseDetailsAccordingMapper.update(null, Wrappers.<QualitySuperviseDetailsAccording>lambdaUpdate() .eq(QualitySuperviseDetailsAccording::getSuperviseDetailsAccordingId, detailsAccording.getSuperviseDetailsAccordingId()) .set(QualitySuperviseDetailsAccording::getIsFinish, null)); return true; } @@ -639,22 +693,41 @@ */ @Override public boolean approverEquipSuperviseDetailAccording(QualitySuperviseDetailsAccording detailsAccording) { if (detailsAccording.getIsFinish() == null) { throw new RuntimeException("缺少批准状态"); } QualitySuperviseDetailsAccording according = new QualitySuperviseDetailsAccording(); according.setSuperviseDetailsAccordingId(detailsAccording.getSuperviseDetailsAccordingId()); // 当前登录用户信息和部门 User user = userMapper.selectById(SecurityUtils.getUserId().intValue()); String departmentLimsName = userMapper.selectUserDepartmentLimsName(user.getId()); according.setResponsibleDepartment(departmentLimsName);//责任部门 according.setActionsUserId(user.getId());//处理人id according.setActionsUserName(user.getName());//处理人 if (detailsAccording.getIsFinish().equals(1)) { // 当前登录用户信息和部门 User user = userMapper.selectById(SecurityUtils.getUserId().intValue()); String departmentLimsName = userMapper.selectUserDepartmentLimsName(user.getId()); according.setCorrectUserId(user.getId());//纠正负责人id according.setCorrectUserName(user.getName());//纠正负责人 according.setResponsibleDepartment(departmentLimsName);//责任部门 according.setActionsUserId(user.getId());//处理人id according.setActionsUserName(user.getName());//处理人 according.setQualityManagerUserId(user.getId());//质量负责人id according.setQualityManagerUserName(user.getName());//质量负责人 according.setIsFinish(1); according.setCorrectUserId(user.getId());//纠正负责人id according.setCorrectUserName(user.getName());//纠正负责人 according.setQualityManagerUserId(user.getId());//质量负责人id according.setQualityManagerUserName(user.getName());//质量负责人 } else { qualitySuperviseDetailsAccordingMapper.update(null, Wrappers.<QualitySuperviseDetailsAccording>lambdaUpdate() .eq(QualitySuperviseDetailsAccording::getSuperviseDetailsAccordingId, detailsAccording.getSuperviseDetailsAccordingId()) .set(QualitySuperviseDetailsAccording::getResponsibleDepartment, null) .set(QualitySuperviseDetailsAccording::getActionsUserId, null) .set(QualitySuperviseDetailsAccording::getActionsUserName, null) .set(QualitySuperviseDetailsAccording::getCorrectUserId, null) .set(QualitySuperviseDetailsAccording::getCorrectUserName, null) .set(QualitySuperviseDetailsAccording::getQualityManagerUserId, null) .set(QualitySuperviseDetailsAccording::getQualityManagerUserName, null) .set(QualitySuperviseDetailsAccording::getApproverUserId, null)); } according.setIsFinish(detailsAccording.getIsFinish()); qualitySuperviseDetailsAccordingMapper.updateById(according); return true; } @@ -675,6 +748,7 @@ detailsAccording = new QualitySuperviseDetailsAccording(); // 查询监督计划详情 QualitySuperviseDetails superviseDetails = qualitySuperviseDetailsMapper.selectById(superviseDetailsId); superviseDetails.setSuperviseDetailsId(superviseDetailsId); detailsAccording.setSupervisedUserId(superviseDetails.getSupervisedUserId()); detailsAccording.setSupervisedUserName(superviseDetails.getSupervisee()); } @@ -779,7 +853,7 @@ String departmentLimsName = userMapper.selectUserDepartmentLimsName(user.getId()); switch (detailsCorrect.getFlowType()) { // 不合格提出 // 不合格提出 case 0: if (detailsCorrect.getSuperviseDetailsId() == null) { throw new ErrorException("缺少质量监督详情Id"); @@ -803,7 +877,7 @@ break; // 原因分析 // 原因分析 case 1: correct.setSuperviseDetailsCorrectId(detailsCorrect.getSuperviseDetailsCorrectId()); correct.setCauseResult(detailsCorrect.getCauseResult());//原因分析 @@ -819,7 +893,7 @@ qualitySuperviseDetailsCorrectMapper.updateById(correct); break; // 纠正措施 // 纠正措施 case 2: correct.setSuperviseDetailsCorrectId(detailsCorrect.getSuperviseDetailsCorrectId()); correct.setCorrectResult(detailsCorrect.getCorrectResult());//2纠正措施 @@ -836,7 +910,7 @@ qualitySuperviseDetailsCorrectMapper.updateById(correct); break; // 验证结果 // 验证结果 case 3: correct.setSuperviseDetailsCorrectId(detailsCorrect.getSuperviseDetailsCorrectId()); correct.setValidationResult(detailsCorrect.getValidationResult());//3验证结果 @@ -866,7 +940,11 @@ detailsCorrect.setRaiseDepartment(departmentLimsName);//提出部门 detailsCorrect.setRaiseUserId(user.getId());//提出人id detailsCorrect.setRaiseUserName(user.getName());// 提出人 qualitySuperviseDetailsCorrectMapper.insert(detailsCorrect); if (detailsCorrect.getSuperviseDetailsCorrectId() == null) { qualitySuperviseDetailsCorrectMapper.insert(detailsCorrect); } else { qualitySuperviseDetailsCorrectMapper.updateById(detailsCorrect); } if (detailsCorrect.getApproverUserId() != null) { // 查询详情信息 @@ -902,6 +980,10 @@ }); } // 清空状态 qualitySuperviseDetailsCorrectMapper.update(null, Wrappers.<QualitySuperviseDetailsCorrect>lambdaUpdate() .eq(QualitySuperviseDetailsCorrect::getSuperviseDetailsCorrectId, detailsCorrect.getSuperviseDetailsCorrectId()) .set(QualitySuperviseDetailsCorrect::getIsFinish, null)); return true; } @@ -911,24 +993,45 @@ */ @Override public boolean approveEquipSuperviseDetailCorrect(QualitySuperviseDetailsCorrect detailsCorrect) { if (detailsCorrect.getIsFinish() == null) { throw new RuntimeException("缺少批准状态"); } QualitySuperviseDetailsCorrect correct = new QualitySuperviseDetailsCorrect(); // 当前登录用户信息和部门 User user = userMapper.selectById(SecurityUtils.getUserId().intValue()); String departmentLimsName = userMapper.selectUserDepartmentLimsName(user.getId()); correct.setSuperviseDetailsCorrectId(detailsCorrect.getSuperviseDetailsCorrectId()); correct.setCauseDepartment(departmentLimsName);//原因分析责任部门 correct.setCauseUserId(user.getId());//1原因分析人id correct.setCauseUserName(user.getName());// 1原因分析人 if (detailsCorrect.getIsFinish().equals(1)) { correct.setCauseDepartment(departmentLimsName);//原因分析责任部门 correct.setCauseUserId(user.getId());//1原因分析人id correct.setCauseUserName(user.getName());// 1原因分析人 correct.setCorrectDepartment(departmentLimsName);//2纠正责任部门 correct.setCorrectUserId(user.getId());//2纠正人id correct.setCorrectUserName(user.getName());// 2纠正人 correct.setCorrectDepartment(departmentLimsName);//2纠正责任部门 correct.setCorrectUserId(user.getId());//2纠正人id correct.setCorrectUserName(user.getName());// 2纠正人 correct.setValidationDepartment(departmentLimsName);//3验证部门 correct.setValidationUserId(user.getId());//3验证人id correct.setValidationUserName(user.getName());// 3验证人 correct.setIsFinish(1); correct.setValidationDepartment(departmentLimsName);//3验证部门 correct.setValidationUserId(user.getId());//3验证人id correct.setValidationUserName(user.getName());// 3验证人 } else { qualitySuperviseDetailsCorrectMapper.update(null, Wrappers.<QualitySuperviseDetailsCorrect>lambdaUpdate() .eq(QualitySuperviseDetailsCorrect::getSuperviseDetailsCorrectId, detailsCorrect.getSuperviseDetailsCorrectId()) .set(QualitySuperviseDetailsCorrect::getCauseDepartment, null) .set(QualitySuperviseDetailsCorrect::getCauseUserId, null) .set(QualitySuperviseDetailsCorrect::getCauseUserName, null) .set(QualitySuperviseDetailsCorrect::getCorrectDepartment, null) .set(QualitySuperviseDetailsCorrect::getCorrectUserId, null) .set(QualitySuperviseDetailsCorrect::getCorrectUserName, null) .set(QualitySuperviseDetailsCorrect::getValidationDepartment, null) .set(QualitySuperviseDetailsCorrect::getValidationUserId, null) .set(QualitySuperviseDetailsCorrect::getValidationUserName, null) .set(QualitySuperviseDetailsCorrect::getApproverUserId, null) ); } correct.setIsFinish(detailsCorrect.getIsFinish()); qualitySuperviseDetailsCorrectMapper.updateById(correct); return true; @@ -948,6 +1051,7 @@ if (detailsCorrect == null) { detailsCorrect = new QualitySuperviseDetailsCorrect(); detailsCorrect.setSuperviseDetailsId(superviseDetailsId); } return detailsCorrect; } cnas-process/src/main/resources/mapper/QualityMonitorDetailsMapper.xml
@@ -5,7 +5,8 @@ select * from ( SELECT cqmd.*, CASE WHEN cqmder.is_finish = 1 THEN 2 WHEN cqmder.is_finish = 1 THEN 3 WHEN cqmder.is_finish = 0 THEN 2 WHEN cqmder.quality_monitor_details_id IS NOT NULL THEN 1 ELSE 0 END details_ratify_status, CASE cnas-process/src/main/resources/mapper/QualitySuperviseDetailsMapper.xml
@@ -10,17 +10,20 @@ ca.is_correct, cc.supervise_details_correct_id, case when cr.is_finish = 1 then 2 when cr.is_finish = 1 then 3 when cr.is_finish = 0 then 2 when cr.supervise_details_record_id is not null then 1 else 0 end record_status, case when ca.is_finish = 1 then 2 when ca.is_finish = 1 then 3 when ca.is_finish = 0 then 2 when ca.supervise_details_according_id is not null then 1 else 0 end according_status, case when cc.is_finish = 1 then 2 when cc.is_finish = 1 then 3 when cc.is_finish = 0 then 2 when cc.supervise_details_correct_id is not null then 1 else 0 end correct_status