|
|
|
@ -30,6 +30,8 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
|
|
|
|
|
|
import java.text.ParseException;
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
@ -62,6 +64,9 @@ public class MesPullingOrderInfoService implements IMesPullingOrderInfoService {
|
|
|
|
|
@Autowired
|
|
|
|
|
private MesCustomerCarModelRepository carModelRepository;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private MesWorkOrderRepository workOrderRao;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public ListPager<MesPullingOrderInfo> queryMesPullingOrderInfoByPager(MesPullingOrderInfo bean, Pager pager) {
|
|
|
|
@ -196,6 +201,101 @@ public class MesPullingOrderInfoService implements IMesPullingOrderInfoService {
|
|
|
|
|
//把查出来的拉动单打印并修改打印状态为已打印
|
|
|
|
|
List<MesPrintedSnLog> snLogList = new ArrayList<>();
|
|
|
|
|
for (MesPullingOrderInfo pullingOrderInfo : pullingOrderInfos) {
|
|
|
|
|
//查询对应的工单
|
|
|
|
|
DdlPackBean workOrderPackBean = DdlPackBean.getDdlPackBean(pullingOrderInfo.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(pullingOrderInfo.getWorkOrderNo(), MesPcnExtConstWords.WORK_ORDER_NO, workOrderPackBean);
|
|
|
|
|
List<MesWorkOrder> mesWorkOrders = workOrderRao.findByHqlTopWhere(workOrderPackBean, 1);
|
|
|
|
|
MesWorkOrder mesWorkOrder;
|
|
|
|
|
if (!CollectionUtils.isEmpty(mesWorkOrders)) {
|
|
|
|
|
mesWorkOrder = mesWorkOrders.get(0);
|
|
|
|
|
}else {
|
|
|
|
|
mesWorkOrder = new MesWorkOrder();
|
|
|
|
|
}
|
|
|
|
|
//查询拉动组明细
|
|
|
|
|
DdlPackBean partPackBean = DdlPackBean.getDdlPackBean(pullingOrderInfo.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(pullingOrderInfo.getPullingOrderNo(), MesPcnExtConstWords.PULLING_ORDER_NO, partPackBean);
|
|
|
|
|
List<MesPullingOrderPartInfo> pullingOrderPartInfos = mesPullingOrderPartInfoRepository.findByHqlWhere(partPackBean);
|
|
|
|
|
if (!CollectionUtils.isEmpty(pullingOrderPartInfos)) {
|
|
|
|
|
pullingOrderInfo.setPartCount(pullingOrderPartInfos.size());
|
|
|
|
|
pullingOrderPartInfos.forEach(item->{
|
|
|
|
|
if(!StringUtil.isEmpty(item.getLocation()) && item.getLocation().contains(MesPcnExtConstWords.COMMA)){
|
|
|
|
|
item.setLocatAddr(item.getLocation().split(MesPcnExtConstWords.COMMA)[0]);
|
|
|
|
|
item.setLightAddr(item.getLocation().split(MesPcnExtConstWords.COMMA)[1]);
|
|
|
|
|
};
|
|
|
|
|
item.setAssemblyPartNo(pullingOrderInfo.getPartNo());
|
|
|
|
|
});
|
|
|
|
|
pullingOrderInfo.setPullingOrderPartInfos(pullingOrderPartInfos);
|
|
|
|
|
}
|
|
|
|
|
pullingOrderInfo.setWorkOrderNoLast(!StringUtil.isEmpty(pullingOrderInfo.getWorkOrderNo())?pullingOrderInfo.getWorkOrderNo().substring(pullingOrderInfo.getWorkOrderNo().length() - MesPcnExtConstWords.FOUR):"");
|
|
|
|
|
pullingOrderInfo.setWorkOrderNoPre(!StringUtil.isEmpty(pullingOrderInfo.getWorkOrderNo())?pullingOrderInfo.getWorkOrderNo().substring(MesPcnExtConstWords.ZERO,pullingOrderInfo.getWorkOrderNo().length() - MesPcnExtConstWords.FOUR):"");
|
|
|
|
|
pullingOrderInfo.setCustOrderNoLast(!StringUtil.isEmpty(pullingOrderInfo.getCustOrderNo())?pullingOrderInfo.getCustOrderNo().substring(pullingOrderInfo.getCustOrderNo().length() - MesPcnExtConstWords.FOUR):"");
|
|
|
|
|
pullingOrderInfo.setCarModelName((Objects.isNull(mesCustomerCarModelMap) || StringUtil.isEmpty(pullingOrderInfo.getCarModelCode()) || !mesCustomerCarModelMap.containsKey(pullingOrderInfo.getCarModelCode()) ? "" : mesCustomerCarModelMap.get(pullingOrderInfo.getCarModelCode()).iterator().next().getCarModelName()));
|
|
|
|
|
|
|
|
|
|
pullingOrderInfo.setPrintTime(TimeTool.getNowTime(true));
|
|
|
|
|
pullingOrderInfo.setPrintStatus(MesExtEnumUtil.PRINT_STATUS.PRINTED.getValue());
|
|
|
|
|
pullingOrderInfo.setIsPrint(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
|
|
|
|
|
pullingOrderInfo.setShiftName(mesWorkOrder.getShiftName());
|
|
|
|
|
pullingOrderInfo.setSummaryQty(mesWorkOrder.getQty());
|
|
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
|
try {
|
|
|
|
|
pullingOrderInfo.setPlanStartDate(sdf.format(sdf.parse(mesWorkOrder.getPlanStartTime())));
|
|
|
|
|
} catch (ParseException e) {
|
|
|
|
|
log.error("格式化时间错误e:{}", e.getMessage());
|
|
|
|
|
}
|
|
|
|
|
pullingOrderInfo.setPlanStartTime(mesWorkOrder.getPlanStartTime());
|
|
|
|
|
pullingOrderInfo.setShiftName(mesWorkOrder.getShiftName());
|
|
|
|
|
pullingOrderInfo.setCarModelCode(mesWorkOrder.getCarModelCode());
|
|
|
|
|
pullingOrderInfo.setCustOrderNo(mesWorkOrder.getCustOrderNo());
|
|
|
|
|
ConvertBean.serviceModelUpdate(pullingOrderInfo, bean.getModifyUser());
|
|
|
|
|
|
|
|
|
|
//10-12 打印补打拉动单新增log表
|
|
|
|
|
MesPrintedSnLog snLog = new MesPrintedSnLog();
|
|
|
|
|
snLog.setBarcode(pullingOrderInfo.getPullingOrderNo());
|
|
|
|
|
snLog.setCustPartNo(pullingOrderInfo.getCustPartNo());
|
|
|
|
|
snLog.setWorkOrderNo(pullingOrderInfo.getWorkOrderNo());
|
|
|
|
|
snLog.setPartNo(pullingOrderInfo.getPartNo());
|
|
|
|
|
snLog.setPartName(pullingOrderInfo.getPartName());
|
|
|
|
|
ConvertBean.serviceModelInitialize(snLog, bean.getModifyUser());
|
|
|
|
|
snLog.setOrganizeCode(bean.getOrganizeCode());
|
|
|
|
|
snLogList.add(snLog);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
mesPullingOrderInfoRepository.saveAll(pullingOrderInfos);
|
|
|
|
|
//保存打印条码记录
|
|
|
|
|
snLogRao.saveAll(snLogList);
|
|
|
|
|
}
|
|
|
|
|
return pullingOrderInfos;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<MesPullingOrderInfo> doMesPullingOrderInfoPrintNew(MesPullingOrderInfo bean) {
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode());
|
|
|
|
|
|
|
|
|
|
List<String> pullCodeList = Arrays.asList(bean.getPullCode().split(MesPcnExtConstWords.COMMA));
|
|
|
|
|
List<String> workCenterCodeList = Arrays.asList(bean.getWorkCenterCode().split(MesPcnExtConstWords.COMMA));
|
|
|
|
|
|
|
|
|
|
if (pullCodeList.size() == 1) DdlPreparedPack.getStringEqualPack(pullCodeList.get(0), MesPcnExtConstWords.PULL_CODE, packBean);
|
|
|
|
|
else DdlPreparedPack.getInPackList(pullCodeList, MesPcnExtConstWords.PULL_CODE, packBean);
|
|
|
|
|
|
|
|
|
|
if (workCenterCodeList.size() == 1) DdlPreparedPack.getStringEqualPack(workCenterCodeList.get(0), MesPcnExtConstWords.WORK_CENTER_CODE, packBean);
|
|
|
|
|
else DdlPreparedPack.getInPackList(workCenterCodeList, MesPcnExtConstWords.WORK_CENTER_CODE, packBean);
|
|
|
|
|
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(bean.getPullOrderType(),"pullOrderType",packBean);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(bean.getPullingOrderNo(), MesPcnExtConstWords.PULLING_ORDER_NO, packBean);
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.PRINT_STATUS.UNPRINT.getValue(), MesPcnExtConstWords.PRINT_STATUS, packBean);
|
|
|
|
|
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{MesPcnExtConstWords.CUST_ORDER_NO}, packBean);
|
|
|
|
|
|
|
|
|
|
List<MesPullingOrderInfo> pullingOrderInfos = mesPullingOrderInfoRepository.findByHqlTopWhere(packBean, MesPcnExtConstWords.THREE);
|
|
|
|
|
|
|
|
|
|
log.info("打印队列查询 --- 拉动单 --- 查询到打印数据: {} ---", CollectionUtils.isEmpty(pullingOrderInfos) ? "[]" :
|
|
|
|
|
pullingOrderInfos.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getWorkOrderNo()))).map(MesPullingOrderInfo::getWorkOrderNo).collect(Collectors.toList()).toString());
|
|
|
|
|
|
|
|
|
|
if (!CollectionUtils.isEmpty(pullingOrderInfos)) {
|
|
|
|
|
//根据车型代码查询车型信息
|
|
|
|
|
Map<String, List<MesCustomerCarModel>> mesCustomerCarModelMap = getMesCustomerCarModelMap(bean.getOrganizeCode(), pullingOrderInfos.stream().map(MesPullingOrderInfo::getCarModelCode).distinct().collect(Collectors.toList()));
|
|
|
|
|
//把查出来的拉动单打印并修改打印状态为已打印
|
|
|
|
|
List<MesPrintedSnLog> snLogList = new ArrayList<>();
|
|
|
|
|
for (MesPullingOrderInfo pullingOrderInfo : pullingOrderInfos) {
|
|
|
|
|
//查询拉动组明细
|
|
|
|
|
DdlPackBean partPackBean = DdlPackBean.getDdlPackBean(pullingOrderInfo.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(pullingOrderInfo.getPullingOrderNo(), MesPcnExtConstWords.PULLING_ORDER_NO, partPackBean);
|
|
|
|
@ -210,8 +310,8 @@ public class MesPullingOrderInfoService implements IMesPullingOrderInfoService {
|
|
|
|
|
pullingOrderPartInfos = pullingOrderPartInfos.stream().filter(o -> null != o).sorted(Comparator.comparing(MesPullingOrderPartInfo::getLocatAddr)).collect(Collectors.toList());
|
|
|
|
|
pullingOrderInfo.setPullingOrderPartInfos(pullingOrderPartInfos);
|
|
|
|
|
}
|
|
|
|
|
pullingOrderInfo.setWorkOrderNoLast(!StringUtil.isEmpty(pullingOrderInfo.getWorkOrderNo())?pullingOrderInfo.getWorkOrderNo().substring(pullingOrderInfo.getWorkOrderNo().length() - MesPcnExtConstWords.THREE):"");
|
|
|
|
|
pullingOrderInfo.setWorkOrderNoPre(!StringUtil.isEmpty(pullingOrderInfo.getWorkOrderNo())?pullingOrderInfo.getWorkOrderNo().substring(MesPcnExtConstWords.ZERO,pullingOrderInfo.getWorkOrderNo().length() - MesPcnExtConstWords.THREE):"");
|
|
|
|
|
pullingOrderInfo.setWorkOrderNoLast(!StringUtil.isEmpty(pullingOrderInfo.getWorkOrderNo())?pullingOrderInfo.getWorkOrderNo().substring(pullingOrderInfo.getWorkOrderNo().length() - MesPcnExtConstWords.FOUR):"");
|
|
|
|
|
pullingOrderInfo.setWorkOrderNoPre(!StringUtil.isEmpty(pullingOrderInfo.getWorkOrderNo())?pullingOrderInfo.getWorkOrderNo().substring(MesPcnExtConstWords.ZERO,pullingOrderInfo.getWorkOrderNo().length() - MesPcnExtConstWords.FOUR):"");
|
|
|
|
|
pullingOrderInfo.setCustOrderNoLast(!StringUtil.isEmpty(pullingOrderInfo.getCustOrderNo())?pullingOrderInfo.getCustOrderNo().substring(pullingOrderInfo.getCustOrderNo().length() - MesPcnExtConstWords.FOUR):"");
|
|
|
|
|
pullingOrderInfo.setCarModelName("车型:" + (Objects.isNull(mesCustomerCarModelMap) || StringUtil.isEmpty(pullingOrderInfo.getCarModelCode()) || !mesCustomerCarModelMap.containsKey(pullingOrderInfo.getCarModelCode()) ? "" : mesCustomerCarModelMap.get(pullingOrderInfo.getCarModelCode()).iterator().next().getCarModelName()));
|
|
|
|
|
|
|
|
|
|