mes-basic/src/main/java/com/chinaztt/mes/basic/mapper/ParamMapper.java
@@ -86,4 +86,6 @@ * @return */ List<ParamDTO> getLastParamById(@org.apache.ibatis.annotations.Param("paramDTO") ParamDTO paramDTO); List<String> getNos(String code); } mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/ParamServiceImpl.java
@@ -17,9 +17,6 @@ package com.chinaztt.mes.basic.service.impl; import cn.hutool.core.collection.CollectionUtil; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.support.ExcelTypeEnum; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -33,9 +30,6 @@ import com.chinaztt.mes.basic.mapper.ParamMapper; import com.chinaztt.mes.basic.service.ParamService; import com.chinaztt.mes.basic.util.DictUtils; import com.chinaztt.mes.common.util.easyexcel.CustemHandler; import com.chinaztt.mes.common.util.easyexcel.EasyExcelUtils; import com.chinaztt.mes.common.util.easyexcel.template.ParamTemplate; import com.chinaztt.ztt.admin.api.entity.SysDictItem; import com.chinaztt.ztt.common.core.util.R; import lombok.AllArgsConstructor; @@ -43,8 +37,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.List; import java.util.stream.Collectors; @@ -163,4 +157,16 @@ } } private String codeMake() { // åºå®å符串 GX + å¹´ææ¥ + 01 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd"); String yrar = formatter.format(LocalDateTime.now()); String code = "GX" + yrar; List<String> parameterItem = baseMapper.getNos(code); if (CollectionUtil.isEmpty(parameterItem)) { code = code + "01"; } return code; } } mes-basic/src/main/resources/mapper/ParamMapper.xml
@@ -117,4 +117,10 @@ WHERE A."id" = #{paramDTO.technologyOperationTemplateId} ORDER BY B.sort </select> <select id="getNos" resultType="java.lang.String"> SELECT parameter_item FROM basic_param WHERE code=#{code} </select> </mapper> mes-technology/src/main/java/com/chinaztt/mes/technology/controller/StructureController.java
@@ -68,29 +68,9 @@ */ @PostMapping("/uploadExt") public R uploadExt(@RequestParam("file") MultipartFile file) { //ExcelReader excelReader = null; //try { // ExcelReaderBuilder excelReaderBuilder = EasyExcel.read(file.getInputStream()); // excelReader = excelReaderBuilder.build(); // List<ReadSheet> sheets = excelReader.excelExecutor().sheetList(); // List<ReadSheet> readSheetList = new ArrayList<>(); // for (ReadSheet sheet : sheets) { // ReadSheet readSheet = EasyExcel.readSheet(sheet.getSheetName()).registerReadListener(new StructureUploadExtListener(structureService)).build(); // readSheetList.add(readSheet); // } // excelReader.read(readSheetList); //} catch (IOException e) { // e.printStackTrace(); // return R.failed(e.getMessage()); //} finally { // if (excelReader != null) { // // è¿éåä¸å«å¿è®°å ³éï¼è¯»çæ¶åä¼åå»ºä¸´æ¶æä»¶ï¼å°æ¶ç£çä¼å´©ç // excelReader.finish(); // } //} ExcelReader excelReader = null; try { excelReader = EasyExcel.read(file.getInputStream(), StructureData.class, new StructureUploadListener(structureService, dictUtils)).build(); excelReader = EasyExcel.read(file.getInputStream(), StructureData.class, new StructureUploadListener(structureService)).build(); ReadSheet readSheet = EasyExcel.readSheet(0).build(); ReadSheet readSheet2 = EasyExcel.readSheet(1).build(); excelReader.read(readSheet,readSheet2); @@ -110,27 +90,27 @@ * ç«çå¯¼å ¥ * * @param file * @return */ @PostMapping("/upload") public R simpleRead(@RequestParam("file") MultipartFile file) { ExcelReader excelReader = null; try { excelReader = EasyExcel.read(file.getInputStream(), StructureData.class, new StructureUploadListener(structureService, dictUtils)).build(); ReadSheet readSheet = EasyExcel.readSheet(0).build(); ReadSheet readSheet2 = EasyExcel.readSheet(1).build(); excelReader.read(readSheet,readSheet2); } catch (IOException e) { e.printStackTrace(); return R.failed(e.getMessage()); } finally { if (excelReader != null) { // è¿éåä¸å«å¿è®°å ³éï¼è¯»çæ¶åä¼åå»ºä¸´æ¶æä»¶ï¼å°æ¶ç£çä¼å´©ç excelReader.finish(); } } return R.ok(); } // * @return // */ // @PostMapping("/upload") // public R simpleRead(@RequestParam("file") MultipartFile file) { // ExcelReader excelReader = null; // try { // excelReader = EasyExcel.read(file.getInputStream(), StructureData.class, new StructureUploadListener(structureService)).build(); // ReadSheet readSheet = EasyExcel.readSheet(0).build(); // ReadSheet readSheet2 = EasyExcel.readSheet(1).build(); // excelReader.read(readSheet,readSheet2); // } catch (IOException e) { // e.printStackTrace(); // return R.failed(e.getMessage()); // } finally { // if (excelReader != null) { // // è¿éåä¸å«å¿è®°å ³éï¼è¯»çæ¶åä¼åå»ºä¸´æ¶æä»¶ï¼å°æ¶ç£çä¼å´©ç // excelReader.finish(); // } // } // return R.ok(); // } /** * æ ¹æ®é¶ä»¶å·æ¥è¯¢é»è®¤BOM mes-technology/src/main/java/com/chinaztt/mes/technology/excel/StructureData.java
@@ -25,6 +25,9 @@ @ExcelProperty(value = "åä»¶åç§°ï¼å¯å¤å¡«ï¼") private String sonPartName; @ExcelProperty(value = "æ¶èå·¥åº") private String operationName; @ExcelProperty(value = "æ¨¡å ·ç¼å·") private String sharpenerNo; @@ -55,45 +58,7 @@ @ExcelProperty(value = "å è£ ä¿¡æ¯") private String packingInfo; @ExcelProperty(value = "ç¶ä»¶") private String fatherPartNo; @ExcelProperty(value = "ç³»ç»æè¿°") private String remark; @ExcelProperty(value = "çæ¬") private String fatherVersion; @ExcelProperty(value = "ç»æç±»å") private String structureType; @ExcelProperty(value = "æ¿ä»£") private String alternativeNo; @ExcelProperty(value = "æ¿ä»£æè¿°") private String alternativeDesc; @ExcelProperty(value = "è¡é¡¹å·") private String lineItemNo; @ExcelProperty(value = "åä»¶") private String childPartNo; @ExcelProperty(value = "åä»¶çæ¬") private String childVersion; @ExcelProperty(value = "åä»¶æè¿°") private String childRemark; @ExcelProperty(value = "å使°é") private String qpa; @ExcelProperty(value = "åä½") private String unit; @ExcelProperty(value = "çæ°") private String diskNum; @ExcelProperty(value = "æ¶èå·¥åº") private String operationName; } mes-technology/src/main/java/com/chinaztt/mes/technology/excel/StructureUploadExtListener.java
ÎļþÒÑɾ³ý mes-technology/src/main/java/com/chinaztt/mes/technology/excel/StructureUploadListener.java
@@ -21,16 +21,14 @@ * å设è¿ä¸ªæ¯ä¸ä¸ªDAOï¼å½ç¶æä¸å¡é»è¾è¿ä¸ªä¹å¯ä»¥æ¯ä¸ä¸ªserviceãå½ç¶å¦æä¸ç¨åå¨è¿ä¸ªå¯¹è±¡æ²¡ç¨ã */ private StructureService structureService; private DictUtils dictUtils; /** * å¦æä½¿ç¨äºspring,请使ç¨è¿ä¸ªæé æ¹æ³ãæ¯æ¬¡å建Listenerçæ¶åéè¦æspring管ççç±»ä¼ è¿æ¥ * * @param structureService */ public StructureUploadListener(StructureService structureService,DictUtils dictUtils) { public StructureUploadListener(StructureService structureService) { this.structureService = structureService; this.dictUtils = dictUtils; } /** @@ -41,23 +39,6 @@ */ @Override public void invoke(StructureData data, AnalysisContext context) { Map<String, String> dicbomtype = dictUtils.getDicKey("bom_type_db"); if (StringUtils.isEmpty(data.getAlternativeNo())) { data.setAlternativeNo("*"); } //if (StringUtils.isEmpty(data.getChildPartNo()) || StringUtils.isEmpty(data.getChildVersion()) || StringUtils.isEmpty(data.getFatherPartNo()) || StringUtils.isEmpty(data.getFatherVersion())) { // throw new RuntimeException("缺å°é¶ä»¶æ°æ®ç¼å·æè çæ¬"); //} //if (StringUtils.isEmpty(data.getQpa())) { // throw new RuntimeException("ç¼ºå°æ°é"); //} //if (StringUtils.isEmpty(data.getLineItemNo())) { // throw new RuntimeException("缺å°è¡é¡¹å·"); //} //if (StringUtils.isEmpty(data.getOperationName())) { // throw new RuntimeException("缺å°å·¥åº"); //} data.setStructureType(StringUtils.isEmpty(data.getStructureType()) ? "M" : dicbomtype.get(data.getStructureType())); list.add(data); // è¾¾å°BATCH_COUNTäºï¼éè¦å»åå¨ä¸æ¬¡æ°æ®åºï¼é²æ¢æ°æ®å 䏿¡æ°æ®å¨å åï¼å®¹æOOM if (list.size() >= BATCH_COUNT) { mes-technology/src/main/java/com/chinaztt/mes/technology/service/impl/StructureServiceImpl.java
@@ -48,6 +48,7 @@ import com.chinaztt.ztt.common.core.util.R; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; @@ -257,58 +258,41 @@ @Override public void importExcel(List<StructureData> list) { list.forEach(System.out::println); System.out.println("================================"); return; //if (CollectionUtil.isEmpty(list)) { // return; //} //List<String> uinck = new ArrayList<>(); //for (StructureData data : list) { // Part part = partMapper.selectOne(Wrappers.<Part>lambdaQuery().eq(Part::getPartNo, data.getFatherPartNo()).eq(Part::getEngChgLevel, data.getFatherVersion())); // if (part == null) { // throw new RuntimeException("é¶ä»¶å·:" + data.getFatherPartNo() + "ä¸åå¨"); // } // Structure structure = baseMapper.selectOne(Wrappers.<Structure>lambdaQuery() // .eq(Structure::getPartId, part.getId()) // .eq(Structure::getBomTypeDb, data.getStructureType()) // .eq(Structure::getAlternativeNo, data.getAlternativeNo())); // if (structure == null) { // structure = new Structure(); // structure.setPartId(part.getId()); // structure.setVersion(data.getFatherVersion()); // structure.setAlternativeDesc(data.getAlternativeDesc()); // structure.setActive(true); // structure.setBomTypeDb(data.getStructureType()); // structure.setIfsSync(false); // structure.setAlternativeNo(data.getAlternativeNo()); // baseMapper.insert(structure); // } // if (uinck.contains(structure.getId() + "_" + data.getLineItemNo())) { // throw new RuntimeException("é¶ä»¶å·:" + part.getPartNo() + "è¡é¡¹å·éå¤"); // } // Part childPart = partMapper.selectOne(Wrappers.<Part>lambdaQuery().eq(Part::getPartNo, data.getChildPartNo()).eq(Part::getEngChgLevel, data.getChildVersion())); // if (childPart == null) { // throw new RuntimeException("é¶ä»¶å·:" + data.getChildPartNo() + "ä¸åå¨"); // } // StructureComponent component = new StructureComponent(); // component.setStructureId(structure.getId()); // component.setPartId(childPart.getId()); // component.setPlanningMethod(childPart.getPlanningMethod()); // component.setQpa(new BigDecimal(data.getQpa())); // component.setLineItemNo(Integer.valueOf(data.getLineItemNo())); // component.setDiscNum(StringUtils.isEmpty(data.getDiskNum()) ? null : new Long(data.getDiskNum())); // //æ¥è¯¢å·¥åº 妿æå¤ä¸ªè·å第ä¸ä¸ª // List<Operation> operationList = operationMapper.selectList(Wrappers.<Operation>lambdaQuery() // .eq(Operation::getName, data.getOperationName()) // .eq(Operation::getActive, true).orderByAsc(Operation::getId)); // if (CollectionUtil.isEmpty(operationList)) { // throw new RuntimeException("å·¥åº" + data.getOperationName() + "ä¸åå¨"); // } // component.setOperationId(operationList.get(0).getId()); // structureComponentMapper.insert(component); // uinck.add(structure.getId() + "_" + data.getLineItemNo()); //} if (CollectionUtil.isEmpty(list)) { return; } for (StructureData data : list) { List<Part> parts = partMapper.selectList(Wrappers.<Part>lambdaQuery().eq(Part::getPartNo, data.getPartNo())); Part part = parts.get(0); if (part == null) { throw new RuntimeException("é¶ä»¶å·:" + data.getPartNo() + "ä¸åå¨"); } Structure structure = baseMapper.selectOne(Wrappers.<Structure>lambdaQuery().eq(Structure::getPartId, part.getId())); if (structure == null) { structure = new Structure(); BeanUtils.copyProperties(data, structure); structure.setPartId(part.getId()); structure.setActive(true); structure.setBomTypeDb("M"); structure.setIfsSync(false); structure.setAlternativeNo("*"); baseMapper.insert(structure); } List<Part> childParts = partMapper.selectList(Wrappers.<Part>lambdaQuery().eq(Part::getPartNo, data.getSonPartNo())); Part childPart = childParts.get(0); if (childPart == null) { throw new RuntimeException("é¶ä»¶å·:" + data.getSonPartNo() + "ä¸åå¨"); } List<Operation> operations = operationMapper.selectList(Wrappers.<Operation>lambdaQuery().eq(Operation::getName, data.getOperationName())); Operation operation = operations.get(0); StructureComponent component = new StructureComponent(); component.setStructureId(structure.getId()); component.setPartId(childPart.getId()); component.setPlanningMethod(childPart.getPlanningMethod()); component.setQpa(new BigDecimal(1));// todo: 产åç»æå¯¼å ¥æ°é,è¿ç¼ºä¸ä¸ªè¡å· component.setOperationId(operation.getId()); structureComponentMapper.insert(component); } } @Override mes-web/src/main/resources/bootstrap.yml
@@ -8,7 +8,7 @@ # password: postgres123 password: root2022 # å°é¢å¼åæ°æ®åº url: jdbc:postgresql://127.0.0.1:5432/postgres url: jdbc:postgresql://106.13.194.57:9015/postgres application: name: ztt-mes cloud: