diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteDeviceService.java b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteDeviceService.java index 11d8c2f4c..bd25abe99 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteDeviceService.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteDeviceService.java @@ -3,10 +3,13 @@ package com.op.system.api; import com.op.common.core.constant.ServiceNameConstants; import com.op.common.core.domain.R; import com.op.system.api.domain.DataSourcePropertyDTO; +import com.op.system.api.domain.device.DeviceRepairOrder; +import com.op.system.api.domain.device.EquRepairOrderDTO; import com.op.system.api.domain.device.WorkOrderTangentDTO; import com.op.system.api.factory.RemoteDeviceFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import java.util.List; @@ -46,4 +49,9 @@ public interface RemoteDeviceService { //切线后创建当日新的点检工单 @PostMapping("/deviceTask/createSpotCheckWorkOrder") public R createSpotCheckWorkOrder(@RequestBody WorkOrderTangentDTO workOrderTangentDTO); + + //设备报修审核远程服务调用 + + @PostMapping("/faultReport/check") + public R check(@RequestBody DeviceRepairOrder deviceRepairOrder); } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteDeviceFallbackFactory.java b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteDeviceFallbackFactory.java index b36bf7cf7..da994c059 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteDeviceFallbackFactory.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteDeviceFallbackFactory.java @@ -3,6 +3,8 @@ package com.op.system.api.factory; import com.op.common.core.domain.R; import com.op.system.api.RemoteDeviceService; import com.op.system.api.domain.DataSourcePropertyDTO; +import com.op.system.api.domain.device.DeviceRepairOrder; +import com.op.system.api.domain.device.EquRepairOrderDTO; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; @@ -62,6 +64,11 @@ public class RemoteDeviceFallbackFactory implements FallbackFactory notices = equRepairOrderMapper.getNoticesGroup(noticeQo); + if(!CollectionUtils.isEmpty(notices)) { + List wecharts = new ArrayList<>(); + List userCodes = notices.stream() + .map(SysNoticeGroup::getUserCode) + .collect(Collectors.toList()); + for (SysNoticeGroup noticeDto : notices) { + WechartDTO wechart0 = new WechartDTO(); + wechart0.setUserId(noticeDto.getWxId()); + String contentInfo = noticeDto.getNoticeContent(); + ////判断是立即维修还是计划性维修 + String workHandle = ""; + if(equRepairWorkOrder.getWorkHandle().equals("1")){ + workHandle = "立即维修"; + }else{ + workHandle = "计划性维修"; + } + ////判断是否需要停机维修 + String workDownMachine = ""; + if(equRepairWorkOrder.getWorkDownMachine().equals("1")){ + workDownMachine = "停机"; + }else{ + workDownMachine = "不停机"; + } + //在前端填的时候,需要判空!!!!!! + contentInfo = contentInfo + .replace("${message}", "\n") + .replace("${equipmentCode}", equRepairWorkOrder.getEquipmentCode()+"\n") + .replace("${workCode}", equRepairWorkOrder.getWorkCode()+"\n") + .replace("${workHandle}", workHandle+"\n"); + //故障描述 + if(StringUtils.isNotEmpty(equRepairWorkOrder.getWorkFaultDesc())){ + contentInfo = contentInfo.replace("${workFaultDesc}", equRepairWorkOrder.getWorkFaultDesc()+"\n"); + }else{ + contentInfo = contentInfo.replace("${workFaultDesc}", "无"+"\n"); + } + + //维修组 + if(StringUtils.isNotEmpty(equRepairWorkOrder.getWorkTeam())){ + contentInfo = contentInfo.replace("${workTeam}", equRepairWorkOrder.getWorkTeam()+"\n"); + }else{ + contentInfo = contentInfo.replace("${workTeam}", "无"+"\n"); + } + + //计划停机维修时间 + if(equRepairWorkOrder.getWorkPlanTime() != null){ + contentInfo = contentInfo.replace("${workPlanTime}", myFmt.format(equRepairWorkOrder.getWorkPlanTime())+"\n"); + }else{ + contentInfo = contentInfo.replace("${workPlanTime}", "无"+"\n"); + } + + //计划停机维修时间 + if(equRepairWorkOrder.getWorkPlanDownTime() != null){ + contentInfo = contentInfo.replace("${workPlanDownTime}", myFmt.format(equRepairWorkOrder.getWorkPlanDownTime())+"\n"); + }else{ + contentInfo = contentInfo.replace("${workPlanDownTime}", "无"+"\n"); + } + + //是否停机 + if(StringUtils.isNotEmpty(workDownMachine)){ + contentInfo = contentInfo.replace("${workDownMachine}", workDownMachine+"\n"); + }else{ + contentInfo = contentInfo.replace("${workDownMachine}", "无"+"\n"); + } + + //查询设备相关信息 + //设备名称 + EquEquipment equ = equEquipmentMapper.selectEquEquipmentByEquEquipmentCode(equRepairWorkOrder.getEquipmentCode()); + if(StringUtils.isNotEmpty(equ.getEquipmentName())){ + contentInfo = contentInfo.replace("${equipmentName}", equ.getEquipmentName()+"\n"); + }else{ + contentInfo = contentInfo.replace("${equipmentName}", "无"+"\n"); + } + + //设备位置 + if(StringUtils.isNotEmpty(equ.getEquipmentLocation())){ + contentInfo = contentInfo.replace("${equipmentLocation}", equ.getEquipmentLocation()+"\n"); + }else{ + contentInfo = contentInfo.replace("${equipmentLocation}", "无"+"\n"); + } + + //替换标签 + Pattern p= Pattern.compile("<[^>]+>"); + Matcher m = p.matcher(contentInfo); + contentInfo = m.replaceAll(""); + System.out.println(contentInfo); + + 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(); + + } + //发企业微信--------------------结束 + } + return success("报修审核后,企业微信发送维修信息成功!"); + } + /** * 获取维修记录(待维修) * diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java index 378ca3d63..cf9419ee2 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java @@ -261,37 +261,41 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { public void createSpotCheckPlanFunc(String poolName) { DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key - /**equ_plan equ_plan_equ**/ - EquPlan equPlan = new EquPlan(); - equPlan.setPlanType("spotInspection"); - List plans = deviceTaskMapper.getPlans(equPlan); - logger.info("++++++++++++" + poolName + "++++需要点检的++++++++++"+plans); - if(poolName.equals("ds_1000")){ - List producePlans = this.confirmPlanProduceLine(plans,poolName);//日点检 无产线计划 不生成点检工单 - logger.info("++++++++++++" + poolName + "++++需要点检的++++++++++"+producePlans); - for (EquPlan plan : producePlans) { - EquOrder hasTask = deviceTaskMapper.getNewTaskOrder(plan); - if (hasTask == null || Integer.parseInt(plan.getPlanLoop()) <= hasTask.getDays() || checkHourTask(hasTask, plan)) { - //生成点检计划 - int m = this.createOrderPlan(plan); - if (m == 0) { - error("equ_order相关添加失败"); - } - } - } - }else{ - for (EquPlan plan : plans) { - EquOrder hasTask = deviceTaskMapper.getNewTaskOrder(plan); - if (hasTask == null || Integer.parseInt(plan.getPlanLoop()) <= hasTask.getDays() || checkHourTask(hasTask, plan)) { - //生成点检计划 - int m = this.createOrderPlan(plan); - if (m == 0) { - error("equ_order相关添加失败"); - } - } - } - } + try { + /**equ_plan equ_plan_equ**/ + EquPlan equPlan = new EquPlan(); + equPlan.setPlanType("spotInspection"); + List plans = deviceTaskMapper.getPlans(equPlan); + logger.info("++++++++++++" + poolName + "++++需要点检的++++++++++"+plans); + if(poolName.equals("ds_1000")){ + List producePlans = this.confirmPlanProduceLine(plans,poolName);//日点检 无产线计划 不生成点检工单 + logger.info("++++++++++++" + poolName + "++++需要点检的++++++++++"+producePlans); + for (EquPlan plan : producePlans) { + EquOrder hasTask = deviceTaskMapper.getNewTaskOrder(plan); + if (hasTask == null || Integer.parseInt(plan.getPlanLoop()) <= hasTask.getDays() || checkHourTask(hasTask, plan)) { + //生成点检计划 + int m = this.createOrderPlan(plan); + if (m == 0) { + error("equ_order相关添加失败"); + } + } + } + }else{ + for (EquPlan plan : plans) { + EquOrder hasTask = deviceTaskMapper.getNewTaskOrder(plan); + if (hasTask == null || Integer.parseInt(plan.getPlanLoop()) <= hasTask.getDays() || checkHourTask(hasTask, plan)) { + //生成点检计划 + int m = this.createOrderPlan(plan); + if (m == 0) { + error("equ_order相关添加失败"); + } + } + } + } + }finally { + DynamicDataSourceContextHolder.poll(); + } logger.info("++++++++++++" + poolName + "++++点检结束++++++++++"); } @@ -299,47 +303,50 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { public AjaxResult createSpotCheckWorkOrder(com.op.system.api.domain.device.WorkOrderTangentDTO workOrderTangentDTO) { DynamicDataSourceContextHolder.push(workOrderTangentDTO.getFactoryCode());// 这是数据源的key logger.info(workOrderTangentDTO.getFactoryCode() + "工厂切线接口传输参数:" + JSONArray.toJSONString(workOrderTangentDTO)); - DynamicDataSourceContextHolder.push(workOrderTangentDTO.getFactoryCode());// 这是数据源的key - EquPlan equPlan = new EquPlan(); - equPlan.setPlanType("spotInspection"); - List plans = deviceTaskMapper.getPlans(equPlan);//所有的 - List changeLineCodeList = workOrderTangentDTO.getAddLineCodes();//切线后的实际传过来的要新增的产线信息 - List addProducePlans = new ArrayList<>();//切线后,真正能生成的生产线 下面的设备的点检计划 - List addProduceLine = new ArrayList<>();//真正能生成的切线生产线 + try { + EquPlan equPlan = new EquPlan(); + equPlan.setPlanType("spotInspection"); + List plans = deviceTaskMapper.getPlans(equPlan);//所有的 + List changeLineCodeList = workOrderTangentDTO.getAddLineCodes();//切线后的实际传过来的要新增的产线信息 + List addProducePlans = new ArrayList<>();//切线后,真正能生成的生产线 下面的设备的点检计划 + List addProduceLine = new ArrayList<>();//真正能生成的切线生产线 - if(!CollectionUtils.isEmpty(changeLineCodeList) && !CollectionUtils.isEmpty(plans)){ - for(String lineCode : changeLineCodeList){ - for(EquPlan plan : plans){ - if(!StringUtils.isBlank(plan.getLineCode())){ - if(plan.getLineCode().equals(lineCode)){ - addProducePlans.add(plan); - logger.info(workOrderTangentDTO.getFactoryCode() + "工厂切线后新生成计划信息:" + JSONArray.toJSONString(plan)); - addProduceLine.add(lineCode); + if(!CollectionUtils.isEmpty(changeLineCodeList) && !CollectionUtils.isEmpty(plans)){ + for(String lineCode : changeLineCodeList){ + for(EquPlan plan : plans){ + if(!StringUtils.isBlank(plan.getLineCode())){ + if(plan.getLineCode().equals(lineCode)){ + addProducePlans.add(plan); + logger.info(workOrderTangentDTO.getFactoryCode() + "工厂切线后新生成计划信息:" + JSONArray.toJSONString(plan)); + addProduceLine.add(lineCode); + } } } } } - } - addProduceLine = addProduceLine.stream().distinct().collect(Collectors.toList()); - logger.info(workOrderTangentDTO.getFactoryCode() + "工厂切线后新生成产线:" + JSONArray.toJSONString(addProduceLine)); - addSpotCheckTask = new ArrayList<>(); + addProduceLine = addProduceLine.stream().distinct().collect(Collectors.toList()); + logger.info(workOrderTangentDTO.getFactoryCode() + "工厂切线后新生成产线:" + JSONArray.toJSONString(addProduceLine)); + addSpotCheckTask = new ArrayList<>(); - for (EquPlan plan : addProducePlans) { - EquOrder hasTask = deviceTaskMapper.getNewTaskOrder(plan); - if (hasTask == null || Integer.parseInt(plan.getPlanLoop()) <= hasTask.getDays() || checkHourTask(hasTask, plan)) { - //生成点检计划 - int m = this.createOrderPlan(plan); - if (m == 0) { - error("equ_order相关添加失败"); - return error(); - }else{ + for (EquPlan plan : addProducePlans) { + EquOrder hasTask = deviceTaskMapper.getNewTaskOrder(plan); + if (hasTask == null || Integer.parseInt(plan.getPlanLoop()) <= hasTask.getDays() || checkHourTask(hasTask, plan)) { + //生成点检计划 + int m = this.createOrderPlan(plan); + if (m == 0) { + error("equ_order相关添加失败"); + return error(); + }else{ + } } } + logger.info("++++++++++++" + workOrderTangentDTO.getFactoryCode() + "++++切线后创建微信提醒开始++++++++++"); + this.spotCheckSendWeChat(addProduceLine,workOrderTangentDTO); + }finally { + DynamicDataSourceContextHolder.poll(); } - logger.info("++++++++++++" + workOrderTangentDTO.getFactoryCode() + "++++切线后创建微信提醒开始++++++++++"); - this.spotCheckSendWeChat(addProduceLine,workOrderTangentDTO); logger.info("++++++++++++" + workOrderTangentDTO.getFactoryCode() + "++++切线后创建微信提醒结束++++++++++"); logger.info("++++++++++++" + workOrderTangentDTO.getFactoryCode() + "++++切线后创建点检工单流程结束++++++++++"); return success(); @@ -393,54 +400,64 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { public void createPatrolCheckPlanFunc(String poolName) { DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key - /**equ_plan equ_plan_equ**/ - EquPlan equPlan = new EquPlan(); - equPlan.setPlanType("inspection"); - List plans = deviceTaskMapper.getPlans(equPlan); + try { + /**equ_plan equ_plan_equ**/ + EquPlan equPlan = new EquPlan(); + equPlan.setPlanType("inspection"); + List plans = deviceTaskMapper.getPlans(equPlan); - for (EquPlan plan : plans) { - EquOrder hasTask = deviceTaskMapper.getNewTaskOrder(plan); - if (hasTask == null || Integer.parseInt(plan.getPlanLoop()) <= hasTask.getDays() || checkHourTask(hasTask, plan)) { - //生成巡检计划 - int m = this.createOrderPlan(plan); - if (m == 0) { - error("equ_order相关添加失败"); + for (EquPlan plan : plans) { + EquOrder hasTask = deviceTaskMapper.getNewTaskOrder(plan); + if (hasTask == null || Integer.parseInt(plan.getPlanLoop()) <= hasTask.getDays() || checkHourTask(hasTask, plan)) { + //生成巡检计划 + int m = this.createOrderPlan(plan); + if (m == 0) { + error("equ_order相关添加失败"); + } } } + }finally { + DynamicDataSourceContextHolder.poll(); } + logger.info("++++++++++++" + poolName + "++++巡检结束++++++++++"); } public void createMaintenancePlanFunc(String poolName) { DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key - /**equ_plan equ_plan_equ**/ - EquPlan equPlan = new EquPlan(); - equPlan.setPlanType("maintenance"); - List plans = deviceTaskMapper.getPlans(equPlan); + try{ + /**equ_plan equ_plan_equ**/ + EquPlan equPlan = new EquPlan(); + equPlan.setPlanType("maintenance"); + List plans = deviceTaskMapper.getPlans(equPlan); - for (EquPlan plan : plans) { - EquOrder hasTask = null; - if ("1".equals(plan.getCalculationRule())) { - //根据order_start//1按上次保养时间 - hasTask = deviceTaskMapper.getNewTaskOrder0(plan); - } else if ("0".equals(plan.getCalculationRule())) { - //根据createTime//0按固定周期 - hasTask = deviceTaskMapper.getNewTaskOrder(plan); - } else if ("2".equals(plan.getCalculationRule())) { - //单次生成保养计划 - //根据planLoopStart 单次生成 - if(plan.getPlanLoopStart().getTime() == DateUtils.getNowDate().getTime()){ - hasTask = null; - } - } - if (hasTask == null || Integer.parseInt(plan.getPlanLoop()) <= hasTask.getDays() || checkHourTask(hasTask, plan)) { - //生成保养计划 - int m = this.createOrderPlan(plan); - if (m == 0) { - error("equ_order相关添加失败"); + for (EquPlan plan : plans) { + EquOrder hasTask = null; + if ("1".equals(plan.getCalculationRule())) { + //根据order_start//1按上次保养时间 + hasTask = deviceTaskMapper.getNewTaskOrder0(plan); + } else if ("0".equals(plan.getCalculationRule())) { + //根据createTime//0按固定周期 + hasTask = deviceTaskMapper.getNewTaskOrder(plan); + } else if ("2".equals(plan.getCalculationRule())) { + //单次生成保养计划 + //根据planLoopStart 单次生成 + if(plan.getPlanLoopStart().getTime() == DateUtils.getNowDate().getTime()){ + hasTask = null; + } + } + if (hasTask == null || Integer.parseInt(plan.getPlanLoop()) <= hasTask.getDays() || checkHourTask(hasTask, plan)) { + //生成保养计划 + int m = this.createOrderPlan(plan); + if (m == 0) { + error("equ_order相关添加失败"); + } } } + }finally { + DynamicDataSourceContextHolder.poll(); } + logger.info("++++++++++++" + poolName + "++++保养结束++++++++++"); } @@ -585,74 +602,84 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { private void createEquipmentOperation(String poolName) { DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key - // 当天未生成过运行记录 - int checkNum = equOperationMapper.checkInsertOperation(); - if (checkNum == 0) { - // 获取字典设备运行时间 device_operation_time - String operationTime = equOperationMapper.selectEquipmentOperationTime(); - // 获取所有设备信息(设备编码、设备名称、设备组线、工作中心名称) - List operationList = equOperationMapper.selectEquipments(); - // 统一处理数据 - for (EquOperation operation : operationList) { - operation.setId(IdUtils.fastSimpleUUID());// id - operation.setFactoryCode(poolName.replace("ds_", ""));// 工厂 - operation.setOperationTime(operationTime);// 运行时间(默认运行时间) - operation.setActualOperationTime(operationTime);// 实际运行时间(默认运行时间) - operation.setCreateBy("job"); - operation.setCreateTime(DateUtils.getNowDate()); + try { + // 当天未生成过运行记录 + int checkNum = equOperationMapper.checkInsertOperation(); + if (checkNum == 0) { + // 获取字典设备运行时间 device_operation_time + String operationTime = equOperationMapper.selectEquipmentOperationTime(); + // 获取所有设备信息(设备编码、设备名称、设备组线、工作中心名称) + List operationList = equOperationMapper.selectEquipments(); + // 统一处理数据 + for (EquOperation operation : operationList) { + operation.setId(IdUtils.fastSimpleUUID());// id + operation.setFactoryCode(poolName.replace("ds_", ""));// 工厂 + operation.setOperationTime(operationTime);// 运行时间(默认运行时间) + operation.setActualOperationTime(operationTime);// 实际运行时间(默认运行时间) + operation.setCreateBy("job"); + operation.setCreateTime(DateUtils.getNowDate()); + } + + int batchSize = 100;// 批次数量 + + // 分批次处理 + int batchCount = (operationList.size() + batchSize - 1) / batchSize;// 计算批次数量 + for (int i = 0; i < batchCount; i++) { + int startIndex = i * batchSize;// 索引开始值 + int endIndex = Math.min((i + 1) * batchSize, operationList.size());// 索引结束值 + // 截取列表 + List subList = operationList.subList(startIndex, endIndex); + + int num = equOperationMapper.insertEquOperationByBatch(subList); + System.out.println("数据源:" + poolName + "--->" + "第" + (i + 1) + "轮" + "开始索引:" + startIndex + "________结束索引:" + endIndex + "________成功插入数量:" + num); + } + } else { + System.out.println("数据源:" + poolName + "当天生成过运行记录"); } - - int batchSize = 100;// 批次数量 - - // 分批次处理 - int batchCount = (operationList.size() + batchSize - 1) / batchSize;// 计算批次数量 - for (int i = 0; i < batchCount; i++) { - int startIndex = i * batchSize;// 索引开始值 - int endIndex = Math.min((i + 1) * batchSize, operationList.size());// 索引结束值 - // 截取列表 - List subList = operationList.subList(startIndex, endIndex); - - int num = equOperationMapper.insertEquOperationByBatch(subList); - System.out.println("数据源:" + poolName + "--->" + "第" + (i + 1) + "轮" + "开始索引:" + startIndex + "________结束索引:" + endIndex + "________成功插入数量:" + num); - } - } else { - System.out.println("数据源:" + poolName + "当天生成过运行记录"); + }finally { + DynamicDataSourceContextHolder.poll(); } + } private void backupEquipmentOperation(String poolName) { DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key - // 校验当前YEAR-2是否备份过数据 - EquOperation check = equOperationMapper.checkBackupOperation(); - if (check == null) { - // 获取插入数量 - int insertNum = equOperationMapper.getBackupOperationNum(); - int insertSize = 100;// 新增批次数量 + try { + // 校验当前YEAR-2是否备份过数据 + EquOperation check = equOperationMapper.checkBackupOperation(); + if (check == null) { + // 获取插入数量 + int insertNum = equOperationMapper.getBackupOperationNum(); + int insertSize = 100;// 新增批次数量 - // 分批次备份 - int batchCount = (insertNum + insertSize - 1) / insertSize;// 计算批次数量 - for (int i = 0; i < batchCount; i++) { - int startIndex = i * insertSize;// 索引开始值 - int endIndex = Math.min((i + 1) * insertSize, insertNum);// 索引结束值 + // 分批次备份 + int batchCount = (insertNum + insertSize - 1) / insertSize;// 计算批次数量 + for (int i = 0; i < batchCount; i++) { + int startIndex = i * insertSize;// 索引开始值 + int endIndex = Math.min((i + 1) * insertSize, insertNum);// 索引结束值 - // 备份至数据库 - int num = equOperationMapper.backupOperation(startIndex, insertSize); + // 备份至数据库 + int num = equOperationMapper.backupOperation(startIndex, insertSize); - System.out.println("数据源:" + poolName + "--->" + "第" + (i + 1) + "轮备份" + "开始索引:" + startIndex + "________结束索引:" + endIndex + "________成功插入数量:" + num); + System.out.println("数据源:" + poolName + "--->" + "第" + (i + 1) + "轮备份" + "开始索引:" + startIndex + "________结束索引:" + endIndex + "________成功插入数量:" + num); + } + + // 删除源数据库数据 + int delSize = 100;// 删除批次数量 + for (int i = 0; i < insertNum / delSize + 1; i++) { + // 在源数据库中删除 + int num = equOperationMapper.deleteOperation(delSize); + System.out.println("数据源:" + poolName + "--->" + "第" + (i + 1) + "轮删除" + "------>成功删除数量:" + num); + } + + } else { + System.out.println("数据源:" + poolName + "---->" + "年份:" + (LocalDate.now().getYear() - 2) + "--->已备份"); } - - // 删除源数据库数据 - int delSize = 100;// 删除批次数量 - for (int i = 0; i < insertNum / delSize + 1; i++) { - // 在源数据库中删除 - int num = equOperationMapper.deleteOperation(delSize); - System.out.println("数据源:" + poolName + "--->" + "第" + (i + 1) + "轮删除" + "------>成功删除数量:" + num); - } - - } else { - System.out.println("数据源:" + poolName + "---->" + "年份:" + (LocalDate.now().getYear() - 2) + "--->已备份"); + }finally { + DynamicDataSourceContextHolder.poll(); } + } // 循环类型为小时 diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java index 296c383ae..ba4db7ff6 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java @@ -379,7 +379,6 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService { equEquipment.setEquipmentCode(equRepairOrder.getEquipmentCode()); equEquipment.setEquipmentStatus("0"); //0故障 equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment); - AjaxResult repairSendWeChatResult = repairSendWeChat(equRepairWorkOrder); } equRepairOrder.setUpdateTime(DateUtils.getNowDate()); 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 5f0b1162a..d6c4da9b6 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 @@ -296,6 +296,8 @@ public class RecordAlarmDataServiceImpl implements IRecordAlarmDataService { } } catch (Exception e) { logger.error("service == 水瞬时报警 == exception", e); + }finally { + DynamicDataSourceContextHolder.poll(); } } @@ -396,79 +398,84 @@ public class RecordAlarmDataServiceImpl implements IRecordAlarmDataService { */ public void hourLineLossTimingTask(String poolName) { DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key - BaseLineLoss baseLineLoss = new BaseLineLoss(); - Date nowDate = DateUtils.getNowDate(); - Calendar calendar = Calendar.getInstance(); - calendar.setTime(nowDate); - calendar.add(Calendar.HOUR_OF_DAY, -1); - Date hourAgoTime = calendar.getTime(); - Map lineLossMap = new HashMap<>(); - lineLossMap.put("beginCollectTime", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", hourAgoTime)); - lineLossMap.put("endCollectTime", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", nowDate)); - baseLineLoss.setParams(lineLossMap); - //电告警 - baseLineLoss.setMonitorType(2L); - List> lineLossList = dataAnalysisService.lineLossAnalysisDataTimedTasks(baseLineLoss); - //电阈值 - BaseDnbThreshold baseDnbThreshold = new BaseDnbThreshold(); - baseDnbThreshold.setThresholdStatus(0L); - List baseDnbThresholds = baseDnbThresholdMapper.selectBaseDnbThresholdList(baseDnbThreshold); - if (lineLossList.size() > 0) { - for (Map map : lineLossList) { - String monitorId = String.valueOf(map.get("monitorId")); - for (BaseDnbThreshold dnbThreshold : baseDnbThresholds) { - if (monitorId.equals(dnbThreshold.getMonitorId())) { - BigDecimal lineLossRate = dnbThreshold.getLineLossRate(); - if (StringUtils.isNull(lineLossRate)) { - continue; - } - String substring = String.valueOf(map.get("lossRate")); - BigDecimal lossRate = new BigDecimal(substring); - if (lineLossRate.compareTo(lossRate) < 0) { - RecordAlarmData alarmData = new RecordAlarmData(); - alarmData.setMonitorId(monitorId); - alarmData.setCollectTime(new Date()); - alarmData.setAlarmType(3L); - alarmData.setAlarmStatus(1L); - alarmData.setAlarmData("超过线损电阈值"); - recordAlarmDataMapper.insertRecordAlarmData(alarmData); + try { + BaseLineLoss baseLineLoss = new BaseLineLoss(); + Date nowDate = DateUtils.getNowDate(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(nowDate); + calendar.add(Calendar.HOUR_OF_DAY, -1); + Date hourAgoTime = calendar.getTime(); + Map lineLossMap = new HashMap<>(); + lineLossMap.put("beginCollectTime", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", hourAgoTime)); + lineLossMap.put("endCollectTime", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", nowDate)); + baseLineLoss.setParams(lineLossMap); + //电告警 + baseLineLoss.setMonitorType(2L); + List> lineLossList = dataAnalysisService.lineLossAnalysisDataTimedTasks(baseLineLoss); + //电阈值 + BaseDnbThreshold baseDnbThreshold = new BaseDnbThreshold(); + baseDnbThreshold.setThresholdStatus(0L); + List baseDnbThresholds = baseDnbThresholdMapper.selectBaseDnbThresholdList(baseDnbThreshold); + if (lineLossList.size() > 0) { + for (Map map : lineLossList) { + String monitorId = String.valueOf(map.get("monitorId")); + for (BaseDnbThreshold dnbThreshold : baseDnbThresholds) { + if (monitorId.equals(dnbThreshold.getMonitorId())) { + BigDecimal lineLossRate = dnbThreshold.getLineLossRate(); + if (StringUtils.isNull(lineLossRate)) { + continue; + } + String substring = String.valueOf(map.get("lossRate")); + BigDecimal lossRate = new BigDecimal(substring); + if (lineLossRate.compareTo(lossRate) < 0) { + RecordAlarmData alarmData = new RecordAlarmData(); + alarmData.setMonitorId(monitorId); + alarmData.setCollectTime(new Date()); + alarmData.setAlarmType(3L); + alarmData.setAlarmStatus(1L); + alarmData.setAlarmData("超过线损电阈值"); + recordAlarmDataMapper.insertRecordAlarmData(alarmData); + } } } } } + + //水线损 + baseLineLoss.setMonitorType(3L); + List> waterLossList = dataAnalysisService.lineLossAnalysisDataTimedTasks(baseLineLoss); + //水阈值 + BaseWaterThreshold baseWaterThreshold = new BaseWaterThreshold(); + baseWaterThreshold.setThresholdStatus(0L); + List baseWaterThresholds = baseWaterThresholdMapper.selectBaseWaterThresholdList(baseWaterThreshold); + if (waterLossList.size() > 0) { + for (Map map : waterLossList) { + String monitorId = String.valueOf(map.get("monitorId")); + for (BaseWaterThreshold waterThreshold : baseWaterThresholds) { + if (monitorId.equals(waterThreshold.getMonitorId())) { + BigDecimal lineLossRate = waterThreshold.getLineLossRate(); + if (StringUtils.isNull(lineLossRate)) { + continue; + } + String substring = String.valueOf(map.get("lossRate")); + BigDecimal lossRate = new BigDecimal(substring); + if (lineLossRate.compareTo(lossRate) < 0) { + RecordAlarmData alarmData = new RecordAlarmData(); + alarmData.setMonitorId(monitorId); + alarmData.setCollectTime(new Date()); + alarmData.setAlarmType(3L); + alarmData.setAlarmStatus(1L); + alarmData.setAlarmData("超过线损水阈值"); + recordAlarmDataMapper.insertRecordAlarmData(alarmData); + } + } + } + } + } + }finally { + DynamicDataSourceContextHolder.poll(); } - //水线损 - baseLineLoss.setMonitorType(3L); - List> waterLossList = dataAnalysisService.lineLossAnalysisDataTimedTasks(baseLineLoss); - //水阈值 - BaseWaterThreshold baseWaterThreshold = new BaseWaterThreshold(); - baseWaterThreshold.setThresholdStatus(0L); - List baseWaterThresholds = baseWaterThresholdMapper.selectBaseWaterThresholdList(baseWaterThreshold); - if (waterLossList.size() > 0) { - for (Map map : waterLossList) { - String monitorId = String.valueOf(map.get("monitorId")); - for (BaseWaterThreshold waterThreshold : baseWaterThresholds) { - if (monitorId.equals(waterThreshold.getMonitorId())) { - BigDecimal lineLossRate = waterThreshold.getLineLossRate(); - if (StringUtils.isNull(lineLossRate)) { - continue; - } - String substring = String.valueOf(map.get("lossRate")); - BigDecimal lossRate = new BigDecimal(substring); - if (lineLossRate.compareTo(lossRate) < 0) { - RecordAlarmData alarmData = new RecordAlarmData(); - alarmData.setMonitorId(monitorId); - alarmData.setCollectTime(new Date()); - alarmData.setAlarmType(3L); - alarmData.setAlarmStatus(1L); - alarmData.setAlarmData("超过线损水阈值"); - recordAlarmDataMapper.insertRecordAlarmData(alarmData); - } - } - } - } - } } /** @@ -505,69 +512,74 @@ public class RecordAlarmDataServiceImpl implements IRecordAlarmDataService { */ public void dailyConsumptionTimingTask(String poolName) { DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key - HashMap map = new HashMap<>(); - map.put("timeSub", null); - Date today = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24); - SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); - String yesterday = simpleDateFormat.format(today);//获取昨天日期 - map.put("startDay", yesterday); - map.put("endDay", yesterday); + try { + HashMap map = new HashMap<>(); + map.put("timeSub", null); + Date today = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); + String yesterday = simpleDateFormat.format(today);//获取昨天日期 + map.put("startDay", yesterday); + map.put("endDay", yesterday); - //电阈值 - BaseDnbThreshold baseDnbThreshold = new BaseDnbThreshold(); - baseDnbThreshold.setThresholdStatus(0L); - List baseDnbThresholds = baseDnbThresholdMapper.selectBaseDnbThresholdList(baseDnbThreshold); - if (baseDnbThresholds.size() > 0) { - for (BaseDnbThreshold dnbThreshold : baseDnbThresholds) { - if (StringUtils.isNull(dnbThreshold.getDayConsumption())) { - continue; - } - map.put("energyType", 2L); - map.put("monitorId", dnbThreshold.getMonitorId()); - List> dnbConsumptionList = dataAnalysisService.energyConsumptionByTime(map); - if (dnbConsumptionList.size() == 0) { - continue; - } - BigDecimal expend = new BigDecimal(String.valueOf(dnbConsumptionList.get(0).get("expend"))); - if (expend.compareTo(dnbThreshold.getDayConsumption()) > 0) { - RecordAlarmData alarmData = new RecordAlarmData(); - alarmData.setMonitorId(dnbThreshold.getMonitorId()); - alarmData.setCollectTime(new Date()); - alarmData.setAlarmType(4L); - alarmData.setAlarmStatus(1L); - alarmData.setAlarmData("超过日耗量电阈值"); - recordAlarmDataMapper.insertRecordAlarmData(alarmData); + //电阈值 + BaseDnbThreshold baseDnbThreshold = new BaseDnbThreshold(); + baseDnbThreshold.setThresholdStatus(0L); + List baseDnbThresholds = baseDnbThresholdMapper.selectBaseDnbThresholdList(baseDnbThreshold); + if (baseDnbThresholds.size() > 0) { + for (BaseDnbThreshold dnbThreshold : baseDnbThresholds) { + if (StringUtils.isNull(dnbThreshold.getDayConsumption())) { + continue; + } + map.put("energyType", 2L); + map.put("monitorId", dnbThreshold.getMonitorId()); + List> dnbConsumptionList = dataAnalysisService.energyConsumptionByTime(map); + if (dnbConsumptionList.size() == 0) { + continue; + } + BigDecimal expend = new BigDecimal(String.valueOf(dnbConsumptionList.get(0).get("expend"))); + if (expend.compareTo(dnbThreshold.getDayConsumption()) > 0) { + RecordAlarmData alarmData = new RecordAlarmData(); + alarmData.setMonitorId(dnbThreshold.getMonitorId()); + alarmData.setCollectTime(new Date()); + alarmData.setAlarmType(4L); + alarmData.setAlarmStatus(1L); + alarmData.setAlarmData("超过日耗量电阈值"); + recordAlarmDataMapper.insertRecordAlarmData(alarmData); + } } } - } - //水阈值 - BaseWaterThreshold baseWaterThreshold = new BaseWaterThreshold(); - baseDnbThreshold.setThresholdStatus(0L); - List baseWaterThresholds = baseWaterThresholdMapper.selectBaseWaterThresholdList(baseWaterThreshold); - if (baseWaterThresholds.size() > 0) { - for (BaseWaterThreshold waterThreshold : baseWaterThresholds) { - if (StringUtils.isNull(waterThreshold.getDayConsumption())) { - continue; - } - map.put("energyType", 3L); - map.put("monitorId", waterThreshold.getMonitorId()); - List> dnbConsumptionList = dataAnalysisService.energyConsumptionByTime(map); - if (dnbConsumptionList.size() == 0) { - continue; - } - BigDecimal expend = new BigDecimal(String.valueOf(dnbConsumptionList.get(0).get("expend"))); - if (expend.compareTo(waterThreshold.getDayConsumption()) > 0) { - RecordAlarmData alarmData = new RecordAlarmData(); - alarmData.setMonitorId(waterThreshold.getMonitorId()); - alarmData.setCollectTime(new Date()); - alarmData.setAlarmType(4L); - alarmData.setAlarmStatus(1L); - alarmData.setAlarmData("超过日耗量水阈值"); - recordAlarmDataMapper.insertRecordAlarmData(alarmData); + //水阈值 + BaseWaterThreshold baseWaterThreshold = new BaseWaterThreshold(); + baseDnbThreshold.setThresholdStatus(0L); + List baseWaterThresholds = baseWaterThresholdMapper.selectBaseWaterThresholdList(baseWaterThreshold); + if (baseWaterThresholds.size() > 0) { + for (BaseWaterThreshold waterThreshold : baseWaterThresholds) { + if (StringUtils.isNull(waterThreshold.getDayConsumption())) { + continue; + } + map.put("energyType", 3L); + map.put("monitorId", waterThreshold.getMonitorId()); + List> dnbConsumptionList = dataAnalysisService.energyConsumptionByTime(map); + if (dnbConsumptionList.size() == 0) { + continue; + } + BigDecimal expend = new BigDecimal(String.valueOf(dnbConsumptionList.get(0).get("expend"))); + if (expend.compareTo(waterThreshold.getDayConsumption()) > 0) { + RecordAlarmData alarmData = new RecordAlarmData(); + alarmData.setMonitorId(waterThreshold.getMonitorId()); + alarmData.setCollectTime(new Date()); + alarmData.setAlarmType(4L); + alarmData.setAlarmStatus(1L); + alarmData.setAlarmData("超过日耗量水阈值"); + recordAlarmDataMapper.insertRecordAlarmData(alarmData); + } } } + }finally { + DynamicDataSourceContextHolder.poll(); } + } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java index 48a3a815b..d3416c3da 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java @@ -116,7 +116,6 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { */ @Override public WCSDTO requestDestinationStations(WCSDTO wcsdto) { - DynamicDataSourceContextHolder.push("ds_" + wcsdto.getFactory()); WCSDTO dto = new WCSDTO();//最终结果 try { @@ -177,6 +176,8 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { } catch (Exception e) { dto.setCode("1"); dto.setMessage("MES管理系统接口调用失败"); + }finally { + DynamicDataSourceContextHolder.poll(); } return dto; } @@ -184,55 +185,59 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { @Override public Map getMesBoardEquProductionToday(BoardDTO boardDTO) { DynamicDataSourceContextHolder.push("ds_" + boardDTO.getFactory());// 这是数据源的key - Map boardMap = new HashMap(); - List totals = null; - List everys = null; - if ("equ_type_lg".equals(boardDTO.getEquTypeCode())) {//equ_type_lg 湿料罐 + try { + Map boardMap = new HashMap(); + List totals = null; + List everys = null; + if ("equ_type_lg".equals(boardDTO.getEquTypeCode())) {//equ_type_lg 湿料罐 - totals = mesMapper.getTotalNumL(boardDTO); - everys = mesMapper.getEveryNumL(boardDTO); - } else {//成型机、烘房、收坯机 - totals = mesMapper.getTotalNum(boardDTO); - everys = mesMapper.getEveryNum(boardDTO); + totals = mesMapper.getTotalNumL(boardDTO); + everys = mesMapper.getEveryNumL(boardDTO); + } else {//成型机、烘房、收坯机 + totals = mesMapper.getTotalNum(boardDTO); + everys = mesMapper.getEveryNum(boardDTO); + } + /**质量看板测试开始**/ + if("equ_type_spj".equals(boardDTO.getEquTypeCode())){ + boardDTO.setEquTypeCode("equ_type_hf"); + totals = mesMapper.getTotalNum(boardDTO); + + for(BoardDTO total:totals){ + total.setTotalNum(total.getTotalNum()-5); + total.setEquTypeCode(total.getEquTypeCode().replace("H","X")); + total.setEquTypeName(total.getEquTypeName().replace("烘房","收坯机")); + } + everys = mesMapper.getEveryNum(boardDTO); + // 计算所有 TotalNum 的总和 + int totalSum = totals.get(0).getTotalNum(); + // 保留前 7 条数据 + if (everys.size() > 7) { + everys = everys.subList(0, 7); + } + + // 原始数据的处理 + for (BoardDTO every : everys) { + every.setTotalNum(every.getTotalNum()); + every.setEquCode(every.getEquCode().replace("H", "X")); + every.setEquName(every.getEquName().replace("烘房", "收坯机")); + } + + // 随机生成 7 个数,这些数的和等于 totalSum + List randomDistribution = generateBoundedRandomDistribution(totalSum, everys.size(), 10); + + // 分配这 7 个数到 everys 的 TotalNum 字段 + for (int i = 0; i < everys.size(); i++) { + everys.get(i).setTotalNum(randomDistribution.get(i)); + } + } + /**质量看板测试结束**/ + boardMap.put("totalNum", totals); + boardMap.put("everyNum", everys); + + return boardMap; + }finally { + DynamicDataSourceContextHolder.poll(); } - /**质量看板测试开始**/ - if("equ_type_spj".equals(boardDTO.getEquTypeCode())){ - boardDTO.setEquTypeCode("equ_type_hf"); - totals = mesMapper.getTotalNum(boardDTO); - - for(BoardDTO total:totals){ - total.setTotalNum(total.getTotalNum()-5); - total.setEquTypeCode(total.getEquTypeCode().replace("H","X")); - total.setEquTypeName(total.getEquTypeName().replace("烘房","收坯机")); - } - everys = mesMapper.getEveryNum(boardDTO); - // 计算所有 TotalNum 的总和 - int totalSum = totals.get(0).getTotalNum(); - // 保留前 7 条数据 - if (everys.size() > 7) { - everys = everys.subList(0, 7); - } - - // 原始数据的处理 - for (BoardDTO every : everys) { - every.setTotalNum(every.getTotalNum()); - every.setEquCode(every.getEquCode().replace("H", "X")); - every.setEquName(every.getEquName().replace("烘房", "收坯机")); - } - - // 随机生成 7 个数,这些数的和等于 totalSum - List randomDistribution = generateBoundedRandomDistribution(totalSum, everys.size(), 10); - - // 分配这 7 个数到 everys 的 TotalNum 字段 - for (int i = 0; i < everys.size(); i++) { - everys.get(i).setTotalNum(randomDistribution.get(i)); - } - } - /**质量看板测试结束**/ - boardMap.put("totalNum", totals); - boardMap.put("everyNum", everys); - - return boardMap; } /** * 生成一个随机分布的整数列表,这些数的和等于 totalSum @@ -288,14 +293,23 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { @Override public List getBoardFactory(BoardDTO boardDTO) { DynamicDataSourceContextHolder.push("master");// 这是数据源的key - return mesMapper.getBoardFactory(boardDTO); + try { + return mesMapper.getBoardFactory(boardDTO); + }finally { + DynamicDataSourceContextHolder.poll(); + } } @Override public List getProShifts(BoardDTO boardDTO) { DynamicDataSourceContextHolder.push("ds_" + boardDTO.getFactory());// 这是数据源的key - return mesReportWorkMapper.selectProShift(); + try { + return mesReportWorkMapper.selectProShift(); + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @@ -328,19 +342,24 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { public void dateDeleteFunc(String poolName, List tables) { DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key - DateTimeFormatter ymdhms = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - LocalDate today = LocalDate.now(); - System.out.println("今天的日期为:" + today); - LocalDate nextWeek = today.plus(-3, ChronoUnit.DAYS); - String ymdhms7 = nextWeek.format(ymdhms) + " 00:00:00"; - for (String table : tables) { - if ("mes_interface_log".equals(table)) { - mesMapper.deleteDateByTableName0(table, ymdhms7); - } else { - mesMapper.deleteDateByTableName(table, ymdhms7); - } + try { + DateTimeFormatter ymdhms = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + LocalDate today = LocalDate.now(); + System.out.println("今天的日期为:" + today); + LocalDate nextWeek = today.plus(-3, ChronoUnit.DAYS); + String ymdhms7 = nextWeek.format(ymdhms) + " 00:00:00"; + for (String table : tables) { + if ("mes_interface_log".equals(table)) { + mesMapper.deleteDateByTableName0(table, ymdhms7); + } else { + mesMapper.deleteDateByTableName(table, ymdhms7); + } + } + }finally { + DynamicDataSourceContextHolder.poll(); } + } @Override @@ -411,156 +430,161 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { if (StringUtils.isNotBlank(mesReportWork.getFactoryCode())) {//已经加上ds_ DynamicDataSourceContextHolder.push(mesReportWork.getFactoryCode());// 这是数据源的key } - - //根据belong_work_order找到sap工单(子子母) - List workOrders = mesReportWorkMapper.getSapWorkOrder(mesReportWork.getWorkorderCode()); - if (CollectionUtils.isEmpty(workOrders)) { - return R.fail("子母工单信息缺失"); - } - - R sapRson = null; - if(workOrders.size()==1){ - /**(一层报工)工单报工**/ - mesReportWork.setUploadStatus("1");//除了1报工成功的,都需要报工 - mesReportWork.setProdType("prod"); - mesReportWork.setWorkorderCode(workOrders.get(0).getWorkorderCode()); - mesReportWork.setMachineCode(mesReportWork.getMachineCode()); - MesReportWork sHzWorks = mesReportWorkMapper.getReportWorkHz(mesReportWork); - - if(sHzWorks==null){//再去查预报工的一条数,带出基本数据,其它全部赋值0 - sHzWorks = mesReportWorkMapper.getReportWorkHzAttr1(mesReportWork); + try { + //根据belong_work_order找到sap工单(子子母) + List workOrders = mesReportWorkMapper.getSapWorkOrder(mesReportWork.getWorkorderCode()); + if (CollectionUtils.isEmpty(workOrders)) { + return R.fail("子母工单信息缺失"); } - if(sHzWorks==null){ - return R.fail("未查询到一层报工单"); - } - //查询base_product的report_rate//单层项向sap报工的数量=上位机报工数量*报工汇率 - BigDecimal reportRate = mesReportWorkMapper.getReportRate(workOrders.get(0).getProductCode()); - if(reportRate != null){ - BigDecimal newQuantity = sHzWorks.getQuantityFeedback().multiply(reportRate); - sHzWorks.setQuantityFeedback(newQuantity); - } - //机器=sum(工时数) 【设备开机时间】 Sac1 - //人工 = sum(每批的工时数*每批用人数) Sac2 - //子工单报工 - logger.info("==========================一层工单报工开始"); - sHzWorks.setMachineCode(mesReportWork.getMachineCode()); - sapRson = this.reportHzToSap(sHzWorks); - logger.info("==========================一层工单报工结束:"+JSONObject.toJSONString(sapRson)); - }else if(workOrders.size()==2){ - /**(两层报工)子工单先报工,然后母工单报工**/ - mesReportWork.setUploadStatus("1");//除了1报工成功的,都需要报工 - mesReportWork.setProdType("prod"); - mesReportWork.setWorkorderCode(workOrders.get(0).getWorkorderCode()); - mesReportWork.setMachineCode(mesReportWork.getMachineCode()); - MesReportWork sHzWorks = mesReportWorkMapper.getReportWorkHz(mesReportWork); - - if(sHzWorks==null){//再去查预报工的一条数,带出基本数据,其它全部赋值0 - sHzWorks = mesReportWorkMapper.getReportWorkHzAttr1(mesReportWork); - } - - if(sHzWorks==null){ - return R.fail("未查询到子报工单"); - } - - //子工单报工 - logger.info("==========================子工单报工开始"); - sHzWorks.setMachineCode(mesReportWork.getMachineCode()); - sapRson = this.reportHzToSap(sHzWorks); - logger.info("==========================子工单报工结束:"+JSONObject.toJSONString(sapRson)); - if(sapRson.getCode()== 200){ - //一定是子单报工成功返回后,再母单报工 - mesReportWork.setWorkorderCode(workOrders.get(1).getWorkorderCode()); - mesReportWork.setMachineCode(mesReportWork.getMachineCode()); - MesReportWork pHzWork = mesReportWorkMapper.getReportWorkHz(mesReportWork); - - if(pHzWork==null){//再去查预报工的一条数,带出基本数据,其它全部赋值0 - pHzWork = mesReportWorkMapper.getReportWorkHzAttr1(mesReportWork); - } - - if(pHzWork==null){ - return R.fail("未查询到母报工单"); - } - try { - Thread.sleep(3000); - }catch (Exception e){ - e.printStackTrace(); - } - //母工单报工 - logger.info("==========================母工单报工开始"); - //查询base_product的report_rate//箱子-大盒-小盒 - BigDecimal reportRate = mesReportWorkMapper.getReportRate(workOrders.get(1).getProductCode()); - if(reportRate != null){ - BigDecimal newQuantity = sHzWorks.getQuantityFeedback().divide(reportRate,2, RoundingMode.HALF_UP); - pHzWork.setQuantityFeedback(newQuantity); - }else{ - pHzWork.setQuantityFeedback(sHzWorks.getQuantityFeedback()); - } - pHzWork.setMachineCode(mesReportWork.getMachineCode()); - //pHzWork.setSac2("4");//母单报工固定值(上位机插入数据时候默认4) - R sapR = this.reportHzToSap(pHzWork); - logger.info("==========================母工单报工结束"+JSONObject.toJSONString(sapR)); - return sapR; - } - - }else if(workOrders.size()>=3){ - BigDecimal gamng = null; - BigDecimal bottomQua = BigDecimal.ZERO; - for(int n=0;n 1){ - //查询base_product的report_rate//箱子-大盒-小盒 - BigDecimal reportRate = mesReportWorkMapper.getReportRate(workOrders.get(n).getProductCode()); - if(reportRate != null){ - BigDecimal newQuantity = bottomQua.divide(reportRate,2, RoundingMode.HALF_UP); - sHzWorks.setQuantityFeedback(newQuantity); + + if(sHzWorks==null){ + return R.fail("未查询到子报工单"); + } + + //子工单报工 + logger.info("==========================子工单报工开始"); + sHzWorks.setMachineCode(mesReportWork.getMachineCode()); + sapRson = this.reportHzToSap(sHzWorks); + logger.info("==========================子工单报工结束:"+JSONObject.toJSONString(sapRson)); + if(sapRson.getCode()== 200){ + //一定是子单报工成功返回后,再母单报工 + mesReportWork.setWorkorderCode(workOrders.get(1).getWorkorderCode()); + mesReportWork.setMachineCode(mesReportWork.getMachineCode()); + MesReportWork pHzWork = mesReportWorkMapper.getReportWorkHz(mesReportWork); + + if(pHzWork==null){//再去查预报工的一条数,带出基本数据,其它全部赋值0 + pHzWork = mesReportWorkMapper.getReportWorkHzAttr1(mesReportWork); } + + if(pHzWork==null){ + return R.fail("未查询到母报工单"); + } + try { + Thread.sleep(3000); + }catch (Exception e){ + e.printStackTrace(); + } + //母工单报工 + logger.info("==========================母工单报工开始"); + //查询base_product的report_rate//箱子-大盒-小盒 + BigDecimal reportRate = mesReportWorkMapper.getReportRate(workOrders.get(1).getProductCode()); + if(reportRate != null){ + BigDecimal newQuantity = sHzWorks.getQuantityFeedback().divide(reportRate,2, RoundingMode.HALF_UP); + pHzWork.setQuantityFeedback(newQuantity); + }else{ + pHzWork.setQuantityFeedback(sHzWorks.getQuantityFeedback()); + } + pHzWork.setMachineCode(mesReportWork.getMachineCode()); + //pHzWork.setSac2("4");//母单报工固定值(上位机插入数据时候默认4) + R sapR = this.reportHzToSap(pHzWork); + logger.info("==========================母工单报工结束"+JSONObject.toJSONString(sapR)); + return sapR; + } + + }else if(workOrders.size()>=3){ + BigDecimal gamng = null; + BigDecimal bottomQua = BigDecimal.ZERO; + for(int n=0;n 1){ + //查询base_product的report_rate//箱子-大盒-小盒 + BigDecimal reportRate = mesReportWorkMapper.getReportRate(workOrders.get(n).getProductCode()); + if(reportRate != null){ + BigDecimal newQuantity = bottomQua.divide(reportRate,2, RoundingMode.HALF_UP); + sHzWorks.setQuantityFeedback(newQuantity); + } // else{ // sHzWorks.setQuantityFeedback(sHzWorks.getQuantityFeedback()); // } - } - sHzWorks.setMachineCode(mesReportWork.getMachineCode()); - sapRson = this.reportHzToSap3(sHzWorks); - logger.info("==========================三层(第"+n+"层)以上工单("+sHzWorks.getWorkorderCodeSap()+")报工结束:" - + JSONObject.toJSONString(sapRson)); - if (sapRson.getCode() == 200) { - try { - Thread.sleep(3000); - } catch (Exception e) { - e.printStackTrace(); } - }else{ - //报工不成功跳出循环 - break; + sHzWorks.setMachineCode(mesReportWork.getMachineCode()); + sapRson = this.reportHzToSap3(sHzWorks); + logger.info("==========================三层(第"+n+"层)以上工单("+sHzWorks.getWorkorderCodeSap()+")报工结束:" + + JSONObject.toJSONString(sapRson)); + if (sapRson.getCode() == 200) { + try { + Thread.sleep(3000); + } catch (Exception e) { + e.printStackTrace(); + } + }else{ + //报工不成功跳出循环 + break; + } } } + return sapRson; + }finally { + DynamicDataSourceContextHolder.poll(); } - return sapRson; + + } @Override @@ -684,44 +708,49 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { @Override public Map getWhiteBoardEquPro7Days(BoardDTO boardDTO) { DynamicDataSourceContextHolder.push("ds_" + boardDTO.getFactory());// 这是数据源的key - Map boardMap = new HashMap(); - List weeks = this.get7Days(); + try { + Map boardMap = new HashMap(); + List weeks = this.get7Days(); - List plans = new ArrayList<>(); - List acts = new ArrayList<>(); - List finishRatio = new ArrayList<>(); - boardDTO.setYmd(weeks.get(0)); + List plans = new ArrayList<>(); + List acts = new ArrayList<>(); + List finishRatio = new ArrayList<>(); + boardDTO.setYmd(weeks.get(0)); - Map actMaps = mesMapper.getEveryDayMap(boardDTO); - Map planMaps = mesMapper.getPlanDayMap(boardDTO); + Map actMaps = mesMapper.getEveryDayMap(boardDTO); + Map planMaps = mesMapper.getPlanDayMap(boardDTO); - for(String dayName:weeks){ - BoardDTO planMap = planMaps.get(dayName); - if(planMap!=null){ - plans.add(planMap.getTotalNum()+""); - }else{ - plans.add("0"); - } - BoardDTO actMap = actMaps.get(dayName); - if(actMap!=null){ - acts.add(actMap.getTotalNum()+""); - }else{ - acts.add("0"); - } - if(planMap!=null&&actMap!=null){ - finishRatio.add( - new BigDecimal(actMap.getTotalNum()).multiply(new BigDecimal("100")) - .divide(new BigDecimal(planMap.getTotalNum()),2,BigDecimal.ROUND_HALF_UP).toString() - ); - }else{ - finishRatio.add("0"); + for(String dayName:weeks){ + BoardDTO planMap = planMaps.get(dayName); + if(planMap!=null){ + plans.add(planMap.getTotalNum()+""); + }else{ + plans.add("0"); + } + BoardDTO actMap = actMaps.get(dayName); + if(actMap!=null){ + acts.add(actMap.getTotalNum()+""); + }else{ + acts.add("0"); + } + if(planMap!=null&&actMap!=null){ + finishRatio.add( + new BigDecimal(actMap.getTotalNum()).multiply(new BigDecimal("100")) + .divide(new BigDecimal(planMap.getTotalNum()),2,BigDecimal.ROUND_HALF_UP).toString() + ); + }else{ + finishRatio.add("0"); + } } + boardMap.put("dayNames",weeks); + boardMap.put("plans",plans); + boardMap.put("acts",acts); + boardMap.put("finishRatio",finishRatio); + return boardMap; + }finally { + DynamicDataSourceContextHolder.poll(); } - boardMap.put("dayNames",weeks); - boardMap.put("plans",plans); - boardMap.put("acts",acts); - boardMap.put("finishRatio",finishRatio); - return boardMap; + } @Override @@ -953,194 +982,222 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { public void dateBKFunc(String poolName, List tables) { DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key - DateTimeFormatter ymdhms = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - LocalDate today = LocalDate.now(); - LocalDate lastMonth3 = today.plus(-3, ChronoUnit.MONTHS); - String ymdhms3 = lastMonth3.format(ymdhms) + " 00:00:00"; + try { + DateTimeFormatter ymdhms = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + LocalDate today = LocalDate.now(); + LocalDate lastMonth3 = today.plus(-3, ChronoUnit.MONTHS); + String ymdhms3 = lastMonth3.format(ymdhms) + " 00:00:00"; - LocalDate lastMonth2 = today.plus(-2, ChronoUnit.MONTHS); - String ymdhms2 = lastMonth2.format(ymdhms) + " 00:00:00"; + LocalDate lastMonth2 = today.plus(-2, ChronoUnit.MONTHS); + String ymdhms2 = lastMonth2.format(ymdhms) + " 00:00:00"; - for (String table : tables) { - //如果月份是 1,4,7,10则创建季度表 - int monthFlag = lastMonth3.getMonthValue(); - int yearFlag = lastMonth3.getYear(); - String tablePre = table + "_" + yearFlag; - String newTable = ""; - if (monthFlag == 1) { - newTable = tablePre + "_01_02_03"; - } else if (monthFlag == 4) { - newTable = tablePre + "_04_05_06"; - } else if (monthFlag == 7) { - newTable = tablePre + "_07_08_09"; - } else if (monthFlag == 10) { - newTable = tablePre + "_10_11_12"; - } - if (!"".equals(newTable)) { - int m = mesMapper.createNewTable(newTable); - } + for (String table : tables) { + //如果月份是 1,4,7,10则创建季度表 + int monthFlag = lastMonth3.getMonthValue(); + int yearFlag = lastMonth3.getYear(); + String tablePre = table + "_" + yearFlag; + String newTable = ""; + if (monthFlag == 1) { + newTable = tablePre + "_01_02_03"; + } else if (monthFlag == 4) { + newTable = tablePre + "_04_05_06"; + } else if (monthFlag == 7) { + newTable = tablePre + "_07_08_09"; + } else if (monthFlag == 10) { + newTable = tablePre + "_10_11_12"; + } + if (!"".equals(newTable)) { + int m = mesMapper.createNewTable(newTable); + } - String addMonthTable = ""; - if (monthFlag >= 1 && monthFlag < 4) { - addMonthTable = tablePre + "_01_02_03"; - } else if (monthFlag >= 4 && monthFlag < 7) { - addMonthTable = tablePre + "_04_05_06"; - } else if (monthFlag >= 7 && monthFlag < 10) { - addMonthTable = tablePre + "_07_08_09"; - } else if (monthFlag >= 10 && monthFlag <= 12) { - addMonthTable = tablePre + "_10_11_12"; + String addMonthTable = ""; + if (monthFlag >= 1 && monthFlag < 4) { + addMonthTable = tablePre + "_01_02_03"; + } else if (monthFlag >= 4 && monthFlag < 7) { + addMonthTable = tablePre + "_04_05_06"; + } else if (monthFlag >= 7 && monthFlag < 10) { + addMonthTable = tablePre + "_07_08_09"; + } else if (monthFlag >= 10 && monthFlag <= 12) { + addMonthTable = tablePre + "_10_11_12"; + } + //先删除备份表数据该月数据 + //mesMapper.deleteBkDate(addMonthTable,ymdhms3,ymdhms2); + //先备份1个月的数据 + mesMapper.copyBkDateByTable(addMonthTable, ymdhms3, ymdhms2); + //删掉历史1个月的数据 + mesMapper.deleteBkDateByTable(ymdhms3, ymdhms2); } - //先删除备份表数据该月数据 - //mesMapper.deleteBkDate(addMonthTable,ymdhms3,ymdhms2); - //先备份1个月的数据 - mesMapper.copyBkDateByTable(addMonthTable, ymdhms3, ymdhms2); - //删掉历史1个月的数据 - mesMapper.deleteBkDateByTable(ymdhms3, ymdhms2); + }finally { + DynamicDataSourceContextHolder.poll(); } + } @Override public String saveLGusedLog(List lgdtos) { DynamicDataSourceContextHolder.push("ds_" + lgdtos.get(0).getFactoryCode());// 这是数据源的key - Date nowTime = DateUtils.getNowDate(); - for (LGInfoDto lgdto : lgdtos) { - lgdto.setId(IdUtils.simpleUUID()); - lgdto.setCreateTime(nowTime); - lgdto.setDeviceCode("L" + lgdto.getDeviceCode()); - } - int saveNum = mesMapper.addBatchLGInfo(lgdtos); + try { + Date nowTime = DateUtils.getNowDate(); + for (LGInfoDto lgdto : lgdtos) { + lgdto.setId(IdUtils.simpleUUID()); + lgdto.setCreateTime(nowTime); + lgdto.setDeviceCode("L" + lgdto.getDeviceCode()); + } + int saveNum = mesMapper.addBatchLGInfo(lgdtos); + + return "保存成功条数:" + saveNum; + }finally { + DynamicDataSourceContextHolder.poll(); + } - return "保存成功条数:" + saveNum; } @Override public Map dryRoomDataHeader(BoardDTO boardDTO) { DynamicDataSourceContextHolder.push("ds_" + boardDTO.getFactory());// 这是数据源的key - //成型机清单 - Map map = new HashMap(); - List> eqmapList = mesMapper.selectcxjList(); - /** - * 成型机 - */ - long cxzc = eqmapList.stream() - .filter(e -> e.get("status").equals("1") && e.get("equipment_type_code").equals("equ_type_cxj") && !e.get("del_flag").equals("1")) - .count(); - /** - * 烘房 - */ - long hfauto = eqmapList.stream() - .filter(e -> e.get("status").equals("1") && e.get("equipment_type_code").equals("equ_type_hf") && !e.get("del_flag").equals("1")) - .count(); - /** - * 收胚机台 - */ - long spzc = eqmapList.stream() - .filter(e -> e.get("status").equals("1") && e.get("equipment_type_code").equals("equ_type_spj") && !e.get("del_flag").equals("1")) - .count(); - - BufferInfoParam bufferInfoParam = new BufferInfoParam(); - bufferInfoParam.setReqCode(IdUtils.fastSimpleUUID()); - bufferInfoParam.setReqTime(DateUtils.dateTimeNow()); - //成型缓存区 - bufferInfoParam.setBufferType("10"); - bufferInfoParam.setFactory(boardDTO.getFactory()); try { - String res = HttpUtils.sendPost("http://192.168.202.23:5001/api/ReceivingAndFeedingMaterials/bufferInfoSync", JSON.toJSONString(bufferInfoParam)); - JsonRootBean jsonRootBean = JSONObject.parseObject(res, JsonRootBean.class); - long count = jsonRootBean.getLocations().stream() - .filter(obj -> !obj.getRfid().isEmpty()) + //成型机清单 + Map map = new HashMap(); + List> eqmapList = mesMapper.selectcxjList(); + /** + * 成型机 + */ + long cxzc = eqmapList.stream() + .filter(e -> e.get("status").equals("1") && e.get("equipment_type_code").equals("equ_type_cxj") && !e.get("del_flag").equals("1")) .count(); - map.put("hcnumber", count); - } catch (Exception e) { - e.printStackTrace(); + /** + * 烘房 + */ + long hfauto = eqmapList.stream() + .filter(e -> e.get("status").equals("1") && e.get("equipment_type_code").equals("equ_type_hf") && !e.get("del_flag").equals("1")) + .count(); + /** + * 收胚机台 + */ + long spzc = eqmapList.stream() + .filter(e -> e.get("status").equals("1") && e.get("equipment_type_code").equals("equ_type_spj") && !e.get("del_flag").equals("1")) + .count(); + + BufferInfoParam bufferInfoParam = new BufferInfoParam(); + bufferInfoParam.setReqCode(IdUtils.fastSimpleUUID()); + bufferInfoParam.setReqTime(DateUtils.dateTimeNow()); + //成型缓存区 + bufferInfoParam.setBufferType("10"); + bufferInfoParam.setFactory(boardDTO.getFactory()); + try { + String res = HttpUtils.sendPost("http://192.168.202.23:5001/api/ReceivingAndFeedingMaterials/bufferInfoSync", JSON.toJSONString(bufferInfoParam)); + JsonRootBean jsonRootBean = JSONObject.parseObject(res, JsonRootBean.class); + long count = jsonRootBean.getLocations().stream() + .filter(obj -> !obj.getRfid().isEmpty()) + .count(); + map.put("hcnumber", count); + } catch (Exception e) { + e.printStackTrace(); + } + map.put("cxzc", cxzc); + map.put("hfauto", hfauto); + map.put("spzc", spzc); + + + map.put("result", eqmapList); + + return map; + }finally { + DynamicDataSourceContextHolder.poll(); } - map.put("cxzc", cxzc); - map.put("hfauto", hfauto); - map.put("spzc", spzc); - - - map.put("result", eqmapList); - - return map; } @Override public Map dryRoomDataCarousel(BoardDTO boardDTO) { DynamicDataSourceContextHolder.push("ds_" + boardDTO.getFactory());// 这是数据源的key - Map map = new HashMap(); - //查询烘房信息 - List> dryingRoomListInfo = mesMapper.selectdryingRoomListInfo(); + try { + Map map = new HashMap(); + //查询烘房信息 + List> dryingRoomListInfo = mesMapper.selectdryingRoomListInfo(); - List energyExpendList=this.EnergyExpend(); + List energyExpendList=this.EnergyExpend(); - // Iterate over each item in dryingRoomListInfo - for (Map dryingRoomMap : dryingRoomListInfo) { - String attr2 = dryingRoomMap.get("attr2"); // Get the attr2 field value + // Iterate over each item in dryingRoomListInfo + for (Map dryingRoomMap : dryingRoomListInfo) { + String attr2 = dryingRoomMap.get("attr2"); // Get the attr2 field value - // Check for a matching EnergyExpend based on monitorId - for (EnergyExpend energyExpend : energyExpendList) { - if (energyExpend.getMonitorId().equals(attr2)) { - // If monitorId matches attr2, add expend to the Map - dryingRoomMap.put("expend",String.valueOf(energyExpend.getExpend())); - break; // Exit inner loop once a match is found + // Check for a matching EnergyExpend based on monitorId + for (EnergyExpend energyExpend : energyExpendList) { + if (energyExpend.getMonitorId().equals(attr2)) { + // If monitorId matches attr2, add expend to the Map + dryingRoomMap.put("expend",String.valueOf(energyExpend.getExpend())); + break; // Exit inner loop once a match is found + } } } - } - map.put("dryingroomList", dryingRoomListInfo); - /***查询 烘房当班产出**/ - String shiftId = ""; - LocalTime now = LocalTime.now(); + map.put("dryingroomList", dryingRoomListInfo); + /***查询 烘房当班产出**/ + String shiftId = ""; + LocalTime now = LocalTime.now(); - // 定义工作时间段 - LocalTime startTime = LocalTime.of(7, 30); // 7:30 - LocalTime endTime = LocalTime.of(19, 30); // 19:30 + // 定义工作时间段 + LocalTime startTime = LocalTime.of(7, 30); // 7:30 + LocalTime endTime = LocalTime.of(19, 30); // 19:30 - // 检查当前时间是否在工作时间段内 - if (now.isAfter(startTime) && now.isBefore(endTime.plusSeconds(1))) { - shiftId = "5"; // 工作时间 - } else { - shiftId = "2"; // 非工作时间 - } - List mapperHourProductionList = this.getHFDailyProduction(shiftId); + // 检查当前时间是否在工作时间段内 + if (now.isAfter(startTime) && now.isBefore(endTime.plusSeconds(1))) { + shiftId = "5"; // 工作时间 + } else { + shiftId = "2"; // 非工作时间 + } + List mapperHourProductionList = this.getHFDailyProduction(shiftId); - for (Map dryingRoomMap : dryingRoomListInfo) { - String equipment_code = dryingRoomMap.get("equipment_code"); // Get the attr2 field value - // Check for a matching EnergyExpend based on monitorId - for (Map maps : mapperHourProductionList) { - if (maps.get("equipmentCode").equals(equipment_code)) { - // If monitorId matches attr2, add expend to the Map - dryingRoomMap.put("yield",maps.get("RecordCount").toString()); - break; // Exit inner loop once a match is found + for (Map dryingRoomMap : dryingRoomListInfo) { + String equipment_code = dryingRoomMap.get("equipment_code"); // Get the attr2 field value + // Check for a matching EnergyExpend based on monitorId + for (Map maps : mapperHourProductionList) { + if (maps.get("equipmentCode").equals(equipment_code)) { + // If monitorId matches attr2, add expend to the Map + dryingRoomMap.put("yield",maps.get("RecordCount").toString()); + break; // Exit inner loop once a match is found + } } } + return map; + }finally { + DynamicDataSourceContextHolder.poll(); } - return map; + } /**烘房耗电数据**/ private List EnergyExpend(){ DynamicDataSourceContextHolder.push("ds_" + "1000");// 这是数据源的key - - - LocalDate today = LocalDate.now(); // Get today's date + try { + LocalDate today = LocalDate.now(); // Get today's date // Start time set to 00:00 (midnight) on today's date - LocalDateTime startDateTime = today.atTime(LocalTime.MIDNIGHT); // 00:00 + LocalDateTime startDateTime = today.atTime(LocalTime.MIDNIGHT); // 00:00 // End time set to 23:59:59.999999999 on today's date - LocalDateTime endDateTime = today.atTime(LocalTime.MAX); // 23:59:59.999999999 + LocalDateTime endDateTime = today.atTime(LocalTime.MAX); // 23:59:59.999999999 + + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); + return h5ApiMapper.EnergyExpend(startDateTime.format(formatter),endDateTime.format(formatter)); + }finally { + DynamicDataSourceContextHolder.poll(); + } + - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); - return h5ApiMapper.EnergyExpend(startDateTime.format(formatter),endDateTime.format(formatter)); } /***查询 烘房当日产出**/ private List getHFDailyProduction(String shiftId){ DynamicDataSourceContextHolder.push("ds_" + "999");// 这是数据源的key - return mesReportWorkMapper.getHFDailyProduction(shiftId); + try { + return mesReportWorkMapper.getHFDailyProduction(shiftId); + }finally { + DynamicDataSourceContextHolder.poll(); + } + } /**白坯工厂,修正设备**/ @@ -1169,6 +1226,7 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { return error("service == changeTransferResultTask == exception"); } finally { executorService.shutdown(); + DynamicDataSourceContextHolder.poll(); } return success(); } @@ -1180,71 +1238,76 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { private R changeTransferResultFunc(BaseEquipmentDto cxj){ logger.info("++++++++++++" + cxj.getEquipmentCode() + "++++班次交接最后一车数据修正++++++++++"); DynamicDataSourceContextHolder.push("ds_999");// 这是数据源的key - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); // 定义日期格式 - LocalDate today = LocalDate.now(); - LocalDate qianDay = today.minusDays(2); - String qianDayStr = qianDay.format(formatter); // 格式化前天的日期 - LocalDate yesterday = today.minusDays(1); - String yesterdayStr = yesterday.format(formatter); // 格式化昨天的日期 + try { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); // 定义日期格式 + LocalDate today = LocalDate.now(); + LocalDate qianDay = today.minusDays(2); + String qianDayStr = qianDay.format(formatter); // 格式化前天的日期 + LocalDate yesterday = today.minusDays(1); + String yesterdayStr = yesterday.format(formatter); // 格式化昨天的日期 - List changeInfos = new ArrayList<>(); - //昨天的白班开始 - cxj.setYmd(qianDayStr); - cxj.setShiftId("2"); - MesShift changeInfo0 = mesMapper.getChangeInfos(cxj); - changeInfo0.setShiftId(5);//昨天的白班 - changeInfos.add(changeInfo0); - //昨天的白班结束 昨天的夜班开始 - cxj.setYmd(yesterdayStr); - cxj.setShiftId("5"); - MesShift changeInfo1 = mesMapper.getChangeInfos(cxj); - changeInfo1.setShiftId(2);//昨天的夜班 - changeInfos.add(changeInfo1); - //昨天的白班结束 昨天的夜班开始 - cxj.setYmd(yesterdayStr); - cxj.setShiftId("2"); - MesShift changeInfo2 = mesMapper.getChangeInfos(cxj); - changeInfos.add(changeInfo2); + List changeInfos = new ArrayList<>(); + //昨天的白班开始 + cxj.setYmd(qianDayStr); + cxj.setShiftId("2"); + MesShift changeInfo0 = mesMapper.getChangeInfos(cxj); + changeInfo0.setShiftId(5);//昨天的白班 + changeInfos.add(changeInfo0); + //昨天的白班结束 昨天的夜班开始 + cxj.setYmd(yesterdayStr); + cxj.setShiftId("5"); + MesShift changeInfo1 = mesMapper.getChangeInfos(cxj); + changeInfo1.setShiftId(2);//昨天的夜班 + changeInfos.add(changeInfo1); + //昨天的白班结束 昨天的夜班开始 + cxj.setYmd(yesterdayStr); + cxj.setShiftId("2"); + MesShift changeInfo2 = mesMapper.getChangeInfos(cxj); + changeInfos.add(changeInfo2); - if(CollectionUtils.isEmpty(changeInfos)){ - logger.info("++++++++++++班次交接最后一车数据修正:无数据++++++++++"+JSONObject.toJSONString(cxj)); - return R.fail("班次交接最后一车数据修正:无数据"); - } - - if(changeInfos.size()<3){ - logger.info("++++++++++++班次交接最后一车数据修正:修正点缺失(必须三个点)++++++++++"); - return R.fail("班次交接最后一车数据修正:无数据"); - } - - for(int m=0;m todos1 = mesMapper.getUnChangeList(qo);//需要调整的数据 - - qo.setReqCode(yesterdayStr);//工单日期 - ProOrderWorkorderDTO actOrderWork = mesMapper.getActOrderWork(qo); - if(actOrderWork != null){//给需要调整的数据,重新赋值新的班次,工单Id - Date nowDate = DateUtils.getNowDate(); - for(MesStationArrive newtodo:todos1){ - newtodo.setChangeOrderWorkId(actOrderWork.getWorkorderId()); - newtodo.setShiftId(Integer.parseInt(actOrderWork.getShiftId())); - newtodo.setChangeWorkDate(actOrderWork.getProductDate()); - newtodo.setChangeTime(nowDate); - } + if(CollectionUtils.isEmpty(changeInfos)){ + logger.info("++++++++++++班次交接最后一车数据修正:无数据++++++++++"+JSONObject.toJSONString(cxj)); + return R.fail("班次交接最后一车数据修正:无数据"); } - /**mes_material_transfer_result**/ - int n = mesMapper.updateTransferResult(todos1); - logger.info("++++++++++++班次交接最后一车数据修正:班次"+changeInfos.get(m).getShiftId()+"修正成功" - +n+"++++++++++"+JSONObject.toJSONString(todos1)); + + if(changeInfos.size()<3){ + logger.info("++++++++++++班次交接最后一车数据修正:修正点缺失(必须三个点)++++++++++"); + return R.fail("班次交接最后一车数据修正:无数据"); + } + + for(int m=0;m todos1 = mesMapper.getUnChangeList(qo);//需要调整的数据 + + qo.setReqCode(yesterdayStr);//工单日期 + ProOrderWorkorderDTO actOrderWork = mesMapper.getActOrderWork(qo); + if(actOrderWork != null){//给需要调整的数据,重新赋值新的班次,工单Id + Date nowDate = DateUtils.getNowDate(); + for(MesStationArrive newtodo:todos1){ + newtodo.setChangeOrderWorkId(actOrderWork.getWorkorderId()); + newtodo.setShiftId(Integer.parseInt(actOrderWork.getShiftId())); + newtodo.setChangeWorkDate(actOrderWork.getProductDate()); + newtodo.setChangeTime(nowDate); + } + } + /**mes_material_transfer_result**/ + int n = mesMapper.updateTransferResult(todos1); + logger.info("++++++++++++班次交接最后一车数据修正:班次"+changeInfos.get(m).getShiftId()+"修正成功" + +n+"++++++++++"+JSONObject.toJSONString(todos1)); + } + return R.fail("班次交接最后一车数据修正:完成"); + }finally { + DynamicDataSourceContextHolder.poll(); } - return R.fail("班次交接最后一车数据修正:完成"); + } public static void main(String args[]){ diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/PDAServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/PDAServiceImpl.java index baa43e53a..762897efa 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/PDAServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/PDAServiceImpl.java @@ -39,18 +39,27 @@ public class PDAServiceImpl implements PDAService { @Override public List getAllEquipments(BaseEquipmentDto baseEquipmentDto) { DynamicDataSourceContextHolder.push("ds_" + baseEquipmentDto.getFactoryCode()); - return mesMapper.getAllEquipments(baseEquipmentDto); + try { + return mesMapper.getAllEquipments(baseEquipmentDto); + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @Override public int saveRfidWithEquip(BaseEquipmentDto baseEquipmentDto) { DynamicDataSourceContextHolder.push("ds_" + baseEquipmentDto.getFactoryCode()); - baseEquipmentDto.setRecordId(IdUtils.fastSimpleUUID()); - baseEquipmentDto.setCreateBy(SecurityUtils.getUsername()); - baseEquipmentDto.setCreateTime(DateUtils.getNowDate()); - baseEquipmentDto.setRfid(baseEquipmentDto.getRfidNo()); - baseEquipmentDto.setNextMachineCode(baseEquipmentDto.getEquipmentCode()); - return mesMapper.saveRfidWithEquip(baseEquipmentDto); + try { + baseEquipmentDto.setRecordId(IdUtils.fastSimpleUUID()); + baseEquipmentDto.setCreateBy(SecurityUtils.getUsername()); + baseEquipmentDto.setCreateTime(DateUtils.getNowDate()); + baseEquipmentDto.setRfid(baseEquipmentDto.getRfidNo()); + baseEquipmentDto.setNextMachineCode(baseEquipmentDto.getEquipmentCode()); + return mesMapper.saveRfidWithEquip(baseEquipmentDto); + }finally { + DynamicDataSourceContextHolder.poll(); + } } } diff --git a/op-modules/op-open/src/main/java/com/op/open/mapper/OpenMapper.java b/op-modules/op-open/src/main/java/com/op/open/mapper/OpenMapper.java index 020168873..27dffb50e 100644 --- a/op-modules/op-open/src/main/java/com/op/open/mapper/OpenMapper.java +++ b/op-modules/op-open/src/main/java/com/op/open/mapper/OpenMapper.java @@ -1,5 +1,7 @@ package com.op.open.mapper; +import com.op.device.domain.EquEquipment; +import com.op.device.domain.EquRepairWorkOrder; import com.op.system.api.domain.SysNoticeGroup; import com.op.system.api.domain.SysSapLog; import com.op.system.api.domain.device.DeviceRepairOrder; @@ -99,6 +101,12 @@ public interface OpenMapper { int addProductNoBatchs(@Param("list")List everyList); String getProductGroup(String materialCode); + + void insertEquRepairWorkOrders(EquRepairWorkOrder equRepairWorkOrder); + + void updateEquipmentStatuss(EquEquipment equEquipment); + + EquEquipment selectEquEquipmentByEquEquipmentCode(String equipmentCode); // // int updateEquBatchs(@Param("list") List updates); // diff --git a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java index e698dea2d..02fcb2fa3 100644 --- a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java +++ b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java @@ -13,8 +13,14 @@ import com.op.common.core.utils.http.HttpUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.core.web.domain.AjaxResult; import com.op.common.security.utils.SecurityUtils; +import com.op.device.domain.EquEquipment; +import com.op.device.domain.EquRepairWorkOrder; +import com.op.device.mapper.EquEquipmentMapper; +import com.op.device.mapper.EquRepairOrderMapper; +import com.op.device.mapper.EquRepairWorkOrderMapper; import com.op.open.mapper.OpenMapper; import com.op.open.service.OpenService; +import com.op.system.api.RemoteDeviceService; import com.op.system.api.RemoteOpenService; import com.op.system.api.domain.SysNoticeGroup; import com.op.system.api.domain.device.DeviceRepairOrder; @@ -88,6 +94,17 @@ public class OpenServiceImpl implements OpenService { @Autowired private OpenMapper openMapper; + + + @Autowired + private EquRepairOrderMapper equRepairOrderMapper; + + @Autowired + private EquEquipmentMapper equEquipmentMapper; + + @Autowired + private RemoteOpenService remoteOpenService; + private static Pattern p2= Pattern.compile("<[^>]+>"); /** @@ -191,6 +208,8 @@ public class OpenServiceImpl implements OpenService { } catch (Exception e) { dto.setCode("1"); dto.setMessage("MES管理系统接口调用失败"); + }finally { + DynamicDataSourceContextHolder.poll(); } return dto; } @@ -279,7 +298,12 @@ public class OpenServiceImpl implements OpenService { @Override public List getLGInfo(WCSDTO wcsDTO) { DynamicDataSourceContextHolder.push("ds_" + wcsDTO.getFactory());// 这是数据源的key - return openMapper.getLGInfo(wcsDTO); + try { + return openMapper.getLGInfo(wcsDTO); + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @Override @@ -289,39 +313,169 @@ public class OpenServiceImpl implements OpenService { } DynamicDataSourceContextHolder.push("ds_" + equRepairOrderDTO.getFactory()); // 这是数据源的key - ////创建报修单 - DeviceRepairOrder equRepairOrder = new DeviceRepairOrder(); - String serialNum = String.format("%03d", openMapper.selectOrderCodeSerialNumber()); // 获取故障报修流水号 - if (equRepairOrderDTO.getEquipmentCode() == null) { - return error("设备信息不可为空!"); - } - equRepairOrder.setOrderCode("BX" + DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equRepairOrderDTO.getEquipmentCode() + serialNum);// 报修单号 - equRepairOrder.setOrderId(IdUtils.fastSimpleUUID()); // id - equRepairOrder.setEquipmentCode(equRepairOrderDTO.getEquipmentCode()); - equRepairOrder.setOrderSource("上位机"); // 故障来源 - equRepairOrder.setOrderDesc(equRepairOrderDTO.getOrderDesc()); //故障描述 新增加的 - equRepairOrder.setOrderTime(DateUtils.getNowDate()); // 报修时间 - equRepairOrder.setOrderBreakdownTime(DateUtils.getNowDate()); // 故障时间 - if (equRepairOrderDTO.getUserName() != null) { - equRepairOrder.setOrderRepairmanCode(equRepairOrderDTO.getUserName()); // 用户账号 - } - if (equRepairOrderDTO.getUserNickName() != null) { - equRepairOrder.setOrderRepairmanName(equRepairOrderDTO.getUserNickName()); // 用户名称 - } - equRepairOrder.setCreateTime(DateUtils.getNowDate()); - equRepairOrder.setCreateBy(equRepairOrderDTO.getUserName()); - equRepairOrder.setOrderStatus("1"); // 报修单状态 - equRepairOrder.setFactoryCode(equRepairOrderDTO.getFactory()); // 工厂 - if (equRepairOrderDTO.getPhoneNumber() != null) { - equRepairOrder.setOrderConnection(equRepairOrderDTO.getPhoneNumber()); // 联系方式 - } - openMapper.insertEquRepairOrder(equRepairOrder); + try { + ////创建报修单 + DeviceRepairOrder equRepairOrder = new DeviceRepairOrder(); + String serialNum = String.format("%03d", openMapper.selectOrderCodeSerialNumber()); // 获取故障报修流水号 + if (equRepairOrderDTO.getEquipmentCode() == null) { + return error("设备信息不可为空!"); + } + equRepairOrder.setOrderCode("BX" + DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equRepairOrderDTO.getEquipmentCode() + serialNum);// 报修单号 + equRepairOrder.setOrderId(IdUtils.fastSimpleUUID()); // id + equRepairOrder.setEquipmentCode(equRepairOrderDTO.getEquipmentCode()); + equRepairOrder.setOrderSource("上位机"); // 故障来源 + equRepairOrder.setOrderDesc(equRepairOrderDTO.getOrderDesc()); //故障描述 新增加的 + equRepairOrder.setOrderTime(DateUtils.getNowDate()); // 报修时间 + equRepairOrder.setOrderBreakdownTime(DateUtils.getNowDate()); // 故障时间 + if (equRepairOrderDTO.getUserName() != null) { + equRepairOrder.setOrderRepairmanCode(equRepairOrderDTO.getUserName()); // 用户账号 + } + if (equRepairOrderDTO.getUserNickName() != null) { + equRepairOrder.setOrderRepairmanName(equRepairOrderDTO.getUserNickName()); // 用户名称 + } + equRepairOrder.setCreateTime(DateUtils.getNowDate()); + equRepairOrder.setCreateBy(equRepairOrderDTO.getUserName()); + equRepairOrder.setOrderStatus("1"); // 报修单状态 + equRepairOrder.setFactoryCode(equRepairOrderDTO.getFactory()); // 工厂 + if (equRepairOrderDTO.getPhoneNumber() != null) { + equRepairOrder.setOrderConnection(equRepairOrderDTO.getPhoneNumber()); // 联系方式 + } + equRepairOrder.setRepairDestination("立即维修"); + openMapper.insertEquRepairOrder(equRepairOrder); + //自动审核生成维修单 + String code = equRepairOrder.getOrderCode().substring(10); + String workCode = DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + code; + EquRepairWorkOrder equRepairWorkOrder = new EquRepairWorkOrder(); + equRepairWorkOrder.setWorkId(IdUtils.fastSimpleUUID()); //维修工单id + equRepairWorkOrder.setOrderId(equRepairOrder.getOrderId()); //报修Id + equRepairWorkOrder.setOrderCode(equRepairOrder.getOrderCode()); //报修单号 + equRepairWorkOrder.setWorkCode("WX" + workCode); //维修单号 + equRepairWorkOrder.setEquipmentCode(equRepairOrder.getEquipmentCode()); //设备编码 + equRepairWorkOrder.setWorkTeam(equRepairOrder.getWorkTeam()); //维修组 + equRepairWorkOrder.setWorkOutsource("0"); //不委外 + equRepairWorkOrder.setOutWorkCode("无"); //无委外工单号 + equRepairWorkOrder.setWorkHandle("1"); //是否立即维修 1是 0 否 + equRepairWorkOrder.setWorkPlanTime(equRepairOrder.getWorkPlanTime()); //计划维修时间 + equRepairWorkOrder.setWorkPlanDownTime(DateUtils.getNowDate()); + if (equRepairOrder.getWorkPlanDownTime() != null) { //是否停机维修 停机维修时间 + equRepairWorkOrder.setWorkDownMachine("1"); + equRepairWorkOrder.setWorkPlanDownTime(equRepairOrder.getWorkPlanDownTime()); + } else { + equRepairWorkOrder.setWorkDownMachine("0"); + } - ////发企业微信--------------------开始(跟班组有关) - SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒"); //规范时间格式 + equRepairWorkOrder.setWorkFaultDesc(equRepairOrder.getOrderDesc()); + equRepairWorkOrder.setWorkStatus("0"); //工单状态 待维修 + equRepairWorkOrder.setCreateTime(DateUtils.getNowDate()); + equRepairWorkOrder.setCreateBy(SecurityUtils.getUsername()); + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String key = "#header.poolName"; + equRepairWorkOrder.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_", "")); + openMapper.insertEquRepairWorkOrders(equRepairWorkOrder); + + ////审核结果 + equRepairOrder.setOrderStatus("1"); + + ////更新设备状态 + EquEquipment equEquipment = new EquEquipment(); + equEquipment.setEquipmentCode(equRepairOrder.getEquipmentCode()); + equEquipment.setEquipmentStatus("0"); //0故障 + openMapper.updateEquipmentStatuss(equEquipment); + AjaxResult repairSendWeChatResult = repairSendWeChat(equRepairWorkOrder); + + + + ////发企业微信--------------------开始(跟班组有关) + SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒"); //规范时间格式 + SysNoticeGroup noticeQo = new SysNoticeGroup(); + //id写死了? + noticeQo.setNoticeId(10L); + List notices = openMapper.getNoticesGroup(noticeQo); + if(!CollectionUtils.isEmpty(notices)) { + List wecharts = new ArrayList<>(); + List userCodes = notices.stream() + .map(SysNoticeGroup::getUserCode) + .collect(Collectors.toList()); + for (SysNoticeGroup noticeDto : notices) { + WechartDTO wechart0 = new WechartDTO(); + wechart0.setUserId(noticeDto.getWxId()); + String contentInfo = noticeDto.getNoticeContent(); + //设备编码 + contentInfo = contentInfo + .replace("${message}", "\n") + .replace("${equipmentCode}", equRepairOrder.getEquipmentCode()+"\n") + .replace("${orderCode}", equRepairOrder.getOrderCode()+"\n"); + + //故障时间 + if(equRepairOrder.getOrderBreakdownTime() != null){ + contentInfo = contentInfo.replace("${orderBreakdownTime}", myFmt.format(equRepairOrder.getOrderBreakdownTime())+"\n"); + }else{ + contentInfo = contentInfo.replace("${orderBreakdownTime}", "无"+"\n"); + } + + //故障原因 + if(StringUtils.isNotEmpty(equRepairOrder.getOrderDesc())){ + contentInfo = contentInfo.replace("${orderDesc}", equRepairOrder.getOrderDesc()+"\n"); + }else{ + contentInfo = contentInfo.replace("${orderDesc}", "无"+"\n"); + } + + //报修人名字 + if(StringUtils.isNotEmpty(equRepairOrder.getOrderRepairmanName())){ + contentInfo = contentInfo.replace("${orderRepairmanName}", equRepairOrder.getOrderRepairmanName()+"\n"); + }else{ + contentInfo = contentInfo.replace("${orderRepairmanName}", "无"+"\n"); + } + + //查询设备相关信息 + EquEquipmentDTO equ = openMapper.selectEquipmentDetailByEquipmentCode(equRepairOrder.getEquipmentCode()); + if(StringUtils.isNotEmpty(equ.getEquipmentName())){ + contentInfo = contentInfo.replace("${equipmentName}", equ.getEquipmentName()+"\n"); + }else{ + contentInfo = contentInfo.replace("${equipmentName}", "无"+"\n"); + } + //设备位置 + if(StringUtils.isNotEmpty(equ.getEquipmentLocation())){ + contentInfo = contentInfo.replace("${equipmentLocation}", equ.getEquipmentLocation()+"\n"); + }else{ + contentInfo = contentInfo.replace("${equipmentLocation}", "无"+"\n"); + } + + //替换掉

标签 + Pattern p= Pattern.compile("<[^>]+>"); + Matcher m = p.matcher(contentInfo); + contentInfo = m.replaceAll(""); + System.out.println(contentInfo); + + wechart0.setText(contentInfo); + wecharts.add(wechart0); + } + logger.info("上位机报修企业微信提醒请求:" + JSONObject.toJSONString(wecharts)); + if (!CollectionUtils.isEmpty(wecharts)) { + new Thread(() -> { + AjaxResult wxresult = this.sendWeChartMessage(wecharts); + logger.info("上位机报修企业微信提醒结果:" + JSONObject.toJSONString(wxresult)); + + }).start(); + } + //发企业微信--------------------结束 + } + }finally { + DynamicDataSourceContextHolder.poll(); + } + + return success(); + } + + /** + * 维修时发送企业微信 + */ + public AjaxResult repairSendWeChat(EquRepairWorkOrder equRepairWorkOrder) { + ////企业微信维修提醒 + //发企业微信--------------------开始(跟班组有关) + SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒"); //规范时间格式 SysNoticeGroup noticeQo = new SysNoticeGroup(); - //id写死了? - noticeQo.setNoticeId(10L); + noticeQo.setNoticeId(11L); //id写死了? List notices = openMapper.getNoticesGroup(noticeQo); if(!CollectionUtils.isEmpty(notices)) { List wecharts = new ArrayList<>(); @@ -332,48 +486,78 @@ public class OpenServiceImpl implements OpenService { WechartDTO wechart0 = new WechartDTO(); wechart0.setUserId(noticeDto.getWxId()); String contentInfo = noticeDto.getNoticeContent(); - //设备编码 + ////判断是立即维修还是计划性维修 + String workHandle = ""; + if(equRepairWorkOrder.getWorkHandle().equals("1")){ + workHandle = "立即维修"; + }else{ + workHandle = "计划性维修"; + } + ////判断是否需要停机维修 + String workDownMachine = ""; + if(equRepairWorkOrder.getWorkDownMachine().equals("1")){ + workDownMachine = "停机"; + }else{ + workDownMachine = "不停机"; + } + //在前端填的时候,需要判空!!!!!! contentInfo = contentInfo .replace("${message}", "\n") - .replace("${equipmentCode}", equRepairOrder.getEquipmentCode()+"\n") - .replace("${orderCode}", equRepairOrder.getOrderCode()+"\n"); - - //故障时间 - if(equRepairOrder.getOrderBreakdownTime() != null){ - contentInfo = contentInfo.replace("${orderBreakdownTime}", myFmt.format(equRepairOrder.getOrderBreakdownTime())+"\n"); + .replace("${equipmentCode}", equRepairWorkOrder.getEquipmentCode()+"\n") + .replace("${workCode}", equRepairWorkOrder.getWorkCode()+"\n") + .replace("${workHandle}", workHandle+"\n"); + //故障描述 + if(com.op.common.core.utils.StringUtils.isNotEmpty(equRepairWorkOrder.getWorkFaultDesc())){ + contentInfo = contentInfo.replace("${workFaultDesc}", equRepairWorkOrder.getWorkFaultDesc()+"\n"); }else{ - contentInfo = contentInfo.replace("${orderBreakdownTime}", "无"+"\n"); + contentInfo = contentInfo.replace("${workFaultDesc}", "无"+"\n"); } - //故障原因 - if(StringUtils.isNotEmpty(equRepairOrder.getOrderDesc())){ - contentInfo = contentInfo.replace("${orderDesc}", equRepairOrder.getOrderDesc()+"\n"); + //维修组 + if(com.op.common.core.utils.StringUtils.isNotEmpty(equRepairWorkOrder.getWorkTeam())){ + contentInfo = contentInfo.replace("${workTeam}", equRepairWorkOrder.getWorkTeam()+"\n"); }else{ - contentInfo = contentInfo.replace("${orderDesc}", "无"+"\n"); + contentInfo = contentInfo.replace("${workTeam}", "无"+"\n"); } - //报修人名字 - if(StringUtils.isNotEmpty(equRepairOrder.getOrderRepairmanName())){ - contentInfo = contentInfo.replace("${orderRepairmanName}", equRepairOrder.getOrderRepairmanName()+"\n"); + //计划停机维修时间 + if(equRepairWorkOrder.getWorkPlanTime() != null){ + contentInfo = contentInfo.replace("${workPlanTime}", myFmt.format(equRepairWorkOrder.getWorkPlanTime())+"\n"); }else{ - contentInfo = contentInfo.replace("${orderRepairmanName}", "无"+"\n"); + contentInfo = contentInfo.replace("${workPlanTime}", "无"+"\n"); + } + + //计划停机维修时间 + if(equRepairWorkOrder.getWorkPlanDownTime() != null){ + contentInfo = contentInfo.replace("${workPlanDownTime}", myFmt.format(equRepairWorkOrder.getWorkPlanDownTime())+"\n"); + }else{ + contentInfo = contentInfo.replace("${workPlanDownTime}", "无"+"\n"); + } + + //是否停机 + if(com.op.common.core.utils.StringUtils.isNotEmpty(workDownMachine)){ + contentInfo = contentInfo.replace("${workDownMachine}", workDownMachine+"\n"); + }else{ + contentInfo = contentInfo.replace("${workDownMachine}", "无"+"\n"); } //查询设备相关信息 - EquEquipmentDTO equ = openMapper.selectEquipmentDetailByEquipmentCode(equRepairOrder.getEquipmentCode()); - if(StringUtils.isNotEmpty(equ.getEquipmentName())){ + //设备名称 + EquEquipment equ = openMapper.selectEquEquipmentByEquEquipmentCode(equRepairWorkOrder.getEquipmentCode()); + if(com.op.common.core.utils.StringUtils.isNotEmpty(equ.getEquipmentName())){ contentInfo = contentInfo.replace("${equipmentName}", equ.getEquipmentName()+"\n"); }else{ contentInfo = contentInfo.replace("${equipmentName}", "无"+"\n"); } + //设备位置 - if(StringUtils.isNotEmpty(equ.getEquipmentLocation())){ + if(com.op.common.core.utils.StringUtils.isNotEmpty(equ.getEquipmentLocation())){ contentInfo = contentInfo.replace("${equipmentLocation}", equ.getEquipmentLocation()+"\n"); }else{ contentInfo = contentInfo.replace("${equipmentLocation}", "无"+"\n"); } - //替换掉

标签 + //替换标签 Pattern p= Pattern.compile("<[^>]+>"); Matcher m = p.matcher(contentInfo); contentInfo = m.replaceAll(""); @@ -382,153 +566,157 @@ public class OpenServiceImpl implements OpenService { wechart0.setText(contentInfo); wecharts.add(wechart0); } - logger.info("上位机报修企业微信提醒请求:" + JSONObject.toJSONString(wecharts)); + logger.info("报修审核后企业微信提醒维修请求:" + JSONObject.toJSONString(wecharts)); if (!CollectionUtils.isEmpty(wecharts)) { new Thread(() -> { - AjaxResult wxresult = this.sendWeChartMessage(wecharts); - logger.info("上位机报修企业微信提醒结果:" + JSONObject.toJSONString(wxresult)); - + AjaxResult wxresult = remoteOpenService.sendWeChartMessage(wecharts); + logger.info("报修审核后企业微信提醒结果(下一步开始维修):" + JSONObject.toJSONString(wxresult)); }).start(); + } //发企业微信--------------------结束 } - - return success(); + return success("报修审核后,企业微信发送维修信息成功!"); } /**首检 批次成品**/ @Override public int insertQcCheckTaskProduce(QcCheckTaskProduceDTO qcCheckTaskProduce) { DynamicDataSourceContextHolder.push("ds_" + qcCheckTaskProduce.getFactoryCode()); - logger.info("创建检验任务"+qcCheckTaskProduce.getCheckType()+":"+JSONObject.toJSONString(qcCheckTaskProduce)); - // 同一个工单同一个批次,上个检验没完成,下一个不允许执行 - String lastStatus = openMapper.getLastTask(qcCheckTaskProduce); - if(StringUtils.isNotBlank(lastStatus) && !"2".equals(lastStatus)){ - //logger.info("【重复创建任务】orderNo:"+qcCheckTaskProduce.getOrderNo()+";"+"incomeBatchNo:"+qcCheckTaskProduce.getIncomeBatchNo()); - logger.info("【重复创建任务】"+JSONObject.toJSONString(qcCheckTaskProduce)); - return -100; - } - - qcCheckTaskProduce.setCreateTime(DateUtils.getNowDate()); - - String bpDD = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, DateUtils.getNowDate()); - int liushuiNum = openMapper.getTodayMaxNum(qcCheckTaskProduce); - String liushuiStr = String.format("%04d", liushuiNum); - - String createBy = SecurityUtils.getUsername(); - Date nowDate = DateUtils.getNowDate(); - //获取当前所选工厂 - String factoryCode = qcCheckTaskProduce.getFactoryCode(); - String beLongId = IdUtils.fastSimpleUUID(); - qcCheckTaskProduce.setCheckNo(bpDD + liushuiStr); - - /**取检测项**/ - QcCheckTypeProjectDTO qctp = new QcCheckTypeProjectDTO(); - qctp.setTypeId(qcCheckTaskProduce.getCheckType());//生产过程检验 - qctp.setMaterialCode(qcCheckTaskProduce.getMaterialCode());//特性 - - /**qc_user_material取默认检查人**/ - List users = openMapper.getCheckUserBelongLine(qcCheckTaskProduce); - if (CollectionUtils.isEmpty(users)) { - users = openMapper.getCheckUsers(qcCheckTaskProduce.getCheckType()); - } - for (QcUserMaterialDTO user : users) { - user.setId(IdUtils.fastSimpleUUID()); - user.setBelongTo(beLongId); - user.setCheckNo(qcCheckTaskProduce.getCheckNo()); - user.setCreateBy(createBy); - user.setFactoryCode(factoryCode); - user.setCreateTime(nowDate); - } - /**qc_check_task_user**/ - int m = openMapper.addCheckUsers(users); - logger.info(qcCheckTaskProduce.getOrderNo()+":检查人新增" + m + "成功"); - - /**qc_check_type_project**///个性 - List items = openMapper.getTPByTypeMaterial(qctp); - - /**qc_material_group_detail**/ - QcMaterialGroupDetailDTO group = openMapper.getGroupByMaterial(qcCheckTaskProduce.getMaterialCode()); - if (group == null) { - group = new QcMaterialGroupDetailDTO(); - - String initGroup = openMapper.getProductGroup(qcCheckTaskProduce.getMaterialCode()); - if(initGroup != null){//包材共性 - group.setGroupId(initGroup); - }else {//成品蚊香物料组 - group.setGroupId("3dc0655fea3449c59c76a01cc5b91565"); + try { + logger.info("创建检验任务"+qcCheckTaskProduce.getCheckType()+":"+JSONObject.toJSONString(qcCheckTaskProduce)); + // 同一个工单同一个批次,上个检验没完成,下一个不允许执行 + String lastStatus = openMapper.getLastTask(qcCheckTaskProduce); + if(StringUtils.isNotBlank(lastStatus) && !"2".equals(lastStatus)){ + //logger.info("【重复创建任务】orderNo:"+qcCheckTaskProduce.getOrderNo()+";"+"incomeBatchNo:"+qcCheckTaskProduce.getIncomeBatchNo()); + logger.info("【重复创建任务】"+JSONObject.toJSONString(qcCheckTaskProduce)); + return -100; } - } - qctp.setGroupId(group.getGroupId());//共性 - List itemsGG = openMapper.getTPByTypeGroup(qctp); - items.addAll(itemsGG); - /**qc_check_task_detail**/ - if (CollectionUtils.isEmpty(items)) { - return 0;//没有找到检测项目 - } + qcCheckTaskProduce.setCreateTime(DateUtils.getNowDate()); - /**qc_check_task**/ - qcCheckTaskProduce.setRecordId(beLongId); - qcCheckTaskProduce.setFactoryCode(factoryCode); - qcCheckTaskProduce.setCreateTime(nowDate); - if(StringUtils.isNotBlank(qcCheckTaskProduce.getTypeCode())){ - qcCheckTaskProduce.setTypeCode(qcCheckTaskProduce.getTypeCode());//大检验节点 - }else{ - qcCheckTaskProduce.setTypeCode("produce");//大检验节点 - } + String bpDD = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, DateUtils.getNowDate()); + int liushuiNum = openMapper.getTodayMaxNum(qcCheckTaskProduce); + String liushuiStr = String.format("%04d", liushuiNum); - qcCheckTaskProduce.setIncomeTime(DateUtils.getNowDate()); - qcCheckTaskProduce.setSupplierCode(qcCheckTaskProduce.getCarCode()); - qcCheckTaskProduce.setSupplierName(qcCheckTaskProduce.getCarName()); - qcCheckTaskProduce.setCheckManName(null); - qcCheckTaskProduce.setCheckManCode(null); - int m0 = openMapper.insertQcCheckTaskProduce(qcCheckTaskProduce); - logger.info(qcCheckTaskProduce.getOrderNo()+":qc_check_task新增" + m0 + "成功"); + String createBy = SecurityUtils.getUsername(); + Date nowDate = DateUtils.getNowDate(); + //获取当前所选工厂 + String factoryCode = qcCheckTaskProduce.getFactoryCode(); + String beLongId = IdUtils.fastSimpleUUID(); + qcCheckTaskProduce.setCheckNo(bpDD + liushuiStr); - /**qc_check_task_detail**/ - for (QcCheckTaskDetailDTO item : items) { - item.setRecordId(IdUtils.fastSimpleUUID()); - item.setBelongTo(beLongId); - item.setCreateTime(nowDate); - item.setCreateBy(createBy); - item.setFactoryCode(factoryCode); - item.setStatus("Y"); - } - int n = openMapper.addBatch(items); - logger.info(qcCheckTaskProduce.getOrderNo()+":qc_check_task_detail新增" + n + "成功"); + /**取检测项**/ + QcCheckTypeProjectDTO qctp = new QcCheckTypeProjectDTO(); + qctp.setTypeId(qcCheckTaskProduce.getCheckType());//生产过程检验 + qctp.setMaterialCode(qcCheckTaskProduce.getMaterialCode());//特性 - //发企业微信--------------------开始(跟班组有关) - SysNoticeGroup noticeQo = new SysNoticeGroup(); - if(qcCheckTaskProduce.getCheckType().equals("checkTypeCPPC")){ - noticeQo.setNoticeId(12L);//批次成品检验 - } - - List notices = openMapper.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}", qcCheckTaskProduce.getCheckNo()+"\n"); - Matcher matcher = p2.matcher(contentInfo); - contentInfo = matcher.replaceAll(""); - wechart0.setText(contentInfo); - wecharts.add(wechart0); + /**qc_user_material取默认检查人**/ + List users = openMapper.getCheckUserBelongLine(qcCheckTaskProduce); + if (CollectionUtils.isEmpty(users)) { + users = openMapper.getCheckUsers(qcCheckTaskProduce.getCheckType()); } - logger.info("来料检验企业微信提醒请求:" + JSONObject.toJSONString(wecharts)); - if (!CollectionUtils.isEmpty(wecharts)) { - new Thread(() -> { - AjaxResult wxresult = this.sendWeChartMessage(wecharts); - logger.info("来料检验企业微信提醒结果:" + JSONObject.toJSONString(wxresult)); - - }).start(); + for (QcUserMaterialDTO user : users) { + user.setId(IdUtils.fastSimpleUUID()); + user.setBelongTo(beLongId); + user.setCheckNo(qcCheckTaskProduce.getCheckNo()); + user.setCreateBy(createBy); + user.setFactoryCode(factoryCode); + user.setCreateTime(nowDate); } - //发企业微信--------------------结束 + /**qc_check_task_user**/ + int m = openMapper.addCheckUsers(users); + logger.info(qcCheckTaskProduce.getOrderNo()+":检查人新增" + m + "成功"); + + /**qc_check_type_project**///个性 + List items = openMapper.getTPByTypeMaterial(qctp); + + /**qc_material_group_detail**/ + QcMaterialGroupDetailDTO group = openMapper.getGroupByMaterial(qcCheckTaskProduce.getMaterialCode()); + if (group == null) { + group = new QcMaterialGroupDetailDTO(); + + String initGroup = openMapper.getProductGroup(qcCheckTaskProduce.getMaterialCode()); + if(initGroup != null){//包材共性 + group.setGroupId(initGroup); + }else {//成品蚊香物料组 + group.setGroupId("3dc0655fea3449c59c76a01cc5b91565"); + } + } + qctp.setGroupId(group.getGroupId());//共性 + List itemsGG = openMapper.getTPByTypeGroup(qctp); + items.addAll(itemsGG); + + /**qc_check_task_detail**/ + if (CollectionUtils.isEmpty(items)) { + return 0;//没有找到检测项目 + } + + /**qc_check_task**/ + qcCheckTaskProduce.setRecordId(beLongId); + qcCheckTaskProduce.setFactoryCode(factoryCode); + qcCheckTaskProduce.setCreateTime(nowDate); + if(StringUtils.isNotBlank(qcCheckTaskProduce.getTypeCode())){ + qcCheckTaskProduce.setTypeCode(qcCheckTaskProduce.getTypeCode());//大检验节点 + }else{ + qcCheckTaskProduce.setTypeCode("produce");//大检验节点 + } + + qcCheckTaskProduce.setIncomeTime(DateUtils.getNowDate()); + qcCheckTaskProduce.setSupplierCode(qcCheckTaskProduce.getCarCode()); + qcCheckTaskProduce.setSupplierName(qcCheckTaskProduce.getCarName()); + qcCheckTaskProduce.setCheckManName(null); + qcCheckTaskProduce.setCheckManCode(null); + int m0 = openMapper.insertQcCheckTaskProduce(qcCheckTaskProduce); + logger.info(qcCheckTaskProduce.getOrderNo()+":qc_check_task新增" + m0 + "成功"); + + /**qc_check_task_detail**/ + for (QcCheckTaskDetailDTO item : items) { + item.setRecordId(IdUtils.fastSimpleUUID()); + item.setBelongTo(beLongId); + item.setCreateTime(nowDate); + item.setCreateBy(createBy); + item.setFactoryCode(factoryCode); + item.setStatus("Y"); + } + int n = openMapper.addBatch(items); + logger.info(qcCheckTaskProduce.getOrderNo()+":qc_check_task_detail新增" + n + "成功"); + + //发企业微信--------------------开始(跟班组有关) + SysNoticeGroup noticeQo = new SysNoticeGroup(); + if(qcCheckTaskProduce.getCheckType().equals("checkTypeCPPC")){ + noticeQo.setNoticeId(12L);//批次成品检验 + } + + List notices = openMapper.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}", qcCheckTaskProduce.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 = this.sendWeChartMessage(wecharts); + logger.info("来料检验企业微信提醒结果:" + JSONObject.toJSONString(wxresult)); + + }).start(); + } + //发企业微信--------------------结束 + } + return n; + }finally { + DynamicDataSourceContextHolder.poll(); } - return n; + } @Override @@ -702,6 +890,8 @@ public class OpenServiceImpl implements OpenService { } catch (Exception e) { e.printStackTrace(); return error(e.getMessage()); + }finally { + DynamicDataSourceContextHolder.poll(); } } @Override diff --git a/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml b/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml index 95f11ac74..98ef34613 100644 --- a/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml +++ b/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml @@ -49,6 +49,12 @@ product_code = #{item.productCode} + + update base_equipment + set equipment_status = #{equipmentStatus} + where equipment_code = #{equipmentCode} + and del_flag = '0' + select sng.notice_id noticeId, @@ -472,4 +571,59 @@ order by qmg.create_time desc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select equipment_id, equipment_code, equipment_name, equipment_brand, equipment_spec, equipment_type_id, equipment_type_code, equipment_type_name, workshop_id, workshop_code, workshop_name, status, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time, workshop_section, equipment_location, hourly_unit_price, equipment_barcode, equipment_barcode_image, manufacturer, supplier, use_life, buy_time, asset_original_value, net_asset_value, asset_head, fixed_asset_code, department, unit_working_hours, plc_ip, plc_port, del_flag, sap_asset,equipment_status,equipment_category from base_equipment + + + diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java index d068bcff5..dc75491fc 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java @@ -854,32 +854,36 @@ public class ProOrderServiceImpl implements IProOrderService { // Calendar calendar = Calendar.getInstance(); //// calendar.add(Calendar.DAY_OF_MONTH,1);//明天 // sapqo.setCreateTime(calendar.getTime()); -// - SapShopOrderQuery sapqo = new SapShopOrderQuery(); - sapqo.setWerk(poolName.replace("ds_","")); - SapProOrder maxCreateTime = proOrderMapper.getMaxCreatetime(); - if(maxCreateTime == null ){ - sapqo.setErdat(DateFormatUtils.format(new Date(), "yyyyMMdd"));//S_ERDAT(创建日期) 例如:20230923 - }else{ - sapqo.setErdat(maxCreateTime.getCreateTimeStr());//S_ERDAT(创建日期) 例如:20230923 + try { + SapShopOrderQuery sapqo = new SapShopOrderQuery(); + sapqo.setWerk(poolName.replace("ds_","")); + SapProOrder maxCreateTime = proOrderMapper.getMaxCreatetime(); + if(maxCreateTime == null ){ + sapqo.setErdat(DateFormatUtils.format(new Date(), "yyyyMMdd"));//S_ERDAT(创建日期) 例如:20230923 + }else{ + sapqo.setErdat(maxCreateTime.getCreateTimeStr());//S_ERDAT(创建日期) 例如:20230923 + } + + //添加调用sap日志 + SysSapLog sysSapLog = new SysSapLog(); + sysSapLog.setId(IdUtils.fastSimpleUUID()); + sysSapLog.setMesssge(sapqo.toString()); + sysSapLog.setMethod("shopOrderSync"); + sysSapLog.setReqcode("请求"); + sysSapLog.setCreateTime(DateUtils.getNowDate()); + proOrderMapper.addSapLog(sysSapLog); + + R> rSapProOrder = remoteSapService.shopOrderSync(sapqo); + List newOrders = rSapProOrder.getData(); + if(CollectionUtils.isEmpty(newOrders)){ + System.out.println("无"+sapqo.getErdat()+"之后的最新订单"); + }else { + syncSAPFunc(newOrders, "Job"); + } + }finally { + DynamicDataSourceContextHolder.poll(); } - //添加调用sap日志 - SysSapLog sysSapLog = new SysSapLog(); - sysSapLog.setId(IdUtils.fastSimpleUUID()); - sysSapLog.setMesssge(sapqo.toString()); - sysSapLog.setMethod("shopOrderSync"); - sysSapLog.setReqcode("请求"); - sysSapLog.setCreateTime(DateUtils.getNowDate()); - proOrderMapper.addSapLog(sysSapLog); - - R> rSapProOrder = remoteSapService.shopOrderSync(sapqo); - List newOrders = rSapProOrder.getData(); - if(CollectionUtils.isEmpty(newOrders)){ - System.out.println("无"+sapqo.getErdat()+"之后的最新订单"); - }else { - syncSAPFunc(newOrders, "Job"); - } } /** 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 b5f39991d..dd0fdec9e 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 @@ -176,107 +176,109 @@ public class QcCheckTaskProduceServiceImpl implements IQcCheckTaskProduceService factoryCode = request.getHeader(key.substring(8)).replace("ds_",""); } - qcCheckTaskProduce.setCreateTime(DateUtils.getNowDate()); + try { - String bpDD = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, DateUtils.getNowDate()); - int liushuiNum = qcCheckTaskProduceMapper.getTodayMaxNum(qcCheckTaskProduce); - String liushuiStr = String.format("%04d", liushuiNum); + qcCheckTaskProduce.setCreateTime(DateUtils.getNowDate()); - String createBy = SecurityUtils.getUsername(); - Date nowDate = DateUtils.getNowDate(); + String bpDD = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, DateUtils.getNowDate()); + int liushuiNum = qcCheckTaskProduceMapper.getTodayMaxNum(qcCheckTaskProduce); + String liushuiStr = String.format("%04d", liushuiNum); - qcCheckTaskProduce.setCheckNo(bpDD+liushuiStr); + String createBy = SecurityUtils.getUsername(); + Date nowDate = DateUtils.getNowDate(); - /**取检测项**/ - QcCheckTypeProject qctp= new QcCheckTypeProject(); - qctp.setTypeId(qcCheckTaskProduce.getCheckType());//生产过程检验 - qctp.setMaterialCode(qcCheckTaskProduce.getMaterialCode());//特性 - /**qc_check_type_project**///个性 - List items = qcCheckTypeProjectMapper.getTPByTypeMaterial(qctp); + qcCheckTaskProduce.setCheckNo(bpDD+liushuiStr); - /**qc_material_group_detail**/ - QcMaterialGroupDetail group = qcMaterialGroupDetailMapper.getGroupByMaterial(qcCheckTaskProduce.getMaterialCode()); - if(group == null){ - group = new QcMaterialGroupDetail(); - QcProjectType initGroup = qcCheckTypeProjectMapper.getProductGroup(qcCheckTaskProduce.getMaterialCode()); - if(initGroup != null){//包材共性 - group.setGroupId(initGroup.getGroupId()); - }else {//成品蚊香物料组 - group.setGroupId("3dc0655fea3449c59c76a01cc5b91565"); - } - } - qctp.setGroupId(group.getGroupId());//共性 - List itemsGG = qcCheckTypeProjectMapper.getTPByTypeGroup(qctp); - items.addAll(itemsGG); + /**取检测项**/ + QcCheckTypeProject qctp= new QcCheckTypeProject(); + qctp.setTypeId(qcCheckTaskProduce.getCheckType());//生产过程检验 + qctp.setMaterialCode(qcCheckTaskProduce.getMaterialCode());//特性 + /**qc_check_type_project**///个性 + List items = qcCheckTypeProjectMapper.getTPByTypeMaterial(qctp); - /**qc_check_task_detail**/ - if(CollectionUtils.isEmpty(items)){ - return 0;//没有找到检测项目 - } - - /**qc_check_task**/ - String beLongId = IdUtils.fastSimpleUUID(); - qcCheckTaskProduce.setRecordId(beLongId); - qcCheckTaskProduce.setFactoryCode(factoryCode); - qcCheckTaskProduce.setCreateTime(nowDate); - qcCheckTaskProduce.setTypeCode("produce");//大检验节点 - /**qc_task_user start**/ - List users = null; - if(StringUtils.isNotBlank(qcCheckTaskProduce.getCheckManName())){ - String checkManName = qcCheckTaskProduce.getCheckManName(); - String checkManCode = qcCheckTaskProduce.getCheckManCode(); - qcCheckTaskProduce.setCheckManName(""); - qcCheckTaskProduce.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(qcCheckTaskProduce.getCheckNo()); - qcCheckTaskUser.setBelongTo(beLongId); - qcCheckTaskUserList.add(qcCheckTaskUser); - } - //检验人插入 - qcCheckTaskUserService.insertQcCheckTaskUserList(qcCheckTaskUserList); - }else{//上位机 - qcCheckTaskProduce.setCheckManName(""); - qcCheckTaskProduce.setCheckManCode(""); - /**qc_user_material取默认检查人**/ - QcCheckTaskIncome qcCheckTaskIncome = new QcCheckTaskIncome(); - qcCheckTaskIncome.setCheckType(qcCheckTaskProduce.getCheckType()); - qcCheckTaskIncome.setMaterialCode(qcCheckTaskProduce.getMaterialCode()); - qcCheckTaskIncome.setCheckLoc(qcCheckTaskProduce.getCheckLoc()); - users = qcCheckTaskIncomeMapper.getCheckUserBelongLine(qcCheckTaskIncome); - if(CollectionUtils.isEmpty(users)){ - users = qcCheckTaskIncomeMapper.getUserByCheckType(qcCheckTaskProduce.getCheckType()); - } - - if(!CollectionUtils.isEmpty(users)){ - for(QcUserMaterialDTO user:users){ - user.setId(IdUtils.fastSimpleUUID()); - user.setBelongTo(beLongId); - user.setCheckNo(qcCheckTaskProduce.getCheckNo()); - user.setCreateBy(createBy); - user.setFactoryCode(factoryCode); - user.setCreateTime(nowDate); + /**qc_material_group_detail**/ + QcMaterialGroupDetail group = qcMaterialGroupDetailMapper.getGroupByMaterial(qcCheckTaskProduce.getMaterialCode()); + if(group == null){ + group = new QcMaterialGroupDetail(); + QcProjectType initGroup = qcCheckTypeProjectMapper.getProductGroup(qcCheckTaskProduce.getMaterialCode()); + if(initGroup != null){//包材共性 + group.setGroupId(initGroup.getGroupId()); + }else {//成品蚊香物料组 + group.setGroupId("3dc0655fea3449c59c76a01cc5b91565"); } - int m=qcCheckTaskIncomeMapper.addCheckUsers(users); - logger.info("检查人新增"+m+"成功"); } - } - /** 不良品数据插入 */ - BigDecimal noOkQuality = new BigDecimal(0); - List defectList = qcCheckTaskProduce.getDefects(); - if (!CollectionUtils.isEmpty(defectList)) { - for (QcCheckTaskDefect defect : defectList) { + qctp.setGroupId(group.getGroupId());//共性 + List itemsGG = qcCheckTypeProjectMapper.getTPByTypeGroup(qctp); + items.addAll(itemsGG); + + /**qc_check_task_detail**/ + if(CollectionUtils.isEmpty(items)){ + return 0;//没有找到检测项目 + } + + /**qc_check_task**/ + String beLongId = IdUtils.fastSimpleUUID(); + qcCheckTaskProduce.setRecordId(beLongId); + qcCheckTaskProduce.setFactoryCode(factoryCode); + qcCheckTaskProduce.setCreateTime(nowDate); + qcCheckTaskProduce.setTypeCode("produce");//大检验节点 + /**qc_task_user start**/ + List users = null; + if(StringUtils.isNotBlank(qcCheckTaskProduce.getCheckManName())){ + String checkManName = qcCheckTaskProduce.getCheckManName(); + String checkManCode = qcCheckTaskProduce.getCheckManCode(); + qcCheckTaskProduce.setCheckManName(""); + qcCheckTaskProduce.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(qcCheckTaskProduce.getCheckNo()); + qcCheckTaskUser.setBelongTo(beLongId); + qcCheckTaskUserList.add(qcCheckTaskUser); + } + //检验人插入 + qcCheckTaskUserService.insertQcCheckTaskUserList(qcCheckTaskUserList); + }else{//上位机 + qcCheckTaskProduce.setCheckManName(""); + qcCheckTaskProduce.setCheckManCode(""); + /**qc_user_material取默认检查人**/ + QcCheckTaskIncome qcCheckTaskIncome = new QcCheckTaskIncome(); + qcCheckTaskIncome.setCheckType(qcCheckTaskProduce.getCheckType()); + qcCheckTaskIncome.setMaterialCode(qcCheckTaskProduce.getMaterialCode()); + qcCheckTaskIncome.setCheckLoc(qcCheckTaskProduce.getCheckLoc()); + users = qcCheckTaskIncomeMapper.getCheckUserBelongLine(qcCheckTaskIncome); + if(CollectionUtils.isEmpty(users)){ + users = qcCheckTaskIncomeMapper.getUserByCheckType(qcCheckTaskProduce.getCheckType()); + } + + if(!CollectionUtils.isEmpty(users)){ + for(QcUserMaterialDTO user:users){ + user.setId(IdUtils.fastSimpleUUID()); + user.setBelongTo(beLongId); + user.setCheckNo(qcCheckTaskProduce.getCheckNo()); + user.setCreateBy(createBy); + user.setFactoryCode(factoryCode); + user.setCreateTime(nowDate); + } + int m=qcCheckTaskIncomeMapper.addCheckUsers(users); + logger.info("检查人新增"+m+"成功"); + } + } + /** 不良品数据插入 */ + BigDecimal noOkQuality = new BigDecimal(0); + List defectList = qcCheckTaskProduce.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()); + //qcCheckTaskDefectService.insertQcCheckTaskDefect(defect); + noOkQuality = noOkQuality.add(defect.getNoOkQuality()==null?new BigDecimal("0"):defect.getNoOkQuality()); + } } - } - qcCheckTaskProduce.setNoOkQuality(noOkQuality); + qcCheckTaskProduce.setNoOkQuality(noOkQuality); // /**qc_sample_rule**/ // QcCheckTaskIncome sampQua = new QcCheckTaskIncome(); @@ -287,64 +289,70 @@ public class QcCheckTaskProduceServiceImpl implements IQcCheckTaskProduceService // qcCheckTaskProduce.setSampleQuality(new BigDecimal(sampNum)); // } - /**qc_check_task**/ - if("LJ01".equals(qcCheckTaskProduce.getProductType())){ - //正常 - qcCheckTaskProduce.setProductType("a"); - }else if("LJ02".equals(qcCheckTaskProduce.getProductType())){ - //返修 - qcCheckTaskProduce.setProductType("b"); - }else if("LJ04".equals(qcCheckTaskProduce.getProductType())){ - //试产 - qcCheckTaskProduce.setProductType("c"); - } - qcCheckTaskProduce.setIncomeTime(DateUtils.getNowDate()); - qcCheckTaskProduceMapper.insertQcCheckTaskProduce(qcCheckTaskProduce); - - /**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 bn = qcCheckTaskDetailMapper.addBatch(items); - - //发企业微信--------------------开始 - SysNoticeGroup noticeQo = new SysNoticeGroup(); - if(qcCheckTaskProduce.getCheckType().equals("checkTypeSC")){ - noticeQo.setNoticeId(19L); - }else if(qcCheckTaskProduce.getCheckType().equals("checkTypeSCXJ")){ - noticeQo.setNoticeId(20L); - } - - 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}", qcCheckTaskProduce.getCheckNo() + "\n"); - Matcher m = p2.matcher(contentInfo); - contentInfo = m.replaceAll(""); - wechart0.setText(contentInfo); - wecharts.add(wechart0); + /**qc_check_task**/ + if("LJ01".equals(qcCheckTaskProduce.getProductType())){ + //正常 + qcCheckTaskProduce.setProductType("a"); + }else if("LJ02".equals(qcCheckTaskProduce.getProductType())){ + //返修 + qcCheckTaskProduce.setProductType("b"); + }else if("LJ04".equals(qcCheckTaskProduce.getProductType())){ + //试产 + qcCheckTaskProduce.setProductType("c"); } - logger.info("质检检验企业微信提醒请求:" + JSONObject.toJSONString(wecharts)); - if (!CollectionUtils.isEmpty(wecharts)) { - CompletableFuture.runAsync(() -> { - System.out.println("异步执行企业微信发送"); - AjaxResult result = remoteOpenService.sendWeChartMessage(wecharts); - logger.info("质检检验企业微信提醒结果:" + JSONObject.toJSONString(result)); - }); + qcCheckTaskProduce.setIncomeTime(DateUtils.getNowDate()); + qcCheckTaskProduceMapper.insertQcCheckTaskProduce(qcCheckTaskProduce); + + /**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 bn = qcCheckTaskDetailMapper.addBatch(items); + + //发企业微信--------------------开始 + SysNoticeGroup noticeQo = new SysNoticeGroup(); + if(qcCheckTaskProduce.getCheckType().equals("checkTypeSC")){ + noticeQo.setNoticeId(19L); + }else if(qcCheckTaskProduce.getCheckType().equals("checkTypeSCXJ")){ + noticeQo.setNoticeId(20L); + } + + 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}", qcCheckTaskProduce.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 bn; + + }finally { + DynamicDataSourceContextHolder.poll(); } - return bn; + + } /** diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskUserServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskUserServiceImpl.java index b3caf4b05..ac48c78b1 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskUserServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskUserServiceImpl.java @@ -143,8 +143,14 @@ public class QcCheckTaskUserServiceImpl implements IQcCheckTaskUserService { @Override public int insertQcCheckTaskUserPDA(List qcCheckTaskUserList) { DynamicDataSourceContextHolder.push("ds_" + qcCheckTaskUserList.get(0).getFactoryCode()); - String factoryCode = qcCheckTaskUserList.get(0).getFactoryCode(); - return this.insertTaskUsers(qcCheckTaskUserList, factoryCode); + try { + String factoryCode = qcCheckTaskUserList.get(0).getFactoryCode(); + return this.insertTaskUsers(qcCheckTaskUserList, factoryCode); + }finally { + DynamicDataSourceContextHolder.poll(); + } + + } private int insertTaskUsers(List qcCheckTaskUserList, String factoryCode) { 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 4fd5470ed..3f40c8e45 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 @@ -124,8 +124,13 @@ public class QcCheckTypeServiceImpl implements IQcCheckTypeService { @Override public List getTopTaskInfo(QcCheckType qcCheckType) { DynamicDataSourceContextHolder.push(qcCheckType.getFactoryCode());// 这是数据源的key - List dtos = qcCheckTypeMapper.getTopTaskInfo(qcCheckType);//检验任务 - return dtos; + try { + List dtos = qcCheckTypeMapper.getTopTaskInfo(qcCheckType);//检验任务 + return dtos; + }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 ad082938a..1585461e6 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 @@ -36,42 +36,47 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService { @Override public List getDictData(QcInterface qcInterface) { DynamicDataSourceContextHolder.push("master"); - return qcInterfaceMapper.getDictData(qcInterface); + try { + return qcInterfaceMapper.getDictData(qcInterface); + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @Override public List getOverallInfo(QcInterface qcInterface) { DynamicDataSourceContextHolder.push(qcInterface.getFactoryCode()); + try { + String nowYMD = DateUtils.getDate(); + qcInterface.setYmd(nowYMD); + qcInterface.setTypeCode("checkTypeLL"); + List dtos = qcInterfaceMapper.getOverallInfo(qcInterface); + if (!CollectionUtils.isEmpty(dtos)) { + QcInterface qi0 = new QcInterface(); + qi0.setYmdTypeName("all"); + qi0.setQuality(dtos.get(0).getQuality()); + dtos.add(qi0); + QcInterface qi1 = new QcInterface(); + qi1.setYmdTypeName("unOk"); + qi1.setQuality(dtos.get(0).getNoOkQuality()); + dtos.add(qi1); + QcInterface qif = new QcInterface(); + qif.setYmdTypeName("okRate"); + if (dtos.get(0).getNoOkQuality().equals("0.00")) { + qif.setQuality("100%"); + } else { + BigDecimal okRate = (new BigDecimal(dtos.get(0).getQuality()) + .subtract(new BigDecimal(dtos.get(0).getNoOkQuality()))) + .multiply(new BigDecimal("100")) + .divide(new BigDecimal(dtos.get(0).getQuality()), 2, RoundingMode.HALF_UP); + qif.setQuality(okRate.toString() + "%"); + } + dtos.add(qif); + dtos.remove(0); + }else{ - String nowYMD = DateUtils.getDate(); - qcInterface.setYmd(nowYMD); - qcInterface.setTypeCode("checkTypeLL"); - List dtos = qcInterfaceMapper.getOverallInfo(qcInterface); - if (!CollectionUtils.isEmpty(dtos)) { - QcInterface qi0 = new QcInterface(); - qi0.setYmdTypeName("all"); - qi0.setQuality(dtos.get(0).getQuality()); - dtos.add(qi0); - QcInterface qi1 = new QcInterface(); - qi1.setYmdTypeName("unOk"); - qi1.setQuality(dtos.get(0).getNoOkQuality()); - dtos.add(qi1); - QcInterface qif = new QcInterface(); - qif.setYmdTypeName("okRate"); - if (dtos.get(0).getNoOkQuality().equals("0.00")) { - qif.setQuality("100%"); - } else { - BigDecimal okRate = (new BigDecimal(dtos.get(0).getQuality()) - .subtract(new BigDecimal(dtos.get(0).getNoOkQuality()))) - .multiply(new BigDecimal("100")) - .divide(new BigDecimal(dtos.get(0).getQuality()), 2, RoundingMode.HALF_UP); - qif.setQuality(okRate.toString() + "%"); - } - dtos.add(qif); - dtos.remove(0); - }else{ - - } + } // /**质量看板测试开始**/ // QcInterface qi0 = new QcInterface(); // qi0.setYmdTypeName("all"); @@ -86,7 +91,11 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService { // qi2.setQuality("0.00%"); // dtos.add(qi2); // /**质量看板测试结束**/ - return dtos; + return dtos; + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @Override @@ -113,57 +122,71 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService { @Override public List getSupplierBadTOP5(QcInterface qcInterface) { DynamicDataSourceContextHolder.push(qcInterface.getFactoryCode()); + try { + String nowYMD = DateUtils.getDate(); + qcInterface.setYmd(nowYMD); + qcInterface.setCheckType("checkTypeLL"); + List dtos = qcInterfaceMapper.getSupplierBadTOP5(qcInterface); + return dtos; + }finally { + DynamicDataSourceContextHolder.poll(); + } - String nowYMD = DateUtils.getDate(); - qcInterface.setYmd(nowYMD); - qcInterface.setCheckType("checkTypeLL"); - List dtos = qcInterfaceMapper.getSupplierBadTOP5(qcInterface); - return dtos; } @Override public List getSupplierTaskList(QcInterface qcInterface) { DynamicDataSourceContextHolder.push(qcInterface.getFactoryCode()); - String nowYMD = DateUtils.getDate(); - qcInterface.setYmd(nowYMD); - List dtos = qcInterfaceMapper.getSupplierTaskList(qcInterface); - for (QcInterface dto : dtos) { - String[] ymdArray = dto.getIncomeTime().split(" ")[0].split("-"); - LocalDate date1 = LocalDate.of(Integer.parseInt(ymdArray[0]), - Integer.parseInt(ymdArray[1]), - Integer.parseInt(ymdArray[2])); - LocalDate date2 = LocalDate.now(); - if (date1.compareTo(date2) < 0) { - dto.setCheckStatus("逾期未检"); - } else { - dto.setCheckStatus("0".equals(dto.getCheckStatus()) ? "待检测" : "检测完成"); - } - dto.setCheckResult("Y".equals(dto.getCheckResult()) ? "合格" : "不合格"); - //不合格原因 - if ("N".equals(dto.getCheckResult())) { - List reasons = qcInterfaceMapper.getReasons(dto); - StringBuffer reasonNames = new StringBuffer(); - for (QcCheckTaskDetail r : reasons) { - reasonNames.append(r.getRuleName()); - reasonNames.append(";"); + try { + String nowYMD = DateUtils.getDate(); + qcInterface.setYmd(nowYMD); + List dtos = qcInterfaceMapper.getSupplierTaskList(qcInterface); + for (QcInterface dto : dtos) { + String[] ymdArray = dto.getIncomeTime().split(" ")[0].split("-"); + LocalDate date1 = LocalDate.of(Integer.parseInt(ymdArray[0]), + Integer.parseInt(ymdArray[1]), + Integer.parseInt(ymdArray[2])); + LocalDate date2 = LocalDate.now(); + if (date1.compareTo(date2) < 0) { + dto.setCheckStatus("逾期未检"); + } else { + dto.setCheckStatus("0".equals(dto.getCheckStatus()) ? "待检测" : "检测完成"); + } + dto.setCheckResult("Y".equals(dto.getCheckResult()) ? "合格" : "不合格"); + //不合格原因 + if ("N".equals(dto.getCheckResult())) { + List reasons = qcInterfaceMapper.getReasons(dto); + StringBuffer reasonNames = new StringBuffer(); + for (QcCheckTaskDetail r : reasons) { + reasonNames.append(r.getRuleName()); + reasonNames.append(";"); + } + dto.setReasons(reasonNames.toString()); } - dto.setReasons(reasonNames.toString()); } + return dtos; + }finally { + DynamicDataSourceContextHolder.poll(); } - return dtos; + } @Override public List getSupplierNoOkList(QcInterface qcInterface) { DynamicDataSourceContextHolder.push(qcInterface.getFactoryCode()); - String nowYMD = DateUtils.getDate(); - qcInterface.setYmd(nowYMD); - List dtos = qcInterfaceMapper.getSupplierNoOkList(qcInterface); - for (QcInterface dto : dtos) { - dto.setCheckStatus("0".equals(dto.getCheckStatus()) ? "待检测" : "检测完成"); - dto.setCheckResult("Y".equals(dto.getCheckResult()) ? "合格" : "不合格"); + try { + String nowYMD = DateUtils.getDate(); + qcInterface.setYmd(nowYMD); + List dtos = qcInterfaceMapper.getSupplierNoOkList(qcInterface); + for (QcInterface dto : dtos) { + dto.setCheckStatus("0".equals(dto.getCheckStatus()) ? "待检测" : "检测完成"); + dto.setCheckResult("Y".equals(dto.getCheckResult()) ? "合格" : "不合格"); + } + return dtos; + }finally { + DynamicDataSourceContextHolder.poll(); } - return dtos; + } @Override @@ -285,50 +308,54 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService { @Override public QcInterface getLineDayNoOk(QcInterface qcInterface) { DynamicDataSourceContextHolder.push(qcInterface.getFactoryCode()); - QcInterface dto = new QcInterface(); + try { + QcInterface dto = new QcInterface(); - Calendar calendar = Calendar.getInstance(); - Date now = calendar.getTime(); - calendar.set(Calendar.DAY_OF_MONTH, 1); - Date firstDayOfMonth = calendar.getTime(); - DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - String startTime = dateFormat.format(firstDayOfMonth); - String endTime = dateFormat.format(now); + Calendar calendar = Calendar.getInstance(); + Date now = calendar.getTime(); + calendar.set(Calendar.DAY_OF_MONTH, 1); + Date firstDayOfMonth = calendar.getTime(); + DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + String startTime = dateFormat.format(firstDayOfMonth); + String endTime = dateFormat.format(now); - //日期名称数组 - List xAxisDatas = getDays(startTime, endTime); - dto.setDayStr(xAxisDatas);// - //通过报工获取到真实参与生产的线体 - List lines = qcInterfaceMapper.getLineNames(startTime.substring(0,7)); - if (CollectionUtils.isEmpty(lines)) { - return null; - } - String nowYMD = DateUtils.getDate(); - qcInterface.setYmd(nowYMD); - qcInterface.setYmdType("yyyy"); - Map noOkHzs = qcInterfaceMapper.getDayNoOkHz(qcInterface); - if (CollectionUtils.isEmpty(noOkHzs)) { - return null; - } - List series = new ArrayList<>(); - QcInterface serie = null; - for (QcProCheck line : lines) { - serie = new QcInterface(); - List data = new ArrayList<>(); - serie.setMachineName(line.getMachineName()); - for (String dayStr : xAxisDatas) { - QcInterface dayInfo = noOkHzs.get(line.getMachineCode() + dayStr); - if (dayInfo != null) { - data.add(dayInfo.getNoOkQuality()); - } else { - data.add("0"); - } + //日期名称数组 + List xAxisDatas = getDays(startTime, endTime); + dto.setDayStr(xAxisDatas);// + //通过报工获取到真实参与生产的线体 + List lines = qcInterfaceMapper.getLineNames(startTime.substring(0,7)); + if (CollectionUtils.isEmpty(lines)) { + return null; } - serie.setData(data); - series.add(serie); + String nowYMD = DateUtils.getDate(); + qcInterface.setYmd(nowYMD); + qcInterface.setYmdType("yyyy"); + Map noOkHzs = qcInterfaceMapper.getDayNoOkHz(qcInterface); + if (CollectionUtils.isEmpty(noOkHzs)) { + return null; + } + List series = new ArrayList<>(); + QcInterface serie = null; + for (QcProCheck line : lines) { + serie = new QcInterface(); + List data = new ArrayList<>(); + serie.setMachineName(line.getMachineName()); + for (String dayStr : xAxisDatas) { + QcInterface dayInfo = noOkHzs.get(line.getMachineCode() + dayStr); + if (dayInfo != null) { + data.add(dayInfo.getNoOkQuality()); + } else { + data.add("0"); + } + } + serie.setData(data); + series.add(serie); + } + dto.setSeries(series);// + return dto; + }finally { + DynamicDataSourceContextHolder.poll(); } - dto.setSeries(series);// - return dto; } @Override 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 b8b32cdfc..5cacf318e 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 @@ -49,28 +49,32 @@ public class QcProCheckServiceImpl implements QcProCheckService { @Override public R saveQcProCheck(QcProCheck qcProCheck) { DynamicDataSourceContextHolder.push("ds_" + qcProCheck.getFactoryCode()); - qcProCheck.setId(UUID.randomUUID().toString().replace("-", "")); + try { + qcProCheck.setId(UUID.randomUUID().toString().replace("-", "")); - //上传附件 - if (StringUtils.isNotEmpty(qcProCheck.getFileId())) { - String[] ids = qcProCheck.getFileId().split(","); - List files = new ArrayList<>(); - BaseFileData file = null; - for (String id : ids) { - file = new BaseFileData(); - file.setFileId(IdUtils.fastSimpleUUID()); - file.setFileName(id.split("&fileName=")[1]); - file.setFileAddress(id); - file.setSourceId(qcProCheck.getId()); - file.setCreateBy(SecurityUtils.getUsername()); - file.setCreateTime(new Date()); - files.add(file); + //上传附件 + if (StringUtils.isNotEmpty(qcProCheck.getFileId())) { + String[] ids = qcProCheck.getFileId().split(","); + List files = new ArrayList<>(); + BaseFileData file = null; + for (String id : ids) { + file = new BaseFileData(); + file.setFileId(IdUtils.fastSimpleUUID()); + file.setFileName(id.split("&fileName=")[1]); + file.setFileAddress(id); + file.setSourceId(qcProCheck.getId()); + file.setCreateBy(SecurityUtils.getUsername()); + file.setCreateTime(new Date()); + files.add(file); + } + qcProCheckMapper.insertBaseFileBatch(files); } - qcProCheckMapper.insertBaseFileBatch(files); + qcProCheck.setCreateBy(SecurityUtils.getUsername()); + qcProCheck.setCreateTime(DateUtils.getNowDate()); + qcProCheckMapper.insertQcProCheck(qcProCheck); + }finally { + DynamicDataSourceContextHolder.poll(); } - qcProCheck.setCreateBy(SecurityUtils.getUsername()); - qcProCheck.setCreateTime(DateUtils.getNowDate()); - qcProCheckMapper.insertQcProCheck(qcProCheck); return R.ok(); } @@ -93,23 +97,33 @@ public class QcProCheckServiceImpl implements QcProCheckService { @Override public List selectQcProCheckList(QcProCheck qcProCheck) { DynamicDataSourceContextHolder.push("ds_" + qcProCheck.getFactoryCode()); - return qcProCheckMapper.selectQcProCheckList(qcProCheck); + try { + return qcProCheckMapper.selectQcProCheckList(qcProCheck); + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @Override public QcProCheck getInfoByRfid(QcProCheck qcProCheck) { DynamicDataSourceContextHolder.push("ds_" + qcProCheck.getFactoryCode()); - QcProCheck dto = qcProCheckMapper.getInfoByRfid(qcProCheck); - if (dto == null || StringUtils.isEmpty(dto.getProductCode())) { - dto = new QcProCheck(); - dto.setProductCode("EmptyPallet"); - } else { - if (StringUtils.isNotEmpty(dto.getProductName())) { - dto.setProductSpc(dto.getProductName().split("mm")[0] + "mm"); - } + try { + QcProCheck dto = qcProCheckMapper.getInfoByRfid(qcProCheck); + if (dto == null || StringUtils.isEmpty(dto.getProductCode())) { + dto = new QcProCheck(); + dto.setProductCode("EmptyPallet"); + } else { + if (StringUtils.isNotEmpty(dto.getProductName())) { + dto.setProductSpc(dto.getProductName().split("mm")[0] + "mm"); + } + } + return dto; + }finally { + DynamicDataSourceContextHolder.poll(); } - return dto; + } @Override @@ -122,62 +136,77 @@ public class QcProCheckServiceImpl implements QcProCheckService { public List getDictList(QcProCheck qcProCheck) { DynamicDataSourceContextHolder.push("master"); //qcProCheck.setEquipmentTypeCode("equ_type"); - return qcProCheckMapper.getDictList(qcProCheck); + try { + return qcProCheckMapper.getDictList(qcProCheck); + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @Override public List getCheckTaskList(QcCheckTaskIncome qcCheckTaskIncome) { DynamicDataSourceContextHolder.push(qcCheckTaskIncome.getFactoryCode()); - List dtos = qcProCheckMapper.getCheckTaskList(qcCheckTaskIncome); - for (QcCheckTaskIncome dto : dtos) { - if (StringUtils.isEmpty(dto.getWorkorderCodeSap())) { - dto.setWorkorderCodeSap(dto.getOrderNo()); + try { + List dtos = qcProCheckMapper.getCheckTaskList(qcCheckTaskIncome); + for (QcCheckTaskIncome dto : dtos) { + if (StringUtils.isEmpty(dto.getWorkorderCodeSap())) { + dto.setWorkorderCodeSap(dto.getOrderNo()); + } + + if("checkTypeCP".equals(qcCheckTaskIncome.getCheckType())){//成品检验数量取实际产量 + dto.setQuality(qcProCheckMapper.getMesReportQuality(dto.getOrderNo())); + } } - if("checkTypeCP".equals(qcCheckTaskIncome.getCheckType())){//成品检验数量取实际产量 - dto.setQuality(qcProCheckMapper.getMesReportQuality(dto.getOrderNo())); - } + return dtos; + }finally { + DynamicDataSourceContextHolder.poll(); } - return dtos; } @Override public QcCheckTaskIncome getCheckTaskDetailList(QcCheckTaskDetail qcCheckTaskDetail) { DynamicDataSourceContextHolder.push(qcCheckTaskDetail.getFactoryCode()); - QcCheckTaskIncome dto = qcCheckTaskIncomeMapper.getTaskInfo(qcCheckTaskDetail.getBelongTo()); - List qcCheckTaskDetails = qcCheckTaskIncomeMapper.getCkeckProjectList(qcCheckTaskDetail); - /**qc_check_task_defect**/ - Map defectMap = qcCheckTaskDefectMapper.getDefectMap(qcCheckTaskDetail); + try { + QcCheckTaskIncome dto = qcCheckTaskIncomeMapper.getTaskInfo(qcCheckTaskDetail.getBelongTo()); + List qcCheckTaskDetails = qcCheckTaskIncomeMapper.getCkeckProjectList(qcCheckTaskDetail); + /**qc_check_task_defect**/ + Map defectMap = qcCheckTaskDefectMapper.getDefectMap(qcCheckTaskDetail); - for (QcCheckTaskDetail qcd : qcCheckTaskDetails) { + for (QcCheckTaskDetail qcd : qcCheckTaskDetails) { - if(StringUtils.isNotBlank(qcd.getSampleQuality())){ - qcd.setSampleQuality(qcd.getSampleQuality().replaceAll("\\..*", ""));//去掉小数 + 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 public QcCheckTaskIncome getCheckTaskDetailListCg(QcCheckTaskDetail qcCheckTaskDetail) { 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 861353644..bf3004cde 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 @@ -130,28 +130,31 @@ public class SapController extends BaseController { sysUser.setUserId(1L); R>> dateSources0 = remoteUserService.getPoolNameList(sysUser); List> dateSources = dateSources0.getData(); - dateSources.forEach(dateSource -> { - if (!"ds_999".equals(dateSource.get("poolName"))) { - logger.info("++++++++++++" + dateSource.get("poolName") + "++++bom同步开始++++++++++"); - DynamicDataSourceContextHolder.push(dateSource.get("poolName"));// 这是数据源的key + try { + dateSources.forEach(dateSource -> { + if (!"ds_999".equals(dateSource.get("poolName"))) { + logger.info("++++++++++++" + dateSource.get("poolName") + "++++bom同步开始++++++++++"); + DynamicDataSourceContextHolder.push(dateSource.get("poolName"));// 这是数据源的key + Date maxTime0 = sapBomMapper.getBomMaxTime(); + if (maxTime0 != null) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(maxTime0); + calendar.add(Calendar.DAY_OF_YEAR, 1); + Date maxTime = calendar.getTime(); + qo.setAedat(DateFormatUtils.format(maxTime, "yyyyMMdd"));//修改日期20230923 + } + R r = sapBomService.bomSync(qo); + if (r.getCode() != 200) { + logger.error("++++++++++++" + dateSource.get("poolName") + "同步bom失败,错误信息:" + r.getMsg()); + } + logger.error("++++++++++++" + dateSource.get("poolName") + "++++bom同步结束++++++++++"); + } + }); - Date maxTime0 = sapBomMapper.getBomMaxTime(); - if (maxTime0 != null) { - Calendar calendar = Calendar.getInstance(); - calendar.setTime(maxTime0); - calendar.add(Calendar.DAY_OF_YEAR, 1); - Date maxTime = calendar.getTime(); - qo.setAedat(DateFormatUtils.format(maxTime, "yyyyMMdd"));//修改日期20230923 - } - R r = sapBomService.bomSync(qo); - if (r.getCode() != 200) { - logger.error("++++++++++++" + dateSource.get("poolName") + "同步bom失败,错误信息:" + r.getMsg()); - } - logger.error("++++++++++++" + dateSource.get("poolName") + "++++bom同步结束++++++++++"); - } - }); + }finally { + DynamicDataSourceContextHolder.poll(); + } return R.ok(); - } /** @@ -179,30 +182,35 @@ public class SapController extends BaseController { 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 - qo.setWerks(dateSource.get("poolName").replace("ds_", ""));//工厂 - Date maxTime0 = sapBomMapper.getMaxTime(); - if (maxTime0 != null) { - Calendar calendar = Calendar.getInstance(); - calendar.setTime(maxTime0); - calendar.add(Calendar.DAY_OF_YEAR, 1); - Date maxTime = calendar.getTime(); - qo.setAedat(DateFormatUtils.format(maxTime, "yyyyMMdd"));//修改日期20230923 - } - - R r = sapWorkCenterService.sapWorkCenterSync(qo); - if (r.getCode() == 200) { - List dtos = (List) r.getData(); - if (!CollectionUtils.isEmpty(dtos)) { - sapWorkCenterService.syncWorkCenter(dtos); + try { + dateSources.forEach(dateSource -> { + logger.info("++++++++++++" + dateSource.get("poolName") + "++++工作中心开始++++++++++"); + DynamicDataSourceContextHolder.push(dateSource.get("poolName"));// 这是数据源的key + qo.setWerks(dateSource.get("poolName").replace("ds_", ""));//工厂 + Date maxTime0 = sapBomMapper.getMaxTime(); + if (maxTime0 != null) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(maxTime0); + calendar.add(Calendar.DAY_OF_YEAR, 1); + Date maxTime = calendar.getTime(); + qo.setAedat(DateFormatUtils.format(maxTime, "yyyyMMdd"));//修改日期20230923 } - } else { - logger.error("++++++++++++" + dateSource.get("poolName") + "错误信息:" + r.getMsg()); - } - logger.error("++++++++++++" + dateSource.get("poolName") + "++++工作中心结束++++++++++"); - }); + + R r = sapWorkCenterService.sapWorkCenterSync(qo); + if (r.getCode() == 200) { + List dtos = (List) r.getData(); + if (!CollectionUtils.isEmpty(dtos)) { + sapWorkCenterService.syncWorkCenter(dtos); + } + } else { + logger.error("++++++++++++" + dateSource.get("poolName") + "错误信息:" + r.getMsg()); + } + logger.error("++++++++++++" + dateSource.get("poolName") + "++++工作中心结束++++++++++"); + }); + }finally { + DynamicDataSourceContextHolder.poll(); + } + return R.ok(); } @@ -263,31 +271,35 @@ public class SapController extends BaseController { 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 - sapCustom.setBukrs(dateSource.get("poolName").replace("ds_", ""));//工厂 - Date maxTime0 = sapBomMapper.getCustomMaxTime(); + try { + dateSources.forEach(dateSource -> { + logger.info("++++++++++++" + dateSource.get("poolName") + "++++客户主数据开始++++++++++"); + DynamicDataSourceContextHolder.push(dateSource.get("poolName"));// 这是数据源的key + sapCustom.setBukrs(dateSource.get("poolName").replace("ds_", ""));//工厂 + Date maxTime0 = sapBomMapper.getCustomMaxTime(); - if (maxTime0 != null) { - Calendar calendar = Calendar.getInstance(); - calendar.setTime(maxTime0); - calendar.add(Calendar.DAY_OF_YEAR, 1); - Date maxTime = calendar.getTime(); - sapCustom.setErdat(DateFormatUtils.format(maxTime, "yyyyMMdd"));//修改日期20230923 - } - - R r = sapWorkCenterService.sapCustomSync(sapCustom); - if (r.getCode() == 200) { - List dtos = (List) r.getData(); - if (!CollectionUtils.isEmpty(dtos)) { - sapWorkCenterService.syncCustom(dtos); + if (maxTime0 != null) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(maxTime0); + calendar.add(Calendar.DAY_OF_YEAR, 1); + Date maxTime = calendar.getTime(); + sapCustom.setErdat(DateFormatUtils.format(maxTime, "yyyyMMdd"));//修改日期20230923 } - } else { - logger.error("++++++++++++" + dateSource.get("poolName") + "错误信息:" + r.getMsg()); - } - logger.error("++++++++++++" + dateSource.get("poolName") + "++++客户主数据结束++++++++++"); - }); + + R r = sapWorkCenterService.sapCustomSync(sapCustom); + if (r.getCode() == 200) { + List dtos = (List) r.getData(); + if (!CollectionUtils.isEmpty(dtos)) { + sapWorkCenterService.syncCustom(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/SapBomServiceImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapBomServiceImpl.java index 2b35a3292..7647db214 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapBomServiceImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapBomServiceImpl.java @@ -252,51 +252,56 @@ public class SapBomServiceImpl implements SapBomService { public void createBOM(List sapBomList, List sapBomComponentList) { List newBomList = sapBomList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(SapBom::getBomCode))), ArrayList::new)); - if (newBomList.size() > 0) { - DynamicDataSourceContextHolder.push("ds_1000"); - SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false); - for (SapBom sapBom : newBomList) { - List sapBomComponents; - //查询Bom号是否存在 - SapBom bomModel = this.getMaxRevisionBom(sapBom.getBomCode()); - //存在且版本号大于现有版本 - if (bomModel != null && sapBom.getOptionalBom() != null && Float.parseFloat(sapBom.getOptionalBom()) > Float.parseFloat(bomModel.getOptionalBom())) { - //升级BOM - String bomBo = HandleEnum.BOM.getHandle(sapBom.getFactoryCode(), sapBom.getBomCode(), sapBom.getOptionalBom()); - sapBom.setBomBo(bomBo); - //插入BOM表 - sapBomMapper.insertBaseBom(sapBom); - //筛选组件清单 - sapBomComponents = sapBomComponentList.stream().filter(sbc -> - sbc.getBomCode().equals(sapBom.getBomCode())).collect(Collectors.toList()); - //执行插入 - sapBomComponents.stream().forEach(components -> { - components.setBomBo(bomBo); - sapBomComponentMapper.insertSapBomComponent(components); - }); + DynamicDataSourceContextHolder.push("ds_1000"); + try { + if (newBomList.size() > 0) { - } else if (bomModel == null && sapBom.getOptionalBom() != null) { - //插入初始BOM - String bomBo = HandleEnum.BOM.getHandle(sapBom.getFactoryCode(), sapBom.getBomCode(), sapBom.getOptionalBom()); - sapBom.setBomBo(bomBo); - //插入BOM表 - sapBomMapper.insertBaseBom(sapBom); - //筛选组件清单 - sapBomComponents = sapBomComponentList.stream().filter(sbc -> - sbc.getBomCode().equals(sapBom.getBomCode())).collect(Collectors.toList()); - //执行插入 - sapBomComponents.stream().forEach(components -> { - components.setBomBo(bomBo); - sapBomComponentMapper.insertSapBomComponent(components); - }); + SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false); + for (SapBom sapBom : newBomList) { + List sapBomComponents; + //查询Bom号是否存在 + SapBom bomModel = this.getMaxRevisionBom(sapBom.getBomCode()); + //存在且版本号大于现有版本 + if (bomModel != null && sapBom.getOptionalBom() != null && Float.parseFloat(sapBom.getOptionalBom()) > Float.parseFloat(bomModel.getOptionalBom())) { + //升级BOM + String bomBo = HandleEnum.BOM.getHandle(sapBom.getFactoryCode(), sapBom.getBomCode(), sapBom.getOptionalBom()); + sapBom.setBomBo(bomBo); + //插入BOM表 + sapBomMapper.insertBaseBom(sapBom); + //筛选组件清单 + sapBomComponents = sapBomComponentList.stream().filter(sbc -> + sbc.getBomCode().equals(sapBom.getBomCode())).collect(Collectors.toList()); + //执行插入 + sapBomComponents.stream().forEach(components -> { + components.setBomBo(bomBo); + sapBomComponentMapper.insertSapBomComponent(components); + }); + + } else if (bomModel == null && sapBom.getOptionalBom() != null) { + //插入初始BOM + String bomBo = HandleEnum.BOM.getHandle(sapBom.getFactoryCode(), sapBom.getBomCode(), sapBom.getOptionalBom()); + sapBom.setBomBo(bomBo); + //插入BOM表 + sapBomMapper.insertBaseBom(sapBom); + //筛选组件清单 + sapBomComponents = sapBomComponentList.stream().filter(sbc -> + sbc.getBomCode().equals(sapBom.getBomCode())).collect(Collectors.toList()); + //执行插入 + sapBomComponents.stream().forEach(components -> { + components.setBomBo(bomBo); + sapBomComponentMapper.insertSapBomComponent(components); + }); + + } + sqlSession.commit(); + sqlSession.clearCache(); } - sqlSession.commit(); - sqlSession.clearCache(); - } - + }finally { + DynamicDataSourceContextHolder.poll(); } + } } diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java index efbe18eea..53bc5da10 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java @@ -217,6 +217,8 @@ public class SapItemSyncImpl implements SapItemSyncService { return R.ok(); } catch (Exception e) { return R.fail(e.getMessage()); + }finally { + DynamicDataSourceContextHolder.poll(); } } @@ -349,48 +351,54 @@ public class SapItemSyncImpl implements SapItemSyncService { public String importProducts(List sapBaseProductList,String factoryCode) { - if (StringUtils.isNull(sapBaseProductList) || sapBaseProductList.size() == 0) { - throw new ServiceException("同步物料数据为空!"); - } - int successNum = 0; - int failureNum = 0; - StringBuilder successMsg = new StringBuilder(); - StringBuilder failureMsg = new StringBuilder(); DynamicDataSourceContextHolder.push("ds_"+factoryCode); - for (SapBaseProduct sapBaseProduct : sapBaseProductList) { - try { - // 验证是否存在这个物料 - SapBaseProduct u = sapBaseProductMapper.selectBaseProductByProductCode(sapBaseProduct); - if (StringUtils.isNull(u)) { - BeanValidators.validateWithException(validator, sapBaseProduct); - sapBaseProduct.setCreateBy("job"); - sapBaseProduct.setCreateTime(DateUtils.getNowDate()); - sapBaseProductMapper.insertBaseProduct(sapBaseProduct); - successNum++; - successMsg.append("
" + successNum + "、物料 " + sapBaseProduct.getProductCode() + " 同步成功"); - } else if (!StringUtils.isNull(u)) { - sapBaseProduct.setProductId(u.getProductId()); - sapBaseProduct.setUpdateBy("job"); - sapBaseProduct.setUpdateTime(DateUtils.getNowDate()); - sapBaseProductMapper.updateBaseProduct(sapBaseProduct); - successNum++; - successMsg.append("
" + successNum + "、物料 " + sapBaseProduct.getProductCode() + " 更新成功"); - } - - } catch (Exception e) { - failureNum++; - String msg = "
" + failureNum + "、物料 " + sapBaseProduct.getProductCode() + " 同步失败:"; - failureMsg.append(msg + e.getMessage()); - log.error(msg, e); + try { + if (StringUtils.isNull(sapBaseProductList) || sapBaseProductList.size() == 0) { + throw new ServiceException("同步物料数据为空!"); } + int successNum = 0; + int failureNum = 0; + StringBuilder successMsg = new StringBuilder(); + StringBuilder failureMsg = new StringBuilder(); + + for (SapBaseProduct sapBaseProduct : sapBaseProductList) { + try { + // 验证是否存在这个物料 + SapBaseProduct u = sapBaseProductMapper.selectBaseProductByProductCode(sapBaseProduct); + if (StringUtils.isNull(u)) { + BeanValidators.validateWithException(validator, sapBaseProduct); + sapBaseProduct.setCreateBy("job"); + sapBaseProduct.setCreateTime(DateUtils.getNowDate()); + sapBaseProductMapper.insertBaseProduct(sapBaseProduct); + successNum++; + successMsg.append("
" + successNum + "、物料 " + sapBaseProduct.getProductCode() + " 同步成功"); + } else if (!StringUtils.isNull(u)) { + sapBaseProduct.setProductId(u.getProductId()); + sapBaseProduct.setUpdateBy("job"); + sapBaseProduct.setUpdateTime(DateUtils.getNowDate()); + sapBaseProductMapper.updateBaseProduct(sapBaseProduct); + successNum++; + successMsg.append("
" + successNum + "、物料 " + sapBaseProduct.getProductCode() + " 更新成功"); + } + + } catch (Exception e) { + failureNum++; + String msg = "
" + failureNum + "、物料 " + sapBaseProduct.getProductCode() + " 同步失败:"; + failureMsg.append(msg + e.getMessage()); + log.error(msg, e); + } + } + if (failureNum > 0) { + failureMsg.insert(0, "很抱歉,同步失败!共 " + failureNum + " 条数据格式不正确,错误如下:"); + throw new ServiceException(failureMsg.toString()); + } else { + successMsg.insert(0, "恭喜您,数据已全部同步成功!共 " + successNum + " 条,数据如下:"); + } + return successMsg.toString(); + }finally { + DynamicDataSourceContextHolder.poll(); } - if (failureNum > 0) { - failureMsg.insert(0, "很抱歉,同步失败!共 " + failureNum + " 条数据格式不正确,错误如下:"); - throw new ServiceException(failureMsg.toString()); - } else { - successMsg.insert(0, "恭喜您,数据已全部同步成功!共 " + successNum + " 条,数据如下:"); - } - return successMsg.toString(); + } @Override @@ -1365,6 +1373,8 @@ public class SapItemSyncImpl implements SapItemSyncService { } catch (Exception e) { log.error(e.getMessage()); return R.fail(e.getMessage()); + }finally { + DynamicDataSourceContextHolder.poll(); } } diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapRouterServiceImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapRouterServiceImpl.java index 2df320902..0f466640e 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapRouterServiceImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapRouterServiceImpl.java @@ -52,20 +52,22 @@ public class SapRouterServiceImpl implements SapRouterService { @Override public R sapRouterSync(SapRouterQuery sapRouterQuery) { - int successNum = 0; - int failureNum = 0; - StringBuilder successMsg = new StringBuilder(); - StringBuilder failureMsg = new StringBuilder(); + DynamicDataSourceContextHolder.push("ds_"+sapRouterQuery.getWerks()); try { - // 获取调用 RFC 函数对象 - //获取连接 - // JCoDestination dest = SAPConnUtils.connect(); - JCoRepository repository = dest.getRepository(); - JCoFunction func = repository.getFunction("ZPPR_MES_ROUTING"); - if (func == null) { - throw new RuntimeException("Function does not exist in SAP"); - } - // 配置传入参数 + int successNum = 0; + int failureNum = 0; + StringBuilder successMsg = new StringBuilder(); + StringBuilder failureMsg = new StringBuilder(); + try { + // 获取调用 RFC 函数对象 + //获取连接 + // JCoDestination dest = SAPConnUtils.connect(); + JCoRepository repository = dest.getRepository(); + JCoFunction func = repository.getFunction("ZPPR_MES_ROUTING"); + if (func == null) { + throw new RuntimeException("Function does not exist in SAP"); + } + // 配置传入参数 /* S_MATNR 物料 S_WERKS 工厂 @@ -74,170 +76,214 @@ public class SapRouterServiceImpl implements SapRouterService { S_AEDAT 更改日期 */ - log.info("工艺路线同步入参-------" + sapRouterQuery.toString()); - if (sapRouterQuery.getMatnr()!=null&&sapRouterQuery.getMatnr().size()>0) { - JCoTable S_MATNR = func.getTableParameterList().getTable("S_MATNR"); - for (String matnr:sapRouterQuery.getMatnr()){ - S_MATNR.appendRow(); - S_MATNR.setValue("SIGN", "I"); - S_MATNR.setValue("OPTION", "EQ"); - S_MATNR.setValue("LOW", matnr); + log.info("工艺路线同步入参-------" + sapRouterQuery.toString()); + if (sapRouterQuery.getMatnr()!=null&&sapRouterQuery.getMatnr().size()>0) { + JCoTable S_MATNR = func.getTableParameterList().getTable("S_MATNR"); + for (String matnr:sapRouterQuery.getMatnr()){ + S_MATNR.appendRow(); + S_MATNR.setValue("SIGN", "I"); + S_MATNR.setValue("OPTION", "EQ"); + S_MATNR.setValue("LOW", matnr); + } } - } - if (!StringUtils.isNull(sapRouterQuery.getWerks())) { - JCoTable S_WERKS = func.getTableParameterList().getTable("S_WERKS"); - S_WERKS.appendRow(); - S_WERKS.setValue("SIGN", "I"); - S_WERKS.setValue("OPTION", "EQ"); - S_WERKS.setValue("LOW", sapRouterQuery.getWerks()); - } - - if (!StringUtils.isNull(sapRouterQuery.getArbpl())) { - JCoTable S_ARBPL = func.getTableParameterList().getTable("S_ARBPL"); - S_ARBPL.appendRow(); - S_ARBPL.setValue("SIGN", "I"); - S_ARBPL.setValue("OPTION", "EQ"); - S_ARBPL.setValue("LOW", sapRouterQuery.getArbpl()); - } - if (!StringUtils.isNull(sapRouterQuery.getAndat())) { - JCoTable S_ANDAT = func.getTableParameterList().getTable("S_ANDAT"); - S_ANDAT.appendRow(); - S_ANDAT.setValue("SIGN", "I"); - S_ANDAT.setValue("OPTION", "BT"); - S_ANDAT.setValue("LOW", sapRouterQuery.getAndat()); - S_ANDAT.setValue("HIGH", END_DATE); - } - - if (!StringUtils.isNull(sapRouterQuery.getAedat())) { - JCoTable S_AEDAT = func.getTableParameterList().getTable("S_AEDAT"); - S_AEDAT.appendRow(); - S_AEDAT.setValue("SIGN", "I"); - S_AEDAT.setValue("OPTION", "BT"); - S_AEDAT.setValue("LOW", sapRouterQuery.getAedat()); - S_AEDAT.setValue("HIGH", END_DATE); - } - System.out.println(func.getTableParameterList().getTable("S_MATNR")); - - func.execute(dest);//执行调用函数 - // 获取 内表 - ZMES_PRO - JCoTable maraTable = func.getTableParameterList().getTable("LT_ROUTING"); - // System.out.println("###" + metaData.toString()); - List sapProRouteList = new ArrayList<>(); - DynamicDataSourceContextHolder.push("ds_"+sapRouterQuery.getWerks()); - for (int i = 0; i < maraTable.getNumRows(); i++) { - SapProProcess sapProProcess = new SapProProcess(); - maraTable.setRow(i); - String WERKS = maraTable.getString("WERKS"); - String PLNTY = maraTable.getString("PLNTY"); - String PLNNR = maraTable.getString("PLNNR"); - String PLNAL = maraTable.getString("PLNAL"); - String LOEKZ = maraTable.getString("LOEKZ"); - String MATNR = maraTable.getString("MATNR"); - String MAKTX = maraTable.getString("MAKTX"); - String VERWE = maraTable.getString("VERWE"); - String STATU = maraTable.getString("STATU"); - String LOSVN = maraTable.getString("LOSVN"); - String LOSBS = maraTable.getString("LOSBS"); - String KTEXT = maraTable.getString("KTEXT"); - String VORNR = maraTable.getString("VORNR"); - String STEUS = maraTable.getString("STEUS"); - String KTSCH = maraTable.getString("KTSCH"); - String LTXA1 = maraTable.getString("LTXA1"); - String ANDAT = maraTable.getString("ANDAT"); - String ANNAM = maraTable.getString("ANNAM"); - String AEDAT = maraTable.getString("AEDAT"); - String AENAM = maraTable.getString("AENAM"); - String ARBPL = maraTable.getString("ARBPL"); - String UMREN = maraTable.getString("UMREN"); - String UMREZ = maraTable.getString("UMREZ"); - String BMSCH = maraTable.getString("BMSCH"); - String MEINH = maraTable.getString("MEINH"); - String LAR01 = maraTable.getString("LAR01"); - String VGW01 = maraTable.getString("VGW01"); - String VGE01 = maraTable.getString("VGE01"); - String VGW02 = maraTable.getString("VGW02"); - String VGE02 = maraTable.getString("VGE02"); - String VGW03 = maraTable.getString("VGW03"); - String VGE03 = maraTable.getString("VGE03"); - String VGW04 = maraTable.getString("VGW04"); - String VGE04 = maraTable.getString("VGE04"); - String VGW05 = maraTable.getString("VGW05"); - String VGE05 = maraTable.getString("VGE05"); - String VGW06 = maraTable.getString("VGW06"); - String VGE06 = maraTable.getString("VGE06"); - String UEMUS = maraTable.getString("UEMUS"); - String UEKAN = maraTable.getString("UEKAN"); - String FLIES = maraTable.getString("FLIES"); - String SPMUS = maraTable.getString("SPMUS"); - String SPLIM = maraTable.getString("SPLIM"); - String CKSELKZ = maraTable.getString("CKSELKZ"); - log.info( - "工厂:" + WERKS + - "任务清单类型:" + PLNTY + - "任务清单组码:" + PLNNR + - "组计数器:" + PLNAL + - "删除标识:" + LOEKZ + - "物料号:" + MATNR + - "物料描述:" + MAKTX + - "任务清单使用:" + VERWE + - "状态:" + STATU + - "任务清单描述:" + KTEXT + - " 操作/活动编号:" + VORNR + - "控制码:" + STEUS + - "标准文本码" + KTSCH + - "工序短文本:" + LTXA1 + - "创建日期:" + ANDAT + - "创建者:" + ANNAM + - "更改日期:" + AEDAT + - "更改者:" + AENAM + - "工作中心:" + ARBPL + - "基本数量:" + BMSCH + - "工序计量单位:" + MEINH + - "标准值01(机器):" + VGW01 + - "计量单位01:" + VGE01 + - "标准值02(人工):" + VGW02 + - "计量单位02:" + VGE02 + - "标准值03(折旧):" + VGW03 + - "计量单位03:" + VGE03 + - "标准值04(其它):" + VGW04 + - " 计量单位04:" + VGE04); - // 工艺路线下的工序 - if (StringUtil.isBlank(PLNNR)) { - throw new ServiceException("任务清单组码不能为空"); + if (!StringUtils.isNull(sapRouterQuery.getWerks())) { + JCoTable S_WERKS = func.getTableParameterList().getTable("S_WERKS"); + S_WERKS.appendRow(); + S_WERKS.setValue("SIGN", "I"); + S_WERKS.setValue("OPTION", "EQ"); + S_WERKS.setValue("LOW", sapRouterQuery.getWerks()); } - // 验证是否存在这个工艺路线 - SapProRoute sapProRoute = sapProRouteMapper.selectProRouteByRouteCode(PLNNR); - // 如果工艺路线不存在,直接插入 - if (StringUtils.isNull(sapProRoute)) { - //验证是否存在工序 - sapProProcess.setProcessName(LTXA1); - SapProProcess operation = sapProProcessMapper.selectProProcessByProcessName(sapProProcess); - //验证原材料是否存在 - SapBaseProduct sapBaseProduct = new SapBaseProduct(); - sapBaseProduct.setProductCode(MATNR); - sapBaseProduct = sapBaseProductMapper.selectBaseProductByProductCode(sapBaseProduct); - if (StringUtils.isNull(operation)) { - failureNum++; - failureMsg.append(failureNum + "、工艺路线【" + PLNNR + "】下的工序【" + LTXA1 + "】不存在!"); - } else if (StringUtils.isNull(sapBaseProduct)) { - failureNum++; - failureMsg.append(failureNum + "、工艺路线【" + PLNNR + "】下的物料【" + MATNR + "】不存在!"); - } else if (!StringUtils.isNull(operation) && !StringUtils.isNull(sapBaseProduct)) { - // BeanValidators.validateWithException(validator, sapProRoute); - //添加工艺路线 - sapProRoute = new SapProRoute(); - String routerid = IdUtils.fastSimpleUUID(); - sapProRoute.setRouteId(routerid); - sapProRoute.setRouteCode(PLNNR); - sapProRoute.setProductCode(MATNR); + if (!StringUtils.isNull(sapRouterQuery.getArbpl())) { + JCoTable S_ARBPL = func.getTableParameterList().getTable("S_ARBPL"); + S_ARBPL.appendRow(); + S_ARBPL.setValue("SIGN", "I"); + S_ARBPL.setValue("OPTION", "EQ"); + S_ARBPL.setValue("LOW", sapRouterQuery.getArbpl()); + } + if (!StringUtils.isNull(sapRouterQuery.getAndat())) { + JCoTable S_ANDAT = func.getTableParameterList().getTable("S_ANDAT"); + S_ANDAT.appendRow(); + S_ANDAT.setValue("SIGN", "I"); + S_ANDAT.setValue("OPTION", "BT"); + S_ANDAT.setValue("LOW", sapRouterQuery.getAndat()); + S_ANDAT.setValue("HIGH", END_DATE); + } + + if (!StringUtils.isNull(sapRouterQuery.getAedat())) { + JCoTable S_AEDAT = func.getTableParameterList().getTable("S_AEDAT"); + S_AEDAT.appendRow(); + S_AEDAT.setValue("SIGN", "I"); + S_AEDAT.setValue("OPTION", "BT"); + S_AEDAT.setValue("LOW", sapRouterQuery.getAedat()); + S_AEDAT.setValue("HIGH", END_DATE); + } + System.out.println(func.getTableParameterList().getTable("S_MATNR")); + + func.execute(dest);//执行调用函数 + // 获取 内表 - ZMES_PRO + JCoTable maraTable = func.getTableParameterList().getTable("LT_ROUTING"); + // System.out.println("###" + metaData.toString()); + List sapProRouteList = new ArrayList<>(); + + for (int i = 0; i < maraTable.getNumRows(); i++) { + SapProProcess sapProProcess = new SapProProcess(); + maraTable.setRow(i); + String WERKS = maraTable.getString("WERKS"); + String PLNTY = maraTable.getString("PLNTY"); + String PLNNR = maraTable.getString("PLNNR"); + String PLNAL = maraTable.getString("PLNAL"); + String LOEKZ = maraTable.getString("LOEKZ"); + String MATNR = maraTable.getString("MATNR"); + String MAKTX = maraTable.getString("MAKTX"); + String VERWE = maraTable.getString("VERWE"); + String STATU = maraTable.getString("STATU"); + String LOSVN = maraTable.getString("LOSVN"); + String LOSBS = maraTable.getString("LOSBS"); + String KTEXT = maraTable.getString("KTEXT"); + String VORNR = maraTable.getString("VORNR"); + String STEUS = maraTable.getString("STEUS"); + String KTSCH = maraTable.getString("KTSCH"); + String LTXA1 = maraTable.getString("LTXA1"); + String ANDAT = maraTable.getString("ANDAT"); + String ANNAM = maraTable.getString("ANNAM"); + String AEDAT = maraTable.getString("AEDAT"); + String AENAM = maraTable.getString("AENAM"); + String ARBPL = maraTable.getString("ARBPL"); + String UMREN = maraTable.getString("UMREN"); + String UMREZ = maraTable.getString("UMREZ"); + String BMSCH = maraTable.getString("BMSCH"); + String MEINH = maraTable.getString("MEINH"); + String LAR01 = maraTable.getString("LAR01"); + String VGW01 = maraTable.getString("VGW01"); + String VGE01 = maraTable.getString("VGE01"); + String VGW02 = maraTable.getString("VGW02"); + String VGE02 = maraTable.getString("VGE02"); + String VGW03 = maraTable.getString("VGW03"); + String VGE03 = maraTable.getString("VGE03"); + String VGW04 = maraTable.getString("VGW04"); + String VGE04 = maraTable.getString("VGE04"); + String VGW05 = maraTable.getString("VGW05"); + String VGE05 = maraTable.getString("VGE05"); + String VGW06 = maraTable.getString("VGW06"); + String VGE06 = maraTable.getString("VGE06"); + String UEMUS = maraTable.getString("UEMUS"); + String UEKAN = maraTable.getString("UEKAN"); + String FLIES = maraTable.getString("FLIES"); + String SPMUS = maraTable.getString("SPMUS"); + String SPLIM = maraTable.getString("SPLIM"); + String CKSELKZ = maraTable.getString("CKSELKZ"); + log.info( + "工厂:" + WERKS + + "任务清单类型:" + PLNTY + + "任务清单组码:" + PLNNR + + "组计数器:" + PLNAL + + "删除标识:" + LOEKZ + + "物料号:" + MATNR + + "物料描述:" + MAKTX + + "任务清单使用:" + VERWE + + "状态:" + STATU + + "任务清单描述:" + KTEXT + + " 操作/活动编号:" + VORNR + + "控制码:" + STEUS + + "标准文本码" + KTSCH + + "工序短文本:" + LTXA1 + + "创建日期:" + ANDAT + + "创建者:" + ANNAM + + "更改日期:" + AEDAT + + "更改者:" + AENAM + + "工作中心:" + ARBPL + + "基本数量:" + BMSCH + + "工序计量单位:" + MEINH + + "标准值01(机器):" + VGW01 + + "计量单位01:" + VGE01 + + "标准值02(人工):" + VGW02 + + "计量单位02:" + VGE02 + + "标准值03(折旧):" + VGW03 + + "计量单位03:" + VGE03 + + "标准值04(其它):" + VGW04 + + " 计量单位04:" + VGE04); + // 工艺路线下的工序 + if (StringUtil.isBlank(PLNNR)) { + throw new ServiceException("任务清单组码不能为空"); + } + + // 验证是否存在这个工艺路线 + SapProRoute sapProRoute = sapProRouteMapper.selectProRouteByRouteCode(PLNNR); + // 如果工艺路线不存在,直接插入 + if (StringUtils.isNull(sapProRoute)) { + //验证是否存在工序 + sapProProcess.setProcessName(LTXA1); + SapProProcess operation = sapProProcessMapper.selectProProcessByProcessName(sapProProcess); + //验证原材料是否存在 + SapBaseProduct sapBaseProduct = new SapBaseProduct(); + sapBaseProduct.setProductCode(MATNR); + sapBaseProduct = sapBaseProductMapper.selectBaseProductByProductCode(sapBaseProduct); + if (StringUtils.isNull(operation)) { + failureNum++; + failureMsg.append(failureNum + "、工艺路线【" + PLNNR + "】下的工序【" + LTXA1 + "】不存在!"); + } else if (StringUtils.isNull(sapBaseProduct)) { + failureNum++; + failureMsg.append(failureNum + "、工艺路线【" + PLNNR + "】下的物料【" + MATNR + "】不存在!"); + } else if (!StringUtils.isNull(operation) && !StringUtils.isNull(sapBaseProduct)) { + // BeanValidators.validateWithException(validator, sapProRoute); + //添加工艺路线 + sapProRoute = new SapProRoute(); + String routerid = IdUtils.fastSimpleUUID(); + sapProRoute.setRouteId(routerid); + sapProRoute.setRouteCode(PLNNR); + sapProRoute.setProductCode(MATNR); + sapProRoute.setRouteName(KTEXT); + sapProRoute.setRouteDesc(KTEXT); + sapProRoute.setEnableFlag("Y"); + sapProRoute.setCreateBy(ANNAM); + sapProRoute.setAttr1("job");//说明是来自定时任务 + sapProRoute.setCreateTime(DateUtils.dateTime("yyyy-MM-dd", ANDAT)); + sapProRoute.setRouteVersion("1.0"); + //机器 + sapProRoute.setTecMachine(VGW01); + sapProRoute.setTecMachineUnit(VGE01); + //人工 + sapProRoute.setTecMan(VGW02); + sapProRoute.setTecManUnit(VGE02); + //折旧 + sapProRoute.setTecDepreciation(VGW03); + sapProRoute.setTecDepreciationUnit(VGE03); + //其它 + sapProRoute.setTecOther(VGW04); + sapProRoute.setTecOtherUnit(VGE04); + sapProRouteMapper.insertProRoute(sapProRoute); + + //增加工艺路线和工序的关系 + SapProRouteProcess sapProRouteProcess = new SapProRouteProcess(); + sapProRouteProcess.setRecordId(IdUtils.fastSimpleUUID()); + sapProRouteProcess.setRouteId(routerid); + sapProRouteProcess.setProcessId(operation.getProcessId()); + sapProRouteProcess.setProcessCode(operation.getProcessCode()); + sapProRouteProcess.setProcessName(operation.getProcessName()); + sapProRouteProcess.setOrderNum(1); + sapProRouteProcess.setCreateTime(DateUtils.dateTime("yyyy-MM-dd", ANDAT)); + sapProRouteProcess.setCreateBy(ANNAM); + sapProRouteProcessMapper.insertProRouteProcess(sapProRouteProcess); + //增加与产品的关系 + SapProRouteProduct sapProRouteProduct = new SapProRouteProduct(); + sapProRouteProduct.setRecordId(IdUtils.fastSimpleUUID()); + sapProRouteProduct.setRouteId(routerid); + sapProRouteProduct.setItemId(sapBaseProduct.getProductId()); + sapProRouteProduct.setItemCode(MATNR); + sapProRouteProduct.setItemName(sapBaseProduct.getProductDescZh()); + sapProRouteProduct.setCreateBy(ANNAM); + sapProRouteProduct.setCreateTime(DateUtils.dateTime("yyyy-MM-dd", ANDAT)); + sapProRouteProductMapper.insertProRouteProduct(sapProRouteProduct); + successNum++; + } + } + //更新工艺路线 + else { sapProRoute.setRouteName(KTEXT); + sapProRoute.setProductCode(MATNR); sapProRoute.setRouteDesc(KTEXT); sapProRoute.setEnableFlag("Y"); - sapProRoute.setCreateBy(ANNAM); - sapProRoute.setAttr1("job");//说明是来自定时任务 - sapProRoute.setCreateTime(DateUtils.dateTime("yyyy-MM-dd", ANDAT)); - sapProRoute.setRouteVersion("1.0"); //机器 sapProRoute.setTecMachine(VGW01); sapProRoute.setTecMachineUnit(VGE01); @@ -250,68 +296,27 @@ public class SapRouterServiceImpl implements SapRouterService { //其它 sapProRoute.setTecOther(VGW04); sapProRoute.setTecOtherUnit(VGE04); - sapProRouteMapper.insertProRoute(sapProRoute); - - //增加工艺路线和工序的关系 - SapProRouteProcess sapProRouteProcess = new SapProRouteProcess(); - sapProRouteProcess.setRecordId(IdUtils.fastSimpleUUID()); - sapProRouteProcess.setRouteId(routerid); - sapProRouteProcess.setProcessId(operation.getProcessId()); - sapProRouteProcess.setProcessCode(operation.getProcessCode()); - sapProRouteProcess.setProcessName(operation.getProcessName()); - sapProRouteProcess.setOrderNum(1); - sapProRouteProcess.setCreateTime(DateUtils.dateTime("yyyy-MM-dd", ANDAT)); - sapProRouteProcess.setCreateBy(ANNAM); - sapProRouteProcessMapper.insertProRouteProcess(sapProRouteProcess); - //增加与产品的关系 - SapProRouteProduct sapProRouteProduct = new SapProRouteProduct(); - sapProRouteProduct.setRecordId(IdUtils.fastSimpleUUID()); - sapProRouteProduct.setRouteId(routerid); - sapProRouteProduct.setItemId(sapBaseProduct.getProductId()); - sapProRouteProduct.setItemCode(MATNR); - sapProRouteProduct.setItemName(sapBaseProduct.getProductDescZh()); - sapProRouteProduct.setCreateBy(ANNAM); - sapProRouteProduct.setCreateTime(DateUtils.dateTime("yyyy-MM-dd", ANDAT)); - sapProRouteProductMapper.insertProRouteProduct(sapProRouteProduct); - successNum++; + sapProRoute.setUpdateBy(ANNAM); + sapProRoute.setUpdateTime(DateUtils.getNowDate()); + sapProRouteMapper.updateProRoute(sapProRoute); } } - //更新工艺路线 - else { - sapProRoute.setRouteName(KTEXT); - sapProRoute.setProductCode(MATNR); - sapProRoute.setRouteDesc(KTEXT); - sapProRoute.setEnableFlag("Y"); - //机器 - sapProRoute.setTecMachine(VGW01); - sapProRoute.setTecMachineUnit(VGE01); - //人工 - sapProRoute.setTecMan(VGW02); - sapProRoute.setTecManUnit(VGE02); - //折旧 - sapProRoute.setTecDepreciation(VGW03); - sapProRoute.setTecDepreciationUnit(VGE03); - //其它 - sapProRoute.setTecOther(VGW04); - sapProRoute.setTecOtherUnit(VGE04); - sapProRoute.setUpdateBy(ANNAM); - sapProRoute.setUpdateTime(DateUtils.getNowDate()); - sapProRouteMapper.updateProRoute(sapProRoute); - } - } - if (failureNum > 0) { - failureMsg.insert(0, "很抱歉,同步失败!共 " + failureNum + " 工艺路线异常"); - log.error(failureMsg.toString()); - throw new ServiceException(failureMsg.toString()); - } else { - successMsg.insert(0, "恭喜您,数据同步成功!共 " + successNum + " 条"); + if (failureNum > 0) { + failureMsg.insert(0, "很抱歉,同步失败!共 " + failureNum + " 工艺路线异常"); + log.error(failureMsg.toString()); + throw new ServiceException(failureMsg.toString()); + } else { + successMsg.insert(0, "恭喜您,数据同步成功!共 " + successNum + " 条"); + } + } catch (Exception e) { + log.error(e.getMessage()); + return R.fail(e.getMessage()); } - } catch (Exception e) { - log.error(e.getMessage()); - return R.fail(e.getMessage()); + return R.ok(successMsg.toString()); + }finally { + DynamicDataSourceContextHolder.poll(); } - return R.ok(successMsg.toString()); } } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BaseAreaServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BaseAreaServiceImpl.java index a47c703b4..c0cef7825 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BaseAreaServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BaseAreaServiceImpl.java @@ -138,14 +138,24 @@ public class BaseAreaServiceImpl implements IBaseAreaService { @Override public List selectBaseAreaListSC(BaseArea baseArea) { DynamicDataSourceContextHolder.push("ds_" + baseArea.getFactoryCode()); - return baseAreaMapper.selectBaseAreaList(baseArea); + try { + return baseAreaMapper.selectBaseAreaList(baseArea); + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @Override public BaseWarehouse listTableCK(BaseArea baseArea) { DynamicDataSourceContextHolder.push("ds_" + baseArea.getFactoryCode()); - BaseWarehouse baseWarehouse= baseAreaMapper.selectBaseWarehouse(baseArea); - return baseWarehouse; + try { + BaseWarehouse baseWarehouse= baseAreaMapper.selectBaseWarehouse(baseArea); + return baseWarehouse; + }finally { + DynamicDataSourceContextHolder.poll(); + } + } } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BaseWarehouseServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BaseWarehouseServiceImpl.java index 003defb56..378332a8b 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BaseWarehouseServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BaseWarehouseServiceImpl.java @@ -149,6 +149,11 @@ public class BaseWarehouseServiceImpl implements IBaseWarehouseService { @Override public List selectBaseWarehouseListTWO(BaseWarehouse baseWarehouse) { DynamicDataSourceContextHolder.push("ds_" + baseWarehouse.getFactoryCode()); - return baseWarehouseMapper.selectBaseWarehouseList(baseWarehouse); + try { + return baseWarehouseMapper.selectBaseWarehouseList(baseWarehouse); + }finally { + DynamicDataSourceContextHolder.poll(); + } + } } 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 f311d4f63..d2d275049 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 @@ -171,7 +171,12 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { // @DS("#header.poolName") public List PurchaseOrderPda(OdsProcureOrder odsProcureOrder) { DynamicDataSourceContextHolder.push("ds_" + odsProcureOrder.getFactoryCode()); - return odsProcureOrderMapper.selectOdsProcureOrderList(odsProcureOrder); + try { + return odsProcureOrderMapper.selectOdsProcureOrderList(odsProcureOrder); + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @Override @@ -179,62 +184,71 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { public int PurchaseOrderdeliPda(OdsProcureOrder odsProcureOrder) { //收货记录--rawOrderInSnId。修改收货数量------------- DynamicDataSourceContextHolder.push("ds_" + odsProcureOrder.getFactoryCode()); - //--receiptNoCode收货单号 - OdsProcureOrder order = odsProcureOrderMapper.selectOdsProcureOrderByID(odsProcureOrder.getID()); - //wms_raw_order_in_sn - WmsRawOrderInSn wmsRawOrderInSn = new WmsRawOrderInSn(); - wmsRawOrderInSn.setRawOrderInSnId(IdUtils.fastSimpleUUID()); - wmsRawOrderInSn.setUserDefined1("1");//1是收货,2是入库 - wmsRawOrderInSn.setUserDefined2(order.getUserDefined7());//批次 - wmsRawOrderInSn.setWhCode(odsProcureOrder.getWhCode());//厂库编号 - wmsRawOrderInSn.setWaCode(odsProcureOrder.getWaCode()); - wmsRawOrderInSn.setWlCode("00001-1-01");//先都设置为同一个库位 - wmsRawOrderInSn.setPoNo(order.getProcureCode());//采购单号 - wmsRawOrderInSn.setPoLine(odsProcureOrder.getPoLine());//行项目 - wmsRawOrderInSn.setMaterialCode(odsProcureOrder.getMaterialCode()); - wmsRawOrderInSn.setMaterialDesc(odsProcureOrder.getMaterialDesc()); - wmsRawOrderInSn.setAmount(odsProcureOrder.getPlanNumber()); - wmsRawOrderInSn.setFactoryCode(odsProcureOrder.getFactoryCode()); - wmsRawOrderInSn.setCreateBy(odsProcureOrder.getCreateBy()); - wmsRawOrderInSn.setGmtCreate(new Date()); - wmsRawOrderInSn.setActiveFlag("1"); - wmsRawOrderInSn.setUserDefined4(order.getUnit());//单位 - wmsRawOrderInSn.setSn(odsProcureOrder.getSn());//托盘号 - wmsRawOrderInSn.setFactoryCode(odsProcureOrder.getSiteCode()); - wmsRawOrderInSn.setUserDefined3(order.getID()); - wmsRawOrderInSn.setUserDefined5(odsProcureOrder.getReceiptNoCode()); - wmsRawOrderInSn.setUserDefined6(odsProcureOrder.getUserDefined6());//标识码绑定 + try { + //--receiptNoCode收货单号 + OdsProcureOrder order = odsProcureOrderMapper.selectOdsProcureOrderByID(odsProcureOrder.getID()); + //wms_raw_order_in_sn + WmsRawOrderInSn wmsRawOrderInSn = new WmsRawOrderInSn(); + wmsRawOrderInSn.setRawOrderInSnId(IdUtils.fastSimpleUUID()); + wmsRawOrderInSn.setUserDefined1("1");//1是收货,2是入库 + wmsRawOrderInSn.setUserDefined2(order.getUserDefined7());//批次 + wmsRawOrderInSn.setWhCode(odsProcureOrder.getWhCode());//厂库编号 + wmsRawOrderInSn.setWaCode(odsProcureOrder.getWaCode()); + wmsRawOrderInSn.setWlCode("00001-1-01");//先都设置为同一个库位 + wmsRawOrderInSn.setPoNo(order.getProcureCode());//采购单号 + wmsRawOrderInSn.setPoLine(odsProcureOrder.getPoLine());//行项目 + wmsRawOrderInSn.setMaterialCode(odsProcureOrder.getMaterialCode()); + wmsRawOrderInSn.setMaterialDesc(odsProcureOrder.getMaterialDesc()); + wmsRawOrderInSn.setAmount(odsProcureOrder.getPlanNumber()); + wmsRawOrderInSn.setFactoryCode(odsProcureOrder.getFactoryCode()); + wmsRawOrderInSn.setCreateBy(odsProcureOrder.getCreateBy()); + wmsRawOrderInSn.setGmtCreate(new Date()); + wmsRawOrderInSn.setActiveFlag("1"); + wmsRawOrderInSn.setUserDefined4(order.getUnit());//单位 + wmsRawOrderInSn.setSn(odsProcureOrder.getSn());//托盘号 + wmsRawOrderInSn.setFactoryCode(odsProcureOrder.getSiteCode()); + wmsRawOrderInSn.setUserDefined3(order.getID()); + wmsRawOrderInSn.setUserDefined5(odsProcureOrder.getReceiptNoCode()); + wmsRawOrderInSn.setUserDefined6(odsProcureOrder.getUserDefined6());//标识码绑定 - wmsRawOrderInSnMapper.insertWmsRawOrderInSn(wmsRawOrderInSn); - //标识码绑定 - if (odsProcureOrder.getUserDefined6()!=null){ - WmsLogotypeTable wmsLogotypeTable=new WmsLogotypeTable(); - wmsLogotypeTable.setId(IdUtils.fastSimpleUUID()); - wmsLogotypeTable.setLogotype(odsProcureOrder.getUserDefined6()); - wmsLogotypeTable.setSn(odsProcureOrder.getSn()); - wmsLogotypeTable.setActiveFlag("1"); - wmsRawOrderInSnMapper.insertWmsLogotypeTable(wmsLogotypeTable); - } + wmsRawOrderInSnMapper.insertWmsRawOrderInSn(wmsRawOrderInSn); + //标识码绑定 + if (odsProcureOrder.getUserDefined6()!=null){ + WmsLogotypeTable wmsLogotypeTable=new WmsLogotypeTable(); + wmsLogotypeTable.setId(IdUtils.fastSimpleUUID()); + wmsLogotypeTable.setLogotype(odsProcureOrder.getUserDefined6()); + wmsLogotypeTable.setSn(odsProcureOrder.getSn()); + wmsLogotypeTable.setActiveFlag("1"); + wmsRawOrderInSnMapper.insertWmsLogotypeTable(wmsLogotypeTable); + } - //插入收货记录 - //如果收货完成了的话,就插入信息收货完成 - odsProcureOrder.setOrderStatus("1"); - BigDecimal result = order.getRealityNumber().add(odsProcureOrder.getPlanNumber()); - if (result.equals(order.getPlanNumber())) { - odsProcureOrder.setOrderStatus("2");// + //插入收货记录 + //如果收货完成了的话,就插入信息收货完成 + odsProcureOrder.setOrderStatus("1"); + BigDecimal result = order.getRealityNumber().add(odsProcureOrder.getPlanNumber()); + if (result.equals(order.getPlanNumber())) { + odsProcureOrder.setOrderStatus("2");// + } + Integer tem = odsProcureOrderMapper.updateRealityNuById(odsProcureOrder); + //插入检验集计划 + return tem; + }finally { + DynamicDataSourceContextHolder.poll(); } - Integer tem = odsProcureOrderMapper.updateRealityNuById(odsProcureOrder); - //插入检验集计划 - return tem; } @Override //@DS("#header.poolName") public List PurchaseOrderdetailPda(WmsRawOrderInSn wmsRawOrderInSn) { DynamicDataSourceContextHolder.push("ds_" + wmsRawOrderInSn.getFactoryCode()); - wmsRawOrderInSn.setActiveFlag("1"); - //u3备注 - return wmsRawOrderInSnMapper.selectWmsRawOrderInSnList(wmsRawOrderInSn); + try { + wmsRawOrderInSn.setActiveFlag("1"); + //u3备注 + return wmsRawOrderInSnMapper.selectWmsRawOrderInSnList(wmsRawOrderInSn); + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @Override @@ -675,42 +689,47 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { @Override public AjaxResult sapPurchaseOrderSync(OdsProcureOrder odsProcureOrder) { DynamicDataSourceContextHolder.push("ds_" + odsProcureOrder.getFactoryCode()); - SapPurchaseOrderQuery sapPurchaseOrderQuery = new SapPurchaseOrderQuery(); - sapPurchaseOrderQuery.setEbeln(odsProcureOrder.getProcureCode());//采购单号 - R result = remoteSapService.sapPurchaseOrderSync(sapPurchaseOrderQuery); - List> mapList = new ArrayList<>(); - mapList = (List>) result.getData(); - for (Map sapPurchaseOrderQuery1 : mapList) { - OdsProcureOrder order = new OdsProcureOrder(); - order.setProcureCode(sapPurchaseOrderQuery1.get("ebeln")); - order.setSiteCode(sapPurchaseOrderQuery1.get("werks")); - order.setUserDefined3(sapPurchaseOrderQuery1.get("ebelp"));//批次 - order.setMaterialCode(sapPurchaseOrderQuery1.get("matnr")); - order.setMaterialDesc(sapPurchaseOrderQuery1.get("maktx")); - order.setUserDefined8("1"); - order.setActive("1"); - List orderList = odsProcureOrderMapper.selectOdsProcureOrderList(order); - if (orderList.size() > 0) { - continue; + try { + SapPurchaseOrderQuery sapPurchaseOrderQuery = new SapPurchaseOrderQuery(); + sapPurchaseOrderQuery.setEbeln(odsProcureOrder.getProcureCode());//采购单号 + R result = remoteSapService.sapPurchaseOrderSync(sapPurchaseOrderQuery); + List> mapList = new ArrayList<>(); + mapList = (List>) result.getData(); + for (Map sapPurchaseOrderQuery1 : mapList) { + OdsProcureOrder order = new OdsProcureOrder(); + order.setProcureCode(sapPurchaseOrderQuery1.get("ebeln")); + order.setSiteCode(sapPurchaseOrderQuery1.get("werks")); + order.setUserDefined3(sapPurchaseOrderQuery1.get("ebelp"));//批次 + order.setMaterialCode(sapPurchaseOrderQuery1.get("matnr")); + order.setMaterialDesc(sapPurchaseOrderQuery1.get("maktx")); + order.setUserDefined8("1"); + order.setActive("1"); + List orderList = odsProcureOrderMapper.selectOdsProcureOrderList(order); + if (orderList.size() > 0) { + continue; + } + SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd"); + Date date = new Date(); + String formattedDate = dateFormat.format(date); + String userDefined7= odsProcureOrderMapper.selectOdsProcureOrderUserDefined7New(formattedDate); + order.setUserDefined7(userDefined7); + order.setPlanNumber(new BigDecimal(sapPurchaseOrderQuery1.get("menge"))); + order.setUnit(sapPurchaseOrderQuery1.get("meins")); + order.setSupplierCode(sapPurchaseOrderQuery1.get("lifnr")); + order.setUserDefined9(sapPurchaseOrderQuery1.get("zmenge")); + order.setUserDefined10(sapPurchaseOrderQuery1.get("elikz")); + order.setUserDefined11(sapPurchaseOrderQuery1.get("eindt")); + order.setCreateBy(odsProcureOrder.getCreateBy()); + order.setPlanDate(new Date()); + order.setOrderStatus("0"); + //order.setID(IdUtils.fastSimpleUUID()); + order.setCreateDate(new Date()); + odsProcureOrderMapper.insertOdsProcureOrder(order); } - SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd"); - Date date = new Date(); - String formattedDate = dateFormat.format(date); - String userDefined7= odsProcureOrderMapper.selectOdsProcureOrderUserDefined7New(formattedDate); - order.setUserDefined7(userDefined7); - order.setPlanNumber(new BigDecimal(sapPurchaseOrderQuery1.get("menge"))); - order.setUnit(sapPurchaseOrderQuery1.get("meins")); - order.setSupplierCode(sapPurchaseOrderQuery1.get("lifnr")); - order.setUserDefined9(sapPurchaseOrderQuery1.get("zmenge")); - order.setUserDefined10(sapPurchaseOrderQuery1.get("elikz")); - order.setUserDefined11(sapPurchaseOrderQuery1.get("eindt")); - order.setCreateBy(odsProcureOrder.getCreateBy()); - order.setPlanDate(new Date()); - order.setOrderStatus("0"); - //order.setID(IdUtils.fastSimpleUUID()); - order.setCreateDate(new Date()); - odsProcureOrderMapper.insertOdsProcureOrder(order); + }finally { + DynamicDataSourceContextHolder.poll(); } + return AjaxResult.success(); } @@ -942,62 +961,66 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { @Override public AjaxResult getDeliveryNoteDetail(OdsProcureOrder odsProcureOrder) { DynamicDataSourceContextHolder.push("ds_" + odsProcureOrder.getFactoryCode()); - SapPurchaseOrderQuery sapPurchaseOrderQuery = new SapPurchaseOrderQuery(); - sapPurchaseOrderQuery.setEbeln(odsProcureOrder.getProcureCode());//采购单号 - //"ebelp": "10", - //代表是-00010 - Map paramMap=new HashMap<>(); - paramMap.put("id",odsProcureOrder.getUserDefined5()); - AjaxResult result = remoteOpenService.getDeliveryNoteDetail(paramMap); - List> mapList = new ArrayList<>(); - if (result.get("code").equals(200)) { - mapList= (List>) result.get("data"); - for (Map sapPurchaseOrderQuery1 : mapList) { - OdsProcureOrder order = new OdsProcureOrder(); - // 获取 mainId - Object mainIdObj = sapPurchaseOrderQuery1.get("mainId"); + try { + SapPurchaseOrderQuery sapPurchaseOrderQuery = new SapPurchaseOrderQuery(); + sapPurchaseOrderQuery.setEbeln(odsProcureOrder.getProcureCode());//采购单号 + //"ebelp": "10", + //代表是-00010 + Map paramMap=new HashMap<>(); + paramMap.put("id",odsProcureOrder.getUserDefined5()); + AjaxResult result = remoteOpenService.getDeliveryNoteDetail(paramMap); + List> mapList = new ArrayList<>(); + if (result.get("code").equals(200)) { + mapList= (List>) result.get("data"); + for (Map sapPurchaseOrderQuery1 : mapList) { + OdsProcureOrder order = new OdsProcureOrder(); + // 获取 mainId + Object mainIdObj = sapPurchaseOrderQuery1.get("mainId"); // 将 Object 转换为 String - String mainId = (mainIdObj != null) ? mainIdObj.toString() : null; + String mainId = (mainIdObj != null) ? mainIdObj.toString() : null; // 判断并补全 mainId - if (mainId != null && mainId.length() < 8) { - mainId = String.format("%08d", Integer.parseInt(mainId)); - } - order.setProcureCode(sapPurchaseOrderQuery1.get("orderNum")); - order.setSiteCode(sapPurchaseOrderQuery1.get("werks")); - order.setUserDefined3(sapPurchaseOrderQuery1.get("ebelp"));//行项目 - if (order.getUserDefined3()!=null){ - order.setUserDefined3("000"+order.getUserDefined3()); + if (mainId != null && mainId.length() < 8) { + mainId = String.format("%08d", Integer.parseInt(mainId)); + } + order.setProcureCode(sapPurchaseOrderQuery1.get("orderNum")); + order.setSiteCode(sapPurchaseOrderQuery1.get("werks")); + order.setUserDefined3(sapPurchaseOrderQuery1.get("ebelp"));//行项目 + if (order.getUserDefined3()!=null){ + order.setUserDefined3("000"+order.getUserDefined3()); + } + String materialCode = sapPurchaseOrderQuery1.get("matnr"); + materialCode = "0000000" + materialCode; + order.setMaterialCode(materialCode); + order.setUserDefined5(mainId);//送货单 + order.setMaterialDesc(sapPurchaseOrderQuery1.get("matnrName")); + order.setActive("1"); + order.setUserDefined8("0");//0是属于送货单下的 + List orderList = odsProcureOrderMapper.selectOdsProcureOrderList(order); + if (orderList.size() > 0) { + //这个地方判断下是不是采购单已经被插入了,如果是的话,并且是走的送货单的路径,那就把送货单给她附上 + continue; + } + SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd"); + Date date = new Date(); + String formattedDate = dateFormat.format(date); + String userDefined7= odsProcureOrderMapper.selectOdsProcureOrderUserDefined7New(formattedDate); + // order.setUserDefined7(formattedDate+order.getUserDefined3()); + order.setUserDefined7(userDefined7); + order.setUserDefined11(sapPurchaseOrderQuery1.get("realDate")); + order.setPlanNumber(new BigDecimal(sapPurchaseOrderQuery1.get("thisDeliNum"))); + order.setUnit(sapPurchaseOrderQuery1.get("unit")); + order.setSupplierCode(sapPurchaseOrderQuery1.get("lifnr")); + order.setCreateBy(odsProcureOrder.getCreateBy()); + order.setPlanDate(new Date()); + order.setOrderStatus("0"); + //order.setID(IdUtils.fastSimpleUUID()); + order.setCreateDate(new Date()); + odsProcureOrderMapper.insertOdsProcureOrder(order); + } } - String materialCode = sapPurchaseOrderQuery1.get("matnr"); - materialCode = "0000000" + materialCode; - order.setMaterialCode(materialCode); - order.setUserDefined5(mainId);//送货单 - order.setMaterialDesc(sapPurchaseOrderQuery1.get("matnrName")); - order.setActive("1"); - order.setUserDefined8("0");//0是属于送货单下的 - List orderList = odsProcureOrderMapper.selectOdsProcureOrderList(order); - if (orderList.size() > 0) { - //这个地方判断下是不是采购单已经被插入了,如果是的话,并且是走的送货单的路径,那就把送货单给她附上 - continue; - } - SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd"); - Date date = new Date(); - String formattedDate = dateFormat.format(date); - String userDefined7= odsProcureOrderMapper.selectOdsProcureOrderUserDefined7New(formattedDate); - // order.setUserDefined7(formattedDate+order.getUserDefined3()); - order.setUserDefined7(userDefined7); - order.setUserDefined11(sapPurchaseOrderQuery1.get("realDate")); - order.setPlanNumber(new BigDecimal(sapPurchaseOrderQuery1.get("thisDeliNum"))); - order.setUnit(sapPurchaseOrderQuery1.get("unit")); - order.setSupplierCode(sapPurchaseOrderQuery1.get("lifnr")); - order.setCreateBy(odsProcureOrder.getCreateBy()); - order.setPlanDate(new Date()); - order.setOrderStatus("0"); - //order.setID(IdUtils.fastSimpleUUID()); - order.setCreateDate(new Date()); - odsProcureOrderMapper.insertOdsProcureOrder(order); + }finally { + DynamicDataSourceContextHolder.poll(); } - } return AjaxResult.success(); } @@ -1563,7 +1586,11 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { public String upbatCardXNew(OdsProcureOrder order) { String result="修改成功"; DynamicDataSourceContextHolder.push("ds_" + order.getFactoryCode()); - odsProcureOrderMapper.updateodsProcureOrderCardTemNumber(order);//更新标识卡。状态为1 + try { + odsProcureOrderMapper.updateodsProcureOrderCardTemNumber(order);//更新标识卡。状态为1 + }finally { + DynamicDataSourceContextHolder.poll(); + } return result; } @@ -1796,8 +1823,13 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { //送货单,采购单,行项目,物料编码,物料名称,工厂号,托盘,状态,实际收货 DynamicDataSourceContextHolder.push("ds_" + odsProcureOrder.getFactoryCode()); - List orderList= odsProcureOrderMapper.selectOdsProcureOrderCardTLTWO(odsProcureOrder); - return orderList; + try { + List orderList= odsProcureOrderMapper.selectOdsProcureOrderCardTLTWO(odsProcureOrder); + return orderList; + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @@ -1859,8 +1891,13 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { public OdsProcureOrder selectOrderCard(OdsProcureOrder odsProcureOrder) { //送货单,采购单,行项目,物料编码,物料名称,工厂号,托盘,状态,实际收货 DynamicDataSourceContextHolder.push("ds_" + odsProcureOrder.getFactoryCode()); - OdsProcureOrder order= odsProcureOrderMapper.selectOdsProcureOrderCard(odsProcureOrder); - return order; + try { + OdsProcureOrder order= odsProcureOrderMapper.selectOdsProcureOrderCard(odsProcureOrder); + return order; + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @Override @@ -2259,84 +2296,89 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { String result="操作成功"; String factoryCode = orderList.get(0).getFactoryCode(); DynamicDataSourceContextHolder.push("ds_" + factoryCode); - for (OdsProcureOutOrder odsProcureOutOrder : - orderList) { - //领料单,物料编号,领料单批次,物料名称,托盘号,出库数量,库位号, - String produceCode= odsProcureOutOrder.getProduceCode();//生产领料单号 - String createBy= odsProcureOutOrder.getCreateBy();//操作人 - String mateOrderInSnId= odsProcureOutOrder.getMateOrderInSnId(); - String waCode= odsProcureOutOrder.getWaCode(); - String whCode= odsProcureOutOrder.getWhCode(); - String wlCode= odsProcureOutOrder.getWlCode(); - String sn= odsProcureOutOrder.getSn(); - String materialCode= odsProcureOutOrder.getMaterialCode(); - String materialDesc= odsProcureOutOrder.getMaterialDesc(); - BigDecimal amount= odsProcureOutOrder.getAmount();//数量 - String userDefined1= odsProcureOutOrder.getUserDefined1();//单位 - String userDefined2= odsProcureOutOrder.getUserDefined2();//批次 - WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn = wmsOdsMateStorageNewsSnMapper.selectWmsOdsMateStorageNewsSnByMateOrderInSnIdk(mateOrderInSnId); - //wms_raw_mission_out--保存 - //ods_procure_out_order--修改 - WCSInventoryPlan wcsInventoryPlan = new WCSInventoryPlan(); - wcsInventoryPlan.setSku(odsProcureOutOrder.getMaterialCode()); - // WmsOdsMateStorageNews wmsOdsMateStorageNews = wmsOdsMateStorageNewsMapper.selectBaseProductByCode(wcsInventoryPlan); - OdsProcureOutOrder order = new OdsProcureOutOrder(); - order.setProduceCode(produceCode);//领料单 - order.setMaterialCode(materialCode);// - order.setMaterialDesc(materialDesc); - order.setUserDefined1(userDefined2);//批次 - order.setUserDefined2(whCode); - order.setUserDefined3(wlCode); - order.setSn(sn); - order.setPlanNumber(amount); - order.setLocCode(waCode);//库区 - order.setID(IdUtils.fastSimpleUUID()); - order.setUnit(userDefined1); - order.setFactoryCode(factoryCode); - order.setActive("1"); - order.setCreateBy(createBy); - order.setCreateDate(new Date()); - //order.setSiteCode(factoryCode);} - OdsProcureOutOrder odsProcureOutOrder1=new OdsProcureOutOrder(); - odsProcureOutOrder1.setProduceCode(produceCode); - odsProcureOutOrder1.setMaterialCode(materialCode); - List odsProcureOutOrders = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrder(odsProcureOutOrder1); - OdsProcureOutOrder order1= odsProcureOutOrders.get(0); - order.setUserDefined4(order1.getUserDefined4()); - odsProcureOutOrderMapper.insertWmsRawMissionOut(order); + try { + for (OdsProcureOutOrder odsProcureOutOrder : + orderList) { + //领料单,物料编号,领料单批次,物料名称,托盘号,出库数量,库位号, + String produceCode= odsProcureOutOrder.getProduceCode();//生产领料单号 + String createBy= odsProcureOutOrder.getCreateBy();//操作人 + String mateOrderInSnId= odsProcureOutOrder.getMateOrderInSnId(); + String waCode= odsProcureOutOrder.getWaCode(); + String whCode= odsProcureOutOrder.getWhCode(); + String wlCode= odsProcureOutOrder.getWlCode(); + String sn= odsProcureOutOrder.getSn(); + String materialCode= odsProcureOutOrder.getMaterialCode(); + String materialDesc= odsProcureOutOrder.getMaterialDesc(); + BigDecimal amount= odsProcureOutOrder.getAmount();//数量 + String userDefined1= odsProcureOutOrder.getUserDefined1();//单位 + String userDefined2= odsProcureOutOrder.getUserDefined2();//批次 + WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn = wmsOdsMateStorageNewsSnMapper.selectWmsOdsMateStorageNewsSnByMateOrderInSnIdk(mateOrderInSnId); + //wms_raw_mission_out--保存 + //ods_procure_out_order--修改 + WCSInventoryPlan wcsInventoryPlan = new WCSInventoryPlan(); + wcsInventoryPlan.setSku(odsProcureOutOrder.getMaterialCode()); + // WmsOdsMateStorageNews wmsOdsMateStorageNews = wmsOdsMateStorageNewsMapper.selectBaseProductByCode(wcsInventoryPlan); + OdsProcureOutOrder order = new OdsProcureOutOrder(); + order.setProduceCode(produceCode);//领料单 + order.setMaterialCode(materialCode);// + order.setMaterialDesc(materialDesc); + order.setUserDefined1(userDefined2);//批次 + order.setUserDefined2(whCode); + order.setUserDefined3(wlCode); + order.setSn(sn); + order.setPlanNumber(amount); + order.setLocCode(waCode);//库区 + order.setID(IdUtils.fastSimpleUUID()); + order.setUnit(userDefined1); + order.setFactoryCode(factoryCode); + order.setActive("1"); + order.setCreateBy(createBy); + order.setCreateDate(new Date()); + //order.setSiteCode(factoryCode);} + OdsProcureOutOrder odsProcureOutOrder1=new OdsProcureOutOrder(); + odsProcureOutOrder1.setProduceCode(produceCode); + odsProcureOutOrder1.setMaterialCode(materialCode); + List odsProcureOutOrders = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrder(odsProcureOutOrder1); + OdsProcureOutOrder order1= odsProcureOutOrders.get(0); + order.setUserDefined4(order1.getUserDefined4()); + odsProcureOutOrderMapper.insertWmsRawMissionOut(order); - BigDecimal realityNumber1 = order1.getOutNumber();//累出库数 - BigDecimal realityNumber = order1.getPlanNumber();//计划 - BigDecimal planNumber = amount;//本次实际数量 - BigDecimal tem = realityNumber1.add(planNumber); - if (tem.compareTo(realityNumber)>= 0) { - order1.setOrderStatus("3"); - } else { - order1.setOrderStatus("2"); - } - order1.setOutNumber(tem); - odsProcureOutOrderMapper.updateWmsOdsProcureOutOrder(order1);//订单修改 - //明细 + BigDecimal realityNumber1 = order1.getOutNumber();//累出库数 + BigDecimal realityNumber = order1.getPlanNumber();//计划 + BigDecimal planNumber = amount;//本次实际数量 + BigDecimal tem = realityNumber1.add(planNumber); + if (tem.compareTo(realityNumber)>= 0) { + order1.setOrderStatus("3"); + } else { + order1.setOrderStatus("2"); + } + order1.setOutNumber(tem); + odsProcureOutOrderMapper.updateWmsOdsProcureOutOrder(order1);//订单修改 + //明细 // BigDecimal temk= wmsOdsMateStorageNewsSn.getAmount().subtract(amount); - wmsOdsMateStorageNewsSn.setOutNumber(amount); - wmsOdsMateStorageNewsSn.setLastModifiedBy(createBy); - wmsOdsMateStorageNewsSnMapper.updateWmsOdsMateStorageNewsSnAddoutNumber(wmsOdsMateStorageNewsSn);//库存明细 - WmsOdsEmStorageNews wmsOdsEmStorageNews = new WmsOdsEmStorageNews(); - wmsOdsEmStorageNews.setWhCode(wmsOdsMateStorageNewsSn.getWhCode());//仓库编码 - wmsOdsEmStorageNews.setWlCode(wmsOdsMateStorageNewsSn.getWlCode());//库位编码 - wmsOdsEmStorageNews.setWaCode(wmsOdsMateStorageNewsSn.getWaCode()); - wmsOdsEmStorageNews.setProductBatch(wmsOdsMateStorageNewsSn.getUserDefined2()); - wmsOdsEmStorageNews.setMaterialCode(wmsOdsMateStorageNewsSn.getMaterialCode()); - wmsOdsEmStorageNews.setAmount(odsProcureOutOrder.getPlanNumber());//库存 - wmsOdsEmStorageNews.setLastModifiedBy(createBy); - wmsOdsMateStorageNewsSnMapper.updatekdd(wmsOdsEmStorageNews);//库存调整 - } - // - OdsProcureOutOrder order=new OdsProcureOutOrder(); - List orderList1 = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrderByOrderStatus(order); - if (orderList1.size()>0){ - OutboundPostingzcSAPGY(orderList1); + wmsOdsMateStorageNewsSn.setOutNumber(amount); + wmsOdsMateStorageNewsSn.setLastModifiedBy(createBy); + wmsOdsMateStorageNewsSnMapper.updateWmsOdsMateStorageNewsSnAddoutNumber(wmsOdsMateStorageNewsSn);//库存明细 + WmsOdsEmStorageNews wmsOdsEmStorageNews = new WmsOdsEmStorageNews(); + wmsOdsEmStorageNews.setWhCode(wmsOdsMateStorageNewsSn.getWhCode());//仓库编码 + wmsOdsEmStorageNews.setWlCode(wmsOdsMateStorageNewsSn.getWlCode());//库位编码 + wmsOdsEmStorageNews.setWaCode(wmsOdsMateStorageNewsSn.getWaCode()); + wmsOdsEmStorageNews.setProductBatch(wmsOdsMateStorageNewsSn.getUserDefined2()); + wmsOdsEmStorageNews.setMaterialCode(wmsOdsMateStorageNewsSn.getMaterialCode()); + wmsOdsEmStorageNews.setAmount(odsProcureOutOrder.getPlanNumber());//库存 + wmsOdsEmStorageNews.setLastModifiedBy(createBy); + wmsOdsMateStorageNewsSnMapper.updatekdd(wmsOdsEmStorageNews);//库存调整 + } + // + OdsProcureOutOrder order=new OdsProcureOutOrder(); + List orderList1 = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrderByOrderStatus(order); + if (orderList1.size()>0){ + OutboundPostingzcSAPGY(orderList1); + } + }finally { + DynamicDataSourceContextHolder.poll(); } + return result; } @@ -2583,225 +2625,231 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { @Override public String addOrderCardX(List orderList) { - String factoryCode = orderList.get(0).getFactoryCode(); - String receiptNoCode = orderList.get(0).getReceiptNoCode(); - //现在是传了个list标识卡集合 String result1="操作成功"; + String factoryCode = orderList.get(0).getFactoryCode(); DynamicDataSourceContextHolder.push("ds_" + factoryCode); - //如果这样的话,就区分出来单子和对应的物料。然后根据集合放入暂收集合中 - List orderList1=new ArrayList<>();// - for (OdsProcureOrder order: - orderList) { - System.out.println(order.toString()); - } - for (OdsProcureOrder order: - orderList) { - OdsProcureOrder order1= odsProcureOrderMapper.selectOdsProcureOrderCardByUserDefined1(order); - order.setUserDefined7(order1.getUserDefined7());//批次 - order.setPoLine(order1.getUserDefined3()); - order.setUnit(order1.getUnit()); - order.setID(order1.getID()); - if (orderList1.size()>0){ - String tem="0"; - for (OdsProcureOrder odsProcureOrder:orderList1){ - if (odsProcureOrder.getID().equals(order1.getID())){ - tem="1";//已经保存对应订单了 + + try { + String receiptNoCode = orderList.get(0).getReceiptNoCode(); + //现在是传了个list标识卡集合 + //如果这样的话,就区分出来单子和对应的物料。然后根据集合放入暂收集合中 + List orderList1=new ArrayList<>();// + for (OdsProcureOrder order: + orderList) { + System.out.println(order.toString()); + } + for (OdsProcureOrder order: + orderList) { + OdsProcureOrder order1= odsProcureOrderMapper.selectOdsProcureOrderCardByUserDefined1(order); + order.setUserDefined7(order1.getUserDefined7());//批次 + order.setPoLine(order1.getUserDefined3()); + order.setUnit(order1.getUnit()); + order.setID(order1.getID()); + if (orderList1.size()>0){ + String tem="0"; + for (OdsProcureOrder odsProcureOrder:orderList1){ + if (odsProcureOrder.getID().equals(order1.getID())){ + tem="1";//已经保存对应订单了 + } } - } - if (tem.equals("0")){ + if (tem.equals("0")){ + orderList1.add(order1); + } + }else { orderList1.add(order1); } - }else { - orderList1.add(order1); - } - } - for (OdsProcureOrder odsProcureOrder: - orderList1) { - //单子 - BigDecimal czNumber=new BigDecimal("0"); - for ( OdsProcureOrder order : - orderList) { - if (order.getID().equals(odsProcureOrder.getID())){ - czNumber=czNumber.add(order.getPlanNumber()); - } - } - odsProcureOrder.setCzNumber(czNumber); - } - - List mapList = new ArrayList<>(); - for (OdsProcureOrder order : - orderList1) { - Map paramMap=new HashMap<>(); - paramMap.put("EBELN",order.getProcureCode());// - paramMap.put("EBELP",order.getUserDefined3());//行项目 - paramMap.put("MATNR",order.getMaterialCode());//物料 - paramMap.put("WERKS",order.getSiteCode());//工厂 - paramMap.put("QUANTITY",order.getCzNumber());//数量 - paramMap.put("P_LFSNR",order.getUserDefined5());//送 - mapList.add(paramMap); - } - R result2 = remoteSapService.temporarilyCollected(mapList); - int code = result2.getCode(); - if (code == 200){ - //对应采购单的标识卡 - for (OdsProcureOrder order1k: - orderList) { - //标识卡信息 - //wms_raw_order_in_sn - WmsRawOrderInSn wmsRawOrderInSn = new WmsRawOrderInSn(); - wmsRawOrderInSn.setRawOrderInSnId(IdUtils.fastSimpleUUID()); - wmsRawOrderInSn.setUserDefined1("1");//1是收货,2是入库 - wmsRawOrderInSn.setUserDefined2(order1k.getUserDefined7());//批次 - wmsRawOrderInSn.setWhCode(order1k.getWhCode());//厂库编号 - wmsRawOrderInSn.setWaCode(order1k.getWaCode()); - wmsRawOrderInSn.setWlCode(order1k.getSn());//库位设置为托盘 - wmsRawOrderInSn.setPoNo(order1k.getProcureCode());//采购单号 - wmsRawOrderInSn.setPoLine(order1k.getUserDefined3());//行项目 - wmsRawOrderInSn.setMaterialCode(order1k.getMaterialCode()); - wmsRawOrderInSn.setMaterialDesc(order1k.getMaterialDesc()); - wmsRawOrderInSn.setAmount(order1k.getPlanNumber());//实际输入数量 - wmsRawOrderInSn.setFactoryCode(order1k.getFactoryCode()); - wmsRawOrderInSn.setCreateBy(order1k.getCreateBy()); - wmsRawOrderInSn.setGmtCreate(new Date()); - wmsRawOrderInSn.setActiveFlag("1"); - wmsRawOrderInSn.setUserDefined4(order1k.getUnit());//单位 - wmsRawOrderInSn.setSn(order1k.getSn());//托盘号 - wmsRawOrderInSn.setFactoryCode(order1k.getFactoryCode()); - wmsRawOrderInSn.setUserDefined3(order1k.getID()); - wmsRawOrderInSn.setUserDefined5(order1k.getReceiptNoCode()); - //wmsRawOrderInSn.setd - wmsRawOrderInSn.setUserDefined6(order1k.getUserDefined6());//标识码绑定 - wmsRawOrderInSnMapper.insertWmsRawOrderInSn(wmsRawOrderInSn); - //标识码绑定 - if (order1k.getUserDefined6()!=null){ - WmsLogotypeTable wmsLogotypeTable=new WmsLogotypeTable(); - wmsLogotypeTable.setId(IdUtils.fastSimpleUUID()); - wmsLogotypeTable.setLogotype(order1k.getUserDefined6()); - wmsLogotypeTable.setSn(order1k.getSn()); - wmsLogotypeTable.setActiveFlag("1"); - wmsRawOrderInSnMapper.insertWmsLogotypeTable(wmsLogotypeTable); - } - - odsProcureOrderMapper.updateodsProcureOrderCard(order1k); - } - Map map = new HashMap(); - map = (Map) result2.getData(); - String MATERIALDOCUMENT = (String) map.get("MATERIALDOCUMENT"); - String MATDOCUMENTYEAR = (String) map.get("MATDOCUMENTYEAR"); - for (OdsProcureOrder odsProcureOrder: - orderList1) { - BigDecimal planNumber= odsProcureOrder.getPlanNumber(); - ;//操作数量 - odsProcureOrder.setOrderStatus("1"); - BigDecimal result = odsProcureOrder.getRealityNumber().add(odsProcureOrder.getCzNumber()); - System.out.println(result); - if (result.compareTo(planNumber)== 0) { - odsProcureOrder.setOrderStatus("2"); - } - odsProcureOrder.setPlanNumber(odsProcureOrder.getCzNumber()); - odsProcureOrderMapper.updateRealityNuById(odsProcureOrder); } for (OdsProcureOrder odsProcureOrder: orderList1) { - //标识卡记录已经录入,订单已经修改完成 - OdsProcureOrder order1 = odsProcureOrderMapper.selectOdsProcureOrderByID(odsProcureOrder.getID()); - order1.setSapTempInfor(result2.getMsg()); - WmsRawOrderIn wmsRawOrderIn=new WmsRawOrderIn(); - wmsRawOrderIn.setRawOrderInId(IdUtils.fastSimpleUUID()); - wmsRawOrderIn.setFactoryCode(odsProcureOrder.getFactoryCode()); - wmsRawOrderIn.setOrderNo(order1.getUserDefined5());//送货单 - wmsRawOrderIn.setDnNo(receiptNoCode); - wmsRawOrderIn.setPoNo(odsProcureOrder.getProcureCode()); - wmsRawOrderIn.setPoLine(odsProcureOrder.getUserDefined3()); - wmsRawOrderIn.setMaterialCode(odsProcureOrder.getMaterialCode()); - wmsRawOrderIn.setMaterialDesc(odsProcureOrder.getMaterialDesc()); - wmsRawOrderIn.setRequestAmount(odsProcureOrder.getCzNumber()); - wmsRawOrderIn.setUnit(odsProcureOrder.getUnit()); - wmsRawOrderIn.setRequestTime(new Date()); - wmsRawOrderIn.setOrderStatus("0");//暂收 - wmsRawOrderIn.setActiveFlag("1"); - wmsRawOrderIn.setSupplyCode(odsProcureOrder.getSupplierCode()); - //wmsRawOrderIn.setUserDefined1(); - wmsRawOrderIn.setAccountingStatus("0");//0是暂收 - wmsRawOrderIn.setUserDefined1(MATERIALDOCUMENT);//物料凭证编号 - wmsRawOrderIn.setUserDefined2(MATDOCUMENTYEAR);//年凭证号 - wmsRawOrderIn.setUserDefined3(result2.getMsg());//暂收信息 - //wmsRawOrderIn.setAccountingMessage(result2.getMsg()); - wmsRawOrderIn.setSapFactoryCode(factoryCode); - wmsRawOrderIn.setCreateBy(odsProcureOrder.getCreateBy()); - wmsRawOrderIn.setGmtCreate(new Date()); - wmsRawOrderInMapper.insertWmsRawOrderIn(wmsRawOrderIn); - order1.setSapTempStatus("1");//0是失败。1是成功 - odsProcureOrderMapper.updateOdsProcureOrder(order1); - } - - - for (OdsProcureOrder odsProcureOrder1:orderList){ - //收货 - WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn = new WmsOdsMateStorageNewsSn(); - wmsOdsMateStorageNewsSn.setMateOrderInSnId(IdUtils.fastSimpleUUID()); - wmsOdsMateStorageNewsSn.setWhCode(odsProcureOrder1.getWhCode());//仓库编码 - wmsOdsMateStorageNewsSn.setWaCode(odsProcureOrder1.getWaCode()); - wmsOdsMateStorageNewsSn.setWlCode(odsProcureOrder1.getSn());//库位编码- - wmsOdsMateStorageNewsSn.setMaterialCode(odsProcureOrder1.getMaterialCode()); - wmsOdsMateStorageNewsSn.setMaterialDesc(odsProcureOrder1.getMaterialDesc()); - wmsOdsMateStorageNewsSn.setSn(odsProcureOrder1.getSn()); - wmsOdsMateStorageNewsSn.setAmount(odsProcureOrder1.getPlanNumber()); - wmsOdsMateStorageNewsSn.setCreateBy(odsProcureOrder1.getCreateBy()); - wmsOdsMateStorageNewsSn.setGmtCreate(new Date()); - wmsOdsMateStorageNewsSn.setUserDefined2(odsProcureOrder1.getUserDefined7());//批次 - wmsOdsMateStorageNewsSn.setUserDefined1("RK"); - wmsOdsMateStorageNewsSn.setUserDefined3("0");//0是暂收,1是真收 - wmsOdsMateStorageNewsSn.setFactoryCode(odsProcureOrder1.getFactoryCode()); - wmsOdsMateStorageNewsSn.setSapFactoryCode(odsProcureOrder1.getFactoryCode()); - wmsOdsMateStorageNewsSn.setActiveFlag("1"); - wmsOdsMateStorageNewsSnMapper.insertWmsOdsMateStorageNewsSn(wmsOdsMateStorageNewsSn); - //修改库存 - //2,修改库存---/加库存数量-/-冻结数量 - WmsOdsEmStorageNews wmsOdsEmStorageNews = new WmsOdsEmStorageNews(); - wmsOdsEmStorageNews.setWhCode(odsProcureOrder1.getWhCode());//仓库编码 - wmsOdsEmStorageNews.setWlCode(odsProcureOrder1.getSn());//库位编码 - wmsOdsEmStorageNews.setWaCode(odsProcureOrder1.getWaCode());//库位编码 - wmsOdsEmStorageNews.setMaterialCode(odsProcureOrder1.getMaterialCode()); - wmsOdsEmStorageNews.setUserDefined2(odsProcureOrder1.getUserDefined7());//批次 - wmsOdsEmStorageNews.setAmount(odsProcureOrder1.getPlanNumber()); - //添加库存--这个要有个判断有没有这个库存如果没有的话,就插入 - WmsOdsMateStorageNews wmsOdsMateStorageNews = wmsOdsMateStorageNewsMapper.selectByWhCodeAndMate(wmsOdsEmStorageNews); - if (wmsOdsMateStorageNews == null) { - WmsOdsMateStorageNews wmsOdsMateStorageNews1 = new WmsOdsMateStorageNews(); - wmsOdsMateStorageNews1.setStorageId(IdUtils.fastSimpleUUID()); - wmsOdsMateStorageNews1.setWhCode(odsProcureOrder1.getWhCode()); - wmsOdsMateStorageNews1.setWlCode(odsProcureOrder1.getSn()); - wmsOdsMateStorageNews1.setWaCode(odsProcureOrder1.getWaCode()); - wmsOdsMateStorageNews1.setAmount(odsProcureOrder1.getPlanNumber()); - wmsOdsMateStorageNews1.setStorageAmount(odsProcureOrder1.getPlanNumber()); - wmsOdsMateStorageNews1.setMaterialCode(odsProcureOrder1.getMaterialCode()); - wmsOdsMateStorageNews1.setMaterialDesc(odsProcureOrder1.getMaterialDesc()); - wmsOdsMateStorageNews1.setStorageType("BC"); - wmsOdsMateStorageNews1.setCreateBy(odsProcureOrder1.getCreateBy()); - wmsOdsMateStorageNews1.setGmtCreate(new Date()); - wmsOdsMateStorageNews1.setActiveFlag("1"); - wmsOdsMateStorageNews1.setFactoryCode(odsProcureOrder1.getFactoryCode()); - wmsOdsMateStorageNews1.setSapFactoryCode(odsProcureOrder1.getFactoryCode()); - wmsOdsMateStorageNews1.setUserDefined1(odsProcureOrder1.getUnit());//单位 - wmsOdsMateStorageNewsMapper.insertWmsOdsMateStorageNews(wmsOdsMateStorageNews1); - } else { - wmsOdsMateStorageNewsSnMapper.updateAdd(wmsOdsEmStorageNews); + //单子 + BigDecimal czNumber=new BigDecimal("0"); + for ( OdsProcureOrder order : + orderList) { + if (order.getID().equals(odsProcureOrder.getID())){ + czNumber=czNumber.add(order.getPlanNumber()); + } } - // wmsRawOrderInSnMapper.updateU1Byid(wmsRawOrderInSn);//入库 + odsProcureOrder.setCzNumber(czNumber); } - }else {////失败| - result1="暂收失败"; + + List mapList = new ArrayList<>(); for (OdsProcureOrder order : orderList1) { - OdsProcureOrder order2 = odsProcureOrderMapper.selectOdsProcureOrderByID(order.getID()); - order2.setSapTempInfor(result2.getMsg()); - order2.setSapTempStatus("0");//0是失败。1是成功 - odsProcureOrderMapper.updateOdsProcureOrder(order2); + Map paramMap=new HashMap<>(); + paramMap.put("EBELN",order.getProcureCode());// + paramMap.put("EBELP",order.getUserDefined3());//行项目 + paramMap.put("MATNR",order.getMaterialCode());//物料 + paramMap.put("WERKS",order.getSiteCode());//工厂 + paramMap.put("QUANTITY",order.getCzNumber());//数量 + paramMap.put("P_LFSNR",order.getUserDefined5());//送 + mapList.add(paramMap); + } + R result2 = remoteSapService.temporarilyCollected(mapList); + int code = result2.getCode(); + if (code == 200){ + //对应采购单的标识卡 + for (OdsProcureOrder order1k: + orderList) { + //标识卡信息 + //wms_raw_order_in_sn + WmsRawOrderInSn wmsRawOrderInSn = new WmsRawOrderInSn(); + wmsRawOrderInSn.setRawOrderInSnId(IdUtils.fastSimpleUUID()); + wmsRawOrderInSn.setUserDefined1("1");//1是收货,2是入库 + wmsRawOrderInSn.setUserDefined2(order1k.getUserDefined7());//批次 + wmsRawOrderInSn.setWhCode(order1k.getWhCode());//厂库编号 + wmsRawOrderInSn.setWaCode(order1k.getWaCode()); + wmsRawOrderInSn.setWlCode(order1k.getSn());//库位设置为托盘 + wmsRawOrderInSn.setPoNo(order1k.getProcureCode());//采购单号 + wmsRawOrderInSn.setPoLine(order1k.getUserDefined3());//行项目 + wmsRawOrderInSn.setMaterialCode(order1k.getMaterialCode()); + wmsRawOrderInSn.setMaterialDesc(order1k.getMaterialDesc()); + wmsRawOrderInSn.setAmount(order1k.getPlanNumber());//实际输入数量 + wmsRawOrderInSn.setFactoryCode(order1k.getFactoryCode()); + wmsRawOrderInSn.setCreateBy(order1k.getCreateBy()); + wmsRawOrderInSn.setGmtCreate(new Date()); + wmsRawOrderInSn.setActiveFlag("1"); + wmsRawOrderInSn.setUserDefined4(order1k.getUnit());//单位 + wmsRawOrderInSn.setSn(order1k.getSn());//托盘号 + wmsRawOrderInSn.setFactoryCode(order1k.getFactoryCode()); + wmsRawOrderInSn.setUserDefined3(order1k.getID()); + wmsRawOrderInSn.setUserDefined5(order1k.getReceiptNoCode()); + //wmsRawOrderInSn.setd + wmsRawOrderInSn.setUserDefined6(order1k.getUserDefined6());//标识码绑定 + wmsRawOrderInSnMapper.insertWmsRawOrderInSn(wmsRawOrderInSn); + //标识码绑定 + if (order1k.getUserDefined6()!=null){ + WmsLogotypeTable wmsLogotypeTable=new WmsLogotypeTable(); + wmsLogotypeTable.setId(IdUtils.fastSimpleUUID()); + wmsLogotypeTable.setLogotype(order1k.getUserDefined6()); + wmsLogotypeTable.setSn(order1k.getSn()); + wmsLogotypeTable.setActiveFlag("1"); + wmsRawOrderInSnMapper.insertWmsLogotypeTable(wmsLogotypeTable); + } + + odsProcureOrderMapper.updateodsProcureOrderCard(order1k); + } + Map map = new HashMap(); + map = (Map) result2.getData(); + String MATERIALDOCUMENT = (String) map.get("MATERIALDOCUMENT"); + String MATDOCUMENTYEAR = (String) map.get("MATDOCUMENTYEAR"); + for (OdsProcureOrder odsProcureOrder: + orderList1) { + BigDecimal planNumber= odsProcureOrder.getPlanNumber(); + ;//操作数量 + odsProcureOrder.setOrderStatus("1"); + BigDecimal result = odsProcureOrder.getRealityNumber().add(odsProcureOrder.getCzNumber()); + System.out.println(result); + if (result.compareTo(planNumber)== 0) { + odsProcureOrder.setOrderStatus("2"); + } + odsProcureOrder.setPlanNumber(odsProcureOrder.getCzNumber()); + odsProcureOrderMapper.updateRealityNuById(odsProcureOrder); + } + for (OdsProcureOrder odsProcureOrder: + orderList1) { + //标识卡记录已经录入,订单已经修改完成 + OdsProcureOrder order1 = odsProcureOrderMapper.selectOdsProcureOrderByID(odsProcureOrder.getID()); + order1.setSapTempInfor(result2.getMsg()); + WmsRawOrderIn wmsRawOrderIn=new WmsRawOrderIn(); + wmsRawOrderIn.setRawOrderInId(IdUtils.fastSimpleUUID()); + wmsRawOrderIn.setFactoryCode(odsProcureOrder.getFactoryCode()); + wmsRawOrderIn.setOrderNo(order1.getUserDefined5());//送货单 + wmsRawOrderIn.setDnNo(receiptNoCode); + wmsRawOrderIn.setPoNo(odsProcureOrder.getProcureCode()); + wmsRawOrderIn.setPoLine(odsProcureOrder.getUserDefined3()); + wmsRawOrderIn.setMaterialCode(odsProcureOrder.getMaterialCode()); + wmsRawOrderIn.setMaterialDesc(odsProcureOrder.getMaterialDesc()); + wmsRawOrderIn.setRequestAmount(odsProcureOrder.getCzNumber()); + wmsRawOrderIn.setUnit(odsProcureOrder.getUnit()); + wmsRawOrderIn.setRequestTime(new Date()); + wmsRawOrderIn.setOrderStatus("0");//暂收 + wmsRawOrderIn.setActiveFlag("1"); + wmsRawOrderIn.setSupplyCode(odsProcureOrder.getSupplierCode()); + //wmsRawOrderIn.setUserDefined1(); + wmsRawOrderIn.setAccountingStatus("0");//0是暂收 + wmsRawOrderIn.setUserDefined1(MATERIALDOCUMENT);//物料凭证编号 + wmsRawOrderIn.setUserDefined2(MATDOCUMENTYEAR);//年凭证号 + wmsRawOrderIn.setUserDefined3(result2.getMsg());//暂收信息 + //wmsRawOrderIn.setAccountingMessage(result2.getMsg()); + wmsRawOrderIn.setSapFactoryCode(factoryCode); + wmsRawOrderIn.setCreateBy(odsProcureOrder.getCreateBy()); + wmsRawOrderIn.setGmtCreate(new Date()); + wmsRawOrderInMapper.insertWmsRawOrderIn(wmsRawOrderIn); + order1.setSapTempStatus("1");//0是失败。1是成功 + odsProcureOrderMapper.updateOdsProcureOrder(order1); + } + + + for (OdsProcureOrder odsProcureOrder1:orderList){ + //收货 + WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn = new WmsOdsMateStorageNewsSn(); + wmsOdsMateStorageNewsSn.setMateOrderInSnId(IdUtils.fastSimpleUUID()); + wmsOdsMateStorageNewsSn.setWhCode(odsProcureOrder1.getWhCode());//仓库编码 + wmsOdsMateStorageNewsSn.setWaCode(odsProcureOrder1.getWaCode()); + wmsOdsMateStorageNewsSn.setWlCode(odsProcureOrder1.getSn());//库位编码- + wmsOdsMateStorageNewsSn.setMaterialCode(odsProcureOrder1.getMaterialCode()); + wmsOdsMateStorageNewsSn.setMaterialDesc(odsProcureOrder1.getMaterialDesc()); + wmsOdsMateStorageNewsSn.setSn(odsProcureOrder1.getSn()); + wmsOdsMateStorageNewsSn.setAmount(odsProcureOrder1.getPlanNumber()); + wmsOdsMateStorageNewsSn.setCreateBy(odsProcureOrder1.getCreateBy()); + wmsOdsMateStorageNewsSn.setGmtCreate(new Date()); + wmsOdsMateStorageNewsSn.setUserDefined2(odsProcureOrder1.getUserDefined7());//批次 + wmsOdsMateStorageNewsSn.setUserDefined1("RK"); + wmsOdsMateStorageNewsSn.setUserDefined3("0");//0是暂收,1是真收 + wmsOdsMateStorageNewsSn.setFactoryCode(odsProcureOrder1.getFactoryCode()); + wmsOdsMateStorageNewsSn.setSapFactoryCode(odsProcureOrder1.getFactoryCode()); + wmsOdsMateStorageNewsSn.setActiveFlag("1"); + wmsOdsMateStorageNewsSnMapper.insertWmsOdsMateStorageNewsSn(wmsOdsMateStorageNewsSn); + //修改库存 + //2,修改库存---/加库存数量-/-冻结数量 + WmsOdsEmStorageNews wmsOdsEmStorageNews = new WmsOdsEmStorageNews(); + wmsOdsEmStorageNews.setWhCode(odsProcureOrder1.getWhCode());//仓库编码 + wmsOdsEmStorageNews.setWlCode(odsProcureOrder1.getSn());//库位编码 + wmsOdsEmStorageNews.setWaCode(odsProcureOrder1.getWaCode());//库位编码 + wmsOdsEmStorageNews.setMaterialCode(odsProcureOrder1.getMaterialCode()); + wmsOdsEmStorageNews.setUserDefined2(odsProcureOrder1.getUserDefined7());//批次 + wmsOdsEmStorageNews.setAmount(odsProcureOrder1.getPlanNumber()); + //添加库存--这个要有个判断有没有这个库存如果没有的话,就插入 + WmsOdsMateStorageNews wmsOdsMateStorageNews = wmsOdsMateStorageNewsMapper.selectByWhCodeAndMate(wmsOdsEmStorageNews); + if (wmsOdsMateStorageNews == null) { + WmsOdsMateStorageNews wmsOdsMateStorageNews1 = new WmsOdsMateStorageNews(); + wmsOdsMateStorageNews1.setStorageId(IdUtils.fastSimpleUUID()); + wmsOdsMateStorageNews1.setWhCode(odsProcureOrder1.getWhCode()); + wmsOdsMateStorageNews1.setWlCode(odsProcureOrder1.getSn()); + wmsOdsMateStorageNews1.setWaCode(odsProcureOrder1.getWaCode()); + wmsOdsMateStorageNews1.setAmount(odsProcureOrder1.getPlanNumber()); + wmsOdsMateStorageNews1.setStorageAmount(odsProcureOrder1.getPlanNumber()); + wmsOdsMateStorageNews1.setMaterialCode(odsProcureOrder1.getMaterialCode()); + wmsOdsMateStorageNews1.setMaterialDesc(odsProcureOrder1.getMaterialDesc()); + wmsOdsMateStorageNews1.setStorageType("BC"); + wmsOdsMateStorageNews1.setCreateBy(odsProcureOrder1.getCreateBy()); + wmsOdsMateStorageNews1.setGmtCreate(new Date()); + wmsOdsMateStorageNews1.setActiveFlag("1"); + wmsOdsMateStorageNews1.setFactoryCode(odsProcureOrder1.getFactoryCode()); + wmsOdsMateStorageNews1.setSapFactoryCode(odsProcureOrder1.getFactoryCode()); + wmsOdsMateStorageNews1.setUserDefined1(odsProcureOrder1.getUnit());//单位 + wmsOdsMateStorageNewsMapper.insertWmsOdsMateStorageNews(wmsOdsMateStorageNews1); + } else { + wmsOdsMateStorageNewsSnMapper.updateAdd(wmsOdsEmStorageNews); + } + // wmsRawOrderInSnMapper.updateU1Byid(wmsRawOrderInSn);//入库 + } + }else {////失败| + result1="暂收失败"; + for (OdsProcureOrder order : + orderList1) { + OdsProcureOrder order2 = odsProcureOrderMapper.selectOdsProcureOrderByID(order.getID()); + order2.setSapTempInfor(result2.getMsg()); + order2.setSapTempStatus("0");//0是失败。1是成功 + odsProcureOrderMapper.updateOdsProcureOrder(order2); + } + return result1; } return result1; + }finally { + DynamicDataSourceContextHolder.poll(); } - return result1; + } @Override diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOutOrderServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOutOrderServiceImpl.java index 8b9a6d4a0..15b9e6021 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOutOrderServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOutOrderServiceImpl.java @@ -242,8 +242,13 @@ public class OdsProcureOutOrderServiceImpl implements IOdsProcureOutOrderService @Override public List listReturnSC(OdsProcureOutOrder odsProcureOutOrder) { DynamicDataSourceContextHolder.push("ds_" + odsProcureOutOrder.getFactoryCode()); - List orderList = odsProcureOutOrderMapper.selectOdsProcureReturnOrderListZC(odsProcureOutOrder); - return orderList; + try { + List orderList = odsProcureOutOrderMapper.selectOdsProcureReturnOrderListZC(odsProcureOutOrder); + return orderList; + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @Override @@ -298,8 +303,13 @@ public class OdsProcureOutOrderServiceImpl implements IOdsProcureOutOrderService public List listOdsProcureOutOrderTS(OdsProcureOutOrder procureOutOrder) { String factoryCode = procureOutOrder.getFactoryCode(); DynamicDataSourceContextHolder.push("ds_" + factoryCode); - List odsProcureOutOrders= odsProcureOutOrderMapper.listOdsProcureOutOrderTS(procureOutOrder); - return odsProcureOutOrders; + try { + List odsProcureOutOrders= odsProcureOutOrderMapper.listOdsProcureOutOrderTS(procureOutOrder); + return odsProcureOutOrders; + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @Override @@ -319,72 +329,77 @@ public class OdsProcureOutOrderServiceImpl implements IOdsProcureOutOrderService if(orderList.size()>0){ String factoryCode = orderList.get(0).getFactoryCode(); DynamicDataSourceContextHolder.push("ds_" + factoryCode); - for (OdsProcureOutOrder odsProcureOutOrder : - orderList) { - String produceCode= odsProcureOutOrder.getProduceCode();//生产领料单号"订单编号" - String createBy= odsProcureOutOrder.getCreateBy();//操作人 - String mateOrderInSnId= odsProcureOutOrder.getMateOrderInSnId();//标识卡对应id - String sn= odsProcureOutOrder.getSn(); - String materialCode= odsProcureOutOrder.getMaterialCode(); - String materialDesc= odsProcureOutOrder.getMaterialDesc(); - BigDecimal amount= odsProcureOutOrder.getAmount();//数量 - WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn = wmsOdsMateStorageNewsSnMapper.selectWmsOdsMateStorageNewsSnByMateOrderInSnIdk(mateOrderInSnId); - //包材明细表 - OdsProcureOutOrder order = new OdsProcureOutOrder(); + try { + for (OdsProcureOutOrder odsProcureOutOrder : + orderList) { + String produceCode= odsProcureOutOrder.getProduceCode();//生产领料单号"订单编号" + String createBy= odsProcureOutOrder.getCreateBy();//操作人 + String mateOrderInSnId= odsProcureOutOrder.getMateOrderInSnId();//标识卡对应id + String sn= odsProcureOutOrder.getSn(); + String materialCode= odsProcureOutOrder.getMaterialCode(); + String materialDesc= odsProcureOutOrder.getMaterialDesc(); + BigDecimal amount= odsProcureOutOrder.getAmount();//数量 + WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn = wmsOdsMateStorageNewsSnMapper.selectWmsOdsMateStorageNewsSnByMateOrderInSnIdk(mateOrderInSnId); + //包材明细表 + OdsProcureOutOrder order = new OdsProcureOutOrder(); - order.setProduceCode(produceCode);//领料单 - order.setMaterialCode(materialCode);// - order.setMaterialDesc(materialDesc); - order.setUserDefined1(wmsOdsMateStorageNewsSn.getUserDefined2());//批次 - order.setUserDefined2(wmsOdsMateStorageNewsSn.getWhCode()); - order.setUserDefined3(wmsOdsMateStorageNewsSn.getWlCode()); - order.setSn(sn); - order.setPlanNumber(amount); - order.setLocCode(wmsOdsMateStorageNewsSn.getWaCode());//库区 - order.setID(IdUtils.fastSimpleUUID()); - order.setUnit("PC"); - order.setFactoryCode(factoryCode); - order.setActive("1"); - order.setCreateBy(createBy); - order.setCreateDate(new Date()); - OdsProcureOutOrder odsProcureOutOrder1=new OdsProcureOutOrder(); - odsProcureOutOrder1.setProduceCode(produceCode); - odsProcureOutOrder1.setMaterialCode(materialCode); - List odsProcureOutOrders = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrderSpecial(odsProcureOutOrder1); - //包材出库单----会有特殊的那种二次过账的单子--就看前端会不会传对应的标识卡了 - ID=odsProcureOutOrders.get(0).getID(); - OdsProcureOutOrder order1= odsProcureOutOrders.get(0); - order.setUserDefined4(order1.getUserDefined4()); - //出库明细 - odsProcureOutOrderMapper.insertWmsRawMissionOut(order); - //BigDecimal sapNumber =order1.getSapNumber(); - BigDecimal realityNumber1 = order1.getOutNumber();//累出库数 - BigDecimal realityNumber = order1.getPlanNumber();//计划 - BigDecimal planNumber = amount;//本次实际数量 - BigDecimal tem = realityNumber1.add(planNumber); - if (tem.compareTo(realityNumber)>= 0) { - order1.setOrderStatus("3");//3是满足出库数量 - } else { - order1.setOrderStatus("2");//进行 - } - order1.setOutNumber(tem);//这样的话,就可以用已经过账的数量来计算要过账的数量,用出库数量减去已经过账的数量,就是要过账的数量,只要不为0,就可以进行 + order.setProduceCode(produceCode);//领料单 + order.setMaterialCode(materialCode);// + order.setMaterialDesc(materialDesc); + order.setUserDefined1(wmsOdsMateStorageNewsSn.getUserDefined2());//批次 + order.setUserDefined2(wmsOdsMateStorageNewsSn.getWhCode()); + order.setUserDefined3(wmsOdsMateStorageNewsSn.getWlCode()); + order.setSn(sn); + order.setPlanNumber(amount); + order.setLocCode(wmsOdsMateStorageNewsSn.getWaCode());//库区 + order.setID(IdUtils.fastSimpleUUID()); + order.setUnit("PC"); + order.setFactoryCode(factoryCode); + order.setActive("1"); + order.setCreateBy(createBy); + order.setCreateDate(new Date()); + OdsProcureOutOrder odsProcureOutOrder1=new OdsProcureOutOrder(); + odsProcureOutOrder1.setProduceCode(produceCode); + odsProcureOutOrder1.setMaterialCode(materialCode); + List odsProcureOutOrders = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrderSpecial(odsProcureOutOrder1); + //包材出库单----会有特殊的那种二次过账的单子--就看前端会不会传对应的标识卡了 + ID=odsProcureOutOrders.get(0).getID(); + OdsProcureOutOrder order1= odsProcureOutOrders.get(0); + order.setUserDefined4(order1.getUserDefined4()); + //出库明细 + odsProcureOutOrderMapper.insertWmsRawMissionOut(order); + //BigDecimal sapNumber =order1.getSapNumber(); + BigDecimal realityNumber1 = order1.getOutNumber();//累出库数 + BigDecimal realityNumber = order1.getPlanNumber();//计划 + BigDecimal planNumber = amount;//本次实际数量 + BigDecimal tem = realityNumber1.add(planNumber); + if (tem.compareTo(realityNumber)>= 0) { + order1.setOrderStatus("3");//3是满足出库数量 + } else { + order1.setOrderStatus("2");//进行 + } + order1.setOutNumber(tem);//这样的话,就可以用已经过账的数量来计算要过账的数量,用出库数量减去已经过账的数量,就是要过账的数量,只要不为0,就可以进行 // order1.setSapNumber(sapNumber.add(planNumber));//原本的过账数量 - odsProcureOutOrderMapper.updateWmsOdsProcureOutOrderSpecial(order1);//订单修改--会超 - wmsOdsMateStorageNewsSn.setOutNumber(amount); - wmsOdsMateStorageNewsSn.setLastModifiedBy(createBy); - //库存明细--包材库存 - wmsOdsMateStorageNewsSnMapper.updateWmsOdsMateStorageNewsSnAddoutNumber(wmsOdsMateStorageNewsSn); - WmsOdsEmStorageNews wmsOdsEmStorageNews = new WmsOdsEmStorageNews(); - wmsOdsEmStorageNews.setWhCode(wmsOdsMateStorageNewsSn.getWhCode());//仓库编码 - wmsOdsEmStorageNews.setWlCode(wmsOdsMateStorageNewsSn.getWlCode());//库位编码 - wmsOdsEmStorageNews.setWaCode(wmsOdsMateStorageNewsSn.getWaCode()); - wmsOdsEmStorageNews.setProductBatch(wmsOdsMateStorageNewsSn.getUserDefined2()); - wmsOdsEmStorageNews.setMaterialCode(wmsOdsMateStorageNewsSn.getMaterialCode()); - wmsOdsEmStorageNews.setAmount(odsProcureOutOrder.getPlanNumber());//库存 - wmsOdsEmStorageNews.setLastModifiedBy(createBy); - wmsOdsMateStorageNewsSnMapper.updatekdd(wmsOdsEmStorageNews);//库存调整 + odsProcureOutOrderMapper.updateWmsOdsProcureOutOrderSpecial(order1);//订单修改--会超 + wmsOdsMateStorageNewsSn.setOutNumber(amount); + wmsOdsMateStorageNewsSn.setLastModifiedBy(createBy); + //库存明细--包材库存 + wmsOdsMateStorageNewsSnMapper.updateWmsOdsMateStorageNewsSnAddoutNumber(wmsOdsMateStorageNewsSn); + WmsOdsEmStorageNews wmsOdsEmStorageNews = new WmsOdsEmStorageNews(); + wmsOdsEmStorageNews.setWhCode(wmsOdsMateStorageNewsSn.getWhCode());//仓库编码 + wmsOdsEmStorageNews.setWlCode(wmsOdsMateStorageNewsSn.getWlCode());//库位编码 + wmsOdsEmStorageNews.setWaCode(wmsOdsMateStorageNewsSn.getWaCode()); + wmsOdsEmStorageNews.setProductBatch(wmsOdsMateStorageNewsSn.getUserDefined2()); + wmsOdsEmStorageNews.setMaterialCode(wmsOdsMateStorageNewsSn.getMaterialCode()); + wmsOdsEmStorageNews.setAmount(odsProcureOutOrder.getPlanNumber());//库存 + wmsOdsEmStorageNews.setLastModifiedBy(createBy); + wmsOdsMateStorageNewsSnMapper.updatekdd(wmsOdsEmStorageNews);//库存调整 + } + }finally { + DynamicDataSourceContextHolder.poll(); } + } // OdsProcureOutOrder order=new OdsProcureOutOrder(); // order.setID(ID); diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java index b4851635d..f46825267 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java @@ -156,23 +156,33 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { public WmsProductPut selectWmsProductPutByWorkOrder(String workOrder) { //todo 需要修改 DynamicDataSourceContextHolder.push("ds_1000"); - /** - * 根据报工单号查询所有托盘信息 - */ - ValueOperations valueOperations = redisTemplate.opsForValue(); - valueOperations.set("workOrder", workOrder, 60, TimeUnit.MINUTES); + try { + /** + * 根据报工单号查询所有托盘信息 + */ + ValueOperations valueOperations = redisTemplate.opsForValue(); + valueOperations.set("workOrder", workOrder, 60, TimeUnit.MINUTES); // List wmsProductPutTrays = wmsProductPutTrayMapper.selectWmsProductPutTrayByWorkOrder(workOrder); // for (WmsProductPutTray wmsProductPutTray : wmsProductPutTrays) { // wmsProductPutTrayMapper.insertWmsProductPutTray(wmsProductPutTray); // } - return wmsProductPutMapper.selectWmsProductPutByWorkOrder(workOrder); + return wmsProductPutMapper.selectWmsProductPutByWorkOrder(workOrder); + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @Override public WmsProductPut WmsProductPutByWorkOrderquery(WmsProductPut wmsProductPut) { DynamicDataSourceContextHolder.push("ds_" + wmsProductPut.getFactoryCode()); - WmsProductPut wmsProductPut1 = wmsProductPutMapper.selectMesReportWork(wmsProductPut); - return wmsProductPut1; + try { + WmsProductPut wmsProductPut1 = wmsProductPutMapper.selectMesReportWork(wmsProductPut); + return wmsProductPut1; + }finally { + DynamicDataSourceContextHolder.poll(); + } + } /** @@ -188,90 +198,95 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { @Override public String WmsProductPutByWorkOrderConfirm(WmsProductPut wmsProductPut) { DynamicDataSourceContextHolder.push("ds_" + wmsProductPut.getFactoryCode()); - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); - Date date = new Date(); - String formattedDate = dateFormat.format(date);//批次 - List wmsProductPutList = wmsProductPut.getWmsProductPut(); - WmsProductPut wmsProductPutk = new WmsProductPut(); - //wms_product_put - wmsProductPutk.setId(IdUtils.fastSimpleUUID()); - wmsProductPutk.setWorkOrder(wmsProductPut.getWorkOrder()); - wmsProductPutk.setFactoryCode(wmsProductPut.getFactoryCode()); - wmsProductPutk.setWhCode(wmsProductPut.getWhCode());//仓库编码 - wmsProductPutk.setProductName(wmsProductPut.getProductName()); - wmsProductPutk.setProductCode(wmsProductPut.getProductCode()); - wmsProductPutk.setProductOrder(wmsProductPut.getProductOrder()); - wmsProductPutk.setPlanQuantity(wmsProductPut.getPlanQuantity()); - wmsProductPutk.setPutQuantity(wmsProductPut.getPutQuantity()); - wmsProductPutk.setStatus("1"); - wmsProductPutk.setSapStatus("0"); - wmsProductPutk.setBatchNumber(wmsProductPut.getBatchNumber());// - wmsProductPutk.setAttr3(formattedDate);// - wmsProductPutk.setCreateBy(wmsProductPut.getCreateBy()); - wmsProductPutk.setCreateTime(new Date()); - wmsProductPutk.setUnitOfMeasure(wmsProductPut.getUnitOfMeasure()); - wmsProductPutMapper.insertWmsProductPut(wmsProductPutk); + try { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + Date date = new Date(); + String formattedDate = dateFormat.format(date);//批次 + List wmsProductPutList = wmsProductPut.getWmsProductPut(); + WmsProductPut wmsProductPutk = new WmsProductPut(); + //wms_product_put + wmsProductPutk.setId(IdUtils.fastSimpleUUID()); + wmsProductPutk.setWorkOrder(wmsProductPut.getWorkOrder()); + wmsProductPutk.setFactoryCode(wmsProductPut.getFactoryCode()); + wmsProductPutk.setWhCode(wmsProductPut.getWhCode());//仓库编码 + wmsProductPutk.setProductName(wmsProductPut.getProductName()); + wmsProductPutk.setProductCode(wmsProductPut.getProductCode()); + wmsProductPutk.setProductOrder(wmsProductPut.getProductOrder()); + wmsProductPutk.setPlanQuantity(wmsProductPut.getPlanQuantity()); + wmsProductPutk.setPutQuantity(wmsProductPut.getPutQuantity()); + wmsProductPutk.setStatus("1"); + wmsProductPutk.setSapStatus("0"); + wmsProductPutk.setBatchNumber(wmsProductPut.getBatchNumber());// + wmsProductPutk.setAttr3(formattedDate);// + wmsProductPutk.setCreateBy(wmsProductPut.getCreateBy()); + wmsProductPutk.setCreateTime(new Date()); + wmsProductPutk.setUnitOfMeasure(wmsProductPut.getUnitOfMeasure()); + wmsProductPutMapper.insertWmsProductPut(wmsProductPutk); - String SUCCESS = "操作成功"; - for (WmsProductPut wmsProductPut1 : - wmsProductPutList) { - WmsProductPutRecords wmsProductPutRecords = new WmsProductPutRecords(); - wmsProductPutRecords.setWorkOrder(wmsProductPut.getWorkOrder()); - wmsProductPutRecords.setProductOrder(wmsProductPut.getProductOrder()); - wmsProductPutRecords.setProductName(wmsProductPut.getProductName()); - wmsProductPutRecords.setProductCode(wmsProductPut.getProductCode()); - wmsProductPutRecords.setWhCode(wmsProductPut.getWhCode());//仓库编码 - wmsProductPutRecords.setId(IdUtils.fastSimpleUUID()); - wmsProductPutRecords.setWlCode(wmsProductPut1.getWlCode()); - wmsProductPutRecords.setSn(wmsProductPut1.getSn()); - wmsProductPutRecords.setNumber(wmsProductPut1.getNumber()); - wmsProductPutRecords.setCreateBy(wmsProductPut.getCreateBy()); - wmsProductPutRecords.setCreateTime(new Date()); - wmsProductPutRecordsMapper.insertWmsProductPutRecords(wmsProductPutRecords); - //wms_fp_storage_news_sn - WmsFpStorageNewsSn wmsFpStorageNewsSn = new WmsFpStorageNewsSn(); - wmsFpStorageNewsSn.setStorageId(IdUtils.fastSimpleUUID()); - wmsFpStorageNewsSn.setFactoryCode(wmsProductPut.getFactoryCode()); - wmsFpStorageNewsSn.setWhCode(wmsProductPut.getWhCode());//仓库编码 - wmsFpStorageNewsSn.setWlCode(wmsProductPut1.getWlCode()); - wmsFpStorageNewsSn.setOrderNo(wmsProductPutk.getId()); - wmsFpStorageNewsSn.setProductCode(wmsProductPut.getProductCode()); - wmsFpStorageNewsSn.setProductName(wmsProductPut.getProductName()); - wmsFpStorageNewsSn.setSn(wmsProductPut1.getSn()); - wmsFpStorageNewsSn.setAmount(new BigDecimal(wmsProductPut1.getNumber())); - wmsFpStorageNewsSn.setBatchNumber(wmsProductPut.getBatchNumber()); - //wmsFpStorageNewsSn.setUserDefined2(formattedDate); - wmsFpStorageNewsSn.setCreateBy(wmsProductPut.getCreateBy()); - wmsFpStorageNewsSn.setCreateTime(new Date()); - wmsFpStorageNewsSn.setActiveFlag("1"); - wmsFpStorageNewsSnMapper.insertWmsFpStorageNewsSn(wmsFpStorageNewsSn); + String SUCCESS = "操作成功"; + for (WmsProductPut wmsProductPut1 : + wmsProductPutList) { + WmsProductPutRecords wmsProductPutRecords = new WmsProductPutRecords(); + wmsProductPutRecords.setWorkOrder(wmsProductPut.getWorkOrder()); + wmsProductPutRecords.setProductOrder(wmsProductPut.getProductOrder()); + wmsProductPutRecords.setProductName(wmsProductPut.getProductName()); + wmsProductPutRecords.setProductCode(wmsProductPut.getProductCode()); + wmsProductPutRecords.setWhCode(wmsProductPut.getWhCode());//仓库编码 + wmsProductPutRecords.setId(IdUtils.fastSimpleUUID()); + wmsProductPutRecords.setWlCode(wmsProductPut1.getWlCode()); + wmsProductPutRecords.setSn(wmsProductPut1.getSn()); + wmsProductPutRecords.setNumber(wmsProductPut1.getNumber()); + wmsProductPutRecords.setCreateBy(wmsProductPut.getCreateBy()); + wmsProductPutRecords.setCreateTime(new Date()); + wmsProductPutRecordsMapper.insertWmsProductPutRecords(wmsProductPutRecords); + //wms_fp_storage_news_sn + WmsFpStorageNewsSn wmsFpStorageNewsSn = new WmsFpStorageNewsSn(); + wmsFpStorageNewsSn.setStorageId(IdUtils.fastSimpleUUID()); + wmsFpStorageNewsSn.setFactoryCode(wmsProductPut.getFactoryCode()); + wmsFpStorageNewsSn.setWhCode(wmsProductPut.getWhCode());//仓库编码 + wmsFpStorageNewsSn.setWlCode(wmsProductPut1.getWlCode()); + wmsFpStorageNewsSn.setOrderNo(wmsProductPutk.getId()); + wmsFpStorageNewsSn.setProductCode(wmsProductPut.getProductCode()); + wmsFpStorageNewsSn.setProductName(wmsProductPut.getProductName()); + wmsFpStorageNewsSn.setSn(wmsProductPut1.getSn()); + wmsFpStorageNewsSn.setAmount(new BigDecimal(wmsProductPut1.getNumber())); + wmsFpStorageNewsSn.setBatchNumber(wmsProductPut.getBatchNumber()); + //wmsFpStorageNewsSn.setUserDefined2(formattedDate); + wmsFpStorageNewsSn.setCreateBy(wmsProductPut.getCreateBy()); + wmsFpStorageNewsSn.setCreateTime(new Date()); + wmsFpStorageNewsSn.setActiveFlag("1"); + wmsFpStorageNewsSnMapper.insertWmsFpStorageNewsSn(wmsFpStorageNewsSn); // wms_fp_storage_news - WmsFpStorageNews wmsFpStorageNews = new WmsFpStorageNews(); + WmsFpStorageNews wmsFpStorageNews = new WmsFpStorageNews(); - wmsFpStorageNews.setWhCode(wmsProductPut.getWhCode());//仓库编码 - wmsFpStorageNews.setWlCode(wmsProductPut1.getWlCode()); - wmsFpStorageNews.setStorageType("成品"); - wmsFpStorageNews.setProductCode(wmsProductPut.getProductCode()); - wmsFpStorageNews.setProductName(wmsProductPut.getProductName()); - wmsFpStorageNews.setFactoryCode(wmsProductPut.getFactoryCode()); - wmsFpStorageNews.setActiveFlag("1"); - wmsFpStorageNews.setUserDefined1(wmsProductPut.getUnitOfMeasure()); - List wmsFpStorageNewsList = wmsFpStorageNewsMapper.selectWmsFpStorageNewsList(wmsFpStorageNews); - wmsFpStorageNews.setStorageId(IdUtils.fastSimpleUUID()); - wmsFpStorageNews.setAmount(new BigDecimal(wmsProductPut1.getNumber())); - wmsFpStorageNews.setCreateBy(wmsProductPut.getCreateBy()); - wmsFpStorageNews.setCreateTime(new Date()); - if (wmsFpStorageNewsList.size() > 0) { - WmsFpStorageNews wmsFpStorageNews1 = wmsFpStorageNewsList.get(0); - BigDecimal amount = wmsFpStorageNews1.getAmount(); - BigDecimal amountAdd = amount.add(wmsFpStorageNews.getAmount()); - wmsFpStorageNews1.setAmount(amountAdd); - wmsFpStorageNewsMapper.updateWmsFpStorageNews(wmsFpStorageNews1); - } else { - wmsFpStorageNewsMapper.insertWmsFpStorageNews(wmsFpStorageNews); + wmsFpStorageNews.setWhCode(wmsProductPut.getWhCode());//仓库编码 + wmsFpStorageNews.setWlCode(wmsProductPut1.getWlCode()); + wmsFpStorageNews.setStorageType("成品"); + wmsFpStorageNews.setProductCode(wmsProductPut.getProductCode()); + wmsFpStorageNews.setProductName(wmsProductPut.getProductName()); + wmsFpStorageNews.setFactoryCode(wmsProductPut.getFactoryCode()); + wmsFpStorageNews.setActiveFlag("1"); + wmsFpStorageNews.setUserDefined1(wmsProductPut.getUnitOfMeasure()); + List wmsFpStorageNewsList = wmsFpStorageNewsMapper.selectWmsFpStorageNewsList(wmsFpStorageNews); + wmsFpStorageNews.setStorageId(IdUtils.fastSimpleUUID()); + wmsFpStorageNews.setAmount(new BigDecimal(wmsProductPut1.getNumber())); + wmsFpStorageNews.setCreateBy(wmsProductPut.getCreateBy()); + wmsFpStorageNews.setCreateTime(new Date()); + if (wmsFpStorageNewsList.size() > 0) { + WmsFpStorageNews wmsFpStorageNews1 = wmsFpStorageNewsList.get(0); + BigDecimal amount = wmsFpStorageNews1.getAmount(); + BigDecimal amountAdd = amount.add(wmsFpStorageNews.getAmount()); + wmsFpStorageNews1.setAmount(amountAdd); + wmsFpStorageNewsMapper.updateWmsFpStorageNews(wmsFpStorageNews1); + } else { + wmsFpStorageNewsMapper.insertWmsFpStorageNews(wmsFpStorageNews); + } } + return SUCCESS; + }finally { + DynamicDataSourceContextHolder.poll(); } - return SUCCESS; + } @Override @@ -338,8 +353,13 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { @Override public WmsProductPut WmsProductPutByWorkOrderqueryPC(WmsProductPut wmsProductPut) { DynamicDataSourceContextHolder.push("ds_" + wmsProductPut.getFactoryCode()); - WmsProductPut wmsProductPut1 = wmsProductPutMapper.selectMesReportWork(wmsProductPut); - return wmsProductPut1; + try { + WmsProductPut wmsProductPut1 = wmsProductPutMapper.selectMesReportWork(wmsProductPut); + return wmsProductPut1; + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @Override @@ -639,25 +659,28 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { @Override public ProOrderWorkorder selectWmsOdsWhiteEmbryoInhAnd(WmsOdsWhiteEmbryoIn wmsOdsWhiteEmbryoIns) { - //pro order workorder - //ipro order workorder batch DynamicDataSourceContextHolder.push("ds_" + wmsOdsWhiteEmbryoIns.getSiteCode()); - ProOrderWorkorder proOrderWorkorder= wmsOdsWhiteEmbryoInMapper.selectProOrderWorkorder(wmsOdsWhiteEmbryoIns); - if (proOrderWorkorder!=null){ - List proOrderWorkorderBatchList= wmsOdsWhiteEmbryoInMapper.selectProOrderWorkorderBatch(proOrderWorkorder); - for(ProOrderWorkorderBatch proOrderWorkorderBatch:proOrderWorkorderBatchList){ - String realityNumber= wmsOdsWhiteEmbryoInMapper.selectByOrderAndBc(proOrderWorkorderBatch,proOrderWorkorder.getOrderCode()); - if (realityNumber!=null){ - proOrderWorkorderBatch.setRealityNumber(realityNumber); - }else { - proOrderWorkorderBatch.setRealityNumber("0"); - } - } - proOrderWorkorder.setProOrderWorkorderBatchList(proOrderWorkorderBatchList); + try { + ProOrderWorkorder proOrderWorkorder= wmsOdsWhiteEmbryoInMapper.selectProOrderWorkorder(wmsOdsWhiteEmbryoIns); + if (proOrderWorkorder!=null){ + List proOrderWorkorderBatchList= wmsOdsWhiteEmbryoInMapper.selectProOrderWorkorderBatch(proOrderWorkorder); + for(ProOrderWorkorderBatch proOrderWorkorderBatch:proOrderWorkorderBatchList){ + String realityNumber= wmsOdsWhiteEmbryoInMapper.selectByOrderAndBc(proOrderWorkorderBatch,proOrderWorkorder.getOrderCode()); + if (realityNumber!=null){ + proOrderWorkorderBatch.setRealityNumber(realityNumber); + }else { + proOrderWorkorderBatch.setRealityNumber("0"); + } + } + proOrderWorkorder.setProOrderWorkorderBatchList(proOrderWorkorderBatchList); - } + } // proOrderWorkorder .setUnit("辆"); - return proOrderWorkorder; + return proOrderWorkorder; + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @Override @@ -665,96 +688,111 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { String result="入库成功"; //先判断这个订单是否存在//如果存在--就修改订单。-如果不存在就添加上, DynamicDataSourceContextHolder.push("ds_" + wmsOdsWhiteEmbryoIn.getSiteCode()); - String unit= wmsOdsWhiteEmbryoIn.getUnit(); - String userDefined1= wmsOdsWhiteEmbryoIn.getUserDefined1(); - WmsOdsWhiteEmbryoIn wmsOdsWhiteEmbryoIn1= wmsOdsWhiteEmbryoInMapper.selectWmsOdsWhiteEmbryoInByOrderCodeAndUserDefined1(wmsOdsWhiteEmbryoIn); - if (wmsOdsWhiteEmbryoIn1==null){ - //原来不存在 - wmsOdsWhiteEmbryoIn.setID(IdUtils.fastSimpleUUID()); - wmsOdsWhiteEmbryoIn.setActive("1"); - wmsOdsWhiteEmbryoIn.setRealityNumber(new BigDecimal("0")); - wmsOdsWhiteEmbryoIn.setOrderStatus("1"); - wmsOdsWhiteEmbryoIn.setCreateDate(new Date()); - wmsOdsWhiteEmbryoInMapper.insertWmsOdsWhiteEmbryoIn(wmsOdsWhiteEmbryoIn); - wmsOdsWhiteEmbryoIn1=wmsOdsWhiteEmbryoIn; - } + try { + String unit= wmsOdsWhiteEmbryoIn.getUnit(); + String userDefined1= wmsOdsWhiteEmbryoIn.getUserDefined1(); + WmsOdsWhiteEmbryoIn wmsOdsWhiteEmbryoIn1= wmsOdsWhiteEmbryoInMapper.selectWmsOdsWhiteEmbryoInByOrderCodeAndUserDefined1(wmsOdsWhiteEmbryoIn); + if (wmsOdsWhiteEmbryoIn1==null){ + //原来不存在 + wmsOdsWhiteEmbryoIn.setID(IdUtils.fastSimpleUUID()); + wmsOdsWhiteEmbryoIn.setActive("1"); + wmsOdsWhiteEmbryoIn.setRealityNumber(new BigDecimal("0")); + wmsOdsWhiteEmbryoIn.setOrderStatus("1"); + wmsOdsWhiteEmbryoIn.setCreateDate(new Date()); + wmsOdsWhiteEmbryoInMapper.insertWmsOdsWhiteEmbryoIn(wmsOdsWhiteEmbryoIn); + wmsOdsWhiteEmbryoIn1=wmsOdsWhiteEmbryoIn; + } // else {//原来就存在 // wmsOdsWhiteEmbryoIn1.setOrderStatus("1"); // wmsOdsWhiteEmbryoInMapper.updateWmsOdsWhiteEmbryoIn(wmsOdsWhiteEmbryoIn1); // } - List wmsWhiteBilletInforList= wmsOdsWhiteEmbryoIn.getWmsWhiteBilletInforList(); - for (WmsWhiteBilletInfor wmsWhiteBilletInfor: - wmsWhiteBilletInforList) { - //判断是否入完 - //wms_ods_em_storage_news_sn 明细 - WmsOdsWhiteEmbryoIn wmsOdsWhiteEmbryoIn2= wmsOdsWhiteEmbryoInMapper.selectWmsOdsWhiteEmbryoInByID(wmsOdsWhiteEmbryoIn1.getID()); - BigDecimal runumber= wmsOdsWhiteEmbryoIn2.getRealityNumber().add(new BigDecimal(wmsWhiteBilletInfor.getBatchQuantity())); - BigDecimal planNumber= wmsOdsWhiteEmbryoIn2.getPlanNumber(); - if (runumber.equals(planNumber)){//相等,为true,否则为false - wmsOdsWhiteEmbryoIn2.setOrderStatus("2"); + List wmsWhiteBilletInforList= wmsOdsWhiteEmbryoIn.getWmsWhiteBilletInforList(); + for (WmsWhiteBilletInfor wmsWhiteBilletInfor: + wmsWhiteBilletInforList) { + //判断是否入完 + //wms_ods_em_storage_news_sn 明细 + WmsOdsWhiteEmbryoIn wmsOdsWhiteEmbryoIn2= wmsOdsWhiteEmbryoInMapper.selectWmsOdsWhiteEmbryoInByID(wmsOdsWhiteEmbryoIn1.getID()); + BigDecimal runumber= wmsOdsWhiteEmbryoIn2.getRealityNumber().add(new BigDecimal(wmsWhiteBilletInfor.getBatchQuantity())); + BigDecimal planNumber= wmsOdsWhiteEmbryoIn2.getPlanNumber(); + if (runumber.equals(planNumber)){//相等,为true,否则为false + wmsOdsWhiteEmbryoIn2.setOrderStatus("2"); + } + wmsOdsWhiteEmbryoIn2.setLastUpdateBy(wmsOdsWhiteEmbryoIn.getCreateBy()); + wmsOdsWhiteEmbryoIn2.setLastUpdateDate(new Date()); + wmsOdsWhiteEmbryoIn2.setRealityNumber(runumber); + wmsOdsWhiteEmbryoInMapper.updateWmsOdsWhiteEmbryoIn(wmsOdsWhiteEmbryoIn2); + //修改订单入库数量和状态 + WmsOdsEmStorageNewsSn wmsOdsEmStorageNewsSn =new WmsOdsEmStorageNewsSn(); + wmsOdsEmStorageNewsSn.setWlCode(wmsWhiteBilletInfor.getWlCode());//库位 + wmsOdsEmStorageNewsSn.setMaterialCode(wmsOdsWhiteEmbryoIn.getMaterialCode()); + wmsOdsEmStorageNewsSn.setMaterialDesc(wmsOdsWhiteEmbryoIn.getMaterialDesc()); + wmsOdsEmStorageNewsSn.setSn(wmsWhiteBilletInfor.getSn()); + wmsOdsEmStorageNewsSn.setBarCode(userDefined1); + wmsOdsEmStorageNewsSn.setAmount(new BigDecimal(wmsWhiteBilletInfor.getBatchQuantity())); + wmsOdsEmStorageNewsSn.setCreateBy(wmsOdsWhiteEmbryoIn.getCreateBy()); + wmsOdsEmStorageNewsSn.setGmtCreate(new Date()); + wmsOdsEmStorageNewsSn.setActiveFlag("1"); + wmsOdsEmStorageNewsSn.setUserDefined1(wmsOdsWhiteEmbryoIn.getOrderCode()); + wmsOdsEmStorageNewsSn.setUserDefined2(unit); + wmsOdsEmStorageNewsSn.setFactoryCode(wmsOdsWhiteEmbryoIn.getSiteCode()); + wmsOdsEmStorageNewsSnMapper.insertWmsOdsEmStorageNewsSn(wmsOdsEmStorageNewsSn); + WmsOdsEmStorageNews wmsOdsEmStorageNews=new WmsOdsEmStorageNews(); + wmsOdsEmStorageNews.setWlCode(wmsWhiteBilletInfor.getWlCode()); + wmsOdsEmStorageNews.setMaterialCode(wmsOdsWhiteEmbryoIn.getMaterialCode()); + wmsOdsEmStorageNews.setMaterialDesc(wmsOdsWhiteEmbryoIn.getMaterialDesc()); + wmsOdsEmStorageNews.setUserDefined1(unit); + wmsOdsEmStorageNews.setActiveFlag("1"); + List wmsOdsEmStorageNewsList= wmsOdsEmStorageNewsMapper.selectWmsOdsEmStorageNewsList(wmsOdsEmStorageNews); + if (wmsOdsEmStorageNewsList.size()>0){ + WmsOdsEmStorageNews wmsOdsEmStorageNews1 = wmsOdsEmStorageNewsList.get(0); + BigDecimal Amount=wmsOdsEmStorageNews1.getAmount().add(new BigDecimal(wmsWhiteBilletInfor.getBatchQuantity())); + wmsOdsEmStorageNews1.setAmount(Amount); + wmsOdsEmStorageNewsMapper.updateWmsOdsEmStorageNews(wmsOdsEmStorageNews1); + }else { + wmsOdsEmStorageNews.setAmount(new BigDecimal(wmsWhiteBilletInfor.getBatchQuantity())); + wmsOdsEmStorageNews.setUserDefined1(wmsOdsWhiteEmbryoIn.getUnit()); + wmsOdsEmStorageNews.setCreateBy(wmsOdsWhiteEmbryoIn.getCreateBy()); + wmsOdsEmStorageNews.setGmtCreate(new Date()); + wmsOdsEmStorageNews.setFactoryCode(wmsOdsWhiteEmbryoIn.getSiteCode()); + wmsOdsEmStorageNews.setSapFactoryCode(wmsOdsWhiteEmbryoIn.getSiteCode()); + wmsOdsEmStorageNews.setStorageId(IdUtils.fastSimpleUUID()); + wmsOdsEmStorageNewsMapper.insertWmsOdsEmStorageNews(wmsOdsEmStorageNews); + } + // wms_ods_em_storage_news 主库 } - wmsOdsWhiteEmbryoIn2.setLastUpdateBy(wmsOdsWhiteEmbryoIn.getCreateBy()); - wmsOdsWhiteEmbryoIn2.setLastUpdateDate(new Date()); - wmsOdsWhiteEmbryoIn2.setRealityNumber(runumber); - wmsOdsWhiteEmbryoInMapper.updateWmsOdsWhiteEmbryoIn(wmsOdsWhiteEmbryoIn2); - //修改订单入库数量和状态 - WmsOdsEmStorageNewsSn wmsOdsEmStorageNewsSn =new WmsOdsEmStorageNewsSn(); - wmsOdsEmStorageNewsSn.setWlCode(wmsWhiteBilletInfor.getWlCode());//库位 - wmsOdsEmStorageNewsSn.setMaterialCode(wmsOdsWhiteEmbryoIn.getMaterialCode()); - wmsOdsEmStorageNewsSn.setMaterialDesc(wmsOdsWhiteEmbryoIn.getMaterialDesc()); - wmsOdsEmStorageNewsSn.setSn(wmsWhiteBilletInfor.getSn()); - wmsOdsEmStorageNewsSn.setBarCode(userDefined1); - wmsOdsEmStorageNewsSn.setAmount(new BigDecimal(wmsWhiteBilletInfor.getBatchQuantity())); - wmsOdsEmStorageNewsSn.setCreateBy(wmsOdsWhiteEmbryoIn.getCreateBy()); - wmsOdsEmStorageNewsSn.setGmtCreate(new Date()); - wmsOdsEmStorageNewsSn.setActiveFlag("1"); - wmsOdsEmStorageNewsSn.setUserDefined1(wmsOdsWhiteEmbryoIn.getOrderCode()); - wmsOdsEmStorageNewsSn.setUserDefined2(unit); - wmsOdsEmStorageNewsSn.setFactoryCode(wmsOdsWhiteEmbryoIn.getSiteCode()); - wmsOdsEmStorageNewsSnMapper.insertWmsOdsEmStorageNewsSn(wmsOdsEmStorageNewsSn); - WmsOdsEmStorageNews wmsOdsEmStorageNews=new WmsOdsEmStorageNews(); - wmsOdsEmStorageNews.setWlCode(wmsWhiteBilletInfor.getWlCode()); - wmsOdsEmStorageNews.setMaterialCode(wmsOdsWhiteEmbryoIn.getMaterialCode()); - wmsOdsEmStorageNews.setMaterialDesc(wmsOdsWhiteEmbryoIn.getMaterialDesc()); - wmsOdsEmStorageNews.setUserDefined1(unit); - wmsOdsEmStorageNews.setActiveFlag("1"); - List wmsOdsEmStorageNewsList= wmsOdsEmStorageNewsMapper.selectWmsOdsEmStorageNewsList(wmsOdsEmStorageNews); - if (wmsOdsEmStorageNewsList.size()>0){ - WmsOdsEmStorageNews wmsOdsEmStorageNews1 = wmsOdsEmStorageNewsList.get(0); - BigDecimal Amount=wmsOdsEmStorageNews1.getAmount().add(new BigDecimal(wmsWhiteBilletInfor.getBatchQuantity())); - wmsOdsEmStorageNews1.setAmount(Amount); - wmsOdsEmStorageNewsMapper.updateWmsOdsEmStorageNews(wmsOdsEmStorageNews1); - }else { - wmsOdsEmStorageNews.setAmount(new BigDecimal(wmsWhiteBilletInfor.getBatchQuantity())); - wmsOdsEmStorageNews.setUserDefined1(wmsOdsWhiteEmbryoIn.getUnit()); - wmsOdsEmStorageNews.setCreateBy(wmsOdsWhiteEmbryoIn.getCreateBy()); - wmsOdsEmStorageNews.setGmtCreate(new Date()); - wmsOdsEmStorageNews.setFactoryCode(wmsOdsWhiteEmbryoIn.getSiteCode()); - wmsOdsEmStorageNews.setSapFactoryCode(wmsOdsWhiteEmbryoIn.getSiteCode()); - wmsOdsEmStorageNews.setStorageId(IdUtils.fastSimpleUUID()); - wmsOdsEmStorageNewsMapper.insertWmsOdsEmStorageNews(wmsOdsEmStorageNews); - } - // wms_ods_em_storage_news 主库 + }finally { + DynamicDataSourceContextHolder.poll(); } + return result; } @Override public List selectSnCorrelationBarcode(WmsProductPutTrayCode wmsProductPutTrayCode) { DynamicDataSourceContextHolder.push("ds_" + wmsProductPutTrayCode.getSiteCode()); - wmsProductPutTrayCode.setRelatStatus("1"); - List wmsProductPutTrayCodeList= wmsProductPutTrayCodeMapper.selectWmsProductPutTrayCodeList(wmsProductPutTrayCode); - return wmsProductPutTrayCodeList; + try { + wmsProductPutTrayCode.setRelatStatus("1"); + List wmsProductPutTrayCodeList= wmsProductPutTrayCodeMapper.selectWmsProductPutTrayCodeList(wmsProductPutTrayCode); + return wmsProductPutTrayCodeList; + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @Override public String addSnCorrelationBarcode(WmsProductPutTrayCode wmsProductPutTrayCode) { String result="关联成功"; DynamicDataSourceContextHolder.push("ds_" + wmsProductPutTrayCode.getSiteCode()); - wmsProductPutTrayCode.setRelatStatus("1"); - wmsProductPutTrayCode.setStorageId(IdUtils.fastSimpleUUID()); - wmsProductPutTrayCode.setNumber(1); - wmsProductPutTrayCodeMapper.insertWmsProductPutTrayCode(wmsProductPutTrayCode); + try { + wmsProductPutTrayCode.setRelatStatus("1"); + wmsProductPutTrayCode.setStorageId(IdUtils.fastSimpleUUID()); + wmsProductPutTrayCode.setNumber(1); + wmsProductPutTrayCodeMapper.insertWmsProductPutTrayCode(wmsProductPutTrayCode); + }finally { + DynamicDataSourceContextHolder.poll(); + } + return result; } @@ -762,7 +800,12 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { public String deletSnCorrelationBarcode(WmsProductPutTrayCode wmsProductPutTrayCode) { String result="解除成功"; DynamicDataSourceContextHolder.push("ds_" + wmsProductPutTrayCode.getSiteCode()); - wmsProductPutTrayCodeMapper.deleteWmsProductPutTrayCodeByStorageId(wmsProductPutTrayCode.getStorageId()); + try { + wmsProductPutTrayCodeMapper.deleteWmsProductPutTrayCodeByStorageId(wmsProductPutTrayCode.getStorageId()); + }finally { + DynamicDataSourceContextHolder.poll(); + } + return result; } @@ -788,60 +831,65 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { public String selectFinishedProductSales(WmsSellOutEmbryo wmsSellOutEmbryo) { String results="提单成功"; DynamicDataSourceContextHolder.push("ds_" + wmsSellOutEmbryo.getFactoryCode()); - Map objectMap=new HashMap<>(); - objectMap.put("S_MATNR",wmsSellOutEmbryo.getProductCode());//物料号, - objectMap.put("S_TDDAT",wmsSellOutEmbryo.getAttr1());//String 计划运输日期 - objectMap.put("S_VBELN",wmsSellOutEmbryo.getDeliveryOrder());//交货单 - R result = remoteSapService.FPinventory(objectMap); - int code = result.getCode(); - String msg = result.getMsg(); - if(code==200){ - List> mapList= (List>) result.getData(); - for ( Map stringStringMap: mapList){ - String MAKTX=stringStringMap.get("MAKTX");//物料描述 - String MATNR=stringStringMap.get("MATNR");//物料号 - String KUNNR=stringStringMap.get("KUNNR");//送达方 - String VBELN=stringStringMap.get("VBELN");//交货单---一销售单对多交货单 - String VBELN_VA=stringStringMap.get("VBELN_VA");//销售单 - String MENGE=stringStringMap.get("MENGE");//数量 - String MEINS=stringStringMap.get("MEINS");//单位 - String TDDAT=stringStringMap.get("TDDAT");//计划日期 - String KUNNR_NM=stringStringMap.get("KUNNR_NM");//送达方描述 - String LIFNR=stringStringMap.get("LIFNR");//货运代理 - String LIFNR_NM=stringStringMap.get("LIFNR_NM");//货运代理描述 - String ZSAREA=stringStringMap.get("ZSAREA");//销售大区 - String BZTXT1=stringStringMap.get("BZTXT1");//销售大区描述 - WmsSellOutEmbryo wmsSellOutEmbryo1=new WmsSellOutEmbryo(); - wmsSellOutEmbryo1.setId(IdUtils.fastSimpleUUID()); - wmsSellOutEmbryo1.setDeliveryOrder(VBELN);//交货单号 - wmsSellOutEmbryo1.setAttr1(VBELN_VA); - wmsSellOutEmbryo1.setProductCode(MATNR); - wmsSellOutEmbryo1.setProductName(MAKTX); - wmsSellOutEmbryo1.setFactoryCode(wmsSellOutEmbryo.getFactoryCode()); - wmsSellOutEmbryo1.setOutQuantity(new BigDecimal("0")); - wmsSellOutEmbryo1.setAttr2(KUNNR); - wmsSellOutEmbryo1.setAttr3(KUNNR_NM); - wmsSellOutEmbryo1.setAttr4(LIFNR); - wmsSellOutEmbryo1.setAttr5(LIFNR_NM); - wmsSellOutEmbryo1.setAttr6(ZSAREA); - wmsSellOutEmbryo1.setAttr7(BZTXT1); - wmsSellOutEmbryo1.setAttr8(TDDAT); - wmsSellOutEmbryo1.setPlanQuantity(new BigDecimal(MENGE)); - wmsSellOutEmbryo1.setUnitOfMeasure(MEINS); - wmsSellOutEmbryo1.setStatus("0"); - wmsSellOutEmbryo1.setSapStatus("0"); - wmsSellOutEmbryo1.setActiveFlag("1"); - wmsSellOutEmbryo1.setCreateBy(wmsSellOutEmbryo.getCreateBy()); - wmsSellOutEmbryo1.setCreateTime(new Date()); - //判断有没有这个单子,。如果有的话,就跳过吧 - WmsSellOutEmbryo wmsSellOutEmbryo2= wmsSellOutEmbryoMapper.selectWmsSellOutEmbryoByOrderCodeAndProductCode(VBELN,MATNR); - if (wmsSellOutEmbryo2==null){ - wmsSellOutEmbryoMapper.insertWmsSellOutEmbryo(wmsSellOutEmbryo1); - }else { - results="已经存在"; + try { + Map objectMap=new HashMap<>(); + objectMap.put("S_MATNR",wmsSellOutEmbryo.getProductCode());//物料号, + objectMap.put("S_TDDAT",wmsSellOutEmbryo.getAttr1());//String 计划运输日期 + objectMap.put("S_VBELN",wmsSellOutEmbryo.getDeliveryOrder());//交货单 + R result = remoteSapService.FPinventory(objectMap); + int code = result.getCode(); + String msg = result.getMsg(); + if(code==200){ + List> mapList= (List>) result.getData(); + for ( Map stringStringMap: mapList){ + String MAKTX=stringStringMap.get("MAKTX");//物料描述 + String MATNR=stringStringMap.get("MATNR");//物料号 + String KUNNR=stringStringMap.get("KUNNR");//送达方 + String VBELN=stringStringMap.get("VBELN");//交货单---一销售单对多交货单 + String VBELN_VA=stringStringMap.get("VBELN_VA");//销售单 + String MENGE=stringStringMap.get("MENGE");//数量 + String MEINS=stringStringMap.get("MEINS");//单位 + String TDDAT=stringStringMap.get("TDDAT");//计划日期 + String KUNNR_NM=stringStringMap.get("KUNNR_NM");//送达方描述 + String LIFNR=stringStringMap.get("LIFNR");//货运代理 + String LIFNR_NM=stringStringMap.get("LIFNR_NM");//货运代理描述 + String ZSAREA=stringStringMap.get("ZSAREA");//销售大区 + String BZTXT1=stringStringMap.get("BZTXT1");//销售大区描述 + WmsSellOutEmbryo wmsSellOutEmbryo1=new WmsSellOutEmbryo(); + wmsSellOutEmbryo1.setId(IdUtils.fastSimpleUUID()); + wmsSellOutEmbryo1.setDeliveryOrder(VBELN);//交货单号 + wmsSellOutEmbryo1.setAttr1(VBELN_VA); + wmsSellOutEmbryo1.setProductCode(MATNR); + wmsSellOutEmbryo1.setProductName(MAKTX); + wmsSellOutEmbryo1.setFactoryCode(wmsSellOutEmbryo.getFactoryCode()); + wmsSellOutEmbryo1.setOutQuantity(new BigDecimal("0")); + wmsSellOutEmbryo1.setAttr2(KUNNR); + wmsSellOutEmbryo1.setAttr3(KUNNR_NM); + wmsSellOutEmbryo1.setAttr4(LIFNR); + wmsSellOutEmbryo1.setAttr5(LIFNR_NM); + wmsSellOutEmbryo1.setAttr6(ZSAREA); + wmsSellOutEmbryo1.setAttr7(BZTXT1); + wmsSellOutEmbryo1.setAttr8(TDDAT); + wmsSellOutEmbryo1.setPlanQuantity(new BigDecimal(MENGE)); + wmsSellOutEmbryo1.setUnitOfMeasure(MEINS); + wmsSellOutEmbryo1.setStatus("0"); + wmsSellOutEmbryo1.setSapStatus("0"); + wmsSellOutEmbryo1.setActiveFlag("1"); + wmsSellOutEmbryo1.setCreateBy(wmsSellOutEmbryo.getCreateBy()); + wmsSellOutEmbryo1.setCreateTime(new Date()); + //判断有没有这个单子,。如果有的话,就跳过吧 + WmsSellOutEmbryo wmsSellOutEmbryo2= wmsSellOutEmbryoMapper.selectWmsSellOutEmbryoByOrderCodeAndProductCode(VBELN,MATNR); + if (wmsSellOutEmbryo2==null){ + wmsSellOutEmbryoMapper.insertWmsSellOutEmbryo(wmsSellOutEmbryo1); + }else { + results="已经存在"; + } } } + }finally { + DynamicDataSourceContextHolder.poll(); } + return results; } @@ -849,99 +897,114 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { public String confirmFinishedProductSales(WmsSellOutEmbryo wmsSellOutEmbryo) { String result1="出库成功"; DynamicDataSourceContextHolder.push("ds_" + wmsSellOutEmbryo.getFactoryCode()); - List wmsProductPutTrayCodeList= wmsSellOutEmbryo.getWmsProductPutTrayCodeList(); - List wmsFpStorageNewsSns = wmsSellOutEmbryo.getWmsFpStorageNewsSns(); - for (WmsFpStorageNewsSn wmsFpStorageNewsSn: - wmsFpStorageNewsSns) { - WmsSellOutEmbryo wmsSellOutEmbryo1 = wmsSellOutEmbryoMapper.selectWmsSellOutEmbryoByIdRE(wmsSellOutEmbryo.getId()); - BigDecimal OutQuantity= wmsSellOutEmbryo1.getOutQuantity().add(wmsFpStorageNewsSn.getAmount());//已出加操作 - int result = wmsSellOutEmbryo1.getPlanQuantity().compareTo(OutQuantity); - WmsSellOutEmbryo wmsSellOutEmbryoUpdate=new WmsSellOutEmbryo(); - if (result == 0){//出库完 - wmsSellOutEmbryoUpdate.setStatus("2"); - }else { - wmsSellOutEmbryoUpdate.setStatus("1"); + try { + List wmsProductPutTrayCodeList= wmsSellOutEmbryo.getWmsProductPutTrayCodeList(); + List wmsFpStorageNewsSns = wmsSellOutEmbryo.getWmsFpStorageNewsSns(); + for (WmsFpStorageNewsSn wmsFpStorageNewsSn: + wmsFpStorageNewsSns) { + WmsSellOutEmbryo wmsSellOutEmbryo1 = wmsSellOutEmbryoMapper.selectWmsSellOutEmbryoByIdRE(wmsSellOutEmbryo.getId()); + BigDecimal OutQuantity= wmsSellOutEmbryo1.getOutQuantity().add(wmsFpStorageNewsSn.getAmount());//已出加操作 + int result = wmsSellOutEmbryo1.getPlanQuantity().compareTo(OutQuantity); + WmsSellOutEmbryo wmsSellOutEmbryoUpdate=new WmsSellOutEmbryo(); + if (result == 0){//出库完 + wmsSellOutEmbryoUpdate.setStatus("2"); + }else { + wmsSellOutEmbryoUpdate.setStatus("1"); + } + wmsSellOutEmbryoUpdate.setId(wmsSellOutEmbryo.getId()); + wmsSellOutEmbryoUpdate.setOutQuantity(OutQuantity); + wmsSellOutEmbryoMapper.updateWmsSellOutEmbryoRE(wmsSellOutEmbryoUpdate); + WmsFpStorageNewsSn wmsFpStorageNewsSn1=new WmsFpStorageNewsSn(); + wmsFpStorageNewsSn1.setStorageId(wmsFpStorageNewsSn.getStorageId()); + wmsFpStorageNewsSn1.setAmount(wmsFpStorageNewsSn.getAmount()); + wmsFpStorageNewsSn1.setActiveFlag("1"); + wmsFpStorageNewsSn1.setProductCode(wmsSellOutEmbryo1.getProductCode()); + wmsFpStorageNewsSnMapper.updateWmsFpStorageNewsSnOut(wmsFpStorageNewsSn1); + wmsFpStorageNewsSnMapper.updateWmsFpStorageNewsSnsetZT(wmsFpStorageNewsSn1); + WmsFpStorageNewsSn wmsFpStorageNewsSn2= wmsFpStorageNewsSnMapper.selectWmsFpStorageNewsSnByStorageId(wmsFpStorageNewsSn.getStorageId()); + WmsFpStorageNewsSn wmsFpStorageNewsSn3=new WmsFpStorageNewsSn(); + wmsFpStorageNewsSn3.setStorageId(IdUtils.fastSimpleUUID()); + wmsFpStorageNewsSn3.setWhCode(wmsFpStorageNewsSn2.getWhCode()); + wmsFpStorageNewsSn3.setWaCode(wmsFpStorageNewsSn2.getWaCode()); + wmsFpStorageNewsSn3.setWlCode(wmsFpStorageNewsSn2.getWlCode()); + wmsFpStorageNewsSn3.setOrderNo(wmsSellOutEmbryo1.getDeliveryOrder()); + wmsFpStorageNewsSn3.setProductCode(wmsFpStorageNewsSn2.getProductCode()); + wmsFpStorageNewsSn3.setProductName(wmsFpStorageNewsSn2.getProductName()); + wmsFpStorageNewsSn3.setSn(wmsFpStorageNewsSn2.getSn()); + wmsFpStorageNewsSn3.setBatchNumber(wmsFpStorageNewsSn2.getBatchNumber()); + wmsFpStorageNewsSn3.setUserDefined1(wmsSellOutEmbryo1.getStockOrder());//备货 + wmsFpStorageNewsSn3.setUserDefined3(wmsFpStorageNewsSn2.getUserDefined3()); + wmsFpStorageNewsSn3.setCreateTime(new Date()); + wmsFpStorageNewsSn3.setCreateBy(wmsFpStorageNewsSn2.getCreateBy()); + wmsFpStorageNewsSn3.setActiveFlag(wmsFpStorageNewsSn2.getActiveFlag()); + wmsFpStorageNewsSn3.setAmount(wmsFpStorageNewsSn.getAmount()); + wmsFpStorageNewsSn3.setBarCode(wmsSellOutEmbryo.getId()); + wmsFpStorageNewsSn3.setFactoryCode(wmsSellOutEmbryo.getFactoryCode()); + wmsFpStorageNewsSnMapper.insertWmsFpStorageNewsSnRecords(wmsFpStorageNewsSn3);//出库明细记录 + WmsFpStorageNews wmsFpStorageNews=new WmsFpStorageNews(); + wmsFpStorageNews.setActiveFlag("1"); + wmsFpStorageNews.setWlCode(wmsFpStorageNewsSn2.getWlCode()); + wmsFpStorageNews.setProductCode(wmsSellOutEmbryo1.getProductCode()); + wmsFpStorageNews.setProductBatch(wmsFpStorageNewsSn2.getBatchNumber()); + wmsFpStorageNews.setAmount(wmsFpStorageNewsSn.getAmount()); + wmsFpStorageNews.setWhCode(wmsFpStorageNewsSn2.getWhCode()); + wmsFpStorageNews.setWaCode(wmsFpStorageNewsSn2.getWaCode()); + wmsFpStorageNewsMapper.updateWmsFpStorageNewsOut(wmsFpStorageNews); } - wmsSellOutEmbryoUpdate.setId(wmsSellOutEmbryo.getId()); - wmsSellOutEmbryoUpdate.setOutQuantity(OutQuantity); - wmsSellOutEmbryoMapper.updateWmsSellOutEmbryoRE(wmsSellOutEmbryoUpdate); - WmsFpStorageNewsSn wmsFpStorageNewsSn1=new WmsFpStorageNewsSn(); - wmsFpStorageNewsSn1.setStorageId(wmsFpStorageNewsSn.getStorageId()); - wmsFpStorageNewsSn1.setAmount(wmsFpStorageNewsSn.getAmount()); - wmsFpStorageNewsSn1.setActiveFlag("1"); - wmsFpStorageNewsSn1.setProductCode(wmsSellOutEmbryo1.getProductCode()); - wmsFpStorageNewsSnMapper.updateWmsFpStorageNewsSnOut(wmsFpStorageNewsSn1); - wmsFpStorageNewsSnMapper.updateWmsFpStorageNewsSnsetZT(wmsFpStorageNewsSn1); - WmsFpStorageNewsSn wmsFpStorageNewsSn2= wmsFpStorageNewsSnMapper.selectWmsFpStorageNewsSnByStorageId(wmsFpStorageNewsSn.getStorageId()); - WmsFpStorageNewsSn wmsFpStorageNewsSn3=new WmsFpStorageNewsSn(); - wmsFpStorageNewsSn3.setStorageId(IdUtils.fastSimpleUUID()); - wmsFpStorageNewsSn3.setWhCode(wmsFpStorageNewsSn2.getWhCode()); - wmsFpStorageNewsSn3.setWaCode(wmsFpStorageNewsSn2.getWaCode()); - wmsFpStorageNewsSn3.setWlCode(wmsFpStorageNewsSn2.getWlCode()); - wmsFpStorageNewsSn3.setOrderNo(wmsSellOutEmbryo1.getDeliveryOrder()); - wmsFpStorageNewsSn3.setProductCode(wmsFpStorageNewsSn2.getProductCode()); - wmsFpStorageNewsSn3.setProductName(wmsFpStorageNewsSn2.getProductName()); - wmsFpStorageNewsSn3.setSn(wmsFpStorageNewsSn2.getSn()); - wmsFpStorageNewsSn3.setBatchNumber(wmsFpStorageNewsSn2.getBatchNumber()); - wmsFpStorageNewsSn3.setUserDefined1(wmsSellOutEmbryo1.getStockOrder());//备货 - wmsFpStorageNewsSn3.setUserDefined3(wmsFpStorageNewsSn2.getUserDefined3()); - wmsFpStorageNewsSn3.setCreateTime(new Date()); - wmsFpStorageNewsSn3.setCreateBy(wmsFpStorageNewsSn2.getCreateBy()); - wmsFpStorageNewsSn3.setActiveFlag(wmsFpStorageNewsSn2.getActiveFlag()); - wmsFpStorageNewsSn3.setAmount(wmsFpStorageNewsSn.getAmount()); - wmsFpStorageNewsSn3.setBarCode(wmsSellOutEmbryo.getId()); - wmsFpStorageNewsSn3.setFactoryCode(wmsSellOutEmbryo.getFactoryCode()); - wmsFpStorageNewsSnMapper.insertWmsFpStorageNewsSnRecords(wmsFpStorageNewsSn3);//出库明细记录 - WmsFpStorageNews wmsFpStorageNews=new WmsFpStorageNews(); - wmsFpStorageNews.setActiveFlag("1"); - wmsFpStorageNews.setWlCode(wmsFpStorageNewsSn2.getWlCode()); - wmsFpStorageNews.setProductCode(wmsSellOutEmbryo1.getProductCode()); - wmsFpStorageNews.setProductBatch(wmsFpStorageNewsSn2.getBatchNumber()); - wmsFpStorageNews.setAmount(wmsFpStorageNewsSn.getAmount()); - wmsFpStorageNews.setWhCode(wmsFpStorageNewsSn2.getWhCode()); - wmsFpStorageNews.setWaCode(wmsFpStorageNewsSn2.getWaCode()); - wmsFpStorageNewsMapper.updateWmsFpStorageNewsOut(wmsFpStorageNews); + }finally { + DynamicDataSourceContextHolder.poll(); } + return result1; } @Override public List ScanCodeWholePallet(WmsProductPutTrayCode wmsProductPutTrayCode) { DynamicDataSourceContextHolder.push("ds_" + wmsProductPutTrayCode.getSiteCode()); - wmsProductPutTrayCode.setRelatStatus("1"); + try { + wmsProductPutTrayCode.setRelatStatus("1"); // List wmsProductPutTrayCodeList= wmsProductPutTrayCodeMapper.selectWmsProductPutTrayCodeList(wmsProductPutTrayCode);//sn - WmsFpStorageNewsSn wmsFpStorageNewsSn=new WmsFpStorageNewsSn(); - wmsFpStorageNewsSn.setSn(wmsProductPutTrayCode.getSn()); - wmsFpStorageNewsSn.setActiveFlag("1"); - List wmsFpStorageNewsSns = wmsFpStorageNewsSnMapper.selectWmsFpStorageNewsSnSTList(wmsFpStorageNewsSn); + WmsFpStorageNewsSn wmsFpStorageNewsSn=new WmsFpStorageNewsSn(); + wmsFpStorageNewsSn.setSn(wmsProductPutTrayCode.getSn()); + wmsFpStorageNewsSn.setActiveFlag("1"); + List wmsFpStorageNewsSns = wmsFpStorageNewsSnMapper.selectWmsFpStorageNewsSnSTList(wmsFpStorageNewsSn); + + return wmsFpStorageNewsSns; + }finally { + DynamicDataSourceContextHolder.poll(); + } - return wmsFpStorageNewsSns; } @Override public WmsProductPutTrayCode ScanCodeSingleBox(WmsProductPutTrayCode wmsProductPutTrayCode) { DynamicDataSourceContextHolder.push("ds_" + wmsProductPutTrayCode.getSiteCode()); - wmsProductPutTrayCode.setRelatStatus("1"); - //barcode - List wmsProductPutTrayCodeList= wmsProductPutTrayCodeMapper.selectWmsProductPutTrayCodeList(wmsProductPutTrayCode); - //对应的箱码 - if (wmsProductPutTrayCodeList.size()>0){ - WmsProductPutTrayCode wmsProductPutTrayCode1= wmsProductPutTrayCodeList.get(0); - wmsProductPutTrayCode.setSn(wmsProductPutTrayCode1.getSn());//托盘 - WmsFpStorageNewsSn wmsFpStorageNewsSn=new WmsFpStorageNewsSn(); - wmsFpStorageNewsSn.setSn(wmsProductPutTrayCode.getSn()); - wmsFpStorageNewsSn.setActiveFlag("1"); - List wmsFpStorageNewsSns= wmsFpStorageNewsSnMapper.selectWmsFpStorageNewsSnList(wmsFpStorageNewsSn); - //库位 - if(wmsFpStorageNewsSns.size()>0){ - WmsFpStorageNewsSn wmsFpStorageNewsSn1= wmsFpStorageNewsSns.get(0); - wmsProductPutTrayCode.setWlCode( wmsFpStorageNewsSn1.getWlCode());//库位 - wmsProductPutTrayCode.setProductCode(wmsFpStorageNewsSn1.getProductCode()); - wmsProductPutTrayCode.setProductName(wmsFpStorageNewsSn1.getProductName()); - return wmsProductPutTrayCode; + try { + wmsProductPutTrayCode.setRelatStatus("1"); + //barcode + List wmsProductPutTrayCodeList= wmsProductPutTrayCodeMapper.selectWmsProductPutTrayCodeList(wmsProductPutTrayCode); + //对应的箱码 + if (wmsProductPutTrayCodeList.size()>0){ + WmsProductPutTrayCode wmsProductPutTrayCode1= wmsProductPutTrayCodeList.get(0); + wmsProductPutTrayCode.setSn(wmsProductPutTrayCode1.getSn());//托盘 + WmsFpStorageNewsSn wmsFpStorageNewsSn=new WmsFpStorageNewsSn(); + wmsFpStorageNewsSn.setSn(wmsProductPutTrayCode.getSn()); + wmsFpStorageNewsSn.setActiveFlag("1"); + List wmsFpStorageNewsSns= wmsFpStorageNewsSnMapper.selectWmsFpStorageNewsSnList(wmsFpStorageNewsSn); + //库位 + if(wmsFpStorageNewsSns.size()>0){ + WmsFpStorageNewsSn wmsFpStorageNewsSn1= wmsFpStorageNewsSns.get(0); + wmsProductPutTrayCode.setWlCode( wmsFpStorageNewsSn1.getWlCode());//库位 + wmsProductPutTrayCode.setProductCode(wmsFpStorageNewsSn1.getProductCode()); + wmsProductPutTrayCode.setProductName(wmsFpStorageNewsSn1.getProductName()); + return wmsProductPutTrayCode; + } } + }finally { + DynamicDataSourceContextHolder.poll(); } + return null; } @@ -949,105 +1012,130 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { public List selectQueryFinishedProductSales(WmsSellOutEmbryo wmsSellOutEmbryo) { //wms_sell_out_embryo DynamicDataSourceContextHolder.push("ds_" + wmsSellOutEmbryo.getFactoryCode()); - wmsSellOutEmbryo.setActiveFlag("1"); - List wmsSellOutEmbryoList= wmsSellOutEmbryoMapper.selectWmsSellOutEmbryoListRE(wmsSellOutEmbryo); - return wmsSellOutEmbryoList; + try { + wmsSellOutEmbryo.setActiveFlag("1"); + List wmsSellOutEmbryoList= wmsSellOutEmbryoMapper.selectWmsSellOutEmbryoListRE(wmsSellOutEmbryo); + return wmsSellOutEmbryoList; + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @Override public String finishedProductSalesReturnTD(WmsRuturnPutEmbryo wmsRuturnPutEmbryo) { String results="提单成功";//退货单 DynamicDataSourceContextHolder.push("ds_" + wmsRuturnPutEmbryo.getFactoryCode()); - Map objectMap=new HashMap<>(); - objectMap.put("S_MATNR",wmsRuturnPutEmbryo.getProductCode());//物料号, - objectMap.put("S_TDDAT",wmsRuturnPutEmbryo.getAttr1());//String 计划运输日期 - objectMap.put("S_VBELN",wmsRuturnPutEmbryo.getProductOrder());//成品销售退货单 - objectMap.put("S_AUART","ZRE"); - R result = remoteSapService.FPinventory(objectMap); - int code = result.getCode(); - String msg = result.getMsg(); - if(code==200){ - List> mapList= (List>) result.getData(); - for ( Map stringStringMap: mapList){ - String MAKTX=stringStringMap.get("MAKTX");//物料描述 - String MATNR=stringStringMap.get("MATNR");//物料号 - String KUNNR=stringStringMap.get("KUNNR");//送达方 - String VBELN=stringStringMap.get("VBELN");//交货单---一销售单对多交货单 - String VBELN_VA=stringStringMap.get("VBELN_VA");//销售单 - String MENGE=stringStringMap.get("MENGE");//数量 - String MEINS=stringStringMap.get("MEINS");//单位 - String TDDAT=stringStringMap.get("TDDAT");//计划日期 - String KUNNR_NM=stringStringMap.get("KUNNR_NM");//送达方描述 - String LIFNR=stringStringMap.get("LIFNR");//货运代理 - String LIFNR_NM=stringStringMap.get("LIFNR_NM");//货运代理描述 - String ZSAREA=stringStringMap.get("ZSAREA");//销售大区 - String BZTXT1=stringStringMap.get("BZTXT1");//销售大区描述 - String POSNR=stringStringMap.get("POSNR");//交货项目 - String AUART=stringStringMap.get("AUART");// - String BEZEI=stringStringMap.get("BEZEI");// + try { + Map objectMap=new HashMap<>(); + objectMap.put("S_MATNR",wmsRuturnPutEmbryo.getProductCode());//物料号, + objectMap.put("S_TDDAT",wmsRuturnPutEmbryo.getAttr1());//String 计划运输日期 + objectMap.put("S_VBELN",wmsRuturnPutEmbryo.getProductOrder());//成品销售退货单 + objectMap.put("S_AUART","ZRE"); + R result = remoteSapService.FPinventory(objectMap); + int code = result.getCode(); + String msg = result.getMsg(); + if(code==200){ + List> mapList= (List>) result.getData(); + for ( Map stringStringMap: mapList){ + String MAKTX=stringStringMap.get("MAKTX");//物料描述 + String MATNR=stringStringMap.get("MATNR");//物料号 + String KUNNR=stringStringMap.get("KUNNR");//送达方 + String VBELN=stringStringMap.get("VBELN");//交货单---一销售单对多交货单 + String VBELN_VA=stringStringMap.get("VBELN_VA");//销售单 + String MENGE=stringStringMap.get("MENGE");//数量 + String MEINS=stringStringMap.get("MEINS");//单位 + String TDDAT=stringStringMap.get("TDDAT");//计划日期 + String KUNNR_NM=stringStringMap.get("KUNNR_NM");//送达方描述 + String LIFNR=stringStringMap.get("LIFNR");//货运代理 + String LIFNR_NM=stringStringMap.get("LIFNR_NM");//货运代理描述 + String ZSAREA=stringStringMap.get("ZSAREA");//销售大区 + String BZTXT1=stringStringMap.get("BZTXT1");//销售大区描述 + String POSNR=stringStringMap.get("POSNR");//交货项目 + String AUART=stringStringMap.get("AUART");// + String BEZEI=stringStringMap.get("BEZEI");// - WmsRuturnPutEmbryo wmsRuturnPutEmbryo1=new WmsRuturnPutEmbryo(); - wmsRuturnPutEmbryo1.setProductOrder(VBELN); - wmsRuturnPutEmbryo1.setFactoryCode(wmsRuturnPutEmbryo.getFactoryCode()); - wmsRuturnPutEmbryo1.setProductCode(MATNR); - wmsRuturnPutEmbryo1.setAttr10(POSNR); - wmsRuturnPutEmbryo1.setActiveFlag("1"); - List wmsRuturnPutEmbryoList= wmsRuturnPutEmbryoMapper.selectWmsRuturnPutEmbryoList(wmsRuturnPutEmbryo1); - if ( wmsRuturnPutEmbryoList.size()==0){ - wmsRuturnPutEmbryo1.setAttr7(AUART); - wmsRuturnPutEmbryo1.setAttr8(BEZEI); - wmsRuturnPutEmbryo1.setPlanQuantity(new BigDecimal(MENGE)); - wmsRuturnPutEmbryo1.setStatus("0"); - wmsRuturnPutEmbryo1.setUnitOfMeasure(MEINS); - wmsRuturnPutEmbryo1.setAttr9(VBELN_VA); - wmsRuturnPutEmbryo1.setCreateBy(wmsRuturnPutEmbryo.getCreateBy()); - wmsRuturnPutEmbryo1.setCreateTime(new Date()); + WmsRuturnPutEmbryo wmsRuturnPutEmbryo1=new WmsRuturnPutEmbryo(); + wmsRuturnPutEmbryo1.setProductOrder(VBELN); + wmsRuturnPutEmbryo1.setFactoryCode(wmsRuturnPutEmbryo.getFactoryCode()); + wmsRuturnPutEmbryo1.setProductCode(MATNR); + wmsRuturnPutEmbryo1.setAttr10(POSNR); wmsRuturnPutEmbryo1.setActiveFlag("1"); - wmsRuturnPutEmbryo1.setProductName(MAKTX); - wmsRuturnPutEmbryo1.setSapStatus("0"); - wmsRuturnPutEmbryo1.setId(IdUtils.fastSimpleUUID()); - wmsRuturnPutEmbryoMapper.insertWmsRuturnPutEmbryo(wmsRuturnPutEmbryo1); - }else { - results="已经存在"; + List wmsRuturnPutEmbryoList= wmsRuturnPutEmbryoMapper.selectWmsRuturnPutEmbryoList(wmsRuturnPutEmbryo1); + if ( wmsRuturnPutEmbryoList.size()==0){ + wmsRuturnPutEmbryo1.setAttr7(AUART); + wmsRuturnPutEmbryo1.setAttr8(BEZEI); + wmsRuturnPutEmbryo1.setPlanQuantity(new BigDecimal(MENGE)); + wmsRuturnPutEmbryo1.setStatus("0"); + wmsRuturnPutEmbryo1.setUnitOfMeasure(MEINS); + wmsRuturnPutEmbryo1.setAttr9(VBELN_VA); + wmsRuturnPutEmbryo1.setCreateBy(wmsRuturnPutEmbryo.getCreateBy()); + wmsRuturnPutEmbryo1.setCreateTime(new Date()); + wmsRuturnPutEmbryo1.setActiveFlag("1"); + wmsRuturnPutEmbryo1.setProductName(MAKTX); + wmsRuturnPutEmbryo1.setSapStatus("0"); + wmsRuturnPutEmbryo1.setId(IdUtils.fastSimpleUUID()); + wmsRuturnPutEmbryoMapper.insertWmsRuturnPutEmbryo(wmsRuturnPutEmbryo1); + }else { + results="已经存在"; + } } } + return results; + }finally { + DynamicDataSourceContextHolder.poll(); } - return results; + } @Override public List selectBaseEquipmentList(BaseEquipment baseEquipment) { DynamicDataSourceContextHolder.push("ds_" + baseEquipment.getFactoryCode()); - List baseEquipments = wmsRuturnPutEmbryoMapper.selectBaseEquipmentList(baseEquipment); - return baseEquipments; + try { + List baseEquipments = wmsRuturnPutEmbryoMapper.selectBaseEquipmentList(baseEquipment); + return baseEquipments; + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @Override public List listProOrderWorkorder(ProOrderWorkorder proOrderWorkorder) { DynamicDataSourceContextHolder.push("ds_" + proOrderWorkorder.getFactoryCode()); - List workorderList= wmsOdsWhiteEmbryoInMapper.listProOrderWorkorder(proOrderWorkorder); - return workorderList; + try { + List workorderList= wmsOdsWhiteEmbryoInMapper.listProOrderWorkorder(proOrderWorkorder); + return workorderList; + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @Override public Integer finishedProductProductionRecords(ProOrderWorkorder proOrderWorkorder) { DynamicDataSourceContextHolder.push("ds_" + proOrderWorkorder.getFactoryCode()); - WmsProductProductionRecords wmsProductProductionRecords=new WmsProductProductionRecords(); - wmsProductProductionRecords.setSiteCode(proOrderWorkorder.getFactoryCode()); - wmsProductProductionRecords.setId(IdUtils.fastSimpleUUID()); - wmsProductProductionRecords.setSn(proOrderWorkorder.getSn()); - wmsProductProductionRecords.setUserDefined1(proOrderWorkorder.getAttr1());//标识卡 - wmsProductProductionRecords.setQuantity(proOrderWorkorder.getQuantity()); - wmsProductProductionRecords.setBatchCode(proOrderWorkorder.getBatchCode()); - wmsProductProductionRecords.setProductOrder(proOrderWorkorder.getWorkorderCodeSap()); - wmsProductProductionRecords.setProductCode(proOrderWorkorder.getProductCode()); - wmsProductProductionRecords.setProductName(proOrderWorkorder.getProductName()); - wmsProductProductionRecords.setProductDate(new Date()); - wmsProductProductionRecords.setLineName(proOrderWorkorder.getProdLineName()); - wmsProductProductionRecords.setLineCode(proOrderWorkorder.getProdLineCode()); - wmsProductProductionRecords.setCreateBy(proOrderWorkorder.getCreateBy()); - wmsProductProductionRecords.setCreateTime(new Date()); - Integer result= wmsProductPutRecordsMapper.insertProductProductionRecord(wmsProductProductionRecords); - return result; + try { + WmsProductProductionRecords wmsProductProductionRecords=new WmsProductProductionRecords(); + wmsProductProductionRecords.setSiteCode(proOrderWorkorder.getFactoryCode()); + wmsProductProductionRecords.setId(IdUtils.fastSimpleUUID()); + wmsProductProductionRecords.setSn(proOrderWorkorder.getSn()); + wmsProductProductionRecords.setUserDefined1(proOrderWorkorder.getAttr1());//标识卡 + wmsProductProductionRecords.setQuantity(proOrderWorkorder.getQuantity()); + wmsProductProductionRecords.setBatchCode(proOrderWorkorder.getBatchCode()); + wmsProductProductionRecords.setProductOrder(proOrderWorkorder.getWorkorderCodeSap()); + wmsProductProductionRecords.setProductCode(proOrderWorkorder.getProductCode()); + wmsProductProductionRecords.setProductName(proOrderWorkorder.getProductName()); + wmsProductProductionRecords.setProductDate(new Date()); + wmsProductProductionRecords.setLineName(proOrderWorkorder.getProdLineName()); + wmsProductProductionRecords.setLineCode(proOrderWorkorder.getProdLineCode()); + wmsProductProductionRecords.setCreateBy(proOrderWorkorder.getCreateBy()); + wmsProductProductionRecords.setCreateTime(new Date()); + Integer result= wmsProductPutRecordsMapper.insertProductProductionRecord(wmsProductProductionRecords); + return result; + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @Override @@ -1063,84 +1151,94 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { public WmsProductPut WmsProductPutByWorkOrderqueryBS(WmsProductPut wmsProductPut) { // 使用 split 方法根据 '-' 分割字符串,结果是一个字符串数组 DynamicDataSourceContextHolder.push("ds_" + wmsProductPut.getFactoryCode()); -// String[] attributes = wmsProductPut.getPallet().split("-"); - WmsProductPut wmsProductPutTEM= wmsProductPutMapper.selectProOrderWorkorderBatchPalletcode(wmsProductPut); - String attribute1 = wmsProductPutTEM.getAttribute1(); // 获取第一个属性 - String attribute2 = wmsProductPutTEM.getAttribute2(); // 获取第二个属性 - String attribute3 = wmsProductPutTEM.getAttribute3(); // 获取第三个属性 - wmsProductPut.setAttribute1(attribute1); - wmsProductPut.setAttribute2(attribute2); - wmsProductPut.setAttribute3(attribute3); - WmsProductPut wmsProductPut1 = wmsProductPutMapper.WmsProductPutByWorkOrderqueryBS(wmsProductPut); - WmsProductPut wmsProductPut2 =new WmsProductPut(); - wmsProductPut2.setWorkOrder(attribute1); - wmsProductPut2.setBatchNumber(attribute2); - wmsProductPut2.setPallet(attribute3); - WmsProductPut wmsProductPut3= wmsProductPutMapper.selectProOrderWorkorderBatchPallet(wmsProductPut2); - //wmsProductPut.setProductCode(wmsProductPut3.getProductCode()); - // wmsProductPut.setProductName(wmsProductPut3.getProductName()); - // wmsProductPut.setUnitOfMeasure(wmsProductPut3.getAttr5()); - wmsProductPut1.setNumber(wmsProductPut3.getAttr3()); + try { + // String[] attributes = wmsProductPut.getPallet().split("-"); + WmsProductPut wmsProductPutTEM= wmsProductPutMapper.selectProOrderWorkorderBatchPalletcode(wmsProductPut); + String attribute1 = wmsProductPutTEM.getAttribute1(); // 获取第一个属性 + String attribute2 = wmsProductPutTEM.getAttribute2(); // 获取第二个属性 + String attribute3 = wmsProductPutTEM.getAttribute3(); // 获取第三个属性 + wmsProductPut.setAttribute1(attribute1); + wmsProductPut.setAttribute2(attribute2); + wmsProductPut.setAttribute3(attribute3); + WmsProductPut wmsProductPut1 = wmsProductPutMapper.WmsProductPutByWorkOrderqueryBS(wmsProductPut); + WmsProductPut wmsProductPut2 =new WmsProductPut(); + wmsProductPut2.setWorkOrder(attribute1); + wmsProductPut2.setBatchNumber(attribute2); + wmsProductPut2.setPallet(attribute3); + WmsProductPut wmsProductPut3= wmsProductPutMapper.selectProOrderWorkorderBatchPallet(wmsProductPut2); + //wmsProductPut.setProductCode(wmsProductPut3.getProductCode()); + // wmsProductPut.setProductName(wmsProductPut3.getProductName()); + // wmsProductPut.setUnitOfMeasure(wmsProductPut3.getAttr5()); + wmsProductPut1.setNumber(wmsProductPut3.getAttr3()); - //获取托盘信息--首先要他们有绑定数据 - WmsProductProductionRecords wmsProductProductionRecord=new WmsProductProductionRecords(); - wmsProductProductionRecord.setUserDefined1(wmsProductPut.getPallet()); - List wmsProductProductionRecords= wmsProductPutRecordsMapper.selectProductProductionRecords(wmsProductProductionRecord); - if (wmsProductProductionRecords.size()>0){ - WmsProductProductionRecords wmsProductProductionRecords1= wmsProductProductionRecords.get(0); - wmsProductPut1.setSn(wmsProductProductionRecords1.getSn()); - WmsProductPutRecords wmsProductPutRecords=new WmsProductPutRecords(); - wmsProductPutRecords.setUserDefined1(wmsProductPut.getPallet()); - List wmsProductPutRecords1= wmsProductPutRecordsMapper.selectWmsProductPutRecordsList(wmsProductPutRecords); - if(wmsProductPutRecords1.size()>0){ - wmsProductPut1.setRemark("1");//已经入库 - wmsProductPut1.setNumber(wmsProductPutRecords1.get(0).getNumber()); - }else { - wmsProductPut1.setRemark("0");//未入库 - } - }else { - //他们又不想在成品下线的时候绑托盘,--让标识卡代替托盘码,如果没有绑的话,就标识卡代替托盘码 - wmsProductPut1.setSn(wmsProductPut.getPallet()); - WmsProductPutRecords wmsProductPutRecords=new WmsProductPutRecords(); - wmsProductPutRecords.setUserDefined1(wmsProductPut.getPallet()); - List wmsProductPutRecords1= wmsProductPutRecordsMapper.selectWmsProductPutRecordsList(wmsProductPutRecords); - if(wmsProductPutRecords1.size()>0){ - wmsProductPut1.setRemark("1");//已经入库 - wmsProductPut1.setNumber(wmsProductPutRecords1.get(0).getNumber()); + //获取托盘信息--首先要他们有绑定数据 + WmsProductProductionRecords wmsProductProductionRecord=new WmsProductProductionRecords(); + wmsProductProductionRecord.setUserDefined1(wmsProductPut.getPallet()); + List wmsProductProductionRecords= wmsProductPutRecordsMapper.selectProductProductionRecords(wmsProductProductionRecord); + if (wmsProductProductionRecords.size()>0){ + WmsProductProductionRecords wmsProductProductionRecords1= wmsProductProductionRecords.get(0); + wmsProductPut1.setSn(wmsProductProductionRecords1.getSn()); + WmsProductPutRecords wmsProductPutRecords=new WmsProductPutRecords(); + wmsProductPutRecords.setUserDefined1(wmsProductPut.getPallet()); + List wmsProductPutRecords1= wmsProductPutRecordsMapper.selectWmsProductPutRecordsList(wmsProductPutRecords); + if(wmsProductPutRecords1.size()>0){ + wmsProductPut1.setRemark("1");//已经入库 + wmsProductPut1.setNumber(wmsProductPutRecords1.get(0).getNumber()); + }else { + wmsProductPut1.setRemark("0");//未入库 + } }else { - wmsProductPut1.setRemark("0");//未入库 - } + //他们又不想在成品下线的时候绑托盘,--让标识卡代替托盘码,如果没有绑的话,就标识卡代替托盘码 + wmsProductPut1.setSn(wmsProductPut.getPallet()); + WmsProductPutRecords wmsProductPutRecords=new WmsProductPutRecords(); + wmsProductPutRecords.setUserDefined1(wmsProductPut.getPallet()); + List wmsProductPutRecords1= wmsProductPutRecordsMapper.selectWmsProductPutRecordsList(wmsProductPutRecords); + if(wmsProductPutRecords1.size()>0){ + wmsProductPut1.setRemark("1");//已经入库 + wmsProductPut1.setNumber(wmsProductPutRecords1.get(0).getNumber()); + }else { + wmsProductPut1.setRemark("0");//未入库 + } // return null; + } + if (wmsProductPut1.getAttr3()==null){ + wmsProductPut1.setAttr3(wmsProductPut1.getPlanQuantity().toString()); + } + wmsProductPut1.setPallet(wmsProductPut.getPallet()); + return wmsProductPut1; + }finally { + DynamicDataSourceContextHolder.poll(); } - if (wmsProductPut1.getAttr3()==null){ - wmsProductPut1.setAttr3(wmsProductPut1.getPlanQuantity().toString()); - } - wmsProductPut1.setPallet(wmsProductPut.getPallet()); - return wmsProductPut1; + } @Override public ProOrderWorkorder finishedProductProductionRecordscar(ProOrderWorkorder proOrderWorkorder) { DynamicDataSourceContextHolder.push("ds_" + proOrderWorkorder.getFactoryCode()); - //String[] attributes = proOrderWorkorder.getAttr1().split("-"); - // 通过索引访问分割后的数组,获取所需的三个属性 - WmsProductPut wmsProductPutTEM= wmsProductPutMapper.selectProOrderWorkorderBatchPalletAtter(proOrderWorkorder); - String attribute1 = wmsProductPutTEM.getAttribute1(); // 获取第一个属性 - String attribute2 = wmsProductPutTEM.getAttribute2(); // 获取第二个属性 - String attribute3 = wmsProductPutTEM.getAttribute3(); // 获取第三个属性 - proOrderWorkorder.setWorkorderCodeSap(attribute1); - proOrderWorkorder.setBatchCode(attribute2); - WmsProductPut wmsProductPut =new WmsProductPut(); - wmsProductPut.setWorkOrder(attribute1); - wmsProductPut.setBatchNumber(attribute2); - wmsProductPut.setPallet(attribute3); - WmsProductPut wmsProductPut1= wmsProductPutMapper.selectProOrderWorkorderBatchPallet(wmsProductPut); - proOrderWorkorder.setQuantity(wmsProductPut1.getAttr3()); - proOrderWorkorder.setProdLineCode(wmsProductPut1.getAttr4()); - proOrderWorkorder.setProductCode(wmsProductPut1.getProductCode()); - proOrderWorkorder.setProductName(wmsProductPut1.getProductName()); + try { + //String[] attributes = proOrderWorkorder.getAttr1().split("-"); + // 通过索引访问分割后的数组,获取所需的三个属性 + WmsProductPut wmsProductPutTEM= wmsProductPutMapper.selectProOrderWorkorderBatchPalletAtter(proOrderWorkorder); + String attribute1 = wmsProductPutTEM.getAttribute1(); // 获取第一个属性 + String attribute2 = wmsProductPutTEM.getAttribute2(); // 获取第二个属性 + String attribute3 = wmsProductPutTEM.getAttribute3(); // 获取第三个属性 + proOrderWorkorder.setWorkorderCodeSap(attribute1); + proOrderWorkorder.setBatchCode(attribute2); + WmsProductPut wmsProductPut =new WmsProductPut(); + wmsProductPut.setWorkOrder(attribute1); + wmsProductPut.setBatchNumber(attribute2); + wmsProductPut.setPallet(attribute3); + WmsProductPut wmsProductPut1= wmsProductPutMapper.selectProOrderWorkorderBatchPallet(wmsProductPut); + proOrderWorkorder.setQuantity(wmsProductPut1.getAttr3()); + proOrderWorkorder.setProdLineCode(wmsProductPut1.getAttr4()); + proOrderWorkorder.setProductCode(wmsProductPut1.getProductCode()); + proOrderWorkorder.setProductName(wmsProductPut1.getProductName()); // proOrderWorkorder.setAttribute3(attribute3); - return proOrderWorkorder; + return proOrderWorkorder; + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @Override @@ -1149,136 +1247,146 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { // waCode // factoryCode DynamicDataSourceContextHolder.push("ds_" + wmsProductPut.getFactoryCode()); - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); - Date date = new Date(); - String formattedDate = dateFormat.format(date);//批次 - List wmsProductPutList = wmsProductPut.getWmsProductPut();//前端下栏保存的数据 + try { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + Date date = new Date(); + String formattedDate = dateFormat.format(date);//批次 + List wmsProductPutList = wmsProductPut.getWmsProductPut();//前端下栏保存的数据 - String SUCCESS = "操作成功"; - for (WmsProductPut wmsProductPut1 : - wmsProductPutList) { - //根据下面的记录--先查询对应订单,如果有原来的订单的话,就在原来的订单上进行修改,如果没有就先插入,如果有就修改数量 - WmsProductPut wmsProductPutk = new WmsProductPut(); - //wms_product_put - wmsProductPutk.setWorkOrder(wmsProductPut1.getWorkOrder()); - wmsProductPutk.setProductOrder(wmsProductPut1.getProductOrder()); - wmsProductPutk.setFactoryCode(wmsProductPut.getFactoryCode()); - wmsProductPutk.setWhCode(wmsProductPut1.getWhCode());//仓库编码 - wmsProductPutk.setWaCode(wmsProductPut1.getWaCode());//仓库编码 - wmsProductPutk.setProductName(wmsProductPut1.getProductName()); - wmsProductPutk.setProductCode(wmsProductPut1.getProductCode()); - wmsProductPutk.setPlanQuantity(wmsProductPut1.getPlanQuantity()); - wmsProductPutk.setUnitOfMeasure(wmsProductPut1.getUnitOfMeasure()); - wmsProductPutk.setBatchNumber(wmsProductPut1.getBatchNumber());// - List wmsProductPutLists= wmsProductPutMapper.selectWmsProductPutList(wmsProductPutk); - if (wmsProductPutLists.size()>0){ - //有 - WmsProductPut wmsProductPut2= wmsProductPutLists.get(0); - BigDecimal planQuantity= wmsProductPut2.getPlanQuantity(); - BigDecimal putQuantity= wmsProductPut2.getPutQuantity(); + String SUCCESS = "操作成功"; + for (WmsProductPut wmsProductPut1 : + wmsProductPutList) { + //根据下面的记录--先查询对应订单,如果有原来的订单的话,就在原来的订单上进行修改,如果没有就先插入,如果有就修改数量 + WmsProductPut wmsProductPutk = new WmsProductPut(); + //wms_product_put + wmsProductPutk.setWorkOrder(wmsProductPut1.getWorkOrder()); + wmsProductPutk.setProductOrder(wmsProductPut1.getProductOrder()); + wmsProductPutk.setFactoryCode(wmsProductPut.getFactoryCode()); + wmsProductPutk.setWhCode(wmsProductPut1.getWhCode());//仓库编码 + wmsProductPutk.setWaCode(wmsProductPut1.getWaCode());//仓库编码 + wmsProductPutk.setProductName(wmsProductPut1.getProductName()); + wmsProductPutk.setProductCode(wmsProductPut1.getProductCode()); + wmsProductPutk.setPlanQuantity(wmsProductPut1.getPlanQuantity()); + wmsProductPutk.setUnitOfMeasure(wmsProductPut1.getUnitOfMeasure()); + wmsProductPutk.setBatchNumber(wmsProductPut1.getBatchNumber());// + List wmsProductPutLists= wmsProductPutMapper.selectWmsProductPutList(wmsProductPutk); + if (wmsProductPutLists.size()>0){ + //有 + WmsProductPut wmsProductPut2= wmsProductPutLists.get(0); + BigDecimal planQuantity= wmsProductPut2.getPlanQuantity(); + BigDecimal putQuantity= wmsProductPut2.getPutQuantity(); // if (planQuantity.equals(putQuantity.add(new BigDecimal(wmsProductPut1.getNumber())))){ // wmsProductPutk.setStatus("1"); // }else { // wmsProductPutk.setStatus("2"); // } - BigDecimal putQuantityT=putQuantity.add(new BigDecimal(wmsProductPut1.getNumber()));//入库数量 - wmsProductPut2.setPutQuantity(putQuantityT); - wmsProductPut2.setUpdateTime(new Date()); - wmsProductPut2.setUpdateBy(wmsProductPut.getCreateBy()); - wmsProductPutMapper.updateWmsProductPut(wmsProductPut2); - wmsProductPutMapper.updateWmsProductStatus(wmsProductPut2);//修改订单 - }else { - wmsProductPutk.setStatus("2");// - wmsProductPutk.setSapStatus("0"); - wmsProductPutk.setAttr3(formattedDate);// - if (wmsProductPutk.getBatchNumber().trim().length()==24){ - //String batch = mesReportWork.getBatch().substring(12); - String batch = InterceptionRules(wmsProductPutk.getBatchNumber()); - wmsProductPutk.setAttr4(batch); - }else { - wmsProductPutk.setAttr4(wmsProductPutk.getBatchNumber()); - } - wmsProductPutk.setCreateBy(wmsProductPut.getCreateBy()); - wmsProductPutk.setCreateTime(new Date()); - wmsProductPutk.setPutQuantity(new BigDecimal(wmsProductPut1.getNumber())); - wmsProductPutk.setId(IdUtils.fastSimpleUUID()); - wmsProductPutMapper.insertWmsProductPut(wmsProductPutk); - } - WmsProductPutRecords wmsProductPutRecords = new WmsProductPutRecords(); - wmsProductPutRecords.setWorkOrder(wmsProductPut1.getWorkOrder()); - wmsProductPutRecords.setProductOrder(wmsProductPut1.getProductOrder()); - wmsProductPutRecords.setProductName(wmsProductPut1.getProductName()); - wmsProductPutRecords.setProductCode(wmsProductPut1.getProductCode()); - wmsProductPutRecords.setWhCode(wmsProductPut1.getWhCode());//仓库编码 - wmsProductPutRecords.setWaCode(wmsProductPut1.getWaCode());//库区编码 - wmsProductPutRecords.setId(IdUtils.fastSimpleUUID()); - wmsProductPutRecords.setWlCode(wmsProductPut1.getWlCode()); - wmsProductPutRecords.setSn(wmsProductPut1.getSn()); - wmsProductPutRecords.setNumber(wmsProductPut1.getNumber()); - wmsProductPutRecords.setCreateBy(wmsProductPut.getCreateBy()); - wmsProductPutRecords.setCreateTime(new Date()); - wmsProductPutRecords.setUserDefined1(wmsProductPut1.getPallet()); - wmsProductPutRecordsMapper.insertWmsProductPutRecords(wmsProductPutRecords); - //wms_fp_storage_news_sn - WmsFpStorageNewsSn wmsFpStorageNewsSn = new WmsFpStorageNewsSn(); - wmsFpStorageNewsSn.setStorageId(IdUtils.fastSimpleUUID()); - wmsFpStorageNewsSn.setFactoryCode(wmsProductPut.getFactoryCode()); - wmsFpStorageNewsSn.setWhCode(wmsProductPut1.getWhCode());//仓库编码 - wmsFpStorageNewsSn.setWaCode(wmsProductPut1.getWaCode()); - wmsFpStorageNewsSn.setWlCode(wmsProductPut1.getWlCode()); - wmsFpStorageNewsSn.setOrderNo(wmsProductPutk.getId()); - wmsFpStorageNewsSn.setProductCode(wmsProductPut1.getProductCode()); - wmsFpStorageNewsSn.setProductName(wmsProductPut1.getProductName()); - wmsFpStorageNewsSn.setSn(wmsProductPut1.getSn()); - wmsFpStorageNewsSn.setAmount(new BigDecimal(wmsProductPut1.getNumber())); - wmsFpStorageNewsSn.setBatchNumber(wmsProductPut1.getBatchNumber()); - //wmsFpStorageNewsSn.setUserDefined2(formattedDate); - wmsFpStorageNewsSn.setCreateBy(wmsProductPut.getCreateBy()); - wmsFpStorageNewsSn.setCreateTime(new Date()); - wmsFpStorageNewsSn.setActiveFlag("1"); - wmsFpStorageNewsSn.setUserDefined3(wmsProductPut1.getUnitOfMeasure()); - wmsFpStorageNewsSn.setGmtCreate(new Date()); - wmsFpStorageNewsSnMapper.insertWmsFpStorageNewsSn(wmsFpStorageNewsSn); + BigDecimal putQuantityT=putQuantity.add(new BigDecimal(wmsProductPut1.getNumber()));//入库数量 + wmsProductPut2.setPutQuantity(putQuantityT); + wmsProductPut2.setUpdateTime(new Date()); + wmsProductPut2.setUpdateBy(wmsProductPut.getCreateBy()); + wmsProductPutMapper.updateWmsProductPut(wmsProductPut2); + wmsProductPutMapper.updateWmsProductStatus(wmsProductPut2);//修改订单 + }else { + wmsProductPutk.setStatus("2");// + wmsProductPutk.setSapStatus("0"); + wmsProductPutk.setAttr3(formattedDate);// + if (wmsProductPutk.getBatchNumber().trim().length()==24){ + //String batch = mesReportWork.getBatch().substring(12); + String batch = InterceptionRules(wmsProductPutk.getBatchNumber()); + wmsProductPutk.setAttr4(batch); + }else { + wmsProductPutk.setAttr4(wmsProductPutk.getBatchNumber()); + } + wmsProductPutk.setCreateBy(wmsProductPut.getCreateBy()); + wmsProductPutk.setCreateTime(new Date()); + wmsProductPutk.setPutQuantity(new BigDecimal(wmsProductPut1.getNumber())); + wmsProductPutk.setId(IdUtils.fastSimpleUUID()); + wmsProductPutMapper.insertWmsProductPut(wmsProductPutk); + } + WmsProductPutRecords wmsProductPutRecords = new WmsProductPutRecords(); + wmsProductPutRecords.setWorkOrder(wmsProductPut1.getWorkOrder()); + wmsProductPutRecords.setProductOrder(wmsProductPut1.getProductOrder()); + wmsProductPutRecords.setProductName(wmsProductPut1.getProductName()); + wmsProductPutRecords.setProductCode(wmsProductPut1.getProductCode()); + wmsProductPutRecords.setWhCode(wmsProductPut1.getWhCode());//仓库编码 + wmsProductPutRecords.setWaCode(wmsProductPut1.getWaCode());//库区编码 + wmsProductPutRecords.setId(IdUtils.fastSimpleUUID()); + wmsProductPutRecords.setWlCode(wmsProductPut1.getWlCode()); + wmsProductPutRecords.setSn(wmsProductPut1.getSn()); + wmsProductPutRecords.setNumber(wmsProductPut1.getNumber()); + wmsProductPutRecords.setCreateBy(wmsProductPut.getCreateBy()); + wmsProductPutRecords.setCreateTime(new Date()); + wmsProductPutRecords.setUserDefined1(wmsProductPut1.getPallet()); + wmsProductPutRecordsMapper.insertWmsProductPutRecords(wmsProductPutRecords); + //wms_fp_storage_news_sn + WmsFpStorageNewsSn wmsFpStorageNewsSn = new WmsFpStorageNewsSn(); + wmsFpStorageNewsSn.setStorageId(IdUtils.fastSimpleUUID()); + wmsFpStorageNewsSn.setFactoryCode(wmsProductPut.getFactoryCode()); + wmsFpStorageNewsSn.setWhCode(wmsProductPut1.getWhCode());//仓库编码 + wmsFpStorageNewsSn.setWaCode(wmsProductPut1.getWaCode()); + wmsFpStorageNewsSn.setWlCode(wmsProductPut1.getWlCode()); + wmsFpStorageNewsSn.setOrderNo(wmsProductPutk.getId()); + wmsFpStorageNewsSn.setProductCode(wmsProductPut1.getProductCode()); + wmsFpStorageNewsSn.setProductName(wmsProductPut1.getProductName()); + wmsFpStorageNewsSn.setSn(wmsProductPut1.getSn()); + wmsFpStorageNewsSn.setAmount(new BigDecimal(wmsProductPut1.getNumber())); + wmsFpStorageNewsSn.setBatchNumber(wmsProductPut1.getBatchNumber()); + //wmsFpStorageNewsSn.setUserDefined2(formattedDate); + wmsFpStorageNewsSn.setCreateBy(wmsProductPut.getCreateBy()); + wmsFpStorageNewsSn.setCreateTime(new Date()); + wmsFpStorageNewsSn.setActiveFlag("1"); + wmsFpStorageNewsSn.setUserDefined3(wmsProductPut1.getUnitOfMeasure()); + wmsFpStorageNewsSn.setGmtCreate(new Date()); + wmsFpStorageNewsSnMapper.insertWmsFpStorageNewsSn(wmsFpStorageNewsSn); // wms_fp_storage_news - WmsFpStorageNews wmsFpStorageNews = new WmsFpStorageNews(); + WmsFpStorageNews wmsFpStorageNews = new WmsFpStorageNews(); - wmsFpStorageNews.setWhCode(wmsProductPut1.getWhCode());//仓库编码 - wmsFpStorageNews.setWaCode(wmsProductPut1.getWaCode()); - wmsFpStorageNews.setWlCode(wmsProductPut1.getWlCode()); - wmsFpStorageNews.setStorageType("成品"); - wmsFpStorageNews.setProductCode(wmsProductPut1.getProductCode()); - wmsFpStorageNews.setProductName(wmsProductPut1.getProductName()); - wmsFpStorageNews.setFactoryCode(wmsProductPut.getFactoryCode()); - wmsFpStorageNews.setActiveFlag("1"); - wmsFpStorageNews.setProductBatch(wmsProductPut1.getBatchNumber()); - wmsFpStorageNews.setUserDefined1(wmsProductPut1.getUnitOfMeasure()); - List wmsFpStorageNewsList = wmsFpStorageNewsMapper.selectWmsFpStorageNewsList(wmsFpStorageNews); - wmsFpStorageNews.setStorageId(IdUtils.fastSimpleUUID()); - wmsFpStorageNews.setAmount(new BigDecimal(wmsProductPut1.getNumber())); - wmsFpStorageNews.setCreateBy(wmsProductPut.getCreateBy()); - wmsFpStorageNews.setGmtCreate(new Date()); - if (wmsFpStorageNewsList.size() > 0) { - WmsFpStorageNews wmsFpStorageNews1 = wmsFpStorageNewsList.get(0); - BigDecimal amount = wmsFpStorageNews1.getAmount(); - BigDecimal amountAdd = amount.add(wmsFpStorageNews.getAmount()); - wmsFpStorageNews1.setAmount(amountAdd); - wmsFpStorageNewsMapper.updateWmsFpStorageNews(wmsFpStorageNews1); - } else { - wmsFpStorageNewsMapper.insertWmsFpStorageNews(wmsFpStorageNews); + wmsFpStorageNews.setWhCode(wmsProductPut1.getWhCode());//仓库编码 + wmsFpStorageNews.setWaCode(wmsProductPut1.getWaCode()); + wmsFpStorageNews.setWlCode(wmsProductPut1.getWlCode()); + wmsFpStorageNews.setStorageType("成品"); + wmsFpStorageNews.setProductCode(wmsProductPut1.getProductCode()); + wmsFpStorageNews.setProductName(wmsProductPut1.getProductName()); + wmsFpStorageNews.setFactoryCode(wmsProductPut.getFactoryCode()); + wmsFpStorageNews.setActiveFlag("1"); + wmsFpStorageNews.setProductBatch(wmsProductPut1.getBatchNumber()); + wmsFpStorageNews.setUserDefined1(wmsProductPut1.getUnitOfMeasure()); + List wmsFpStorageNewsList = wmsFpStorageNewsMapper.selectWmsFpStorageNewsList(wmsFpStorageNews); + wmsFpStorageNews.setStorageId(IdUtils.fastSimpleUUID()); + wmsFpStorageNews.setAmount(new BigDecimal(wmsProductPut1.getNumber())); + wmsFpStorageNews.setCreateBy(wmsProductPut.getCreateBy()); + wmsFpStorageNews.setGmtCreate(new Date()); + if (wmsFpStorageNewsList.size() > 0) { + WmsFpStorageNews wmsFpStorageNews1 = wmsFpStorageNewsList.get(0); + BigDecimal amount = wmsFpStorageNews1.getAmount(); + BigDecimal amountAdd = amount.add(wmsFpStorageNews.getAmount()); + wmsFpStorageNews1.setAmount(amountAdd); + wmsFpStorageNewsMapper.updateWmsFpStorageNews(wmsFpStorageNews1); + } else { + wmsFpStorageNewsMapper.insertWmsFpStorageNews(wmsFpStorageNews); + } + // + wmsProductPutMapper.updateProOrderWorkorderBatchPallet(wmsProductPut1.getSn()); } - // - wmsProductPutMapper.updateProOrderWorkorderBatchPallet(wmsProductPut1.getSn()); + return SUCCESS; + }finally { + DynamicDataSourceContextHolder.poll(); } - return SUCCESS; + } @Override public List selectQueryFinishedProductSalesTS(WmsSellOutEmbryo wmsSellOutEmbryo) { //wms_sell_out_embryo DynamicDataSourceContextHolder.push("ds_" + wmsSellOutEmbryo.getFactoryCode()); - wmsSellOutEmbryo.setActiveFlag("1"); - List wmsSellOutEmbryoList= wmsSellOutEmbryoMapper.selectWmsSellOutEmbryoListTS(wmsSellOutEmbryo); - return wmsSellOutEmbryoList; + try { + wmsSellOutEmbryo.setActiveFlag("1"); + List wmsSellOutEmbryoList= wmsSellOutEmbryoMapper.selectWmsSellOutEmbryoListTS(wmsSellOutEmbryo); + return wmsSellOutEmbryoList; + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @@ -1367,167 +1475,192 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { @Override public List FinishedProductSalesReturn(WmsRuturnPutEmbryo wmsRuturnPutEmbryo) { DynamicDataSourceContextHolder.push("ds_" + wmsRuturnPutEmbryo.getFactoryCode()); - List wmsRuturnPutEmbryoList= wmsRuturnPutEmbryoMapper.selectWmsRuturnPutEmbryo(wmsRuturnPutEmbryo); - return wmsRuturnPutEmbryoList; + try { + List wmsRuturnPutEmbryoList= wmsRuturnPutEmbryoMapper.selectWmsRuturnPutEmbryo(wmsRuturnPutEmbryo); + return wmsRuturnPutEmbryoList; + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @Override public String FinishedProductSalesReturnConfirm(WmsRuturnPutEmbryo wmsRuturnPutEmbryo) { DynamicDataSourceContextHolder.push("ds_" + wmsRuturnPutEmbryo.getFactoryCode()); - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); - Date date = new Date(); - String formattedDate = dateFormat.format(date);//批次 - List wmsProductPutList = wmsRuturnPutEmbryo.getWmsProductPut(); - WmsRuturnPutEmbryo wmsRuturnPutEmbryo1 = new WmsRuturnPutEmbryo(); - //wms_product_put - wmsRuturnPutEmbryo1.setId(wmsRuturnPutEmbryo.getId()); - //先查询一下,看看这次是不是可以出完 - WmsRuturnPutEmbryo wmsRuturnPutEmbryo2= wmsRuturnPutEmbryoMapper.selectWmsRuturnPutEmbryoByid(wmsRuturnPutEmbryo1); - BigDecimal allTem= wmsRuturnPutEmbryo2.getPlanQuantity(); - BigDecimal putTem= wmsRuturnPutEmbryo2.getPutQuantity(); - //BigDecimal putQuantity= putTem.add(new BigDecimal(wmsRuturnPutEmbryo.get())); - int result = wmsRuturnPutEmbryo.getPutQuantity().compareTo(allTem); - if (result == 0) { - wmsRuturnPutEmbryo2.setStatus("1");//0是未完成,1是完成 - } - wmsRuturnPutEmbryo2.setPutQuantity(wmsRuturnPutEmbryo.getPutQuantity()); - wmsRuturnPutEmbryo2.setUpdateBy(wmsRuturnPutEmbryo.getCreateBy()); - wmsRuturnPutEmbryo2.setUpdateTime(new Date()); - wmsRuturnPutEmbryoMapper.updateWmsRuturnPutEmbryo(wmsRuturnPutEmbryo2); - - String SUCCESS = "操作成功"; - for (WmsProductPut wmsProductPut1 : - wmsProductPutList) { - WmsRuturnPutEmbryo wmsProductPutRecords = new WmsRuturnPutEmbryo(); - wmsProductPutRecords.setId(IdUtils.fastSimpleUUID()); - wmsProductPutRecords.setProductOrder(wmsRuturnPutEmbryo.getProductOrder()); - wmsProductPutRecords.setProductName(wmsRuturnPutEmbryo.getProductName()); - wmsProductPutRecords.setProductCode(wmsRuturnPutEmbryo.getProductCode()); - wmsProductPutRecords.setWhCode(wmsRuturnPutEmbryo.getWhCode());//仓库编码 - wmsProductPutRecords.setFactoryCode(wmsRuturnPutEmbryo.getFactoryCode()); - wmsProductPutRecords.setWlCode(wmsProductPut1.getWlCode());//库位编码 - wmsProductPutRecords.setAttr1(wmsProductPut1.getSn());////托盘号编码 - wmsProductPutRecords.setAttr2(wmsProductPut1.getNumber());//箱数 - wmsProductPutRecords.setCreateBy(wmsRuturnPutEmbryo.getCreateBy()); - wmsProductPutRecords.setCreateTime(new Date()); - wmsProductPutRecords.setActiveFlag("1"); - wmsRuturnPutEmbryoMapper.insertWmsRuturnPutEmbryoMapperRecords(wmsProductPutRecords); - //wms_fp_storage_news_sn - WmsFpStorageNewsSn wmsFpStorageNewsSn = new WmsFpStorageNewsSn(); - wmsFpStorageNewsSn.setStorageId(IdUtils.fastSimpleUUID()); - wmsFpStorageNewsSn.setFactoryCode(wmsRuturnPutEmbryo.getFactoryCode()); - wmsFpStorageNewsSn.setWhCode(wmsRuturnPutEmbryo.getWhCode());//仓库编码 - wmsFpStorageNewsSn.setWlCode(wmsProductPut1.getWlCode()); - wmsFpStorageNewsSn.setOrderNo(wmsRuturnPutEmbryo2.getId()); - wmsFpStorageNewsSn.setProductCode(wmsRuturnPutEmbryo.getProductCode()); - wmsFpStorageNewsSn.setProductName(wmsRuturnPutEmbryo.getProductName()); - wmsFpStorageNewsSn.setSn(wmsProductPut1.getSn()); - wmsFpStorageNewsSn.setAmount(new BigDecimal(wmsProductPut1.getNumber())); - //wmsFpStorageNewsSn.setBatchNumber(wmsProductPut.getBatchNumber()); - // wmsFpStorageNewsSn.setUserDefined2(formattedDate); - wmsFpStorageNewsSn.setCreateBy(wmsRuturnPutEmbryo.getCreateBy()); - wmsFpStorageNewsSn.setCreateTime(new Date()); - wmsFpStorageNewsSn.setActiveFlag("1"); - wmsFpStorageNewsSnMapper.insertWmsFpStorageNewsSn(wmsFpStorageNewsSn); -// wms_fp_storage_news - WmsFpStorageNews wmsFpStorageNews = new WmsFpStorageNews(); - - wmsFpStorageNews.setWhCode(wmsRuturnPutEmbryo.getWhCode());//仓库编码 - wmsFpStorageNews.setWlCode(wmsProductPut1.getWlCode()); - wmsFpStorageNews.setStorageType("成品"); - wmsFpStorageNews.setProductCode(wmsRuturnPutEmbryo.getProductCode()); - wmsFpStorageNews.setProductName(wmsRuturnPutEmbryo.getProductName()); - wmsFpStorageNews.setFactoryCode(wmsRuturnPutEmbryo.getFactoryCode()); - wmsFpStorageNews.setActiveFlag("1"); - wmsFpStorageNews.setUserDefined1(wmsRuturnPutEmbryo.getUnitOfMeasure()); - List wmsFpStorageNewsList = wmsFpStorageNewsMapper.selectWmsFpStorageNewsList(wmsFpStorageNews); - wmsFpStorageNews.setStorageId(IdUtils.fastSimpleUUID()); - wmsFpStorageNews.setAmount(new BigDecimal(wmsProductPut1.getNumber())); - wmsFpStorageNews.setCreateBy(wmsRuturnPutEmbryo.getCreateBy()); - wmsFpStorageNews.setCreateTime(new Date()); - if (wmsFpStorageNewsList.size() > 0) { - WmsFpStorageNews wmsFpStorageNews1 = wmsFpStorageNewsList.get(0); - BigDecimal amount = wmsFpStorageNews1.getAmount(); - BigDecimal amountAdd = amount.add(wmsFpStorageNews.getAmount()); - wmsFpStorageNews1.setAmount(amountAdd); - wmsFpStorageNewsMapper.updateWmsFpStorageNews(wmsFpStorageNews1); - } else { - wmsFpStorageNewsMapper.insertWmsFpStorageNews(wmsFpStorageNews); + try { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + Date date = new Date(); + String formattedDate = dateFormat.format(date);//批次 + List wmsProductPutList = wmsRuturnPutEmbryo.getWmsProductPut(); + WmsRuturnPutEmbryo wmsRuturnPutEmbryo1 = new WmsRuturnPutEmbryo(); + //wms_product_put + wmsRuturnPutEmbryo1.setId(wmsRuturnPutEmbryo.getId()); + //先查询一下,看看这次是不是可以出完 + WmsRuturnPutEmbryo wmsRuturnPutEmbryo2= wmsRuturnPutEmbryoMapper.selectWmsRuturnPutEmbryoByid(wmsRuturnPutEmbryo1); + BigDecimal allTem= wmsRuturnPutEmbryo2.getPlanQuantity(); + BigDecimal putTem= wmsRuturnPutEmbryo2.getPutQuantity(); + //BigDecimal putQuantity= putTem.add(new BigDecimal(wmsRuturnPutEmbryo.get())); + int result = wmsRuturnPutEmbryo.getPutQuantity().compareTo(allTem); + if (result == 0) { + wmsRuturnPutEmbryo2.setStatus("1");//0是未完成,1是完成 } + wmsRuturnPutEmbryo2.setPutQuantity(wmsRuturnPutEmbryo.getPutQuantity()); + wmsRuturnPutEmbryo2.setUpdateBy(wmsRuturnPutEmbryo.getCreateBy()); + wmsRuturnPutEmbryo2.setUpdateTime(new Date()); + wmsRuturnPutEmbryoMapper.updateWmsRuturnPutEmbryo(wmsRuturnPutEmbryo2); + + String SUCCESS = "操作成功"; + for (WmsProductPut wmsProductPut1 : + wmsProductPutList) { + WmsRuturnPutEmbryo wmsProductPutRecords = new WmsRuturnPutEmbryo(); + wmsProductPutRecords.setId(IdUtils.fastSimpleUUID()); + wmsProductPutRecords.setProductOrder(wmsRuturnPutEmbryo.getProductOrder()); + wmsProductPutRecords.setProductName(wmsRuturnPutEmbryo.getProductName()); + wmsProductPutRecords.setProductCode(wmsRuturnPutEmbryo.getProductCode()); + wmsProductPutRecords.setWhCode(wmsRuturnPutEmbryo.getWhCode());//仓库编码 + wmsProductPutRecords.setFactoryCode(wmsRuturnPutEmbryo.getFactoryCode()); + wmsProductPutRecords.setWlCode(wmsProductPut1.getWlCode());//库位编码 + wmsProductPutRecords.setAttr1(wmsProductPut1.getSn());////托盘号编码 + wmsProductPutRecords.setAttr2(wmsProductPut1.getNumber());//箱数 + wmsProductPutRecords.setCreateBy(wmsRuturnPutEmbryo.getCreateBy()); + wmsProductPutRecords.setCreateTime(new Date()); + wmsProductPutRecords.setActiveFlag("1"); + wmsRuturnPutEmbryoMapper.insertWmsRuturnPutEmbryoMapperRecords(wmsProductPutRecords); + //wms_fp_storage_news_sn + WmsFpStorageNewsSn wmsFpStorageNewsSn = new WmsFpStorageNewsSn(); + wmsFpStorageNewsSn.setStorageId(IdUtils.fastSimpleUUID()); + wmsFpStorageNewsSn.setFactoryCode(wmsRuturnPutEmbryo.getFactoryCode()); + wmsFpStorageNewsSn.setWhCode(wmsRuturnPutEmbryo.getWhCode());//仓库编码 + wmsFpStorageNewsSn.setWlCode(wmsProductPut1.getWlCode()); + wmsFpStorageNewsSn.setOrderNo(wmsRuturnPutEmbryo2.getId()); + wmsFpStorageNewsSn.setProductCode(wmsRuturnPutEmbryo.getProductCode()); + wmsFpStorageNewsSn.setProductName(wmsRuturnPutEmbryo.getProductName()); + wmsFpStorageNewsSn.setSn(wmsProductPut1.getSn()); + wmsFpStorageNewsSn.setAmount(new BigDecimal(wmsProductPut1.getNumber())); + //wmsFpStorageNewsSn.setBatchNumber(wmsProductPut.getBatchNumber()); + // wmsFpStorageNewsSn.setUserDefined2(formattedDate); + wmsFpStorageNewsSn.setCreateBy(wmsRuturnPutEmbryo.getCreateBy()); + wmsFpStorageNewsSn.setCreateTime(new Date()); + wmsFpStorageNewsSn.setActiveFlag("1"); + wmsFpStorageNewsSnMapper.insertWmsFpStorageNewsSn(wmsFpStorageNewsSn); +// wms_fp_storage_news + WmsFpStorageNews wmsFpStorageNews = new WmsFpStorageNews(); + + wmsFpStorageNews.setWhCode(wmsRuturnPutEmbryo.getWhCode());//仓库编码 + wmsFpStorageNews.setWlCode(wmsProductPut1.getWlCode()); + wmsFpStorageNews.setStorageType("成品"); + wmsFpStorageNews.setProductCode(wmsRuturnPutEmbryo.getProductCode()); + wmsFpStorageNews.setProductName(wmsRuturnPutEmbryo.getProductName()); + wmsFpStorageNews.setFactoryCode(wmsRuturnPutEmbryo.getFactoryCode()); + wmsFpStorageNews.setActiveFlag("1"); + wmsFpStorageNews.setUserDefined1(wmsRuturnPutEmbryo.getUnitOfMeasure()); + List wmsFpStorageNewsList = wmsFpStorageNewsMapper.selectWmsFpStorageNewsList(wmsFpStorageNews); + wmsFpStorageNews.setStorageId(IdUtils.fastSimpleUUID()); + wmsFpStorageNews.setAmount(new BigDecimal(wmsProductPut1.getNumber())); + wmsFpStorageNews.setCreateBy(wmsRuturnPutEmbryo.getCreateBy()); + wmsFpStorageNews.setCreateTime(new Date()); + if (wmsFpStorageNewsList.size() > 0) { + WmsFpStorageNews wmsFpStorageNews1 = wmsFpStorageNewsList.get(0); + BigDecimal amount = wmsFpStorageNews1.getAmount(); + BigDecimal amountAdd = amount.add(wmsFpStorageNews.getAmount()); + wmsFpStorageNews1.setAmount(amountAdd); + wmsFpStorageNewsMapper.updateWmsFpStorageNews(wmsFpStorageNews1); + } else { + wmsFpStorageNewsMapper.insertWmsFpStorageNews(wmsFpStorageNews); + } + } + return SUCCESS; + }finally { + DynamicDataSourceContextHolder.poll(); } - return SUCCESS; + } @Override public List selectFinishedProductTransferAndOutbound(WmsAllocationOutEmbryo wmsAllocationOutEmbryo) { DynamicDataSourceContextHolder.push("ds_" + wmsAllocationOutEmbryo.getFactoryCode()); - List wmsAllocationOutEmbryoList= wmsSellOutEmbryoMapper.selectWmsAllocationOutEmbryoList(wmsAllocationOutEmbryo); - return wmsAllocationOutEmbryoList; + try { + List wmsAllocationOutEmbryoList= wmsSellOutEmbryoMapper.selectWmsAllocationOutEmbryoList(wmsAllocationOutEmbryo); + return wmsAllocationOutEmbryoList; + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @Override public String confirmFinishedProductTransferAndOutbound(WmsAllocationOutEmbryo wmsRuturnPutEmbryo) { String result1="出库成功"; DynamicDataSourceContextHolder.push("ds_" + wmsRuturnPutEmbryo.getFactoryCode()); - List wmsProductPutTrayCodeList= wmsRuturnPutEmbryo.getWmsProductPutTrayCodeList(); - //成品销售出库--确认接口---修改出库单,--出库库存 - WmsAllocationOutEmbryo wmsSellOutEmbryo1 = wmsSellOutEmbryoMapper.selectWmsAllocationOutEmbryoById(wmsRuturnPutEmbryo.getId()); - Integer tem= wmsProductPutTrayCodeList.size(); - BigDecimal OutQuantity= wmsSellOutEmbryo1.getOutQuantity().add(new BigDecimal(tem));//2 - int result = wmsSellOutEmbryo1.getPlanQuantity().compareTo(OutQuantity); - WmsAllocationOutEmbryo wmsAllocationOutEmbryo=new WmsAllocationOutEmbryo(); - if (result == 0){//出库完 - wmsAllocationOutEmbryo.setStatus("1"); - }else { - wmsAllocationOutEmbryo.setStatus("0"); - } - wmsAllocationOutEmbryo.setId(wmsRuturnPutEmbryo.getId()); - wmsAllocationOutEmbryo.setOutQuantity(OutQuantity); - wmsSellOutEmbryoMapper.updateWmsAllocationOutEmbryo(wmsAllocationOutEmbryo); - //订单修改完成 - for(WmsProductPutTrayCode wmsProductPutTrayCode: wmsProductPutTrayCodeList){ - //库存修改 - //解除绑定 - wmsProductPutTrayCode.setRelatStatus("0"); - wmsProductPutTrayCodeMapper.updateWmsProductPutTrayCode(wmsProductPutTrayCode); - //改明细 - WmsFpStorageNewsSn wmsFpStorageNewsSn=new WmsFpStorageNewsSn(); - wmsFpStorageNewsSn.setSn(wmsProductPutTrayCode.getSn()); - wmsFpStorageNewsSn.setWlCode(wmsProductPutTrayCode.getWlCode()); - wmsFpStorageNewsSn.setActiveFlag("1"); - wmsFpStorageNewsSn.setProductCode(wmsSellOutEmbryo1.getProductCode()); - wmsFpStorageNewsSnMapper.updateWmsFpStorageNewsSnOut(wmsFpStorageNewsSn); - //判断如果托盘数据被出完,就关闭这个明细 - List wmsFpStorageNewsSns= wmsFpStorageNewsSnMapper.selectWmsFpStorageNewsSnList(wmsFpStorageNewsSn); - if (wmsFpStorageNewsSns.size()>0){ - WmsFpStorageNewsSn wmsFpStorageNewsSn1= wmsFpStorageNewsSns.get(0); - - BigDecimal ken= new BigDecimal(wmsFpStorageNewsSn1.getUserDefined2()); - int comparisonResult = ken.compareTo(wmsFpStorageNewsSn1.getAmount()); - if (comparisonResult == 0) { - // ken和amount相等 - wmsFpStorageNewsSn1.setActiveFlag("0"); - wmsFpStorageNewsSnMapper.updateWmsFpStorageNewsSn(wmsFpStorageNewsSn1); - } + try { + List wmsProductPutTrayCodeList= wmsRuturnPutEmbryo.getWmsProductPutTrayCodeList(); + //成品销售出库--确认接口---修改出库单,--出库库存 + WmsAllocationOutEmbryo wmsSellOutEmbryo1 = wmsSellOutEmbryoMapper.selectWmsAllocationOutEmbryoById(wmsRuturnPutEmbryo.getId()); + Integer tem= wmsProductPutTrayCodeList.size(); + BigDecimal OutQuantity= wmsSellOutEmbryo1.getOutQuantity().add(new BigDecimal(tem));//2 + int result = wmsSellOutEmbryo1.getPlanQuantity().compareTo(OutQuantity); + WmsAllocationOutEmbryo wmsAllocationOutEmbryo=new WmsAllocationOutEmbryo(); + if (result == 0){//出库完 + wmsAllocationOutEmbryo.setStatus("1"); + }else { + wmsAllocationOutEmbryo.setStatus("0"); } - //改主表 - WmsFpStorageNews wmsFpStorageNews=new WmsFpStorageNews(); - wmsFpStorageNews.setActiveFlag("1"); - wmsFpStorageNews.setWlCode(wmsProductPutTrayCode.getWlCode()); - wmsFpStorageNews.setProductCode(wmsSellOutEmbryo1.getProductCode()); - wmsFpStorageNewsMapper.updateWmsFpStorageNewsOut(wmsFpStorageNews); + wmsAllocationOutEmbryo.setId(wmsRuturnPutEmbryo.getId()); + wmsAllocationOutEmbryo.setOutQuantity(OutQuantity); + wmsSellOutEmbryoMapper.updateWmsAllocationOutEmbryo(wmsAllocationOutEmbryo); + //订单修改完成 + for(WmsProductPutTrayCode wmsProductPutTrayCode: wmsProductPutTrayCodeList){ + //库存修改 + //解除绑定 + wmsProductPutTrayCode.setRelatStatus("0"); + wmsProductPutTrayCodeMapper.updateWmsProductPutTrayCode(wmsProductPutTrayCode); + //改明细 + WmsFpStorageNewsSn wmsFpStorageNewsSn=new WmsFpStorageNewsSn(); + wmsFpStorageNewsSn.setSn(wmsProductPutTrayCode.getSn()); + wmsFpStorageNewsSn.setWlCode(wmsProductPutTrayCode.getWlCode()); + wmsFpStorageNewsSn.setActiveFlag("1"); + wmsFpStorageNewsSn.setProductCode(wmsSellOutEmbryo1.getProductCode()); + wmsFpStorageNewsSnMapper.updateWmsFpStorageNewsSnOut(wmsFpStorageNewsSn); + //判断如果托盘数据被出完,就关闭这个明细 + List wmsFpStorageNewsSns= wmsFpStorageNewsSnMapper.selectWmsFpStorageNewsSnList(wmsFpStorageNewsSn); + if (wmsFpStorageNewsSns.size()>0){ + WmsFpStorageNewsSn wmsFpStorageNewsSn1= wmsFpStorageNewsSns.get(0); + + BigDecimal ken= new BigDecimal(wmsFpStorageNewsSn1.getUserDefined2()); + int comparisonResult = ken.compareTo(wmsFpStorageNewsSn1.getAmount()); + if (comparisonResult == 0) { + // ken和amount相等 + wmsFpStorageNewsSn1.setActiveFlag("0"); + wmsFpStorageNewsSnMapper.updateWmsFpStorageNewsSn(wmsFpStorageNewsSn1); + } + } + //改主表 + WmsFpStorageNews wmsFpStorageNews=new WmsFpStorageNews(); + wmsFpStorageNews.setActiveFlag("1"); + wmsFpStorageNews.setWlCode(wmsProductPutTrayCode.getWlCode()); + wmsFpStorageNews.setProductCode(wmsSellOutEmbryo1.getProductCode()); + wmsFpStorageNewsMapper.updateWmsFpStorageNewsOut(wmsFpStorageNews); + } + return result1; + }finally { + DynamicDataSourceContextHolder.poll(); } - return result1; + } @Override public WmsFpStorageNewsSn palletScanning(WmsFpStorageNewsSn wmsFpStorageNewsSn) { DynamicDataSourceContextHolder.push("ds_" + wmsFpStorageNewsSn.getFactoryCode()); - wmsFpStorageNewsSn.setActiveFlag("1"); - List wmsFpStorageNewsSnList= wmsFpStorageNewsSnMapper.selectWmsFpStorageNewsSnList(wmsFpStorageNewsSn); - if (wmsFpStorageNewsSnList.size()>0){ - return wmsFpStorageNewsSnList.get(0); + try { + wmsFpStorageNewsSn.setActiveFlag("1"); + List wmsFpStorageNewsSnList= wmsFpStorageNewsSnMapper.selectWmsFpStorageNewsSnList(wmsFpStorageNewsSn); + if (wmsFpStorageNewsSnList.size()>0){ + return wmsFpStorageNewsSnList.get(0); + } + }finally { + DynamicDataSourceContextHolder.poll(); } + return null; } @@ -1535,58 +1668,63 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { public String palletTransferConfirmation(WmsFpStorageNewsSn wmsFpStorageNewsSn) { String result1="移库成功"; DynamicDataSourceContextHolder.push("ds_" + wmsFpStorageNewsSn.getFactoryCode()); - String toWlCode=wmsFpStorageNewsSn.getTowlCode(); - WmsFpStorageNewsSn wmsFpStorageNewsSn1= wmsFpStorageNewsSnMapper.selectWmsFpStorageNewsSnByStorageId(wmsFpStorageNewsSn.getStorageId()); - //减库存明细 - wmsFpStorageNewsSn1.setActiveFlag("0"); - wmsFpStorageNewsSnMapper.updateWmsFpStorageNewsSn(wmsFpStorageNewsSn1); - //减库存 - WmsFpStorageNews wmsFpStorageNews= wmsFpStorageNewsMapper.selectWmsFpStorageNewsByProductCodeAndWlCode(wmsFpStorageNewsSn.getProductCode(),wmsFpStorageNewsSn.getWlCode()); - BigDecimal amount = wmsFpStorageNews.getAmount(); - BigDecimal amountsub = amount.subtract(wmsFpStorageNewsSn1.getAmount()); - wmsFpStorageNews.setAmount(amountsub); - wmsFpStorageNewsMapper.updateWmsFpStorageNews(wmsFpStorageNews); - //添加库存明细 - WmsFpStorageNewsSn wmsFpStorageNewsSn2 = new WmsFpStorageNewsSn(); - wmsFpStorageNewsSn2.setStorageId(IdUtils.fastSimpleUUID()); - wmsFpStorageNewsSn2.setFactoryCode(wmsFpStorageNewsSn.getFactoryCode()); - wmsFpStorageNewsSn2.setWhCode(wmsFpStorageNewsSn.getWhCode());//仓库编码 - wmsFpStorageNewsSn2.setWlCode(toWlCode); - wmsFpStorageNewsSn2.setProductCode(wmsFpStorageNewsSn.getProductCode()); - wmsFpStorageNewsSn2.setProductName(wmsFpStorageNewsSn.getProductName()); - wmsFpStorageNewsSn2.setSn(wmsFpStorageNewsSn.getSn()); - wmsFpStorageNewsSn2.setAmount(wmsFpStorageNewsSn.getAmount()); - //wmsFpStorageNewsSn.setBatchNumber(wmsProductPut.getBatchNumber()); - // wmsFpStorageNewsSn2.setUserDefined2(formattedDate); - wmsFpStorageNewsSn2.setCreateBy(wmsFpStorageNewsSn.getCreateBy()); - wmsFpStorageNewsSn2.setCreateTime(new Date()); - wmsFpStorageNewsSn2.setActiveFlag("1"); - wmsFpStorageNewsSnMapper.insertWmsFpStorageNewsSn(wmsFpStorageNewsSn2); - //添加库存 - WmsFpStorageNews wmsFpStorageNews1 = new WmsFpStorageNews(); + try { + String toWlCode=wmsFpStorageNewsSn.getTowlCode(); + WmsFpStorageNewsSn wmsFpStorageNewsSn1= wmsFpStorageNewsSnMapper.selectWmsFpStorageNewsSnByStorageId(wmsFpStorageNewsSn.getStorageId()); + //减库存明细 + wmsFpStorageNewsSn1.setActiveFlag("0"); + wmsFpStorageNewsSnMapper.updateWmsFpStorageNewsSn(wmsFpStorageNewsSn1); + //减库存 + WmsFpStorageNews wmsFpStorageNews= wmsFpStorageNewsMapper.selectWmsFpStorageNewsByProductCodeAndWlCode(wmsFpStorageNewsSn.getProductCode(),wmsFpStorageNewsSn.getWlCode()); + BigDecimal amount = wmsFpStorageNews.getAmount(); + BigDecimal amountsub = amount.subtract(wmsFpStorageNewsSn1.getAmount()); + wmsFpStorageNews.setAmount(amountsub); + wmsFpStorageNewsMapper.updateWmsFpStorageNews(wmsFpStorageNews); + //添加库存明细 + WmsFpStorageNewsSn wmsFpStorageNewsSn2 = new WmsFpStorageNewsSn(); + wmsFpStorageNewsSn2.setStorageId(IdUtils.fastSimpleUUID()); + wmsFpStorageNewsSn2.setFactoryCode(wmsFpStorageNewsSn.getFactoryCode()); + wmsFpStorageNewsSn2.setWhCode(wmsFpStorageNewsSn.getWhCode());//仓库编码 + wmsFpStorageNewsSn2.setWlCode(toWlCode); + wmsFpStorageNewsSn2.setProductCode(wmsFpStorageNewsSn.getProductCode()); + wmsFpStorageNewsSn2.setProductName(wmsFpStorageNewsSn.getProductName()); + wmsFpStorageNewsSn2.setSn(wmsFpStorageNewsSn.getSn()); + wmsFpStorageNewsSn2.setAmount(wmsFpStorageNewsSn.getAmount()); + //wmsFpStorageNewsSn.setBatchNumber(wmsProductPut.getBatchNumber()); + // wmsFpStorageNewsSn2.setUserDefined2(formattedDate); + wmsFpStorageNewsSn2.setCreateBy(wmsFpStorageNewsSn.getCreateBy()); + wmsFpStorageNewsSn2.setCreateTime(new Date()); + wmsFpStorageNewsSn2.setActiveFlag("1"); + wmsFpStorageNewsSnMapper.insertWmsFpStorageNewsSn(wmsFpStorageNewsSn2); + //添加库存 + WmsFpStorageNews wmsFpStorageNews1 = new WmsFpStorageNews(); - wmsFpStorageNews1.setWhCode(wmsFpStorageNewsSn.getWhCode());//仓库编码 - wmsFpStorageNews1.setWlCode(toWlCode); - wmsFpStorageNews1.setStorageType("成品"); - wmsFpStorageNews1.setProductCode(wmsFpStorageNewsSn.getProductCode()); - wmsFpStorageNews1.setProductName(wmsFpStorageNewsSn.getProductName()); - wmsFpStorageNews1.setFactoryCode(wmsFpStorageNewsSn.getFactoryCode()); - wmsFpStorageNews1.setActiveFlag("1"); - wmsFpStorageNews1.setUserDefined1(wmsFpStorageNews.getUserDefined1()); - List wmsFpStorageNewsList = wmsFpStorageNewsMapper.selectWmsFpStorageNewsList(wmsFpStorageNews1); - wmsFpStorageNews1.setStorageId(IdUtils.fastSimpleUUID()); - wmsFpStorageNews1.setAmount(wmsFpStorageNewsSn.getAmount()); - wmsFpStorageNews1.setCreateBy(wmsFpStorageNewsSn.getCreateBy()); - wmsFpStorageNews1.setCreateTime(new Date()); - if (wmsFpStorageNewsList.size() > 0) { - WmsFpStorageNews wmsFpStorageNews2 = wmsFpStorageNewsList.get(0); - BigDecimal amount1 = wmsFpStorageNews2.getAmount(); - BigDecimal amountAdd = amount1.add(wmsFpStorageNews.getAmount()); - wmsFpStorageNews2.setAmount(amountAdd); - wmsFpStorageNewsMapper.updateWmsFpStorageNews(wmsFpStorageNews2); - } else { - wmsFpStorageNewsMapper.insertWmsFpStorageNews(wmsFpStorageNews1); + wmsFpStorageNews1.setWhCode(wmsFpStorageNewsSn.getWhCode());//仓库编码 + wmsFpStorageNews1.setWlCode(toWlCode); + wmsFpStorageNews1.setStorageType("成品"); + wmsFpStorageNews1.setProductCode(wmsFpStorageNewsSn.getProductCode()); + wmsFpStorageNews1.setProductName(wmsFpStorageNewsSn.getProductName()); + wmsFpStorageNews1.setFactoryCode(wmsFpStorageNewsSn.getFactoryCode()); + wmsFpStorageNews1.setActiveFlag("1"); + wmsFpStorageNews1.setUserDefined1(wmsFpStorageNews.getUserDefined1()); + List wmsFpStorageNewsList = wmsFpStorageNewsMapper.selectWmsFpStorageNewsList(wmsFpStorageNews1); + wmsFpStorageNews1.setStorageId(IdUtils.fastSimpleUUID()); + wmsFpStorageNews1.setAmount(wmsFpStorageNewsSn.getAmount()); + wmsFpStorageNews1.setCreateBy(wmsFpStorageNewsSn.getCreateBy()); + wmsFpStorageNews1.setCreateTime(new Date()); + if (wmsFpStorageNewsList.size() > 0) { + WmsFpStorageNews wmsFpStorageNews2 = wmsFpStorageNewsList.get(0); + BigDecimal amount1 = wmsFpStorageNews2.getAmount(); + BigDecimal amountAdd = amount1.add(wmsFpStorageNews.getAmount()); + wmsFpStorageNews2.setAmount(amountAdd); + wmsFpStorageNewsMapper.updateWmsFpStorageNews(wmsFpStorageNews2); + } else { + wmsFpStorageNewsMapper.insertWmsFpStorageNews(wmsFpStorageNews1); + } + }finally { + DynamicDataSourceContextHolder.poll(); } + return result1; } /** diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsSellOutTrayServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsSellOutTrayServiceImpl.java index cc6d2fd68..b52d2c935 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsSellOutTrayServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsSellOutTrayServiceImpl.java @@ -80,42 +80,43 @@ public class WmsSellOutTrayServiceImpl implements IWmsSellOutTrayService { public int insertWmsSellOutTray(WmsSellOutTray wmsSellOutTray) { //todo 需要修改 DynamicDataSourceContextHolder.push("ds_1000"); - ValueOperations opsForValue = redisTemplate.opsForValue(); - String deliveryOrder = opsForValue.get("deliveryOrder"); - String productCode = opsForValue.get("productCode"); - WmsSellOutEmbryo wmsSellOutEmbryo1 = wmsSellOutEmbryoMapper.selectWmsSellOutEmbryoByOrderCodeAndProductCode(deliveryOrder, productCode); - //todo 根据箱码查询托盘 - WmsProductPutTrayCode wmsProductPutTrayCode = wmsProductPutTrayCodeMapper.selectWmsProductPutTrayCodeByBarcode(wmsSellOutTray.getBarcode()); - //todo 根据托盘号和产品编码查询库存主表 - WmsFpStorageNewsSn wmsFpStorageNewsSn = wmsFpStorageNewsSnMapper.selectWmsFpStorageNewsSnBySnAndProductCode(wmsProductPutTrayCode.getSn(), productCode); - if (ObjectUtils.isEmpty(wmsFpStorageNewsSn)) { - throw new ServiceException("库存中没有这个产品!"); - } - //todo 校验批次号是否一致 - if (wmsSellOutEmbryo1.getLotNumber().equals(wmsFpStorageNewsSn.getBatchNumber())) { - WmsSellOutTray wmsSellOutTray1 = wmsSellOutTrayMapper.selectWmsSellOutTrayByDeliveryOrderAndProductCode(deliveryOrder, productCode, wmsSellOutTray.getBarcode()); - if (wmsSellOutTray1 == null) { - wmsSellOutTray.setId(IdUtils.fastSimpleUUID()); - wmsSellOutTray.setDeliveryOrder(deliveryOrder); - wmsSellOutTray.setProductCode(productCode); - WmsSellOutEmbryo wmsSellOutEmbryo = wmsSellOutEmbryoMapper.selectWmsSellOutEmbryoByOrderCodeAndProductCode(deliveryOrder, productCode); - wmsSellOutTray.setFactoryCode(wmsSellOutEmbryo.getFactoryCode()); - wmsSellOutTray.setWhCode(wmsSellOutEmbryo.getWhCode()); - wmsSellOutTray.setWaCode(wmsSellOutEmbryo.getWaCode()); - wmsSellOutTray.setWlCode(wmsFpStorageNewsSn.getWlCode()); - wmsSellOutTray.setProductName(wmsSellOutEmbryo.getProductName()); - wmsSellOutTray.setProductSort(wmsSellOutEmbryo.getProductSort()); - wmsSellOutTray.setCreateTime(DateUtils.getNowDate()); - wmsSellOutTray.setBarcode(wmsSellOutTray.getBarcode()); - wmsSellOutTray.setLotNumber(wmsSellOutEmbryo.getLotNumber()); - //根据箱码查询托盘号 - wmsSellOutTray.setSn(wmsProductPutTrayCode.getSn()); - } else { - throw new ServiceException("这个产品已经出库!"); + try { + ValueOperations opsForValue = redisTemplate.opsForValue(); + String deliveryOrder = opsForValue.get("deliveryOrder"); + String productCode = opsForValue.get("productCode"); + WmsSellOutEmbryo wmsSellOutEmbryo1 = wmsSellOutEmbryoMapper.selectWmsSellOutEmbryoByOrderCodeAndProductCode(deliveryOrder, productCode); + //todo 根据箱码查询托盘 + WmsProductPutTrayCode wmsProductPutTrayCode = wmsProductPutTrayCodeMapper.selectWmsProductPutTrayCodeByBarcode(wmsSellOutTray.getBarcode()); + //todo 根据托盘号和产品编码查询库存主表 + WmsFpStorageNewsSn wmsFpStorageNewsSn = wmsFpStorageNewsSnMapper.selectWmsFpStorageNewsSnBySnAndProductCode(wmsProductPutTrayCode.getSn(), productCode); + if (ObjectUtils.isEmpty(wmsFpStorageNewsSn)) { + throw new ServiceException("库存中没有这个产品!"); + } + //todo 校验批次号是否一致 + if (wmsSellOutEmbryo1.getLotNumber().equals(wmsFpStorageNewsSn.getBatchNumber())) { + WmsSellOutTray wmsSellOutTray1 = wmsSellOutTrayMapper.selectWmsSellOutTrayByDeliveryOrderAndProductCode(deliveryOrder, productCode, wmsSellOutTray.getBarcode()); + if (wmsSellOutTray1 == null) { + wmsSellOutTray.setId(IdUtils.fastSimpleUUID()); + wmsSellOutTray.setDeliveryOrder(deliveryOrder); + wmsSellOutTray.setProductCode(productCode); + WmsSellOutEmbryo wmsSellOutEmbryo = wmsSellOutEmbryoMapper.selectWmsSellOutEmbryoByOrderCodeAndProductCode(deliveryOrder, productCode); + wmsSellOutTray.setFactoryCode(wmsSellOutEmbryo.getFactoryCode()); + wmsSellOutTray.setWhCode(wmsSellOutEmbryo.getWhCode()); + wmsSellOutTray.setWaCode(wmsSellOutEmbryo.getWaCode()); + wmsSellOutTray.setWlCode(wmsFpStorageNewsSn.getWlCode()); + wmsSellOutTray.setProductName(wmsSellOutEmbryo.getProductName()); + wmsSellOutTray.setProductSort(wmsSellOutEmbryo.getProductSort()); + wmsSellOutTray.setCreateTime(DateUtils.getNowDate()); + wmsSellOutTray.setBarcode(wmsSellOutTray.getBarcode()); + wmsSellOutTray.setLotNumber(wmsSellOutEmbryo.getLotNumber()); + //根据箱码查询托盘号 + wmsSellOutTray.setSn(wmsProductPutTrayCode.getSn()); + } else { + throw new ServiceException("这个产品已经出库!"); + } + } else { + throw new ServiceException("批次号在库存中不存在!"); } - } else { - throw new ServiceException("批次号在库存中不存在!"); - } // WmsSellOutEmbryo wmsSellOutEmbryo1 = wmsSellOutEmbryoMapper.selectWmsSellOutEmbryoByOrderCodeAndProductCode(deliveryOrder, productCode); // WmsSellOutTray wmsSellOutTray1 = wmsSellOutTrayMapper.selectWmsSellOutTrayByDeliveryOrderAndProductCode(deliveryOrder, productCode, wmsSellOutTray.getBarcode()); // if (wmsSellOutTray1==null){ @@ -141,7 +142,11 @@ public class WmsSellOutTrayServiceImpl implements IWmsSellOutTrayService { //// if ((wmsSellOutTray1.getBarcode()).equals(wmsSellOutTray.getBarcode())){ //// throw new ServiceException("这个产品已经出库!"); //// } - return wmsSellOutTrayMapper.insertWmsSellOutTray(wmsSellOutTray); + return wmsSellOutTrayMapper.insertWmsSellOutTray(wmsSellOutTray); + }finally { + DynamicDataSourceContextHolder.poll(); + } + } /** @@ -192,28 +197,29 @@ public class WmsSellOutTrayServiceImpl implements IWmsSellOutTrayService { public int handSellOut(List wmsSellOutTrays) { //todo 需要修改 DynamicDataSourceContextHolder.push("ds_1000"); - for (WmsSellOutTray wmsSellOutTray : wmsSellOutTrays) { - //todo 根据箱码查询托盘号 - WmsProductPutTrayCode wmsProductPutTrayCode = wmsProductPutTrayCodeMapper.selectWmsProductPutTrayCodeByBarcode(wmsSellOutTray.getBarcode()); - //todo 对托盘和箱码的状态进行解绑修改 - wmsProductPutTrayCode.setRelatStatus("0"); - wmsProductPutTrayCodeMapper.updateWmsProductPutTrayCode(wmsProductPutTrayCode); - } - //todo 出库完成之后,减库存——根据产品编码和库位编码减库存 - ValueOperations opsForValue = redisTemplate.opsForValue(); - String deliveryOrder = opsForValue.get("deliveryOrder"); - String productCode = opsForValue.get("productCode"); - for (WmsSellOutTray wmsSellOutTray : wmsSellOutTrays) { - //根据产品编码和库位号查询主表 - WmsFpStorageNews wmsFpStorageNews = wmsFpStorageNewsMapper.selectWmsFpStorageNewsByProductCodeAndWlCode(productCode, wmsSellOutTray.getWlCode()); - if (ObjectUtils.isEmpty(wmsFpStorageNews)) { - throw new ServiceException("该产品没有库存!"); - } else { - BigDecimal outQuantity = new BigDecimal("1"); - wmsFpStorageNews.setAmount(wmsFpStorageNews.getAmount().subtract(outQuantity)); - wmsFpStorageNewsMapper.updateWmsFpStorageNews(wmsFpStorageNews); + try { + for (WmsSellOutTray wmsSellOutTray : wmsSellOutTrays) { + //todo 根据箱码查询托盘号 + WmsProductPutTrayCode wmsProductPutTrayCode = wmsProductPutTrayCodeMapper.selectWmsProductPutTrayCodeByBarcode(wmsSellOutTray.getBarcode()); + //todo 对托盘和箱码的状态进行解绑修改 + wmsProductPutTrayCode.setRelatStatus("0"); + wmsProductPutTrayCodeMapper.updateWmsProductPutTrayCode(wmsProductPutTrayCode); + } + //todo 出库完成之后,减库存——根据产品编码和库位编码减库存 + ValueOperations opsForValue = redisTemplate.opsForValue(); + String deliveryOrder = opsForValue.get("deliveryOrder"); + String productCode = opsForValue.get("productCode"); + for (WmsSellOutTray wmsSellOutTray : wmsSellOutTrays) { + //根据产品编码和库位号查询主表 + WmsFpStorageNews wmsFpStorageNews = wmsFpStorageNewsMapper.selectWmsFpStorageNewsByProductCodeAndWlCode(productCode, wmsSellOutTray.getWlCode()); + if (ObjectUtils.isEmpty(wmsFpStorageNews)) { + throw new ServiceException("该产品没有库存!"); + } else { + BigDecimal outQuantity = new BigDecimal("1"); + wmsFpStorageNews.setAmount(wmsFpStorageNews.getAmount().subtract(outQuantity)); + wmsFpStorageNewsMapper.updateWmsFpStorageNews(wmsFpStorageNews); + } } - } // ValueOperations opsForValue = redisTemplate.opsForValue(); // String deliveryOrder = opsForValue.get("deliveryOrder"); // String productCode = opsForValue.get("productCode"); @@ -228,18 +234,22 @@ public class WmsSellOutTrayServiceImpl implements IWmsSellOutTrayService { // wmsFpStorageNews.setAmount(wmsFpStorageNews.getAmount().subtract(outQuantity)); // wmsFpStorageNewsMapper.updateWmsFpStorageNews(wmsFpStorageNews); // } - //todo 对库存明细修改 - for (WmsSellOutTray wmsSellOutTray : wmsSellOutTrays) { - WmsProductPutTrayCode wmsProductPutTrayCode = wmsProductPutTrayCodeMapper.selectWmsProductPutTrayCodeByBarcode(wmsSellOutTray.getBarcode()); - WmsFpStorageNewsSn wmsFpStorageNewsSn = wmsFpStorageNewsSnMapper.selectWmsFpStorageNewsSnBySnAndProductCodeAndWlCode(productCode, wmsProductPutTrayCode.getSn(), wmsSellOutTray.getWlCode()); - //todo 对托盘上的箱数-1 - BigDecimal bigDecimal = new BigDecimal("1"); - wmsFpStorageNewsSn.setAmount(wmsFpStorageNewsSn.getAmount().subtract(bigDecimal)); - wmsFpStorageNewsSnMapper.updateWmsFpStorageNewsSn(wmsFpStorageNewsSn); + //todo 对库存明细修改 + for (WmsSellOutTray wmsSellOutTray : wmsSellOutTrays) { + WmsProductPutTrayCode wmsProductPutTrayCode = wmsProductPutTrayCodeMapper.selectWmsProductPutTrayCodeByBarcode(wmsSellOutTray.getBarcode()); + WmsFpStorageNewsSn wmsFpStorageNewsSn = wmsFpStorageNewsSnMapper.selectWmsFpStorageNewsSnBySnAndProductCodeAndWlCode(productCode, wmsProductPutTrayCode.getSn(), wmsSellOutTray.getWlCode()); + //todo 对托盘上的箱数-1 + BigDecimal bigDecimal = new BigDecimal("1"); + wmsFpStorageNewsSn.setAmount(wmsFpStorageNewsSn.getAmount().subtract(bigDecimal)); + wmsFpStorageNewsSnMapper.updateWmsFpStorageNewsSn(wmsFpStorageNewsSn); + } + redisTemplate.delete("deliveryOrder"); + redisTemplate.delete("productCode"); + return 1; + }finally { + DynamicDataSourceContextHolder.poll(); } - redisTemplate.delete("deliveryOrder"); - redisTemplate.delete("productCode"); - return 1; + } /** @@ -254,7 +264,11 @@ public class WmsSellOutTrayServiceImpl implements IWmsSellOutTrayService { public List selectWmsSellOutTraysByIDAndCode(String deliveryOrder, String productCode) { //todo 需要修改 DynamicDataSourceContextHolder.push("ds_1000"); - return wmsSellOutTrayMapper.selectWmsSellOutTraysByDeliveryOrderAndProductCode(deliveryOrder, productCode); + try { + return wmsSellOutTrayMapper.selectWmsSellOutTraysByDeliveryOrderAndProductCode(deliveryOrder, productCode); + }finally { + DynamicDataSourceContextHolder.poll(); + } } /** @@ -267,6 +281,11 @@ public class WmsSellOutTrayServiceImpl implements IWmsSellOutTrayService { public int deleteWmsSellOutTrayByBarcode(String barcode) { //todo 需要修改 DynamicDataSourceContextHolder.push("ds_1000"); - return wmsSellOutTrayMapper.deleteWmsSellOutTrayByBarcode(barcode); + try { + return wmsSellOutTrayMapper.deleteWmsSellOutTrayByBarcode(barcode); + }finally { + DynamicDataSourceContextHolder.poll(); + } + } } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsToWCSInterfaceServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsToWCSInterfaceServiceImpl.java index 4b19e6202..b241f6841 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsToWCSInterfaceServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsToWCSInterfaceServiceImpl.java @@ -44,12 +44,17 @@ public class WmsToWCSInterfaceServiceImpl implements IWmsToWCSInterfaceService { @DS("#header.poolName") public WmsToWCSDTO requestMaterialLoadNo(WmsToWCSDTO wcsdto) { DynamicDataSourceContextHolder.push("ds_" + wcsdto.getFactory()); - WmsToWCSDTO wmsToWCSDTO = wmsToWCSInterfaceMapper.selectWmsToWCSDTO(wcsdto); - // wmsToWCSDTO.set// - wmsToWCSDTO.setCode("0"); - wmsToWCSDTO.setReqCode(wcsdto.getReqCode()); - wmsToWCSDTO.setMessage("OK"); - return wmsToWCSDTO; + try { + WmsToWCSDTO wmsToWCSDTO = wmsToWCSInterfaceMapper.selectWmsToWCSDTO(wcsdto); + // wmsToWCSDTO.set// + wmsToWCSDTO.setCode("0"); + wmsToWCSDTO.setReqCode(wcsdto.getReqCode()); + wmsToWCSDTO.setMessage("OK"); + return wmsToWCSDTO; + }finally { + DynamicDataSourceContextHolder.poll(); + } + } /** @@ -63,53 +68,58 @@ public class WmsToWCSInterfaceServiceImpl implements IWmsToWCSInterfaceService { @DS("#header.poolName") public WmsToWCSDTO blankStorageOrTransferCompleted(WmsToWCSDTO wcsdto) { DynamicDataSourceContextHolder.push("ds_" + wcsdto.getFactory()); + try { - WmsOdsWhiteEmbryoIn wmsOdsWhiteEmbryoIn1 = new WmsOdsWhiteEmbryoIn(); - //rfidNo-托盘 - WmsToWCSDTO wmsToWCSDTO = wmsToWCSInterfaceMapper.selectWmsToWCSDTO(wcsdto); - //AGV 将白坯放到库内-- + WmsOdsWhiteEmbryoIn wmsOdsWhiteEmbryoIn1 = new WmsOdsWhiteEmbryoIn(); + //rfidNo-托盘 + WmsToWCSDTO wmsToWCSDTO = wmsToWCSInterfaceMapper.selectWmsToWCSDTO(wcsdto); + //AGV 将白坯放到库内-- - String workorderCode = wmsToWCSDTO.getWorkorderCode();//单号 - wmsOdsWhiteEmbryoIn1.setOrderCode(workorderCode); - WmsOdsWhiteEmbryoIn wmsOdsWhiteEmbryoIn = wmsOdsWhiteEmbryoInMapper.selectWmsOdsWhiteEmbryoInByWorkorderCode(workorderCode); - String qty = wmsToWCSDTO.getQty();//操作数量 - BigDecimal planNumber = wmsOdsWhiteEmbryoIn.getPlanNumber();//计划数量 - BigDecimal realityNumber = wmsOdsWhiteEmbryoIn.getRealityNumber();//已入数量 - BigDecimal sum = new BigDecimal(qty).add(realityNumber); // 将qty转换为BigDecimal类型,并与realityNumber相加 - boolean ten = sum.compareTo(planNumber) >= 0; // 判断sum是否大于等于planNumber - if (ten) { - wmsOdsWhiteEmbryoIn1.setOrderStatus("1"); - } else { - //小于 - wmsOdsWhiteEmbryoIn1.setOrderStatus("2"); + String workorderCode = wmsToWCSDTO.getWorkorderCode();//单号 + wmsOdsWhiteEmbryoIn1.setOrderCode(workorderCode); + WmsOdsWhiteEmbryoIn wmsOdsWhiteEmbryoIn = wmsOdsWhiteEmbryoInMapper.selectWmsOdsWhiteEmbryoInByWorkorderCode(workorderCode); + String qty = wmsToWCSDTO.getQty();//操作数量 + BigDecimal planNumber = wmsOdsWhiteEmbryoIn.getPlanNumber();//计划数量 + BigDecimal realityNumber = wmsOdsWhiteEmbryoIn.getRealityNumber();//已入数量 + BigDecimal sum = new BigDecimal(qty).add(realityNumber); // 将qty转换为BigDecimal类型,并与realityNumber相加 + boolean ten = sum.compareTo(planNumber) >= 0; // 判断sum是否大于等于planNumber + if (ten) { + wmsOdsWhiteEmbryoIn1.setOrderStatus("1"); + } else { + //小于 + wmsOdsWhiteEmbryoIn1.setOrderStatus("2"); + } + wmsOdsWhiteEmbryoIn1.setRealityNumber(sum);///操作数量+已入数量 + //1,修改订单 + wmsOdsWhiteEmbryoInMapper.updateWmsOdsWhiteEmbryoInByOrderCode(wmsOdsWhiteEmbryoIn1); + //2,修改库存---减冻结数量//加库存数量 + WmsOdsEmStorageNews wmsOdsEmStorageNews = new WmsOdsEmStorageNews(); + wmsOdsEmStorageNews.setWhCode(wcsdto.getWarehouseNo());//仓库编码 + wmsOdsEmStorageNews.setWlCode(wcsdto.getLocation());//库位编码 + wmsOdsEmStorageNews.setMaterialCode(wmsOdsWhiteEmbryoIn.getMaterialCode()); + wmsOdsEmStorageNews.setAmount(new BigDecimal(wmsToWCSDTO.getQty())); + //解冻 + wmsOdsEmStorageNewsMapper.updateAdd(wmsOdsEmStorageNews); + //3,添加记录 + WmsOdsEmStorageNewsSn wmsOdsEmStorageNewsSn = new WmsOdsEmStorageNewsSn(); + wmsOdsEmStorageNewsSn.setWhCode(wcsdto.getWarehouseNo());//仓库编码 + wmsOdsEmStorageNewsSn.setWaCode(wcsdto.getLocation());//库区编码 + wmsOdsEmStorageNewsSn.setWlCode(wcsdto.getLocation());//库位编码 + wmsOdsEmStorageNewsSn.setMaterialCode(wmsOdsWhiteEmbryoIn.getMaterialCode()); + wmsOdsEmStorageNewsSn.setMaterialDesc(wmsOdsWhiteEmbryoIn.getMaterialDesc()); + wmsOdsEmStorageNewsSn.setSn(wcsdto.getRfidNo());//托盘号 + wmsOdsEmStorageNewsSn.setAmount(new BigDecimal(wmsToWCSDTO.getQty())); + wmsOdsEmStorageNewsSn.setCreateTime(new Date()); + wmsOdsEmStorageNewsSnMapper.insertWmsOdsEmStorageNewsSn(wmsOdsEmStorageNewsSn); + // + wmsToWCSDTO.setCode("0"); + wmsToWCSDTO.setReqCode(wcsdto.getReqCode()); + wmsToWCSDTO.setMessage("OK"); + return wmsToWCSDTO; + }finally { + DynamicDataSourceContextHolder.poll(); } - wmsOdsWhiteEmbryoIn1.setRealityNumber(sum);///操作数量+已入数量 - //1,修改订单 - wmsOdsWhiteEmbryoInMapper.updateWmsOdsWhiteEmbryoInByOrderCode(wmsOdsWhiteEmbryoIn1); - //2,修改库存---减冻结数量//加库存数量 - WmsOdsEmStorageNews wmsOdsEmStorageNews = new WmsOdsEmStorageNews(); - wmsOdsEmStorageNews.setWhCode(wcsdto.getWarehouseNo());//仓库编码 - wmsOdsEmStorageNews.setWlCode(wcsdto.getLocation());//库位编码 - wmsOdsEmStorageNews.setMaterialCode(wmsOdsWhiteEmbryoIn.getMaterialCode()); - wmsOdsEmStorageNews.setAmount(new BigDecimal(wmsToWCSDTO.getQty())); - //解冻 - wmsOdsEmStorageNewsMapper.updateAdd(wmsOdsEmStorageNews); - //3,添加记录 - WmsOdsEmStorageNewsSn wmsOdsEmStorageNewsSn = new WmsOdsEmStorageNewsSn(); - wmsOdsEmStorageNewsSn.setWhCode(wcsdto.getWarehouseNo());//仓库编码 - wmsOdsEmStorageNewsSn.setWaCode(wcsdto.getLocation());//库区编码 - wmsOdsEmStorageNewsSn.setWlCode(wcsdto.getLocation());//库位编码 - wmsOdsEmStorageNewsSn.setMaterialCode(wmsOdsWhiteEmbryoIn.getMaterialCode()); - wmsOdsEmStorageNewsSn.setMaterialDesc(wmsOdsWhiteEmbryoIn.getMaterialDesc()); - wmsOdsEmStorageNewsSn.setSn(wcsdto.getRfidNo());//托盘号 - wmsOdsEmStorageNewsSn.setAmount(new BigDecimal(wmsToWCSDTO.getQty())); - wmsOdsEmStorageNewsSn.setCreateTime(new Date()); - wmsOdsEmStorageNewsSnMapper.insertWmsOdsEmStorageNewsSn(wmsOdsEmStorageNewsSn); - // - wmsToWCSDTO.setCode("0"); - wmsToWCSDTO.setReqCode(wcsdto.getReqCode()); - wmsToWCSDTO.setMessage("OK"); - return wmsToWCSDTO; + } @Override diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsToWCSmissionServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsToWCSmissionServiceImpl.java index 756f8b948..0d5bc18e5 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsToWCSmissionServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsToWCSmissionServiceImpl.java @@ -39,30 +39,35 @@ public class WmsToWCSmissionServiceImpl implements IWmsToWCSmissionService { @Override public WmsToWCSODTO packagingStorage(WmsToWCSDTO wcsdto) { DynamicDataSourceContextHolder.push("ds_" + wcsdto.getFactory()); - WmsToWCSDTO wmsToWCSDTO = wmsRawOrderInMapper.packagingStorage(wcsdto); - // wmsToWCSDTO.set// - if (wmsToWCSDTO == null) { - WmsToWCSODTO wms = new WmsToWCSODTO(); - wms.setCode("0"); - wms.setReqCode(wcsdto.getReqCode()); - wms.setMessage("OK"); - return wms; + try { + WmsToWCSDTO wmsToWCSDTO = wmsRawOrderInMapper.packagingStorage(wcsdto); + // wmsToWCSDTO.set// + if (wmsToWCSDTO == null) { + WmsToWCSODTO wms = new WmsToWCSODTO(); + wms.setCode("0"); + wms.setReqCode(wcsdto.getReqCode()); + wms.setMessage("OK"); + return wms; + } + wmsToWCSDTO.setQualityStatus("1"); + wmsToWCSDTO.setCode("0"); + wmsToWCSDTO.setReqCode(wcsdto.getReqCode()); + wmsToWCSDTO.setMessage("OK"); + WmsToWCSODTO wmsToWCSODTO = new WmsToWCSODTO(); + wmsToWCSODTO.setCode("0"); + + // 创建Gson对象 + Gson gson = new GsonBuilder().setPrettyPrinting().create(); + + // 将对象转换为JSON格式的字符串并格式化输出 + String MESSAGE = gson.toJson(wmsToWCSDTO); + + wmsToWCSODTO.setMessage(MESSAGE); + return wmsToWCSODTO; + }finally { + DynamicDataSourceContextHolder.poll(); } - wmsToWCSDTO.setQualityStatus("1"); - wmsToWCSDTO.setCode("0"); - wmsToWCSDTO.setReqCode(wcsdto.getReqCode()); - wmsToWCSDTO.setMessage("OK"); - WmsToWCSODTO wmsToWCSODTO = new WmsToWCSODTO(); - wmsToWCSODTO.setCode("0"); - // 创建Gson对象 - Gson gson = new GsonBuilder().setPrettyPrinting().create(); - - // 将对象转换为JSON格式的字符串并格式化输出 - String MESSAGE = gson.toJson(wmsToWCSDTO); - - wmsToWCSODTO.setMessage(MESSAGE); - return wmsToWCSODTO; } /** @@ -75,59 +80,64 @@ public class WmsToWCSmissionServiceImpl implements IWmsToWCSmissionService { public WmsToWCSDTO packingMaterialsInboundCompleted(WmsToWCSDTO wmsToWCSDTO) { DynamicDataSourceContextHolder.push("ds_" + wmsToWCSDTO.getFactory()); //wms_raw_order_in_sn - WmsRawOrderInSn wmsRawOrderInSn = wmsRawOrderInSnMapper.selectwmsRfidNo(wmsToWCSDTO); - wmsRawOrderInSn.setWhCode(wmsToWCSDTO.getWarehouseNo()); - wmsRawOrderInSn.setWlCode(wmsToWCSDTO.getLocation()); - WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn = new WmsOdsMateStorageNewsSn(); - wmsOdsMateStorageNewsSn.setWhCode(wmsRawOrderInSn.getWhCode());//仓库编码 - wmsOdsMateStorageNewsSn.setWlCode(wmsRawOrderInSn.getWlCode());//库位编码 - wmsOdsMateStorageNewsSn.setMaterialCode(wmsRawOrderInSn.getMaterialCode()); - wmsOdsMateStorageNewsSn.setMaterialDesc(wmsRawOrderInSn.getMaterialDesc()); - wmsOdsMateStorageNewsSn.setSn(wmsRawOrderInSn.getSn()); - wmsOdsMateStorageNewsSn.setAmount(wmsRawOrderInSn.getAmount()); - wmsOdsMateStorageNewsSn.setCreateBy("AGV"); - wmsOdsMateStorageNewsSn.setActiveFlag("1"); - wmsOdsMateStorageNewsSn.setGmtCreate(new Date()); - wmsOdsMateStorageNewsSn.setMateOrderInSnId(IdUtils.fastSimpleUUID()); - wmsOdsMateStorageNewsSn.setFactoryCode(wmsToWCSDTO.getFactory()); - wmsOdsMateStorageNewsSn.setSapFactoryCode(wmsToWCSDTO.getFactory()); - //wms_ods_mate_storage_news_sn - wmsOdsMateStorageNewsSnMapper.insertWmsOdsMateStorageNewsSn(wmsOdsMateStorageNewsSn); - //修改库存 - //2,修改库存---/加库存数量--storage_amount = IFNULL(storage_amount, 0) + #{amount}, - WmsOdsEmStorageNews wmsOdsEmStorageNews = new WmsOdsEmStorageNews(); - wmsOdsEmStorageNews.setWhCode(wmsRawOrderInSn.getWhCode());//仓库编码 - wmsOdsEmStorageNews.setWlCode(wmsRawOrderInSn.getWlCode());//库位编码 - wmsOdsEmStorageNews.setMaterialCode(wmsRawOrderInSn.getMaterialCode()); - wmsOdsEmStorageNews.setAmount(wmsRawOrderInSn.getAmount()); + try { + WmsRawOrderInSn wmsRawOrderInSn = wmsRawOrderInSnMapper.selectwmsRfidNo(wmsToWCSDTO); + wmsRawOrderInSn.setWhCode(wmsToWCSDTO.getWarehouseNo()); + wmsRawOrderInSn.setWlCode(wmsToWCSDTO.getLocation()); + WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn = new WmsOdsMateStorageNewsSn(); + wmsOdsMateStorageNewsSn.setWhCode(wmsRawOrderInSn.getWhCode());//仓库编码 + wmsOdsMateStorageNewsSn.setWlCode(wmsRawOrderInSn.getWlCode());//库位编码 + wmsOdsMateStorageNewsSn.setMaterialCode(wmsRawOrderInSn.getMaterialCode()); + wmsOdsMateStorageNewsSn.setMaterialDesc(wmsRawOrderInSn.getMaterialDesc()); + wmsOdsMateStorageNewsSn.setSn(wmsRawOrderInSn.getSn()); + wmsOdsMateStorageNewsSn.setAmount(wmsRawOrderInSn.getAmount()); + wmsOdsMateStorageNewsSn.setCreateBy("AGV"); + wmsOdsMateStorageNewsSn.setActiveFlag("1"); + wmsOdsMateStorageNewsSn.setGmtCreate(new Date()); + wmsOdsMateStorageNewsSn.setMateOrderInSnId(IdUtils.fastSimpleUUID()); + wmsOdsMateStorageNewsSn.setFactoryCode(wmsToWCSDTO.getFactory()); + wmsOdsMateStorageNewsSn.setSapFactoryCode(wmsToWCSDTO.getFactory()); + //wms_ods_mate_storage_news_sn + wmsOdsMateStorageNewsSnMapper.insertWmsOdsMateStorageNewsSn(wmsOdsMateStorageNewsSn); + //修改库存 + //2,修改库存---/加库存数量--storage_amount = IFNULL(storage_amount, 0) + #{amount}, + WmsOdsEmStorageNews wmsOdsEmStorageNews = new WmsOdsEmStorageNews(); + wmsOdsEmStorageNews.setWhCode(wmsRawOrderInSn.getWhCode());//仓库编码 + wmsOdsEmStorageNews.setWlCode(wmsRawOrderInSn.getWlCode());//库位编码 + wmsOdsEmStorageNews.setMaterialCode(wmsRawOrderInSn.getMaterialCode()); + wmsOdsEmStorageNews.setAmount(wmsRawOrderInSn.getAmount()); - //添加库存--这个要有个判断有没有这个库存如果没有的话,就插入 - WmsOdsMateStorageNews wmsOdsMateStorageNews = wmsOdsMateStorageNewsMapper.selectByWhCodeAndMate(wmsOdsEmStorageNews); - if (wmsOdsMateStorageNews == null) { - WmsOdsMateStorageNews wmsOdsMateStorageNews1 = new WmsOdsMateStorageNews(); - wmsOdsMateStorageNews1.setStorageId(IdUtils.fastSimpleUUID()); - wmsOdsMateStorageNews1.setWhCode(wmsRawOrderInSn.getWhCode()); - wmsOdsMateStorageNews1.setWlCode(wmsRawOrderInSn.getWlCode()); - wmsOdsMateStorageNews1.setAmount(wmsRawOrderInSn.getAmount()); - // wmsOdsMateStorageNews1.setStorageAmount(wmsRawOrderInSn.getAmount()); - wmsOdsMateStorageNews1.setMaterialCode(wmsRawOrderInSn.getMaterialCode()); - wmsOdsMateStorageNews1.setMaterialDesc(wmsRawOrderInSn.getMaterialDesc()); - wmsOdsMateStorageNews1.setStorageType("BC"); - wmsOdsMateStorageNews1.setCreateBy("wcs"); - wmsOdsMateStorageNews1.setGmtCreate(new Date()); - wmsOdsMateStorageNews1.setActiveFlag("1"); - wmsOdsMateStorageNews1.setFactoryCode(wmsToWCSDTO.getFactory()); - wmsOdsMateStorageNews1.setSapFactoryCode(wmsToWCSDTO.getFactory()); - wmsOdsMateStorageNews1.setUserDefined1(wmsRawOrderInSn.getUserDefined4());//单位 - wmsOdsMateStorageNewsMapper.insertWmsOdsMateStorageNews(wmsOdsMateStorageNews1); - } else { - wmsOdsMateStorageNewsSnMapper.updateAdd(wmsOdsEmStorageNews); + //添加库存--这个要有个判断有没有这个库存如果没有的话,就插入 + WmsOdsMateStorageNews wmsOdsMateStorageNews = wmsOdsMateStorageNewsMapper.selectByWhCodeAndMate(wmsOdsEmStorageNews); + if (wmsOdsMateStorageNews == null) { + WmsOdsMateStorageNews wmsOdsMateStorageNews1 = new WmsOdsMateStorageNews(); + wmsOdsMateStorageNews1.setStorageId(IdUtils.fastSimpleUUID()); + wmsOdsMateStorageNews1.setWhCode(wmsRawOrderInSn.getWhCode()); + wmsOdsMateStorageNews1.setWlCode(wmsRawOrderInSn.getWlCode()); + wmsOdsMateStorageNews1.setAmount(wmsRawOrderInSn.getAmount()); + // wmsOdsMateStorageNews1.setStorageAmount(wmsRawOrderInSn.getAmount()); + wmsOdsMateStorageNews1.setMaterialCode(wmsRawOrderInSn.getMaterialCode()); + wmsOdsMateStorageNews1.setMaterialDesc(wmsRawOrderInSn.getMaterialDesc()); + wmsOdsMateStorageNews1.setStorageType("BC"); + wmsOdsMateStorageNews1.setCreateBy("wcs"); + wmsOdsMateStorageNews1.setGmtCreate(new Date()); + wmsOdsMateStorageNews1.setActiveFlag("1"); + wmsOdsMateStorageNews1.setFactoryCode(wmsToWCSDTO.getFactory()); + wmsOdsMateStorageNews1.setSapFactoryCode(wmsToWCSDTO.getFactory()); + wmsOdsMateStorageNews1.setUserDefined1(wmsRawOrderInSn.getUserDefined4());//单位 + wmsOdsMateStorageNewsMapper.insertWmsOdsMateStorageNews(wmsOdsMateStorageNews1); + } else { + wmsOdsMateStorageNewsSnMapper.updateAdd(wmsOdsEmStorageNews); + } + //修改托盘记录为入库 + wmsRawOrderInSnMapper.updateU1Byid(wmsRawOrderInSn); + wmsToWCSDTO.setCode("0"); + wmsToWCSDTO.setMessage("OK"); + return wmsToWCSDTO; + }finally { + DynamicDataSourceContextHolder.poll(); } - //修改托盘记录为入库 - wmsRawOrderInSnMapper.updateU1Byid(wmsRawOrderInSn); - wmsToWCSDTO.setCode("0"); - wmsToWCSDTO.setMessage("OK"); - return wmsToWCSDTO; + } /** @@ -140,58 +150,68 @@ public class WmsToWCSmissionServiceImpl implements IWmsToWCSmissionService { public WmsToWCSDTO packingMaterialsOutBoundCompleted(WmsToWCSDTO wcsdto) { //记录明细消减库存--wms_raw_mission_out- DynamicDataSourceContextHolder.push("ds_" + wcsdto.getFactory()); + try { + WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn = wmsOdsMateStorageNewsSnMapper.selectwmsRfidNotwo(wcsdto); - WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn = wmsOdsMateStorageNewsSnMapper.selectwmsRfidNotwo(wcsdto); + //user_defined1='2'也就是查询的已经入库的托盘记录,再之后要进行标记备注5为1.不为空即是这, + // 或者直接在库存明细中查询这个托盘,然后后面对这条托盘明细进行标记处理,表示已经出库--用这个 - //user_defined1='2'也就是查询的已经入库的托盘记录,再之后要进行标记备注5为1.不为空即是这, - // 或者直接在库存明细中查询这个托盘,然后后面对这条托盘明细进行标记处理,表示已经出库--用这个 + //修改库存 - //修改库存 + //2,修改库存---/加库存数量--storage_amount = IFNULL(storage_amount, 0) + #{amount}, + + WmsOdsEmStorageNews wmsOdsEmStorageNews = new WmsOdsEmStorageNews(); + wmsOdsEmStorageNews.setWhCode(wmsOdsMateStorageNewsSn.getWhCode());//仓库编码 + wmsOdsEmStorageNews.setWlCode(wmsOdsMateStorageNewsSn.getWlCode());//库位编码 + wmsOdsEmStorageNews.setMaterialCode(wmsOdsMateStorageNewsSn.getMaterialCode()); + wmsOdsEmStorageNews.setAmount(wmsOdsMateStorageNewsSn.getAmount()); + wmsOdsMateStorageNewsSnMapper.updatekdd(wmsOdsEmStorageNews); + wmsOdsMateStorageNewsSn.setUserDefined1("1"); + wmsOdsMateStorageNewsSnMapper.updateWmsOdsMateStorageNewsSn(wmsOdsMateStorageNewsSn); + return wcsdto; + }finally { + DynamicDataSourceContextHolder.poll(); + } - //2,修改库存---/加库存数量--storage_amount = IFNULL(storage_amount, 0) + #{amount}, - WmsOdsEmStorageNews wmsOdsEmStorageNews = new WmsOdsEmStorageNews(); - wmsOdsEmStorageNews.setWhCode(wmsOdsMateStorageNewsSn.getWhCode());//仓库编码 - wmsOdsEmStorageNews.setWlCode(wmsOdsMateStorageNewsSn.getWlCode());//库位编码 - wmsOdsEmStorageNews.setMaterialCode(wmsOdsMateStorageNewsSn.getMaterialCode()); - wmsOdsEmStorageNews.setAmount(wmsOdsMateStorageNewsSn.getAmount()); - wmsOdsMateStorageNewsSnMapper.updatekdd(wmsOdsEmStorageNews); - wmsOdsMateStorageNewsSn.setUserDefined1("1"); - wmsOdsMateStorageNewsSnMapper.updateWmsOdsMateStorageNewsSn(wmsOdsMateStorageNewsSn); - return wcsdto; } @Override public WmsToWCSODTO finishedProductRequestInbound(WmsToWCSDTO wcsdto) { DynamicDataSourceContextHolder.push("ds_" + wcsdto.getFactory()); - //其中wcsdto的rfidNo属性先传托盘号,,原因---还没有自动码垛 - WmsToWCSDTO wmsToWCSDTO = wmsRawOrderInMapper.finishedProductRequestInbound(wcsdto); + try { + //其中wcsdto的rfidNo属性先传托盘号,,原因---还没有自动码垛 + WmsToWCSDTO wmsToWCSDTO = wmsRawOrderInMapper.finishedProductRequestInbound(wcsdto); - List items=wmsRawOrderInMapper.finishedProductRequestInboundsn(wcsdto); - // wmsToWCSDTO.set// - if (wmsToWCSDTO == null) { - WmsToWCSODTO wms = new WmsToWCSODTO(); - wms.setCode("0"); - wms.setReqCode(wcsdto.getReqCode()); - wms.setMessage("OK"); - return wms; + List items=wmsRawOrderInMapper.finishedProductRequestInboundsn(wcsdto); + // wmsToWCSDTO.set// + if (wmsToWCSDTO == null) { + WmsToWCSODTO wms = new WmsToWCSODTO(); + wms.setCode("0"); + wms.setReqCode(wcsdto.getReqCode()); + wms.setMessage("OK"); + return wms; + } + wmsToWCSDTO.setQualityStatus("1"); + wmsToWCSDTO.setItems(items); + wmsToWCSDTO.setCode("0"); + wmsToWCSDTO.setReqCode(wcsdto.getReqCode()); + wmsToWCSDTO.setMessage("OK"); + WmsToWCSODTO wmsToWCSODTO = new WmsToWCSODTO(); + wmsToWCSODTO.setCode("0"); + + // 创建Gson对象 + Gson gson = new GsonBuilder().setPrettyPrinting().create(); + + // 将对象转换为JSON格式的字符串并格式化输出 + String MESSAGE = gson.toJson(wmsToWCSDTO); + + wmsToWCSODTO.setMessage(MESSAGE); + return wmsToWCSODTO; + }finally { + DynamicDataSourceContextHolder.poll(); } - wmsToWCSDTO.setQualityStatus("1"); - wmsToWCSDTO.setItems(items); - wmsToWCSDTO.setCode("0"); - wmsToWCSDTO.setReqCode(wcsdto.getReqCode()); - wmsToWCSDTO.setMessage("OK"); - WmsToWCSODTO wmsToWCSODTO = new WmsToWCSODTO(); - wmsToWCSODTO.setCode("0"); - // 创建Gson对象 - Gson gson = new GsonBuilder().setPrettyPrinting().create(); - - // 将对象转换为JSON格式的字符串并格式化输出 - String MESSAGE = gson.toJson(wmsToWCSDTO); - - wmsToWCSODTO.setMessage(MESSAGE); - return wmsToWCSODTO; } @Override @@ -249,8 +269,13 @@ public class WmsToWCSmissionServiceImpl implements IWmsToWCSmissionService { // //修改托盘记录为入库 // wmsRawOrderInSnMapper.updateU1Byid(wmsRawOrderInSn); //在入库手持那里已经入了,他没有用rfid而是托盘,但是成品手持下线入库,在下下线入库那里已经入了,除非后续用自动码垛,不用手持的下线入库 - wmsToWCSDTO.setCode("0"); - wmsToWCSDTO.setMessage("OK"); + try { + wmsToWCSDTO.setCode("0"); + wmsToWCSDTO.setMessage("OK"); + }finally { + DynamicDataSourceContextHolder.poll(); + } + return wmsToWCSDTO; } @@ -258,26 +283,27 @@ public class WmsToWCSmissionServiceImpl implements IWmsToWCSmissionService { public WmsToWCSDTO finishedProductOutBoundCompleted(WmsToWCSDTO wcsdto) { //记录明细消减库存--wms_raw_mission_out- DynamicDataSourceContextHolder.push("ds_" + wcsdto.getFactory()); - WmsSellOutEmbryo wmsSellOutEmbryo=new WmsSellOutEmbryo(); - wmsSellOutEmbryo.setDeliveryOrder(wcsdto.getOrderNo());//查询对应的销售订单 - List wmsSellOutEmbryos = wmsSellOutEmbryoMapper.selectWmsSellOutEmbryoList(wmsSellOutEmbryo); - WmsSellOutEmbryo wmsSellOutEmbryo1=wmsSellOutEmbryos.get(0); + try { + WmsSellOutEmbryo wmsSellOutEmbryo=new WmsSellOutEmbryo(); + wmsSellOutEmbryo.setDeliveryOrder(wcsdto.getOrderNo());//查询对应的销售订单 + List wmsSellOutEmbryos = wmsSellOutEmbryoMapper.selectWmsSellOutEmbryoList(wmsSellOutEmbryo); + WmsSellOutEmbryo wmsSellOutEmbryo1=wmsSellOutEmbryos.get(0); - WmsToWCSDTO wmsToWCSDTO = wmsRawOrderInMapper.finishedProductRequestInbound(wcsdto);//根据托盘查询明细 - //修改销售订单 - String tem= wmsToWCSDTO.getQty(); - BigDecimal OutQuantity= wmsSellOutEmbryo1.getOutQuantity().add(new BigDecimal(tem));//2 - int result = wmsSellOutEmbryo1.getPlanQuantity().compareTo(OutQuantity); - WmsSellOutEmbryo wmsSellOutEmbryoUpdate=new WmsSellOutEmbryo(); - if (result == 0){//出库完 - wmsSellOutEmbryoUpdate.setStatus("1"); - }else { - wmsSellOutEmbryoUpdate.setStatus("0"); - } - wmsSellOutEmbryoUpdate.setDeliveryOrder(wcsdto.getOrderNo()); - wmsSellOutEmbryoUpdate.setOutQuantity(OutQuantity); - wmsSellOutEmbryoMapper.updateWmsSellOutEmbryotwo(wmsSellOutEmbryoUpdate); - //订单修改完成 + WmsToWCSDTO wmsToWCSDTO = wmsRawOrderInMapper.finishedProductRequestInbound(wcsdto);//根据托盘查询明细 + //修改销售订单 + String tem= wmsToWCSDTO.getQty(); + BigDecimal OutQuantity= wmsSellOutEmbryo1.getOutQuantity().add(new BigDecimal(tem));//2 + int result = wmsSellOutEmbryo1.getPlanQuantity().compareTo(OutQuantity); + WmsSellOutEmbryo wmsSellOutEmbryoUpdate=new WmsSellOutEmbryo(); + if (result == 0){//出库完 + wmsSellOutEmbryoUpdate.setStatus("1"); + }else { + wmsSellOutEmbryoUpdate.setStatus("0"); + } + wmsSellOutEmbryoUpdate.setDeliveryOrder(wcsdto.getOrderNo()); + wmsSellOutEmbryoUpdate.setOutQuantity(OutQuantity); + wmsSellOutEmbryoMapper.updateWmsSellOutEmbryotwo(wmsSellOutEmbryoUpdate); + //订单修改完成 // WmsProductPutTrayCode wmsProductPutTrayCode=new WmsProductPutTrayCode(); //解除绑定 @@ -315,6 +341,10 @@ public class WmsToWCSmissionServiceImpl implements IWmsToWCSmissionService { wcsdto.setCode("0"); wcsdto.setMessage("OK"); return wcsdto; + }finally { + DynamicDataSourceContextHolder.poll(); + } + } @Override