|
|
|
|
@@ -2,6 +2,7 @@ package com.ruoyi.api.service.impl;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
import cn.hutool.core.convert.Convert;
|
|
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
|
|
import cn.hutool.core.util.ObjUtil;
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
|
import com.ruoyi.api.domain.ReMaterialParam;
|
|
|
|
|
@@ -107,8 +108,8 @@ public class ToWmsServiceImpl implements IToWmsService {
|
|
|
|
|
String v = split[3].substring(2);
|
|
|
|
|
String hz = split[4].substring(3);
|
|
|
|
|
String ph = split[5].substring(3);
|
|
|
|
|
String nw = split[6].substring(5, split[6].length() - 2);
|
|
|
|
|
String gw = split[7].substring(5, split[7].length() - 2);
|
|
|
|
|
String nw = split[6].substring(5);
|
|
|
|
|
String gw = split[7].substring(5);
|
|
|
|
|
String productId = split[8].substring(10);
|
|
|
|
|
String bm = split[9].substring(2, split[9].length() - 1);
|
|
|
|
|
String[] decode = ProcodeUtils.decode(bm);
|
|
|
|
|
@@ -152,161 +153,125 @@ public class ToWmsServiceImpl implements IToWmsService {
|
|
|
|
|
String inStockId = null;
|
|
|
|
|
String inStockDetailId = null;
|
|
|
|
|
if ("1".equals(requestEnter.getFloor())) {
|
|
|
|
|
//需要区分是回流任务还是入库任务
|
|
|
|
|
MydoJob hlMydoJobParam = new MydoJob();
|
|
|
|
|
hlMydoJobParam.setEntranceId(requestEnter.getEntranceId());
|
|
|
|
|
hlMydoJobParam.setInOut("5");
|
|
|
|
|
MydoJob hlMydoJob = mydoJobService.selectMydoJobByEntranceId(hlMydoJobParam);
|
|
|
|
|
if (ObjUtil.isNull(hlMydoJob)){
|
|
|
|
|
//一楼入库 其它入库 和 退料入库 存在单据,需要修改单据数量
|
|
|
|
|
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 = "5";
|
|
|
|
|
//一楼入库 其它入库 和 退料入库 存在单据,需要修改单据数量
|
|
|
|
|
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";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ("5".equals(inOrOutType)){
|
|
|
|
|
MydoJob hlMydoJobParam = new MydoJob();
|
|
|
|
|
hlMydoJobParam.setEntranceId(requestEnter.getEntranceId());
|
|
|
|
|
hlMydoJobParam.setInOut("5");
|
|
|
|
|
MydoJob hlMydoJob = mydoJobService.selectMydoJobByEntranceId(hlMydoJobParam);
|
|
|
|
|
|
|
|
|
|
//根据巷道查找货位
|
|
|
|
|
BasCargoSpace basCargoSpaceParam = new BasCargoSpace();
|
|
|
|
|
basCargoSpaceParam.setWarehouseId(hlMydoJob.getWarehouseId());
|
|
|
|
|
basCargoSpaceParam.setRoadwayId(hlMydoJob.getRoadwayId());
|
|
|
|
|
BasCargoSpace basCargoSpace = basCargoSpaceService.selectEmptyCargoSpaceByWarehouseId(basCargoSpaceParam);
|
|
|
|
|
if (ObjUtil.isNull(basCargoSpace)) {
|
|
|
|
|
return new AjaxResult(5, "没有货位");
|
|
|
|
|
//生成作业
|
|
|
|
|
MydoJob mydoJob = new MydoJob();
|
|
|
|
|
mydoJob.setStatus("1");
|
|
|
|
|
mydoJob.setInOrOut(inOrOutType);
|
|
|
|
|
mydoJob.setExecutionPhase("1");
|
|
|
|
|
mydoJob.setTrayCode(basJobIdService.getJobId("TP"));
|
|
|
|
|
mydoJob.setWarehouseId("01");
|
|
|
|
|
mydoJob.setRoadwayId(getRoadway(size));
|
|
|
|
|
mydoJob.setLineId(erpBill);
|
|
|
|
|
BasRoadway basRoadway = basRoadwayService.selectBasRoadwayById(mydoJob.getRoadwayId());
|
|
|
|
|
if ("1".equals(requestEnter.getFloor())) {
|
|
|
|
|
if ("Y".equals(basRoadway.getInLocked())) {
|
|
|
|
|
return new AjaxResult(6, "巷道已锁");
|
|
|
|
|
}
|
|
|
|
|
hlMydoJob.setCargoSpaceId(basCargoSpace.getCargoSpaceId());
|
|
|
|
|
mydoJobService.updateMydoJob(hlMydoJob);
|
|
|
|
|
//type=1是手持机调用
|
|
|
|
|
if(!"1".equals(requestEnter.getType())){
|
|
|
|
|
hlMydoJob.setStatus("3");
|
|
|
|
|
mydoJobService.updateMydoJob(hlMydoJob);
|
|
|
|
|
} else {
|
|
|
|
|
if ("Y".equals(basRoadway.getInLocked2())) {
|
|
|
|
|
return new AjaxResult(6, "巷道已锁");
|
|
|
|
|
}
|
|
|
|
|
//修改作业状态为正执行
|
|
|
|
|
result.put("jobId", hlMydoJob.getJobId());
|
|
|
|
|
result.put("taskNo", hlMydoJob.getTaskNo());
|
|
|
|
|
result.put("cargoSpaceId", hlMydoJob.getCargoSpaceId());
|
|
|
|
|
result.put("roadwayId", hlMydoJob.getRoadwayId());
|
|
|
|
|
result.put("entranceId", hlMydoJob.getEntranceId());
|
|
|
|
|
result.put("inOrOut", hlMydoJob.getInOrOut());
|
|
|
|
|
}else {
|
|
|
|
|
//生成作业
|
|
|
|
|
MydoJob mydoJob = new MydoJob();
|
|
|
|
|
mydoJob.setStatus("1");
|
|
|
|
|
mydoJob.setInOrOut(inOrOutType);
|
|
|
|
|
mydoJob.setExecutionPhase("1");
|
|
|
|
|
mydoJob.setTrayCode(basJobIdService.getJobId("TP"));
|
|
|
|
|
mydoJob.setWarehouseId("01");
|
|
|
|
|
mydoJob.setRoadwayId(getRoadway(size));
|
|
|
|
|
mydoJob.setLineId(erpBill);
|
|
|
|
|
BasRoadway basRoadway = basRoadwayService.selectBasRoadwayById(mydoJob.getRoadwayId());
|
|
|
|
|
if ("1".equals(requestEnter.getFloor())) {
|
|
|
|
|
if ("Y".equals(basRoadway.getInLocked())) {
|
|
|
|
|
return new AjaxResult(6, "巷道已锁");
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if ("Y".equals(basRoadway.getInLocked2())) {
|
|
|
|
|
return new AjaxResult(6, "巷道已锁");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//根据巷道查找货位
|
|
|
|
|
BasCargoSpace basCargoSpaceParam = new BasCargoSpace();
|
|
|
|
|
basCargoSpaceParam.setWarehouseId(mydoJob.getWarehouseId());
|
|
|
|
|
basCargoSpaceParam.setRoadwayId(mydoJob.getRoadwayId());
|
|
|
|
|
BasCargoSpace basCargoSpace = basCargoSpaceService.selectEmptyCargoSpaceByWarehouseId(basCargoSpaceParam);
|
|
|
|
|
if (ObjUtil.isNull(basCargoSpace)) {
|
|
|
|
|
return new AjaxResult(5, "没有货位");
|
|
|
|
|
}
|
|
|
|
|
mydoJob.setCargoSpaceId(basCargoSpace.getCargoSpaceId());
|
|
|
|
|
mydoJob.setEntranceId(requestEnter.getEntranceId());
|
|
|
|
|
mydoJobService.insertMydoJob(mydoJob);
|
|
|
|
|
|
|
|
|
|
//生成子作业
|
|
|
|
|
MydoJobDetail mydoJobDetail = new MydoJobDetail();
|
|
|
|
|
mydoJobDetail.setJobDetailId(mydoJob.getJobId() + "-1");
|
|
|
|
|
mydoJobDetail.setJobId(mydoJob.getJobId());
|
|
|
|
|
mydoJobDetail.setCreateTime(new Date());
|
|
|
|
|
mydoJobDetail.setProductGuid(basProduct.getProductGuid());
|
|
|
|
|
mydoJobDetail.setProductId(basProduct.getProductId());
|
|
|
|
|
mydoJobDetail.setInQuantity("1");
|
|
|
|
|
mydoJobDetail.setSpare1(xh);
|
|
|
|
|
mydoJobDetail.setSpare2(nw);
|
|
|
|
|
mydoJobDetail.setSpare3(color);
|
|
|
|
|
mydoJobDetail.setSpare4(xlh);
|
|
|
|
|
mydoJobDetail.setSpare5(v);
|
|
|
|
|
mydoJobDetail.setSpare6(hz);
|
|
|
|
|
mydoJobDetail.setSpare7(ph);
|
|
|
|
|
mydoJobDetail.setSpare8(gw);
|
|
|
|
|
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);
|
|
|
|
|
//type=1是手持机调用
|
|
|
|
|
if(!"1".equals(requestEnter.getType())){
|
|
|
|
|
mydoJob.setStatus("3");
|
|
|
|
|
mydoJobService.updateMydoJob(mydoJob);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ("1".equals(mydoJob.getInOrOut())) {
|
|
|
|
|
//生成调拨单
|
|
|
|
|
Map<String, String> saveTransferBill = toErpService.saveTransferBill();
|
|
|
|
|
if (!"200".equals(saveTransferBill.get("code"))) {
|
|
|
|
|
return AjaxResult.error("生成调拨单失败");
|
|
|
|
|
}
|
|
|
|
|
log.info("生成调拨单{}", saveTransferBill);
|
|
|
|
|
//存入调拨单数据 已生成
|
|
|
|
|
TransferBillCallback transferBillCallback = new TransferBillCallback();
|
|
|
|
|
transferBillCallback.setJobId(mydoJob.getJobId());
|
|
|
|
|
transferBillCallback.setErpBill(erpBill);
|
|
|
|
|
transferBillCallback.setType("1");
|
|
|
|
|
transferBillCallback.setStatus("1");
|
|
|
|
|
transferBillCallbackService.insertTransferBillCallback(transferBillCallback);
|
|
|
|
|
}
|
|
|
|
|
//修改作业状态为正执行
|
|
|
|
|
result.put("jobId", mydoJob.getJobId());
|
|
|
|
|
result.put("taskNo", mydoJob.getTaskNo());
|
|
|
|
|
result.put("cargoSpaceId", mydoJob.getCargoSpaceId());
|
|
|
|
|
result.put("roadwayId", mydoJob.getRoadwayId());
|
|
|
|
|
result.put("entranceId", mydoJob.getEntranceId());
|
|
|
|
|
result.put("inOrOut", mydoJob.getInOrOut());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//根据巷道查找货位
|
|
|
|
|
BasCargoSpace basCargoSpaceParam = new BasCargoSpace();
|
|
|
|
|
basCargoSpaceParam.setWarehouseId(mydoJob.getWarehouseId());
|
|
|
|
|
basCargoSpaceParam.setRoadwayId(mydoJob.getRoadwayId());
|
|
|
|
|
BasCargoSpace basCargoSpace = basCargoSpaceService.selectEmptyCargoSpaceByWarehouseId(basCargoSpaceParam);
|
|
|
|
|
if (ObjUtil.isNull(basCargoSpace)) {
|
|
|
|
|
return new AjaxResult(5, "没有货位");
|
|
|
|
|
}
|
|
|
|
|
mydoJob.setCargoSpaceId(basCargoSpace.getCargoSpaceId());
|
|
|
|
|
mydoJob.setEntranceId(requestEnter.getEntranceId());
|
|
|
|
|
mydoJobService.insertMydoJob(mydoJob);
|
|
|
|
|
|
|
|
|
|
//生成子作业
|
|
|
|
|
MydoJobDetail mydoJobDetail = new MydoJobDetail();
|
|
|
|
|
mydoJobDetail.setJobDetailId(mydoJob.getJobId() + "-1");
|
|
|
|
|
mydoJobDetail.setJobId(mydoJob.getJobId());
|
|
|
|
|
mydoJobDetail.setCreateTime(new Date());
|
|
|
|
|
mydoJobDetail.setProductGuid(basProduct.getProductGuid());
|
|
|
|
|
mydoJobDetail.setProductId(basProduct.getProductId());
|
|
|
|
|
mydoJobDetail.setInQuantity("1");
|
|
|
|
|
mydoJobDetail.setSpare1(xh);
|
|
|
|
|
mydoJobDetail.setSpare2(nw);
|
|
|
|
|
mydoJobDetail.setSpare3(color);
|
|
|
|
|
mydoJobDetail.setSpare4(xlh);
|
|
|
|
|
mydoJobDetail.setSpare5(v);
|
|
|
|
|
mydoJobDetail.setSpare6(hz);
|
|
|
|
|
mydoJobDetail.setSpare7(ph);
|
|
|
|
|
mydoJobDetail.setSpare8(gw);
|
|
|
|
|
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);
|
|
|
|
|
//type=1是手持机调用
|
|
|
|
|
if (!"1".equals(requestEnter.getType())) {
|
|
|
|
|
mydoJob.setStatus("3");
|
|
|
|
|
mydoJobService.updateMydoJob(mydoJob);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ("1".equals(mydoJob.getInOrOut())) {
|
|
|
|
|
//生成调拨单
|
|
|
|
|
Map<String, String> saveTransferBill = toErpService.saveTransferBill();
|
|
|
|
|
if (!"200".equals(saveTransferBill.get("code"))) {
|
|
|
|
|
return AjaxResult.error("生成调拨单失败");
|
|
|
|
|
}
|
|
|
|
|
log.info("生成调拨单{}", saveTransferBill);
|
|
|
|
|
//存入调拨单数据 已生成
|
|
|
|
|
TransferBillCallback transferBillCallback = new TransferBillCallback();
|
|
|
|
|
transferBillCallback.setJobId(mydoJob.getJobId());
|
|
|
|
|
transferBillCallback.setErpBill(erpBill);
|
|
|
|
|
transferBillCallback.setType("1");
|
|
|
|
|
transferBillCallback.setStatus("1");
|
|
|
|
|
transferBillCallbackService.insertTransferBillCallback(transferBillCallback);
|
|
|
|
|
}
|
|
|
|
|
//修改作业状态为正执行
|
|
|
|
|
result.put("jobId", mydoJob.getJobId());
|
|
|
|
|
result.put("taskNo", mydoJob.getTaskNo());
|
|
|
|
|
result.put("cargoSpaceId", mydoJob.getCargoSpaceId());
|
|
|
|
|
result.put("roadwayId", mydoJob.getRoadwayId());
|
|
|
|
|
result.put("entranceId", mydoJob.getEntranceId());
|
|
|
|
|
result.put("inOrOut", mydoJob.getInOrOut());
|
|
|
|
|
|
|
|
|
|
return AjaxResult.success(result);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -320,7 +285,6 @@ public class ToWmsServiceImpl implements IToWmsService {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* todo 根据包装方式 主要包装方式 描述 长 宽 高 包装材积获取大小
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
private int getSize(BasProduct basProduct) {
|
|
|
|
|
String remark = basProduct.getRemark();
|
|
|
|
|
@@ -337,7 +301,7 @@ public class ToWmsServiceImpl implements IToWmsService {
|
|
|
|
|
public AjaxResult selectMydoJobByEntranceId(RequestEnter requestEnter) {
|
|
|
|
|
MydoJob param = new MydoJob();
|
|
|
|
|
param.setStatus("1");
|
|
|
|
|
param.setEntranceId("G1005");
|
|
|
|
|
param.setEntranceId(requestEnter.getEntranceId());
|
|
|
|
|
MydoJob mydoJob = mydoJobService.selectMydoJobByEntranceId(param);
|
|
|
|
|
|
|
|
|
|
if (mydoJob != null && StrUtil.isNotEmpty(mydoJob.getTrayCode())) {
|
|
|
|
|
@@ -451,5 +415,93 @@ public class ToWmsServiceImpl implements IToWmsService {
|
|
|
|
|
return outStockoutService.autoAllot(stockOutId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public AjaxResult requestEnterByTrayCodeAndEntranceId(RequestEnter requestEnter) {
|
|
|
|
|
HashMap<String, String> result = new HashMap<>();
|
|
|
|
|
if (StrUtil.isEmpty(requestEnter.getTrayCode())) {
|
|
|
|
|
return AjaxResult.error("托盘条码不能为空");
|
|
|
|
|
}
|
|
|
|
|
log.info("扫码内容{}", requestEnter.getTrayCode());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//解析扫码内容
|
|
|
|
|
String trayCode = requestEnter.getTrayCode();
|
|
|
|
|
String[] split = trayCode.split(" ");
|
|
|
|
|
String model = split[0].substring(6);
|
|
|
|
|
String color = split[1].substring(6);
|
|
|
|
|
String serial = split[2].substring(7);
|
|
|
|
|
String v = split[3].substring(2);
|
|
|
|
|
String hz = split[4].substring(3);
|
|
|
|
|
String ph = split[5].substring(3);
|
|
|
|
|
String nw = split[6].substring(5);
|
|
|
|
|
String gw = split[7].substring(5);
|
|
|
|
|
String productId = split[8].substring(10);
|
|
|
|
|
String bm = split[9].substring(2, split[9].length() - 1);
|
|
|
|
|
String[] decode = ProcodeUtils.decode(bm);
|
|
|
|
|
String erpBill = decode[0];
|
|
|
|
|
String xh = decode[1];
|
|
|
|
|
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);
|
|
|
|
|
for (String s : split) {
|
|
|
|
|
if (StrUtil.isEmpty(s)) {
|
|
|
|
|
return new AjaxResult(1, "二维码内容错误");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MydoJob param = new MydoJob();
|
|
|
|
|
param.setStatus("1");
|
|
|
|
|
param.setEntranceId(requestEnter.getEntranceId());
|
|
|
|
|
param.setLineId(erpBill);
|
|
|
|
|
MydoJob mydoJob = mydoJobService.selectMydoJobByEntranceId(param);
|
|
|
|
|
|
|
|
|
|
MydoJobDetail mydoJobDetailParam = new MydoJobDetail();
|
|
|
|
|
mydoJobDetailParam.setJobId(mydoJob.getJobId());
|
|
|
|
|
mydoJobDetailParam.setProductId(productId);
|
|
|
|
|
List<MydoJobDetail> mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(mydoJobDetailParam);
|
|
|
|
|
if (mydoJobDetails.isEmpty()){
|
|
|
|
|
return new AjaxResult(1, "该任务没有该物料");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//查询物料信息
|
|
|
|
|
BasProduct basProductParam = new BasProduct();
|
|
|
|
|
basProductParam.setProductId(productId);
|
|
|
|
|
List<BasProduct> basProducts = basProductService.selectBasProductList(basProductParam);
|
|
|
|
|
if (CollUtil.isEmpty(basProducts)) {
|
|
|
|
|
return new AjaxResult(2, "物料不存在");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BasProduct basProduct = basProducts.get(0);
|
|
|
|
|
|
|
|
|
|
//根据包装方式 主要包装方式 描述 长 宽 高 包装材积
|
|
|
|
|
int size = getSize(basProduct);
|
|
|
|
|
|
|
|
|
|
//超大托盘不处理 直接返回
|
|
|
|
|
if (size == 5) {
|
|
|
|
|
return new AjaxResult(3, "超大托盘");
|
|
|
|
|
}
|
|
|
|
|
//托盘大小与电气返回不匹配
|
|
|
|
|
|
|
|
|
|
if (StrUtil.isNotBlank(requestEnter.getSize()) && !"1".equals(requestEnter.getType()) && size != Integer.parseInt(requestEnter.getSize())) {
|
|
|
|
|
return new AjaxResult(4, "托盘大小不匹配");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//修改作业状态为正执行
|
|
|
|
|
result.put("jobId", mydoJob.getJobId());
|
|
|
|
|
result.put("taskNo", mydoJob.getTaskNo());
|
|
|
|
|
result.put("cargoSpaceId", mydoJob.getCargoSpaceId());
|
|
|
|
|
result.put("roadwayId", mydoJob.getRoadwayId());
|
|
|
|
|
result.put("entranceId", mydoJob.getEntranceId());
|
|
|
|
|
result.put("inOrOut", mydoJob.getInOrOut());
|
|
|
|
|
|
|
|
|
|
mydoJob.setStatus("3");
|
|
|
|
|
mydoJob.setStartTime(DateUtil.formatDateTime(new Date()));
|
|
|
|
|
mydoJobService.updateMydoJob(mydoJob);
|
|
|
|
|
return AjaxResult.success(result);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|