盘点入库任务逻辑修改
This commit is contained in:
@@ -43,7 +43,7 @@ public class ToWmsApiController {
|
||||
* 请求补码作业
|
||||
*/
|
||||
@RequestMapping("/requestByNoTrayCode")
|
||||
public AjaxResult startSignal(@RequestBody RequestEnter requestEnter) {
|
||||
public AjaxResult requestByNoTrayCode(@RequestBody RequestEnter requestEnter) {
|
||||
AjaxResult ajaxResult = toWmsService.selectMydoJobByEntranceId(requestEnter);
|
||||
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(requestEnter), "请求补码作业",ajaxResult);
|
||||
requestLogService.insertRequestLog(requestLog);
|
||||
|
||||
@@ -38,5 +38,4 @@ public interface IToWmsService {
|
||||
* 取货无货,重新分配物料
|
||||
*/
|
||||
AjaxResult reMaterial(ReMaterialParam reMaterialParam);
|
||||
|
||||
}
|
||||
|
||||
@@ -89,16 +89,14 @@ public class ToWmsServiceImpl implements IToWmsService {
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public AjaxResult requestEnterByTrayCode(RequestEnter requestEnter) {
|
||||
|
||||
HashMap<String, String> result = new HashMap<>();
|
||||
|
||||
|
||||
if (StrUtil.isEmpty(requestEnter.getTrayCode())) {
|
||||
return AjaxResult.error("托盘条码不能为空");
|
||||
}
|
||||
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();
|
||||
@@ -154,118 +152,161 @@ public class ToWmsServiceImpl implements IToWmsService {
|
||||
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("单据不存在");
|
||||
//需要区分是回流任务还是入库任务
|
||||
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 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);
|
||||
|
||||
//生成作业
|
||||
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, "巷道已锁");
|
||||
//根据巷道查找货位
|
||||
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, "没有货位");
|
||||
}
|
||||
} else {
|
||||
if ("Y".equals(basRoadway.getInLocked2())) {
|
||||
return new AjaxResult(6, "巷道已锁");
|
||||
hlMydoJob.setCargoSpaceId(basCargoSpace.getCargoSpaceId());
|
||||
mydoJobService.updateMydoJob(hlMydoJob);
|
||||
//type=1是手持机调用
|
||||
if(!"1".equals(requestEnter.getType())){
|
||||
hlMydoJob.setStatus("3");
|
||||
mydoJobService.updateMydoJob(hlMydoJob);
|
||||
}
|
||||
//修改作业状态为正执行
|
||||
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);
|
||||
//根据巷道查找货位
|
||||
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);
|
||||
//生成子作业
|
||||
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);
|
||||
}
|
||||
//修改货位状态
|
||||
basCargoSpace.setStatus("3");
|
||||
basCargoSpaceService.updateBasCargoSpace(basCargoSpace);
|
||||
//type=1是手持机调用
|
||||
if(!"1".equals(requestEnter.getType())){
|
||||
mydoJob.setStatus("3");
|
||||
mydoJobService.updateMydoJob(mydoJob);
|
||||
}
|
||||
|
||||
if ("1".equals(mydoJob.getInOrOut())) {
|
||||
//存入调拨单数据 已生成
|
||||
TransferBillCallback transferBillCallback = new TransferBillCallback();
|
||||
transferBillCallback.setJobId(mydoJob.getJobId());
|
||||
transferBillCallback.setErpBill(erpBill);
|
||||
transferBillCallback.setType("1");
|
||||
transferBillCallback.setStatus("1");
|
||||
transferBillCallbackService.insertTransferBillCallback(transferBillCallback);
|
||||
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());
|
||||
}
|
||||
//修改作业状态为正执行
|
||||
HashMap<String, String> result = new HashMap<>();
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user