From c36dc48cb5eed016914e30ddca7f22c2e11d8ee1 Mon Sep 17 00:00:00 2001 From: Yangwl <1726150332@qq.com> Date: Fri, 13 Jun 2025 16:55:15 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B8=85=E9=99=A4=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=BA=90=E9=80=BB=E8=BE=91=EF=BC=8C=E8=B4=A8=E9=87=8F?= =?UTF-8?q?=E6=9D=A5=E6=96=99=E3=80=81=E6=88=90=E5=93=81=E6=8A=A5=E5=91=8A?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/utils/poi/ExcelCPReportMapUtil.java | 4 +- .../core/utils/poi/ExcelReportMapUtil.java | 11 +- .../impl/RecordAlarmDataServiceImpl.java | 69 ++-- .../mes/service/impl/MesBoradServiceImpl.java | 11 +- .../QcCheckReportProductController.java | 1 + .../QcCheckTaskIncomeController.java | 4 +- .../QcCheckUnqualifiedController.java | 31 +- .../op/quality/controller/QuaController.java | 123 ++++-- .../impl/QcCheckTaskDetailServiceImpl.java | 67 ++-- .../impl/QcCheckTaskIncomeServiceImpl.java | 353 +++++++++--------- .../impl/QcCheckTaskProduceServiceImpl.java | 69 ++-- .../QcCheckTaskWarehousingServiceImpl.java | 331 ++++++++-------- .../impl/QcCheckTypeProjectServiceImpl.java | 23 +- .../service/impl/QcCheckTypeServiceImpl.java | 7 +- .../service/impl/QcInterfaceServiceImpl.java | 313 ++++++++-------- .../service/impl/QcProCheckServiceImpl.java | 166 ++++---- .../quality/QcCheckReportIncomeMapper.xml | 2 +- .../com/op/sap/controller/SapController.java | 63 ++-- .../impl/OADataInterfaceServiceImpl.java | 7 +- .../service/impl/SysPostServiceImpl.java | 46 +-- .../impl/OdsProcureOrderServiceImpl.java | 95 ++--- .../impl/WmsProductPutTrayServiceImpl.java | 7 +- .../impl/WmsSellOutEmbryoServiceImpl.java | 21 +- 23 files changed, 1007 insertions(+), 817 deletions(-) diff --git a/op-common/op-common-core/src/main/java/com/op/common/core/utils/poi/ExcelCPReportMapUtil.java b/op-common/op-common-core/src/main/java/com/op/common/core/utils/poi/ExcelCPReportMapUtil.java index dfdeb2c67..b85b5c082 100644 --- a/op-common/op-common-core/src/main/java/com/op/common/core/utils/poi/ExcelCPReportMapUtil.java +++ b/op-common/op-common-core/src/main/java/com/op/common/core/utils/poi/ExcelCPReportMapUtil.java @@ -67,7 +67,7 @@ public class ExcelCPReportMapUtil { // 合并C3到I4的单元格,并设置样式 mergeAndStyleCells(sheet, new CellRangeAddress(2, 3, 2, 8), detailMap.get("title")); // 合并J3到L4的单元格,并设置样式 - mergeAndStyleCells(sheet, new CellRangeAddress(2, 3, 9, 12), "编码"+detailMap.get("standardNo")); + mergeAndStyleCells(sheet, new CellRangeAddress(2, 3, 9, 12), "编码"+detailMap.get("fileNo")); /**左右表格1**/ //画边框 for(int r5=4;r5<12;r5++){ @@ -121,7 +121,7 @@ public class ExcelCPReportMapUtil { // 合并E5到F6的单元格,并设置样式和内容 mergeAndStyleCells2(sheet,row9, new CellRangeAddress(8, 9, 4, 5), "检验依据", true, true, IndexedColors.GREY_25_PERCENT); // 合并G5到I6的单元格,并设置样式(无背景色,只有边框和内容居中) - mergeAndStyleCells2(sheet,row9, new CellRangeAddress(8, 9,6, 8), detailMap.get("quality"), true, false, null); + mergeAndStyleCells2(sheet,row9, new CellRangeAddress(8, 9,6, 8), detailMap.get("standardNo"), true, false, null); // 合并J5到K6的单元格,并设置样式和内容 mergeAndStyleCells2(sheet,row9, new CellRangeAddress(8, 9, 9, 10), "检验日期 ", true, true, IndexedColors.GREY_25_PERCENT); // 合并L5到N6的单元格,并设置样式(无背景色,只有边框和内容居中) diff --git a/op-common/op-common-core/src/main/java/com/op/common/core/utils/poi/ExcelReportMapUtil.java b/op-common/op-common-core/src/main/java/com/op/common/core/utils/poi/ExcelReportMapUtil.java index fb5a5b5da..3c9423db2 100644 --- a/op-common/op-common-core/src/main/java/com/op/common/core/utils/poi/ExcelReportMapUtil.java +++ b/op-common/op-common-core/src/main/java/com/op/common/core/utils/poi/ExcelReportMapUtil.java @@ -67,7 +67,7 @@ public class ExcelReportMapUtil { // 合并C3到I4的单元格,并设置样式 mergeAndStyleCells(sheet, new CellRangeAddress(2, 3, 2, 8), detailMap.get("title")); // 合并J3到L4的单元格,并设置样式 - mergeAndStyleCells(sheet, new CellRangeAddress(2, 3, 9, 12), "编码:"+detailMap.get("standardNo")); + mergeAndStyleCells(sheet, new CellRangeAddress(2, 3, 9, 12), "编码:"+detailMap.get("fileNo")); /**左右表格1**/ //画边框 for(int r5=4;r5<13;r5++){ @@ -256,6 +256,15 @@ public class ExcelReportMapUtil { mergeAndStyleCellsNoBorder(sheet,rowEnd2, new CellRangeAddress(rowNum+5, rowNum+5, 10, 11), "品管员", true, true, IndexedColors.GREY_25_PERCENT); mergeAndStyleCellsNoBorder(sheet,rowEnd2, new CellRangeAddress(rowNum+5, rowNum+5, 12, 13), detailMap.get("checkManName"), true, false, null); + Row rowEnd3 = sheet.createRow(rowNum+4); + mergeAndStyleCellsNoBorder(sheet, rowEnd3, new CellRangeAddress(rowNum+4, rowNum+4, 0, 1), "备注", true, true, IndexedColors.GREY_25_PERCENT); + mergeAndStyleCellsNoBorder(sheet, rowEnd3, new CellRangeAddress(rowNum+4, rowNum+4, 2, 13), detailMap.get("remark"), true, false, null); + +// Row rowEnd3 = sheet.createRow(rowNum+8); +// mergeAndStyleCellsNoBorder(sheet,rowEnd3, new CellRangeAddress(rowNum+5, rowNum+5, 0, 1), "品管经理/主任", true, true, IndexedColors.GREY_25_PERCENT); +// mergeAndStyleCellsNoBorder(sheet,rowEnd2, new CellRangeAddress(rowNum+6, rowNum+6, 0, 1), "备注", true, true, IndexedColors.GREY_25_PERCENT); +// mergeAndStyleCellsNoBorder(sheet,rowEnd2, new CellRangeAddress(rowNum+6, rowNum+6, 2, 13), detailMap.get("remark"), true, false, null); + return workbook; } diff --git a/op-modules/op-energy/src/main/java/com/op/energy/record/service/impl/RecordAlarmDataServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/record/service/impl/RecordAlarmDataServiceImpl.java index d6c4da9b6..bac215875 100644 --- a/op-modules/op-energy/src/main/java/com/op/energy/record/service/impl/RecordAlarmDataServiceImpl.java +++ b/op-modules/op-energy/src/main/java/com/op/energy/record/service/impl/RecordAlarmDataServiceImpl.java @@ -327,42 +327,47 @@ public class RecordAlarmDataServiceImpl implements IRecordAlarmDataService { public void deviceOfflineTimingTaskDetail(String poolName) { DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key - Date date = new Date(); - RecordAlarmRule alarmRule = new RecordAlarmRule(); - alarmRule.setTriggerRule(1L); - List recordAlarmRules = recordAlarmRuleMapper.selectRecordAlarmRuleList(alarmRule); - Long minuteValue = 1000 * 60L; - if (recordAlarmRules.size() > 0) { - if (recordAlarmRules.get(0).getDeviceOfflineTime() != null) { - minuteValue = minuteValue * recordAlarmRules.get(0).getDeviceOfflineTime(); - } - } else { - return; - } - BaseCollectDeviceInfo collectDeviceInfo = new BaseCollectDeviceInfo(); - collectDeviceInfo.setOnlineState(0L); - List baseCollectDeviceInfos = baseCollectDeviceInfoMapper.selectBaseCollectDeviceInfoList(collectDeviceInfo); - if (baseCollectDeviceInfos.size() > 0) { - RecordAlarmData recordAlarmData = new RecordAlarmData(); - recordAlarmData.setAlarmType(1L); - recordAlarmData.setAlarmStatus(1L); - List alarmDataList = recordAlarmDataMapper.selectRecordAlarmDataList(recordAlarmData); - List collectDeviceIdList = alarmDataList.stream().map(RecordAlarmData::getCollectDeviceId).collect(Collectors.toList()); - for (BaseCollectDeviceInfo deviceInfo : baseCollectDeviceInfos) { - if (collectDeviceIdList.contains(deviceInfo.getCollectDeviceId())) { - continue; + try { + Date date = new Date(); + RecordAlarmRule alarmRule = new RecordAlarmRule(); + alarmRule.setTriggerRule(1L); + List recordAlarmRules = recordAlarmRuleMapper.selectRecordAlarmRuleList(alarmRule); + Long minuteValue = 1000 * 60L; + if (recordAlarmRules.size() > 0) { + if (recordAlarmRules.get(0).getDeviceOfflineTime() != null) { + minuteValue = minuteValue * recordAlarmRules.get(0).getDeviceOfflineTime(); } - if ((deviceInfo.getUpdateTime().getTime() + minuteValue) < date.getTime()) { - RecordAlarmData alarmData = new RecordAlarmData(); - alarmData.setCollectDeviceId(deviceInfo.getCollectDeviceId()); - alarmData.setCollectTime(new Date()); - alarmData.setAlarmType(1L); - alarmData.setAlarmStatus(1L); - alarmData.setAlarmData("设备离线已超过" + recordAlarmRules.get(0).getDeviceOfflineTime() + "分钟"); - recordAlarmDataMapper.insertRecordAlarmData(alarmData); + } else { + return; + } + BaseCollectDeviceInfo collectDeviceInfo = new BaseCollectDeviceInfo(); + collectDeviceInfo.setOnlineState(0L); + List baseCollectDeviceInfos = baseCollectDeviceInfoMapper.selectBaseCollectDeviceInfoList(collectDeviceInfo); + if (baseCollectDeviceInfos.size() > 0) { + RecordAlarmData recordAlarmData = new RecordAlarmData(); + recordAlarmData.setAlarmType(1L); + recordAlarmData.setAlarmStatus(1L); + List alarmDataList = recordAlarmDataMapper.selectRecordAlarmDataList(recordAlarmData); + List collectDeviceIdList = alarmDataList.stream().map(RecordAlarmData::getCollectDeviceId).collect(Collectors.toList()); + for (BaseCollectDeviceInfo deviceInfo : baseCollectDeviceInfos) { + if (collectDeviceIdList.contains(deviceInfo.getCollectDeviceId())) { + continue; + } + if ((deviceInfo.getUpdateTime().getTime() + minuteValue) < date.getTime()) { + RecordAlarmData alarmData = new RecordAlarmData(); + alarmData.setCollectDeviceId(deviceInfo.getCollectDeviceId()); + alarmData.setCollectTime(new Date()); + alarmData.setAlarmType(1L); + alarmData.setAlarmStatus(1L); + alarmData.setAlarmData("设备离线已超过" + recordAlarmRules.get(0).getDeviceOfflineTime() + "分钟"); + recordAlarmDataMapper.insertRecordAlarmData(alarmData); + } } } + }finally { + DynamicDataSourceContextHolder.poll(); } + } /** diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesBoradServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesBoradServiceImpl.java index c09d26629..1cc6dd759 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesBoradServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesBoradServiceImpl.java @@ -52,9 +52,14 @@ public class MesBoradServiceImpl implements IMesBoradService { @Override public List getLineList(BoardDTO boardDTO) { DynamicDataSourceContextHolder.push(boardDTO.getFactoryCode()); - boardDTO.setEquipmentTypeCode("equ_type_bzx"); - List lineList = mesMapper.getLineList(boardDTO); - return lineList; + try { + boardDTO.setEquipmentTypeCode("equ_type_bzx"); + List lineList = mesMapper.getLineList(boardDTO); + return lineList; + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @Override diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckReportProductController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckReportProductController.java index a9723b19f..e09d726ff 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckReportProductController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckReportProductController.java @@ -111,6 +111,7 @@ public class QcCheckReportProductController extends BaseController { List> list = qcCheckReportProductService.getCkeckProjectMap(qcCheckTaskIncome.getRecordId()); QcCheckReportIncome detailInfo = qcCheckReportProductService.selectQcCheckReportIncomeByRecordId(qcCheckTaskIncome.getRecordId()); Map detailMap = new HashMap<>(); + detailMap.put("fileNo",detailInfo.getFileNo()); detailMap.put("orderType",detailInfo.getOrderType()); detailMap.put("title","成品检验报告"); detailMap.put("checkNo",detailInfo.getCheckNo()); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskIncomeController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskIncomeController.java index f817d8a56..a0f997063 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskIncomeController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskIncomeController.java @@ -148,6 +148,7 @@ public class QcCheckTaskIncomeController extends BaseController { }else{ detailMap.put("title","包材检验报告"); } + detailMap.put("fileNo",detailInfo.getFileNo()); detailMap.put("productGroupName",detailInfo.getProductGroupName()); detailMap.put("incomeBatchNo",detailInfo.getIncomeBatchNo()); detailMap.put("checkNo",detailInfo.getCheckNo()); @@ -162,11 +163,12 @@ public class QcCheckTaskIncomeController extends BaseController { detailMap.put("incomeTime",DateUtils.parseDateToStr("yyyy-MM-dd",detailInfo.getIncomeTime())); detailMap.put("checkResult",detailInfo.getCheckResult().equals("Y")?"√合格":"×不合格"); detailMap.put("checkManName",detailInfo.getCheckManName()); - + detailMap.put("remark",detailInfo.getRemark()); //表格结构数据 ArrayList excelCols = new ArrayList<>(); excelCols.add(new ExcelCol("检验项目", "ruleName", 30)); excelCols.add(new ExcelCol("标准要求", "checkStandard", 30)); + excelCols.add(new ExcelCol("抽检数", "samplePlan", 30)); excelCols.add(new ExcelCol("实测结果", "actualValue", 30)); excelCols.add(new ExcelCol("判定", "status", 30)); excelCols.add(new ExcelCol("附件", "fileUrls", 30)); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckUnqualifiedController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckUnqualifiedController.java index f2cb339bb..a1c631874 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckUnqualifiedController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckUnqualifiedController.java @@ -145,8 +145,12 @@ public class QcCheckUnqualifiedController extends BaseController { public List getUnqualifiedListMobile(QcCheckUnqualified qcCheckUnqualified) { qcCheckUnqualified.setDelFlag("0"); DynamicDataSourceContextHolder.push(qcCheckUnqualified.getFactoryCode()); - List list = qcCheckUnqualifiedService.selectQcCheckUnqualifiedList(qcCheckUnqualified); - return list; + try { + List list = qcCheckUnqualifiedService.selectQcCheckUnqualifiedList(qcCheckUnqualified); + return list; + }finally { + DynamicDataSourceContextHolder.poll(); + } } /** * 查询oa审批详情 @@ -155,17 +159,22 @@ public class QcCheckUnqualifiedController extends BaseController { public List getOAInfoListMobile(QcCheckUnqualified qcCheckUnqualified) { List list = qcCheckUnqualifiedService.getOAInfoList(qcCheckUnqualified); DynamicDataSourceContextHolder.push("master"); - SysDictData sData = new SysDictData(); - sData.setDictType("logtype"); - Map dictMap = qcCheckTypeProjectMapper.getDictMap(sData); - if (dictMap != null) { - for (OAInfo dto : list) { - if (StringUtils.isNotBlank(dto.getLOGTYPE())) { - dto.setLOGTYPE(dictMap.get(dto.getLOGTYPE()).getDictLabel()); - } + try { + SysDictData sData = new SysDictData(); + sData.setDictType("logtype"); + Map dictMap = qcCheckTypeProjectMapper.getDictMap(sData); + if (dictMap != null) { + for (OAInfo dto : list) { + if (StringUtils.isNotBlank(dto.getLOGTYPE())) { + dto.setLOGTYPE(dictMap.get(dto.getLOGTYPE()).getDictLabel()); + } + } } + return list; + }finally { + DynamicDataSourceContextHolder.poll(); } - return list; + } } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java index cb72e8534..66a65a8bb 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java @@ -234,13 +234,18 @@ public class QuaController extends BaseController { // if(CollectionUtils.isEmpty(qcCheckTaskIncome.getQcCheckTaskDetails())){ // return error("[List]不能为空"); // } - if(StringUtils.isBlank(qcCheckTaskIncome.getUpdateBy())){ - return error("[updateBy]不能为空"); + try { + if(StringUtils.isBlank(qcCheckTaskIncome.getUpdateBy())){ + return error("[updateBy]不能为空"); + } + if(StringUtils.isBlank(qcCheckTaskIncome.getUpdateByName())){ + return error("[updateByName]不能为空"); + } + return toAjax(qcCheckTaskIncomeService.commitCheckResults(qcCheckTaskIncome)); + }finally { + DynamicDataSourceContextHolder.poll(); } - if(StringUtils.isBlank(qcCheckTaskIncome.getUpdateByName())){ - return error("[updateByName]不能为空"); - } - return toAjax(qcCheckTaskIncomeService.commitCheckResults(qcCheckTaskIncome)); + } @PostMapping(value = "commitCheckResultsCg") public AjaxResult commitCheckResultsCg(@RequestBody QcCheckTaskIncome qcCheckTaskIncome) { @@ -248,13 +253,18 @@ public class QuaController extends BaseController { // if(CollectionUtils.isEmpty(qcCheckTaskIncome.getQcCheckTaskDetails())){ // return error("[List]不能为空"); // } - if(StringUtils.isBlank(qcCheckTaskIncome.getUpdateBy())){ - return error("[updateBy]不能为空"); + try { + if(StringUtils.isBlank(qcCheckTaskIncome.getUpdateBy())){ + return error("[updateBy]不能为空"); + } + if(StringUtils.isBlank(qcCheckTaskIncome.getUpdateByName())){ + return error("[updateByName]不能为空"); + } + return toAjax(qcCheckTaskIncomeService.commitCheckResultsCg(qcCheckTaskIncome)); + }finally { + DynamicDataSourceContextHolder.poll(); } - if(StringUtils.isBlank(qcCheckTaskIncome.getUpdateByName())){ - return error("[updateByName]不能为空"); - } - return toAjax(qcCheckTaskIncomeService.commitCheckResultsCg(qcCheckTaskIncome)); + } @PostMapping(value = "getUserIdList") @@ -285,7 +295,12 @@ public class QuaController extends BaseController { @GetMapping("/pdaMaterialTree") public AjaxResult pdaMaterialTree(QcMaterialGroup materialGroup) { DynamicDataSourceContextHolder.push(materialGroup.getFactoryCode()); - return success(qcMaterialGroupService.selectQcMaterialTreeList(materialGroup)); + try { + return success(qcMaterialGroupService.selectQcMaterialTreeList(materialGroup)); + }finally { + DynamicDataSourceContextHolder.poll(); + } + } /** @@ -295,68 +310,114 @@ public class QuaController extends BaseController { @GetMapping("/getCheckTypeProjectList") public TableDataInfo list(QcCheckTypeProject qcCheckTypeProject) { DynamicDataSourceContextHolder.push(qcCheckTypeProject.getFactoryCode()); - startPage(); - List list = qcMaterialGroupService.getCheckTypeProjectList(qcCheckTypeProject); - return getDataTable(list); + try { + startPage(); + List list = qcMaterialGroupService.getCheckTypeProjectList(qcCheckTypeProject); + return getDataTable(list); + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @GetMapping("/getUnqualifiedList") public TableDataInfo getUnqualifiedList(QcCheckUnqualified qcCheckUnqualified) { DynamicDataSourceContextHolder.push(qcCheckUnqualified.getFactoryCode()); - startPage(); - qcCheckUnqualified.setDelFlag("0"); - List list = qcCheckUnqualifiedService.selectQcCheckUnqualifiedList(qcCheckUnqualified); - return getDataTable(list); + try { + startPage(); + qcCheckUnqualified.setDelFlag("0"); + List list = qcCheckUnqualifiedService.selectQcCheckUnqualifiedList(qcCheckUnqualified); + return getDataTable(list); + }finally { + DynamicDataSourceContextHolder.poll(); + } + } /**获取来料工单列表**/ @GetMapping("/getLLWorkOrder") public TableDataInfo getLLWorkOrder(QcCheckTaskIncome qcCheckTaskIncome) { DynamicDataSourceContextHolder.push(qcCheckTaskIncome.getFactoryCode()); - startPage(); - List list = qcCheckTaskIncomeService.getLLWorkOrder(qcCheckTaskIncome); - return getDataTable(list); + try { + startPage(); + List list = qcCheckTaskIncomeService.getLLWorkOrder(qcCheckTaskIncome); + return getDataTable(list); + }finally { + DynamicDataSourceContextHolder.poll(); + } + } /**不良类型**/ @PostMapping("/getDefectListPDA") public List getDefectListPDA(@RequestBody QcDefectType qcDefectType) { DynamicDataSourceContextHolder.push(qcDefectType.getFactoryCode()); - return qcCheckTaskIncomeService.getDefectListPDA(qcDefectType); + try { + return qcCheckTaskIncomeService.getDefectListPDA(qcDefectType); + }finally { + DynamicDataSourceContextHolder.poll(); + } + } /**检测地点编码名称**/ @PostMapping("/getCheckLocList") public List getCheckLocList(@RequestBody QcDefectType qcDefectType) { DynamicDataSourceContextHolder.push(qcDefectType.getFactoryCode()); - return qcCheckTaskIncomeService.getCheckLocList(qcDefectType); + try { + return qcCheckTaskIncomeService.getCheckLocList(qcDefectType); + }finally { + DynamicDataSourceContextHolder.poll(); + } + } /**获取生产工单列表**/ @GetMapping("/getWorkOrder") public TableDataInfo getWorkOrder(QcCheckTaskIncome qcCheckTaskIncome) { DynamicDataSourceContextHolder.push(qcCheckTaskIncome.getFactoryCode()); - startPage(); - List list = qcCheckTaskIncomeService.getWorkOrder(qcCheckTaskIncome); - return getDataTable(list); + try { + startPage(); + List list = qcCheckTaskIncomeService.getWorkOrder(qcCheckTaskIncome); + return getDataTable(list); + }finally { + DynamicDataSourceContextHolder.poll(); + } + + } @PostMapping("/getBatchList") public List getBatchList(@RequestBody QcCheckTaskIncome qcCheckTaskIncome) { DynamicDataSourceContextHolder.push(qcCheckTaskIncome.getFactoryCode()); - return qcCheckTaskIncomeService.getBatchList(qcCheckTaskIncome); + try { + return qcCheckTaskIncomeService.getBatchList(qcCheckTaskIncome); + }finally { + DynamicDataSourceContextHolder.poll(); + } + } /**当前正在生产的线体,正在运行的订单**/ @PostMapping("/getLineProOrder") public List getLineProOrder(@RequestBody QcCheckTaskIncome qcCheckTaskIncome) { DynamicDataSourceContextHolder.push(qcCheckTaskIncome.getFactoryCode()); - return qcCheckTaskIncomeService.getLineProOrder(qcCheckTaskIncome); + try { + return qcCheckTaskIncomeService.getLineProOrder(qcCheckTaskIncome); + }finally { + DynamicDataSourceContextHolder.poll(); + } + } /**成品抽检提交**/ @PostMapping(value = "/commitCPCJCheck") public AjaxResult commitCPCJCheck(@RequestBody QcCheckTaskIncome qcCheckTaskIncome) { DynamicDataSourceContextHolder.push(qcCheckTaskIncome.getFactoryCode()); - return toAjax(qcCheckTaskIncomeService.commitCPCJCheck(qcCheckTaskIncome)); + try { + return toAjax(qcCheckTaskIncomeService.commitCPCJCheck(qcCheckTaskIncome)); + }finally { + DynamicDataSourceContextHolder.poll(); + } + } } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskDetailServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskDetailServiceImpl.java index 7b0f9b28f..de70e3308 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskDetailServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskDetailServiceImpl.java @@ -169,45 +169,50 @@ public class QcCheckTaskDetailServiceImpl implements IQcCheckTaskDetailService { private void resendWXFunc(String poolName){ DynamicDataSourceContextHolder.push(poolName); //这是数据源的key - List noCheckList = qcCheckTaskDetailMapper.selectNoCheckList(); - //发企业微信--------------------开始 - SysNoticeGroup noticeQo = new SysNoticeGroup(); - //筛选成品检验 id 7 + try { + List noCheckList = qcCheckTaskDetailMapper.selectNoCheckList(); + //发企业微信--------------------开始 + SysNoticeGroup noticeQo = new SysNoticeGroup(); + //筛选成品检验 id 7 // List noCheckListCP = noCheckList.stream().filter(condition -> condition.getCheckType().equals("checkTypeCP")).collect(Collectors.toList()); // String CP = StringUtils.join(noCheckListCP.stream().map(QcCheckReportIncome::getCheckNo).collect(Collectors.toList()).toArray(),","); - //批次成品检验 id 12 - List noCheckListCPPC = noCheckList.stream().filter(condition -> condition.getCheckType().equals("checkTypeCPPC")).collect(Collectors.toList()); - String CPPC = StringUtils.join(noCheckListCPPC.stream().map(QcCheckReportIncome::getCheckNo).collect(Collectors.toList()).toArray(),","); - //来料检验 id 6 - List noCheckListLL = noCheckList.stream().filter(condition -> condition.getCheckType().equals("checkTypeLL")).collect(Collectors.toList()); - String LL = StringUtils.join(noCheckListLL.stream().map(QcCheckReportIncome::getCheckNo).collect(Collectors.toList()).toArray(),","); - //过程巡检 id 20 - List noCheckListSCXJ = noCheckList.stream().filter(condition -> condition.getCheckType().equals("checkTypeSCXJ")).collect(Collectors.toList()); - String SCXJ = StringUtils.join(noCheckListSCXJ.stream().map(QcCheckReportIncome::getCheckNo).collect(Collectors.toList()).toArray(),","); - //首件检验 id 19 - List noCheckListSC = noCheckList.stream().filter(condition -> condition.getCheckType().equals("checkTypeSC")).collect(Collectors.toList()); - String SC = StringUtils.join(noCheckListSC.stream().map(QcCheckReportIncome::getCheckNo).collect(Collectors.toList()).toArray(),","); + //批次成品检验 id 12 + List noCheckListCPPC = noCheckList.stream().filter(condition -> condition.getCheckType().equals("checkTypeCPPC")).collect(Collectors.toList()); + String CPPC = StringUtils.join(noCheckListCPPC.stream().map(QcCheckReportIncome::getCheckNo).collect(Collectors.toList()).toArray(),","); + //来料检验 id 6 + List noCheckListLL = noCheckList.stream().filter(condition -> condition.getCheckType().equals("checkTypeLL")).collect(Collectors.toList()); + String LL = StringUtils.join(noCheckListLL.stream().map(QcCheckReportIncome::getCheckNo).collect(Collectors.toList()).toArray(),","); + //过程巡检 id 20 + List noCheckListSCXJ = noCheckList.stream().filter(condition -> condition.getCheckType().equals("checkTypeSCXJ")).collect(Collectors.toList()); + String SCXJ = StringUtils.join(noCheckListSCXJ.stream().map(QcCheckReportIncome::getCheckNo).collect(Collectors.toList()).toArray(),","); + //首件检验 id 19 + List noCheckListSC = noCheckList.stream().filter(condition -> condition.getCheckType().equals("checkTypeSC")).collect(Collectors.toList()); + String SC = StringUtils.join(noCheckListSC.stream().map(QcCheckReportIncome::getCheckNo).collect(Collectors.toList()).toArray(),","); // if(noCheckListCP != null || noCheckListCP.size() > 0) { // noticeQo.setNoticeId(7L); // sendWeChartMessage(noticeQo,CP,noCheckListCP.size()+"个成品检验",noCheckListCP); // } - if(noCheckListCPPC != null || noCheckListCPPC.size() > 0){ - noticeQo.setNoticeId(12L); - sendWeChartMessage(noticeQo,CPPC,noCheckListCPPC.size()+"个批次成品检验",noCheckListCPPC); - } - if(noCheckListLL != null || noCheckListLL.size() > 0){ - noticeQo.setNoticeId(6L); - sendWeChartMessage(noticeQo,LL,noCheckListLL.size()+"个来料检验",noCheckListLL); - } - if(noCheckListSCXJ != null || noCheckListSCXJ.size() > 0){ - noticeQo.setNoticeId(20L); - sendWeChartMessage(noticeQo,SCXJ,noCheckListSCXJ.size()+"个过程巡检",noCheckListSCXJ); - } - if(noCheckListSC != null || noCheckListSC.size() > 0){ - noticeQo.setNoticeId(19L); - sendWeChartMessage(noticeQo,SC,noCheckListSC.size()+"个首件检验",noCheckListSC); + if(noCheckListCPPC != null || noCheckListCPPC.size() > 0){ + noticeQo.setNoticeId(12L); + sendWeChartMessage(noticeQo,CPPC,noCheckListCPPC.size()+"个批次成品检验",noCheckListCPPC); + } + if(noCheckListLL != null || noCheckListLL.size() > 0){ + noticeQo.setNoticeId(6L); + sendWeChartMessage(noticeQo,LL,noCheckListLL.size()+"个来料检验",noCheckListLL); + } + if(noCheckListSCXJ != null || noCheckListSCXJ.size() > 0){ + noticeQo.setNoticeId(20L); + sendWeChartMessage(noticeQo,SCXJ,noCheckListSCXJ.size()+"个过程巡检",noCheckListSCXJ); + } + if(noCheckListSC != null || noCheckListSC.size() > 0){ + noticeQo.setNoticeId(19L); + sendWeChartMessage(noticeQo,SC,noCheckListSC.size()+"个首件检验",noCheckListSC); + } + }finally { + DynamicDataSourceContextHolder.poll(); } + } private void sendWeChartMessage(SysNoticeGroup noticeQo,String checkNoList,String message,List noCheckList){ diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java index 22fefc209..8e026e27d 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java @@ -152,47 +152,48 @@ public class QcCheckTaskIncomeServiceImpl implements public int insertQcCheckTaskIncome(QcCheckTaskIncome qcCheckTaskIncome) { logger.info("impl创建检验任务接收参数:"+JSONObject.toJSONString(qcCheckTaskIncome)); DynamicDataSourceContextHolder.push("ds_" + qcCheckTaskIncome.getFactoryCode()); - String bpDD = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, DateUtils.getNowDate()); - int liushuiNum = qcCheckTaskIncomeMapper.getTodayMaxNum(qcCheckTaskIncome); - String liushuiStr = String.format("%04d", liushuiNum); + try { + String bpDD = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, DateUtils.getNowDate()); + int liushuiNum = qcCheckTaskIncomeMapper.getTodayMaxNum(qcCheckTaskIncome); + String liushuiStr = String.format("%04d", liushuiNum); - String createBy = SecurityUtils.getUsername(); - Date nowDate= DateUtils.getNowDate(); - //获取当前所选工厂 - String factoryCode = qcCheckTaskIncome.getFactoryCode(); + String createBy = SecurityUtils.getUsername(); + Date nowDate= DateUtils.getNowDate(); + //获取当前所选工厂 + String factoryCode = qcCheckTaskIncome.getFactoryCode(); - qcCheckTaskIncome.setCheckNo(bpDD+liushuiStr); + qcCheckTaskIncome.setCheckNo(bpDD+liushuiStr); - /**取检测项**/ - QcCheckTypeProject qctp= new QcCheckTypeProject(); - qctp.setTypeId(qcCheckTaskIncome.getCheckType());//生产过程检验 - qctp.setMaterialCode(qcCheckTaskIncome.getMaterialCode());//特性 - /**qc_check_type_project**///个性 - List items = qcCheckTypeProjectMapper.getTPByTypeMaterial(qctp); - /**qc_material_group_detail**/ - QcMaterialGroupDetail group = qcMaterialGroupDetailMapper.getGroupByMaterial(qcCheckTaskIncome.getMaterialCode()); - //共性 - if(group == null){//默认 - group = new QcMaterialGroupDetail(); - QcProjectType initGroup = qcCheckTypeProjectMapper.getProductGroup(qcCheckTaskIncome.getMaterialCode()); - if(initGroup != null){ - group.setGroupId(initGroup.getGroupId()); - }else{ + /**取检测项**/ + QcCheckTypeProject qctp= new QcCheckTypeProject(); + qctp.setTypeId(qcCheckTaskIncome.getCheckType());//生产过程检验 + qctp.setMaterialCode(qcCheckTaskIncome.getMaterialCode());//特性 + /**qc_check_type_project**///个性 + List items = qcCheckTypeProjectMapper.getTPByTypeMaterial(qctp); + /**qc_material_group_detail**/ + QcMaterialGroupDetail group = qcMaterialGroupDetailMapper.getGroupByMaterial(qcCheckTaskIncome.getMaterialCode()); + //共性 + if(group == null){//默认 + group = new QcMaterialGroupDetail(); + QcProjectType initGroup = qcCheckTypeProjectMapper.getProductGroup(qcCheckTaskIncome.getMaterialCode()); + if(initGroup != null){ + group.setGroupId(initGroup.getGroupId()); + }else{ + return 0;//没有找到检测项目 + } + } + List itemsGG = new ArrayList<>(); + if(StringUtils.isNotBlank(group.getGroupId())){ + qctp.setGroupId(group.getGroupId()); + itemsGG = qcCheckTypeProjectMapper.getTPByTypeGroup(qctp); + } + items.addAll(itemsGG); + + /**qc_check_task_detail**/ + if(CollectionUtils.isEmpty(items)){ + logger.info("检验任务创建参数缺失:"+qcCheckTaskIncome.getMaterialCode()); return 0;//没有找到检测项目 } - } - List itemsGG = new ArrayList<>(); - if(StringUtils.isNotBlank(group.getGroupId())){ - qctp.setGroupId(group.getGroupId()); - itemsGG = qcCheckTypeProjectMapper.getTPByTypeGroup(qctp); - } - items.addAll(itemsGG); - - /**qc_check_task_detail**/ - if(CollectionUtils.isEmpty(items)){ - logger.info("检验任务创建参数缺失:"+qcCheckTaskIncome.getMaterialCode()); - return 0;//没有找到检测项目 - } // //抽样方案 // String sampleQua = this.getSampleQua(qcCheckTaskIncome); @@ -202,109 +203,113 @@ public class QcCheckTaskIncomeServiceImpl implements // } - /**qc_check_task**/ - String beLongId = IdUtils.fastSimpleUUID(); - qcCheckTaskIncome.setRecordId(beLongId); - qcCheckTaskIncome.setFactoryCode(factoryCode); - qcCheckTaskIncome.setCreateTime(nowDate); - //String typeCode = qcCheckTaskIncomeMapper.getTypeCode(qcCheckTaskIncome.getCheckType()); - qcCheckTaskIncome.setTypeCode("material");//大检验节点 - /**qc_task_user start**/ - List users = null; - if(StringUtils.isNotBlank(qcCheckTaskIncome.getCheckManName())){//管理系统创建任务 - String checkManName = qcCheckTaskIncome.getCheckManName(); - String checkManCode = qcCheckTaskIncome.getCheckManCode(); - qcCheckTaskIncome.setCheckManName(""); - qcCheckTaskIncome.setCheckManCode(""); - String[] splitNames = checkManName.split(","); - String[] splitCodes = checkManCode.split(","); - List qcCheckTaskUserList = new ArrayList<>(); - for (int i = 0; i < splitNames.length; i++) { - QcCheckTaskUser qcCheckTaskUser = new QcCheckTaskUser(); - qcCheckTaskUser.setCheckManName(splitNames[i]); - qcCheckTaskUser.setCheckManCode(splitCodes[i]); - qcCheckTaskUser.setCheckNo(qcCheckTaskIncome.getCheckNo()); - qcCheckTaskUser.setBelongTo(beLongId); - qcCheckTaskUser.setFactoryCode(factoryCode); + /**qc_check_task**/ + String beLongId = IdUtils.fastSimpleUUID(); + qcCheckTaskIncome.setRecordId(beLongId); + qcCheckTaskIncome.setFactoryCode(factoryCode); + qcCheckTaskIncome.setCreateTime(nowDate); + //String typeCode = qcCheckTaskIncomeMapper.getTypeCode(qcCheckTaskIncome.getCheckType()); + qcCheckTaskIncome.setTypeCode("material");//大检验节点 + /**qc_task_user start**/ + List users = null; + if(StringUtils.isNotBlank(qcCheckTaskIncome.getCheckManName())){//管理系统创建任务 + String checkManName = qcCheckTaskIncome.getCheckManName(); + String checkManCode = qcCheckTaskIncome.getCheckManCode(); + qcCheckTaskIncome.setCheckManName(""); + qcCheckTaskIncome.setCheckManCode(""); + String[] splitNames = checkManName.split(","); + String[] splitCodes = checkManCode.split(","); + List qcCheckTaskUserList = new ArrayList<>(); + for (int i = 0; i < splitNames.length; i++) { + QcCheckTaskUser qcCheckTaskUser = new QcCheckTaskUser(); + qcCheckTaskUser.setCheckManName(splitNames[i]); + qcCheckTaskUser.setCheckManCode(splitCodes[i]); + qcCheckTaskUser.setCheckNo(qcCheckTaskIncome.getCheckNo()); + qcCheckTaskUser.setBelongTo(beLongId); + qcCheckTaskUser.setFactoryCode(factoryCode); - qcCheckTaskUserList.add(qcCheckTaskUser); - } - //检验人插入 - qcCheckTaskUserService.insertQcCheckTaskUserPDA(qcCheckTaskUserList); - }else{ - qcCheckTaskIncome.setCheckManName(""); - qcCheckTaskIncome.setCheckManCode(""); - /**qc_user_material取默认检查人**/ - qcCheckTaskIncome.setBelongTo(group.getGroupId()); - users = qcCheckTaskIncomeMapper.getCheckUserBelongStandar(qcCheckTaskIncome); - if(CollectionUtils.isEmpty(users)){ - users = qcCheckTaskIncomeMapper.getCheckUser(qcCheckTaskIncome); - } - for(QcUserMaterialDTO user:users){ - user.setId(IdUtils.fastSimpleUUID()); - user.setBelongTo(beLongId); - user.setCheckNo(qcCheckTaskIncome.getCheckNo()); - user.setCreateBy(createBy); - user.setFactoryCode(factoryCode); - user.setCreateTime(nowDate); - } + qcCheckTaskUserList.add(qcCheckTaskUser); + } + //检验人插入 + qcCheckTaskUserService.insertQcCheckTaskUserPDA(qcCheckTaskUserList); + }else{ + qcCheckTaskIncome.setCheckManName(""); + qcCheckTaskIncome.setCheckManCode(""); + /**qc_user_material取默认检查人**/ + qcCheckTaskIncome.setBelongTo(group.getGroupId()); + users = qcCheckTaskIncomeMapper.getCheckUserBelongStandar(qcCheckTaskIncome); + if(CollectionUtils.isEmpty(users)){ + users = qcCheckTaskIncomeMapper.getCheckUser(qcCheckTaskIncome); + } + for(QcUserMaterialDTO user:users){ + user.setId(IdUtils.fastSimpleUUID()); + user.setBelongTo(beLongId); + user.setCheckNo(qcCheckTaskIncome.getCheckNo()); + user.setCreateBy(createBy); + user.setFactoryCode(factoryCode); + user.setCreateTime(nowDate); + } - int m=qcCheckTaskIncomeMapper.addCheckUsers(users); - logger.info("检查人新增"+m+"成功"); + int m=qcCheckTaskIncomeMapper.addCheckUsers(users); + logger.info("检查人新增"+m+"成功"); + } + /** 不良品数据插入 */ + BigDecimal noOkQuality = new BigDecimal(0); + List defectList = qcCheckTaskIncome.getDefects(); + if (!CollectionUtils.isEmpty(defectList)) { + for (QcCheckTaskDefect defect : defectList) { + defect.setBelongTo(beLongId); + //qcCheckTaskDefectService.insertQcCheckTaskDefect(defect); + noOkQuality = noOkQuality.add(defect.getNoOkQuality()==null?new BigDecimal("0"):defect.getNoOkQuality()); + } + } + qcCheckTaskIncome.setNoOkQuality(noOkQuality); + /**qc_check_task**///------------------zxl + qcCheckTaskIncomeMapper.insertQcCheckTaskIncome(qcCheckTaskIncome); + + /**qc_check_task_detail**/ + for(QcCheckTaskDetail item:items){ + item.setRecordId(IdUtils.fastSimpleUUID()); + item.setBelongTo(beLongId); + item.setCreateTime(nowDate); + item.setCreateBy(createBy); + item.setFactoryCode(factoryCode); + item.setStatus("Y"); + } + int s = qcCheckTaskDetailMapper.addBatch(items); + + //发企业微信--------------------开始 + SysNoticeGroup noticeQo = new SysNoticeGroup(); + noticeQo.setNoticeId(6L); + List notices = qcCheckTaskIncomeMapper.getNoticesGroup(noticeQo); + if(!CollectionUtils.isEmpty(notices)) { + + List wecharts = new ArrayList<>(); + for (SysNoticeGroup noticedto : notices) { + WechartDTO wechart0 = new WechartDTO(); + wechart0.setUserId(noticedto.getWxId()); + String contentInfo = notices.get(0).getNoticeContent(); + contentInfo = contentInfo.replace("${checkNo}", qcCheckTaskIncome.getCheckNo() + "\n"); + Matcher m = p2.matcher(contentInfo); + contentInfo = m.replaceAll(""); + wechart0.setText(contentInfo); + wecharts.add(wechart0); + } + logger.info("来料检验企业微信提醒请求:" + JSONObject.toJSONString(wecharts)); + if (!CollectionUtils.isEmpty(wecharts)) { + CompletableFuture.runAsync(() -> { + System.out.println("异步执行企业微信发送"); + AjaxResult result = remoteOpenService.sendWeChartMessage(wecharts); + logger.info("来料检验企业微信提醒结果:" + JSONObject.toJSONString(result)); + }); + } + //发企业微信--------------------结束 + } + return s; + }finally { + DynamicDataSourceContextHolder.poll(); } - /** 不良品数据插入 */ - BigDecimal noOkQuality = new BigDecimal(0); - List defectList = qcCheckTaskIncome.getDefects(); - if (!CollectionUtils.isEmpty(defectList)) { - for (QcCheckTaskDefect defect : defectList) { - defect.setBelongTo(beLongId); - //qcCheckTaskDefectService.insertQcCheckTaskDefect(defect); - noOkQuality = noOkQuality.add(defect.getNoOkQuality()==null?new BigDecimal("0"):defect.getNoOkQuality()); - } - } - qcCheckTaskIncome.setNoOkQuality(noOkQuality); - /**qc_check_task**///------------------zxl - qcCheckTaskIncomeMapper.insertQcCheckTaskIncome(qcCheckTaskIncome); - /**qc_check_task_detail**/ - for(QcCheckTaskDetail item:items){ - item.setRecordId(IdUtils.fastSimpleUUID()); - item.setBelongTo(beLongId); - item.setCreateTime(nowDate); - item.setCreateBy(createBy); - item.setFactoryCode(factoryCode); - item.setStatus("Y"); - } - int s = qcCheckTaskDetailMapper.addBatch(items); - - //发企业微信--------------------开始 - SysNoticeGroup noticeQo = new SysNoticeGroup(); - noticeQo.setNoticeId(6L); - List notices = qcCheckTaskIncomeMapper.getNoticesGroup(noticeQo); - if(!CollectionUtils.isEmpty(notices)) { - - List wecharts = new ArrayList<>(); - for (SysNoticeGroup noticedto : notices) { - WechartDTO wechart0 = new WechartDTO(); - wechart0.setUserId(noticedto.getWxId()); - String contentInfo = notices.get(0).getNoticeContent(); - contentInfo = contentInfo.replace("${checkNo}", qcCheckTaskIncome.getCheckNo() + "\n"); - Matcher m = p2.matcher(contentInfo); - contentInfo = m.replaceAll(""); - wechart0.setText(contentInfo); - wecharts.add(wechart0); - } - logger.info("来料检验企业微信提醒请求:" + JSONObject.toJSONString(wecharts)); - if (!CollectionUtils.isEmpty(wecharts)) { - CompletableFuture.runAsync(() -> { - System.out.println("异步执行企业微信发送"); - AjaxResult result = remoteOpenService.sendWeChartMessage(wecharts); - logger.info("来料检验企业微信提醒结果:" + JSONObject.toJSONString(result)); - }); - } - //发企业微信--------------------结束 - } - return s; } /** @@ -845,41 +850,46 @@ public class QcCheckTaskIncomeServiceImpl implements if(StringUtils.isNotBlank(income.getFactoryCode())){ DynamicDataSourceContextHolder.push(income.getFactoryCode()); } - String recordIds = income.getRecordId(); - int m = 1; - //检测是否有已经检验的任务 - int checkedNum = qcCheckTaskIncomeMapper.checkedTask("'"+recordIds.replace(",","','")+"'"); - if(checkedNum>0){ - return 2; - } - //供应商、物料、送货日期是否一致 - List checkedInfo = qcCheckTaskIncomeMapper.checkedTaskInfo("'"+recordIds.replace(",","','")+"'"); - if(!CollectionUtils.isEmpty(checkedInfo) && checkedInfo.size()>1){ - return 3; - } - //合并任务,向最新任务合并 - List taskLists = qcCheckTaskIncomeMapper.getTaskList("'"+recordIds.replace(",","','")+"'"); - BigDecimal qua = BigDecimal.ZERO; - String deleteIds = ""; - for(int n=0;n0){ + return 2; } - } - QcCheckTaskIncome lastTask = taskLists.get(0); - lastTask.setQuality(qua); - qcCheckTaskIncomeMapper.updateLastTask(lastTask); + //供应商、物料、送货日期是否一致 + List checkedInfo = qcCheckTaskIncomeMapper.checkedTaskInfo("'"+recordIds.replace(",","','")+"'"); + if(!CollectionUtils.isEmpty(checkedInfo) && checkedInfo.size()>1){ + return 3; + } + //合并任务,向最新任务合并 + List taskLists = qcCheckTaskIncomeMapper.getTaskList("'"+recordIds.replace(",","','")+"'"); + BigDecimal qua = BigDecimal.ZERO; + String deleteIds = ""; + for(int n=0;n implements @Override public List getIncomeBatchList(String poolName) { DynamicDataSourceContextHolder.push(poolName);//这是数据源的key - return qcCheckTaskIncomeMapper.getIncomeBatchList(); + try { + return qcCheckTaskIncomeMapper.getIncomeBatchList(); + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @Override diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java index dd0fdec9e..1653e35f3 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java @@ -484,44 +484,49 @@ public class QcCheckTaskProduceServiceImpl implements IQcCheckTaskProduceService } public void createProduceXJFunc(String poolName){ DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key - ProOrderWorkorderDTO qoWork = new ProOrderWorkorderDTO(); - qoWork.setStatus("w2"); - //活动中 - List w2works = qcCheckTaskProduceMapper.getOrderWorksW2(qoWork); - for(QcCheckTaskProduce productTask:w2works){ - productTask.setCheckType("checkTypeSCXJ");//过程检验-巡检 - productTask.setOrderNo(productTask.getWorkorderCode()); + try { + ProOrderWorkorderDTO qoWork = new ProOrderWorkorderDTO(); + qoWork.setStatus("w2"); + //活动中 + List w2works = qcCheckTaskProduceMapper.getOrderWorksW2(qoWork); + for(QcCheckTaskProduce productTask:w2works){ + productTask.setCheckType("checkTypeSCXJ");//过程检验-巡检 + productTask.setOrderNo(productTask.getWorkorderCode()); - //获取最新一条巡检数据 - QcCheckTaskProduce lastXJ = qcCheckTaskProduceMapper.getLastXJTask(productTask); - if(lastXJ != null ){ - productTask.setProductType(lastXJ.getProductType()); - productTask.setConfirmManCode(lastXJ.getConfirmManCode()); - productTask.setConfirmManName(lastXJ.getConfirmManName()); - productTask.setCreateTime(lastXJ.getCreateTime()); - } - Date nowTime = DateUtils.getNowDate(); - Date startTime = productTask.getCreateTime(); - LocalTime startTime0 = LocalTime.parse("11:30"); - LocalTime endTime0 = LocalTime.parse("12:30"); - LocalTime currentTime = LocalTime.now(); - - if (currentTime.isAfter(startTime0.minusSeconds(1)) && currentTime.isBefore(endTime0.plusSeconds(1))) { - // 当前时间在11:30到12:30之间,不执行任务 - logger.info("++++++++++++过程检验巡检任务生成午间休息++++++++++++++"); - } else { - long mins = 60L; - if(startTime != null){ - mins = DateUtil.between(startTime, nowTime, DateUnit.MINUTE); + //获取最新一条巡检数据 + QcCheckTaskProduce lastXJ = qcCheckTaskProduceMapper.getLastXJTask(productTask); + if(lastXJ != null ){ + productTask.setProductType(lastXJ.getProductType()); + productTask.setConfirmManCode(lastXJ.getConfirmManCode()); + productTask.setConfirmManName(lastXJ.getConfirmManName()); + productTask.setCreateTime(lastXJ.getCreateTime()); } + Date nowTime = DateUtils.getNowDate(); + Date startTime = productTask.getCreateTime(); + LocalTime startTime0 = LocalTime.parse("11:30"); + LocalTime endTime0 = LocalTime.parse("12:30"); + LocalTime currentTime = LocalTime.now(); - if(mins>=60){ - int m = insertQcCheckTaskProduce(productTask); - logger.info("++++++++++++过程检验巡检任务生成" + m + "++++++++++++++"); + if (currentTime.isAfter(startTime0.minusSeconds(1)) && currentTime.isBefore(endTime0.plusSeconds(1))) { + // 当前时间在11:30到12:30之间,不执行任务 + logger.info("++++++++++++过程检验巡检任务生成午间休息++++++++++++++"); + } else { + long mins = 60L; + if(startTime != null){ + mins = DateUtil.between(startTime, nowTime, DateUnit.MINUTE); + } + + if(mins>=60){ + int m = insertQcCheckTaskProduce(productTask); + logger.info("++++++++++++过程检验巡检任务生成" + m + "++++++++++++++"); + } } } + logger.info("++++++++++++" + poolName + "++++过程检验巡检结束++++++++++"); + }finally { + DynamicDataSourceContextHolder.poll(); } - logger.info("++++++++++++" + poolName + "++++过程检验巡检结束++++++++++"); + } public static void main(String args[]) throws ParseException { diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskWarehousingServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskWarehousingServiceImpl.java index e2707a78f..cabcf078f 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskWarehousingServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskWarehousingServiceImpl.java @@ -138,118 +138,118 @@ public class QcCheckTaskWarehousingServiceImpl implements IQcCheckTaskWarehousin @Override //@Transactional(rollbackFor = Exception.class)不能加 public int insertQcCheckTaskWarehousing(QcCheckTaskWarehousing qcCheckTaskWarehousing) { - - if(StringUtils.isNotBlank(qcCheckTaskWarehousing.getFactoryCode())){ - DynamicDataSourceContextHolder.push("ds_"+qcCheckTaskWarehousing.getFactoryCode()); - }else{ - HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); - String key = "#header.poolName"; - qcCheckTaskWarehousing.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_","")); - } - - String bpDD = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, DateUtils.getNowDate()); - int liushuiNum = qcCheckTaskWarehousingMapper.getTodayMaxNum(qcCheckTaskWarehousing); - String liushuiStr = String.format("%04d", liushuiNum); - - String createBy = SecurityUtils.getUsername(); - Date nowDate= DateUtils.getNowDate(); - - String factoryCode = qcCheckTaskWarehousing.getFactoryCode(); - qcCheckTaskWarehousing.setCheckNo(bpDD+liushuiStr); - - /**取检测项**/ - QcCheckTypeProject qctp= new QcCheckTypeProject(); - qctp.setTypeId(qcCheckTaskWarehousing.getCheckType());//生产过程检验 - qctp.setMaterialCode(qcCheckTaskWarehousing.getMaterialCode());//特性 - /**qc_check_type_project**/ - List items = new ArrayList<>(); - List items0 = qcCheckTypeProjectMapper.getTPByTypeMaterial(qctp);//个性 - items.addAll(items0); - /**qc_material_group_detail**/ - QcMaterialGroupDetail group = qcMaterialGroupDetailMapper.getGroupByMaterial(qcCheckTaskWarehousing.getMaterialCode()); - if(group == null){ - group = new QcMaterialGroupDetail(); - QcProjectType initGroup = qcCheckTypeProjectMapper.getProductGroup(qcCheckTaskWarehousing.getMaterialCode()); - if(initGroup != null){//包材共性 - group.setGroupId(initGroup.getGroupId()); - }else {//成品蚊香物料组 - group.setGroupId("3dc0655fea3449c59c76a01cc5b91565"); + try { + if(StringUtils.isNotBlank(qcCheckTaskWarehousing.getFactoryCode())){ + DynamicDataSourceContextHolder.push("ds_"+qcCheckTaskWarehousing.getFactoryCode()); + }else{ + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String key = "#header.poolName"; + qcCheckTaskWarehousing.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_","")); } - } - qctp.setGroupId(group.getGroupId());//共性 - List itemsGG = qcCheckTypeProjectMapper.getTPByTypeGroup(qctp); - items.addAll(itemsGG); - /**qc_check_task_detail**/ - if(CollectionUtils.isEmpty(items)){ - return 0;//没有找到检测项目 - } + String bpDD = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, DateUtils.getNowDate()); + int liushuiNum = qcCheckTaskWarehousingMapper.getTodayMaxNum(qcCheckTaskWarehousing); + String liushuiStr = String.format("%04d", liushuiNum); - /**qc_check_task**/ - String beLongId = IdUtils.fastSimpleUUID(); - qcCheckTaskWarehousing.setRecordId(beLongId); - qcCheckTaskWarehousing.setFactoryCode(factoryCode); - qcCheckTaskWarehousing.setCreateTime(nowDate); - qcCheckTaskWarehousing.setTypeCode("product");//大检验节点 - /**qc_task_user start**/ - if(StringUtils.isNotBlank(qcCheckTaskWarehousing.getCheckManName())){ - String checkManName = qcCheckTaskWarehousing.getCheckManName(); - String checkManCode = qcCheckTaskWarehousing.getCheckManCode(); - qcCheckTaskWarehousing.setCheckManName(""); - qcCheckTaskWarehousing.setCheckManCode(""); - String[] splitNames = checkManName.split(","); - String[] splitCodes = checkManCode.split(","); - List qcCheckTaskUserList = new ArrayList<>(); - for (int i = 0; i < splitNames.length; i++) { - QcCheckTaskUser qcCheckTaskUser = new QcCheckTaskUser(); - qcCheckTaskUser.setCheckManName(splitNames[i]); - qcCheckTaskUser.setCheckManCode(splitCodes[i]); - qcCheckTaskUser.setCheckNo(qcCheckTaskWarehousing.getCheckNo()); - qcCheckTaskUser.setBelongTo(beLongId); - qcCheckTaskUser.setFactoryCode(factoryCode); - qcCheckTaskUserList.add(qcCheckTaskUser); - } - //检验人插入 - qcCheckTaskUserService.insertQcCheckTaskUserPDA(qcCheckTaskUserList); - }else{//上位机触发 - qcCheckTaskWarehousing.setCheckManName(""); - qcCheckTaskWarehousing.setCheckManCode(""); - /**qc_user_material取默认检查人**/ + String createBy = SecurityUtils.getUsername(); + Date nowDate= DateUtils.getNowDate(); - QcCheckTaskIncome qcCheckTaskIncome = new QcCheckTaskIncome(); - qcCheckTaskIncome.setCheckType(qcCheckTaskWarehousing.getCheckType()); - qcCheckTaskIncome.setMaterialCode(qcCheckTaskWarehousing.getMaterialCode()); - qcCheckTaskIncome.setCheckLoc(qcCheckTaskWarehousing.getCheckLoc()); - List users = qcCheckTaskIncomeMapper.getCheckUserBelongLine(qcCheckTaskIncome); - if(CollectionUtils.isEmpty(users)){ - users = qcCheckTaskIncomeMapper.getUserByCheckType(qcCheckTaskWarehousing.getCheckType()); - } - if(!CollectionUtils.isEmpty(users)){ - for(QcUserMaterialDTO user:users){ - user.setId(IdUtils.fastSimpleUUID()); - user.setBelongTo(beLongId); - user.setCheckNo(qcCheckTaskWarehousing.getCheckNo()); - user.setCreateBy(createBy); - user.setFactoryCode(factoryCode); - user.setCreateTime(nowDate); + String factoryCode = qcCheckTaskWarehousing.getFactoryCode(); + qcCheckTaskWarehousing.setCheckNo(bpDD+liushuiStr); + + /**取检测项**/ + QcCheckTypeProject qctp= new QcCheckTypeProject(); + qctp.setTypeId(qcCheckTaskWarehousing.getCheckType());//生产过程检验 + qctp.setMaterialCode(qcCheckTaskWarehousing.getMaterialCode());//特性 + /**qc_check_type_project**/ + List items = new ArrayList<>(); + List items0 = qcCheckTypeProjectMapper.getTPByTypeMaterial(qctp);//个性 + items.addAll(items0); + /**qc_material_group_detail**/ + QcMaterialGroupDetail group = qcMaterialGroupDetailMapper.getGroupByMaterial(qcCheckTaskWarehousing.getMaterialCode()); + if(group == null){ + group = new QcMaterialGroupDetail(); + QcProjectType initGroup = qcCheckTypeProjectMapper.getProductGroup(qcCheckTaskWarehousing.getMaterialCode()); + if(initGroup != null){//包材共性 + group.setGroupId(initGroup.getGroupId()); + }else {//成品蚊香物料组 + group.setGroupId("3dc0655fea3449c59c76a01cc5b91565"); } } + qctp.setGroupId(group.getGroupId());//共性 + List itemsGG = qcCheckTypeProjectMapper.getTPByTypeGroup(qctp); + items.addAll(itemsGG); - /**qc_check_task_user**/ - int m=qcCheckTaskIncomeMapper.addCheckUsers(users); - logger.info("检查人新增"+m+"成功"); - } - /** 不良品数据插入 */ - BigDecimal noOkQuality = new BigDecimal(0); - List defectList = qcCheckTaskWarehousing.getDefects(); - if (!CollectionUtils.isEmpty(defectList)) { - for (QcCheckTaskDefect defect : defectList) { - defect.setBelongTo(beLongId); - //qcCheckTaskDefectService.insertQcCheckTaskDefect(defect); - noOkQuality = noOkQuality.add(defect.getNoOkQuality()==null?new BigDecimal("0"):defect.getNoOkQuality()); + /**qc_check_task_detail**/ + if(CollectionUtils.isEmpty(items)){ + return 0;//没有找到检测项目 } - } - qcCheckTaskWarehousing.setNoOkQuality(noOkQuality); + + /**qc_check_task**/ + String beLongId = IdUtils.fastSimpleUUID(); + qcCheckTaskWarehousing.setRecordId(beLongId); + qcCheckTaskWarehousing.setFactoryCode(factoryCode); + qcCheckTaskWarehousing.setCreateTime(nowDate); + qcCheckTaskWarehousing.setTypeCode("product");//大检验节点 + /**qc_task_user start**/ + if(StringUtils.isNotBlank(qcCheckTaskWarehousing.getCheckManName())){ + String checkManName = qcCheckTaskWarehousing.getCheckManName(); + String checkManCode = qcCheckTaskWarehousing.getCheckManCode(); + qcCheckTaskWarehousing.setCheckManName(""); + qcCheckTaskWarehousing.setCheckManCode(""); + String[] splitNames = checkManName.split(","); + String[] splitCodes = checkManCode.split(","); + List qcCheckTaskUserList = new ArrayList<>(); + for (int i = 0; i < splitNames.length; i++) { + QcCheckTaskUser qcCheckTaskUser = new QcCheckTaskUser(); + qcCheckTaskUser.setCheckManName(splitNames[i]); + qcCheckTaskUser.setCheckManCode(splitCodes[i]); + qcCheckTaskUser.setCheckNo(qcCheckTaskWarehousing.getCheckNo()); + qcCheckTaskUser.setBelongTo(beLongId); + qcCheckTaskUser.setFactoryCode(factoryCode); + qcCheckTaskUserList.add(qcCheckTaskUser); + } + //检验人插入 + qcCheckTaskUserService.insertQcCheckTaskUserPDA(qcCheckTaskUserList); + }else{//上位机触发 + qcCheckTaskWarehousing.setCheckManName(""); + qcCheckTaskWarehousing.setCheckManCode(""); + /**qc_user_material取默认检查人**/ + + QcCheckTaskIncome qcCheckTaskIncome = new QcCheckTaskIncome(); + qcCheckTaskIncome.setCheckType(qcCheckTaskWarehousing.getCheckType()); + qcCheckTaskIncome.setMaterialCode(qcCheckTaskWarehousing.getMaterialCode()); + qcCheckTaskIncome.setCheckLoc(qcCheckTaskWarehousing.getCheckLoc()); + List users = qcCheckTaskIncomeMapper.getCheckUserBelongLine(qcCheckTaskIncome); + if(CollectionUtils.isEmpty(users)){ + users = qcCheckTaskIncomeMapper.getUserByCheckType(qcCheckTaskWarehousing.getCheckType()); + } + if(!CollectionUtils.isEmpty(users)){ + for(QcUserMaterialDTO user:users){ + user.setId(IdUtils.fastSimpleUUID()); + user.setBelongTo(beLongId); + user.setCheckNo(qcCheckTaskWarehousing.getCheckNo()); + user.setCreateBy(createBy); + user.setFactoryCode(factoryCode); + user.setCreateTime(nowDate); + } + } + + /**qc_check_task_user**/ + int m=qcCheckTaskIncomeMapper.addCheckUsers(users); + logger.info("检查人新增"+m+"成功"); + } + /** 不良品数据插入 */ + BigDecimal noOkQuality = new BigDecimal(0); + List defectList = qcCheckTaskWarehousing.getDefects(); + if (!CollectionUtils.isEmpty(defectList)) { + for (QcCheckTaskDefect defect : defectList) { + defect.setBelongTo(beLongId); + //qcCheckTaskDefectService.insertQcCheckTaskDefect(defect); + noOkQuality = noOkQuality.add(defect.getNoOkQuality()==null?new BigDecimal("0"):defect.getNoOkQuality()); + } + } + qcCheckTaskWarehousing.setNoOkQuality(noOkQuality); // //抽样方案 // QcCheckTaskIncome qincome = new QcCheckTaskIncome(); @@ -261,56 +261,60 @@ public class QcCheckTaskWarehousingServiceImpl implements IQcCheckTaskWarehousin // qcCheckTaskWarehousing.setSampleQuality(new BigDecimal(sampleQua.split("-")[1])); // } - /**qc_check_task**/ - qcCheckTaskWarehousing.setIncomeTime(DateUtils.getNowDate());//检验任务日期 - int n = qcCheckTaskWarehousingMapper.insertQcCheckTaskWarehousing(qcCheckTaskWarehousing); - logger.info("qc_check_task:"+n+"成功"); + /**qc_check_task**/ + qcCheckTaskWarehousing.setIncomeTime(DateUtils.getNowDate());//检验任务日期 + int n = qcCheckTaskWarehousingMapper.insertQcCheckTaskWarehousing(qcCheckTaskWarehousing); + logger.info("qc_check_task:"+n+"成功"); - /**qc_check_task_detail**/ - for(QcCheckTaskDetail item:items){ - item.setRecordId(IdUtils.fastSimpleUUID()); - item.setBelongTo(beLongId); - item.setCreateTime(nowDate); - item.setCreateBy(createBy); - item.setFactoryCode(factoryCode); - item.setStatus("Y"); - } - int s = qcCheckTaskDetailMapper.addBatch(items); - - //发企业微信--------------------开始(跟班组有关) - SysNoticeGroup noticeQo = new SysNoticeGroup(); - if(qcCheckTaskWarehousing.getCheckType().equals("checkTypeCP")){ - noticeQo.setNoticeId(7L);//成品检验 - }else if(qcCheckTaskWarehousing.getCheckType().equals("checkTypeCPPC")){ - noticeQo.setNoticeId(12L);//批次成品检验 - } - - List notices = qcCheckTaskIncomeMapper.getNoticesGroup(noticeQo); - if(!CollectionUtils.isEmpty(notices)) { - - List wecharts = new ArrayList<>(); - for (SysNoticeGroup noticedto : notices) { - WechartDTO wechart0 = new WechartDTO(); - wechart0.setUserId(noticedto.getWxId()); - String contentInfo = noticedto.getNoticeContent(); - contentInfo = contentInfo.replace("${checkNo}", qcCheckTaskWarehousing.getCheckNo() + "\n"); - Matcher matcher = p2.matcher(contentInfo); - contentInfo = matcher.replaceAll(""); - wechart0.setText(contentInfo); - wecharts.add(wechart0); + /**qc_check_task_detail**/ + for(QcCheckTaskDetail item:items){ + item.setRecordId(IdUtils.fastSimpleUUID()); + item.setBelongTo(beLongId); + item.setCreateTime(nowDate); + item.setCreateBy(createBy); + item.setFactoryCode(factoryCode); + item.setStatus("Y"); } - logger.info("成品检验企业微信提醒请求:" + JSONObject.toJSONString(wecharts)); - if (!CollectionUtils.isEmpty(wecharts)) { - new Thread(() -> { - AjaxResult wxresult = remoteOpenService.sendWeChartMessage(wecharts); - logger.info("成品检验企业微信提醒结果:" + JSONObject.toJSONString(wxresult)); + int s = qcCheckTaskDetailMapper.addBatch(items); - }).start(); + //发企业微信--------------------开始(跟班组有关) + SysNoticeGroup noticeQo = new SysNoticeGroup(); + if(qcCheckTaskWarehousing.getCheckType().equals("checkTypeCP")){ + noticeQo.setNoticeId(7L);//成品检验 + }else if(qcCheckTaskWarehousing.getCheckType().equals("checkTypeCPPC")){ + noticeQo.setNoticeId(12L);//批次成品检验 } - //发企业微信--------------------结束 + + List notices = qcCheckTaskIncomeMapper.getNoticesGroup(noticeQo); + if(!CollectionUtils.isEmpty(notices)) { + + List wecharts = new ArrayList<>(); + for (SysNoticeGroup noticedto : notices) { + WechartDTO wechart0 = new WechartDTO(); + wechart0.setUserId(noticedto.getWxId()); + String contentInfo = noticedto.getNoticeContent(); + contentInfo = contentInfo.replace("${checkNo}", qcCheckTaskWarehousing.getCheckNo() + "\n"); + Matcher matcher = p2.matcher(contentInfo); + contentInfo = matcher.replaceAll(""); + wechart0.setText(contentInfo); + wecharts.add(wechart0); + } + logger.info("成品检验企业微信提醒请求:" + JSONObject.toJSONString(wecharts)); + if (!CollectionUtils.isEmpty(wecharts)) { + new Thread(() -> { + AjaxResult wxresult = remoteOpenService.sendWeChartMessage(wecharts); + logger.info("成品检验企业微信提醒结果:" + JSONObject.toJSONString(wxresult)); + + }).start(); + } + //发企业微信--------------------结束 + } + logger.info("qc_check_task_detail:"+s+"成功"); + return 1; + }finally { + DynamicDataSourceContextHolder.poll(); } - logger.info("qc_check_task_detail:"+s+"成功"); - return 1; + } /** @@ -421,20 +425,25 @@ public class QcCheckTaskWarehousingServiceImpl implements IQcCheckTaskWarehousin public void createCPFunc(String poolName){ DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key - ProOrderWorkorderDTO qoWork = new ProOrderWorkorderDTO(); - qoWork.setStatus("w3"); - //报工的 - List w3works = qcCheckTaskProduceMapper.getOrderWorksW3(qoWork); - for(QcCheckTaskProduce productTask:w3works){ - QcCheckTaskWarehousing cpTask = new QcCheckTaskWarehousing(); - productTask.setCheckType("checkTypeCP");//入库检验 - productTask.setOrderNo(productTask.getWorkorderCode()); - BeanUtils.copyProperties(productTask,cpTask); + try { + ProOrderWorkorderDTO qoWork = new ProOrderWorkorderDTO(); + qoWork.setStatus("w3"); + //报工的 + List w3works = qcCheckTaskProduceMapper.getOrderWorksW3(qoWork); + for(QcCheckTaskProduce productTask:w3works){ + QcCheckTaskWarehousing cpTask = new QcCheckTaskWarehousing(); + productTask.setCheckType("checkTypeCP");//入库检验 + productTask.setOrderNo(productTask.getWorkorderCode()); + BeanUtils.copyProperties(productTask,cpTask); - int m = insertQcCheckTaskWarehousing(cpTask); - logger.info("++++++++++++入库检验任务生成" + m + "++++++++++++++"); + int m = insertQcCheckTaskWarehousing(cpTask); + logger.info("++++++++++++入库检验任务生成" + m + "++++++++++++++"); + } + logger.info("++++++++++++" + poolName + "++++入库检验巡检结束++++++++++"); + }finally { + DynamicDataSourceContextHolder.poll(); } - logger.info("++++++++++++" + poolName + "++++入库检验巡检结束++++++++++"); + } // //抽样方案 diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeProjectServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeProjectServiceImpl.java index 595a68311..21495de82 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeProjectServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeProjectServiceImpl.java @@ -72,18 +72,23 @@ public class QcCheckTypeProjectServiceImpl implements IQcCheckTypeProjectService public List selectQcCheckTypeProjectList(QcCheckTypeProject qcCheckTypeProject) { List dtos = qcCheckTypeProjectMapper.selectQcCheckTypeProjectList(qcCheckTypeProject); DynamicDataSourceContextHolder.push("master"); - SysDictData sData = new SysDictData(); - sData.setDictType("unit"); - Map dictMap = qcCheckTypeProjectMapper.getDictMap(sData); - if (dictMap != null) { - for (QcCheckTypeProject dto : dtos) { - if (StringUtils.isNotBlank(dto.getUnit())) { - dto.setUnit(dictMap.get(dto.getUnit()).getDictLabel()); - } + try { + SysDictData sData = new SysDictData(); + sData.setDictType("unit"); + Map dictMap = qcCheckTypeProjectMapper.getDictMap(sData); + if (dictMap != null) { + for (QcCheckTypeProject dto : dtos) { + if (StringUtils.isNotBlank(dto.getUnit())) { + dto.setUnit(dictMap.get(dto.getUnit()).getDictLabel()); + } + } } + return dtos; + }finally { + DynamicDataSourceContextHolder.poll(); } - return dtos; + } /** diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeServiceImpl.java index 3f40c8e45..a69777532 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeServiceImpl.java @@ -118,7 +118,12 @@ public class QcCheckTypeServiceImpl implements IQcCheckTypeService { @Override public List getCheckType(QcCheckType qcCheckType) { DynamicDataSourceContextHolder.push(qcCheckType.getFactoryCode());// 这是数据源的key - return qcCheckTypeMapper.selectQcCheckTypeList(qcCheckType); + try { + return qcCheckTypeMapper.selectQcCheckTypeList(qcCheckType); + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @Override diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcInterfaceServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcInterfaceServiceImpl.java index 1585461e6..42c9d0fc4 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcInterfaceServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcInterfaceServiceImpl.java @@ -101,22 +101,31 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService { @Override public List getCheckProjectsPie(QcInterface qcInterface) { DynamicDataSourceContextHolder.push(qcInterface.getFactoryCode()); + try { + String nowYMD = DateUtils.getDate(); + qcInterface.setYmd(nowYMD); + List dtos = qcInterfaceMapper.getCheckProjectsPie1(qcInterface); + return dtos; + }finally { + DynamicDataSourceContextHolder.poll(); + } + - String nowYMD = DateUtils.getDate(); - qcInterface.setYmd(nowYMD); - List dtos = qcInterfaceMapper.getCheckProjectsPie1(qcInterface); - return dtos; } @Override public List getCheckProjectsPieLL(QcInterface qcInterface) { DynamicDataSourceContextHolder.push(qcInterface.getFactoryCode()); + try { + String nowYMD = DateUtils.getDate(); + qcInterface.setYmd(nowYMD); + qcInterface.setCheckType("checkTypeLL"); + List dtos = qcInterfaceMapper.getCheckProjectsPieLL(qcInterface); + return dtos; + }finally { + DynamicDataSourceContextHolder.poll(); + } - String nowYMD = DateUtils.getDate(); - qcInterface.setYmd(nowYMD); - qcInterface.setCheckType("checkTypeLL"); - List dtos = qcInterfaceMapper.getCheckProjectsPieLL(qcInterface); - return dtos; } @Override @@ -192,104 +201,106 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService { @Override public Map getProduceStaticInfo(QcInterface qcInterface) { DynamicDataSourceContextHolder.push(qcInterface.getFactoryCode()); - String nowYMD = DateUtils.getDate(); - qcInterface.setYmd(nowYMD); + try { + String nowYMD = DateUtils.getDate(); + qcInterface.setYmd(nowYMD); - Map dtoMap = new HashMap<>(); - qcInterface.setYmdType("dd"); - QcInterface hz0 = qcInterfaceMapper.getProduceHz1(qcInterface); - if (hz0 != null) { - dtoMap.put("todayPro", hz0.getQuality().replaceAll("\\..*", "")); - }else{ - dtoMap.put("todayPro", "0"); - } - QcInterface hz1 = qcInterfaceMapper.getProduceHz(qcInterface); - if (hz1 != null) { - dtoMap.put("todaySample", hz1.getSampleQuality().replaceAll("\\..*", "")); - dtoMap.put("todayNoOk", hz1.getNoOkQuality().replaceAll("\\..*", "")); - if(!hz1.getSampleQuality().equals("0.00")){ - BigDecimal tOkRate = (new BigDecimal(hz1.getSampleQuality()) - .subtract(new BigDecimal(hz1.getNoOkQuality())) - ) - .multiply(new BigDecimal(100)) - .divide(new BigDecimal(hz1.getSampleQuality()), 2, RoundingMode.HALF_UP); - dtoMap.put("todayOkRate", tOkRate + "%"); + Map dtoMap = new HashMap<>(); + qcInterface.setYmdType("dd"); + QcInterface hz0 = qcInterfaceMapper.getProduceHz1(qcInterface); + if (hz0 != null) { + dtoMap.put("todayPro", hz0.getQuality().replaceAll("\\..*", "")); }else{ - dtoMap.put("todayOkRate", "0%"); + dtoMap.put("todayPro", "0"); + } + QcInterface hz1 = qcInterfaceMapper.getProduceHz(qcInterface); + if (hz1 != null) { + dtoMap.put("todaySample", hz1.getSampleQuality().replaceAll("\\..*", "")); + dtoMap.put("todayNoOk", hz1.getNoOkQuality().replaceAll("\\..*", "")); + if(!hz1.getSampleQuality().equals("0.00")){ + BigDecimal tOkRate = (new BigDecimal(hz1.getSampleQuality()) + .subtract(new BigDecimal(hz1.getNoOkQuality())) + ) + .multiply(new BigDecimal(100)) + .divide(new BigDecimal(hz1.getSampleQuality()), 2, RoundingMode.HALF_UP); + dtoMap.put("todayOkRate", tOkRate + "%"); + }else{ + dtoMap.put("todayOkRate", "0%"); + } + } + qcInterface.setYmdType("mm"); + QcInterface hz20 = qcInterfaceMapper.getProduceHz1(qcInterface); + if (hz20 != null) { + dtoMap.put("monthPro", hz20.getQuality().replaceAll("\\..*", "")); + }else{ + dtoMap.put("monthPro", "0"); + } + QcInterface hz2 = qcInterfaceMapper.getProduceHz(qcInterface); + if (hz2 != null) { + dtoMap.put("monthNoOk", hz2.getNoOkQuality().replaceAll("\\..*", "")); + if(!hz2.getSampleQuality().equals("0.00")){ + BigDecimal tOkRate2 = (new BigDecimal(hz2.getSampleQuality()) + .subtract(new BigDecimal(hz2.getNoOkQuality())) + ) + .multiply(new BigDecimal(100)) + .divide(new BigDecimal(hz2.getSampleQuality()), 2, RoundingMode.HALF_UP); + dtoMap.put("monthOkRate", tOkRate2 + "%"); + }else{ + dtoMap.put("monthOkRate", "0%"); + } + } + return dtoMap; + }finally { + DynamicDataSourceContextHolder.poll(); } - qcInterface.setYmdType("mm"); - QcInterface hz20 = qcInterfaceMapper.getProduceHz1(qcInterface); - if (hz20 != null) { - dtoMap.put("monthPro", hz20.getQuality().replaceAll("\\..*", "")); - }else{ - dtoMap.put("monthPro", "0"); - } - QcInterface hz2 = qcInterfaceMapper.getProduceHz(qcInterface); - if (hz2 != null) { - dtoMap.put("monthNoOk", hz2.getNoOkQuality().replaceAll("\\..*", "")); - if(!hz2.getSampleQuality().equals("0.00")){ - BigDecimal tOkRate2 = (new BigDecimal(hz2.getSampleQuality()) - .subtract(new BigDecimal(hz2.getNoOkQuality())) - ) - .multiply(new BigDecimal(100)) - .divide(new BigDecimal(hz2.getSampleQuality()), 2, RoundingMode.HALF_UP); - dtoMap.put("monthOkRate", tOkRate2 + "%"); - }else{ - dtoMap.put("monthOkRate", "0%"); - } - } -// /**质量看板测试开始**/ -// dtoMap.put("todayPro", "3800"); -// dtoMap.put("todaySample", "50"); -// dtoMap.put("todayNoOk", "2"); -// dtoMap.put("todayOkRate", "96.00%"); -// dtoMap.put("monthPro", "83600"); -// dtoMap.put("monthNoOk", "30"); -// dtoMap.put("monthOkRate", "99.96%"); -// /**质量看板测试结束**/ - return dtoMap; } @Override public List getProduceNoOkList(QcInterface qcInterface) { DynamicDataSourceContextHolder.push(qcInterface.getFactoryCode()); + try { + List dtos = qcInterfaceMapper.getProduceNoOkList1(qcInterface); + return dtos; + }finally { + DynamicDataSourceContextHolder.poll(); + } // String nowYMD = DateUtils.getDate(); // qcInterface.setYmd(nowYMD); // List dtos = qcInterfaceMapper.getProduceNoOkList(qcInterface); - List dtos = qcInterfaceMapper.getProduceNoOkList1(qcInterface); - return dtos; + + } @Override public Map> getProMonthNoOk(QcInterface qcInterface) { DynamicDataSourceContextHolder.push(qcInterface.getFactoryCode()); Map> dtoMap = new HashMap<>(); + try { + String nowYMD = DateUtils.getDate(); + String[] nowYMDs = nowYMD.split("-"); + int nowMonth = Integer.parseInt(nowYMDs[1]); + List monthNames = new ArrayList<>(); - String nowYMD = DateUtils.getDate(); - String[] nowYMDs = nowYMD.split("-"); - int nowMonth = Integer.parseInt(nowYMDs[1]); - List monthNames = new ArrayList<>(); + qcInterface.setYmd(nowYMD); + qcInterface.setYmdType("yyyy"); + Map noOkHzs = qcInterfaceMapper.getYearNoOkHz(qcInterface); + List monthData = new ArrayList<>(); - qcInterface.setYmd(nowYMD); - qcInterface.setYmdType("yyyy"); - Map noOkHzs = qcInterfaceMapper.getYearNoOkHz(qcInterface); - List monthData = new ArrayList<>(); - - for (int mh = 1; mh <= nowMonth; mh++) { - String yyyymm = nowYMDs[0] + "-" + String.format("%02d", mh); - monthNames.add(yyyymm); - if (!CollectionUtils.isEmpty(noOkHzs)&&noOkHzs.get(yyyymm)!=null) { - monthData.add(noOkHzs.get(yyyymm).getNoOkQuality()); - } else { - monthData.add("0"); + for (int mh = 1; mh <= nowMonth; mh++) { + String yyyymm = nowYMDs[0] + "-" + String.format("%02d", mh); + monthNames.add(yyyymm); + if (!CollectionUtils.isEmpty(noOkHzs)&&noOkHzs.get(yyyymm)!=null) { + monthData.add(noOkHzs.get(yyyymm).getNoOkQuality()); + } else { + monthData.add("0"); + } } - } - dtoMap.put("month", monthNames); - dtoMap.put("monthData", monthData); + dtoMap.put("month", monthNames); + dtoMap.put("monthData", monthData); // /**质量看板测试开始**/ // List monthNames0 = new ArrayList<>(); // monthNames0.add("2024-01");monthNames0.add("2024-02");monthNames0.add("2024-03");monthNames0.add("2024-04"); @@ -302,6 +313,10 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService { // dtoMap.put("month", monthNames0); // dtoMap.put("monthData", monthData0); // /**质量看板测试结束**/ + + }finally { + DynamicDataSourceContextHolder.poll(); + } return dtoMap; } @@ -362,82 +377,70 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService { public List getMonthOfYearContrast(QcInterface qcInterface) { DynamicDataSourceContextHolder.push(qcInterface.getFactoryCode()); List dtos = new ArrayList<>(); - - QcInterface nowYM = new QcInterface(); - QcInterface lastYM = new QcInterface(); - String nowYMD = DateUtils.getDate(); - String[] nowYMDs = nowYMD.split("-"); - int nowYear = Integer.parseInt(nowYMDs[0]); - int lastYear = nowYear - 1; - List daystr1 = new ArrayList<>(); - List daystr0 = new ArrayList<>(); - for (int m = 1; m <= 12; m++) { - daystr0.add(lastYear + "-" + String.format("%02d", m)); - daystr1.add(nowYear + "-" + String.format("%02d", m)); - } - lastYM.setDayStr(daystr0); - nowYM.setDayStr(daystr1); - //生产打开 - qcInterface.setYmd("'" + nowYear + "','" + lastYear + "'"); - - Map noOkNum = qcInterfaceMapper.getMothNoOkNum(qcInterface); - if (noOkNum == null) { - return null; - } - - List dataBar0 = new ArrayList<>();//不合规数量 - List dataLine0 = new ArrayList<>();//不合格率 - for (String day0 : daystr0) { - QcInterface last = noOkNum.get(day0); - if (last != null&& !"0.00".equals(last.getQuality())) { - dataBar0.add(last.getNoOkQuality()); - BigDecimal norate0 = new BigDecimal(last.getNoOkQuality()).multiply(new BigDecimal(100)) - .divide(new BigDecimal(last.getQuality()), 2, RoundingMode.HALF_UP); - dataLine0.add(norate0.toString()); - } else { - dataBar0.add("0"); - dataLine0.add("0.00"); + try { + QcInterface nowYM = new QcInterface(); + QcInterface lastYM = new QcInterface(); + String nowYMD = DateUtils.getDate(); + String[] nowYMDs = nowYMD.split("-"); + int nowYear = Integer.parseInt(nowYMDs[0]); + int lastYear = nowYear - 1; + List daystr1 = new ArrayList<>(); + List daystr0 = new ArrayList<>(); + for (int m = 1; m <= 12; m++) { + daystr0.add(lastYear + "-" + String.format("%02d", m)); + daystr1.add(nowYear + "-" + String.format("%02d", m)); } - } + lastYM.setDayStr(daystr0); + nowYM.setDayStr(daystr1); + //生产打开 + qcInterface.setYmd("'" + nowYear + "','" + lastYear + "'"); - List dataBar1 = new ArrayList<>();//不合规数量 - List dataLine1 = new ArrayList<>();//不合格率 - for (String day1 : daystr1) { - QcInterface now = noOkNum.get(day1); - if (now != null && !"0.00".equals(now.getQuality())) { - dataBar1.add(now.getNoOkQuality()); - BigDecimal norate0 = new BigDecimal(now.getNoOkQuality()).multiply(new BigDecimal(100)) - .divide(new BigDecimal(now.getQuality()), 2, RoundingMode.HALF_UP); - dataLine1.add(norate0.toString()); - } else { - dataBar1.add("0"); - dataLine1.add("0.00"); + Map noOkNum = qcInterfaceMapper.getMothNoOkNum(qcInterface); + if (noOkNum == null) { + return null; } + + List dataBar0 = new ArrayList<>();//不合规数量 + List dataLine0 = new ArrayList<>();//不合格率 + for (String day0 : daystr0) { + QcInterface last = noOkNum.get(day0); + if (last != null&& !"0.00".equals(last.getQuality())) { + dataBar0.add(last.getNoOkQuality()); + BigDecimal norate0 = new BigDecimal(last.getNoOkQuality()).multiply(new BigDecimal(100)) + .divide(new BigDecimal(last.getQuality()), 2, RoundingMode.HALF_UP); + dataLine0.add(norate0.toString()); + } else { + dataBar0.add("0"); + dataLine0.add("0.00"); + } + } + + List dataBar1 = new ArrayList<>();//不合规数量 + List dataLine1 = new ArrayList<>();//不合格率 + for (String day1 : daystr1) { + QcInterface now = noOkNum.get(day1); + if (now != null && !"0.00".equals(now.getQuality())) { + dataBar1.add(now.getNoOkQuality()); + BigDecimal norate0 = new BigDecimal(now.getNoOkQuality()).multiply(new BigDecimal(100)) + .divide(new BigDecimal(now.getQuality()), 2, RoundingMode.HALF_UP); + dataLine1.add(norate0.toString()); + } else { + dataBar1.add("0"); + dataLine1.add("0.00"); + } + } + + lastYM.setDataBarArrays(dataBar0); + lastYM.setDataLineArrays(dataLine0); + + nowYM.setDataBarArrays(dataBar1); + nowYM.setDataLineArrays(dataLine1); + + dtos.add(lastYM); + dtos.add(nowYM); + }finally { + DynamicDataSourceContextHolder.poll(); } -// /**质量看板测试开始**/ -// List dataBar0 = new ArrayList<>();//不合规数量 -// List dataLine0 = new ArrayList<>();//不合格率 -// List dataBar1 = new ArrayList<>();//不合规数量 -// List dataLine1 = new ArrayList<>();//不合格率 -// dataBar0.add("4");dataBar0.add("9");dataBar0.add("7");dataBar0.add("13");dataBar0.add("11");dataBar0.add("7"); -// dataBar0.add("8");dataBar0.add("4");dataBar0.add("5");dataBar0.add("2");dataBar0.add("10");dataBar0.add("6"); -// dataBar1.add("3");dataBar1.add("14");dataBar1.add("17");dataBar1.add("3");dataBar1.add("9");dataBar1.add("3"); -// dataBar1.add("8");dataBar1.add("5");dataBar1.add("4");dataBar1.add("2");dataBar1.add("9");dataBar1.add("5"); -// -// dataLine0.add("1");dataLine0.add("2");dataLine0.add("0.5");dataLine0.add("0.9");dataLine0.add("1");dataLine0.add("1.9"); -// dataLine0.add("1.1");dataLine0.add("1");dataLine0.add("0.7");dataLine0.add("0.9");dataLine0.add("1.5");dataLine0.add("1.3"); -// dataLine1.add("0.5");dataLine1.add("1.5");dataLine1.add("0.9");dataLine1.add("1");dataLine1.add("0.7");dataLine1.add("1.9"); -// dataLine1.add("1.4");dataLine1.add("0.5");dataLine1.add("0.9");dataLine1.add("1");dataLine1.add("1.3");dataLine1.add("1.2"); -// /**质量看板测试结束**/ - - lastYM.setDataBarArrays(dataBar0); - lastYM.setDataLineArrays(dataLine0); - - nowYM.setDataBarArrays(dataBar1); - nowYM.setDataLineArrays(dataLine1); - - dtos.add(lastYM); - dtos.add(nowYM); return dtos; } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProCheckServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProCheckServiceImpl.java index 5cacf318e..a5bdea7c7 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProCheckServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProCheckServiceImpl.java @@ -129,7 +129,12 @@ public class QcProCheckServiceImpl implements QcProCheckService { @Override public List getEquipmentList(QcProCheck qcProCheck) { DynamicDataSourceContextHolder.push("ds_" + qcProCheck.getFactoryCode()); - return qcProCheckMapper.getEquipmentList(qcProCheck); + try { + return qcProCheckMapper.getEquipmentList(qcProCheck); + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @Override @@ -211,42 +216,47 @@ public class QcProCheckServiceImpl implements QcProCheckService { @Override public QcCheckTaskIncome getCheckTaskDetailListCg(QcCheckTaskDetail qcCheckTaskDetail) { DynamicDataSourceContextHolder.push(qcCheckTaskDetail.getFactoryCode()); - QcCheckTaskIncome dto = qcCheckTaskIncomeMapper.getTaskInfoCg(qcCheckTaskDetail.getBelongTo()); - if (dto == null) { - return null; - } - List qcCheckTaskDetails = qcCheckTaskIncomeMapper.getCkeckProjectList(qcCheckTaskDetail); - /**qc_check_task_defect**/ - Map defectMap = qcCheckTaskDefectMapper.getDefectMap(qcCheckTaskDetail); + try { + QcCheckTaskIncome dto = qcCheckTaskIncomeMapper.getTaskInfoCg(qcCheckTaskDetail.getBelongTo()); + if (dto == null) { + return null; + } + List qcCheckTaskDetails = qcCheckTaskIncomeMapper.getCkeckProjectList(qcCheckTaskDetail); + /**qc_check_task_defect**/ + Map defectMap = qcCheckTaskDefectMapper.getDefectMap(qcCheckTaskDetail); - for (QcCheckTaskDetail qcd : qcCheckTaskDetails) { - if(StringUtils.isNotBlank(qcd.getSampleQuality())){ - qcd.setSampleQuality(qcd.getSampleQuality().replaceAll("\\..*", ""));//去掉小数 + for (QcCheckTaskDetail qcd : qcCheckTaskDetails) { + if(StringUtils.isNotBlank(qcd.getSampleQuality())){ + qcd.setSampleQuality(qcd.getSampleQuality().replaceAll("\\..*", ""));//去掉小数 + } + + + List files = qmsFileMapper.getBaseFileBatch(qcd.getRecordId()); + if (CollectionUtils.isNotEmpty(files)) { + qcd.setFiles(files); + } + + QcCheckTaskDefect defectInfo = defectMap.get(qcd.getRecordId()); + if(defectInfo != null){ + qcd.setDefectCodes(defectInfo.getDefectCodes()); + qcd.setDefectNames(defectInfo.getDefectNames()); + qcd.setDefectQualitys(defectInfo.getDefectQualitys()); + qcd.setClassTypeCodes(defectInfo.getClassId()); + } } - - List files = qmsFileMapper.getBaseFileBatch(qcd.getRecordId()); - if (CollectionUtils.isNotEmpty(files)) { - qcd.setFiles(files); + dto.setQcCheckTaskDetails(qcCheckTaskDetails); + List defects = qcCheckTaskIncomeMapper.getCkeckDefectList(qcCheckTaskDetail); + if (CollectionUtils.isEmpty(defects)) { + defects = qcCheckTaskIncomeMapper.getDefectType(qcCheckTaskDetail); } + dto.setDefects(defects); - QcCheckTaskDefect defectInfo = defectMap.get(qcd.getRecordId()); - if(defectInfo != null){ - qcd.setDefectCodes(defectInfo.getDefectCodes()); - qcd.setDefectNames(defectInfo.getDefectNames()); - qcd.setDefectQualitys(defectInfo.getDefectQualitys()); - qcd.setClassTypeCodes(defectInfo.getClassId()); - } + return dto; + }finally { + DynamicDataSourceContextHolder.poll(); } - dto.setQcCheckTaskDetails(qcCheckTaskDetails); - List defects = qcCheckTaskIncomeMapper.getCkeckDefectList(qcCheckTaskDetail); - if (CollectionUtils.isEmpty(defects)) { - defects = qcCheckTaskIncomeMapper.getDefectType(qcCheckTaskDetail); - } - dto.setDefects(defects); - - return dto; } @Override @@ -314,7 +324,12 @@ public class QcProCheckServiceImpl implements QcProCheckService { @Override public String getWeightInfo(QcCheckTaskDetail qcCheckTaskDetail) { DynamicDataSourceContextHolder.push(qcCheckTaskDetail.getFactoryCode()); - return qcProCheckMapper.getWeightInfo(qcCheckTaskDetail); + try { + return qcProCheckMapper.getWeightInfo(qcCheckTaskDetail); + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @Override @@ -323,52 +338,57 @@ public class QcProCheckServiceImpl implements QcProCheckService { if(StringUtils.isNotBlank(qcCheckTaskDetail.getFactoryCode())){ DynamicDataSourceContextHolder.push(qcCheckTaskDetail.getFactoryCode()); } - QcCheckTaskDetail dto = new QcCheckTaskDetail(); + try { + QcCheckTaskDetail dto = new QcCheckTaskDetail(); - QcCheckTaskIncome qincome = new QcCheckTaskIncome(); - qincome.setQuality(new BigDecimal(qcCheckTaskDetail.getSampleQuality())); - qincome.setCheckLevel(qcCheckTaskDetail.getCheckLevel()); - String sampleQuaStr = qcCheckTaskIncomeMapper.getSampleQua(qincome); - if(StringUtils.isNotBlank(sampleQuaStr)){ - dto.setSampleCode(sampleQuaStr.split("-")[0]); - dto.setSampleQuality(sampleQuaStr.split("-")[1]); - } - qincome.setSampleAql(qcCheckTaskDetail.getSampleAql()); - qincome.setSampleCode(dto.getSampleCode()); - Integer nookstandar = qcCheckTaskIncomeMapper.getnoOkVals(qincome); - if(nookstandar == null){ + QcCheckTaskIncome qincome = new QcCheckTaskIncome(); + qincome.setQuality(new BigDecimal(qcCheckTaskDetail.getSampleQuality())); + qincome.setCheckLevel(qcCheckTaskDetail.getCheckLevel()); + String sampleQuaStr = qcCheckTaskIncomeMapper.getSampleQua(qincome); + if(StringUtils.isNotBlank(sampleQuaStr)){ + dto.setSampleCode(sampleQuaStr.split("-")[0]); + dto.setSampleQuality(sampleQuaStr.split("-")[1]); + } + qincome.setSampleAql(qcCheckTaskDetail.getSampleAql()); + qincome.setSampleCode(dto.getSampleCode()); + Integer nookstandar = qcCheckTaskIncomeMapper.getnoOkVals(qincome); + if(nookstandar == null){ + return dto; + } + String status = "N"; + int nookNum = 0; + for(String aValue:qcCheckTaskDetail.getActualValues()){ + if(aValue.indexOf(":")>0&&StringUtils.isNotBlank(aValue.split(":")[1])){ + aValue = aValue.split(":")[1]; + }else{ + aValue = "0"; + } + + + if(qcCheckTaskDetail.getUpperDiff()!=null && qcCheckTaskDetail.getDownDiff()!=null + && qcCheckTaskDetail.getDownDiff().compareTo(new BigDecimal(aValue)) < 1 + && qcCheckTaskDetail.getUpperDiff().compareTo(new BigDecimal(aValue)) >=0){ + System.out.println("Y"); + }else if(qcCheckTaskDetail.getUpperDiff()==null && qcCheckTaskDetail.getDownDiff()!=null + && qcCheckTaskDetail.getDownDiff().compareTo(new BigDecimal(aValue)) < 1){ + System.out.println("Y"); + }else if(qcCheckTaskDetail.getUpperDiff()!=null && qcCheckTaskDetail.getDownDiff()==null + && qcCheckTaskDetail.getUpperDiff().compareTo(new BigDecimal(aValue)) >=0){ + System.out.println("Y"); + }else{ + System.out.println("N"); + ++nookNum; + } + } + if(nookNum<=nookstandar.intValue()){ + status = "Y"; + } + dto.setStatus(status); return dto; + }finally { + DynamicDataSourceContextHolder.poll(); } - String status = "N"; - int nookNum = 0; - for(String aValue:qcCheckTaskDetail.getActualValues()){ - if(aValue.indexOf(":")>0&&StringUtils.isNotBlank(aValue.split(":")[1])){ - aValue = aValue.split(":")[1]; - }else{ - aValue = "0"; - } - - if(qcCheckTaskDetail.getUpperDiff()!=null && qcCheckTaskDetail.getDownDiff()!=null - && qcCheckTaskDetail.getDownDiff().compareTo(new BigDecimal(aValue)) < 1 - && qcCheckTaskDetail.getUpperDiff().compareTo(new BigDecimal(aValue)) >=0){ - System.out.println("Y"); - }else if(qcCheckTaskDetail.getUpperDiff()==null && qcCheckTaskDetail.getDownDiff()!=null - && qcCheckTaskDetail.getDownDiff().compareTo(new BigDecimal(aValue)) < 1){ - System.out.println("Y"); - }else if(qcCheckTaskDetail.getUpperDiff()!=null && qcCheckTaskDetail.getDownDiff()==null - && qcCheckTaskDetail.getUpperDiff().compareTo(new BigDecimal(aValue)) >=0){ - System.out.println("Y"); - }else{ - System.out.println("N"); - ++nookNum; - } - } - if(nookNum<=nookstandar.intValue()){ - status = "Y"; - } - dto.setStatus(status); - return dto; } public static void main(String args[]){ int m = 0; diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckReportIncomeMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckReportIncomeMapper.xml index c6e089665..dd78ae582 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckReportIncomeMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckReportIncomeMapper.xml @@ -102,7 +102,7 @@ qct.quality, qct.unit,qct.supplier_code, qct.supplier_name, qct.income_time, qct.check_loc, qct.check_status, qct.check_man_code, qct.check_man_name, qct.check_time, qct.check_result, qct.status, qct.check_type, qct.attr1, qct.attr2, qct.attr3, qct.attr4, - qct.create_by, qct.create_time, qct.update_by, qct.update_time, + qct.create_by, qct.create_time, qct.update_by, qct.update_time,qct.remark, qct.factory_code, qct.del_flag,qct.reason,qct.product_type,qct.order_type,bp.product_group_name,qct.jgy,qct.pgy,qct.cxzz, ISNULL(bp.mvgr5, '09JS08S-048B') standardNo from qc_check_task qct diff --git a/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java b/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java index bf3004cde..01217e5d0 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java @@ -222,37 +222,42 @@ public class SapController extends BaseController { @PostMapping("/sapSupplierSync") @Log(title = "供应商主数据", businessType = BusinessType.SAP) public R sapSupplierSync() { - SapSupplierQuery sapSupplierQuery = new SapSupplierQuery(); - // 加载sf-cloud库的sys_datasource - SysUser sysUser = new SysUser(); - sysUser.setUserId(1L); - R>> dateSources0 = remoteUserService.getPoolNameList(sysUser); - List> dateSources = dateSources0.getData(); - dateSources.forEach(dateSource -> { - logger.info("++++++++++++" + dateSource.get("poolName") + "++++供应商主数据开始++++++++++"); - DynamicDataSourceContextHolder.push(dateSource.get("poolName"));// 这是数据源的key - sapSupplierQuery.setBukrs(dateSource.get("poolName").replace("ds_", ""));//工厂 - Date maxTime0 = sapBomMapper.getSupplierMaxTime(); - if (maxTime0 != null) { - Calendar calendar = Calendar.getInstance(); - calendar.setTime(maxTime0); - calendar.add(Calendar.DAY_OF_YEAR, 1); - Date maxTime = calendar.getTime(); - sapSupplierQuery.setErdat(DateFormatUtils.format(maxTime, "yyyyMMdd"));//修改日期20230923 - } - - R r = sapWorkCenterService.sapSupplierSync(sapSupplierQuery); - if (r.getCode() == 200) { - List dtos = (List) r.getData(); - if (!CollectionUtils.isEmpty(dtos)) { - sapWorkCenterService.syncSupplier(dtos); + try { + SapSupplierQuery sapSupplierQuery = new SapSupplierQuery(); + // 加载sf-cloud库的sys_datasource + SysUser sysUser = new SysUser(); + sysUser.setUserId(1L); + R>> dateSources0 = remoteUserService.getPoolNameList(sysUser); + List> dateSources = dateSources0.getData(); + dateSources.forEach(dateSource -> { + logger.info("++++++++++++" + dateSource.get("poolName") + "++++供应商主数据开始++++++++++"); + DynamicDataSourceContextHolder.push(dateSource.get("poolName"));// 这是数据源的key + sapSupplierQuery.setBukrs(dateSource.get("poolName").replace("ds_", ""));//工厂 + Date maxTime0 = sapBomMapper.getSupplierMaxTime(); + if (maxTime0 != null) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(maxTime0); + calendar.add(Calendar.DAY_OF_YEAR, 1); + Date maxTime = calendar.getTime(); + sapSupplierQuery.setErdat(DateFormatUtils.format(maxTime, "yyyyMMdd"));//修改日期20230923 } - } else { - logger.error("++++++++++++" + dateSource.get("poolName") + "错误信息:" + r.getMsg()); - } - logger.error("++++++++++++" + dateSource.get("poolName") + "++++供应商主数据结束++++++++++"); - }); + R r = sapWorkCenterService.sapSupplierSync(sapSupplierQuery); + if (r.getCode() == 200) { + List dtos = (List) r.getData(); + if (!CollectionUtils.isEmpty(dtos)) { + sapWorkCenterService.syncSupplier(dtos); + } + + } else { + logger.error("++++++++++++" + dateSource.get("poolName") + "错误信息:" + r.getMsg()); + } + logger.error("++++++++++++" + dateSource.get("poolName") + "++++供应商主数据结束++++++++++"); + }); + }finally { + DynamicDataSourceContextHolder.poll(); + } + return R.ok(); } diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/OADataInterfaceServiceImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/OADataInterfaceServiceImpl.java index 1fa09dfbe..39ab9999b 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/OADataInterfaceServiceImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/OADataInterfaceServiceImpl.java @@ -22,6 +22,11 @@ public class OADataInterfaceServiceImpl implements OADataInterfaceService { @Override public Map selectOAUserByEmployeeID(String id) { DynamicDataSourceContextHolder.push("slave");// 这是数据源的key - return oaDataInterfaceMapper.selectOAUserByEmployeeID(id); + try { + return oaDataInterfaceMapper.selectOAUserByEmployeeID(id); + }finally { + DynamicDataSourceContextHolder.poll(); + } + } } diff --git a/op-modules/op-system/src/main/java/com/op/system/service/impl/SysPostServiceImpl.java b/op-modules/op-system/src/main/java/com/op/system/service/impl/SysPostServiceImpl.java index e8dd5c85e..d11c05bbb 100644 --- a/op-modules/op-system/src/main/java/com/op/system/service/impl/SysPostServiceImpl.java +++ b/op-modules/op-system/src/main/java/com/op/system/service/impl/SysPostServiceImpl.java @@ -182,32 +182,36 @@ public class SysPostServiceImpl implements ISysPostService { @Override public R sysPostInfoTask() { DynamicDataSourceContextHolder.push("master");// 这是数据源的key + try { + Date maxTime0 = postMapper.getMaxTime(); + if(maxTime0 != null){ + Calendar calendar = Calendar.getInstance(); + calendar.setTime(maxTime0); + calendar.add(Calendar.DAY_OF_YEAR, 1); + Date maxTime = calendar.getTime(); + String ymd = DateFormatUtils.format(maxTime, "yyyy-MM-dd");//yyyy-MM-dd + log.info("更新岗位-参数:"+ ymd); + AjaxResult hrR = remoteOpenService.GetHrPostInfo(); + log.info("更新岗位-结果:"+ hrR.get("data")); + List infoList = new ArrayList(); + if((int)hrR.get("code")==200){ + //code=200 获取成功 + infoList = JSONArray.parseArray(JSONObject.toJSONString(hrR.get("data")),com.op.system.api.domain.quality.HRPostInfo.class); + log.info(String.valueOf(infoList)); + if(!CollectionUtils.isEmpty(infoList)){ + this.sysPostInfoFunc(infoList); + } - Date maxTime0 = postMapper.getMaxTime(); - if(maxTime0 != null){ - Calendar calendar = Calendar.getInstance(); - calendar.setTime(maxTime0); - calendar.add(Calendar.DAY_OF_YEAR, 1); - Date maxTime = calendar.getTime(); - String ymd = DateFormatUtils.format(maxTime, "yyyy-MM-dd");//yyyy-MM-dd - log.info("更新岗位-参数:"+ ymd); - AjaxResult hrR = remoteOpenService.GetHrPostInfo(); - log.info("更新岗位-结果:"+ hrR.get("data")); - List infoList = new ArrayList(); - if((int)hrR.get("code")==200){ - //code=200 获取成功 - infoList = JSONArray.parseArray(JSONObject.toJSONString(hrR.get("data")),com.op.system.api.domain.quality.HRPostInfo.class); - log.info(String.valueOf(infoList)); - if(!CollectionUtils.isEmpty(infoList)){ - this.sysPostInfoFunc(infoList); + }else{ + log.info("无最新需要更新的岗位数据"); + return R.fail("无最新需要更新的岗位数据"); } - - }else{ - log.info("无最新需要更新的岗位数据"); - return R.fail("无最新需要更新的岗位数据"); } + }finally { + DynamicDataSourceContextHolder.poll(); } + return R.ok(); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java index d2d275049..e189a9749 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java @@ -460,58 +460,61 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { public String DesignatedPalletOutbound(WMSDesignatedPalle wmsDesignatedPalle) { DynamicDataSourceContextHolder.push("ds_" + wmsDesignatedPalle.getFactoryCode()); String result = ""; - if ("1".equals(wmsDesignatedPalle.getType())) {//类型1是托盘出库,2是空托出库计划下发 - String meg = DesignatedPalletOutboundWCS(wmsDesignatedPalle); - if ("OK".equals(meg)) {//成功 rfidNo - WmsToWCSDTO wcsdto = new WmsToWCSDTO(); - wcsdto.setRfidNo(wmsDesignatedPalle.getRfidNo()); - WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn = wmsOdsMateStorageNewsSnMapper.selectwmsRfidNotwo(wcsdto); - WCSInventoryPlan wcsInventoryPlan = new WCSInventoryPlan(); - wcsInventoryPlan.setSku(wmsOdsMateStorageNewsSn.getMaterialCode()); - WmsOdsMateStorageNews wmsOdsMateStorageNews = wmsOdsMateStorageNewsMapper.selectBaseProductByCode(wcsInventoryPlan); + try { + if ("1".equals(wmsDesignatedPalle.getType())) {//类型1是托盘出库,2是空托出库计划下发 + String meg = DesignatedPalletOutboundWCS(wmsDesignatedPalle); + if ("OK".equals(meg)) {//成功 rfidNo + WmsToWCSDTO wcsdto = new WmsToWCSDTO(); + wcsdto.setRfidNo(wmsDesignatedPalle.getRfidNo()); + WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn = wmsOdsMateStorageNewsSnMapper.selectwmsRfidNotwo(wcsdto); + WCSInventoryPlan wcsInventoryPlan = new WCSInventoryPlan(); + wcsInventoryPlan.setSku(wmsOdsMateStorageNewsSn.getMaterialCode()); + WmsOdsMateStorageNews wmsOdsMateStorageNews = wmsOdsMateStorageNewsMapper.selectBaseProductByCode(wcsInventoryPlan); - OdsProcureOutOrder odsProcureOutOrder = new OdsProcureOutOrder(); - odsProcureOutOrder.setID(IdUtils.fastSimpleUUID()); + OdsProcureOutOrder odsProcureOutOrder = new OdsProcureOutOrder(); + odsProcureOutOrder.setID(IdUtils.fastSimpleUUID()); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date date = new Date(); + String formattedDate = dateFormat.format(date); + odsProcureOutOrder.setProduceCode("DE" + formattedDate); + odsProcureOutOrder.setMaterialCode(wmsOdsMateStorageNewsSn.getMaterialCode()); + odsProcureOutOrder.setMaterialDesc(wmsOdsMateStorageNewsSn.getMaterialDesc()); + odsProcureOutOrder.setPlanDate(new Date()); + odsProcureOutOrder.setUnit(wmsOdsMateStorageNews.getUserDefined1()); + odsProcureOutOrder.setProductionLineCode(wmsDesignatedPalle.getLocation()); + odsProcureOutOrder.setUserDefined1(formattedDate); + odsProcureOutOrder.setActive("1"); + odsProcureOutOrder.setOrderStatus("1"); + odsProcureOutOrder.setPlanNumber(wmsOdsMateStorageNewsSn.getAmount()); + odsProcureOutOrder.setUserDefined2("00001");//行项目 + //odsProcureOutOrder.set + odsProcureOutOrderMapper.insertOdsProcureOutOrder(odsProcureOutOrder); + result = "操作成功"; + return result; + } + } else { + OrderLine orderLine = new OrderLine(); + orderLine.setWarehouseNo("WH02"); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(); String formattedDate = dateFormat.format(date); - odsProcureOutOrder.setProduceCode("DE" + formattedDate); - odsProcureOutOrder.setMaterialCode(wmsOdsMateStorageNewsSn.getMaterialCode()); - odsProcureOutOrder.setMaterialDesc(wmsOdsMateStorageNewsSn.getMaterialDesc()); - odsProcureOutOrder.setPlanDate(new Date()); - odsProcureOutOrder.setUnit(wmsOdsMateStorageNews.getUserDefined1()); - odsProcureOutOrder.setProductionLineCode(wmsDesignatedPalle.getLocation()); - odsProcureOutOrder.setUserDefined1(formattedDate); - odsProcureOutOrder.setActive("1"); - odsProcureOutOrder.setOrderStatus("1"); - odsProcureOutOrder.setPlanNumber(wmsOdsMateStorageNewsSn.getAmount()); - odsProcureOutOrder.setUserDefined2("00001");//行项目 - //odsProcureOutOrder.set - odsProcureOutOrderMapper.insertOdsProcureOutOrder(odsProcureOutOrder); - result = "操作成功"; - return result; - } - } else { - OrderLine orderLine = new OrderLine(); - orderLine.setWarehouseNo("WH02"); - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - Date date = new Date(); - String formattedDate = dateFormat.format(date); - orderLine.setOrderNo(formattedDate);//,如果是空托盘垛的需求可以随机生成一个 - List list = new ArrayList<>(); - Integer orderItem = 1; - OrderLine orderLine1 = new OrderLine(); - orderLine1.setOrderLineNo(String.format("%05d", orderItem)); - orderLine1.setSku(wmsDesignatedPalle.getRfidNo()); - list.add(orderLine1); - orderLine.setList(list); - String message = addPurchaseOrderOutboundTwoWCS(orderLine); - if ("OK".equals(message)) {//成功 - result = "操作成功"; - return result; + orderLine.setOrderNo(formattedDate);//,如果是空托盘垛的需求可以随机生成一个 + List list = new ArrayList<>(); + Integer orderItem = 1; + OrderLine orderLine1 = new OrderLine(); + orderLine1.setOrderLineNo(String.format("%05d", orderItem)); + orderLine1.setSku(wmsDesignatedPalle.getRfidNo()); + list.add(orderLine1); + orderLine.setList(list); + String message = addPurchaseOrderOutboundTwoWCS(orderLine); + if ("OK".equals(message)) {//成功 + result = "操作成功"; + return result; + } } + }finally { + DynamicDataSourceContextHolder.poll(); } - return result; } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutTrayServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutTrayServiceImpl.java index 6a8185c71..b0b72c7ba 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutTrayServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutTrayServiceImpl.java @@ -71,7 +71,12 @@ public class WmsProductPutTrayServiceImpl implements IWmsProductPutTrayService { public List selectWmsProductPutTrayList(WmsProductPutTray wmsProductPutTray) { //todo 需要修改 DynamicDataSourceContextHolder.push("ds_1000"); - return wmsProductPutTrayMapper.selectWmsProductPutTrayList(wmsProductPutTray); + try { + return wmsProductPutTrayMapper.selectWmsProductPutTrayList(wmsProductPutTray); + }finally { + DynamicDataSourceContextHolder.poll(); + } + } /** diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsSellOutEmbryoServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsSellOutEmbryoServiceImpl.java index b02c25807..58490a1b9 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsSellOutEmbryoServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsSellOutEmbryoServiceImpl.java @@ -91,8 +91,13 @@ public class WmsSellOutEmbryoServiceImpl implements IWmsSellOutEmbryoService { public int updateWmsSellOutEmbryo(WmsSellOutEmbryo wmsSellOutEmbryo) { //todo 需要修改 DynamicDataSourceContextHolder.push("ds_1000"); - wmsSellOutEmbryo.setUpdateTime(DateUtils.getNowDate()); - return wmsSellOutEmbryoMapper.updateWmsSellOutEmbryo(wmsSellOutEmbryo); + try { + wmsSellOutEmbryo.setUpdateTime(DateUtils.getNowDate()); + return wmsSellOutEmbryoMapper.updateWmsSellOutEmbryo(wmsSellOutEmbryo); + }finally { + DynamicDataSourceContextHolder.poll(); + } + } /** @@ -145,10 +150,14 @@ public class WmsSellOutEmbryoServiceImpl implements IWmsSellOutEmbryoService { public WmsSellOutEmbryo selectWmsSellOutEmbryoByOrderCodeAndProductCode(String deliveryOrder, String productCode) { //todo 需要修改 DynamicDataSourceContextHolder.push("ds_1000"); - ValueOperations opsForValue = redisTemplate.opsForValue(); - opsForValue.set("deliveryOrder", deliveryOrder); - opsForValue.set("productCode", productCode); - return wmsSellOutEmbryoMapper.selectWmsSellOutEmbryoByOrderCodeAndProductCode(deliveryOrder, productCode); + try { + ValueOperations opsForValue = redisTemplate.opsForValue(); + opsForValue.set("deliveryOrder", deliveryOrder); + opsForValue.set("productCode", productCode); + return wmsSellOutEmbryoMapper.selectWmsSellOutEmbryoByOrderCodeAndProductCode(deliveryOrder, productCode); + }finally { + DynamicDataSourceContextHolder.poll(); + } } @Override