From 5ee636414a77e08afdd07e1c6f9a2f275a7cd6c2 Mon Sep 17 00:00:00 2001 From: zhangzhiqiang Date: Wed, 14 Jun 2023 08:45:38 +0800 Subject: [PATCH] =?UTF-8?q?add:=E5=AF=BC=E5=85=A5=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=94=99=E8=AF=AF=E6=96=87=E4=BB=B6=E6=8F=90?= =?UTF-8?q?=E9=86=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/nl/modules/system/util/CodeUtil.java | 2 +- .../sch/tasks/SpeMachinery/SpeEmpTask.java | 3 +- .../sch/tasks/SpeMachinery/SpeFullTask.java | 24 +----- .../impl/IPdmProduceWorkorderServiceImpl.java | 80 ++++++++++++------- 4 files changed, 58 insertions(+), 51 deletions(-) diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/modules/system/util/CodeUtil.java b/mes/hd/nladmin-system/src/main/java/org/nl/modules/system/util/CodeUtil.java index 66e8fc60..847c93dc 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/modules/system/util/CodeUtil.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/modules/system/util/CodeUtil.java @@ -17,7 +17,7 @@ public class CodeUtil{ String codeId = service.queryIdByCode(ruleCode); RedissonUtils.lock(() -> { code[0] = service.codeDemo(map); - }, codeId, 3); + }, codeId, 1); return code[0]; } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeEmpTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeEmpTask.java index ab310938..e7bdfd1e 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeEmpTask.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeEmpTask.java @@ -206,8 +206,9 @@ public class SpeEmpTask extends AbstractAcsTask { if (!("fall_finish"+task.getTask_id()).equals(device.getRemark())){ iDeviceService.update(new UpdateWrapper() .set("material_id", task.getMaterial_id()) + .set("deviceinstor_qty",device.getDeviceinstor_qty().add(task.getMaterial_qty())) .set("remark","fall_finish"+task.getTask_id()) - .eq("device_code", task.getPoint_code2())); + .eq("device_code", device.getDevice_code())); } } break; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeFullTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeFullTask.java index 10664762..7a837950 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeFullTask.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeFullTask.java @@ -171,34 +171,18 @@ public class SpeFullTask extends AbstractAcsTask { .set("update_name","acs") .set("update_time",DateUtil.now()).eq("task_id",task.getTask_id())); Map extParam = (Map)param.get("ext_param"); - //取货完成/放货完成暂不处理箱子 - if (extParam.get("put_finish") != null){ - log.info("放货完成:{},vechile_code:{}",task.getTask_id(),task.getVehicle_code2()); -// pointService.update(new UpdateWrapper() -// .set("vehicle_code",task.getVehicle_code2()) -// .eq("point_code",task.getPoint_code3())); - - } + //take_finish 取满 fall_finish 倒料 put_finish放空 if (extParam.get("fall_finish") != null){ - PdmBiDevice one = deviceService.getOne(new QueryWrapper().eq("device_code", task.getPoint_code2())); + //TODO:添加任务唯一性校验防止重复更新 + PdmBiDevice one = deviceService.getDeviceByPointCode(task.getPoint_code2()); if (!("fall_finish"+task.getTask_id()).equals(one.getRemark())){ deviceService.update(new UpdateWrapper() .set("material_id", task.getMaterial_id()) .set("deviceinstor_qty",one.getDeviceinstor_qty().add(task.getMaterial_qty())) .set("remark","fall_finish"+task.getTask_id()) - .eq("device_code", task.getPoint_code2())); + .eq("device_code", one.getDevice_code())); } } - if (extParam.get("take_finish") != null){ - log.info("取货完成:{},vechile_code:{}",task.getTask_id(),task.getVehicle_code2()); -// pointService.update(new UpdateWrapper() -// .set("vehicle_code","") -// .eq("point_code",task.getPoint_code3())); -// pointService.update(new UpdateWrapper() -// .set("vehicle_code",task.getVehicle_code2()) -// .eq("point_code",task.getPoint_code1())); - } - break; case STATUS_FINISH: taskService.update(new UpdateWrapper() diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java index 5cef8469..eb5e84be 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java @@ -254,12 +254,14 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl data = new ArrayList<>(); Map errorMap = new HashMap(); + + List workprodures = new ArrayList<>(); + List materialSpecs = new ArrayList<>(); + List persons = new ArrayList<>(); row: for (int i = 0; i < read.size(); i++) { List list = read.get(i); - if (ObjectUtil.isEmpty(list)) { - continue; - } + if (ObjectUtil.isEmpty(list)) { continue; } PdmProduceWorkorder workorder = new PdmProduceWorkorder(); packageForm(workorder); for (int j = 0; j < list.size(); j++) { @@ -284,26 +286,12 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl material_specs = materialbaseService.list(new QueryWrapper().eq("material_spec", col)); - if (CollectionUtils.isEmpty(material_specs)) { - errorMap.put("第" + (i + 1) + "行,第" + (j + 1) + "列", col + "物料规格对应物料信息不存在"); - } else { - Optional first = material_specs.stream().filter(mdMeMaterialbase -> mdMeMaterialbase.getMaterial_code().contains("S") - && Pattern.matches("^[0-9]*$", mdMeMaterialbase.getMaterial_name().substring(mdMeMaterialbase.getMaterial_name().length() - 1)) - ).findFirst(); - if (!first.isPresent()) { - errorMap.put("第" + (i + 1) + "行,第" + (j + 1) + "列", col + "物料规格对应物料信息不存在"); - } - workorder.setMaterial_id(first.get().getMaterial_id()); - } + materialSpecs.add(col); + workorder.setMaterial_id(col); } if (j == 3) { - PdmBiWorkprocedure workprocedure = workprocedureService.getOne(new QueryWrapper().eq("workprocedure_name", col)); - if (ObjectUtil.isEmpty(workprocedure)) { - errorMap.put("第" + (i + 1) + "行,第" + (j + 1) + "列", col + "工序名称是否正确"); - } else { - workorder.setWorkprocedure_id(workprocedure.getWorkprocedure_id()); - } + workprodures.add(col); + workorder.setWorkprocedure_id(col); } if (j == 4) { //设备 A1_TW_ @@ -315,13 +303,8 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl().eq("person_name", col)); - if (ObjectUtil.isEmpty(user)) { - errorMap.put("第" + (i + 1) + "行,第" + (j + 1) + "列", col + " 操作工没有账号"); - } else { - workorder.setCurrent_produce_person_id(user.getUser_id()); - } + persons.add(col); + workorder.setCurrent_produce_person_id(col); } if (j == 9) { workorder.setPlan_qty(new BigDecimal(Long.valueOf(col))); @@ -334,7 +317,46 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl tmp_material_specs = materialbaseService.list(new QueryWrapper().in("material_spec", materialSpecs)); + List tmp_sysUsers = userService.list(new QueryWrapper().in("person_name", persons)); + List tmp_workprocedure_names = workprocedureService.list(new QueryWrapper().in("workprocedure_name", workprodures)); + + Map collect = tmp_workprocedure_names.stream().collect(HashMap::new, (k, v) -> k.put(v.getWorkprocedure_name(), v), HashMap::putAll); + Map users = tmp_sysUsers.stream().collect(HashMap::new, (k, v) -> k.put(v.getPerson_name(), v), HashMap::putAll); + Map> materialspecs = tmp_material_specs.stream().collect(Collectors.groupingBy(MdMeMaterialbase::getMaterial_spec)); + for (int i = 0; i < data.size(); i++) { + PdmProduceWorkorder workorder = data.get(i); + SysUser sysUser = users.get(workorder.getCurrent_produce_person_id()); + if (sysUser==null){ + errorMap.put("第"+(i+1)+"行:","账号:"+workorder.getCurrent_produce_person_id()+"不存在"); + }else { + workorder.setCurrent_produce_person_id(sysUser.getUser_id()); + } + PdmBiWorkprocedure workprocedure = collect.get(workorder.getWorkprocedure_id()); + if (workprocedure==null){ + errorMap.put("第"+(i+1)+"行:","工序名称:"+workorder.getWorkprocedure_id()+"不存在"); + }else { + workorder.setWorkorder_id(workprocedure.getWorkprocedure_id()); + } + List mdMeMaterialbases = materialspecs.get(workorder.getMaterial_id()); + if (!CollectionUtils.isEmpty(mdMeMaterialbases)){ + if (mdMeMaterialbases.size() == 1){ + workorder.setMaterial_id(mdMeMaterialbases.get(0).getMaterial_id()); + }else { + Optional first = mdMeMaterialbases.stream().filter(mdMeMaterialbase -> mdMeMaterialbase.getMaterial_code().contains("S") + && Pattern.matches("^[0-9]*$", mdMeMaterialbase.getMaterial_name().substring(mdMeMaterialbase.getMaterial_name().length() - 1)) + ).findFirst(); + if (first.isPresent()){ + workorder.setMaterial_id(first.get().getMaterial_id()); + }else { + errorMap.put("第"+(i+1)+"行:","物料规格:"+workorder.getMaterial_id()+"不存在"); + } + } + }else { + errorMap.put("第"+(i+1)+"行:","物料规格:"+workorder.getMaterial_id()+"不存在"); + } + } if (!CollectionUtils.isEmpty(errorMap)) { throw new BadRequestException(JSON.toJSONString(errorMap));