|
|
|
|
@@ -9,6 +9,7 @@ import com.ruoyi.api.domain.ReMaterialParam;
|
|
|
|
|
import com.ruoyi.api.domain.RequestEnter;
|
|
|
|
|
import com.ruoyi.api.domain.RequestEnterResponse;
|
|
|
|
|
import com.ruoyi.api.domain.WmsJobRequest;
|
|
|
|
|
import com.ruoyi.api.service.IToErpService;
|
|
|
|
|
import com.ruoyi.api.service.IToWmsService;
|
|
|
|
|
import com.ruoyi.bas.BasProduct.domain.BasProduct;
|
|
|
|
|
import com.ruoyi.bas.BasProduct.service.IBasProductService;
|
|
|
|
|
@@ -27,6 +28,8 @@ import com.ruoyi.common.utils.MessageUtils;
|
|
|
|
|
import com.ruoyi.common.utils.SecurityUtils;
|
|
|
|
|
import com.ruoyi.device.agv.domain.AgvContainerTask;
|
|
|
|
|
import com.ruoyi.device.agv.service.IAgvContainerTaskService;
|
|
|
|
|
import com.ruoyi.in.erp.domain.TransferBillCallback;
|
|
|
|
|
import com.ruoyi.in.erp.service.ITransferBillCallbackService;
|
|
|
|
|
import com.ruoyi.in.stockin.domain.InStockin;
|
|
|
|
|
import com.ruoyi.in.stockin.service.IInStockinService;
|
|
|
|
|
import com.ruoyi.in.stockindetail.domain.InStockinDetail;
|
|
|
|
|
@@ -40,6 +43,7 @@ import com.ruoyi.out.outStockoutDetail.service.IOutStockoutDetailService;
|
|
|
|
|
import com.ruoyi.out.tagTask.domain.TagTask;
|
|
|
|
|
import com.ruoyi.out.tagTask.service.ITagTaskService;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.aspectj.weaver.loadtime.Aj;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
@@ -77,6 +81,14 @@ public class ToWmsServiceImpl implements IToWmsService {
|
|
|
|
|
private IBasProductService basProductService;
|
|
|
|
|
@Autowired
|
|
|
|
|
private IBasJobIdService basJobIdService;
|
|
|
|
|
@Autowired
|
|
|
|
|
private IToErpService toErpService;
|
|
|
|
|
@Autowired
|
|
|
|
|
private ITransferBillCallbackService transferBillCallbackService;
|
|
|
|
|
@Autowired
|
|
|
|
|
private IInStockinService inStockinService;
|
|
|
|
|
@Autowired
|
|
|
|
|
private IInStockinDetailService inStockinDetailService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@@ -87,6 +99,13 @@ public class ToWmsServiceImpl implements IToWmsService {
|
|
|
|
|
}
|
|
|
|
|
log.info("扫码内容{}", requestEnter.getTrayCode());
|
|
|
|
|
|
|
|
|
|
//生成调拨单
|
|
|
|
|
Map<String, String> saveTransferBill = toErpService.saveTransferBill();
|
|
|
|
|
if (!"200".equals(saveTransferBill.get("code"))) {
|
|
|
|
|
return AjaxResult.error("生成调拨单失败");
|
|
|
|
|
}
|
|
|
|
|
log.info("生成调拨单{}", saveTransferBill);
|
|
|
|
|
|
|
|
|
|
//解析扫码内容
|
|
|
|
|
String trayCode = requestEnter.getTrayCode();
|
|
|
|
|
String[] split = trayCode.split(" ");
|
|
|
|
|
@@ -106,8 +125,9 @@ public class ToWmsServiceImpl implements IToWmsService {
|
|
|
|
|
String jx = decode[2];
|
|
|
|
|
String fx = decode[3];
|
|
|
|
|
String xlh = decode[4];
|
|
|
|
|
log.info("二维码详情 productId:{} model:{},color:{},serial:{},v:{},hz:{},ph:{},nw:{},gw:{},erpBill:{},xh:{},jx:{},fx:{},xlh:{}",productId, model, color, serial, v, hz, ph, nw, gw, erpBill, xh, jx, fx, xlh);
|
|
|
|
|
log.info("二维码详情 productId:{} model:{},color:{},serial:{},v:{},hz:{},ph:{},nw:{},gw:{},erpBill:{},xh:{},jx:{},fx:{},xlh:{}", productId, model, color, serial, v, hz, ph, nw, gw, erpBill, xh, jx, fx, xlh);
|
|
|
|
|
|
|
|
|
|
//查询物料信息
|
|
|
|
|
BasProduct basProductParam = new BasProduct();
|
|
|
|
|
basProductParam.setProductId(productId);
|
|
|
|
|
List<BasProduct> basProducts = basProductService.selectBasProductList(basProductParam);
|
|
|
|
|
@@ -115,20 +135,47 @@ public class ToWmsServiceImpl implements IToWmsService {
|
|
|
|
|
return AjaxResult.error("物料信息不存在");
|
|
|
|
|
}
|
|
|
|
|
BasProduct basProduct = basProducts.get(0);
|
|
|
|
|
/*if (!basProduct.getSpec().equals(requestEnter.getSize())) {
|
|
|
|
|
return AjaxResult.error("规格不一致");
|
|
|
|
|
}*/
|
|
|
|
|
String inOrOutType = null;
|
|
|
|
|
String inStockId = null;
|
|
|
|
|
String inStockDetailId = null;
|
|
|
|
|
if ("1".equals(requestEnter.getFloor())) {
|
|
|
|
|
//一楼入库 其它入库 和 退料入库 存在单据,需要修改单据数量
|
|
|
|
|
InStockin inStockinParam = new InStockin();
|
|
|
|
|
inStockinParam.setErpBill(erpBill);
|
|
|
|
|
List<InStockin> inStockins = inStockinService.selectInStockinListApi(inStockinParam);
|
|
|
|
|
if (CollUtil.isEmpty(inStockins)) {
|
|
|
|
|
return AjaxResult.error("单据不存在");
|
|
|
|
|
}
|
|
|
|
|
InStockin inStockin = inStockins.get(0);
|
|
|
|
|
if ("1".equals(inStockin.getStatus()) ||"2".equals(inStockin.getStatus())){
|
|
|
|
|
inStockin.setStatus("3");
|
|
|
|
|
inStockinService.updateInStockin(inStockin);
|
|
|
|
|
}
|
|
|
|
|
inOrOutType = inStockin.getInType();
|
|
|
|
|
inStockId = inStockin.getStockinId();
|
|
|
|
|
InStockinDetail inStockinDetailParam = new InStockinDetail();
|
|
|
|
|
inStockinDetailParam.setStockinId(inStockin.getStockinGuid());
|
|
|
|
|
inStockinDetailParam.setProductId(basProduct.getProductId());
|
|
|
|
|
List<InStockinDetail> inStockinDetails = inStockinDetailService.selectInStockinDetailList(inStockinDetailParam);
|
|
|
|
|
if (CollUtil.isEmpty(inStockinDetails)) {
|
|
|
|
|
return AjaxResult.error("单据明细不存在");
|
|
|
|
|
}
|
|
|
|
|
InStockinDetail inStockinDetail = inStockinDetails.get(0);
|
|
|
|
|
inStockDetailId = inStockinDetail.getStockinDetailId();
|
|
|
|
|
inStockinDetail.setScanNum(Convert.toStr(Convert.toBigDecimal(inStockinDetail.getScanNum()).add(Convert.toBigDecimal(1))));
|
|
|
|
|
inStockinDetailService.updateInStockinDetail(inStockinDetail);
|
|
|
|
|
} else {
|
|
|
|
|
inOrOutType = "1";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//生成作业
|
|
|
|
|
MydoJob mydoJob = new MydoJob();
|
|
|
|
|
mydoJob.setStatus("1");
|
|
|
|
|
//mydoJob.setDepartmentId(Convert.toStr(SecurityUtils.getDeptId()));
|
|
|
|
|
mydoJob.setInOrOut("1");
|
|
|
|
|
mydoJob.setInOrOut(inOrOutType);
|
|
|
|
|
mydoJob.setExecutionPhase("1");
|
|
|
|
|
mydoJob.setTrayCode(basJobIdService.getJobId("TP"));
|
|
|
|
|
mydoJob.setWarehouseId("01");
|
|
|
|
|
BasCargoSpace basCargoSpaceParam = new BasCargoSpace();
|
|
|
|
|
//todo 根据包装方式 主要包装方式 描述 长 宽 高 包装材积 判断巷道1 还是巷道2
|
|
|
|
|
switch (requestEnter.getSize()) {
|
|
|
|
|
case "1":
|
|
|
|
|
@@ -144,6 +191,7 @@ public class ToWmsServiceImpl implements IToWmsService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//根据巷道查找货位
|
|
|
|
|
BasCargoSpace basCargoSpaceParam = new BasCargoSpace();
|
|
|
|
|
basCargoSpaceParam.setWarehouseId(mydoJob.getWarehouseId());
|
|
|
|
|
basCargoSpaceParam.setRoadwayId(mydoJob.getRoadwayId());
|
|
|
|
|
BasCargoSpace basCargoSpace = basCargoSpaceService.selectEmptyCargoSpaceByWarehouseId(basCargoSpaceParam);
|
|
|
|
|
@@ -173,12 +221,24 @@ public class ToWmsServiceImpl implements IToWmsService {
|
|
|
|
|
mydoJobDetail.setSpare9(fx);
|
|
|
|
|
mydoJobDetail.setUnit(jx);
|
|
|
|
|
mydoJobDetail.setSpec(basProduct.getSpec());
|
|
|
|
|
mydoJobDetail.setInOrOutId(inStockId);
|
|
|
|
|
mydoJobDetail.setInOrOutDId(inStockDetailId);
|
|
|
|
|
mydoJobDetail.setStockinId(inStockId);
|
|
|
|
|
mydoJobDetailService.insertMydoJobDetail(mydoJobDetail);
|
|
|
|
|
|
|
|
|
|
//修改货位状态
|
|
|
|
|
basCargoSpace.setStatus("3");
|
|
|
|
|
basCargoSpaceService.updateBasCargoSpace(basCargoSpace);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//存入调拨单数据 已生成
|
|
|
|
|
TransferBillCallback transferBillCallback = new TransferBillCallback();
|
|
|
|
|
transferBillCallback.setJobId(mydoJob.getJobId());
|
|
|
|
|
transferBillCallback.setErpBill(erpBill);
|
|
|
|
|
transferBillCallback.setType("1");
|
|
|
|
|
transferBillCallback.setStatus("1");
|
|
|
|
|
transferBillCallbackService.insertTransferBillCallback(transferBillCallback);
|
|
|
|
|
|
|
|
|
|
return AjaxResult.success();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|