|
@@ -1,5 +1,12 @@
|
|
|
package com.ruoyi.ams.xuankuang.service;
|
|
|
|
|
|
+import com.ruoyi.ams.asn.domain.WmsDocAsnDetails;
|
|
|
+import com.ruoyi.ams.asn.domain.WmsDocAsnHeader;
|
|
|
+import com.ruoyi.ams.asn.service.IWmsDocAsnDetailsService;
|
|
|
+import com.ruoyi.ams.asn.service.IWmsDocAsnHeaderService;
|
|
|
+import com.ruoyi.ams.inv.domain.InvLotAtt;
|
|
|
+import com.ruoyi.ams.inv.domain.InvLotLocId;
|
|
|
+import com.ruoyi.ams.inv.service.IInvLotLocIdService;
|
|
|
import com.ruoyi.ams.task.domain.WcsTask;
|
|
|
import com.ruoyi.ams.task.service.IWcsTaskService;
|
|
|
import com.ruoyi.base.constant.Constant;
|
|
@@ -13,7 +20,9 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
|
|
|
/**
|
|
|
* @author JWK
|
|
@@ -28,6 +37,12 @@ public class WcsTaskSubService {
|
|
|
private IWcsTaskService iWcsTaskService;
|
|
|
@Autowired
|
|
|
private IBaseLocationInfoService iBaseLocationInfoService;
|
|
|
+ @Autowired
|
|
|
+ private IInvLotLocIdService invLotLocIdService;
|
|
|
+ @Autowired
|
|
|
+ private IWmsDocAsnDetailsService iWmsDocAsnDetailsService;
|
|
|
+ @Autowired
|
|
|
+ private IWmsDocAsnHeaderService iWmsDocAsnHeaderService;
|
|
|
|
|
|
|
|
|
/**
|
|
@@ -114,7 +129,7 @@ public class WcsTaskSubService {
|
|
|
, Constant.WAREHOUSE_ID, updateBy);
|
|
|
// 将起始点库存移动到终点库位
|
|
|
iWcsTaskService.moveStartingPointToDestination(wcsTask);
|
|
|
- // todo 修改入库单收货数量
|
|
|
+ // 修改入库单收货数量
|
|
|
completeTheCallback(wcsTask);
|
|
|
|
|
|
break;
|
|
@@ -159,10 +174,57 @@ public class WcsTaskSubService {
|
|
|
* @return
|
|
|
*/
|
|
|
public AjaxResult completeTheCallback(WcsTask wcsTask) {
|
|
|
- // 托盘号
|
|
|
- String ext1 = wcsTask.getExt1();
|
|
|
- // 入库单号
|
|
|
- String ext2 = wcsTask.getExt2();
|
|
|
+ boolean con = true;
|
|
|
+ boolean con1 = true;
|
|
|
+ String palletNo = wcsTask.getExt2();
|
|
|
+ String asnNo = wcsTask.getExt1();
|
|
|
+ WmsDocAsnDetails wmsDocAsnDetails = iWmsDocAsnDetailsService.selectWmsDocAsnDetailsByAsnNoLineNo(asnNo, "1");
|
|
|
+ BigDecimal expectedQty = wmsDocAsnDetails.getExpectedQty();
|
|
|
+ BigDecimal receivedQty = wmsDocAsnDetails.getReceivedQty();
|
|
|
+ BigDecimal canQty= expectedQty.subtract(receivedQty);
|
|
|
+ InvLotAtt invLotAtt = new InvLotAtt();
|
|
|
+ invLotAtt.setLotatt07(palletNo);
|
|
|
+ List<InvLotLocId> invLotLocIds = invLotLocIdService.queryInvByInvLotatt(invLotAtt);
|
|
|
+ for (InvLotLocId invLotLocId:invLotLocIds) {
|
|
|
+ BigDecimal qty = invLotLocId.getQty();
|
|
|
+ if (qty.compareTo(expectedQty) == 1){
|
|
|
+ continue;
|
|
|
+ }else if ( qty.compareTo(expectedQty) == 0){
|
|
|
+ wmsDocAsnDetails.setReceivedQty(qty);
|
|
|
+ int i = iWmsDocAsnDetailsService.updateWmsDocAsnDetails(wmsDocAsnDetails);
|
|
|
+ if ( i > 0){
|
|
|
+ wmsDocAsnDetails.setLineStatus(Constant.ASN_STS.STS40.getValue());
|
|
|
+ iWmsDocAsnDetailsService.updateWmsDocAsnDetails(wmsDocAsnDetails);
|
|
|
+ }else {
|
|
|
+ con = false;
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }else if (qty.compareTo(expectedQty) == -1){
|
|
|
+ wmsDocAsnDetails.setReceivedQty(qty);
|
|
|
+ expectedQty = canQty;
|
|
|
+ int i = iWmsDocAsnDetailsService.updateWmsDocAsnDetails(wmsDocAsnDetails);
|
|
|
+ if ( i > 0){
|
|
|
+ wmsDocAsnDetails.setLineStatus(Constant.ASN_STS.STS30.getValue());
|
|
|
+ iWmsDocAsnDetailsService.updateWmsDocAsnDetails(wmsDocAsnDetails);
|
|
|
+ con1 = false;
|
|
|
+ }else {
|
|
|
+ con = false;
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (con == true) {
|
|
|
+ WmsDocAsnHeader wmsDocAsnHeader = iWmsDocAsnHeaderService.selectWmsDocAsnHeaderByAsnNo(asnNo);
|
|
|
+ // 修改 单头40
|
|
|
+ wmsDocAsnHeader.setAsnStatus(Constant.ASN_STS.STS40.getValue());
|
|
|
+ iWmsDocAsnHeaderService.updateWmsDocAsnHeader(wmsDocAsnHeader);
|
|
|
+ }
|
|
|
+ if (con1 == false) {
|
|
|
+ WmsDocAsnHeader wmsDocAsnHeader = iWmsDocAsnHeaderService.selectWmsDocAsnHeaderByAsnNo(asnNo);
|
|
|
+ // 修改 单头30
|
|
|
+ wmsDocAsnHeader.setAsnStatus(Constant.ASN_STS.STS30.getValue());
|
|
|
+ iWmsDocAsnHeaderService.updateWmsDocAsnHeader(wmsDocAsnHeader);
|
|
|
+ }
|
|
|
return AjaxResult.success("");
|
|
|
}
|
|
|
}
|