diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/Structattr.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/Structattr.java index 79ba26b..90fd685 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/Structattr.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/Structattr.java @@ -1,5 +1,6 @@ package org.nl.wms.basedata_manage.service.dao; +import com.baomidou.mybatisplus.annotation.FieldStrategy; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -239,6 +240,7 @@ public class Structattr implements Serializable { /** * 存储载具号 */ + @TableField(updateStrategy = FieldStrategy.IGNORED) private String storagevehicle_code; /** 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 503f2f9..e6a3ecc 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 @@ -48,12 +48,10 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; +import java.util.stream.Stream; import static org.nl.common.utils.ValidationUtil.*; @@ -113,7 +111,7 @@ public class PdaProductionServiceImpl implements PdaProductionService { if (ObjectUtil.isEmpty(search)) { throw new BadRequestException("载具不存在!"); } - List res = groupplateService.getPalletViewByVehicleCode(search); + List res = groupplateService.getPalletViewByVehicleCode(search, Arrays.asList("1")); return PdaResponse.requestParamOk(res); } @@ -158,7 +156,7 @@ public class PdaProductionServiceImpl implements PdaProductionService { if (ObjectUtil.isEmpty(search)) { throw new BadRequestException("请输入袋号编码!"); } - List groups = groupplateService.getPalletView(search, "2"); + List groups = groupplateService.getPalletView(search, Arrays.asList("1", "2")); if (groups.size() != 1) { throw new BadRequestException(groups.size() == 0 ? "组袋记录不存在,请先组袋!" : "组袋记录信息有误,请查询并清理后重试!"); } @@ -195,7 +193,6 @@ public class PdaProductionServiceImpl implements PdaProductionService { throw new BadRequestException("未找到当前托盘的原始库位信息!"); } Structattr structattr = startPoints.get(0); - Sectattr sectattr = sectattrService.findByCode(structattr.getSect_code(), false); // 手动更新库存信息 // 1、创建出库单、明细、分配明细 // 1.1 单据表 @@ -247,7 +244,7 @@ public class PdaProductionServiceImpl implements PdaProductionService { dtl.setIostorinvdtl_id(IdUtil.getStringId()); dtl.setIostorinv_id(invId); dtl.setSeq_no("1"); - dtl.setMaterial_id(row.getString("material_code")); + dtl.setMaterial_id(row.getString("material_id")); dtl.setPcsn(groupPlate.getPcsn()); dtl.setBill_status(IOSEnum.BILL_STATUS.code("完成")); dtl.setQty_unit_id(groupPlate.getQty_unit_id()); @@ -305,6 +302,13 @@ public class PdaProductionServiceImpl implements PdaProductionService { if (zeroQtyVehicles.size() > 0) { storagevehicleextService.removeByIds(zeroQtyVehicles.stream().map(MdPbStoragevehicleext::getStoragevehicleext_id).collect(Collectors.toList())); } + if (nonZeroQtyVehicles.size() == 0) { + // 说明托盘没东西了,点位释放 + structattr.setLock_type(IOSEnum.LOCK_TYPE.code("未锁定")); + structattr.setStoragevehicle_code(null); + structattr.setIs_emptyvehicle("0"); + structattrService.updateById(structattr); + } return PdaResponse.requestOk("取料成功!"); } @@ -326,6 +330,7 @@ public class PdaProductionServiceImpl implements PdaProductionService { } @Override + @Transactional(rollbackFor = Exception.class) public PdaResponse leftoverMaterialBack(JSONObject param) { // search, rows 按照托盘号原来的库区回去 String search = param.getString("search"); @@ -336,21 +341,33 @@ public class PdaProductionServiceImpl implements PdaProductionService { if (ObjectUtil.isEmpty(startPoint.getVehicle_code())) { throw new BadRequestException("该点位没有载具信息!"); } -// List list = groupplateService.list(new LambdaQueryWrapper() -// .eq(GroupPlate::getVehicle_code, search) -// .ne(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("出库"))); - List res = groupplateService.getPalletViewByVehicleCode(search); + List points = structattrService.getByVehicleCode(startPoint.getVehicle_code() + , IOSEnum.LOCK_TYPE.code("其他锁"), false); + if (points.size() != 1) { + throw new BadRequestException(points.size() > 1 + ? "该托盘号绑定在多个点位" + points.stream().map(Structattr::getStruct_code).collect(Collectors.toList()) + ",请检查!" + : "该托盘号未绑定到点位或者点位被禁用或者点位以上锁,请检查!"); + } + List res = groupplateService.getPalletViewByVehicleCode(startPoint.getVehicle_code() + , Arrays.asList("2")); if (res.size() > 0) { log.info("剩料回库"); // 剩料回库 param.put("rows", res); - Sectattr sectattr = sectattrService.findByCode(startPoint.getOut_sect(), false); + Structattr structattr = points.get(0); + 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); + invObj.put("nonChecked", "1"); String invId = rawAssistIStorService.insertDtl(invObj); - // 2 调用分配 - Map divObj = defaultPdaBuildParam.buildDivStructData(param, sectattr, invId, true); + // 2 调用手动分配 + param.put("sect_code", structattr.getSect_code()); + param.put("sect_name", structattr.getSect_name()); + param.put("struct_id", structattr.getStruct_id()); + param.put("struct_name", structattr.getStruct_name()); + param.put("struct_code", structattr.getStruct_code()); + Map divObj = defaultPdaBuildParam.buildDivStructData(param, sectattr, invId, false); rawAssistIStorService.divStruct(divObj); // 3 创建任务 Map jsonMst = defaultPdaBuildParam.buildTaskData(startPoint, invId); @@ -359,7 +376,7 @@ public class PdaProductionServiceImpl implements PdaProductionService { log.info("空载具回库"); // 空载具回库 JSONObject vin = new JSONObject(); - vin.put("storagevehicle_code", search); + vin.put("storagevehicle_code", startPoint.getVehicle_code()); vin.put("sect_code", startPoint.getOut_sect()); vin.put("point_code", startPoint.getPoint_code()); vehicleInService.create(vin); @@ -370,7 +387,7 @@ public class PdaProductionServiceImpl implements PdaProductionService { @Override public PdaResponse preProcessingDown(JSONObject param) { log.info("加工下料:{}", param); - // vehicle_code、 point_code, region_code, 。。。rows + // 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); @@ -384,7 +401,7 @@ public class PdaProductionServiceImpl implements PdaProductionService { throw new BadRequestException("该点位已创建过任务!"); } String vehicleCode = param.getString("vehicle_code"); - List res = groupplateService.getPalletViewByVehicleCode(vehicleCode); + List res = groupplateService.getPalletViewByVehicleCode(vehicleCode, Arrays.asList("1")); if (res.size() == 0) { throw new BadRequestException("当前托盘号不存在物料信息,请检查!"); } @@ -480,7 +497,7 @@ public class PdaProductionServiceImpl implements PdaProductionService { if (ObjectUtil.isEmpty(search)) { throw new BadRequestException("载具不存在!"); } - List res = groupplateService.getPalletViewByVehicleCode(search); + List res = groupplateService.getPalletViewByVehicleCode(search, Arrays.asList("1")); return PdaResponse.requestParamOk(res); } } 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 920459b..7390b57 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 @@ -27,6 +27,7 @@ import org.redisson.api.RedissonClient; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -63,7 +64,7 @@ public class PdaWarehouseServiceImpl implements PdaWarehouseService { if (ObjectUtil.isEmpty(search)) { throw new BadRequestException("请输入袋号编码!"); } - List groups = groupplateService.getPalletView(search, "0"); + List groups = groupplateService.getPalletView(search, Arrays.asList("0")); if (groups.size() != 1) { throw new BadRequestException(groups.size() == 0 ? "组袋记录不存在,请先组袋!" : "组袋记录信息有误,请查询并清理后重试!"); } 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 bd04f05..cdb57fe 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 @@ -46,7 +46,7 @@ public class PreProcessingInTask extends AbstractTask { @Override public String create(JSONObject json) { // 获取终点 - List points = pointService.getCanUsePointByRegion(json.getString("region_code")); + List points = pointService.getCanUsePointByRegion(json.getString("sect_code")); if (ObjectUtil.isEmpty(points)) { throw new BadRequestException("暂无可用点位!"); } @@ -55,7 +55,7 @@ public class PreProcessingInTask extends AbstractTask { SchBaseTask task = new SchBaseTask(); task.setTask_id(IdUtil.getStringId()); task.setTask_code(CodeUtil.getNewCode("TASK_CODE")); - task.setTask_status(TaskStatus.CREATE.getCode()); + task.setTask_status(TaskStatus.CREATED.getCode()); task.setConfig_code(PreProcessingInTask.class.getSimpleName()); task.setPoint_code1(json.getString("point_code")); task.setPoint_code2(point.getPoint_code()); diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IMdPbGroupplateService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IMdPbGroupplateService.java index 6a07390..11b4be0 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IMdPbGroupplateService.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IMdPbGroupplateService.java @@ -95,9 +95,15 @@ public interface IMdPbGroupplateService extends IService { */ List getByBagNo(String bagNo, String status); - List getPalletView(String search, String status); + /** + * + * @param search 袋号 + * @param status + * @return + */ + List getPalletView(String search, List status); - List getPalletViewByVehicleCode(String search); + List getPalletViewByVehicleCode(String search, List status); List getStockGroupInfo(JSONObject param); } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/MdPbGroupplateMapper.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/MdPbGroupplateMapper.java index 0722606..d33a8d4 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/MdPbGroupplateMapper.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/MdPbGroupplateMapper.java @@ -64,9 +64,9 @@ public interface MdPbGroupplateMapper extends BaseMapper { */ List pdaGetPointDtl(@Param("param") JSONObject whereJson); - List getPalletView(String search, String status); + List getPalletView(String search, List status); - List getPalletViewByVehicleCode(String search); + List getPalletViewByVehicleCode(String search, List status); List getStockGroupInfo(JSONObject param); } 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 f0c37fb..dcaaeef 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 @@ -149,7 +149,10 @@ `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.bag_code = #{search} AND g.`status` = #{status} + WHERE g.bag_code = #{search} AND g.`status` IN + + #{code} +