diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java index 8108d0dc5..019ce5ddd 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java @@ -11,6 +11,7 @@ import org.nl.b_lms.sch.tasks.TwoMoveBoxTask; import org.nl.b_lms.sch.tasks.TwoOutBoxTask; import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService; import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxinfo; +import org.nl.b_lms.storage_manage.database.service.dao.mapper.BstIvtBoxinfoMapper; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.OutBoxManageService; import org.nl.common.utils.IdUtil; @@ -23,6 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.Comparator; import java.util.List; @@ -61,6 +63,9 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { @Autowired private IschBaseTaskService ischBaseTaskService; + @Resource + private BstIvtBoxinfoMapper bstIvtBoxinfoMapper; + @Override @Transactional(rollbackFor = Exception.class) public String outBox(JSONObject whereJson) { @@ -143,7 +148,7 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { attrTab.update(jsonAttr); // 重新分配货位 - BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne( + BstIvtBoxinfo boxDao = bstIvtBoxinfoMapper.selectOne( new QueryWrapper().lambda() .eq(BstIvtBoxinfo::getBox_no, taskDao.getVehicle_code()) ); @@ -516,15 +521,29 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { } else { // 判断是否被锁定 if (lowAttr.get(0).getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))) { - // 创建木箱移库单 - String task_group_id = createBoxMove(lowAttr.get(0)); + // 判断浅货位木箱和深货位木箱是否相同规格 + boolean ifLike = ifLikeBox(json.getString("storagevehicle_code"), lowAttr.get(0).getString("storagevehicle_code")); - json.put("task_group_id", task_group_id); - jsonAttr = json; - break; + if (ifLike) { + // 相同:出浅货位 + jsonAttr = lowAttr.get(0); + break; + } else { + // 创建木箱移库单 + String task_group_id = createBoxMove(lowAttr.get(0)); + + json.put("task_group_id", task_group_id); + jsonAttr = json; + break; + } } else { - jsonAttr = json; - break; + // 判断是否是空木箱出库锁 + if (lowAttr.get(0).getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("木箱出库锁"))) { + jsonAttr = json; + break; + } else { + continue; + } } } } else if (json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))) { @@ -538,6 +557,32 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { return jsonAttr; } + /** + * 判断深货位木箱和浅货位木箱规格是否一样 + * @param deep_box 深货位木箱 + * @param shallow_box 浅货位木箱 + * @return boolean + */ + private boolean ifLikeBox(String deep_box, String shallow_box) { + + boolean flag = false; + BstIvtBoxinfo deepBoxDao = bstIvtBoxinfoMapper.selectOne( + new QueryWrapper().lambda() + .eq(BstIvtBoxinfo::getBox_no, deep_box) + ); + + BstIvtBoxinfo shallowBoxDao = bstIvtBoxinfoMapper.selectOne( + new QueryWrapper().lambda() + .eq(BstIvtBoxinfo::getBox_no, shallow_box) + ); + + if (deepBoxDao.getMaterial_code().equals(shallowBoxDao.getMaterial_code())) { + flag = true; + } + + return flag; + } + /** * 创建木箱移库任务 * diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index 8355ef8d7..ec19d7c8c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -2211,8 +2211,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { } // TODO 重写 if (type.equals("3")) { - String task_id = outBoxManageService.taskExceptionalOut(whereJson); - result.put("task_id", task_id); + throw new BadRequestException("浅货位有货!"); + /* String task_id = outBoxManageService.taskExceptionalOut(whereJson); + result.put("task_id", task_id);*/ } } else if (taskDao.getTask_type().equals(TASKEnum.VEHICLE_TYPE.code("托盘入库"))) { // 托盘入库:满入、浅货位有货-放货时 @@ -2225,8 +2226,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { point_code = outVehicleManageService.taskExceptional(whereJson); } if (type.equals("3")) { - String task_id = outVehicleManageService.taskExceptionalOut(whereJson); - result.put("task_id", task_id); + throw new BadRequestException("浅货位有货!"); + /* String task_id = outVehicleManageService.taskExceptionalOut(whereJson); + result.put("task_id", task_id);*/ } } else if (taskDao.getTask_type().equals(TASKEnum.PROUD_TYPE.code("成品入库"))) { // 成品入库:满入、浅货位有货-放货时 diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java index b2a4ce613..4e988a2a4 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java @@ -10,6 +10,7 @@ import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvService; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.impl.*; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.InBussManageService; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.LashManageService; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.OutBoxManageService; import org.nl.modules.logging.annotation.Log; import org.nl.modules.wql.util.SpringContextHolder; import org.nl.wms.st.inbill.service.CheckOutBillService; @@ -48,6 +49,9 @@ public class CheckOutBillController { private final SendOutManageServiceImpl sendOutManageService; + private final OutBoxManageService outBoxManageService; + + @GetMapping @Log("查询出库单") @@ -415,7 +419,7 @@ public class CheckOutBillController { @Log("木箱出库测试") @SaIgnore public ResponseEntity testOutBox(@RequestBody JSONObject whereJson) { - new OutBoxManageServiceImpl().outBox(whereJson); + outBoxManageService.outBox(whereJson); return new ResponseEntity<>(HttpStatus.OK); }