|
|
|
@ -406,7 +406,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
|
|
|
|
|
throw new ImppBusiException(String.format("【%s】此发运单不存在,请检查数据!", shippingOrderManagement.getShippingCode()));
|
|
|
|
|
}
|
|
|
|
|
//校验发运单状态 必须是未装车条码
|
|
|
|
|
if (!Stream.of(MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPING.getValue(),MesExtEnumUtil.SHIPPING_ORDER_STATUS.PUBLISHED.getValue()).collect(Collectors.toList()).contains(orderManagement.getStatus())) {
|
|
|
|
|
if (!Stream.of(MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPING.getValue(),MesExtEnumUtil.SHIPPING_ORDER_STATUS.PUBLISHED.getValue(),MesExtEnumUtil.SHIPPING_ORDER_STATUS.UNPACKING.getValue()).collect(Collectors.toList()).contains(orderManagement.getStatus())) {
|
|
|
|
|
throw new ImppBusiException(String.format("【%s】此发运单状态为【%s】,请选择状态为【%s】或【%s】状态的发运单,请检查数据!", shippingOrderManagement.getShippingCode(),
|
|
|
|
|
MesExtEnumUtil.SHIPPING_ORDER_STATUS.valueOfDescription(orderManagement.getStatus()),
|
|
|
|
|
MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPING.getDescription(), MesExtEnumUtil.SHIPPING_ORDER_STATUS.PUBLISHED.getDescription()));
|
|
|
|
@ -488,7 +488,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
|
|
|
|
|
//45550 PDA-MES-PDA发运扫描排序方式修改
|
|
|
|
|
List<MesConfig> shippingBusiSoftCfgList = mesConfigService.getConfigList(orderManagement.getOrganizeCode(),
|
|
|
|
|
MesCommonConstant.SHIPPING_BUSI_SOFT_CFG, mesPartShippingGroup.getShippingGroupCode(), null);
|
|
|
|
|
DdlPackBean orderDetailPackBean = DdlPackBean.getDdlPackBean(orderManagement.getOrganizeCode());
|
|
|
|
|
DdlPackBean orderDetailPackBean = DdlPackBean.getDdlPackBean(orderManagement.getOrganizeCode(), orderManagement.getStatus() == MesExtEnumUtil.SHIPPING_ORDER_STATUS.UNPACKING.getValue() ? CommonEnumUtil.IS_VAILD.INVAILD.getValue() : CommonEnumUtil.IS_VAILD.VAILD.getValue());
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(orderManagement.getId(), "pid", orderDetailPackBean);
|
|
|
|
|
DdlPreparedPack.getNumberSmallerPack(MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.CLOSE.getValue(),"status",orderDetailPackBean);
|
|
|
|
|
if (CollectionUtils.isEmpty(shippingBusiSoftCfgList)) {
|
|
|
|
@ -505,12 +505,14 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
|
|
|
|
|
if(CollectionUtils.isEmpty(detailList)){
|
|
|
|
|
throw new ImppBusiException(String.format("发运单【%s】明细信息不存在,请检查数据!", orderManagement.getShippingCode()));
|
|
|
|
|
}
|
|
|
|
|
//已扫描数据
|
|
|
|
|
detailList.forEach(k -> {
|
|
|
|
|
if (Stream.of(MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue(),MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.SKIP.getValue()).collect(Collectors.toList()).contains(k.getStatus())){
|
|
|
|
|
k.setIsScanFlg(MesCommonConstant.TRUE_INTEGER);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
if (orderManagement.getStatus() != MesExtEnumUtil.SHIPPING_ORDER_STATUS.UNPACKING.getValue()) {
|
|
|
|
|
//已扫描数据
|
|
|
|
|
detailList.forEach(k -> {
|
|
|
|
|
if (Stream.of(MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue(),MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.SKIP.getValue()).collect(Collectors.toList()).contains(k.getStatus())){
|
|
|
|
|
k.setIsScanFlg(MesCommonConstant.TRUE_INTEGER);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//序号,总成类型顺序
|
|
|
|
|
if(!Objects.isNull(mesPartShippingGroup.getScanSeqWay()) && !StringUtil.isEmpty(mesPartShippingGroup.getPartType()) && mesPartShippingGroup.getScanSeqWay() == MesExtEnumUtil.SHIPPING_GROUP_SCAN_CONFIRM_SEQ_MODE.SHIPPING_GROUP_SCAN_CONFIRM_SEQ_MODE_40.getValue()){
|
|
|
|
@ -643,9 +645,11 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void saveDate(MesShippingOrderManagement orderManagement, MesSortShippingCheckModel model, String organizeCode, String userInfo) {
|
|
|
|
|
boolean isUnpack = orderManagement.getStatus() == MesExtEnumUtil.SHIPPING_ORDER_STATUS.UNPACKING.getValue();
|
|
|
|
|
//若发运单状态为创建或发布 则写入开始扫描时间
|
|
|
|
|
if (orderManagement.getStatus() == MesExtEnumUtil.SHIPPING_ORDER_STATUS.CREATE.getValue() ||
|
|
|
|
|
orderManagement.getStatus() == MesExtEnumUtil.SHIPPING_ORDER_STATUS.PUBLISHED.getValue()) {
|
|
|
|
|
orderManagement.getStatus() == MesExtEnumUtil.SHIPPING_ORDER_STATUS.PUBLISHED.getValue() ||
|
|
|
|
|
orderManagement.getStatus() == MesExtEnumUtil.SHIPPING_ORDER_STATUS.UNPACKING.getValue()) {
|
|
|
|
|
orderManagement.setStartScanTime(TimeTool.getNowTime(true));
|
|
|
|
|
}
|
|
|
|
|
MesLoadingList loadingList = null;
|
|
|
|
@ -683,7 +687,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
|
|
|
|
|
orderManagement.setRackNo(model.getVolvoRackNo());
|
|
|
|
|
|
|
|
|
|
//发运单明细状态修改为校验完成
|
|
|
|
|
DdlPackBean orderManagementDetailPackBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
|
DdlPackBean orderManagementDetailPackBean = DdlPackBean.getDdlPackBean(organizeCode, isUnpack? CommonEnumUtil.IS_VAILD.INVAILD.getValue() : CommonEnumUtil.IS_VAILD.VAILD.getValue());
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(orderManagement.getId(), "pid", orderManagementDetailPackBean);
|
|
|
|
|
List<MesShippingOrderManagementDetail> orderManagementDetailList = shippingOrderManagementDetailRepository.findByHqlWhere(orderManagementDetailPackBean);
|
|
|
|
|
List<MesShippingOrderManagementDetail> detailList = model.getDetailList();
|
|
|
|
@ -738,6 +742,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
|
|
|
|
|
//客供品移库
|
|
|
|
|
customerSupplyMove(orderManagement, userInfo, sortShippingModel, shippingList, detail, shippingGroup);
|
|
|
|
|
|
|
|
|
|
detail.setIsValid(CommonEnumUtil.VALID);
|
|
|
|
|
detail.setSystemSyncStatus(CommonEnumUtil.FALSE);
|
|
|
|
|
detail.setActualQty(MesPcnExtConstWords.ONE);
|
|
|
|
|
ConvertBean.serviceModelUpdate(detail, userInfo);
|
|
|
|
@ -762,12 +767,14 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
|
|
|
|
|
shippingOrderManagementDetailRepository.saveAll(orderManagementDetailList);
|
|
|
|
|
}
|
|
|
|
|
if (StringUtils.isEmpty(orderManagement.getOrderCode()) || StringUtils.isEmpty(orderManagement.getLoadingListId())) {
|
|
|
|
|
//发送数据给辊道线
|
|
|
|
|
sendShippingFinishedCmd(model, organizeCode);
|
|
|
|
|
//保存当前发运单明细
|
|
|
|
|
List<MesJisShipping> mesJisShippings = getMesJisShippings(orderManagement, orderManagementDetailList, userInfo);
|
|
|
|
|
if (!CollectionUtils.isEmpty(mesJisShippings)) {
|
|
|
|
|
shippingList.addAll(mesJisShippings);
|
|
|
|
|
if (!isUnpack) {
|
|
|
|
|
//发送数据给辊道线
|
|
|
|
|
sendShippingFinishedCmd(model, organizeCode);
|
|
|
|
|
//保存当前发运单明细
|
|
|
|
|
List<MesJisShipping> mesJisShippings = getMesJisShippings(orderManagement, orderManagementDetailList, userInfo);
|
|
|
|
|
if (!CollectionUtils.isEmpty(mesJisShippings)) {
|
|
|
|
|
shippingList.addAll(mesJisShippings);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else if (isFirstInstall){
|
|
|
|
|
//查询装车单明细
|
|
|
|
@ -875,6 +882,39 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
|
|
|
|
|
shippingOrderManagementDetailRepository.update(item);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void saveSecondShipScanOrder(MesSortShippingCheckModel model) {
|
|
|
|
|
MesShippingOrderManagement shippingOrder = checkMesShippingOrderManagement(model);
|
|
|
|
|
if (!Objects.equals(shippingOrder.getShippingGroupCode(), model.getMesPartShippingGroup().getShippingGroupCode())) {
|
|
|
|
|
MesPcnException.throwMesBusiException("发运单【%s】设不属于发运组【%s】,请检查", shippingOrder.getShippingCode(), model.getMesPartShippingGroup().getShippingGroupCode());
|
|
|
|
|
}
|
|
|
|
|
if (!Objects.equals(shippingOrder.getStatus(), MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPED.getValue())) {
|
|
|
|
|
MesPcnException.throwMesBusiException("发运单【%s】的状态不为已发运,请检查", shippingOrder.getShippingCode());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DdlPackBean orderManagementDetailPackBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(shippingOrder.getId(), "pid", orderManagementDetailPackBean);
|
|
|
|
|
List<MesShippingOrderManagementDetail> detailList = shippingOrderManagementDetailRepository.findByHqlWhere(orderManagementDetailPackBean);
|
|
|
|
|
for (MesShippingOrderManagementDetail detail : detailList) {
|
|
|
|
|
detail.setBarcode(null);
|
|
|
|
|
detail.setIsValid(CommonEnumUtil.IS_VAILD.INVAILD.getValue());
|
|
|
|
|
ConvertBean.serviceModelUpdate(detail, model.getUserInfo());
|
|
|
|
|
}
|
|
|
|
|
model.setDetailList(detailList);
|
|
|
|
|
// 更新条码状态为发运回退
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode());
|
|
|
|
|
if (detailList.size() == 1) DdlPreparedPack.getStringEqualPack(detailList.get(0).getBarcode(), MesPcnExtConstWords.CUST_SN, packBean);
|
|
|
|
|
else DdlPreparedPack.getInPackList(detailList.stream().map(MesShippingOrderManagementDetail::getBarcode).filter(barCode -> !StringUtil.isEmptyAndNull(barCode)).collect(Collectors.toList()), MesPcnExtConstWords.CUST_SN, packBean);
|
|
|
|
|
produceSnRepository.updateByPropertiesNoSync(
|
|
|
|
|
new String[]{MesPcnExtConstWords.SN_STATUS,
|
|
|
|
|
MesPcnExtConstWords.MODIFY_USER, MesPcnExtConstWords.MODIFY_DATE_TIME, MesPcnExtConstWords.SYSTEM_SYNC_STATUS, MesPcnExtConstWords.SYSTEM_SYNC_DATE_TIME},
|
|
|
|
|
new Object[]{MesExtEnumUtil.PRODUCE_SN_STATUS.SHIPPED_BACK.getValue(), model.getUserInfo(), TimeTool.getNowTime(true), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), MesPcnExtConstWords.EMPTY},
|
|
|
|
|
packBean);
|
|
|
|
|
|
|
|
|
|
shippingOrder.setStatus(MesExtEnumUtil.SHIPPING_ORDER_STATUS.UNPACKING.getValue());
|
|
|
|
|
ConvertBean.serviceModelUpdate(shippingOrder, model.getUserInfo());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void updateShippingOrderDetails(String organizeCode, String userName, long id) {
|
|
|
|
|
if(StringUtils.isEmpty(id) || StringUtils.isEmpty(organizeCode)) {
|
|
|
|
|
return;
|
|
|
|
|