报工生产汇报修改

tags/yfai-mes-ext-v1.0
jun 12 months ago
parent 73933cbf74
commit 488a29951b

@ -241,15 +241,14 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getWorkCenterCode(), "workCenterCode", ddlPackBean);
if (!mesWorkCenterRDao.isExitByHql(ddlPackBean)) {
MesWorkCenter mesWorkCenter = mesWorkCenterRDao.getByProperty(ddlPackBean);
if (Objects.isNull(mesWorkCenter)) {
MesException.throwMesBusiException("产线【%s】不存在", item.getWorkCenterCode());
}
//校验标识
//若工单类型为排序
if (item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.SORT.getValue()) {
ValidatorBean.checkNotNull(item.getOrderFlag(), "标识不能为空");
ValidatorBean.checkNotNull(item.getPlanStartTime(), "计划开始时间不能为空");
ValidatorBean.checkNotNull(item.getPlanEndTime(), "计划结束时间不能为空");
//若工单类型为排序 标识为 N E P S
if (item.getOrderFlag() != MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.S.getValue() &&
item.getOrderFlag() != MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getValue() &&
@ -265,6 +264,15 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.build();
}
if (StringUtil.isEmpty(item.getPlanStartTime()) || StringUtil.isEmpty(item.getPlanEndTime())) {
packPlanTime(item);
}
//生产版本为空
if(Objects.isNull(item.getProductVersion())){
MesProductVersion mesProductVersion = getMesProductVersion(item, mesWorkCenter);
item.setProductVersion(mesProductVersion.getProductVersion());
}
//校验vin号是否重复
ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getVinCode(), "vinCode", ddlPackBean);
@ -286,41 +294,19 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
.build();
}
if (StringUtil.isEmpty(item.getPlanStartTime()) || StringUtil.isEmpty(item.getPlanEndTime())) {
ValidatorBean.checkNotNull(item.getPlanDate(), "计划日期不能为空");
ValidatorBean.checkNotNull(item.getShiftCode(), "班次不能为空");
//查询班次信息
ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getWorkCenterCode(), "workCenterCode", ddlPackBean);
DdlPreparedPack.getStringEqualPack(item.getShiftCode(), "shiftCode", ddlPackBean);
MesShift mesShift = mesShiftRDao.getByProperty(ddlPackBean);
if (Objects.isNull(mesShift)) {
MesException.throwMesBusiException("产线【%s】班次【%s】信息不存在", item.getWorkCenterCode(), item.getShiftCode());
}
item.setShiftName(mesShift.getShiftName());
//拼接
item.setPlanStartTime(item.getPlanDate() + " " + mesShift.getStartTime());
item.setPlanEndTime(item.getPlanDate() + " " + mesShift.getEndTime());
try {
int windowStartEndTimeCompare = this.compareDateTime(DateUtil.BASE_FORMAT, item.getPlanStartTime(), item.getPlanEndTime());
if (windowStartEndTimeCompare > 0) {
item.setPlanEndTime(TimeTool.pareDateToString(DateUtil.addDays(item.getPlanEndTime(),1)));
}
} catch (Exception e) {
MesException.throwMesBusiException("时间格式异常");
}
packPlanTime(item);
}
//校验物料生产版本是否存在
ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getPartNo(), "partNo", ddlPackBean);
DdlPreparedPack.getStringEqualPack(item.getWorkCenterCode(), "workCenterCode", ddlPackBean);
DdlPreparedPack.getStringEqualPack(item.getProductVersion(), "productVersion", ddlPackBean);
if (!mesProductVersionRDao.isExitByHql(ddlPackBean)) {
MesException.throwMesBusiException("物料【%s】产线【%s】生产版本【%s】信息不存在", item.getPartNo(),item.getWorkCenterCode(), item.getProductVersion());
}
checkMesProductVersion(item, mesWorkCenter);
} else {
ValidatorBean.checkNotNull(item.getPlanStartTime(), "计划开始时间不能为空");
ValidatorBean.checkNotNull(item.getPlanEndTime(), "计划结束时间不能为空");
//生产版本为空
if(Objects.isNull(item.getProductVersion())){
MesProductVersion mesProductVersion = getMesProductVersion(item, mesWorkCenter);
item.setProductVersion(mesProductVersion.getProductVersion());
}
//拼接
// item.setPlanStartTime(item.getPlanStartTime() + " " + "00:00:00");
// item.setPlanEndTime(item.getPlanEndTime() + " " + "23:59:59");
@ -333,6 +319,56 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.CREATE.getValue());
}
private void checkMesProductVersion(MesWorkOrder item, MesWorkCenter mesWorkCenter) {
DdlPackBean ddlPackBean;
ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getPartNo(), "partNo", ddlPackBean);
DdlPreparedPack.getStringEqualPack(mesWorkCenter.getSapWorkCenter(), "workCenterCode", ddlPackBean);
DdlPreparedPack.getStringEqualPack(item.getProductVersion(), "productVersion", ddlPackBean);
if (!mesProductVersionRDao.isExitByHql(ddlPackBean)) {
MesException.throwMesBusiException("物料【%s】产线【%s】生产版本【%s】信息不存在", item.getPartNo(), mesWorkCenter.getWorkCenterCode(), item.getProductVersion());
}
}
private MesProductVersion getMesProductVersion(MesWorkOrder item, MesWorkCenter mesWorkCenter) {
DdlPackBean ddlPackBean;
ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getPartNo(), "partNo", ddlPackBean);
DdlPreparedPack.getStringEqualPack(mesWorkCenter.getSapWorkCenter(), "workCenterCode", ddlPackBean);
ddlPackBean.setOrderByStr(" order by createDatetime desc ");
MesProductVersion mesProductVersion = mesProductVersionRDao.getByProperty(ddlPackBean);
if(Objects.isNull(mesProductVersion)){
MesException.throwMesBusiException("物料【%s】工作中心【%s】对应的生产版本信息不存在");
}
return mesProductVersion;
}
private void packPlanTime(MesWorkOrder item) {
DdlPackBean ddlPackBean;
ValidatorBean.checkNotNull(item.getPlanDate(), "计划日期不能为空");
ValidatorBean.checkNotNull(item.getShiftCode(), "班次不能为空");
//查询班次信息
ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getWorkCenterCode(), "workCenterCode", ddlPackBean);
DdlPreparedPack.getStringEqualPack(item.getShiftCode(), "shiftCode", ddlPackBean);
MesShift mesShift = mesShiftRDao.getByProperty(ddlPackBean);
if (Objects.isNull(mesShift)) {
MesException.throwMesBusiException("产线【%s】班次【%s】信息不存在", item.getWorkCenterCode(), item.getShiftCode());
}
item.setShiftName(mesShift.getShiftName());
//拼接
item.setPlanStartTime(item.getPlanDate() + " " + mesShift.getStartTime());
item.setPlanEndTime(item.getPlanDate() + " " + mesShift.getEndTime());
try {
int windowStartEndTimeCompare = this.compareDateTime(DateUtil.BASE_FORMAT, item.getPlanStartTime(), item.getPlanEndTime());
if (windowStartEndTimeCompare > 0) {
item.setPlanEndTime(TimeTool.pareDateToString(DateUtil.addDays(item.getPlanEndTime(),1)));
}
} catch (Exception e) {
MesException.throwMesBusiException("时间格式异常");
}
}
protected void onUpdateBean(MesWorkOrder item) {
}
@ -348,9 +384,18 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
public void doProductReport(MesWorkOrder mesWorkOrder) {
//查询物料信息
MesPart mesPart = iMesPartService.getPartByPartNo(mesWorkOrder.getPartNo(), mesWorkOrder.getOrganizeCode());
//获取生产版本
//查询产线信息
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesWorkOrder.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(mesPart.getPartNo(), "partNo", ddlPackBean);
DdlPreparedPack.getStringEqualPack(mesWorkOrder.getWorkCenterCode(), "workCenterCode", ddlPackBean);
MesWorkCenter mesWorkCenter = mesWorkCenterRDao.getByProperty(ddlPackBean);
if (Objects.isNull(mesWorkCenter)) {
MesException.throwMesBusiException("产线【%s】不存在", mesWorkOrder.getWorkCenterCode());
}
//获取生产版本
ddlPackBean = DdlPackBean.getDdlPackBean(mesWorkOrder.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(mesWorkOrder.getPartNo(), "partNo", ddlPackBean);
DdlPreparedPack.getStringEqualPack(mesWorkCenter.getSapWorkCenter(), "workCenterCode", ddlPackBean);
DdlPreparedPack.getStringEqualPack(mesWorkOrder.getProductVersion(), "productVersion", ddlPackBean);
MesProductVersion mesProductVersion = mesProductVersionRDao.getByProperty(ddlPackBean);
if (null == mesProductVersion) {
MesException.throwMesBusiException("物料【%s】生产版本信息不存在", mesWorkOrder.getPartNo());
@ -358,7 +403,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
//物料+生产版本获取bom信息
ddlPackBean = DdlPackBean.getDdlPackBean(mesWorkOrder.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(mesPart.getPartNo(), "partNo", ddlPackBean);
DdlPreparedPack.getStringEqualPack(mesProductVersion.getProductVersion(), "bomVersion", ddlPackBean);
DdlPreparedPack.getStringEqualPack(mesProductVersion.getAlternativePartList(), "bomVersion", ddlPackBean);
List<MesBom> mesBoms = mesBomRDao.findByHqlWhere(ddlPackBean);
if (CollectionUtils.isEmpty(mesBoms)) {
MesException.throwMesBusiException("物料【%s】生产版本【%s】对应bom信息不存在",
@ -395,13 +440,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
GenSerialNoModel genSerialNoModel = new GenSerialNoModel("REPORT_SN");
genSerialNoModel.setPartNo(mesWorkOrder.getPartNo());
List<String> resultList = syncFuncService.syncSerialNo(genSerialNoModel, mesWorkOrder.getCreateUser(), mesWorkOrder.getOrganizeCode(), mesWorkOrder.getNum()).getResultList();
//查询产线信息
ddlPackBean = DdlPackBean.getDdlPackBean(mesWorkOrder.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(mesWorkOrder.getWorkCenterCode(), "workCenterCode", ddlPackBean);
MesWorkCenter mesWorkCenter = mesWorkCenterRDao.getByProperty(ddlPackBean);
if (Objects.isNull(mesWorkCenter)) {
MesException.throwMesBusiException("产线【%s】不存在", mesWorkOrder.getWorkCenterCode());
}
//保存数据
List<MesProductOffLine> mesProductOffLineList = new ArrayList<>();
MesProductOffLine newMesProductOffLine;

@ -1,256 +0,0 @@
//package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.excel;
//
//import cn.estsh.i3plus.mes.api.iservice.busi.IExcelImportService;
//import cn.estsh.i3plus.mes.apiservice.serviceimpl.busi.CommonService;
//import cn.estsh.i3plus.mes.apiservice.util.MesCommonUtil;
//import cn.estsh.i3plus.platform.common.convert.ConvertBean;
//import cn.estsh.i3plus.pojo.mes.bean.MesPartPtr;
//import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder;
//import cn.estsh.i3plus.pojo.mes.model.ExcelImportErrorModel;
//import cn.estsh.i3plus.pojo.mes.model.ExcelImportResultModel;
//import cn.estsh.i3plus.pojo.mes.repository.MesPartPtrRepository;
//import cn.estsh.i3plus.pojo.mes.repository.MesPartRepository;
//import cn.estsh.i3plus.pojo.mes.repository.MesWorkOrderRepository;
//import cn.estsh.i3plus.pojo.mes.unit.MesExtEnumUtil;
//import lombok.extern.slf4j.Slf4j;
//import org.apache.poi.ss.usermodel.CellType;
//import org.apache.poi.ss.usermodel.Row;
//import org.apache.poi.ss.usermodel.Sheet;
//import org.apache.poi.ss.usermodel.Workbook;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//import org.springframework.util.CollectionUtils;
//import org.springframework.util.StringUtils;
//
//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
///**
// * @Description : MES工单导入BTO
// * @Reference :
// * @Author : junsheng.li
// * @CreateDate 2024/5/16 14:14
// * @Modify:
// **/
//@Service
//@Slf4j
//public class MesWorkOrderBtoExcelServiceImpl implements IExcelImportService {
//
// @Autowired
// private CommonService commonService;
// @Autowired
// private MesPartRepository partRepository;
// @Autowired
// private MesWorkOrderRepository mesWorkOrderRDao;
//
// @Override
// public ExcelImportResultModel insertDataByExcel(Workbook workbook, String organizeCode, String userName) {
//
// //读取表格
// ExcelImportResultModel excelImportResultModel = this.sheetExtractMesWorkOrder(workbook.getSheetAt(0), organizeCode, userName);
// //数据入库
// this.insertExcelMesWorkOrder(excelImportResultModel);
// return excelImportResultModel;
//// return null;
// }
//
// /**
// * 工位BOM表导入-读取表格
// *
// * @param sheetAt
// * @param organizeCode
// * @param userName
// * @return
// */
// private ExcelImportResultModel sheetExtractMesWorkOrder(Sheet sheetAt, String organizeCode, String userName) {
//
// //从0行开始读取
// int totalNumberOfRows = sheetAt.getLastRowNum() + 1;
//
// //MesStationBom集合
// List<MesPartPtr> partPtrList = new ArrayList<>();
//
// //成功数量
// Integer successRowNum = 0;
// //失败数量
// Integer failRowNum = 0;
// //错误的行号
// String errorRows = "";
//
// //错误行信息集合
// List<ExcelImportErrorModel> excelImportErrorModels = new ArrayList<>();
//
// // 查询物料表
// Map<String, Object> partCodeEntityMap;
// try {
// partCodeEntityMap = MesCommonUtil.getCodeEntityMap(partRepository, "partNo", organizeCode, "物料表");
// } catch (Exception e) {
// partCodeEntityMap = null;
// }
//
//// //查询关键件条码校验规则表
//// List<MesPartPtr> partPtrList = partPtrRepository.findByProperty(new String[]{MesConstWords.ORGANIZE_CODE, MesConstWords.IS_DELETED},
//// new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()});
//// Map<String, List<MesPartPtr>> preventionMap =
//// partPtrList.stream().collect(Collectors.groupingBy(k -> k.getPreventionObjectCode() + "&" + k.getPartNo()));
//
//
// Map<String, String> map = new HashMap<>();
//
// for (int i = (sheetAt.getFirstRowNum() + 1); i < totalNumberOfRows; i++) {
// Row row = sheetAt.getRow(i);
// //空行跳过
// if (null == row) {
// continue;
// }
// //获取总列数
// Short lastCellNum = row.getLastCellNum();
// if (lastCellNum > 0) {
//
// int rowNum = i + 1; //当前行号
// int errorNum = 0; //错误数量
// String cellNum = ""; //错误列号
// String errorInfo = ""; //错误信息
//
// //生产线代码
// String workCenterCode = null;
// try {
// row.getCell(0).setCellType(CellType.STRING);
// workCenterCode = row.getCell(0, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
// } catch (Exception e) {
// }
// //ERP总成零件号
// String partNo = null;
// try {
// row.getCell(1).setCellType(CellType.STRING);
// partNo = row.getCell(1, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
// } catch (Exception e) {
// }
// //计划开始时间yyyy-MM-dd
// String startTime = null;
// try {
// row.getCell(2).setCellType(CellType.STRING);
// startTime = row.getCell(2, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
// } catch (Exception e) {
// }
// //计划结束时间yyyy-MM-dd
// String endTime = null;
// try {
// row.getCell(3).setCellType(CellType.STRING);
// endTime = row.getCell(3, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
// } catch (Exception e) {
// }
//
// //数量
// String qty = null;
// try {
// row.getCell(4).setCellType(CellType.STRING);
// qty = row.getCell(4, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
// } catch (Exception e) {
// }
//
// //校验产线编号
// if (StringUtils.isEmpty(workCenterCode)) {
// errorNum++;
// cellNum += "A;";
// errorInfo += "第A列数据必填;";
// }
//
// //ERP总成零件号
// if (StringUtils.isEmpty(partNo)) {
// errorNum++;
// cellNum += "B;";
// errorInfo += "第B列数据必填;";
// }
// //计划开始时间yyyy-MM-dd
// if (StringUtils.isEmpty(startTime)) {
// errorNum++;
// cellNum += "C;";
// errorInfo += "第C列数据必填;";
// }
// //校验替换零件号
// if (StringUtils.isEmpty()) {
// errorNum++;
// cellNum += "J;";
// errorInfo += "第J列数据必填;";
// }
// //校验总成类型
// if (StringUtils.isEmpty(partTypeCode)) {
// errorNum++;
// cellNum += "L;";
// errorInfo += "第L列数据必填;";
// }
//
//
// //没有错误的时候封装MesStationBom
// if (errorNum == 0) {
//
// MesPartPtr partPtr;
//// if (preventionMap.containsKey(preventionObjectCode + "&" + partNo)) {
//// itemPartErrorPrevention = preventionMap.get(partNo).get(0);
//// ConvertBean.serviceModelUpdate(itemPartErrorPrevention, userName);
//// } else {
// partPtr = new MesPartPtr();
// ConvertBean.serviceModelInitialize(partPtr, userName);
//// }
// partPtr.setWorkCenterCode(workCenterCode);
// partPtr.setStartTime(startTime);
// partPtr.setEndTime(endTime);
// partPtr.setPrtVehicleCount(Integer.parseInt(prtVehicleCount));
// partPtr.setPrtVehicleActualCount(Integer.parseInt(prtVehicleActualCount));
// partPtr.setSourcePartNo(sourcePartNo);
// partPtr.setTargetPartNo(targetPartNo);
// partPtr.setIsCustomerSendPrtInfo(Integer.parseInt(isCustomerSendPrtInfo));
// partPtr.setSeqInfoPrtPart(seqInfoPrtPart);
// partPtr.setPtrProjectNo(ptrProjectNo);
// partPtr.setTargetPartNoSnRuleCode(targetPartNoSnRuleCode);
// partPtr.setPartTypeCode(Integer.parseInt(partTypeCode));
// partPtr.setIsInterPrt(Integer.parseInt(isInterPrt));
// partPtr.setVisualSingleDisplayItem(visualSingleDisplayItem);
// partPtr.setStartSeq(startSeq);
// partPtr.setVisualSingleReplacePosition(visualSingleReplacePosition);
// partPtr.setHardwareVersionNo(hardwareVersionNo);
// partPtr.setSoftwareVersionNo(softwareVersionNo);
// partPtr.setStatus(Integer.parseInt(status));
// partPtr.setMemo(memo);
// partPtrList.add(partPtr);
// successRowNum++;
// } else {
// //封装错误行信息ExcelImportErrorModel
// excelImportErrorModels = commonService.getExcelImportErrorModels(excelImportErrorModels, rowNum, errorNum, cellNum, errorInfo);
//
// errorRows += rowNum + ";";
// failRowNum++;
// }
//
// }
// }
//
// //校验EXCEL数据
// commonService.checkExcelData(failRowNum, successRowNum, errorRows);
// //封装返回结果
// ExcelImportResultModel excelImportResultModel = commonService.getExcelImportResultModel(failRowNum, successRowNum, excelImportErrorModels, errorRows);
// excelImportResultModel.setExcelList((failRowNum > 0) ? null : partPtrList);
// return excelImportResultModel;
// }
//
// private void insertExcelMesWorkOrder(ExcelImportResultModel excelImportResultModel) {
// if (excelImportResultModel == null) {
// return;
// }
// List<MesWorkOrder> partPtrList = excelImportResultModel.getExcelList();
// if (CollectionUtils.isEmpty(partPtrList)) {
// return;
// }
//
// partPtrList.forEach(k -> {
// if (StringUtils.isEmpty(k.getId())) {
// mesWorkOrderRDao.insert(k);
// } else {
// mesWorkOrderRDao.update(k);
// }
// });
// }
//}

@ -0,0 +1,366 @@
//package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.excel;
//
//import cn.estsh.i3plus.ext.mes.apiservice.unit.exception.MesException;
//import cn.estsh.i3plus.mes.api.iservice.busi.IExcelImportService;
//import cn.estsh.i3plus.mes.apiservice.serviceimpl.busi.CommonService;
//import cn.estsh.i3plus.mes.apiservice.util.DateUtil;
//import cn.estsh.i3plus.mes.apiservice.util.MesCommonUtil;
//import cn.estsh.i3plus.platform.common.convert.ConvertBean;
//import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
//import cn.estsh.i3plus.platform.common.tool.TimeTool;
//import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
//import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
//import cn.estsh.i3plus.pojo.mes.bean.*;
//import cn.estsh.i3plus.pojo.mes.model.ExcelImportErrorModel;
//import cn.estsh.i3plus.pojo.mes.model.ExcelImportResultModel;
//import cn.estsh.i3plus.pojo.mes.repository.*;
//import cn.estsh.i3plus.pojo.mes.unit.DateUtilExt;
//import cn.estsh.i3plus.pojo.mes.unit.MesExtEnumUtil;
//import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
//import cn.hutool.core.io.unit.DataUnit;
//import io.swagger.annotations.ApiParam;
//import lombok.extern.slf4j.Slf4j;
//import org.apache.poi.ss.usermodel.CellType;
//import org.apache.poi.ss.usermodel.Row;
//import org.apache.poi.ss.usermodel.Sheet;
//import org.apache.poi.ss.usermodel.Workbook;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//import org.springframework.util.CollectionUtils;
//import org.springframework.util.StringUtils;
//
//import javax.persistence.Column;
//import java.util.*;
//
//import static cn.estsh.i3plus.platform.plugin.echarts.code.Trigger.item;
//
///**
// * @Description : MES工单导入排序
// * @Reference :
// * @Author : junsheng.li
// * @CreateDate 2024/5/16 14:14
// * @Modify:
// **/
//@Service
//@Slf4j
//public class MesWorkOrderSortExcelServiceImpl implements IExcelImportService {
//
// @Autowired
// private CommonService commonService;
// @Autowired
// private MesPartRepository partRepository;
// @Autowired
// private MesWorkOrderRepository mesWorkOrderRDao;
// @Autowired
// private MesWorkCenterRepository mesWorkCenterRDao;
// @Autowired
// private MesShiftRepository mesShiftRDao;
// @Autowired
// private MesProductVersionRepository mesProductVersionRDao;
//
// @Override
// public ExcelImportResultModel insertDataByExcel(Workbook workbook, String organizeCode, String userName) {
//
// //读取表格
// ExcelImportResultModel excelImportResultModel = this.sheetExtractMesWorkOrder(workbook.getSheetAt(0), organizeCode, userName);
// //数据入库
// this.insertExcelMesWorkOrder(excelImportResultModel);
// return excelImportResultModel;
//// return null;
// }
//
// /**
// * 工位BOM表导入-读取表格
// *
// * @param sheetAt
// * @param organizeCode
// * @param userName
// * @return
// */
// private ExcelImportResultModel sheetExtractMesWorkOrder(Sheet sheetAt, String organizeCode, String userName) {
//
// //从0行开始读取
// int totalNumberOfRows = sheetAt.getLastRowNum() + 1;
//
// //MesStationBom集合
// List<MesWorkOrder> mesWorkOrderList = new ArrayList<>();
//
// //成功数量
// Integer successRowNum = 0;
// //失败数量
// Integer failRowNum = 0;
// //错误的行号
// String errorRows = "";
//
// //错误行信息集合
// List<ExcelImportErrorModel> excelImportErrorModels = new ArrayList<>();
// //vinCode集合
// List<String> vinCodeList = new ArrayList<>();
//
// // 查询物料表
// Map<String, Object> partNoMap;
// try {
// partNoMap = MesCommonUtil.getCodeEntityMap(partRepository, "partNo", organizeCode, "物料表");
// } catch (Exception e) {
// partNoMap = null;
// }
// // 查询产线信息
// Map<String, Object> mesWorkCenterMap;
// try {
// mesWorkCenterMap = MesCommonUtil.getCodeEntityMap(mesWorkCenterRDao, "workCenterCode", organizeCode, "工作中心表");
// } catch (Exception e) {
// mesWorkCenterMap = null;
// }
// // 班次信息
// Map<String, Object> shiftMap;
// try {
// shiftMap = MesCommonUtil.getCodeEntityMap(mesShiftRDao, "shiftCode", organizeCode, "班次信息表");
// } catch (Exception e) {
// shiftMap = null;
// }
// // 工单信息
// Map<String, Object> vinCodeMap;
// try {
// vinCodeMap = MesCommonUtil.getCodeEntityMap(mesWorkOrderRDao, "vinCode", organizeCode, "工单信息表");
// } catch (Exception e) {
// vinCodeMap = null;
// }
// //查询生产版本
// DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
// ddlPackBean.setOrderByStr(" order by createDatetime desc ");
// List<MesProductVersion> productVersionList = mesProductVersionRDao.findByHqlWhere(ddlPackBean);
// if(CollectionUtils.isEmpty(productVersionList)){
// MesException.throwMesBusiException("生产版本信息不存在");
// }
//
// Map<String, String> map = new HashMap<>();
//
// for (int i = (sheetAt.getFirstRowNum() + 1); i < totalNumberOfRows; i++) {
// Row row = sheetAt.getRow(i);
// //空行跳过
// if (null == row) {
// continue;
// }
// //获取总列数
// Short lastCellNum = row.getLastCellNum();
// if (lastCellNum > 0) {
//
// int rowNum = i + 1; //当前行号
// int errorNum = 0; //错误数量
// String cellNum = ""; //错误列号
// String errorInfo = ""; //错误信息
// String planStartTime = null;
// String planEndTime = null;
//
// //工单标识S:10/P:20/N:30/E:40
// String orderFlag = null;
// try {
// row.getCell(0).setCellType(CellType.STRING);
// orderFlag = row.getCell(0, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
// } catch (Exception e) {
// }
// //生产线代码
// String workCenterCode = null;
// try {
// row.getCell(1).setCellType(CellType.STRING);
// workCenterCode = row.getCell(1, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
// } catch (Exception e) {
// }
// //ERP总成零件号
// String partNo = null;
// try {
// row.getCell(2).setCellType(CellType.STRING);
// partNo = row.getCell(2, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
// } catch (Exception e) {
// }
// //计划时间yyyy-MM-dd
// String planDate = null;
// try {
// row.getCell(3).setCellType(CellType.STRING);
// planDate = row.getCell(3, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
// } catch (Exception e) {
// }
// //班次1早班/2晚班
// String shiftCode = null;
// try {
// row.getCell(4).setCellType(CellType.STRING);
// shiftCode = row.getCell(4, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
// } catch (Exception e) {
// }
// //客户订单号
// String custOrder = null;
// try {
// row.getCell(5).setCellType(CellType.STRING);
// custOrder = row.getCell(5, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
// } catch (Exception e) {
// }
// //vin号
// String vinCode = null;
// try {
// row.getCell(6).setCellType(CellType.STRING);
// vinCode = row.getCell(6, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
// } catch (Exception e) {
// }
// //校验工单标识
// if (StringUtils.isEmpty(orderFlag)) {
// errorNum++;
// cellNum += "A;";
// errorInfo += "第A列数据必填;";
// }else{
// if (null == MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.valueOfDescription(Integer.parseInt(orderFlag))) {
// errorNum++;
// cellNum += "A;";
// errorInfo += "第A列数据无效";
// }
// }
// //校验产线编号
// if (StringUtils.isEmpty(workCenterCode)) {
// errorNum++;
// cellNum += "B;";
// errorInfo += "第列数据必填;";
// }else{
// if (Objects.isNull(mesWorkCenterMap)||!mesWorkCenterMap.containsKey(workCenterCode)) {
// errorNum++;
// cellNum += "B;";
// errorInfo += "第B列数据无效";
// }
// }
// //ERP总成零件号
// if (StringUtils.isEmpty(partNo)) {
// errorNum++;
// cellNum += "C;";
// errorInfo += "第C列数据必填;";
// }else{
// if (Objects.isNull(partNoMap)||!partNoMap.containsKey(partNo)) {
// errorNum++;
// cellNum += "C;";
// errorInfo += "第C列数据无效";
// }
// }
// //计划开始时间yyyy-MM-dd
// if (StringUtils.isEmpty(planDate)) {
// errorNum++;
// cellNum += "D;";
// errorInfo += "第D列数据必填;";
// }
// //班次1早班/2晚班
// if (StringUtils.isEmpty(shiftCode)) {
// errorNum++;
// cellNum += "E;";
// errorInfo += "第E列数据必填;";
// }else{
// if (Objects.isNull(shiftMap)||!shiftMap.containsKey(shiftCode)) {
// errorNum++;
// cellNum += "E;";
// errorInfo += "第E列数据无效";
// }else{
// MesShift mesShift = (MesShift) shiftMap.get(shiftCode);
// //拼接
// planStartTime = planDate + " " + mesShift.getStartTime();
// planEndTime = planDate + " " + mesShift.getEndTime();
// try {
// int windowStartEndTimeCompare = DateUtilExt.compareDateTime(DateUtil.BASE_FORMAT, planStartTime, planEndTime);
// if (windowStartEndTimeCompare > 0) {
// planEndTime = TimeTool.pareDateToString(DateUtil.addDays(planEndTime,1));
// }
// } catch (Exception e) {
// errorNum++;
// cellNum += "E;";
// errorInfo += "第E列班次对应时间格式异常";
// }
// }
// }
// //vin号
// if (StringUtils.isEmpty(vinCode)) {
// errorNum++;
// cellNum += "G;";
// errorInfo += "第G列数据必填;";
// }else{
// if(vinCodeList.contains(vinCode)||(!Objects.isNull(vinCodeMap) && vinCodeMap.containsKey(vinCode))){
// errorNum++;
// cellNum += "G;";
// errorInfo += "第G列数据重复";
// }else{
// vinCodeList.add(vinCode);
// }
// }
//
// //没有错误的时候封装MesWorkOrder
// if (errorNum == 0) {
// MesWorkOrder mesWorkOrder = new MesWorkOrder();
// ConvertBean.serviceModelInitialize(mesWorkOrder, userName);
// mesWorkOrder.setOrganizeCode(organizeCode);
// mesWorkOrder.setWorkCenterCode(workCenterCode);
// MesWorkCenter center = (MesWorkCenter) mesWorkCenterMap.get(workCenterCode);
// mesWorkOrder.setAreaCode(center.getAreaCode());
// mesWorkOrder.setErpWorkCenterCode(center.getSapWorkCenter());
// MesPart mesPart = (MesPart)partNoMap.get(partNo);
// mesWorkOrder.setPartNo(mesPart.getPartNo());
// mesWorkOrder.setPartNameRdd(mesPart.getPartName());
// mesWorkOrder.setPlanStartTime(planStartTime);
// mesWorkOrder.setPlanEndTime(planEndTime);
// mesWorkOrder.setQty(1d);
// mesWorkOrder.setShiftCode(shiftCode);
// MesShift mesShift = (MesShift) shiftMap.get(shiftCode);
// mesWorkOrder.setShiftName(mesShift.getShiftName());
// mesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.CREATE.getValue());
// mesWorkOrder.setWorkOrderType(MesExtEnumUtil.ORDER_TYPE.SORT.getValue());
// mesWorkOrder.setOrderFlag(Integer.parseInt(orderFlag));
// item.getWorkOrderType() ==
// mesWorkOrder.setEndTime(endTime);
// mesWorkOrder.setPrtVehicleCount(Integer.parseInt(prtVehicleCount));
// mesWorkOrder.setPrtVehicleActualCount(Integer.parseInt(prtVehicleActualCount));
// mesWorkOrder.setSourcePartNo(sourcePartNo);
// mesWorkOrder.setTargetPartNo(targetPartNo);
// partPtr.setIsCustomerSendPrtInfo(Integer.parseInt(isCustomerSendPrtInfo));
// partPtr.setSeqInfoPrtPart(seqInfoPrtPart);
// partPtr.setPtrProjectNo(ptrProjectNo);
// partPtr.setTargetPartNoSnRuleCode(targetPartNoSnRuleCode);
// partPtr.setPartTypeCode(Integer.parseInt(partTypeCode));
// partPtr.setIsInterPrt(Integer.parseInt(isInterPrt));
// partPtr.setVisualSingleDisplayItem(visualSingleDisplayItem);
// partPtr.setStartSeq(startSeq);
// partPtr.setVisualSingleReplacePosition(visualSingleReplacePosition);
// partPtr.setHardwareVersionNo(hardwareVersionNo);
// partPtr.setSoftwareVersionNo(softwareVersionNo);
// partPtr.setStatus(Integer.parseInt(status));
// partPtr.setMemo(memo);
// partPtrList.add(partPtr);
// successRowNum++;
// } else {
// //封装错误行信息ExcelImportErrorModel
// excelImportErrorModels = commonService.getExcelImportErrorModels(excelImportErrorModels, rowNum, errorNum, cellNum, errorInfo);
//
// errorRows += rowNum + ";";
// failRowNum++;
// }
//
// }
// }
//
// //校验EXCEL数据
// commonService.checkExcelData(failRowNum, successRowNum, errorRows);
// //封装返回结果
// ExcelImportResultModel excelImportResultModel = commonService.getExcelImportResultModel(failRowNum, successRowNum, excelImportErrorModels, errorRows);
// excelImportResultModel.setExcelList((failRowNum > 0) ? null : partPtrList);
// return excelImportResultModel;
// }
//
// private void insertExcelMesWorkOrder(ExcelImportResultModel excelImportResultModel) {
// if (excelImportResultModel == null) {
// return;
// }
// List<MesWorkOrder> partPtrList = excelImportResultModel.getExcelList();
// if (CollectionUtils.isEmpty(partPtrList)) {
// return;
// }
//
// partPtrList.forEach(k -> {
// if (StringUtils.isEmpty(k.getId())) {
// mesWorkOrderRDao.insert(k);
// } else {
// mesWorkOrderRDao.update(k);
// }
// });
// }
//}
Loading…
Cancel
Save