diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/common/DeviceConstant.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/common/DeviceConstant.java new file mode 100644 index 00000000..50937890 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/common/DeviceConstant.java @@ -0,0 +1,16 @@ +package com.zt.plat.module.qms.resource.device.common; + +public class DeviceConstant { + + //业务类型 + public static final String DAILY_CHECK_TYPE = "dailyCheck"; //点检 + public static final String MAINTAIN_TYPE = "maintain"; //维护 + public static final String CALIBRATION_TYPE = "calibration"; //检定校准 + public static final String PERIOD_TYPE = "period"; //期间核查 + + //频率类型 + public static final String FREQUENCY_TYPE_YEAR = "year"; + public static final String FREQUENCY_TYPE_MONTH = "month"; + public static final String FREQUENCY_TYPE_DAY = "day"; + +} diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DeviceConfigBusinessRuleController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DeviceConfigBusinessRuleController.java index f14e3b38..a7a4f201 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DeviceConfigBusinessRuleController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DeviceConfigBusinessRuleController.java @@ -1,10 +1,8 @@ package com.zt.plat.module.qms.resource.device.controller.admin; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.zt.plat.module.qms.resource.device.controller.vo.DeviceConfigBusinessRulePageReqVO; import com.zt.plat.module.qms.resource.device.controller.vo.DeviceConfigBusinessRuleRespVO; import com.zt.plat.module.qms.resource.device.controller.vo.DeviceConfigBusinessRuleSaveReqVO; -import com.zt.plat.module.qms.resource.device.dal.mapper.DeviceConfigBusinessRuleMapper; import org.springframework.web.bind.annotation.*; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -55,11 +53,9 @@ public class DeviceConfigBusinessRuleController extends AbstractFileUploadContro } @Resource private DeviceConfigBusinessRuleService deviceConfigBusinessRuleService; - @Resource private DeviceConfigBusinessRuleMapper deviceConfigBusinessRuleMapper; @PostMapping("/create") @Operation(summary = "创建设备-业务配置") - @PreAuthorize("@ss.hasPermission('qms:device-config-business-rule:create')") public CommonResult createDeviceConfigBusinessRule(@Valid @RequestBody DeviceConfigBusinessRuleSaveReqVO createReqVO) { return success(deviceConfigBusinessRuleService.createDeviceConfigBusinessRule(createReqVO)); } @@ -77,7 +73,6 @@ public class DeviceConfigBusinessRuleController extends AbstractFileUploadContro @PutMapping("/update") @Operation(summary = "更新设备-业务配置") - @PreAuthorize("@ss.hasPermission('qms:device-config-business-rule:update')") public CommonResult updateDeviceConfigBusinessRule(@Valid @RequestBody DeviceConfigBusinessRuleSaveReqVO updateReqVO) { deviceConfigBusinessRuleService.updateDeviceConfigBusinessRule(updateReqVO); return success(true); @@ -86,7 +81,6 @@ public class DeviceConfigBusinessRuleController extends AbstractFileUploadContro @DeleteMapping("/delete") @Operation(summary = "删除设备-业务配置") @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('qms:device-config-business-rule:delete')") public CommonResult deleteDeviceConfigBusinessRule(@RequestParam("id") Long id) { deviceConfigBusinessRuleService.deleteDeviceConfigBusinessRule(id); return success(true); @@ -95,7 +89,7 @@ public class DeviceConfigBusinessRuleController extends AbstractFileUploadContro @DeleteMapping("/delete-list") @Parameter(name = "ids", description = "编号", required = true) @Operation(summary = "批量删除设备-业务配置") - @PreAuthorize("@ss.hasPermission('qms:device-config-business-rule:delete')") + @PreAuthorize("@ss.hasPermission('qms:device-config-business-rule:delete')") public CommonResult deleteDeviceConfigBusinessRuleList(@RequestBody BatchDeleteReqVO req) { deviceConfigBusinessRuleService.deleteDeviceConfigBusinessRuleListByIds(req.getIds()); return success(true); @@ -104,7 +98,6 @@ public class DeviceConfigBusinessRuleController extends AbstractFileUploadContro @GetMapping("/get") @Operation(summary = "获得设备-业务配置") @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('qms:device-config-business-rule:query')") public CommonResult getDeviceConfigBusinessRule(@RequestParam("id") Long id) { DeviceConfigBusinessRuleDO deviceConfigBusinessRule = deviceConfigBusinessRuleService.getDeviceConfigBusinessRule(id); return success(BeanUtils.toBean(deviceConfigBusinessRule, DeviceConfigBusinessRuleRespVO.class)); @@ -112,7 +105,6 @@ public class DeviceConfigBusinessRuleController extends AbstractFileUploadContro @GetMapping("/page") @Operation(summary = "获得设备-业务配置分页") - @PreAuthorize("@ss.hasPermission('qms:device-config-business-rule:query')") public CommonResult> getDeviceConfigBusinessRulePage(@Valid DeviceConfigBusinessRulePageReqVO pageReqVO) { PageResult pageResult = deviceConfigBusinessRuleService.getDeviceConfigBusinessRulePage(pageReqVO); return success(BeanUtils.toBean(pageResult, DeviceConfigBusinessRuleRespVO.class)); @@ -122,13 +114,11 @@ public class DeviceConfigBusinessRuleController extends AbstractFileUploadContro @Operation(summary = "导出设备-业务配置 Excel") @PreAuthorize("@ss.hasPermission('qms:device-config-business-rule:export')") @ApiAccessLog(operateType = EXPORT) - public void exportDeviceConfigBusinessRuleExcel(@Valid DeviceConfigBusinessRulePageReqVO pageReqVO, - HttpServletResponse response) throws IOException { + public void exportDeviceConfigBusinessRuleExcel(@Valid DeviceConfigBusinessRulePageReqVO pageReqVO, HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); List list = deviceConfigBusinessRuleService.getDeviceConfigBusinessRulePage(pageReqVO).getList(); // 导出 Excel - ExcelUtils.write(response, "设备-业务配置.xls", "数据", DeviceConfigBusinessRuleRespVO.class, - BeanUtils.toBean(list, DeviceConfigBusinessRuleRespVO.class)); + ExcelUtils.write(response, "设备-业务配置.xls", "数据", DeviceConfigBusinessRuleRespVO.class, BeanUtils.toBean(list, DeviceConfigBusinessRuleRespVO.class)); } } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DeviceInfomationController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DeviceInfomationController.java index 8e9acf46..4c4b701c 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DeviceInfomationController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DeviceInfomationController.java @@ -17,6 +17,7 @@ import com.zt.plat.module.qms.resource.device.controller.vo.DeviceInfomationPage import com.zt.plat.module.qms.resource.device.controller.vo.DeviceInfomationRespVO; import com.zt.plat.module.qms.resource.device.controller.vo.DeviceInfomationSaveReqVO; import com.zt.plat.module.qms.resource.device.controller.vo.DeviceInfomationWithProductVO; +import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceInfoWithBizConfigVO; import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceInfomationDO; import com.zt.plat.module.qms.resource.device.service.DeviceInfomationService; import com.zt.plat.module.qms.resource.device.service.DeviceProductService; @@ -32,6 +33,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.EXPORT; @@ -180,4 +182,15 @@ public class DeviceInfomationController extends AbstractFileUploadController imp BeanUtils.toBean(list, DeviceInfomationRespVO.class)); } + @GetMapping("/test") + @Operation(summary = "获得设备-设备信息分页") + public CommonResult> test() { + JSONObject params = new JSONObject(); + Long deviceId = 2010903332962000897L; + params.put("businessType", "dailyCheck"); + params.put("deviceId", deviceId); + List list = deviceInfomationService.getListNeedByRule(params); + return success(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/controller/admin/DevicePeriodCheckController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DevicePeriodCheckController.java index 156bd4b0..e4caedfc 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DevicePeriodCheckController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DevicePeriodCheckController.java @@ -57,14 +57,12 @@ public class DevicePeriodCheckController extends AbstractFileUploadController im @PostMapping("/create") @Operation(summary = "创建设备-期间核查") - @PreAuthorize("@ss.hasPermission('qms:device-period-check:create')") public CommonResult createDevicePeriodCheck(@Valid @RequestBody DevicePeriodCheckSaveReqVO createReqVO) { return success(devicePeriodCheckService.createDevicePeriodCheck(createReqVO)); } @PutMapping("/update") @Operation(summary = "更新设备-期间核查") - @PreAuthorize("@ss.hasPermission('qms:device-period-check:update')") public CommonResult updateDevicePeriodCheck(@Valid @RequestBody DevicePeriodCheckSaveReqVO updateReqVO) { devicePeriodCheckService.updateDevicePeriodCheck(updateReqVO); return success(true); @@ -73,7 +71,6 @@ public class DevicePeriodCheckController extends AbstractFileUploadController im @DeleteMapping("/delete") @Operation(summary = "删除设备-期间核查") @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('qms:device-period-check:delete')") public CommonResult deleteDevicePeriodCheck(@RequestParam("id") Long id) { devicePeriodCheckService.deleteDevicePeriodCheck(id); return success(true); @@ -82,7 +79,7 @@ public class DevicePeriodCheckController extends AbstractFileUploadController im @DeleteMapping("/delete-list") @Parameter(name = "ids", description = "编号", required = true) @Operation(summary = "批量删除设备-期间核查") - @PreAuthorize("@ss.hasPermission('qms:device-period-check:delete')") + @PreAuthorize("@ss.hasPermission('qms:device-period-check:delete')") public CommonResult deleteDevicePeriodCheckList(@RequestBody BatchDeleteReqVO req) { devicePeriodCheckService.deleteDevicePeriodCheckListByIds(req.getIds()); return success(true); @@ -91,7 +88,6 @@ public class DevicePeriodCheckController extends AbstractFileUploadController im @GetMapping("/get") @Operation(summary = "获得设备-期间核查") @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('qms:device-period-check:query')") public CommonResult getDevicePeriodCheck(@RequestParam("id") Long id) { DevicePeriodCheckDO devicePeriodCheck = devicePeriodCheckService.getDevicePeriodCheck(id); return success(BeanUtils.toBean(devicePeriodCheck, DevicePeriodCheckRespVO.class)); @@ -99,7 +95,6 @@ public class DevicePeriodCheckController extends AbstractFileUploadController im @GetMapping("/page") @Operation(summary = "获得设备-期间核查分页") - @PreAuthorize("@ss.hasPermission('qms:device-period-check:query')") public CommonResult> getDevicePeriodCheckPage(@Valid DevicePeriodCheckPageReqVO pageReqVO) { PageResult pageResult = devicePeriodCheckService.getDevicePeriodCheckPage(pageReqVO); return success(BeanUtils.toBean(pageResult, DevicePeriodCheckRespVO.class)); @@ -109,13 +104,11 @@ public class DevicePeriodCheckController extends AbstractFileUploadController im @Operation(summary = "导出设备-期间核查 Excel") @PreAuthorize("@ss.hasPermission('qms:device-period-check:export')") @ApiAccessLog(operateType = EXPORT) - public void exportDevicePeriodCheckExcel(@Valid DevicePeriodCheckPageReqVO pageReqVO, - HttpServletResponse response) throws IOException { + public void exportDevicePeriodCheckExcel(@Valid DevicePeriodCheckPageReqVO pageReqVO, HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); List list = devicePeriodCheckService.getDevicePeriodCheckPage(pageReqVO).getList(); // 导出 Excel - ExcelUtils.write(response, "设备-期间核查.xls", "数据", DevicePeriodCheckRespVO.class, - BeanUtils.toBean(list, DevicePeriodCheckRespVO.class)); + ExcelUtils.write(response, "设备-期间核查.xls", "数据", DevicePeriodCheckRespVO.class, BeanUtils.toBean(list, DevicePeriodCheckRespVO.class)); } } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/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 ef635fc5..ef7651f9 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 @@ -57,14 +57,12 @@ public class DevicePeriodCheckPlanController extends AbstractFileUploadControlle @PostMapping("/create") @Operation(summary = "创建设备-期间核查计划") - @PreAuthorize("@ss.hasPermission('qms:device-period-check-plan:create')") - public CommonResult createDevicePeriodCheckPlan(@Valid @RequestBody DevicePeriodCheckPlanSaveReqVO createReqVO) { - return success(devicePeriodCheckPlanService.createDevicePeriodCheckPlan(createReqVO)); + public CommonResult createDevicePeriodCheckPlan(String checkYear) { + return success(devicePeriodCheckPlanService.createPlan(checkYear)); } @PutMapping("/update") @Operation(summary = "更新设备-期间核查计划") - @PreAuthorize("@ss.hasPermission('qms:device-period-check-plan:update')") public CommonResult updateDevicePeriodCheckPlan(@Valid @RequestBody DevicePeriodCheckPlanSaveReqVO updateReqVO) { devicePeriodCheckPlanService.updateDevicePeriodCheckPlan(updateReqVO); return success(true); @@ -73,7 +71,6 @@ public class DevicePeriodCheckPlanController extends AbstractFileUploadControlle @DeleteMapping("/delete") @Operation(summary = "删除设备-期间核查计划") @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('qms:device-period-check-plan:delete')") public CommonResult deleteDevicePeriodCheckPlan(@RequestParam("id") Long id) { devicePeriodCheckPlanService.deleteDevicePeriodCheckPlan(id); return success(true); @@ -82,7 +79,7 @@ public class DevicePeriodCheckPlanController extends AbstractFileUploadControlle @DeleteMapping("/delete-list") @Parameter(name = "ids", description = "编号", required = true) @Operation(summary = "批量删除设备-期间核查计划") - @PreAuthorize("@ss.hasPermission('qms:device-period-check-plan:delete')") + @PreAuthorize("@ss.hasPermission('qms:device-period-check-plan:delete')") public CommonResult deleteDevicePeriodCheckPlanList(@RequestBody BatchDeleteReqVO req) { devicePeriodCheckPlanService.deleteDevicePeriodCheckPlanListByIds(req.getIds()); return success(true); @@ -91,7 +88,6 @@ public class DevicePeriodCheckPlanController extends AbstractFileUploadControlle @GetMapping("/get") @Operation(summary = "获得设备-期间核查计划") @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('qms:device-period-check-plan:query')") public CommonResult getDevicePeriodCheckPlan(@RequestParam("id") Long id) { DevicePeriodCheckPlanDO devicePeriodCheckPlan = devicePeriodCheckPlanService.getDevicePeriodCheckPlan(id); return success(BeanUtils.toBean(devicePeriodCheckPlan, DevicePeriodCheckPlanRespVO.class)); @@ -99,7 +95,6 @@ public class DevicePeriodCheckPlanController extends AbstractFileUploadControlle @GetMapping("/page") @Operation(summary = "获得设备-期间核查计划分页") - @PreAuthorize("@ss.hasPermission('qms:device-period-check-plan:query')") public CommonResult> getDevicePeriodCheckPlanPage(@Valid DevicePeriodCheckPlanPageReqVO pageReqVO) { PageResult pageResult = devicePeriodCheckPlanService.getDevicePeriodCheckPlanPage(pageReqVO); return success(BeanUtils.toBean(pageResult, DevicePeriodCheckPlanRespVO.class)); @@ -109,13 +104,11 @@ public class DevicePeriodCheckPlanController extends AbstractFileUploadControlle @Operation(summary = "导出设备-期间核查计划 Excel") @PreAuthorize("@ss.hasPermission('qms:device-period-check-plan:export')") @ApiAccessLog(operateType = EXPORT) - public void exportDevicePeriodCheckPlanExcel(@Valid DevicePeriodCheckPlanPageReqVO pageReqVO, - HttpServletResponse response) throws IOException { + public void exportDevicePeriodCheckPlanExcel(@Valid DevicePeriodCheckPlanPageReqVO pageReqVO, HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); List list = devicePeriodCheckPlanService.getDevicePeriodCheckPlanPage(pageReqVO).getList(); // 导出 Excel - ExcelUtils.write(response, "设备-期间核查计划.xls", "数据", DevicePeriodCheckPlanRespVO.class, - BeanUtils.toBean(list, DevicePeriodCheckPlanRespVO.class)); + ExcelUtils.write(response, "设备-期间核查计划.xls", "数据", DevicePeriodCheckPlanRespVO.class, BeanUtils.toBean(list, DevicePeriodCheckPlanRespVO.class)); } } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DeviceProductController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DeviceProductController.java index c8f642a3..6d30bf6d 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DeviceProductController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DeviceProductController.java @@ -1,5 +1,7 @@ package com.zt.plat.module.qms.resource.device.controller.admin; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog; import com.zt.plat.framework.business.annotation.FileUploadController; import com.zt.plat.framework.business.controller.AbstractFileUploadController; @@ -15,8 +17,10 @@ import com.zt.plat.module.qms.core.constant.DataTypeConstant; import com.zt.plat.module.qms.resource.device.controller.vo.DeviceProductPageReqVO; import com.zt.plat.module.qms.resource.device.controller.vo.DeviceProductRespVO; import com.zt.plat.module.qms.resource.device.controller.vo.DeviceProductSaveReqVO; +import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceConfigBusinessRuleDO; import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceProductDO; import com.zt.plat.module.qms.resource.device.controller.vo.*; +import com.zt.plat.module.qms.resource.device.service.DeviceConfigBusinessRuleService; import com.zt.plat.module.qms.resource.device.service.DeviceProductService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -30,6 +34,8 @@ import org.springframework.web.bind.annotation.*; import java.io.IOException; import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.EXPORT; import static com.zt.plat.framework.common.pojo.CommonResult.success; @@ -49,8 +55,8 @@ public class DeviceProductController extends AbstractFileUploadController implem } } - @Resource - private DeviceProductService deviceProductService; + @Resource private DeviceProductService deviceProductService; + @Resource private DeviceConfigBusinessRuleService deviceConfigBusinessRuleService; @PostMapping("/saveData") @Operation(summary = "保存数据") @@ -78,6 +84,35 @@ public class DeviceProductController extends AbstractFileUploadController implem return success(BeanUtils.toBean(list, DeviceProductRespVO.class)); } + @GetMapping("/getProductTreeDataWithRuleStatus") + @Operation(summary = "获取分类和产品树_含规则配置状态") + public CommonResult getProductTreeDataWithRuleStatus() { + List list = deviceProductService.getTreeData(""); + JSONArray jsonArray = new JSONArray(); + for (DeviceProductDO item : list) { + jsonArray.add(item); + } + + List productIdList = list.stream().filter(item -> item.getNodeType().equals(DataTypeConstant.DATA_TYPE_DATA)).map(DeviceProductDO::getId).toList(); + + List ruleList = deviceConfigBusinessRuleService.getByProductIdListAndBusinessDomain(productIdList, ""); + for(DeviceProductDO product: list){ + Long id = product.getId(); + JSONObject jsonObject = jsonArray.getJSONObject(jsonArray.indexOf(product)); + for(DeviceConfigBusinessRuleDO rule: ruleList){ + Long productId = rule.getProductId(); + if(!Objects.equals(productId, id)) + continue; + String businessDomain = rule.getBusinessDomain(); + String key = businessDomain + "_on"; + jsonObject.put(key, "1"); + } + jsonArray.set(jsonArray.indexOf(product), jsonObject); + } + return success(jsonArray); + } + + @PostMapping("/create") @Operation(summary = "创建设备-设备大类") @PreAuthorize("@ss.hasPermission('resource:device-product:create')") diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/dataobject/DeviceInfoWithBizConfigVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/dataobject/DeviceInfoWithBizConfigVO.java index 9c419414..b3524f20 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/dataobject/DeviceInfoWithBizConfigVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/dataobject/DeviceInfoWithBizConfigVO.java @@ -2,47 +2,52 @@ package com.zt.plat.module.qms.resource.device.dal.dataobject; import com.zt.plat.module.qms.core.aspect.annotation.Dict; import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +@Data public class DeviceInfoWithBizConfigVO extends DeviceInfomationDO{ - @Schema(description = "规则id") - private String ruleId; + @Schema(description = "业务规则") + private DeviceConfigBusinessRuleDO rule; - @Schema(description = "业务领域:点检|检定校准|期间核查|等") - @Dict(dicCode = "device_business_domain") - private String businessDomain; - - @Schema(description = "是否需要") - private Integer needFlag; - - @Schema(description = "子业务类型") - private String subDomainType; - - @Schema(description = "频次类型") - private String frequencyType; - - @Schema(description = "频次") - private String frequency; - - @Schema(description = "频次说明") - private String frequencyRemark; - - @Schema(description = "报表模板") - private String reportTemplateKey; - - @Schema(description = "表单组件") - private String formComponent; - - @Schema(description = "处理方法") - private String processMethod; - - @Schema(description = "处理人") - private String processUser; - - @Schema(description = "标准/规范") - private String standard; - - @Schema(description = "检定/校准类型") - private String calibrationCheckType; +// @Schema(description = "规则id") +// private Long ruleId; +// +// @Schema(description = "业务领域:点检|检定校准|期间核查|等") +// @Dict(dicCode = "device_business_domain") +// private String businessDomain; +// +// @Schema(description = "是否需要") +// private String requireFlag; +// +// @Schema(description = "子业务类型") +// private String subDomainType; +// +// @Schema(description = "频次类型") +// private String frequencyType; +// +// @Schema(description = "频次") +// private String frequency; +// +// @Schema(description = "频次说明") +// private String frequencyRemark; +// +// @Schema(description = "报表模板") +// private String reportTemplateKey; +// +// @Schema(description = "表单组件") +// private String formComponent; +// +// @Schema(description = "处理方法") +// private String treatmentMethod; +// +// @Schema(description = "处理人") +// private String treatmentUser; +// +// @Schema(description = "标准/规范") +// private String standard; +// +// @Schema(description = "检定/校准类型") +// private String calibrationCheckType; } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/mapper/DeviceInfomationMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/mapper/DeviceInfomationMapper.java index f8bd6413..36e4ba38 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/mapper/DeviceInfomationMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/mapper/DeviceInfomationMapper.java @@ -1,15 +1,20 @@ 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.mapper.BaseMapperX; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zt.plat.framework.mybatis.core.query.MPJLambdaWrapperX; import com.zt.plat.module.qms.core.aspect.annotation.QmsPermission; import com.zt.plat.module.qms.resource.device.controller.vo.DeviceInfomationPageReqVO; import com.zt.plat.module.qms.resource.device.controller.vo.DeviceInfomationWithProductVO; +import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceConfigBusinessRuleDO; import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceInfoWithBizConfigVO; import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceInfomationDO; +import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceProductDO; +import io.swagger.v3.oas.annotations.media.Schema; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -30,6 +35,22 @@ public interface DeviceInfomationMapper extends BaseMapperX Page selectPage(IPage page, @Param("param") DeviceInfomationPageReqVO param); //查询需要“某个业务类型”的设备列表 - List getListNeedByRule(@Param("param") Map param); + default List getListNeedByRule(JSONObject param){ + String businessType = param.getString("businessType"); + Long deviceId = param.getLong("deviceId"); + List deptIdList = param.getJSONArray("deptIdList"); + MPJLambdaWrapperX wrapper = new MPJLambdaWrapperX(); + wrapper.leftJoin(DeviceProductDO.class, DeviceProductDO::getId, DeviceInfomationDO::getProductId) + .leftJoin(DeviceProductDO.class, DeviceProductDO::getId, DeviceInfomationDO::getProductId) + .selectAssociation(DeviceConfigBusinessRuleDO.class, DeviceInfoWithBizConfigVO::getRule) + .leftJoin(DeviceConfigBusinessRuleDO.class, DeviceConfigBusinessRuleDO::getProductId, DeviceInfomationDO::getProductId) + .selectAll(DeviceInfomationDO.class); + wrapper.eqIfPresent(DeviceInfomationDO::getId, deviceId) + .inIfPresent(DeviceInfomationDO::getDeptId, deptIdList) + .eq(DeviceConfigBusinessRuleDO::getBusinessDomain, businessType) + .eq(DeviceConfigBusinessRuleDO::getRequireFlag, "1"); + + return selectJoinList(DeviceInfoWithBizConfigVO.class, wrapper); + } } \ 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 c85acac0..35f70695 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 @@ -1,12 +1,17 @@ package com.zt.plat.module.qms.resource.device.dal.mapper; +import com.alibaba.fastjson.JSONObject; 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.framework.mybatis.core.query.MPJLambdaWrapperX; 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 java.util.List; + /** * 设备-期间核查 Mapper * @@ -43,4 +48,9 @@ public interface DevicePeriodCheckMapper extends BaseMapperX getLastDataCheckList(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/DeviceConfigBusinessRuleService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceConfigBusinessRuleService.java index 4ad437da..9bc5c354 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceConfigBusinessRuleService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceConfigBusinessRuleService.java @@ -21,7 +21,7 @@ public interface DeviceConfigBusinessRuleService { CommonResult getRuleByDeviceIdAndType(Long deviceId, String type); - List getByProductIdListAndBusinessDomain(List productIdList, String businessDomain); + List getByProductIdListAndBusinessDomain(List productIdList, String businessDomain); /** * 创建设备-业务配置 diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceConfigBusinessRuleServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceConfigBusinessRuleServiceImpl.java index 663f14c0..d276fc44 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceConfigBusinessRuleServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceConfigBusinessRuleServiceImpl.java @@ -56,17 +56,17 @@ public class DeviceConfigBusinessRuleServiceImpl implements DeviceConfigBusiness DeviceInfomationDO deviceDO = deviceInfomationService.getDeviceInfomation(deviceId); DeviceProductDO productDO = deviceProductService.getDeviceProduct(deviceDO.getProductId()); String path = productDO.getIdPath(); - List productIdList = new ArrayList<>(); + List productIdList = new ArrayList<>(); if(!ObjectUtils.isEmpty(path)){ String[] split = path.split("/"); for (String s : split) { String id = s.replaceAll("/", ""); if(id.equals("0")) continue; - productIdList.add(s); + productIdList.add(Long.valueOf(s)); } }else - productIdList.add(productDO.getId().toString()); + productIdList.add(productDO.getId()); List ruleList = getByProductIdListAndBusinessDomain(productIdList, type); if(ruleList.isEmpty()) return CommonResult.error(DEVICE_CONFIG_BUSINESS_RULE_NOT_EXISTS); @@ -74,9 +74,9 @@ public class DeviceConfigBusinessRuleServiceImpl implements DeviceConfigBusiness return CommonResult.success(ruleList.get(0)); //取最底层的配置 for(int i = productIdList.size() - 1; i > 0; i--){ - String id = productIdList.get(i); + Long id = productIdList.get(i); for(DeviceConfigBusinessRuleDO rule : ruleList){ - if(Objects.equals(rule.getProductId(), Long.valueOf(id))) + if(Objects.equals(rule.getProductId(), id)) return CommonResult.success(rule); } } @@ -84,10 +84,13 @@ public class DeviceConfigBusinessRuleServiceImpl implements DeviceConfigBusiness } @Override - public List getByProductIdListAndBusinessDomain(List productIdList, String businessDomain) { + public List getByProductIdListAndBusinessDomain(List productIdList, String businessDomain) { + if(productIdList.isEmpty()) + return Collections.emptyList(); LambdaQueryWrapper query = new LambdaQueryWrapper<>(); query.in(DeviceConfigBusinessRuleDO::getProductId, productIdList); - query.eq(DeviceConfigBusinessRuleDO::getBusinessDomain, businessDomain); + if(!ObjectUtils.isEmpty(businessDomain)) + query.eq(DeviceConfigBusinessRuleDO::getBusinessDomain, businessDomain); return deviceConfigBusinessRuleMapper.selectList( query); } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DevicePeriodCheckPlanService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DevicePeriodCheckPlanService.java index fc649c7d..f15b34f1 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DevicePeriodCheckPlanService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DevicePeriodCheckPlanService.java @@ -17,12 +17,9 @@ import com.zt.plat.framework.common.pojo.PageResult; public interface DevicePeriodCheckPlanService { /** - * 创建设备-期间核查计划 - * - * @param createReqVO 创建信息 - * @return 编号 + * 创建-期间核查计划 */ - DevicePeriodCheckPlanRespVO createDevicePeriodCheckPlan(@Valid DevicePeriodCheckPlanSaveReqVO createReqVO); + DevicePeriodCheckPlanRespVO createPlan(String checkYear); /** * 更新设备-期间核查计划 diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DevicePeriodCheckPlanServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DevicePeriodCheckPlanServiceImpl.java index d950cad3..4e96c847 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DevicePeriodCheckPlanServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DevicePeriodCheckPlanServiceImpl.java @@ -1,11 +1,15 @@ package com.zt.plat.module.qms.resource.device.service; import cn.hutool.core.collection.CollUtil; +import com.zt.plat.framework.security.core.LoginUser; +import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils; +import com.zt.plat.module.qms.enums.QmsCommonConstant; 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 org.springframework.stereotype.Service; import jakarta.annotation.Resource; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import java.util.*; @@ -29,16 +33,24 @@ import static com.zt.plat.module.qms.enums.ErrorCodeConstants.DEVICE_PERIOD_CHEC @Validated public class DevicePeriodCheckPlanServiceImpl implements DevicePeriodCheckPlanService { - @Resource - private DevicePeriodCheckPlanMapper devicePeriodCheckPlanMapper; + @Resource private DevicePeriodCheckPlanMapper devicePeriodCheckPlanMapper; + @Resource private DevicePeriodCheckService devicePeriodCheckService; @Override - public DevicePeriodCheckPlanRespVO createDevicePeriodCheckPlan(DevicePeriodCheckPlanSaveReqVO createReqVO) { - // 插入 - DevicePeriodCheckPlanDO devicePeriodCheckPlan = BeanUtils.toBean(createReqVO, DevicePeriodCheckPlanDO.class); - devicePeriodCheckPlanMapper.insert(devicePeriodCheckPlan); - // 返回 - return BeanUtils.toBean(devicePeriodCheckPlan, DevicePeriodCheckPlanRespVO.class); + @Transactional(rollbackFor = Exception.class) + public DevicePeriodCheckPlanRespVO createPlan(String checkYear) { + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + String userName = SecurityFrameworkUtils.getLoginUserNickname(); + + String title = userName + "的"+checkYear+"年度期间核查计划"; + DevicePeriodCheckPlanDO entity = new DevicePeriodCheckPlanDO(); + entity.setCheckYear(checkYear); + entity.setTitle(title); + entity.setApplyUserName(userName); + entity.setFlowStatus(QmsCommonConstant.NOT_START); + devicePeriodCheckPlanMapper.insert(entity); + devicePeriodCheckService.createListByPlan(entity); + return BeanUtils.toBean(entity, DevicePeriodCheckPlanRespVO.class); } @Override diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DevicePeriodCheckService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DevicePeriodCheckService.java index fe65d357..9963b778 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DevicePeriodCheckService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DevicePeriodCheckService.java @@ -2,9 +2,12 @@ package com.zt.plat.module.qms.resource.device.service; import java.util.*; +import com.alibaba.fastjson.JSONObject; +import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.module.qms.resource.device.controller.vo.DevicePeriodCheckPageReqVO; import com.zt.plat.module.qms.resource.device.controller.vo.DevicePeriodCheckRespVO; import com.zt.plat.module.qms.resource.device.controller.vo.DevicePeriodCheckSaveReqVO; +import com.zt.plat.module.qms.resource.device.dal.dataobject.DevicePeriodCheckPlanDO; import jakarta.validation.*; import com.zt.plat.module.qms.resource.device.dal.dataobject.DevicePeriodCheckDO; import com.zt.plat.framework.common.pojo.PageResult; @@ -16,6 +19,11 @@ import com.zt.plat.framework.common.pojo.PageResult; */ public interface DevicePeriodCheckService { + + void createListByPlan(DevicePeriodCheckPlanDO plan); + + CommonResult> getLastDataCheckList(List deviceIds, String flowStatus); + /** * 创建设备-期间核查 * diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DevicePeriodCheckServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DevicePeriodCheckServiceImpl.java index e746d8af..201957f1 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DevicePeriodCheckServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DevicePeriodCheckServiceImpl.java @@ -1,11 +1,21 @@ package com.zt.plat.module.qms.resource.device.service; import cn.hutool.core.collection.CollUtil; +import com.alibaba.fastjson.JSONObject; +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.controller.vo.DevicePeriodCheckPageReqVO; import com.zt.plat.module.qms.resource.device.controller.vo.DevicePeriodCheckRespVO; import com.zt.plat.module.qms.resource.device.controller.vo.DevicePeriodCheckSaveReqVO; +import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceConfigBusinessRuleDO; +import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceInfoWithBizConfigVO; +import com.zt.plat.module.qms.resource.device.dal.dataobject.DevicePeriodCheckPlanDO; +import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialInfoWithBizConfigVO; +import com.zt.plat.module.qms.resource.material.service.MaterialInfomationService; import org.springframework.stereotype.Service; import jakarta.annotation.Resource; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import java.util.*; @@ -29,8 +39,71 @@ import static com.zt.plat.module.qms.enums.ErrorCodeConstants.DEVICE_PERIOD_CHEC @Validated public class DevicePeriodCheckServiceImpl implements DevicePeriodCheckService { - @Resource - private DevicePeriodCheckMapper devicePeriodCheckMapper; + @Resource private DevicePeriodCheckMapper devicePeriodCheckMapper; + @Resource private DeviceInfomationService deviceInfomationService; + @Resource private MaterialInfomationService materialInfomationService; + + /* + * 创建本年度的期间核查列表 + * 1、取所有需要期间核查的设备、物料 + * 2、计算下次日期 + * 3、标识不能计算下次日期的数据 + * 4、保存数据 + * */ + @Override + @Transactional(rollbackFor = Exception.class) + public void createListByPlan(DevicePeriodCheckPlanDO plan) { + Long planId = plan.getId(); + String checkYear = plan.getCheckYear(); + JSONObject ruleParam = new JSONObject(); + ruleParam.put("businessType", DeviceConstant.PERIOD_TYPE); + List checkList = new ArrayList<>(); + String wfStatus = QmsCommonConstant.COMPLETED; + //处理设备 + List deviceList = deviceInfomationService.getListNeedByRule(ruleParam); + List deviceIds = convertList(deviceList, DeviceInfoWithBizConfigVO::getId); + List lastDeviceDataList = getLastDataCheckList(deviceIds, wfStatus).getData(); + for (DeviceInfoWithBizConfigVO device : deviceList) { + DeviceConfigBusinessRuleDO rule = device.getRule(); + Long deviceId = device.getId(); + initPeriodCheckData(planId, checkList, lastDeviceDataList, rule, deviceId); + } + + //处理物料试剂 + List materialList = materialInfomationService.getListNeedByRule(ruleParam); + List materialIds = convertList(materialList, MaterialInfoWithBizConfigVO::getId); + List lastMaterialDataList = getLastDataCheckList(materialIds, wfStatus).getData(); + for (MaterialInfoWithBizConfigVO material : materialList) { + DeviceConfigBusinessRuleDO rule = material.getRule(); + Long deviceId = material.getId(); + initPeriodCheckData(planId, checkList, lastMaterialDataList, rule, deviceId); + } + devicePeriodCheckMapper.insertBatch(checkList); + } + + private void initPeriodCheckData(Long planId, List checkList, List lastCheckList, DeviceConfigBusinessRuleDO rule, Long deviceId) { + DevicePeriodCheckDO data = new DevicePeriodCheckDO(); + DevicePeriodCheckDO lastCheck = lastCheckList.stream().filter(item -> item.getDeviceId().equals(deviceId)).findFirst().orElse(null); + if(lastCheck != null) + data.setLastCheckDate(lastCheck.getCheckDate()); + //todo 计算计划执行日期 + //todo 过滤当前年度已执行过期间核查的数据 + data.setPlanId(planId); + data.setDeviceId(deviceId); + data.setCheckPersonRemark(rule.getTreatmentUser()); + data.setCheckAccording(rule.getTreatmentMethod()); + 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 = devicePeriodCheckMapper.getLastDataCheckList(param); + return CommonResult.success(list); + } @Override public DevicePeriodCheckRespVO createDevicePeriodCheck(DevicePeriodCheckSaveReqVO createReqVO) { diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceUseRecordDetailServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceUseRecordDetailServiceImpl.java index 6ed83509..d65f760b 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceUseRecordDetailServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceUseRecordDetailServiceImpl.java @@ -56,6 +56,9 @@ public class DeviceUseRecordDetailServiceImpl implements DeviceUseRecordDetailSe List insertList = new ArrayList<>(); List deleteList = new ArrayList<>(); boolean exist = false; + for(DeviceUseRecordDetailSaveReqVO detail : list){ + detail.setParentId(parentId); + } for (DeviceUseRecordDetailDO has : hasList) { exist = false; for (DeviceUseRecordDetailSaveReqVO reqVO : list) { diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/dataobject/MaterialInfoWithBizConfigVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/dataobject/MaterialInfoWithBizConfigVO.java new file mode 100644 index 00000000..4430c0bb --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/dataobject/MaterialInfoWithBizConfigVO.java @@ -0,0 +1,17 @@ +package com.zt.plat.module.qms.resource.material.dal.dataobject; + +import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceConfigBusinessRuleDO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/* +* 用于物料试剂期间核查。共用设备期间核查模块 +* */ +@Data +public class MaterialInfoWithBizConfigVO extends MaterialInfomationDO{ + + + @Schema(description = "业务规则") + private DeviceConfigBusinessRuleDO rule; + +} diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInfomationMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInfomationMapper.java index b2457869..c72da809 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInfomationMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialInfomationMapper.java @@ -1,11 +1,14 @@ package com.zt.plat.module.qms.resource.material.dal.mapper; +import com.alibaba.fastjson.JSONObject; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; import com.zt.plat.framework.mybatis.core.query.MPJLambdaWrapperX; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigWarehouseLocationDO; +import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceConfigBusinessRuleDO; +import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceProductDO; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInfomationPageReqVO; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInfomationRespVO; import com.zt.plat.module.qms.resource.material.controller.vo.query.MaterialInfomationQueryVO; @@ -208,4 +211,22 @@ public interface MaterialInfomationMapper extends BaseMapperX getListNeedByRule(JSONObject param){ + String businessType = param.getString("businessType"); + Long infoId = param.getLong("infoId"); + List deptIdList = param.getJSONArray("deptIdList"); + MPJLambdaWrapperX wrapper = new MPJLambdaWrapperX<>(); + wrapper.leftJoin(DeviceProductDO.class, DeviceProductDO::getId, MaterialInfomationDO::getProductId) + .leftJoin(DeviceProductDO.class, DeviceProductDO::getId, MaterialInfomationDO::getProductId) + .selectAssociation(DeviceConfigBusinessRuleDO.class, MaterialInfoWithBizConfigVO::getRule) + .leftJoin(DeviceConfigBusinessRuleDO.class, DeviceConfigBusinessRuleDO::getProductId, MaterialInfomationDO::getProductId) + .selectAll(MaterialInfomationDO.class); + wrapper.eqIfPresent(MaterialInfomationDO::getId, infoId) + .inIfPresent(MaterialInfomationDO::getDeptId, deptIdList) + .eq(DeviceConfigBusinessRuleDO::getBusinessDomain, businessType) + .eq(DeviceConfigBusinessRuleDO::getRequireFlag, "1"); + + return selectJoinList(MaterialInfoWithBizConfigVO.class, wrapper); + } } \ 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/material/service/MaterialInfomationService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialInfomationService.java index 2db4942c..3c29389e 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialInfomationService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialInfomationService.java @@ -3,6 +3,7 @@ package com.zt.plat.module.qms.resource.material.service; import java.math.BigDecimal; import java.util.*; +import com.alibaba.fastjson.JSONObject; import com.zt.plat.module.qms.enums.AdjustType; import com.zt.plat.module.qms.enums.LockType; import com.zt.plat.module.qms.resource.material.controller.vo.MaterialInfomationPageReqVO; @@ -210,4 +211,7 @@ public interface MaterialInfomationService { * @return 更新的物料数量 */ Integer updateExpiredMaterialStatus(); + + //查询需要“期间核查”的物料列表 + List getListNeedByRule(JSONObject params); } \ 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/material/service/MaterialInfomationServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialInfomationServiceImpl.java index 8a4e0cf0..22c519ae 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialInfomationServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialInfomationServiceImpl.java @@ -1,6 +1,7 @@ package com.zt.plat.module.qms.resource.material.service; import cn.hutool.core.collection.CollUtil; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.zt.plat.framework.common.exception.ServiceException; @@ -335,4 +336,8 @@ public class MaterialInfomationServiceImpl implements MaterialInfomationService return updateList.size(); } + @Override + public List getListNeedByRule(JSONObject params) { + return materialInfomationMapper.getListNeedByRule(params); + } } \ 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/DeviceInfomationMapper.xml b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/device/dal/mapper/DeviceInfomationMapper.xml index c823f6d3..48eeb280 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/device/dal/mapper/DeviceInfomationMapper.xml +++ b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/device/dal/mapper/DeviceInfomationMapper.xml @@ -115,42 +115,4 @@ - - - \ 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 cd6efea6..64a959a3 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 @@ -9,4 +9,59 @@ 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file