请求入库
This commit is contained in:
@@ -96,7 +96,6 @@ public class ToWmsServiceImpl implements IToWmsService {
|
|||||||
return AjaxResult.error("托盘条码不能为空");
|
return AjaxResult.error("托盘条码不能为空");
|
||||||
}
|
}
|
||||||
log.info("扫码内容{}", requestEnter.getTrayCode());
|
log.info("扫码内容{}", requestEnter.getTrayCode());
|
||||||
|
|
||||||
//生成调拨单
|
//生成调拨单
|
||||||
Map<String, String> saveTransferBill = toErpService.saveTransferBill();
|
Map<String, String> saveTransferBill = toErpService.saveTransferBill();
|
||||||
if (!"200".equals(saveTransferBill.get("code"))) {
|
if (!"200".equals(saveTransferBill.get("code"))) {
|
||||||
@@ -104,26 +103,31 @@ public class ToWmsServiceImpl implements IToWmsService {
|
|||||||
}
|
}
|
||||||
log.info("生成调拨单{}", saveTransferBill);
|
log.info("生成调拨单{}", saveTransferBill);
|
||||||
|
|
||||||
//解析扫码内容
|
//解析扫码内容
|
||||||
String trayCode = requestEnter.getTrayCode();
|
String trayCode = requestEnter.getTrayCode();
|
||||||
String[] split = trayCode.split(" ");
|
String[] split = trayCode.split(" ");
|
||||||
String model = split[0].substring(6);
|
String model = split[0].substring(6);
|
||||||
String color = split[1].substring(6);
|
String color = split[1].substring(6);
|
||||||
String serial = split[2].substring(7);
|
String serial = split[2].substring(7);
|
||||||
String v = split[3].substring(2);
|
String v = split[3].substring(2);
|
||||||
String hz = split[4].substring(3);
|
String hz = split[4].substring(3);
|
||||||
String ph = split[5].substring(3);
|
String ph = split[5].substring(3);
|
||||||
String nw = split[6].substring(5, split[6].length() - 2);
|
String nw = split[6].substring(5, split[6].length() - 2);
|
||||||
String gw = split[7].substring(5, split[7].length() - 2);
|
String gw = split[7].substring(5, split[7].length() - 2);
|
||||||
String productId = split[8].substring(10);
|
String productId = split[8].substring(10);
|
||||||
String bm = split[9].substring(2, split[9].length() - 1);
|
String bm = split[9].substring(2, split[9].length() - 1);
|
||||||
String[] decode = ProcodeUtils.decode(bm);
|
String[] decode = ProcodeUtils.decode(bm);
|
||||||
String erpBill = decode[0];
|
String erpBill = decode[0];
|
||||||
String xh = decode[1];
|
String xh = decode[1];
|
||||||
String jx = decode[2];
|
String jx = decode[2];
|
||||||
String fx = decode[3];
|
String fx = decode[3];
|
||||||
String xlh = decode[4];
|
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);
|
||||||
|
for (String s : split) {
|
||||||
|
if (StrUtil.isEmpty(s)){
|
||||||
|
return new AjaxResult(503,"二维码内容错误");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//查询物料信息
|
//查询物料信息
|
||||||
BasProduct basProductParam = new BasProduct();
|
BasProduct basProductParam = new BasProduct();
|
||||||
@@ -132,7 +136,22 @@ public class ToWmsServiceImpl implements IToWmsService {
|
|||||||
if (CollUtil.isEmpty(basProducts)) {
|
if (CollUtil.isEmpty(basProducts)) {
|
||||||
return AjaxResult.error("物料信息不存在");
|
return AjaxResult.error("物料信息不存在");
|
||||||
}
|
}
|
||||||
|
|
||||||
BasProduct basProduct = basProducts.get(0);
|
BasProduct basProduct = basProducts.get(0);
|
||||||
|
|
||||||
|
//根据包装方式 主要包装方式 描述 长 宽 高 包装材积
|
||||||
|
int size = getSize(basProduct);
|
||||||
|
|
||||||
|
//超大托盘不处理 直接返回
|
||||||
|
if (size == 5){
|
||||||
|
return new AjaxResult(501,"超大托盘");
|
||||||
|
}
|
||||||
|
//托盘大小与电气返回不匹配
|
||||||
|
if (size != Integer.parseInt(requestEnter.getSize())){
|
||||||
|
return new AjaxResult(502,"托盘大小不匹配");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
String inOrOutType = null;
|
String inOrOutType = null;
|
||||||
String inStockId = null;
|
String inStockId = null;
|
||||||
String inStockDetailId = null;
|
String inStockDetailId = null;
|
||||||
@@ -174,20 +193,7 @@ public class ToWmsServiceImpl implements IToWmsService {
|
|||||||
mydoJob.setExecutionPhase("1");
|
mydoJob.setExecutionPhase("1");
|
||||||
mydoJob.setTrayCode(basJobIdService.getJobId("TP"));
|
mydoJob.setTrayCode(basJobIdService.getJobId("TP"));
|
||||||
mydoJob.setWarehouseId("01");
|
mydoJob.setWarehouseId("01");
|
||||||
//todo 根据包装方式 主要包装方式 描述 长 宽 高 包装材积 判断巷道1 还是巷道2
|
mydoJob.setRoadwayId(getRoadway(size));
|
||||||
switch (requestEnter.getSize()) {
|
|
||||||
case "1":
|
|
||||||
mydoJob.setRoadwayId("1");
|
|
||||||
break;
|
|
||||||
case "2":
|
|
||||||
mydoJob.setRoadwayId("2");
|
|
||||||
break;
|
|
||||||
case "4":
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
return AjaxResult.error("规格不存在");
|
|
||||||
}
|
|
||||||
|
|
||||||
//根据巷道查找货位
|
//根据巷道查找货位
|
||||||
BasCargoSpace basCargoSpaceParam = new BasCargoSpace();
|
BasCargoSpace basCargoSpaceParam = new BasCargoSpace();
|
||||||
basCargoSpaceParam.setWarehouseId(mydoJob.getWarehouseId());
|
basCargoSpaceParam.setWarehouseId(mydoJob.getWarehouseId());
|
||||||
@@ -238,7 +244,6 @@ public class ToWmsServiceImpl implements IToWmsService {
|
|||||||
transferBillCallbackService.insertTransferBillCallback(transferBillCallback);
|
transferBillCallbackService.insertTransferBillCallback(transferBillCallback);
|
||||||
}
|
}
|
||||||
//修改作业状态为正执行
|
//修改作业状态为正执行
|
||||||
|
|
||||||
HashMap<String,String> result = new HashMap<>();
|
HashMap<String,String> result = new HashMap<>();
|
||||||
result.put("jobId", mydoJob.getJobId());
|
result.put("jobId", mydoJob.getJobId());
|
||||||
result.put("taskNo", mydoJob.getTaskNo());
|
result.put("taskNo", mydoJob.getTaskNo());
|
||||||
@@ -248,34 +253,67 @@ public class ToWmsServiceImpl implements IToWmsService {
|
|||||||
return AjaxResult.success(result);
|
return AjaxResult.success(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String getRoadway(int size) {
|
||||||
|
return switch (size) {
|
||||||
|
case 1, 2 -> "1";
|
||||||
|
case 3, 4 -> "2";
|
||||||
|
default -> null;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* todo 根据包装方式 主要包装方式 描述 长 宽 高 包装材积获取大小
|
||||||
|
* @param basProduct
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private int getSize(BasProduct basProduct) {
|
||||||
|
String remark = basProduct.getRemark();
|
||||||
|
String packageType = basProduct.getSpare34();
|
||||||
|
String mainPackageType = basProduct.getSpare35();
|
||||||
|
String length = basProduct.getSpare36();
|
||||||
|
String width = basProduct.getSpare37();
|
||||||
|
String height = basProduct.getSpare38();
|
||||||
|
String volume = basProduct.getSpare39();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AjaxResult selectMydoJobByEntranceId(RequestEnter requestEnter) {
|
public AjaxResult selectMydoJobByEntranceId(RequestEnter requestEnter) {
|
||||||
MydoJob mydoJob = new MydoJob();
|
MydoJob param = new MydoJob();
|
||||||
mydoJob.setStatus("1");
|
param.setStatus("1");
|
||||||
mydoJob.setEntranceId("G1005");
|
param.setEntranceId("G1005");
|
||||||
MydoJob mydoJob2 = mydoJobService.selectMydoJobByEntranceId(mydoJob);
|
MydoJob mydoJob = mydoJobService.selectMydoJobByEntranceId(param);
|
||||||
|
|
||||||
if(mydoJob2 != null){
|
if(mydoJob != null && StrUtil.isNotEmpty(mydoJob.getTrayCode())){
|
||||||
//todo 根据包装方式 主要包装方式 描述 长 宽 高 包装材积 判断巷道1 还是巷道2
|
List<MydoJobDetail> mydoJobDetails = mydoJobDetailService.selectMydoJobDetailListByJobId(mydoJob.getJobId());
|
||||||
switch (requestEnter.getSize()) {
|
if (CollUtil.isEmpty(mydoJobDetails)) {
|
||||||
case "1":
|
return AjaxResult.error("没有任务");
|
||||||
mydoJob.setRoadwayId("1");
|
|
||||||
break;
|
|
||||||
case "2":
|
|
||||||
mydoJob.setRoadwayId("2");
|
|
||||||
break;
|
|
||||||
case "4":
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
return AjaxResult.error("规格不存在");
|
|
||||||
}
|
}
|
||||||
|
MydoJobDetail mydoJobDetail = mydoJobDetails.get(0);
|
||||||
|
String productId = mydoJobDetail.getProductId();
|
||||||
|
BasProduct basProduct = basProductService.selectBasProductByProductId(productId);
|
||||||
|
|
||||||
|
int size = getSize(basProduct);
|
||||||
|
//超大托盘不处理 直接返回
|
||||||
|
if (size == 5){
|
||||||
|
return new AjaxResult(501,"超大托盘");
|
||||||
|
}
|
||||||
|
//托盘大小与电气返回不匹配
|
||||||
|
if (size != Integer.parseInt(requestEnter.getSize())){
|
||||||
|
return new AjaxResult(502,"托盘大小不匹配");
|
||||||
|
}
|
||||||
|
|
||||||
|
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());
|
||||||
|
return AjaxResult.success(result);
|
||||||
|
|
||||||
|
}else {
|
||||||
|
return AjaxResult.error("没有任务");
|
||||||
}
|
}
|
||||||
//查子作业,查物料规格,判断是否对的上
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package com.ruoyi.check.difference.controller;
|
|||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.ruoyi.bas.basJobId.service.IBasJobIdService;
|
import com.ruoyi.bas.basJobId.service.IBasJobIdService;
|
||||||
|
import com.ruoyi.bas.cargoSpace.domain.BasCargoSpace;
|
||||||
|
import com.ruoyi.bas.cargoSpace.service.IBasCargoSpaceService;
|
||||||
import com.ruoyi.bas.warehouse.domain.BasWarehouse;
|
import com.ruoyi.bas.warehouse.domain.BasWarehouse;
|
||||||
import com.ruoyi.bas.warehouse.service.IBasWarehouseService;
|
import com.ruoyi.bas.warehouse.service.IBasWarehouseService;
|
||||||
import com.ruoyi.check.DifferenceRecordFinish.domain.CheckDifferenceRecordFinish;
|
import com.ruoyi.check.DifferenceRecordFinish.domain.CheckDifferenceRecordFinish;
|
||||||
@@ -43,6 +45,8 @@ public class CheckDifferenceRecordController extends BaseController {
|
|||||||
private ICheckDifferenceRecordService checkDifferenceRecordService;
|
private ICheckDifferenceRecordService checkDifferenceRecordService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IBasWarehouseService basWarehouseService;
|
private IBasWarehouseService basWarehouseService;
|
||||||
|
@Autowired
|
||||||
|
private IBasCargoSpaceService basCargoSpaceService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询盘点差异列表
|
* 查询盘点差异列表
|
||||||
@@ -159,7 +163,7 @@ public class CheckDifferenceRecordController extends BaseController {
|
|||||||
return AjaxResult.error(MessageUtils.message("error.message16"));
|
return AjaxResult.error(MessageUtils.message("error.message16"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 创建新的库存记录
|
//todo 创建新的库存记录
|
||||||
BasStock newStock = new BasStock();
|
BasStock newStock = new BasStock();
|
||||||
// 先设置必要字段
|
// 先设置必要字段
|
||||||
newStock.setTrayCode(record.getTrayCode());
|
newStock.setTrayCode(record.getTrayCode());
|
||||||
@@ -184,49 +188,15 @@ public class CheckDifferenceRecordController extends BaseController {
|
|||||||
newStock.setStockId(basJobIdService.getJobId("KC"));
|
newStock.setStockId(basJobIdService.getJobId("KC"));
|
||||||
basStockService.insertBasStock(newStock);
|
basStockService.insertBasStock(newStock);
|
||||||
|
|
||||||
//删除KTP库存
|
|
||||||
BasWarehouse basWarehouse = basWarehouseService.selectBasWarehouseByWarehouseId(record.getWarehouseId());
|
|
||||||
if ("1".equals(basWarehouse.getWarehouseType())||"2".equals(basWarehouse.getWarehouseType())){
|
|
||||||
//查询是否存在空料箱库存数
|
|
||||||
BasStock queryStock = new BasStock();
|
|
||||||
queryStock.setTrayCode(record.getTrayCode());
|
|
||||||
queryStock.setProductId("KTP0001");
|
|
||||||
List<BasStock> stocks = basStockService.selectBasStockList(queryStock);
|
|
||||||
if (!stocks.isEmpty()){
|
|
||||||
basStockService.deleteBasStockByStockId(stocks.get(0).getStockId());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if ("3".equals(recordType)) { // 删除数据
|
|
||||||
// 检查要删除的库存是否存在
|
|
||||||
BasStock queryStock = new BasStock();
|
|
||||||
queryStock.setStockId(record.getStockId());
|
|
||||||
//queryStock.setTrayCode(record.getTrayCode());
|
|
||||||
List<BasStock> stocks = basStockService.selectBasStockList(queryStock);
|
|
||||||
|
|
||||||
if (stocks.isEmpty()) {
|
|
||||||
log.error("要删除的库存不存在");
|
|
||||||
return AjaxResult.error(MessageUtils.message("error.message15"));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
} else if ("3".equals(recordType)) {
|
||||||
|
// 删除数据
|
||||||
basStockService.deleteBasStockByStockId(record.getStockId());
|
basStockService.deleteBasStockByStockId(record.getStockId());
|
||||||
|
// 修改货位状态
|
||||||
//查询该料箱是否存在库存 如果不存在 则创建空料箱库存
|
BasCargoSpace basCargoSpace = new BasCargoSpace();
|
||||||
BasStock queryStock2 = new BasStock();
|
basCargoSpace.setCargoSpaceId(record.getCargoSpaceId());
|
||||||
queryStock2.setTrayCode(record.getTrayCode());
|
basCargoSpace.setStatus("1");
|
||||||
List<BasStock> stocks2 = basStockService.selectBasStockList(queryStock2);
|
basCargoSpaceService.updateBasCargoSpace(basCargoSpace);
|
||||||
BasWarehouse basWarehouse = basWarehouseService.selectBasWarehouseByWarehouseId(record.getWarehouseId());
|
|
||||||
if (stocks2.isEmpty() && ("1".equals(basWarehouse.getWarehouseType()) || "2".equals(basWarehouse.getWarehouseType()))) {
|
|
||||||
BasStock basStock = stocks.get(0);
|
|
||||||
basStock.setProductId("KTP0001");
|
|
||||||
basStock.setProductGuid("KTP0001");
|
|
||||||
basStock.setQuantity("1");
|
|
||||||
basStock.setStockStatus("1");
|
|
||||||
basStock.setOutQuantity("0");
|
|
||||||
basStock.setProductStatus("1");
|
|
||||||
basStockService.insertBasStock(basStock);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 设置审核状态为已审核
|
// 设置审核状态为已审核
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ public class BasStockServiceImpl implements IBasStockService
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void insertMaintainRecord(BasStock oldStock, BasStock basStock, String operate) {
|
private void insertMaintainRecord(BasStock oldStock, BasStock basStock, String operate) {
|
||||||
if ((oldStock==null && operate.equals("1")) || !oldStock.getQuantity().equals(basStock.getQuantity())){
|
if (oldStock != null && !oldStock.getQuantity().equals(basStock.getQuantity())) {
|
||||||
BasStockMaintainRecord basStockMaintainRecord = new BasStockMaintainRecord();
|
BasStockMaintainRecord basStockMaintainRecord = new BasStockMaintainRecord();
|
||||||
basStockMaintainRecord.setWhGuid(IdUtil.fastSimpleUUID());
|
basStockMaintainRecord.setWhGuid(IdUtil.fastSimpleUUID());
|
||||||
basStockMaintainRecord.setStockId(basStock.getStockId());
|
basStockMaintainRecord.setStockId(basStock.getStockId());
|
||||||
@@ -95,7 +95,7 @@ public class BasStockServiceImpl implements IBasStockService
|
|||||||
basStockMaintainRecord.setProductGuid(basStock.getProductGuid());
|
basStockMaintainRecord.setProductGuid(basStock.getProductGuid());
|
||||||
basStockMaintainRecord.setCreateBy(SecurityUtils.getLoginUser().getUsername());
|
basStockMaintainRecord.setCreateBy(SecurityUtils.getLoginUser().getUsername());
|
||||||
basStockMaintainRecord.setCreateTime(new Date());
|
basStockMaintainRecord.setCreateTime(new Date());
|
||||||
basStockMaintainRecord.setOldQuantity(oldStock != null ? oldStock.getQuantity() : "0");
|
basStockMaintainRecord.setOldQuantity(oldStock.getQuantity());
|
||||||
basStockMaintainRecord.setQuantity(basStock.getQuantity());
|
basStockMaintainRecord.setQuantity(basStock.getQuantity());
|
||||||
basStockMaintainRecord.setProductId(basStock.getExtraField().getProductId());
|
basStockMaintainRecord.setProductId(basStock.getExtraField().getProductId());
|
||||||
basStockMaintainRecord.setProductName(basStock.getExtraField().getMaterialDesc());
|
basStockMaintainRecord.setProductName(basStock.getExtraField().getMaterialDesc());
|
||||||
|
|||||||
Reference in New Issue
Block a user