1、添加无码收货的,功改了一半
This commit is contained in:
parent
d8f4368d20
commit
fc54a528e8
|
|
@ -8,12 +8,15 @@ import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.convert.Convert;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import cn.hutool.crypto.digest.DigestUtil;
|
||||||
|
import cn.hutool.crypto.digest.MD5;
|
||||||
import com.nflg.wms.admin.pojo.document.SrmMaterialReceiptNoScanCodes;
|
import com.nflg.wms.admin.pojo.document.SrmMaterialReceiptNoScanCodes;
|
||||||
import com.nflg.wms.admin.pojo.document.SrmMaterialReceiptScanCodes;
|
import com.nflg.wms.admin.pojo.document.SrmMaterialReceiptScanCodes;
|
||||||
import com.nflg.wms.admin.pojo.dto.QCMaterialSyncDTO;
|
import com.nflg.wms.admin.pojo.dto.QCMaterialSyncDTO;
|
||||||
import com.nflg.wms.admin.pojo.dto.ZWM3A17DTO;
|
import com.nflg.wms.admin.pojo.dto.ZWM3A17DTO;
|
||||||
import com.nflg.wms.admin.pojo.dto.ZWM3A17Item1DTO;
|
import com.nflg.wms.admin.pojo.dto.ZWM3A17Item1DTO;
|
||||||
import com.nflg.wms.admin.pojo.dto.ZWM3A17Item2DTO;
|
import com.nflg.wms.admin.pojo.dto.ZWM3A17Item2DTO;
|
||||||
|
import com.nflg.wms.admin.repository.SrmMaterialReceiptNoScanCodesRepository;
|
||||||
import com.nflg.wms.admin.repository.SrmMaterialReceiptScanCodesRepository;
|
import com.nflg.wms.admin.repository.SrmMaterialReceiptScanCodesRepository;
|
||||||
import com.nflg.wms.admin.service.NormalPGIControllerService;
|
import com.nflg.wms.admin.service.NormalPGIControllerService;
|
||||||
import com.nflg.wms.admin.service.SAPCommonService;
|
import com.nflg.wms.admin.service.SAPCommonService;
|
||||||
|
|
@ -69,6 +72,8 @@ public class NormalPGIController extends BaseController {
|
||||||
@Resource
|
@Resource
|
||||||
private SrmMaterialReceiptScanCodesRepository srmMaterialReceiptScanCodesRepository;
|
private SrmMaterialReceiptScanCodesRepository srmMaterialReceiptScanCodesRepository;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private SrmMaterialReceiptNoScanCodesRepository srmMaterialReceiptNoScanCodesRepository;
|
||||||
@Resource
|
@Resource
|
||||||
private IWmsPoReceiptService wmsPoReceiptService;
|
private IWmsPoReceiptService wmsPoReceiptService;
|
||||||
|
|
||||||
|
|
@ -690,6 +695,71 @@ public class NormalPGIController extends BaseController {
|
||||||
return ApiResult.success(list);
|
return ApiResult.success(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<SrmMaterialReceiptNoScanCodes> validateNoScanCodes(BarcodeLessReceivingVO item, SAPSyncParamsDTO materialInfoInOrder) {
|
||||||
|
String lbprt = materialInfoInOrder.getLbprt();
|
||||||
|
//判断序列号、批次号是否规范
|
||||||
|
// 1 - 批次号为空,序列号为空
|
||||||
|
// 2 - 批次号必填,序列号为空
|
||||||
|
// 3 - 批次号为空,序列号必填
|
||||||
|
// 4 - 批次号必填,序列号必填
|
||||||
|
if ("2".equals(lbprt) || "4".equals(lbprt)) {
|
||||||
|
VUtil.trueThrowBusinessError(StrUtil.isBlank(item.getBatchNumber())).throwMessage("此物料[" + item.getItemCode() + "]必须填写批次号,订单号:" + item.getPoNum());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if ("3".equals(lbprt) || "4".equals(lbprt)) {
|
||||||
|
VUtil.trueThrowBusinessError(StrUtil.isBlank(item.getSerialNumbers())).throwMessage("此物料[" + item.getItemCode() + "]必须填写批次号,订单号:" + item.getPoNum());
|
||||||
|
// 判断序列号的数量是否OK
|
||||||
|
Integer iQty = Convert.toInt(Math.ceil(item.getUnRecieveQty().doubleValue()));
|
||||||
|
Integer serialNumberCount = item.getSerialNumbers().split(",").length;
|
||||||
|
VUtil.trueThrowBusinessError(serialNumberCount < iQty).throwMessage("此物料[" + item.getItemCode() + "]的序列号数量不可以小于【" + iQty + "】个,订单号:" + item.getPoNum());
|
||||||
|
}
|
||||||
|
List<SrmMaterialReceiptNoScanCodes> srmMaterialReceiptScanCodes = new ArrayList<>();
|
||||||
|
List<String> codeIds = new ArrayList<>();
|
||||||
|
if (StrUtil.isBlank(item.getSerialNumbers())) {
|
||||||
|
String codeContent = item.getItemCode() + "&" + item.getPoNum() + "&" + item.getPoLineNumber() + "&" + item.getLineNumber()
|
||||||
|
+ "&" + item.getNoteNum() + "&" + item.getIuCode() + "&" + item.getSupplierNum() + "&" + item.getUnRecieveQty()
|
||||||
|
+ "&" + item.getUomCode() + "&" + item.getReceivedWarehouse() + "&" + item.getBatchNumber()
|
||||||
|
+ "&" + item.getSerialNumbers();
|
||||||
|
String codeId = DigestUtil.md5Hex(codeContent);
|
||||||
|
srmMaterialReceiptScanCodes.add(new SrmMaterialReceiptNoScanCodes()
|
||||||
|
.setCodeId(codeId)
|
||||||
|
.setOrderNo(item.getNoteNum())
|
||||||
|
.setOrderItemId(item.getId())
|
||||||
|
.setCodeNum(item.getUnRecieveQty())
|
||||||
|
.setSerialNumbers(item.getSerialNumbers())
|
||||||
|
.setCodeContent(codeContent)
|
||||||
|
.setIsIntoStorage(false));
|
||||||
|
codeIds.add(codeId);
|
||||||
|
// 21602
|
||||||
|
|
||||||
|
} else {
|
||||||
|
String[] serialNumbers = item.getSerialNumbers().split(",");
|
||||||
|
for (int i = 0; i < serialNumbers.length; i++) {
|
||||||
|
String codeContent = item.getItemCode() + "&" + item.getPoNum() + "&" + item.getPoLineNumber()
|
||||||
|
+ "&" + item.getLineNumber()
|
||||||
|
+ "&" + item.getNoteNum() + "&" + item.getIuCode() + "&" + item.getSupplierNum() + "&1"
|
||||||
|
+ "&" + item.getUomCode() + "&" + item.getReceivedWarehouse() + "&" + item.getBatchNumber()
|
||||||
|
+ "&" + serialNumbers[i];
|
||||||
|
String codeId = DigestUtil.md5Hex(codeContent);
|
||||||
|
srmMaterialReceiptScanCodes.add(new SrmMaterialReceiptNoScanCodes()
|
||||||
|
.setCodeId(codeId)
|
||||||
|
.setOrderNo(item.getNoteNum())
|
||||||
|
.setOrderItemId(item.getId())
|
||||||
|
.setCodeNum(new BigDecimal(1))
|
||||||
|
.setSerialNumbers(item.getSerialNumbers())
|
||||||
|
.setCodeContent(codeContent)
|
||||||
|
.setIsIntoStorage(false));
|
||||||
|
codeIds.add(codeId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//查看是否有重复的条码
|
||||||
|
|
||||||
|
List<SrmMaterialReceiptNoScanCodes> existingCodes = srmMaterialReceiptNoScanCodesRepository.findByCodeIdIn(codeIds);
|
||||||
|
VUtil.trueThrowBusinessError(CollectionUtil.isNotEmpty(existingCodes)).throwMessage("存在已使用的条码,不能重复使用");
|
||||||
|
|
||||||
|
return srmMaterialReceiptScanCodes;
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping("takeDeliveryByNoScan")
|
@PostMapping("takeDeliveryByNoScan")
|
||||||
@ApiMark(moduleName = "送货单管理", apiName = "一键收货")
|
@ApiMark(moduleName = "送货单管理", apiName = "一键收货")
|
||||||
|
|
@ -739,52 +809,12 @@ public class NormalPGIController extends BaseController {
|
||||||
VUtil.trueThrowBusinessError(item.getUnRecieveQty().compareTo(materialInfoInOrder.getTransportNum()) > 0)
|
VUtil.trueThrowBusinessError(item.getUnRecieveQty().compareTo(materialInfoInOrder.getTransportNum()) > 0)
|
||||||
.throwMessage("物料收货数量[" + item.getUnRecieveQty() + "]大于了未收数量[" + materialInfoInOrder.getTransportNum() + "],订单号:" + item.getPoNum());
|
.throwMessage("物料收货数量[" + item.getUnRecieveQty() + "]大于了未收数量[" + materialInfoInOrder.getTransportNum() + "],订单号:" + item.getPoNum());
|
||||||
//序列号和批次号验证
|
//序列号和批次号验证
|
||||||
//---------------------------------
|
List<SrmMaterialReceiptNoScanCodes> itemCodes = validateNoScanCodes(item, materialInfoInOrder)
|
||||||
String lbprt = materialInfoInOrder.getLbprt();
|
if (CollectionUtil.isNotEmpty(itemCodes)) {
|
||||||
//判断序列号、批次号是否规范
|
codes.addAll(itemCodes);
|
||||||
// 1 - 批次号为空,序列号为空
|
|
||||||
// 2 - 批次号必填,序列号为空
|
|
||||||
// 3 - 批次号为空,序列号必填
|
|
||||||
// 4 - 批次号必填,序列号必填
|
|
||||||
if ("2".equals(lbprt) || "4".equals(lbprt)) {
|
|
||||||
VUtil.trueThrowBusinessError(StrUtil.isBlank(item.getBatchNumber())).throwMessage("此物料[" + item.getItemCode() + "]必须填写批次号,订单号:" + item.getPoNum());
|
|
||||||
}
|
}
|
||||||
|
//------------------------------- 条码高点个都是法师打发手动阀手动阀手打
|
||||||
|
asfdasdfasdf
|
||||||
if ("3".equals(lbprt) || "4".equals(lbprt)) {
|
|
||||||
Integer serialNumbers = item.getUnRecieveQty()
|
|
||||||
VUtil.trueThrowBusinessError(
|
|
||||||
StrUtil.isBlank(item.getSerialNumbers())
|
|
||||||
|
|
||||||
).throwMessage("此物料[" + item.getItemCode() + "]必须填写序列号,订单号:" + item.getPoNum());
|
|
||||||
|
|
||||||
}
|
|
||||||
List<SrmMaterialReceiptScanCodes> srmMaterialReceiptScanCodes = new ArrayList<>();
|
|
||||||
List<String> codeIds = new ArrayList<>();
|
|
||||||
for (PDAScanCodeQO scanCode : item.getScanCodes()) {
|
|
||||||
VUtil.trueThrowBusinessError(codeIds.contains(scanCode.getCodeId())).throwMessage("此物料[" + item.getItemCode() + "]中存在重复的条码" + scanCode.getCodeId());
|
|
||||||
codeIds.add(scanCode.getCodeId());
|
|
||||||
srmMaterialReceiptScanCodes.add(
|
|
||||||
new SrmMaterialReceiptScanCodes()
|
|
||||||
.setOrderItemId(item.getId())
|
|
||||||
.setOrderNo(item.getNoteNum())
|
|
||||||
.setCodeId(scanCode.getCodeId())
|
|
||||||
.setCodeNum(scanCode.getCodeNum())
|
|
||||||
.setBatchNumber(scanCode.getBatchNumber())
|
|
||||||
.setSerialNumbers(scanCode.getSerialNumbers())
|
|
||||||
.setIsIntoStorage(false)
|
|
||||||
.setCodeContent(scanCode.getCodeContent()));
|
|
||||||
}
|
|
||||||
//查看是否有重复的条码
|
|
||||||
|
|
||||||
List<SrmMaterialReceiptScanCodes> existingCodes = srmMaterialReceiptCanCodesRepository.findByCodeIdIn(codeIds);
|
|
||||||
VUtil.trueThrowBusinessError(CollectionUtil.isNotEmpty(existingCodes)).throwMessage("存在已使用的条码,不能重复使用");
|
|
||||||
|
|
||||||
return srmMaterialReceiptScanCodes;
|
|
||||||
|
|
||||||
//-------------------------
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
WmsSrmOrder order = wmsSrmOrderService.lambdaQuery().eq(WmsSrmOrder::getNoteNum, request.get(0).getNoteNum()).one();
|
WmsSrmOrder order = wmsSrmOrderService.lambdaQuery().eq(WmsSrmOrder::getNoteNum, request.get(0).getNoteNum()).one();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue