tags/yfai-pcn-ext-v1.0
LML丶 1 year ago
parent 51808e1ada
commit 8bca19c47e

@ -4,6 +4,7 @@ import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesJisShippingService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesShippingLoadingCheckService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesShippingLoadingCheckModel;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.util.MesPcnConstWords;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
@ -11,6 +12,7 @@ import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.*;
import cn.estsh.i3plus.pojo.mes.repository.*;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.util.ImppRedis;
import lombok.extern.slf4j.Slf4j;
@ -20,9 +22,8 @@ import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
/**
@ -74,8 +75,19 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
DdlPackBean orderDetailPackBean = DdlPackBean.getDdlPackBean(loadingVehiclesOrder.organizeCode);
DdlPreparedPack.getStringEqualPack(loadingVehiclesOrder.getLoadingOrderNo(), "loadingOrderNo", orderDetailPackBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"seq"}, orderDetailPackBean);
List<MesLoadingVehiclesOrderDetail> detailList = vehiclesOrderDetailRepository.findByHqlWhere(orderDetailPackBean);
//是否逆转
if (vehiclesOrder.getIsReverse() == MesCommonConstant.TRUE_INTEGER) {
// 逆转
for (int i = 0; i < detailList.size(); i += vehiclesOrder.getReverseQuantity()) {
if (i + vehiclesOrder.getReverseQuantity() - 1 < detailList.size()) {
Collections.reverse(detailList.subList(i, i + vehiclesOrder.getReverseQuantity()));
}
}
}
//根据扫描的装车单找到是否先装车配置
//若配置为否,则查询装车单中所有的发运单是否都进行【排序发运校验】完成,若【排序发运校验】没完成,则提示,先进行排序发运校验。
if (vehiclesOrder.getIsFirstInstall() == MesCommonConstant.FALSE_INTEGER) {
@ -97,32 +109,8 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
}
MesShippingLoadingCheckModel model = new MesShippingLoadingCheckModel();
//根据是否启用记忆
//若启用则获取redis数据redis中数据为空则获取装车单明细数据 若redis中数据不为空则根据装车单明细中发运单号将扫描过的标记。 若不启动则获取装车单明细数据
if (vehiclesOrder.getIsEnableMemory() == MesCommonConstant.TRUE_INTEGER) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(loadingVehiclesOrder.getOrganizeCode()).append(":").append(loadingVehiclesOrder.getLoadingOrderNo()).append(":");
//获取redis数据
if (redisMesPcn.hasKey(stringBuilder.toString())) {
//redis中数据不为空
List<MesLoadingVehiclesOrderDetail> isScanDetailList = (List<MesLoadingVehiclesOrderDetail>) redisMesPcn.getObject(stringBuilder.toString());
AtomicReference<Integer> isScanCount = new AtomicReference<>(0);
//根据装车单明细中发运单号,将扫描过的标记
detailList.forEach(k -> {
Optional optional = isScanDetailList.stream().filter(scanDetail -> scanDetail.getLoadingOrderNo().equals(k.getLoadingOrderNo())).findFirst();
if (optional.isPresent()) {
k.setTempStatus(MesCommonConstant.TRUE_INTEGER);
isScanCount.getAndSet(isScanCount.get() + 1);
}
});
model.setIsScanCount(isScanCount.get());
}
}
Long count = detailList.stream().filter(k -> k.getStatus() == MesExtEnumUtil.LOADING_DETAIL_ORDER_DETAIL_STATUS.SCAN.getValue()).count();
model.setIsScanCount(count.intValue());
//查询最近扫描完成的装车单号
DdlPackBean recentlyOrderPackBean = DdlPackBean.getDdlPackBean(loadingVehiclesOrder.organizeCode);
@ -155,6 +143,13 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
@Override
public MesShippingLoadingCheckModel saveVehiclesOrderAndDetail(MesShippingLoadingCheckModel model, String org) {
//校验装车单是否存在
DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(org);
DdlPreparedPack.getStringEqualPack(model.getLoadingOrderNo(), "loadingOrderNo", orderPackBean);
MesLoadingVehiclesOrder vehiclesOrder = vehiclesOrderRepository.getByProperty(orderPackBean);
if (StringUtils.isEmpty(vehiclesOrder)) {
throw new ImppBusiException(String.format("【%s】此装车单不存在请检查数据", model.getLoadingOrderNo()));
}
//校验发运单是否存在
DdlPackBean orderDetailPackBean = DdlPackBean.getDdlPackBean(org);
@ -174,6 +169,19 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
}
mesLoadingVehiclesOrderDetail.setTempStatus(MesCommonConstant.TRUE_INTEGER);
mesLoadingVehiclesOrderDetail.setTempStatusVal("扫描完成");
//根据是否启动记忆判断 若启用记忆,则根据保存数据库
if (vehiclesOrder.getIsEnableMemory() == MesCommonConstant.TRUE_INTEGER) {
vehiclesOrder.setStatus(MesExtEnumUtil.LOADING_ORDER_STATUS.LOADING.getValue());
ConvertBean.serviceModelUpdate(vehiclesOrder, AuthUtil.getSessionUser().getUserName());
vehiclesOrderRepository.save(vehiclesOrder);
mesLoadingVehiclesOrderDetail.setStatus(MesExtEnumUtil.LOADING_DETAIL_ORDER_DETAIL_STATUS.SCAN.getValue());
ConvertBean.serviceModelUpdate(mesLoadingVehiclesOrderDetail, AuthUtil.getSessionUser().getUserName());
vehiclesOrderDetailRepository.save(mesLoadingVehiclesOrderDetail);
}
scanflg = true;
}
}
@ -182,21 +190,6 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
throw new ImppBusiException(String.format("【%s】扫描的发运单号不在【%s】此装车单中请检查数据", model.getShippingOrderNo(), model.getLoadingOrderNo()));
}
//校验装车单是否存在
DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(org);
DdlPreparedPack.getStringEqualPack(model.getLoadingOrderNo(), "loadingOrderNo", orderPackBean);
MesLoadingVehiclesOrder vehiclesOrder = vehiclesOrderRepository.getByProperty(orderPackBean);
if (StringUtils.isEmpty(vehiclesOrder)) {
throw new ImppBusiException(String.format("【%s】此装车单不存在请检查数据", model.getLoadingOrderNo()));
}
if (vehiclesOrder.getIsEnableMemory() == MesCommonConstant.TRUE_INTEGER) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(org).append(":").append(model.getLoadingOrderNo()).append(":");
redisMesPcn.putHash(stringBuilder.toString(), MesPcnConstWords.BIND_KEY_PART, model.getVehiclesOrderDetailList(), -1);
}
Long count = model.getVehiclesOrderDetailList().stream().filter(k -> k.getTempStatus() == MesCommonConstant.TRUE_INTEGER).count();
model.setIsScanCount(count.intValue());
@ -211,12 +204,16 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
//装车单主表
vehiclesOrder.setStatus(MesExtEnumUtil.LOADING_ORDER_STATUS.LOADED.getValue());
ConvertBean.serviceModelUpdate(vehiclesOrder, AuthUtil.getSessionUser().getUserName());
//装车单明细
DdlPackBean vehiclesOrderDetailPackBean = DdlPackBean.getDdlPackBean(org);
DdlPreparedPack.getStringEqualPack(vehiclesOrder.getLoadingOrderNo(), "loadingOrderNo", vehiclesOrderDetailPackBean);
List<MesLoadingVehiclesOrderDetail> vehiclesOrderDetailList = vehiclesOrderDetailRepository.findByHqlWhere(vehiclesOrderDetailPackBean);
vehiclesOrderDetailList.forEach(k -> k.setStatus(MesExtEnumUtil.LOADING_DETAIL_ORDER_STATUS.LOADED.getValue()));
vehiclesOrderDetailList.forEach(k -> {
k.setStatus(MesExtEnumUtil.LOADING_DETAIL_ORDER_STATUS.LOADED.getValue());
ConvertBean.serviceModelUpdate(k, AuthUtil.getSessionUser().getUserName());
});
vehiclesOrderDetailRepository.saveAll(vehiclesOrderDetailList);
vehiclesOrderRepository.save(vehiclesOrder);
@ -248,15 +245,34 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
DdlPreparedPack.getStringEqualPack(vehiclesOrder.getLoadingOrderNo(), "loadingOrderNo", vehiclesOrderDetailPackBean);
List<MesLoadingVehiclesOrderDetail> vehiclesOrderDetailList = vehiclesOrderDetailRepository.findByHqlWhere(vehiclesOrderDetailPackBean);
orderManagementList.forEach(k -> k.setStatus(MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPED.getValue()));
orderManagementDetailList.forEach(k -> k.setStatus(MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPED.getValue()));
produceSnList.forEach(k -> k.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.SHIPPED.getValue()));
//发运单
orderManagementList.forEach(k -> {
k.setStatus(MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPED.getValue());
ConvertBean.serviceModelUpdate(k, AuthUtil.getSessionUser().getUserName());
});
//发运单明细
orderManagementDetailList.forEach(k -> {
k.setStatus(MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPED.getValue());
ConvertBean.serviceModelUpdate(k, AuthUtil.getSessionUser().getUserName());
});
//条码
produceSnList.forEach(k -> {
k.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.SHIPPED.getValue());
ConvertBean.serviceModelUpdate(k, AuthUtil.getSessionUser().getUserName());
});
//装车单
vehiclesOrder.setStatus(MesExtEnumUtil.LOADING_ORDER_STATUS.SHIPPING.getValue());
ConvertBean.serviceModelUpdate(vehiclesOrder, AuthUtil.getSessionUser().getUserName());
//装车单明细
vehiclesOrderDetailList.forEach(k -> {
k.setStatus(MesExtEnumUtil.LOADING_DETAIL_ORDER_STATUS.SHIPPING.getValue());
k.setStatus(MesExtEnumUtil.LOADING_DETAIL_ORDER_DETAIL_STATUS.SHIPPING.getValue());
k.setShippingStatus(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue());
ConvertBean.serviceModelUpdate(k, AuthUtil.getSessionUser().getUserName());
});
//报工数据
List<MesJisShipping> jisShippingList = jisShippingService.getJisShipping(orderManagementDetailList, org);
//保存当前发运单明细报工

@ -147,12 +147,12 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
//根据条码找到对应的物料号若物料号一致则修改扫描flg将flg改为true.
boolean scanFlg = false;
for (MesShippingOrderManagementDetail detail : model.getDetailList()) {
if (detail.getPartNo().equals(produceSn.getPartNo())) {
if (detail.getPartNo().equals(produceSn.getPartNo()) && StringUtils.isEmpty(detail.getBarcode())) {
scanFlg = true;
detail.setBarcode(produceSn.getSerialNumber());
if (StringUtils.isEmpty(orderManagement.getCheckSeqCode())) {
detail.setIsScanFlg(MesCommonConstant.TRUE_INTEGER);
}
detail.setBarcode(produceSn.getSerialNumber());
break;
}
}

Loading…
Cancel
Save