diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/controller/PdaPreTreatmentController.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/controller/PdaPreTreatmentController.java index aa5f9f5..7ffe09e 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/controller/PdaPreTreatmentController.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/controller/PdaPreTreatmentController.java @@ -6,7 +6,6 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.common.logging.annotation.Log; import org.nl.wms.pda.general_management.service.PdaPreTreatmentService; -import org.nl.wms.pda.general_management.service.dto.AssemblyPalletParam; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PostMapping; @@ -15,7 +14,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; -import javax.validation.Valid; /** * 预处理功能 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 aa1f4f7..3ef9842 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 @@ -159,7 +159,7 @@ public class PdaCommonServiceImpl implements PdaCommonService { @Override public PdaResponse confirmPalletAssembly(AssemblyPalletParam param) { - storagevehicleinfoService.getByCode(param.getVehicle_code()); +// storagevehicleinfoService.getByCode(param.getVehicle_code()); List groupPlates = param.getGroup_plates(); for (GroupPlate groupPlate : groupPlates) { groupPlate.setVehicle_code(param.getVehicle_code()); diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaPreTreatmentServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaPreTreatmentServiceImpl.java index 142e666..6856831 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaPreTreatmentServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaPreTreatmentServiceImpl.java @@ -1,6 +1,7 @@ package org.nl.wms.pda.general_management.service.impl; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -11,12 +12,17 @@ import lombok.extern.slf4j.Slf4j; import org.nl.common.exception.BadRequestException; import org.nl.wms.basedata_manage.service.ISectattrService; import org.nl.wms.basedata_manage.service.dao.Sectattr; +import org.nl.wms.pda.general_management.service.PdaCommonService; import org.nl.wms.pda.general_management.service.PdaPreTreatmentService; +import org.nl.wms.pda.general_management.service.dto.AssemblyPalletParam; import org.nl.wms.pda.util.PdaResponse; 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; +import org.nl.wms.sch_manage.service.dao.SchBaseTask; import org.nl.wms.warehouse_management.service.IMdPbGroupplateService; import org.nl.wms.warehouse_management.service.IRawAssistIStorService; +import org.nl.wms.warehouse_management.service.dao.GroupPlate; import org.nl.wms.warehouse_management.service.dao.IOStorInvDis; import org.nl.wms.warehouse_management.service.dao.IOStorInvDtl; import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDisMapper; @@ -25,10 +31,12 @@ import org.nl.wms.warehouse_management.service.dto.IOStorInvDisDto; import org.redisson.api.RLock; import org.redisson.api.RedissonClient; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; /** * @Author: lyd @@ -51,21 +59,21 @@ public class PdaPreTreatmentServiceImpl implements PdaPreTreatmentService { private IOStorInvDtlMapper ioStorInvDtlMapper; @Resource private RedissonClient redissonClient; + @Resource + private PdaCommonService pdaCommonService; + @Resource + private ISchBaseTaskService taskService; @Override public PdaResponse getPalletAssembly(JSONObject param) { String search = param.getString("search"); if (ObjectUtil.isEmpty(search)) { - throw new BadRequestException("请输入点位编码或者托盘编码!"); - } - SchBasePoint point = pointService.getByPointCode(search, false); - if (ObjectUtil.isNotEmpty(point)) { - search = point.getVehicle_code(); - } - if (ObjectUtil.isEmpty(search)) { - throw new BadRequestException("输入内容有误或者点位未绑定托盘号,请检查!"); + throw new BadRequestException("请输入袋号编码!"); } List groups = groupplateService.getPalletView(search); - return PdaResponse.requestParamOk(groups); + if (groups.size() != 1) { + throw new BadRequestException(groups.size() == 0 ? "组袋记录不存在,请先组袋!" : "组袋记录信息有误,请查询并清理后重试!"); + } + return PdaResponse.requestParamOk(groups.get(0)); } @SneakyThrows @@ -85,12 +93,24 @@ public class PdaPreTreatmentServiceImpl implements PdaPreTreatmentService { if (ObjectUtil.isEmpty(startPoint)) { throw new BadRequestException("输入的点位不存在或者点位已被禁用, 请检查输入点位是否正确或是否被禁用!"); } + if (ObjectUtil.isEmpty(startPoint.getVehicle_code())) { + throw new BadRequestException("点位载具号为空!"); + } Sectattr sectattr = sectattrService.findByCode("WYL01", true); if (ObjectUtil.isEmpty(sectattr)) { throw new BadRequestException("库区【物料室原料区】不存在或者被禁用!"); } + // 判断任务是否创建 + List tasks = taskService.getTaskByQuery(new LambdaQueryWrapper() + .eq(SchBaseTask::getPoint_code1, search)); + if (tasks.size() > 0) { + throw new BadRequestException("该点位已创建过任务!"); + } + // 0 组盘 + doGroupPallat(param, startPoint); + // 1 创建入库单、明细、分配明细 - Map invObj = doBuildInvObj(param.getJSONArray("rows")); + Map invObj = doBuildInvObj(param, startPoint); String invId = rawAssistIStorService.insertDtl(invObj); // 2 调用分配 (WYL01) Map divObj = buildDivStructData(sectattr, invId); @@ -109,6 +129,22 @@ public class PdaPreTreatmentServiceImpl implements PdaPreTreatmentService { return PdaResponse.requestOk(); } + private void doGroupPallat(JSONObject param, SchBasePoint startPoint) { + JSONArray rows = param.getJSONArray("rows"); + List bagCode = rows + .stream() + .map(HashMap.class::cast) + .map(p -> MapUtil.getStr(p, "bag_code")) + .collect(Collectors.toList()); + List list = groupplateService.list(new LambdaQueryWrapper() + .in(GroupPlate::getBag_code, bagCode) + .eq(GroupPlate::getStatus, "0")); + AssemblyPalletParam palletParam = new AssemblyPalletParam(); + palletParam.setVehicle_code(startPoint.getVehicle_code()); + palletParam.setGroup_plates(list); + pdaCommonService.confirmPalletAssembly(palletParam); + } + private Map buildTaskData(SchBasePoint startPoint, String invId) { Map jsonMst = new HashMap<>(); jsonMst.put("point_code", startPoint.getPoint_code()); @@ -144,7 +180,8 @@ public class PdaPreTreatmentServiceImpl implements PdaPreTreatmentService { return divObj; } - private Map doBuildInvObj(JSONArray rows) { + private Map doBuildInvObj(JSONObject param, SchBasePoint startPoint) { + JSONArray rows = param.getJSONArray("rows"); Map res = new HashMap<>(); ArrayList tableData = new ArrayList<>(); res.put("tableData", tableData); @@ -158,7 +195,7 @@ public class PdaPreTreatmentServiceImpl implements PdaPreTreatmentService { HashMap table = new HashMap<>(); JSONObject row = rows.getJSONObject(i); table.put("group_id", row.getString("group_id")); - table.put("storagevehicle_code", row.getString("storagevehicle_code")); + table.put("storagevehicle_code", startPoint.getVehicle_code()); table.put("material_id", row.getString("material_id")); table.put("pcsn", row.getString("pcsn")); table.put("qty", row.getBigDecimal("qty")); diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/MdPbGroupplateMapper.xml b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/MdPbGroupplateMapper.xml index 45c9310..28c49c9 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/MdPbGroupplateMapper.xml +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/MdPbGroupplateMapper.xml @@ -144,12 +144,11 @@ m.material_spec, m.material_model, m.material_type_id, - s.supp_name, - g.vehicle_code AS storagevehicle_code + s.supp_name FROM `md_pb_groupplate` g LEFT JOIN md_me_materialbase m ON m.material_id = g.material_id LEFT JOIN md_cs_supplierbase s ON s.supp_code = g.supp_code - WHERE g.vehicle_code = #{search} AND g.`status` = '1' + WHERE g.bag_code = #{search} AND g.`status` = '0' diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RawAssistIStorServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RawAssistIStorServiceImpl.java index 2a95422..2e8c61f 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RawAssistIStorServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RawAssistIStorServiceImpl.java @@ -251,6 +251,7 @@ public class RawAssistIStorServiceImpl extends ServiceImpl