|
@@ -1,6 +1,6 @@
|
|
|
package com.ruoyi.ams.xuankuang.service;
|
|
|
|
|
|
-import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.ruoyi.ams.asn.domain.WmsDocAsnDetails;
|
|
|
import com.ruoyi.ams.asn.domain.WmsDocAsnHeader;
|
|
|
import com.ruoyi.ams.asn.service.IWmsDocAsnDetailsService;
|
|
@@ -20,6 +20,7 @@ import com.ruoyi.base.domain.BaseLocationInfo;
|
|
|
import com.ruoyi.base.service.IBaseLocationInfoService;
|
|
|
import com.ruoyi.common.core.domain.AjaxResult;
|
|
|
import com.ruoyi.common.utils.StringUtils;
|
|
|
+import com.ruoyi.common.exception.base.BaseException;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -104,6 +105,7 @@ public class WcsTaskSubService {
|
|
|
BaseLocationInfo baseLocationInfoFrom = iBaseLocationInfoService.selectBaseLocationInfoByIdOrNo(locationFrom, 1l);
|
|
|
BaseLocationInfo baseLocationInfoTo = iBaseLocationInfoService.selectBaseLocationInfoByIdOrNo(locationTo, 1l);
|
|
|
|
|
|
+ String taskNo = generateTaskNo();
|
|
|
WcsTask wcsTask = new WcsTask();
|
|
|
wcsTask.setTaskNo(taskNo);
|
|
|
wcsTask.setState(state);
|
|
@@ -140,36 +142,7 @@ public class WcsTaskSubService {
|
|
|
, String orderNo
|
|
|
, String palletNo
|
|
|
, String wcsNo) {
|
|
|
-
|
|
|
- BaseLocationInfo baseLocationInfoFrom = iBaseLocationInfoService.selectBaseLocationInfoByIdOrNo(locationFrom, 1l);
|
|
|
- BaseLocationInfo baseLocationInfoTo = iBaseLocationInfoService.selectBaseLocationInfoByIdOrNo(locationTo, 1l);
|
|
|
-
|
|
|
- String taskNo = generateTaskNo();
|
|
|
- WcsTask wcsTask = new WcsTask();
|
|
|
- wcsTask.setTaskNo(taskNo);
|
|
|
- wcsTask.setState(10L);
|
|
|
- wcsTask.setTaskType(Constant.TASK_TYPE.FORWARD.getValue());
|
|
|
- wcsTask.setBusinessType("01");
|
|
|
- wcsTask.setAreaFrom(baseLocationInfoFrom.getZoneId().toString());
|
|
|
- wcsTask.setLocationFrom(baseLocationInfoFrom.getId().toString());
|
|
|
- wcsTask.setAreaTo(baseLocationInfoTo.getZoneId().toString());
|
|
|
- wcsTask.setLocationTo(baseLocationInfoTo.getId().toString());
|
|
|
- wcsTask.setCreateTime(new Date());
|
|
|
- wcsTask.setCreateBy("Wcs");
|
|
|
- wcsTask.setShopId(Constant.WAREHOUSE_ID.toString());
|
|
|
- wcsTask.setPriority(10L);
|
|
|
- wcsTask.setExt1(orderNo);
|
|
|
- wcsTask.setExt2(palletNo);
|
|
|
- wcsTask.setExt3(wcsNo);
|
|
|
- wcsTask.setRemark("立体库任务");
|
|
|
- int i = iWcsTaskService.insertWcsTask(wcsTask);
|
|
|
- if (i > 0) {
|
|
|
- iBaseLocationInfoService.lockLocationStockStatus(Long.valueOf(wcsTask.getLocationFrom())
|
|
|
- , Long.valueOf(wcsTask.getLocationTo())
|
|
|
- , Constant.WAREHOUSE_ID, "Wcs");
|
|
|
- return AjaxResult.success("任务增加成功!", taskNo);
|
|
|
- }
|
|
|
- return AjaxResult.error("任务增加失败");
|
|
|
+ return addWcsTask(locationFrom, locationTo, orderNo, palletNo, wcsNo);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -215,8 +188,8 @@ public class WcsTaskSubService {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- if (state > 1 && state != 7) {
|
|
|
- wcsTask.setAgvNo(carNo + "");
|
|
|
+ if (state > 1 && state != 7 && ObjectUtil.isNotNull(carNo)) {
|
|
|
+ wcsTask.setAgvNo(carNo.toString());
|
|
|
}
|
|
|
|
|
|
if (wcsTask.getState() == 2 || wcsTask.getState() == 7) {
|
|
@@ -229,64 +202,36 @@ public class WcsTaskSubService {
|
|
|
wcsTask.setStartTime(new Date());
|
|
|
break;
|
|
|
case 2://完成
|
|
|
- if (wcsTask.getState() == 2) {
|
|
|
- log.info("不能重复放货," + taskNo);
|
|
|
- return;
|
|
|
- }
|
|
|
wcsTask.setEndTime(new Date());
|
|
|
//越库任务完成后反馈
|
|
|
- if (wcsTask.getExt2().equals("") && wcsTask.getExt1().startsWith("ASN")){
|
|
|
+ if (wcsTask.getExt2().equals("") && wcsTask.getExt1().startsWith("ASN")) {
|
|
|
completeTheCallbackYueKu(wcsTask);
|
|
|
break;
|
|
|
}
|
|
|
+ // 解锁库位
|
|
|
+ iBaseLocationInfoService.unLockLocationStockStatus(Long.parseLong(wcsTask.getLocationFrom())
|
|
|
+ , Long.parseLong(wcsTask.getLocationTo())
|
|
|
+ , Constant.WAREHOUSE_ID, updateBy);
|
|
|
+ // 将起始点库存移动到终点库位
|
|
|
+ iWcsTaskService.moveStartingPointToDestination(wcsTask);
|
|
|
//入库完成后反馈
|
|
|
if (wcsTask.getExt1().startsWith("ASN")) {
|
|
|
- // 解锁库位
|
|
|
- iBaseLocationInfoService.unLockLocationStockStatus(Long.parseLong(wcsTask.getLocationFrom())
|
|
|
- , Long.parseLong(wcsTask.getLocationTo())
|
|
|
- , Constant.WAREHOUSE_ID, updateBy);
|
|
|
- // 将起始点库存移动到终点库位
|
|
|
- iWcsTaskService.moveStartingPointToDestination(wcsTask);
|
|
|
// 修改入库单收货数量
|
|
|
completeTheCallback(wcsTask);
|
|
|
}//agv入库完成后反馈,回调wcs卸货完成
|
|
|
- else if (wcsTask.getLocationTo().equals("100733") && wcsTask.getExt1()==null){
|
|
|
- // 解锁库位
|
|
|
- iBaseLocationInfoService.unLockLocationStockStatus(Long.parseLong(wcsTask.getLocationFrom())
|
|
|
- , Long.parseLong(wcsTask.getLocationTo())
|
|
|
- , Constant.WAREHOUSE_ID, updateBy);
|
|
|
- // 将起始点库存移动到终点库位
|
|
|
- iWcsTaskService.moveStartingPointToDestination(wcsTask);
|
|
|
+ else if (wcsTask.getLocationTo().equals("100733") && wcsTask.getExt1() == null) {
|
|
|
wcsToWmsApiService.agvCallbackWCSBeforeUnloadingIsCompleted();
|
|
|
}
|
|
|
//出库完成后反馈
|
|
|
- if (wcsTask.getExt1().startsWith("SO")) {
|
|
|
- // 解锁库位
|
|
|
- iBaseLocationInfoService.unLockLocationStockStatus(Long.parseLong(wcsTask.getLocationFrom())
|
|
|
- , Long.parseLong(wcsTask.getLocationTo())
|
|
|
- , Constant.WAREHOUSE_ID, updateBy);
|
|
|
- // 将起始点库存移动到终点库位
|
|
|
- iWcsTaskService.moveStartingPointToDestinationout(wcsTask);
|
|
|
+ else if (wcsTask.getExt1().startsWith("SO")) {
|
|
|
invLotLocIdService.adjLocationIsEmpty(wcsTask.getLocationFrom(), Constant.WAREHOUSE_ID, "Wcs");
|
|
|
// 修改出库单收货数量
|
|
|
completeTheCallbackOut(wcsTask);
|
|
|
}//空托任务反馈和移库反馈
|
|
|
- else if (wcsTask.getExt1().equals("")){
|
|
|
- // 解锁库位
|
|
|
- iBaseLocationInfoService.unLockLocationStockStatus(Long.parseLong(wcsTask.getLocationFrom())
|
|
|
- , Long.parseLong(wcsTask.getLocationTo())
|
|
|
- , Constant.WAREHOUSE_ID, updateBy);
|
|
|
- iWcsTaskService.moveStartingPointToDestinationout(wcsTask);
|
|
|
- if (!wcsTask.getExt3().equals("")){
|
|
|
- invLotLocIdService.adjLocationIsEmpty(wcsTask.getLocationFrom(), Constant.WAREHOUSE_ID, "Wcs");
|
|
|
- }
|
|
|
+ else if (wcsTask.getExt1().equals("") && !wcsTask.getExt3().equals("")) {
|
|
|
+ invLotLocIdService.adjLocationIsEmpty(wcsTask.getLocationFrom(), Constant.WAREHOUSE_ID, "Wcs");
|
|
|
}//agv出库完成后反馈回调取货完成
|
|
|
- else if (wcsTask.getExt5()!=null){
|
|
|
- // 解锁库位
|
|
|
- iBaseLocationInfoService.unLockLocationStockStatus(Long.parseLong(wcsTask.getLocationFrom())
|
|
|
- , Long.parseLong(wcsTask.getLocationTo())
|
|
|
- , Constant.WAREHOUSE_ID, updateBy);
|
|
|
- iWcsTaskService.moveStartingPointToDestinationout(wcsTask);
|
|
|
+ else if (wcsTask.getExt5() != null) {
|
|
|
wmsDocAsnSubService.wmsAgvCallbackOuttask(wcsTask.getExt5());
|
|
|
}
|
|
|
break;
|
|
@@ -314,9 +259,7 @@ public class WcsTaskSubService {
|
|
|
break;
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
- log.info(wcsTask.getTaskNo() + "-----" + "回调状态:" + state + "异常", e);
|
|
|
- wcsTask.setRemark("回调状态:" + state + "异常");
|
|
|
- throw new RuntimeException();
|
|
|
+ throw new BaseException(wcsTask.getTaskNo() + "-----" + "回调状态:" + state + "异常");
|
|
|
}
|
|
|
wcsTask.setState(state.longValue());
|
|
|
wcsTask.setUpdateDate(new Date());
|
|
@@ -430,27 +373,7 @@ public class WcsTaskSubService {
|
|
|
}
|
|
|
}
|
|
|
if (con == true) {
|
|
|
- WmsDocOrderHeader wmsDocOrderHeader = iWmsDocOrderHeaderService.selectWmsDocOrderHeaderByOrderNo(orderNo);
|
|
|
- // 修改 单头40
|
|
|
- wmsDocOrderHeader.setOrderStatus(Constant.ORDER_STS.STS40.getValue());
|
|
|
- int i = iWmsDocOrderHeaderService.updateWmsDocOrderHeader(wmsDocOrderHeader);
|
|
|
- if (i >0) {
|
|
|
- if (sku.equals("Na2CO3")){
|
|
|
- wcsToWmsApiService.turnOffTheUnpacker();
|
|
|
- }
|
|
|
- if (sku.equals("C5H10OS2")){
|
|
|
- wcsToWmsApiService.turnOffTheUnpacker1();
|
|
|
- }
|
|
|
- if (sku.equals("(NaPO3)6")){
|
|
|
- wcsToWmsApiService.turnOffTheUnpacker2();
|
|
|
- }
|
|
|
- if (sku.equals("(NH4)2SO4")){
|
|
|
- wcsToWmsApiService.turnOffTheUnpacker3();
|
|
|
- }
|
|
|
- if (sku.equals("CH3CH2OCS2Na")){
|
|
|
- wcsToWmsApiService.turnOffTheUnpacker4();
|
|
|
- }
|
|
|
- };
|
|
|
+ updateWmsDocOrderHeader(orderNo, sku);
|
|
|
}
|
|
|
if (con1 == false) {
|
|
|
WmsDocOrderHeader wmsDocOrderHeader = iWmsDocOrderHeaderService.selectWmsDocOrderHeaderByOrderNo(orderNo);
|
|
@@ -497,29 +420,28 @@ public class WcsTaskSubService {
|
|
|
list.get(0).setQtyAllocatedEach(list.get(0).getQtyOrdered());
|
|
|
iWmsDocOrderDetailsService.updateWmsDocOrderDetails(list.get(0));
|
|
|
//修改 出库单单头40
|
|
|
- WmsDocOrderHeader wmsDocOrderHeader1 = iWmsDocOrderHeaderService.selectWmsDocOrderHeaderByOrderNo(orderNo);
|
|
|
- wmsDocOrderHeader1.setOrderStatus(Constant.ORDER_STS.STS40.getValue());
|
|
|
- int i = iWmsDocOrderHeaderService.updateWmsDocOrderHeader(wmsDocOrderHeader1);
|
|
|
- if (i >0) {
|
|
|
- if (sku.equals("Na2CO3")){
|
|
|
- wcsToWmsApiService.turnOffTheUnpacker();
|
|
|
- }
|
|
|
- if (sku.equals("C5H10OS2")){
|
|
|
- wcsToWmsApiService.turnOffTheUnpacker1();
|
|
|
- }
|
|
|
- if (sku.equals("(NaPO3)6")){
|
|
|
- wcsToWmsApiService.turnOffTheUnpacker2();
|
|
|
- }
|
|
|
- if (sku.equals("(NH4)2SO4")){
|
|
|
- wcsToWmsApiService.turnOffTheUnpacker3();
|
|
|
- }
|
|
|
- if (sku.equals("CH3CH2OCS2Na")){
|
|
|
- wcsToWmsApiService.turnOffTheUnpacker4();
|
|
|
- }
|
|
|
- };
|
|
|
+ updateWmsDocOrderHeader(orderNo, sku);
|
|
|
return AjaxResult.success("");
|
|
|
}
|
|
|
|
|
|
+ private void updateWmsDocOrderHeader(String orderNo, String sku){
|
|
|
+ //修改 出库单单头40
|
|
|
+ WmsDocOrderHeader wmsDocOrderHeader = iWmsDocOrderHeaderService.selectWmsDocOrderHeaderByOrderNo(orderNo);
|
|
|
+ wmsDocOrderHeader.setOrderStatus(Constant.ORDER_STS.STS40.getValue());
|
|
|
+ iWmsDocOrderHeaderService.updateWmsDocOrderHeader(wmsDocOrderHeader);
|
|
|
+ if (sku.equals("Na2CO3")) {
|
|
|
+ wcsToWmsApiService.turnOffTheUnpacker();
|
|
|
+ } else if (sku.equals("C5H10OS2")) {
|
|
|
+ wcsToWmsApiService.turnOffTheUnpacker1();
|
|
|
+ } else if (sku.equals("(NaPO3)6")) {
|
|
|
+ wcsToWmsApiService.turnOffTheUnpacker2();
|
|
|
+ } else if (sku.equals("(NH4)2SO4")) {
|
|
|
+ wcsToWmsApiService.turnOffTheUnpacker3();
|
|
|
+ } else if (sku.equals("CH3CH2OCS2Na")) {
|
|
|
+ wcsToWmsApiService.turnOffTheUnpacker4();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 生成唯一任务号
|
|
|
*
|