forked from I3-YF/i3plus-mes-yfai
装配目视单打印
parent
edb6dea585
commit
7c82801377
@ -0,0 +1,104 @@
|
||||
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.print.strategy;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.print.IPrintTemplateStrategyService;
|
||||
import cn.estsh.i3plus.ext.mes.pojo.model.MesProduceSnPrintModel;
|
||||
import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords;
|
||||
import cn.estsh.i3plus.platform.common.tool.TimeTool;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.*;
|
||||
import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Description : 装配目视单标签打印
|
||||
* @Reference :
|
||||
* @Author : Castle
|
||||
* @CreateDate : 2024/6/17 16:43
|
||||
* @Modify:
|
||||
**/
|
||||
@Component
|
||||
@Slf4j
|
||||
public class AssemblyVisualListPrintStrategy implements IPrintTemplateStrategyService {
|
||||
|
||||
@Override
|
||||
public MesProduceSnPrintModel execute(GenSerialNoModel genSerialNoModel, MesProduceSnPrintModel model, MesNumberRule numberRule) {
|
||||
|
||||
Map<String, Object> modelMap = (Map<String, Object>) model.getSourceData();
|
||||
|
||||
// 工单信息
|
||||
MesWorkOrder workOrder = (MesWorkOrder) modelMap.get("mesWorkOrder");
|
||||
// 零件生产组信息
|
||||
MesPartProdGroup partProdGroup = (MesPartProdGroup) modelMap.get("mesPartProdGroup");
|
||||
// 客户车型配置信息
|
||||
MesCustomerCarModel customerCarModel = modelMap.containsKey("mesCustomerCarModel") ? (MesCustomerCarModel) modelMap.get("mesCustomerCarModel") : null;
|
||||
// 工单装配件信息
|
||||
List<MesWorkOrderAssembly> workOrderAssemblyList = modelMap.containsKey("mesWorkOrderAssemblyList") ? (List<MesWorkOrderAssembly>) modelMap.get("mesWorkOrderAssemblyList") : null;
|
||||
workOrderAssemblyList = workOrderAssemblyList.stream().filter(o -> o.getDisplaySeq() != null && o.getDisplaySeq() != 0).collect(Collectors.toList());
|
||||
if (!CollectionUtils.isEmpty(workOrderAssemblyList)) workOrderAssemblyList.sort(Comparator.comparing(MesWorkOrderAssembly::getDisplaySeq));
|
||||
// 返回的结果集合
|
||||
List<Map<String, Object>> printDataMapList = new ArrayList<>();
|
||||
// 单个标签参数值
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
// 工单号
|
||||
resultMap.put(MesExtConstWords.WORK_ORDER_NO, workOrder.getWorkOrderNo());
|
||||
// 产线名称
|
||||
resultMap.put(MesExtConstWords.WORK_CENTER_NAME, workOrder.getWorkCenterName());
|
||||
// 车型名称
|
||||
resultMap.put(MesExtConstWords.CAR_MODEL_NAME, customerCarModel == null ? "" : customerCarModel.getCarModelName());
|
||||
// vinCode
|
||||
resultMap.put(MesExtConstWords.VIN_CODE, workOrder.getVinCode());
|
||||
// vinCode 后四位
|
||||
resultMap.put(MesExtConstWords.VIN_CODE_AFTER_FOUR, workOrder.getVinCode());
|
||||
// 总成零件号
|
||||
resultMap.put(MesExtConstWords.PART_NO, workOrder.getPartNo());
|
||||
// 工单标识
|
||||
resultMap.put(MesExtConstWords.ORDER_FLAG, workOrder.getOrderFlag());
|
||||
// 客户订单号
|
||||
resultMap.put(MesExtConstWords.CUST_ORDER_NO, workOrder.getCustOrderNo());
|
||||
// 客户零件号
|
||||
resultMap.put(MesExtConstWords.CUST_PART_NO, workOrder.getPartNo());
|
||||
// 客户条码
|
||||
resultMap.put(MesExtConstWords.SN, workOrder.getSn());
|
||||
// 备注
|
||||
resultMap.put(MesExtConstWords.REMARK, customerCarModel == null ? "" : customerCarModel.getRemark());
|
||||
// 重打印
|
||||
resultMap.put(MesExtConstWords.REPRINT, "重打印");
|
||||
// 打印时间
|
||||
resultMap.put(MesExtConstWords.PRINT_TIME, TimeTool.getNowTime("yyyyMMdd HH:mm:ss"));
|
||||
// EDI接口时间 取工单plan_start_time
|
||||
resultMap.put(MesExtConstWords.EDI_REC_TIME, workOrder.getPlanStartTime());
|
||||
|
||||
// 总个数
|
||||
Integer totalCount = partProdGroup.getTotalCount();
|
||||
// 为空时显示内容
|
||||
String isNullViewContent = StringUtils.isEmpty(partProdGroup.getIsNullViewContent()) ? "" : partProdGroup.getIsNullViewContent();
|
||||
for (Integer index = 0; index < totalCount; index++) {
|
||||
String displayValue = workOrderAssemblyList.size() -1 < index ? isNullViewContent : workOrderAssemblyList.get(0).getDisplayValue();
|
||||
|
||||
resultMap.put(MesExtConstWords.ASSEMBLY_PARAM + (index+1), StringUtils.isEmpty(displayValue) ? "" : displayValue);
|
||||
}
|
||||
|
||||
printDataMapList.add(resultMap);
|
||||
|
||||
model.setPrintContextList(packResultMapList(model, printDataMapList));
|
||||
|
||||
return model;
|
||||
}
|
||||
|
||||
private List<Map<String, Object>> packResultMapList(MesProduceSnPrintModel printModel, List<Map<String, Object>> printTemplateDateList) {
|
||||
List<Map<String, Object>> resultMapList = new ArrayList<>();
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
resultMap.put(MesExtConstWords.LABEL_TEMPLATE, printModel.getMesLabelTemplate());
|
||||
resultMap.put(MesExtConstWords.TEMPLATE_DATA, printTemplateDateList);
|
||||
resultMap.put(MesExtConstWords.TEMPLATE_CODE, printModel.getMesLabelTemplate().getTemplateCode());
|
||||
resultMap.put(MesExtConstWords.PRINTER, printModel.getPrinter());
|
||||
resultMapList.add(resultMap);
|
||||
return resultMapList;
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue