|
@@ -10,6 +10,7 @@ import com.ruoyi.ams.inv.domain.InvLotLocId;
|
|
|
import com.ruoyi.ams.inv.service.IInvLotLocIdService;
|
|
|
import com.ruoyi.ams.order.domain.WmsDocOrderDetails;
|
|
|
import com.ruoyi.ams.order.domain.WmsDocOrderHeader;
|
|
|
+import com.ruoyi.ams.order.mapper.WmsDocOrderHeaderMapper;
|
|
|
import com.ruoyi.ams.order.service.IWmsDocOrderDetailsService;
|
|
|
import com.ruoyi.ams.order.service.IWmsDocOrderHeaderService;
|
|
|
import com.ruoyi.ams.task.domain.WcsTask;
|
|
@@ -29,6 +30,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
+import java.util.Locale;
|
|
|
|
|
|
/**
|
|
|
* @author JWK
|
|
@@ -55,6 +57,8 @@ public class WcsTaskSubService {
|
|
|
private IWmsDocOrderHeaderService iWmsDocOrderHeaderService;
|
|
|
@Autowired
|
|
|
private WcsToWmsApiService wcsToWmsApiService;
|
|
|
+ @Autowired
|
|
|
+ private WmsDocOrderHeaderMapper wmsDocOrderHeaderMapper;
|
|
|
|
|
|
/**
|
|
|
* 增加四向车任务
|
|
@@ -140,6 +144,31 @@ public class WcsTaskSubService {
|
|
|
return AjaxResult.error("任务增加失败");
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 增加越库任务
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public AjaxResult addCrossDatabaseTasks(String asnNo) {
|
|
|
+
|
|
|
+ String taskNo = generateTaskNo();
|
|
|
+ WcsTask wcsTask = new WcsTask();
|
|
|
+ wcsTask.setTaskNo(taskNo);
|
|
|
+ wcsTask.setState(10L);
|
|
|
+ wcsTask.setTaskType(Constant.TASK_TYPE.FORWARD.getValue());
|
|
|
+ wcsTask.setBusinessType("01");
|
|
|
+ wcsTask.setCreateTime(new Date());
|
|
|
+ wcsTask.setCreateBy("Wcs");
|
|
|
+ wcsTask.setShopId(Constant.WAREHOUSE_ID.toString());
|
|
|
+ wcsTask.setPriority(10L);
|
|
|
+ wcsTask.setExt1(asnNo);
|
|
|
+ wcsTask.setRemark("立体库任务");
|
|
|
+ int i = iWcsTaskService.insertWcsTask(wcsTask);
|
|
|
+ if (i > 0) {
|
|
|
+ return AjaxResult.success(taskNo.toString());
|
|
|
+ }
|
|
|
+ return AjaxResult.error("任务增加失败");
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* wcs任务反馈
|
|
@@ -177,17 +206,25 @@ public class WcsTaskSubService {
|
|
|
return;
|
|
|
}
|
|
|
wcsTask.setEndTime(new Date());
|
|
|
- // 解锁库位
|
|
|
- iBaseLocationInfoService.unLockLocationStockStatus(Long.parseLong(wcsTask.getLocationFrom())
|
|
|
- , Long.parseLong(wcsTask.getLocationTo())
|
|
|
- , Constant.WAREHOUSE_ID, updateBy);
|
|
|
+ if (wcsTask.getExt2().equals("")){
|
|
|
+ completeTheCallbackYueKu(wcsTask);
|
|
|
+ return;
|
|
|
+ }
|
|
|
if (wcsTask.getExt1().startsWith("ASN")) {
|
|
|
+ // 解锁库位
|
|
|
+ iBaseLocationInfoService.unLockLocationStockStatus(Long.parseLong(wcsTask.getLocationFrom())
|
|
|
+ , Long.parseLong(wcsTask.getLocationTo())
|
|
|
+ , Constant.WAREHOUSE_ID, updateBy);
|
|
|
// 将起始点库存移动到终点库位
|
|
|
iWcsTaskService.moveStartingPointToDestination(wcsTask);
|
|
|
// 修改入库单收货数量
|
|
|
completeTheCallback(wcsTask);
|
|
|
}
|
|
|
if (wcsTask.getExt1().startsWith("SO")) {
|
|
|
+ // 解锁库位
|
|
|
+ iBaseLocationInfoService.unLockLocationStockStatus(Long.parseLong(wcsTask.getLocationFrom())
|
|
|
+ , Long.parseLong(wcsTask.getLocationTo())
|
|
|
+ , Constant.WAREHOUSE_ID, updateBy);
|
|
|
// 将起始点库存移动到终点库位
|
|
|
iWcsTaskService.moveStartingPointToDestinationout(wcsTask);
|
|
|
invLotLocIdService.adjLocationIsEmpty(wcsTask.getLocationFrom(), Constant.WAREHOUSE_ID, "Wcs");
|
|
@@ -309,6 +346,7 @@ public class WcsTaskSubService {
|
|
|
InvLotAtt invLotAtt = new InvLotAtt();
|
|
|
invLotAtt.setLotatt07(palletNo);
|
|
|
List<InvLotLocId> invLotLocIds = invLotLocIdService.queryInvByInvLotatt(invLotAtt);
|
|
|
+
|
|
|
for (InvLotLocId invLotLocId : invLotLocIds) {
|
|
|
BigDecimal qty = invLotLocId.getQty();
|
|
|
if (qty.compareTo(canQty) == 1) {
|
|
@@ -338,6 +376,7 @@ public class WcsTaskSubService {
|
|
|
list.get(0).setLineStatus(Constant.ASN_STS.STS30.getValue());
|
|
|
iWmsDocOrderDetailsService.updateWmsDocOrderDetails(list.get(0));
|
|
|
con1 = false;
|
|
|
+ con = false;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -347,11 +386,6 @@ public class WcsTaskSubService {
|
|
|
wmsDocOrderHeader.setOrderStatus(Constant.ORDER_STS.STS40.getValue());
|
|
|
int i = iWmsDocOrderHeaderService.updateWmsDocOrderHeader(wmsDocOrderHeader);
|
|
|
if (i >0) {
|
|
|
- try {
|
|
|
- Thread.sleep(5000);
|
|
|
- } catch (InterruptedException e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
if (sku.equals("Na2CO3")){
|
|
|
wcsToWmsApiService.turnOffTheUnpacker();
|
|
|
}
|
|
@@ -378,6 +412,65 @@ public class WcsTaskSubService {
|
|
|
return AjaxResult.success("");
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 越库完成后回调
|
|
|
+ *
|
|
|
+ * @param wcsTask
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public AjaxResult completeTheCallbackYueKu(WcsTask wcsTask) {
|
|
|
+
|
|
|
+ String asnNo = wcsTask.getExt1();
|
|
|
+
|
|
|
+ WmsDocAsnDetails wmsDocAsnDetails = iWmsDocAsnDetailsService.selectWmsDocAsnDetailsByAsnNoLineNo(asnNo, "1");
|
|
|
+ String sku = wmsDocAsnDetails.getSku();
|
|
|
+ //修改 入库单明细40
|
|
|
+ wmsDocAsnDetails.setLineStatus(Constant.ASN_STS.STS40.getValue());
|
|
|
+ wmsDocAsnDetails.setReceivedQty(wmsDocAsnDetails.getExpectedQty());
|
|
|
+ wmsDocAsnDetails.setReceivedQtyEach(wmsDocAsnDetails.getExpectedQty());
|
|
|
+ iWmsDocAsnDetailsService.updateWmsDocAsnDetails(wmsDocAsnDetails);
|
|
|
+ // 修改 入库单单头40
|
|
|
+ WmsDocAsnHeader wmsDocAsnHeader = iWmsDocAsnHeaderService.selectWmsDocAsnHeaderByAsnNo(asnNo);
|
|
|
+ wmsDocAsnHeader.setAsnStatus(Constant.ASN_STS.STS40.getValue());
|
|
|
+ iWmsDocAsnHeaderService.updateWmsDocAsnHeader(wmsDocAsnHeader);
|
|
|
+
|
|
|
+ //查询对应的出库单
|
|
|
+ WmsDocOrderHeader wmsDocOrderHeader = new WmsDocOrderHeader();
|
|
|
+ wmsDocOrderHeader.setSoReference2(asnNo);
|
|
|
+ List<WmsDocOrderHeader> wmsDocOrderHeaders = wmsDocOrderHeaderMapper.selectWmsDocOrderHeaderList2(wmsDocOrderHeader);
|
|
|
+ String orderNo = wmsDocOrderHeaders.get(0).getOrderNo();
|
|
|
+
|
|
|
+ //修改 出库单明细40
|
|
|
+ List<WmsDocOrderDetails> list = iWmsDocOrderDetailsService.selectWmsDocOrderDetailsByOrderNo(orderNo);
|
|
|
+ list.get(0).setLineStatus(Constant.ASN_STS.STS40.getValue());
|
|
|
+ list.get(0).setQtyAllocated(list.get(0).getQtyOrdered());
|
|
|
+ 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();
|
|
|
+ }
|
|
|
+ };
|
|
|
+ return AjaxResult.success("");
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 生成唯一任务号
|
|
|
*
|