Merge remote-tracking branch 'origin/uat-temp-nht-2504020000-3520' into uat-temp-wj-chongqingdaqu-prod-huaweiyun-for-cd2

uat-temp-wj-chongqingdaqu-prod-huaweiyun-for-cd2
王杰 2 months ago
commit b0f2c2cc61

@ -82,6 +82,23 @@ public class MesBoxingErrorProofingController {
}
}
@GetMapping("/do-second-scan")
@ApiOperation(value = "二次装箱扫描")
public ResultBean doSecondScan(MesPackageDetail mesPackageDetail) {
try {
ValidatorBean.checkNotNull(mesPackageDetail.getPackageNo(), "箱条码不能为空");
mesPackageDetail.setOrganizeCode(!StringUtils.isEmpty(mesPackageDetail.getOrganizeCode())?mesPackageDetail.getOrganizeCode():AuthUtil.getOrganizeCode());
ConvertBean.serviceModelInitialize(mesPackageDetail,!StringUtils.isEmpty(mesPackageDetail.getModifyUser())?mesPackageDetail.getModifyUser():AuthUtil.getSessionUser().getUserName());
return mesBoxingErrorProofingService.doScan(mesPackageDetail);
} catch (ImppBusiException imppException) {
return ResultBean.fail(imppException);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@PostMapping("/mes-package-details/saveAll")
@ApiOperation(value = "保存包装明细")

@ -149,7 +149,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
//校验包装条码信息
MesPackage mesPackage = getMesPackageAndCheck(mesPackageDetail.getPackageNo(), mesPackageDetail.getOrganizeCode());
//校验是否已关闭
if (CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == mesPackage.getIsSealed() ) {
if (CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == mesPackage.getIsSealed()) {
List<MesProduceSn> produceSnList = mesProduceSnExtService.getProduceSnList(mesPackageDetail.getOrganizeCode(), mesPackageDetail.getSerialNumber());
//1.查询包装明细是否包含此零件
List<MesPackingDefineDetails> defineDetails = getMesPackingDefineDetailsNew(mesPackageDetail.getOrganizeCode(), mesPackage.getPackageSn(), mesPackage.getPartNo());
@ -166,12 +166,12 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
//校验条码规则
MesPart mesPart = getMesPartNew(mesPackageDetail, mesPackage, packingDefine);
//包装规格明细
MesPackageDetail saveMesPackageDetail = getPackageDetail(mesPackageDetail, mesPart);
MesPackageDetail saveMesPackageDetail = getPackageDetail(mesPackageDetail, mesPart, packingDefine);
if (mesPackageDetail.getIsMemoryBoolean()) {
//保存包装明细
mesPackageDetailRDao.insert(saveMesPackageDetail);
//更新包装表
updateMesPackage(mesPackage, mesPackageDetail.getModifyUser(), 1d, false);
updateMesPackage(mesPackage, mesPackageDetail.getModifyUser(), 1d, false, packingDefine);
}
//缓存是否记忆开关
saveRedis(getKey(mesPackageDetail.getOrganizeCode(), mesPackageDetail.getModifyUser()),mesPackageDetail.getIsMemory());
@ -200,7 +200,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
mesPackageDetailRDao.saveAll(saveMesPackageDetailList);
int qty = saveMesPackageDetailList.size();
//更新包装表
updateMesPackage(mesPackage, userName, qty, false);
updateMesPackage(mesPackage, userName, qty, false, null);
}
if(mesPackage.getIsSealed() == CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()){
return ResultBean.success("当前箱条码已完成装箱,请扫描下一个箱条码!").setResultObject(mesPackage);
@ -227,7 +227,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
MesPcnException.throwMesBusiException("箱条码[%s]下不存在零件条码,不允许关箱,请检查数据!", mesPackage.getPackageNo());
}
//关箱
updateMesPackage(mesPackageDb, mesPackage.getModifyUser(), 0d, true);
updateMesPackage(mesPackageDb, mesPackage.getModifyUser(), 0d, true, null);
return ResultBean.success("关箱成功!");
} else {
if (CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue() == mesPackageDb.getIsSealed()) {
@ -294,31 +294,34 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
}
}
private MesPart getMesPart(MesPackageDetail mesPackageDetail, MesPackage mesPackage, MesPackingDefine packingDefine) {
//校验是否重复扫描
checkSerialNumber(mesPackageDetail);
//获取包装定义明细
List<MesPackingDefineDetails> defineDetails = getMesPackingDefineDetails(mesPackageDetail.getOrganizeCode(), mesPackage.getPackageSn());
//校验是否包含
// String partNo = getPartNo(mesPackageDetail, mesPackage, defineDetails);
//校验条码信息
String partNo = checkSn(mesPackageDetail, packingDefine, mesPackage, defineDetails);
//物料信息
return getPart(mesPackageDetail.getOrganizeCode(), partNo);
}
// private MesPart getMesPart(MesPackageDetail mesPackageDetail, MesPackage mesPackage, MesPackingDefine packingDefine) {
// //校验是否重复扫描
// checkSerialNumber(mesPackageDetail);
// //获取包装定义明细
// List<MesPackingDefineDetails> defineDetails = getMesPackingDefineDetails(mesPackageDetail.getOrganizeCode(), mesPackage.getPackageSn());
// //校验是否包含
//// String partNo = getPartNo(mesPackageDetail, mesPackage, defineDetails);
// //校验条码信息
// String partNo = checkSn(mesPackageDetail, packingDefine, mesPackage, defineDetails);
// //物料信息
// return getPart(mesPackageDetail.getOrganizeCode(), partNo);
// }
private MesPart getMesPartNew(MesPackageDetail mesPackageDetail, MesPackage mesPackage, MesPackingDefine packingDefine) {
//校验是否重复扫描
checkSerialNumber(mesPackageDetail);
checkSerialNumber(mesPackageDetail, packingDefine);
//校验条码信息
String partNo = checkSnNew(mesPackageDetail, packingDefine, mesPackage);
//物料信息
return getPart(mesPackageDetail.getOrganizeCode(), partNo);
}
private void checkSerialNumber(MesPackageDetail mesPackageDetail) {
private void checkSerialNumber(MesPackageDetail mesPackageDetail, MesPackingDefine packingDefine) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesPackageDetail.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(mesPackageDetail.getSerialNumber(), MesPcnExtConstWords.SERIAL_NUMBER, ddlPackBean);
if (Objects.equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(), packingDefine.getIsConfirmCheck())) {
DdlPreparedPack.getNumEqualPack(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(), "isSecondPack", ddlPackBean);
}
if (mesPackageDetailRDao.isExitByHql(ddlPackBean)) {
MesPcnException.throwMesBusiException("零件条码[%s]已装箱,请检查数据!", mesPackageDetail.getSerialNumber());
}
@ -387,13 +390,15 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
}
private void updateMesPackage(MesPackage mesPackage, String userName, double qty, boolean close) {
private void updateMesPackage(MesPackage mesPackage, String userName, double qty, boolean close, MesPackingDefine packingDefine) {
mesPackage.setQty(MathOperation.add(mesPackage.getQty(), qty));
if (mesPackage.getPackSpecQty() <= mesPackage.getQty() || close) {
mesPackage.setIsSealed(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
mesPackage.setLotNo(TimeTool.getToday());
//数据写入接口表回传wms
saveMesPackageResult(mesPackage, userName);
if (packingDefine == null || !Objects.equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(), packingDefine.getIsConfirmCheck())) {
saveMesPackageResult(mesPackage, userName);
}
}
ConvertBean.serviceModelUpdate(mesPackage, userName);
mesPackageRDao.update(mesPackage);
@ -418,7 +423,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
return mesPackageDetails;
}
private MesPackageDetail getPackageDetail(MesPackageDetail mesPackageDetail, MesPart mesPart) {
private MesPackageDetail getPackageDetail(MesPackageDetail mesPackageDetail, MesPart mesPart, MesPackingDefine packingDefine) {
MesPackageDetail saveMesPackageDetail = new MesPackageDetail();
saveMesPackageDetail.setPackageNo(mesPackageDetail.getPackageNo());
saveMesPackageDetail.setSerialNumber(mesPackageDetail.getSerialNumber());
@ -426,6 +431,11 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
saveMesPackageDetail.setPartName(mesPart.getPartName());
saveMesPackageDetail.setQty(1d);
saveMesPackageDetail.setOrganizeCode(mesPackageDetail.getOrganizeCode());
if (packingDefine != null && Objects.equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(), packingDefine.getIsConfirmCheck())) {
saveMesPackageDetail.setIsSecondPack(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
} else {
saveMesPackageDetail.setIsSecondPack(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
}
ConvertBean.serviceModelInitialize(saveMesPackageDetail, mesPackageDetail.getCreateUser());
return saveMesPackageDetail;
}

Loading…
Cancel
Save