From aa0f9d414758d391783da5fed31a9ba807a0c1f9 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Mon, 26 Jan 2026 18:15:29 +0800 Subject: [PATCH] =?UTF-8?q?opt=EF=BC=9A=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/PdaProductionService.java | 5 + .../service/impl/PdaCommonServiceImpl.java | 3 + .../impl/PdaProductionServiceImpl.java | 135 ++++++++++++------ .../service/impl/PdaWarehouseServiceImpl.java | 28 ++++ .../nl/wms/pda/util/SectMaterialCheck.java | 66 +++++++++ .../service/util/tasks/CallMaterialTask.java | 3 + .../service/util/tasks/CenterInTask.java | 3 + .../service/util/tasks/CoatingUpTask.java | 4 +- .../util/tasks/EmptyDiskConveyTask.java | 3 + .../util/tasks/EmptyDiskEnterTask.java | 3 + .../util/tasks/IntermediateOutTask.java | 9 +- .../service/util/tasks/MaterialBackTask.java | 4 +- .../service/util/tasks/PalletOutTask.java | 6 +- .../util/tasks/PalletizingAddTask.java | 3 + .../util/tasks/PalletizingDownTask.java | 3 + .../util/tasks/PreProcessingInTask.java | 4 +- .../service/util/tasks/ProduceInTask.java | 4 +- .../service/util/tasks/RawInTask.java | 4 +- .../service/util/tasks/TabletingInTask.java | 7 +- .../service/util/tasks/WrappingDownTask.java | 3 + .../service/util/tasks/WrappingUpTask.java | 3 + .../wms/basedata/storagevehicleinfo/index.vue | 57 +++++++- 22 files changed, 300 insertions(+), 60 deletions(-) diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/PdaProductionService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/PdaProductionService.java index fe4ed6e..b5d05f2 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/PdaProductionService.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/PdaProductionService.java @@ -22,6 +22,11 @@ public interface PdaProductionService { */ PdaResponse getStockGroupInfo(JSONObject param); + /** + * 托盘叫料 + * @param param + * @return + */ PdaResponse confirmCallMaterial(JSONObject param); /** diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaCommonServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaCommonServiceImpl.java index 61e5857..820c1e3 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaCommonServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaCommonServiceImpl.java @@ -194,6 +194,9 @@ public class PdaCommonServiceImpl implements PdaCommonService { jsonObject.put("vehicle_code", param.getVehicle_code()); groupplateService.checkVehicle(jsonObject); + // 检测托盘的物料类型是否都是一致的 + sectMaterialCheck.checkAllMaterialType(param.getGroup_plates()); + // 判断库区是否一致 sectMaterialCheck.chackAllMaterialAndSect(param); diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaProductionServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaProductionServiceImpl.java index 2fde75c..0cc67fe 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaProductionServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaProductionServiceImpl.java @@ -20,12 +20,15 @@ import org.nl.system.service.param.dao.Param; import org.nl.wms.basedata_manage.enums.BaseDataEnum; import org.nl.wms.basedata_manage.service.*; import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext; +import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo; import org.nl.wms.basedata_manage.service.dao.Sectattr; import org.nl.wms.basedata_manage.service.dao.Structattr; import org.nl.wms.pda.general_management.service.PdaBuildParamService; import org.nl.wms.pda.general_management.service.PdaWarehouseService; import org.nl.wms.pda.general_management.service.PdaProductionService; +import org.nl.wms.pda.general_management.service.dto.AssemblyPalletParam; import org.nl.wms.pda.util.PdaResponse; +import org.nl.wms.pda.util.SectMaterialCheck; import org.nl.wms.pda.util.ThresholdChecker; import org.nl.wms.sch_manage.enums.TaskStatus; import org.nl.wms.sch_manage.service.ISchBasePointService; @@ -112,6 +115,8 @@ public class PdaProductionServiceImpl implements PdaProductionService { private ISysParamService paramService; @Resource private SecondaryPackagingService secondaryPackagingService; + @Resource + private SectMaterialCheck sectMaterialCheck; @Override public PdaResponse getGroupInfo(JSONObject param) { // search; @@ -153,9 +158,6 @@ public class PdaProductionServiceImpl implements PdaProductionService { if (ObjectUtil.isEmpty(param.get("point_code"))) { throw new BadRequestException("请输入要料点!"); } - if (ObjectUtil.isEmpty(param.get("row"))) { - throw new BadRequestException("请选择呼叫的物料!"); - } String pointCode = param.getString("point_code"); SchBasePoint endPoint = pointService.getByPointCode(pointCode, true); if (ObjectUtil.isEmpty(endPoint)) { @@ -177,6 +179,9 @@ public class PdaProductionServiceImpl implements PdaProductionService { secondaryPackagingService.wrappingCall(crParam); return PdaResponse.requestOk(); } + if (ObjectUtil.isEmpty(param.get("row"))) { + throw new BadRequestException("请选择呼叫的物料!"); + } JSONObject row = param.getJSONObject("row"); Structattr structattr = structattrService.getByCode(row.getString("struct_code")); param.put("bill_type", IOSEnum.OUT_BILL_TYPE.code("批料出库")); @@ -305,31 +310,28 @@ public class PdaProductionServiceImpl implements PdaProductionService { if (ObjectUtil.isEmpty(startPoint.getVehicle_code())) { throw new BadRequestException("该点位没有载具信息!"); } - // 查找之前的任务 - List list = taskService.list(new LambdaQueryWrapper() - .eq(SchBaseTask::getTask_status, TaskStatus.FINISHED.getCode()) - .eq(SchBaseTask::getVehicle_code, startPoint.getVehicle_code()) - .in(SchBaseTask::getConfig_code, "PalletOutTask") - .orderByDesc(SchBaseTask::getTask_id)); - if (list.size() == 0) { - throw new BadRequestException("找不到托盘原来的位置!"); + // 根据托盘指定的区域回去 + MdPbStoragevehicleinfo storagevehicleinfo = storagevehicleinfoService.getByCode(startPoint.getVehicle_code()); + if (ObjectUtil.isEmpty(storagevehicleinfo)) { + throw new BadRequestException("找不到托盘信息!"); } - SchBaseTask task = list.get(0); - Structattr structattr = structattrService.getByCode(task.getPoint_code1()); List res = groupplateService.getPalletViewByVehicleCode(startPoint.getVehicle_code() , Arrays.asList("2", "4")); + if (ObjectUtil.isEmpty(storagevehicleinfo.getSect_code())) { + throw new BadRequestException("托盘没有绑定库区,请检查托盘信息!"); + } + Sectattr sectattr = sectattrService.findByCode(storagevehicleinfo.getSect_code(), false); if (res.size() > 0) { log.info("剩料回库"); // 剩料回库 param.put("rows", res); - Sectattr sectattr = sectattrService.findByCode(structattr.getSect_code(), false); param.put("bill_type", IOSEnum.IN_BILL_TYPE.code("剩料回库")); // 1 创建入库单、明细、分配明细 Map invObj = defaultPdaBuildParam.doBuildInvObj(param, startPoint, sectattr); String invId = rawAssistIStorService.insertDtl(invObj); // 2 调用手动分配 - param.put("sect_code", structattr.getSect_code()); - param.put("sect_name", structattr.getSect_name()); + param.put("sect_code", sectattr.getSect_code()); + param.put("sect_name", sectattr.getSect_name()); Map divObj = defaultPdaBuildParam.buildDivStructData(param, sectattr, invId, true); rawAssistIStorService.divStruct(divObj); // 3 创建任务 @@ -339,8 +341,8 @@ public class PdaProductionServiceImpl implements PdaProductionService { log.info("空载具回库"); // 空载具回库 JSONObject vin = new JSONObject(); - vin.put("storagevehicle_code", task.getVehicle_code()); - vin.put("sect_code", structattr.getSect_code()); + vin.put("storagevehicle_code", startPoint.getVehicle_code()); + vin.put("sect_code", sectattr.getSect_code()); vin.put("point_code", startPoint.getPoint_code()); vehicleInService.create(vin); } @@ -355,35 +357,70 @@ public class PdaProductionServiceImpl implements PdaProductionService { return PdaResponse.requestOk(); } + @SneakyThrows @Override public PdaResponse preProcessingDown(JSONObject param) { log.info("加工下料:{}", param); // vehicle_code、 point_code, sect_code, 。。。rows assertNotBlankJson(param, "请求参数不能为空!", "vehicle_code", "point_code", "sect_code"); - String pointCode = param.getString("point_code"); - SchBasePoint startPoint = pointService.getByPointCode(pointCode, false); - if (ObjectUtil.isEmpty(startPoint)) { - throw new BadRequestException("当前点位不存在,请检查是否正确!"); - } - // 判断任务是否创建 - List tasks = taskService.getTaskByQuery(new LambdaQueryWrapper() - .eq(SchBaseTask::getPoint_code1, pointCode)); - if (tasks.size() > 0) { - throw new BadRequestException("该点位已创建过任务!"); - } - String vehicleCode = param.getString("vehicle_code"); - List res = groupplateService.getPalletViewByVehicleCode(vehicleCode, Arrays.asList("1")); - if (res.size() == 0) { - throw new BadRequestException("当前托盘号【" + vehicleCode + "】不存在物料信息,请检查!"); - } - // 如果是仓位就需要走原辅料入库 - Sectattr sectCode = sectattrService.findByCode(param.getString("sect_code"), false); - if (ObjectUtil.isNotEmpty(sectCode)) { - // 辅料入库 - param.put("rows", res); - receivedIn(param); - } else { - preProcessingInTask.create(param); + RLock lock = redissonClient.getLock("lock:preProcessingDown"); + boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS); + try { + if (tryLock) { + String pointCode = param.getString("point_code"); + SchBasePoint startPoint = pointService.getByPointCode(pointCode, false); + if (ObjectUtil.isEmpty(startPoint)) { + throw new BadRequestException("当前点位不存在,请检查是否正确!"); + } + // 判断任务是否创建 + List tasks = taskService.getTaskByQuery(new LambdaQueryWrapper() + .eq(SchBaseTask::getPoint_code1, pointCode)); + if (tasks.size() > 0) { + throw new BadRequestException("该点位已创建过任务!"); + } + String vehicleCode = param.getString("vehicle_code"); + List res = groupplateService.getPalletViewByVehicleCode(vehicleCode, Arrays.asList("1")); + if (res.size() == 0) { + throw new BadRequestException("当前托盘号【" + vehicleCode + "】不存在物料信息,请检查!"); + } + // 如果是仓位就需要走原辅料入库 + Sectattr sectCode = sectattrService.findByCode(param.getString("sect_code"), false); + if (ObjectUtil.isNotEmpty(sectCode)) { + // 辅料入库 + param.put("rows", res); + // 入库前检测 + AssemblyPalletParam checkParam = new AssemblyPalletParam(); + checkParam.setVehicle_code(vehicleCode); + // res中包含g.*(md_pb_groupplate字段),但也会额外带一些展示字段;这里只取校验必需字段即可 + List groupPlates = res.stream().map(row -> { + GroupPlate gp = new GroupPlate(); + gp.setGroup_id(row.getString("group_id")); + gp.setBag_code(row.getString("bag_code")); + gp.setVehicle_code(row.getString("vehicle_code")); + gp.setMaterial_id(row.getString("material_id")); + gp.setPcsn(row.getString("pcsn")); + gp.setQty(row.getBigDecimal("qty")); + gp.setQty_unit_id(row.getString("qty_unit_id")); + gp.setQty_unit_name(row.getString("qty_unit_name")); + gp.setSupp_code(row.getString("supp_code")); + gp.setRemark(row.getString("remark")); + gp.setStatus(row.getString("status")); + return gp; + }).collect(Collectors.toList()); + checkParam.setGroup_plates(groupPlates); + // 调用检测方法:校验托盘库区与物料类型映射关系 + sectMaterialCheck.chackAllMaterialAndSect(checkParam); + receivedIn(param); + } else { + preProcessingInTask.create(param); + } + } else { + throw new BadRequestException("速度太快啦,稍后再试..."); + } + } finally { + if (tryLock) { + lock.unlock(); + } } return PdaResponse.requestOk(); } @@ -434,6 +471,14 @@ public class PdaProductionServiceImpl implements PdaProductionService { productionInStorage(param, point); return PdaResponse.requestOk(); } + + // 缠绕膜 + if (point.getRegion_code().startsWith("CR")) { + JSONObject p = new JSONObject(); + p.put("device_code", pointCode); + secondaryPackagingService.wrappingDown(p); + return PdaResponse.requestOk(); + } // 压片/包衣下料 AbstractTask task = taskFactory.getTask(IOSEnum.DOWN_CONFIG_CODE.code(point.getRegion_code())); task.create(param); @@ -658,7 +703,7 @@ public class PdaProductionServiceImpl implements PdaProductionService { String currentPoint = param.getString("current_point"); String vehicleCode = param.getString("vehicle_code"); // ACS 获取的重量 - String total = param.getString("total"); + String total = param.getString("weight"); String taskId = row.getString("task_id"); if (ObjectUtil.isNotEmpty(taskId)) { // 有任务直接任务完成 @@ -695,7 +740,7 @@ public class PdaProductionServiceImpl implements PdaProductionService { String currentPoint = param.getString("current_point"); String vehicleCode = param.getString("vehicle_code"); // ACS 获取的重量 - BigDecimal currentTotal = param.getBigDecimal("total"); + BigDecimal currentTotal = param.getBigDecimal("weight"); BigDecimal originalQty = row.getBigDecimal("qty"); Param threshold = paramService.findByCode("weighing_threshold"); // 对比与组盘的重量是否大于阈值 @@ -717,7 +762,7 @@ public class PdaProductionServiceImpl implements PdaProductionService { return PdaResponse.requestOk(); } if (ObjectUtil.isEmpty(row.getString("station"))) { - throw new BadRequestException("产线目标站为空"); + throw new BadRequestException("请设置产线目标站!"); } List infoByBucket = groupbucketService.getBucketInfoByBucket(vehicleCode); if (infoByBucket.size() == 0) { diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaWarehouseServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaWarehouseServiceImpl.java index ccfd5e1..faa39b1 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaWarehouseServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaWarehouseServiceImpl.java @@ -20,7 +20,9 @@ import org.nl.wms.basedata_manage.service.dao.Structattr; import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleextMapper; import org.nl.wms.pda.general_management.service.PdaBuildParamService; import org.nl.wms.pda.general_management.service.PdaWarehouseService; +import org.nl.wms.pda.general_management.service.dto.AssemblyPalletParam; import org.nl.wms.pda.util.PdaResponse; +import org.nl.wms.pda.util.SectMaterialCheck; import org.nl.wms.sch_manage.service.ISchBasePointService; import org.nl.wms.sch_manage.service.ISchBaseTaskService; import org.nl.wms.sch_manage.service.dao.SchBasePoint; @@ -68,6 +70,8 @@ public class PdaWarehouseServiceImpl implements PdaWarehouseService { private PdaBuildParamService defaultPdaBuildParam; @Resource private IStructattrService structattrService; + @Resource + private SectMaterialCheck sectMaterialCheck; /** * 组盘mapper @@ -266,6 +270,30 @@ public class PdaWarehouseServiceImpl implements PdaWarehouseService { if (ObjectUtil.isEmpty(pointDao)) { throw new BadRequestException("当前入库点位不存在【" + param.getString("point_code") + "】"); } + // 校验托盘数据与入库是否匹配 + // 入库前检测 + AssemblyPalletParam checkParam = new AssemblyPalletParam(); + checkParam.setVehicle_code(param.getString("vehicel_code")); + // res中包含g.*(md_pb_groupplate字段),但也会额外带一些展示字段;这里只取校验必需字段即可 + List rows = param.getJSONArray("rows").toJavaList(JSONObject.class); + List groupPlates = rows.stream().map(row -> { + GroupPlate gp = new GroupPlate(); + gp.setGroup_id(row.getString("group_id")); + gp.setBag_code(row.getString("bag_code")); + gp.setVehicle_code(row.getString("vehicle_code")); + gp.setMaterial_id(row.getString("material_id")); + gp.setPcsn(row.getString("pcsn")); + gp.setQty(row.getBigDecimal("qty")); + gp.setQty_unit_id(row.getString("qty_unit_id")); + gp.setQty_unit_name(row.getString("qty_unit_name")); + gp.setSupp_code(row.getString("supp_code")); + gp.setRemark(row.getString("remark")); + gp.setStatus(row.getString("status")); + return gp; + }).collect(Collectors.toList()); + checkParam.setGroup_plates(groupPlates); + // 调用检测方法:校验托盘库区与物料类型映射关系 + sectMaterialCheck.chackAllMaterialAndSect(checkParam); // 组织入库单创建 param.put("bill_type", IOSEnum.IN_BILL_TYPE.code("原辅料入库")); diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/util/SectMaterialCheck.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/util/SectMaterialCheck.java index 73b44b2..f469ea4 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/util/SectMaterialCheck.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/util/SectMaterialCheck.java @@ -1,6 +1,7 @@ package org.nl.wms.pda.util; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.nl.common.exception.BadRequestException; import org.nl.system.service.dict.ISysDictService; import org.nl.system.service.dict.dao.Dict; @@ -16,6 +17,7 @@ import org.nl.wms.warehouse_management.service.dao.GroupPlate; import org.springframework.stereotype.Component; import javax.annotation.Resource; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Objects; @@ -58,6 +60,70 @@ public class SectMaterialCheck { @Resource private CommonMapper commonMapper; + /** + * 校验托盘的物料类型是否一致 + * @param groupPlates + */ + public void checkAllMaterialType(List groupPlates) { + if (ObjectUtil.isEmpty(groupPlates)) { + throw new BadRequestException("托盘物料信息不能为空!"); + } + + // 仅取本托盘涉及到的物料ID(物料表数据量大也不会全表扫描) + Set materialIdSet = groupPlates.stream() + .map(GroupPlate::getMaterial_id) + .filter(ObjectUtil::isNotEmpty) + .collect(Collectors.toCollection(HashSet::new)); + if (ObjectUtil.isEmpty(materialIdSet)) { + throw new BadRequestException("托盘物料信息不能为空!"); + } + if (materialIdSet.size() == 1) { + return; + } + + // 托盘明细本身不大:直接一次IN查询即可(只查必要字段,避免加载物料表大字段) + List materials = materialbaseService.list( + new QueryWrapper() + .select("material_id", "material_type_id") + .in("material_id", materialIdSet) + ); + if (ObjectUtil.isEmpty(materials)) { + throw new BadRequestException("物料不存在或已被删除!"); + } + + // 校验物料是否都存在 + Set foundMaterialIds = materials.stream() + .filter(Objects::nonNull) + .map(MdMeMaterialbase::getMaterial_id) + .filter(ObjectUtil::isNotEmpty) + .collect(Collectors.toSet()); + if (foundMaterialIds.size() != materialIdSet.size()) { + Set missing = new HashSet<>(materialIdSet); + missing.removeAll(foundMaterialIds); + throw new BadRequestException("物料不存在或已被删除:" + String.join(",", missing)); + } + + // 校验物料类型是否一致 + long typeCnt = materials.stream() + .map(MdMeMaterialbase::getMaterial_type_id) + .filter(ObjectUtil::isNotEmpty) + .distinct() + .count(); + if (typeCnt == 0) { + throw new BadRequestException("物料未配置物料类型(material_type_id),无法校验!"); + } + if (typeCnt > 1) { + throw new BadRequestException("托盘物料类型不一致,禁止操作!"); + } + + // 若存在未配置类型的物料,也认为不允许通过 + boolean hasEmptyType = materials.stream().anyMatch(m -> ObjectUtil.isEmpty(m) || ObjectUtil.isEmpty(m.getMaterial_type_id())); + if (hasEmptyType) { + throw new BadRequestException("存在未配置物料类型(material_type_id)的物料,无法校验!"); + } + } + + /** * 获取托盘对应的sect_code,比较所有param对应的物料的类型, 与字典表MATERIAL_SECT(label:物料类型,value:库区)是否匹配. * @param param diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CallMaterialTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CallMaterialTask.java index afcd5fd..0bd3af9 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CallMaterialTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CallMaterialTask.java @@ -85,6 +85,9 @@ public class CallMaterialTask extends AbstractTask { task.setCreate_id(SecurityUtils.getCurrentUserId()); task.setCreate_name(SecurityUtils.getCurrentNickName()); task.setCreate_time(DateUtil.now()); + if (task.getPoint_code1().equals(task.getPoint_code2())) { + throw new BadRequestException("起点终点不能一致,请检查!"); + } taskService.save(task); // 下发任务 diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CenterInTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CenterInTask.java index d385406..f1dde07 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CenterInTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CenterInTask.java @@ -68,6 +68,9 @@ public class CenterInTask extends AbstractTask { task.setCreate_name(SecurityUtils.getCurrentNickName()); task.setCreate_time(DateUtil.now()); taskService.save(task); + if (task.getPoint_code1().equals(task.getPoint_code2())) { + throw new BadRequestException("起点终点不能一致,请检查!"); + } // 下发任务 // this.sendTaskOne(task.getTask_id()); diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CoatingUpTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CoatingUpTask.java index 74cc238..69268c0 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CoatingUpTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CoatingUpTask.java @@ -58,7 +58,9 @@ public class CoatingUpTask extends AbstractTask { task.setCreate_name(SecurityUtils.getCurrentNickName()); task.setCreate_time(DateUtil.now()); taskService.save(task); - + if (task.getPoint_code1().equals(task.getPoint_code2())) { + throw new BadRequestException("起点终点不能一致,请检查!"); + } // 下发任务 // this.sendTaskOne(task.getTask_id()); return task.getTask_id(); diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/EmptyDiskConveyTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/EmptyDiskConveyTask.java index 3cb90d4..0d78daa 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/EmptyDiskConveyTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/EmptyDiskConveyTask.java @@ -61,6 +61,9 @@ public class EmptyDiskConveyTask extends AbstractTask { task.setCreate_name(SecurityUtils.getCurrentNickName()); task.setCreate_time(DateUtil.now()); taskService.save(task); + if (task.getPoint_code1().equals(task.getPoint_code2())) { + throw new BadRequestException("起点终点不能一致,请检查!"); + } // 下发任务 // this.sendTaskOne(task.getTask_id()); return task.getTask_id(); diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/EmptyDiskEnterTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/EmptyDiskEnterTask.java index 5eb0bed..d72a5ee 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/EmptyDiskEnterTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/EmptyDiskEnterTask.java @@ -67,6 +67,9 @@ public class EmptyDiskEnterTask extends AbstractTask { task.setCreate_name(SecurityUtils.getCurrentNickName()); task.setCreate_time(DateUtil.now()); taskService.save(task); + if (task.getPoint_code1().equals(task.getPoint_code2())) { + throw new BadRequestException("起点终点不能一致,请检查!"); + } // 下发任务 // this.sendTaskOne(task.getTask_id()); return task.getTask_id(); diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/IntermediateOutTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/IntermediateOutTask.java index 6b0e68f..dc50c54 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/IntermediateOutTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/IntermediateOutTask.java @@ -93,9 +93,11 @@ public class IntermediateOutTask extends AbstractTask { task.setCreate_name(SecurityUtils.getCurrentNickName()); task.setCreate_time(DateUtil.now()); taskService.save(task); - + if (task.getPoint_code1().equals(task.getPoint_code2())) { + throw new BadRequestException("起点终点不能一致,请检查!"); + } // 下发任务 - this.sendTaskOne(task.getTask_id()); +// this.sendTaskOne(task.getTask_id()); return task.getTask_id(); } @@ -178,6 +180,9 @@ public class IntermediateOutTask extends AbstractTask { taskObj.setRemark("已完成"); taskService.updateById(taskObj); outBillService.taskFinish(taskObj); + if (true) { + return; + } // 创建上料任务 JSONObject request = JSONObject.parseObject(taskObj.getRequest_param()); // "ext":{"iostorinv_id":"2009532623130595328","point_code":"ZJZCZ01","target":"YPDJW01"} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/MaterialBackTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/MaterialBackTask.java index 44822d6..e6f2050 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/MaterialBackTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/MaterialBackTask.java @@ -71,7 +71,9 @@ public class MaterialBackTask extends AbstractTask { task.setCreate_name(SecurityUtils.getCurrentNickName()); task.setCreate_time(DateUtil.now()); taskService.save(task); - + if (task.getPoint_code1().equals(task.getPoint_code2())) { + throw new BadRequestException("起点终点不能一致,请检查!"); + } // 下发任务 // this.sendTaskOne(task.getTask_id()); return task.getTask_id(); diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PalletOutTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PalletOutTask.java index 63f9fbe..a252632 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PalletOutTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PalletOutTask.java @@ -103,9 +103,11 @@ public class PalletOutTask extends AbstractTask { structattrService.update(new LambdaUpdateWrapper() .set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("出库锁")) .eq(Structattr::getStruct_code, task.getPoint_code1())); - + if (task.getPoint_code1().equals(task.getPoint_code2())) { + throw new BadRequestException("起点终点不能一致,请检查!"); + } // 下发任务 - this.sendTaskOne(task.getTask_id()); +// this.sendTaskOne(task.getTask_id()); return task.getTask_id(); } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PalletizingAddTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PalletizingAddTask.java index 3fbc58f..75fecd3 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PalletizingAddTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PalletizingAddTask.java @@ -60,6 +60,9 @@ public class PalletizingAddTask extends AbstractTask { task.setCreate_name(SecurityUtils.getCurrentNickName()); task.setCreate_time(DateUtil.now()); taskService.save(task); + if (task.getPoint_code1().equals(task.getPoint_code2())) { + throw new BadRequestException("起点终点不能一致,请检查!"); + } // 下发任务 // this.sendTaskOne(task.getTask_id()); return task.getTask_id(); diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PalletizingDownTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PalletizingDownTask.java index 246dcde..333520d 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PalletizingDownTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PalletizingDownTask.java @@ -67,6 +67,9 @@ public class PalletizingDownTask extends AbstractTask { task.setCreate_name(SecurityUtils.getCurrentNickName()); task.setCreate_time(DateUtil.now()); taskService.save(task); + if (task.getPoint_code1().equals(task.getPoint_code2())) { + throw new BadRequestException("起点终点不能一致,请检查!"); + } // 下发任务 // this.sendTaskOne(task.getTask_id()); return task.getTask_id(); diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PreProcessingInTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PreProcessingInTask.java index 2331853..18a6ab1 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PreProcessingInTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PreProcessingInTask.java @@ -69,7 +69,9 @@ public class PreProcessingInTask extends AbstractTask { task.setCreate_name(SecurityUtils.getCurrentNickName()); task.setCreate_time(DateUtil.now()); taskService.save(task); - + if (task.getPoint_code1().equals(task.getPoint_code2())) { + throw new BadRequestException("起点终点不能一致,请检查!"); + } // 下发任务 // this.sendTaskOne(task.getTask_id()); return task.getTask_id(); diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/ProduceInTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/ProduceInTask.java index 2feeb88..a1554f8 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/ProduceInTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/ProduceInTask.java @@ -66,7 +66,9 @@ public class ProduceInTask extends AbstractTask { task.setCreate_name(SecurityUtils.getCurrentNickName()); task.setCreate_time(DateUtil.now()); taskService.save(task); - + if (task.getPoint_code1().equals(task.getPoint_code2())) { + throw new BadRequestException("起点终点不能一致,请检查!"); + } // 下发任务 // this.sendTaskOne(task.getTask_id()); return task.getTask_id(); diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/RawInTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/RawInTask.java index 4d3250a..a586da7 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/RawInTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/RawInTask.java @@ -72,7 +72,9 @@ public class RawInTask extends AbstractTask { task.setCreate_name(SecurityUtils.getCurrentNickName()); task.setCreate_time(DateUtil.now()); taskService.save(task); - + if (task.getPoint_code1().equals(task.getPoint_code2())) { + throw new BadRequestException("起点终点不能一致,请检查!"); + } // 下发任务 // this.sendTaskOne(task.getTask_id()); return task.getTask_id(); diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/TabletingInTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/TabletingInTask.java index 955a8f2..8d2b045 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/TabletingInTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/TabletingInTask.java @@ -92,7 +92,9 @@ public class TabletingInTask extends AbstractTask { task.setCreate_name(SecurityUtils.getCurrentNickName()); task.setCreate_time(DateUtil.now()); taskService.save(task); - + if (task.getPoint_code1().equals(task.getPoint_code2())) { + throw new BadRequestException("起点终点不能一致,请检查!"); + } // 下发任务 // this.sendTaskOne(task.getTask_id()); return task.getTask_id(); @@ -175,6 +177,9 @@ public class TabletingInTask extends AbstractTask { throw new BadRequestException("入库库区设置不能为空!"); } // todo: 获取重量 + if (true) { + return; + } groupbucketService.upDateWeight("26.8", taskObj.getVehicle_code()); JSONObject param = new JSONObject(); // 创建入库任务 diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/WrappingDownTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/WrappingDownTask.java index c28d711..600c1d4 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/WrappingDownTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/WrappingDownTask.java @@ -75,6 +75,9 @@ public class WrappingDownTask extends AbstractTask { task.setCreate_name(SecurityUtils.getCurrentNickName()); task.setCreate_time(DateUtil.now()); taskService.save(task); + if (task.getPoint_code1().equals(task.getPoint_code2())) { + throw new BadRequestException("起点终点不能一致,请检查!"); + } // 下发任务 // this.sendTaskOne(task.getTask_id()); return task.getTask_id(); diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/WrappingUpTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/WrappingUpTask.java index 51d4f5a..f363aa8 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/WrappingUpTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/WrappingUpTask.java @@ -74,6 +74,9 @@ public class WrappingUpTask extends AbstractTask { task.setCreate_name(SecurityUtils.getCurrentNickName()); task.setCreate_time(DateUtil.now()); taskService.save(task); + if (task.getPoint_code1().equals(task.getPoint_code2())) { + throw new BadRequestException("起点终点不能一致,请检查!"); + } // 下发任务 // this.sendTaskOne(task.getTask_id()); return task.getTask_id(); diff --git a/wms/nladmin-ui/src/views/wms/basedata/storagevehicleinfo/index.vue b/wms/nladmin-ui/src/views/wms/basedata/storagevehicleinfo/index.vue index 217ee5f..b47982a 100644 --- a/wms/nladmin-ui/src/views/wms/basedata/storagevehicleinfo/index.vue +++ b/wms/nladmin-ui/src/views/wms/basedata/storagevehicleinfo/index.vue @@ -37,7 +37,7 @@ @keyup.enter.native="crud.toQuery" /> - + @@ -78,6 +78,20 @@ /> + + + + + @@ -112,6 +126,13 @@ + + + - - + + { + this.sects = res + }) + }, methods: { // 钩子:在获取表格数据之前执行,false 则代表不获取数据 [CRUD.HOOK.beforeRefresh]() { @@ -280,6 +309,15 @@ export default { } }) }, + getSectName(code) { + const sect = this.sects.find(item => item.sect_code === code) + return sect ? sect.sect_name : '请设置库区' + }, + isSectMissing(code) { + // 列表还未加载时不显示红色,避免闪烁 + if (!this.sects || this.sects.length === 0) return false + return !this.sects.some(item => item.sect_code === code) + }, formattType(row) { return this.dict.label.storagevehicle_type[row.storagevehicle_type] }, @@ -308,5 +346,14 @@ export default {