Merge remote-tracking branch 'origin/dev' into dev

tags/yfai-mes-ext-v2.4
jun 6 months ago
commit 300d9114cf

@ -10,7 +10,6 @@ import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesPartProdGroup; import cn.estsh.i3plus.pojo.mes.bean.MesPartProdGroup;
import cn.estsh.i3plus.pojo.mes.bean.MesPartProdGroupDetail; import cn.estsh.i3plus.pojo.mes.bean.MesPartProdGroupDetail;
import cn.estsh.i3plus.pojo.mes.bean.MesPrintQueue;
import cn.estsh.i3plus.pojo.mes.repository.MesPartProdGroupDetailRepository; import cn.estsh.i3plus.pojo.mes.repository.MesPartProdGroupDetailRepository;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ValidatorBean; import cn.estsh.impp.framework.boot.util.ValidatorBean;
@ -18,9 +17,9 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.util.*; import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
@ -61,10 +60,15 @@ public class MesPartProdGroupService extends BaseMesService<MesPartProdGroup> im
@Override @Override
public Map<String, MesPartProdGroup> getMesPartProdGroupMap(String organizeCode, List<String> partProdGroupCodeList) { public Map<String, MesPartProdGroup> getMesPartProdGroupMap(String organizeCode, List<String> partProdGroupCodeList) {
if (CollectionUtils.isEmpty(partProdGroupCodeList) || StringUtils.isEmpty(organizeCode)) return null;
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(partProdGroupCodeList, MesExtConstWords.PART_PROD_GROUP_CODE, packBean); if (partProdGroupCodeList.size() == 1) DdlPreparedPack.getStringEqualPack(partProdGroupCodeList.get(0), MesExtConstWords.PART_PROD_GROUP_CODE, packBean);
else DdlPreparedPack.getInPackList(partProdGroupCodeList, MesExtConstWords.PART_PROD_GROUP_CODE, packBean);
List<MesPartProdGroup> partProdGroupList = baseRDao.findByHqlWhere(packBean); List<MesPartProdGroup> partProdGroupList = baseRDao.findByHqlWhere(packBean);
return CollectionUtils.isEmpty(partProdGroupList) ? null : partProdGroupList.stream().collect(Collectors.toMap(MesPartProdGroup::getPartProdGroupCode, Function.identity(), (x, y) -> y)); if (CollectionUtils.isEmpty(partProdGroupList)) return null;
partProdGroupList = partProdGroupList.stream().filter(o -> null != o).collect(
Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(MesPartProdGroup::getPartProdGroupCode))), ArrayList::new));
return partProdGroupList.stream().filter(o -> null != o).collect(Collectors.toMap(MesPartProdGroup::getPartProdGroupCode, o -> o));
} }

@ -10,6 +10,7 @@ import cn.estsh.i3plus.pojo.mes.repository.MesWorkCenterRepository;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.util.List; import java.util.List;
@ -45,9 +46,10 @@ public class MesWorkCenterService extends BaseMesService<MesWorkCenter> implemen
@Override @Override
public List<MesWorkCenter> queryMesWorkCenterList(List<String> workCenterCodeList, String organizeCode) { public List<MesWorkCenter> queryMesWorkCenterList(List<String> workCenterCodeList, String organizeCode) {
if (CollectionUtils.isEmpty(workCenterCodeList) || StringUtils.isEmpty(organizeCode)) return null;
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(workCenterCodeList, MesExtConstWords.WORK_CENTER_CODE, packBean); if (workCenterCodeList.size() == 1) DdlPreparedPack.getStringEqualPack(workCenterCodeList.get(0), MesExtConstWords.WORK_CENTER_CODE, packBean);
else DdlPreparedPack.getInPackList(workCenterCodeList, MesExtConstWords.WORK_CENTER_CODE, packBean);
return workCenterRepository.findByHqlWhere(packBean); return workCenterRepository.findByHqlWhere(packBean);
} }

@ -35,12 +35,12 @@ import cn.estsh.impp.framework.boot.util.SpringContextsUtil;
import cn.estsh.impp.framework.boot.util.ValidatorBean; import cn.estsh.impp.framework.boot.util.ValidatorBean;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.map.CaseInsensitiveMap; import org.apache.commons.collections.map.CaseInsensitiveMap;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.BeansException; import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
@ -674,7 +674,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
mesWorkOrderLogList.add(workOrderLog); mesWorkOrderLogList.add(workOrderLog);
} }
//保存工单记录 //保存工单记录
if (CollectionUtils.isNotEmpty(mesWorkOrderLogList)) { if (!CollectionUtils.isEmpty(mesWorkOrderLogList)) {
workOrderLogService.insertBatch(mesWorkOrderLogList); workOrderLogService.insertBatch(mesWorkOrderLogList);
} }
} }
@ -1098,7 +1098,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
updateMesWorkOrder(mesWorkOrder, (MesExtEnumUtil.REPORT_TYPE.REPORT.getValue() == mesWorkOrderNew.getReportType()) ? MesExtEnumUtil.WORK_ORDER_LOG_TYPE.REPORT : MesExtEnumUtil.WORK_ORDER_LOG_TYPE.REPORT_ADJUST,mesWorkOrderNew.getNum()); updateMesWorkOrder(mesWorkOrder, (MesExtEnumUtil.REPORT_TYPE.REPORT.getValue() == mesWorkOrderNew.getReportType()) ? MesExtEnumUtil.WORK_ORDER_LOG_TYPE.REPORT : MesExtEnumUtil.WORK_ORDER_LOG_TYPE.REPORT_ADJUST,mesWorkOrderNew.getNum());
//保存报工记录 试制单不报工 //保存报工记录 试制单不报工
if (CollectionUtils.isNotEmpty(mesProductOffLineList) && (Objects.isNull(mesWorkOrder.getOrderFlag()) || !MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue().equals(mesWorkOrder.getOrderFlag()))) { if (!CollectionUtils.isEmpty(mesProductOffLineList) && (Objects.isNull(mesWorkOrder.getOrderFlag()) || !MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue().equals(mesWorkOrder.getOrderFlag()))) {
mesProductOffLineList.forEach(t->{ mesProductOffLineList.forEach(t->{
if(Objects.isNull(t.getBomTotalSize())){ if(Objects.isNull(t.getBomTotalSize())){
t.setBomTotalSize(mesProductOffLineList.size()); t.setBomTotalSize(mesProductOffLineList.size());
@ -1107,7 +1107,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
mesProductOffLineService.insertBatch(mesProductOffLineList); mesProductOffLineService.insertBatch(mesProductOffLineList);
} }
//保存移库记录 //保存移库记录
if (CollectionUtils.isNotEmpty(mesMoveList)) { if (!CollectionUtils.isEmpty(mesMoveList)) {
mesMoveRDao.saveAll(mesMoveList); mesMoveRDao.saveAll(mesMoveList);
} }
} }
@ -1129,10 +1129,10 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
log.info("关闭工单个数{},工单:{}",mesWorkOrderList.size(),mesWorkOrderList.stream().map(MesWorkOrder::getWorkOrderNo).collect(Collectors.toList())); log.info("关闭工单个数{},工单:{}",mesWorkOrderList.size(),mesWorkOrderList.stream().map(MesWorkOrder::getWorkOrderNo).collect(Collectors.toList()));
//查询自制件零件 //查询自制件零件
List<String> partNoList = mesPartSapService.findMesPartSapByPartNoList(mesWorkOrderList.stream().map(MesWorkOrder::getPartNo).distinct().collect(Collectors.toList()), organizeCode).stream().filter(t -> t.getIsTestPiece() == CommonEnumUtil.FALSE).map(MesPartSap::getPartNo).collect(Collectors.toList()); List<String> partNoList = mesPartSapService.findMesPartSapByPartNoList(mesWorkOrderList.stream().map(MesWorkOrder::getPartNo).distinct().collect(Collectors.toList()), organizeCode).stream().filter(t -> t.getIsTestPiece() == CommonEnumUtil.FALSE).map(MesPartSap::getPartNo).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(partNoList)) { if (!CollectionUtils.isEmpty(partNoList)) {
//关闭工单回传 //关闭工单回传
List<String> partNoAndDataKey = mesWorkOrderList.stream().filter(t -> !MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue().equals(t.getOrderFlag()) && partNoList.contains(t.getPartNo())).map(t -> new StringJoiner(MesExtConstWords.COMMA).add(t.getPartNo()).add(t.getProductVersion()).add(t.getPlanStartTime().substring(0, 10)).toString()).distinct().collect(Collectors.toList()); List<String> partNoAndDataKey = mesWorkOrderList.stream().filter(t -> !MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue().equals(t.getOrderFlag()) && partNoList.contains(t.getPartNo())).map(t -> new StringJoiner(MesExtConstWords.COMMA).add(t.getPartNo()).add(t.getProductVersion()).add(t.getPlanStartTime().substring(0, 10)).toString()).distinct().collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(partNoAndDataKey)) { if (!CollectionUtils.isEmpty(partNoAndDataKey)) {
List<MesWorkOrderToSap> mesWorkOrderToSapList = new ArrayList<>(); List<MesWorkOrderToSap> mesWorkOrderToSapList = new ArrayList<>();
for (String partNoAndData : partNoAndDataKey) { for (String partNoAndData : partNoAndDataKey) {
MesWorkOrderToSap orderToSap = new MesWorkOrderToSap(organizeCode, partNoAndData.split(MesExtConstWords.COMMA)[0], partNoAndData.split(MesExtConstWords.COMMA)[1], 0d, partNoAndData.split(MesExtConstWords.COMMA)[2]); MesWorkOrderToSap orderToSap = new MesWorkOrderToSap(organizeCode, partNoAndData.split(MesExtConstWords.COMMA)[0], partNoAndData.split(MesExtConstWords.COMMA)[1], 0d, partNoAndData.split(MesExtConstWords.COMMA)[2]);
@ -1230,19 +1230,21 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
Map<String, MesWorkOrder> workOrderMapByWorkOrderNo = mesWorkOrderList.stream().collect(Collectors.toMap(MesWorkOrder::getWorkOrderNo, Function.identity(), (x, y) -> y)); Map<String, MesWorkOrder> workOrderMapByWorkOrderNo = mesWorkOrderList.stream().collect(Collectors.toMap(MesWorkOrder::getWorkOrderNo, Function.identity(), (x, y) -> y));
// 产线代码集合 // 产线代码集合
List<String> workCenterCodeList = mesWorkOrderList.stream().map(MesWorkOrder::getWorkCenterCode).distinct().collect(Collectors.toList()); List<String> workCenterCodeList = (mesWorkOrderList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getWorkCenterCode()))).map(MesWorkOrder::getWorkCenterCode).collect(Collectors.toList()))
.stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList());
// 根据产线代码节后获取产线信息集合 // 根据产线代码节后获取产线信息集合
List<MesWorkCenter> mesWorkCenters = workCenterService.queryMesWorkCenterList(workCenterCodeList, organizeCode); List<MesWorkCenter> workCenterList = CollectionUtils.isEmpty(workCenterCodeList) ? null : workCenterService.queryMesWorkCenterList(workCenterCodeList, organizeCode);
// 产线名称集合 // 产线名称集合
Map<String, String> workCenterNameMap = CollectionUtils.isEmpty(mesWorkCenters) ? null : mesWorkCenters.stream().collect(Collectors.toMap(MesWorkCenter::getWorkCenterCode, MesWorkCenter::getWorkCenterName, (x, y) -> y)); Map<String, List<MesWorkCenter>> workCenterNameMap = CollectionUtils.isEmpty(workCenterList) ? null : workCenterList.stream().filter(o -> null != o).collect(Collectors.groupingBy(MesWorkCenter::getWorkCenterCode));
// 生产零件号 // 零件生产组代码
List<String> partProdGroupCodeList = mesWorkOrderList.stream().map(MesWorkOrder::getPartProdGroupCode).distinct().collect(Collectors.toList()); List<String> partProdGroupCodeList = (mesWorkOrderList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getPartProdGroupCode()))).map(MesWorkOrder::getPartProdGroupCode).collect(Collectors.toList()))
.stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList());
// 根据零件生产组代码分组 // 根据零件生产组代码分组
Map<String, MesPartProdGroup> partProdGroupMap = partProdGroupService.getMesPartProdGroupMap(organizeCode, partProdGroupCodeList); Map<String, MesPartProdGroup> partProdGroupMap = CollectionUtils.isEmpty(partProdGroupCodeList) ? null : partProdGroupService.getMesPartProdGroupMap(organizeCode, partProdGroupCodeList);
// 客户车型配置名称MAP // 客户车型配置名称MAP
Map<String, MesCustomerCarModel> carModelMapByCode = getMesCustomerCarModelMap(organizeCode, mesWorkOrderList); Map<String, MesCustomerCarModel> carModelMapByCode = getMesCustomerCarModelMap(organizeCode, mesWorkOrderList);
@ -1263,9 +1265,9 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
continue; continue;
} }
mesWorkOrder.setWorkCenterName(!Objects.isNull(workCenterNameMap) && workCenterNameMap.containsKey(mesWorkOrder.getWorkCenterCode()) ? workCenterNameMap.get(mesWorkOrder.getWorkCenterCode()) : ""); mesWorkOrder.setWorkCenterName((!StringUtils.isEmpty(mesWorkOrder.getWorkCenterCode()) && !CollectionUtils.isEmpty(workCenterNameMap) && workCenterNameMap.containsKey(mesWorkOrder.getWorkCenterCode())) ? workCenterNameMap.get(mesWorkOrder.getWorkCenterCode()).get(0).getWorkCenterName() : "");
MesPartProdGroup mesPartProdGroup = !Objects.isNull(partProdGroupMap) && partProdGroupMap.containsKey(mesWorkOrder.getPartProdGroupCode()) ? partProdGroupMap.get(mesWorkOrder.getPartProdGroupCode()) : null; MesPartProdGroup mesPartProdGroup = (!StringUtils.isEmpty(mesWorkOrder.getPartProdGroupCode()) && !CollectionUtils.isEmpty(partProdGroupMap) && partProdGroupMap.containsKey(mesWorkOrder.getPartProdGroupCode())) ? partProdGroupMap.get(mesWorkOrder.getPartProdGroupCode()) : null;
if (mesPartProdGroup == null) { if (mesPartProdGroup == null) {
MesException.throwMesBusiException("工单【%s】关联零件生产组【%s】不存在", mesWorkOrder.getWorkOrderNo(), mesWorkOrder.getPartProdGroupCode()); MesException.throwMesBusiException("工单【%s】关联零件生产组【%s】不存在", mesWorkOrder.getWorkOrderNo(), mesWorkOrder.getPartProdGroupCode());
@ -1292,10 +1294,9 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
if (customerCarModel != null) { if (customerCarModel != null) {
modelMap.put("mesCustomerCarModel", customerCarModel); modelMap.put("mesCustomerCarModel", customerCarModel);
} }
List<MesWorkOrderAssembly> workOrderAssemblyListByWorkOrderNo = !Objects.isNull(workOrderAssemblyMapByWorkOrderNo) && workOrderAssemblyMapByWorkOrderNo.containsKey(mesWorkOrder.getWorkOrderNo()) ? workOrderAssemblyMapByWorkOrderNo.get(mesWorkOrder.getWorkOrderNo()) : null;
if (!CollectionUtils.isEmpty(workOrderAssemblyListByWorkOrderNo)) { if (!CollectionUtils.isEmpty(workOrderAssemblyMapByWorkOrderNo) && workOrderAssemblyMapByWorkOrderNo.containsKey(mesWorkOrder.getWorkOrderNo())) {
modelMap.put("mesWorkOrderAssemblyList", workOrderAssemblyListByWorkOrderNo); modelMap.put("mesWorkOrderAssemblyList", workOrderAssemblyMapByWorkOrderNo.get(mesWorkOrder.getWorkOrderNo()));
} }
MesProduceSnPrintModel mesProduceSnPrintModel = new MesProduceSnPrintModel(); MesProduceSnPrintModel mesProduceSnPrintModel = new MesProduceSnPrintModel();
@ -1349,21 +1350,29 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
} }
private Map<String, MesCustomerCarModel> getMesCustomerCarModelMap(String organizeCode, List<MesWorkOrder> workOrderList) { private Map<String, MesCustomerCarModel> getMesCustomerCarModelMap(String organizeCode, List<MesWorkOrder> workOrderList) {
List<String> carModelCodeList = workOrderList.stream().map(MesWorkOrder::getCarModelCode).distinct().collect(Collectors.toList()); List<String> carModelCodeList = CollectionUtils.isEmpty(workOrderList) ? null :
(workOrderList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getCarModelCode()))).map(MesWorkOrder::getCarModelCode).collect(Collectors.toList()))
.stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList());
if (StringUtils.isEmpty(organizeCode) || CollectionUtils.isEmpty(workOrderList)) return null;
// 客户车型配置 // 客户车型配置
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(carModelCodeList, MesExtConstWords.CAR_MODEL_CODE, packBean); if (carModelCodeList.size() == 1) DdlPreparedPack.getStringEqualPack(carModelCodeList.get(0), MesExtConstWords.CAR_MODEL_CODE, packBean);
else DdlPreparedPack.getInPackList(carModelCodeList, MesExtConstWords.CAR_MODEL_CODE, packBean);
List<MesCustomerCarModel> customerCarModelList = customerCarModelRepository.findByHqlWhere(packBean); List<MesCustomerCarModel> customerCarModelList = customerCarModelRepository.findByHqlWhere(packBean);
if (CollectionUtils.isEmpty(customerCarModelList)) return null;
return CollectionUtils.isEmpty(customerCarModelList) ? null : customerCarModelList.stream().collect(Collectors.toMap(MesCustomerCarModel::getCarModelCode, Function.identity(), (x, y) -> y)); customerCarModelList = customerCarModelList.stream().filter(o -> null != o).collect(
Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(MesCustomerCarModel::getCarModelCode))), ArrayList::new));
return customerCarModelList.stream().filter(o -> null != o).collect(Collectors.toMap(MesCustomerCarModel::getCarModelCode, o -> o));
} }
private Map<String, List<MesWorkOrderAssembly>> getWorkOrderAssemblyMapByWorkOrderNo(String organizeCode, Map<String, MesWorkOrder> workOrderMapByWorkOrderNo) { private Map<String, List<MesWorkOrderAssembly>> getWorkOrderAssemblyMapByWorkOrderNo(String organizeCode, Map<String, MesWorkOrder> workOrderMapByWorkOrderNo) {
if (CollectionUtils.isEmpty(workOrderMapByWorkOrderNo)) return null;
List<String> workOrderNoList = workOrderMapByWorkOrderNo.keySet().stream().collect(Collectors.toList()); List<String> workOrderNoList = workOrderMapByWorkOrderNo.keySet().stream().collect(Collectors.toList());
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(workOrderNoList, MesExtConstWords.WORK_ORDER_NO, packBean); if (workOrderNoList.size() == 1) DdlPreparedPack.getStringEqualPack(workOrderNoList.get(0), MesExtConstWords.WORK_ORDER_NO, packBean);
else DdlPreparedPack.getInPackList(workOrderNoList, MesExtConstWords.WORK_ORDER_NO, packBean);
List<MesWorkOrderAssembly> workOrderAssemblyList = workOrderAssemblyRepository.findByHqlWhere(packBean); List<MesWorkOrderAssembly> workOrderAssemblyList = workOrderAssemblyRepository.findByHqlWhere(packBean);
return CollectionUtils.isEmpty(workOrderAssemblyList) ? null : workOrderAssemblyList.stream().collect(Collectors.groupingBy(MesWorkOrderAssembly::getWorkOrderNo)); return CollectionUtils.isEmpty(workOrderAssemblyList) ? null : workOrderAssemblyList.stream().filter(o -> null != o).collect(Collectors.groupingBy(MesWorkOrderAssembly::getWorkOrderNo));
} }
private List<MesProductOffLine> getMesProductOffLineList(WmsProductModel model, String nowTime) { private List<MesProductOffLine> getMesProductOffLineList(WmsProductModel model, String nowTime) {

@ -12,7 +12,10 @@ import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.util.*; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -39,8 +42,10 @@ public class AssemblyVisualListPrintStrategy implements IPrintTemplateStrategySe
MesCustomerCarModel customerCarModel = modelMap.containsKey("mesCustomerCarModel") ? (MesCustomerCarModel) modelMap.get("mesCustomerCarModel") : null; MesCustomerCarModel customerCarModel = modelMap.containsKey("mesCustomerCarModel") ? (MesCustomerCarModel) modelMap.get("mesCustomerCarModel") : null;
// 工单装配件信息 // 工单装配件信息
List<MesWorkOrderAssembly> workOrderAssemblyList = modelMap.containsKey("mesWorkOrderAssemblyList") ? (List<MesWorkOrderAssembly>) modelMap.get("mesWorkOrderAssemblyList") : new ArrayList<>(); List<MesWorkOrderAssembly> workOrderAssemblyList = modelMap.containsKey("mesWorkOrderAssemblyList") ? (List<MesWorkOrderAssembly>) modelMap.get("mesWorkOrderAssemblyList") : new ArrayList<>();
workOrderAssemblyList = CollectionUtils.isEmpty(workOrderAssemblyList) ? new ArrayList<>() : workOrderAssemblyList.stream().filter(o -> o.getDisplaySeq() != null && o.getDisplaySeq() != 0).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(workOrderAssemblyList)) workOrderAssemblyList.sort(Comparator.comparing(MesWorkOrderAssembly::getDisplaySeq)); workOrderAssemblyList = CollectionUtils.isEmpty(workOrderAssemblyList) ? new ArrayList<>() :
workOrderAssemblyList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getDisplaySeq()) && o.getDisplaySeq().compareTo(MesExtConstWords.ZERO) != 0)).collect(Collectors.toList());
// 返回的结果集合 // 返回的结果集合
List<Map<String, Object>> printDataMapList = new ArrayList<>(); List<Map<String, Object>> printDataMapList = new ArrayList<>();
// 单个标签参数值 // 单个标签参数值
@ -77,30 +82,21 @@ public class AssemblyVisualListPrintStrategy implements IPrintTemplateStrategySe
//替换总成SN //替换总成SN
resultMap.put(MesExtConstWords.REPLACE_CSN,MesExtConstWords.CP+workOrder.getCustPartNo().substring(workOrder.getCustPartNo().length() -4)); resultMap.put(MesExtConstWords.REPLACE_CSN,MesExtConstWords.CP+workOrder.getCustPartNo().substring(workOrder.getCustPartNo().length() -4));
// 总个数 Map<Integer, List<MesWorkOrderAssembly>> collect = CollectionUtils.isEmpty(workOrderAssemblyList) ? null : workOrderAssemblyList.stream().filter(o -> null != o).collect(Collectors.groupingBy(MesWorkOrderAssembly::getDisplaySeq));
Integer totalCount = partProdGroup.getTotalCount();
Map<Integer, List<MesWorkOrderAssembly>> collect = workOrderAssemblyList.stream().collect(Collectors.groupingBy(MesWorkOrderAssembly::getDisplaySeq));
// 为空时显示内容 // 为空时显示内容
String isNullViewContent = StringUtils.isEmpty(partProdGroup.getIsNullViewContent()) ? "" : partProdGroup.getIsNullViewContent(); String isNullViewContent = StringUtils.isEmpty(partProdGroup.getIsNullViewContent()) ? "" : partProdGroup.getIsNullViewContent();
for (int index = 0; index < collect.size(); index++) { if (!CollectionUtils.isEmpty(collect)) {
List<MesWorkOrderAssembly> orderAssemblyList = collect.get(index+1); for (Integer displaySeq : collect.keySet()) {
List<String> disPlayValues = orderAssemblyList.stream().map(MesWorkOrderAssembly::getDisplayValue).distinct().collect(Collectors.toList()); List<MesWorkOrderAssembly> orderAssemblyList = collect.get(displaySeq);
List<String> disPlayValues = (orderAssemblyList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getDisplayValue()))).map(MesWorkOrderAssembly::getDisplayValue).collect(Collectors.toList()))
.stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList());
String displayValue = isNullViewContent; String displayValue = isNullViewContent;
if(!disPlayValues.isEmpty()){ if(!CollectionUtils.isEmpty(disPlayValues)){
displayValue = String.join("\r\n", disPlayValues); displayValue = String.join("\r\n", disPlayValues);
} }
// String displayValue = workOrderAssemblyList.size() -1 < index ? isNullViewContent : workOrderAssemblyList.get(index).getDisplayValue(); resultMap.put(MesExtConstWords.ASSEMBLY_PARAM + displaySeq, displayValue);
}
// resultMap.put(MesPcnExtConstWords.ASSEMBLY_PARAM + (index+1), StringUtils.isEmpty(displayValue) ? StringUtils.isEmpty(isNullViewContent) ? "" : isNullViewContent : displayValue);
resultMap.put(MesExtConstWords.ASSEMBLY_PARAM + (index+1), displayValue);
} }
// 为空时显示内容
// String isNullViewContent = StringUtils.isEmpty(partProdGroup.getIsNullViewContent()) ? "" : partProdGroup.getIsNullViewContent();
// for (Integer index = 0; index < totalCount; index++) {
// String displayValue = workOrderAssemblyList.size() -1 < index ? isNullViewContent : workOrderAssemblyList.get(index).getDisplayValue();
//
// resultMap.put(MesExtConstWords.ASSEMBLY_PARAM + (index+1), StringUtils.isEmpty(displayValue) ? StringUtils.isEmpty(isNullViewContent) ? "" : null : displayValue);
// }
printDataMapList.add(resultMap); printDataMapList.add(resultMap);

Loading…
Cancel
Save