From 3059430a0db3f75426e435c06090358646fc3792 Mon Sep 17 00:00:00 2001 From: Fixiaobai <fixiaobai@163.com> Date: 星期四, 09 十一月 2023 09:11:17 +0800 Subject: [PATCH] Changes11 --- mes-basic/src/main/java/com/chinaztt/mes/basic/controller/FactoryController.java | 2 mes-technology/src/main/java/com/chinaztt/mes/technology/service/impl/BomServiceImpl.java | 3 mes-technology/src/main/resources/mapper/StructureMapper.xml | 1 mes-poc/src/main/java/com/chinaztt/mes/service/impl/PocServiceImpl.java | 11 --- mes-basic/src/main/java/com/chinaztt/mes/basic/excel/DivisionData.java | 6 + mes-technology/src/main/java/com/chinaztt/mes/technology/entity/Structure.java | 2 mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/PostServiceImpl.java | 3 mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/DivisionServiceImpl.java | 14 ++++ mes-technology/src/main/java/com/chinaztt/mes/technology/controller/StructureController.java | 8 ++ mes-technology/src/main/java/com/chinaztt/mes/technology/entity/StructureComponent.java | 1 mes-basic/src/main/java/com/chinaztt/mes/basic/controller/ParamController.java | 21 +++++- mes-basic/src/main/java/com/chinaztt/mes/basic/controller/CompanyController.java | 8 +- mes-technology/src/main/java/com/chinaztt/mes/technology/service/impl/StructureServiceImpl.java | 49 +++++++++++++++- 13 files changed, 101 insertions(+), 28 deletions(-) diff --git a/mes-basic/src/main/java/com/chinaztt/mes/basic/controller/CompanyController.java b/mes-basic/src/main/java/com/chinaztt/mes/basic/controller/CompanyController.java index eb35f55..50a4e4d 100644 --- a/mes-basic/src/main/java/com/chinaztt/mes/basic/controller/CompanyController.java +++ b/mes-basic/src/main/java/com/chinaztt/mes/basic/controller/CompanyController.java @@ -19,23 +19,22 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.chinaztt.mes.basic.entity.Company; +import com.chinaztt.mes.basic.service.CompanyService; import com.chinaztt.mes.common.wrapper.QueryWrapperUtil; import com.chinaztt.ztt.admin.api.entity.SysDictItem; import com.chinaztt.ztt.admin.api.feign.RemoteDictService; import com.chinaztt.ztt.common.core.util.R; import com.chinaztt.ztt.common.log.annotation.SysLog; -import com.chinaztt.mes.basic.entity.Company; -import com.chinaztt.mes.basic.service.CompanyService; import com.chinaztt.ztt.common.security.annotation.Inner; -import org.springframework.security.access.prepost.PreAuthorize; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; -import java.io.IOException; import java.util.List; @@ -228,4 +227,5 @@ companyService.getFile(id, response); } + } diff --git a/mes-basic/src/main/java/com/chinaztt/mes/basic/controller/FactoryController.java b/mes-basic/src/main/java/com/chinaztt/mes/basic/controller/FactoryController.java index d863e4f..e81da0c 100644 --- a/mes-basic/src/main/java/com/chinaztt/mes/basic/controller/FactoryController.java +++ b/mes-basic/src/main/java/com/chinaztt/mes/basic/controller/FactoryController.java @@ -175,4 +175,6 @@ public List<Factory> loadFactory() { return factoryService.list(); } + + } diff --git a/mes-basic/src/main/java/com/chinaztt/mes/basic/controller/ParamController.java b/mes-basic/src/main/java/com/chinaztt/mes/basic/controller/ParamController.java index c2b8a24..2a63237 100644 --- a/mes-basic/src/main/java/com/chinaztt/mes/basic/controller/ParamController.java +++ b/mes-basic/src/main/java/com/chinaztt/mes/basic/controller/ParamController.java @@ -59,6 +59,19 @@ private final ParamService paramService; private DictUtils dictUtils; + + + + @ApiOperation(value = "鍒嗛〉妯℃澘鏌ヨ", notes = "鍒嗛〉鏌ヨ") + @GetMapping("/pageInModel") + @PreAuthorize("@pms.hasPermission('technology_param_view','product_workbench')") + public R getParamPageInModel(Page page, ParamDTO param) { + QueryWrapper<Param> gen = QueryWrapperUtil.gen(param); + gen.lambda().eq(Param::getParentId,0L); + return R.ok(paramService.page(page, gen)); + } + + /** * 鍒嗛〉鏌ヨ * @@ -92,7 +105,7 @@ oneMap.put("paramItem",pojo.get("parameterItem")); oneMap.put("paramItemTwo",""); oneMap.put("paramItemThree",""); - oneMap.put("oneId",pojo.get("id")); + oneMap.put("oneId",StringUtils.defaultString( String.valueOf(pojo.get("id")),"")); oneMap.put("paramType",StringUtils.defaultString((String) pojo.get("type"),"")); oneMap.put("paramFormat",StringUtils.defaultString((String) pojo.get("parameterFormat"),"")); oneMap.put("unit",StringUtils.defaultString((String) pojo.get("unit"),"")); @@ -122,9 +135,9 @@ Map<String,Object> allMap = new HashMap<>(); allMap.put("code",pojo.get("code")); allMap.put("paramItem",StringUtils.defaultString((String) pojo.get("parameterItem"),"")); - allMap.put("oneId",pojo.get("id")); - allMap.put("twoId",second.get("id")); - allMap.put("threeId",t.getId()); + allMap.put("oneId",StringUtils.defaultString( String.valueOf(pojo.get("id")),"")); + allMap.put("twoId",StringUtils.defaultString( String.valueOf(second.get("id")) ,"")); + allMap.put("threeId",StringUtils.defaultString(String.valueOf(t.getId()),"")); allMap.put("paramItemTwo",StringUtils.defaultString((String) second.get("parameterItem"),"")); allMap.put("paramItemThree",StringUtils.defaultString(t.getParameterItem(),"")); allMap.put("paramType",StringUtils.defaultString(t.getType(),"")); diff --git a/mes-basic/src/main/java/com/chinaztt/mes/basic/excel/DivisionData.java b/mes-basic/src/main/java/com/chinaztt/mes/basic/excel/DivisionData.java index 047b9fc..bdf20d2 100644 --- a/mes-basic/src/main/java/com/chinaztt/mes/basic/excel/DivisionData.java +++ b/mes-basic/src/main/java/com/chinaztt/mes/basic/excel/DivisionData.java @@ -1,8 +1,6 @@ package com.chinaztt.mes.basic.excel; import com.alibaba.excel.annotation.ExcelProperty; -import com.baomidou.mybatisplus.annotation.Unique; -import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** @@ -25,4 +23,8 @@ */ @ExcelProperty("鍏徃鍚嶇О") private String companyName; + + @ExcelProperty("宸ュ巶鍚嶇О") + private String factoryName; + } diff --git a/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/DivisionServiceImpl.java b/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/DivisionServiceImpl.java index ba3b912..be123fa 100644 --- a/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/DivisionServiceImpl.java +++ b/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/DivisionServiceImpl.java @@ -23,15 +23,18 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.chinaztt.mes.basic.entity.Company; import com.chinaztt.mes.basic.entity.Division; +import com.chinaztt.mes.basic.entity.Factory; import com.chinaztt.mes.basic.excel.DivisionData; import com.chinaztt.mes.basic.mapper.CompanyMapper; import com.chinaztt.mes.basic.mapper.DivisionMapper; +import com.chinaztt.mes.basic.mapper.FactoryMapper; import com.chinaztt.mes.basic.service.DivisionService; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** * 閮ㄩ棬 @@ -43,7 +46,7 @@ @AllArgsConstructor public class DivisionServiceImpl extends ServiceImpl<DivisionMapper, Division> implements DivisionService { private CompanyMapper companyMapper; - + private FactoryMapper factoryMapper; /** * Description: 鍒嗛〉 * @@ -60,11 +63,13 @@ @Override public void importWorkstationExcel(List<DivisionData> list) { + list.forEach(System.out::println); if (CollectionUtil.isEmpty(list)) { return; } List<Company> companyList = companyMapper.selectList(null); - for (DivisionData data :list){ + List<Factory> factories = factoryMapper.selectList(null); + for (DivisionData data :list){ QueryWrapper<Division>QueryWrapper = new QueryWrapper<>(); QueryWrapper.lambda().eq(Division::getDivisionNo,data.getDivisionNo()); Division division1 = baseMapper.selectOne(QueryWrapper); @@ -78,6 +83,11 @@ division.setCompanyId(companyList.get(i).getId()); } } + List<Factory> collect = factories.stream().filter(f -> f.getFactoryName().equals(data.getFactoryName())).collect(Collectors.toList()); + if(collect.size() > 0){ + division.setFactoryId(collect.get(0).getId()); + division.setFactoryName(collect.get(0).getFactoryName()); + } if (division.getCompanyId()==null){ log.error("鍏徃:" + data.getCompanyName() + "涓嶅瓨鍦�"); continue ; diff --git a/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/PostServiceImpl.java b/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/PostServiceImpl.java index e48e36f..c39ae5c 100644 --- a/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/PostServiceImpl.java +++ b/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/PostServiceImpl.java @@ -85,7 +85,8 @@ } Post post = new Post(); BeanUtils.copyProperties(data, post); - post.setPostName(data.getWorkShops()+"-"+data.getPostName()); + //TODO: data.getDivisionName()+"-"+ 宀椾綅缁勫悎 閮ㄩ棬+宀椾綅 + post.setPostName(data.getPostName()); for (int i = 0; i <companies.size() ; i++) { if (companies.get(i).getCompanyName().equals(data.getCompanyName())){ post.setCompanyId(companies.get(i).getId()); diff --git a/mes-poc/src/main/java/com/chinaztt/mes/service/impl/PocServiceImpl.java b/mes-poc/src/main/java/com/chinaztt/mes/service/impl/PocServiceImpl.java index 10b83eb..da29bb3 100644 --- a/mes-poc/src/main/java/com/chinaztt/mes/service/impl/PocServiceImpl.java +++ b/mes-poc/src/main/java/com/chinaztt/mes/service/impl/PocServiceImpl.java @@ -1,12 +1,8 @@ package com.chinaztt.mes.service.impl; -import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.chinaztt.mes.basic.dto.ParamDTO; import com.chinaztt.mes.basic.entity.*; import com.chinaztt.mes.basic.mapper.*; -import com.chinaztt.mes.basic.util.DictUtils; import com.chinaztt.mes.common.numgen.NumberGenerator; import com.chinaztt.mes.dto.ParamReveiveDTO; import com.chinaztt.mes.dto.ProductTreeDTO; @@ -23,11 +19,8 @@ import com.chinaztt.mes.plan.service.CustomerOrderService; import com.chinaztt.mes.plan.service.CustomerService; import com.chinaztt.mes.plan.service.ManufacturingOrderService; -import com.chinaztt.mes.plan.service.MasterProductionScheduleService; -import com.chinaztt.mes.plan.state.auditstate.constant.AuditStateStringValues; import com.chinaztt.mes.plan.state.orderstate.constant.CustomerOrderStateStringValues; import com.chinaztt.mes.production.dto.OperationTaskDTO; -import com.chinaztt.mes.production.entity.OperationTask; import com.chinaztt.mes.production.mapper.OperationTaskMapper; import com.chinaztt.mes.production.service.OperationTaskService; import com.chinaztt.mes.service.PocService; @@ -42,15 +35,11 @@ import com.chinaztt.mes.technology.state.bom.constant.BomStates; import com.chinaztt.mes.technology.state.document.constant.DocumentStateStringValues; import com.chinaztt.mes.technology.state.routing.constant.RoutingStates; -import com.chinaztt.ztt.admin.api.entity.SysDictItem; -import com.sun.corba.se.spi.orbutil.threadpool.Work; import lombok.AllArgsConstructor; -import lombok.CustomLog; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import javax.print.Doc; import java.math.BigDecimal; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; diff --git a/mes-technology/src/main/java/com/chinaztt/mes/technology/controller/StructureController.java b/mes-technology/src/main/java/com/chinaztt/mes/technology/controller/StructureController.java index 1cb0c7a..cace20d 100644 --- a/mes-technology/src/main/java/com/chinaztt/mes/technology/controller/StructureController.java +++ b/mes-technology/src/main/java/com/chinaztt/mes/technology/controller/StructureController.java @@ -32,9 +32,11 @@ import com.chinaztt.ztt.admin.api.feign.RemoteDictService; import com.chinaztt.ztt.common.core.util.R; import com.chinaztt.ztt.common.log.annotation.SysLog; +import com.chinaztt.ztt.common.security.util.SecurityUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -60,6 +62,8 @@ private final StructureService structureService; private final DictUtils dictUtils; + private RedisTemplate redisTemplate; + /** * 妯潃瀵煎叆鐨勫鍏ユ柟寮� * @@ -68,6 +72,10 @@ */ @PostMapping("/uploadExt") public R uploadExt(@RequestParam("file") MultipartFile file) { + String key = "syncStructure_lock" + SecurityUtils.getUser().getId(); + if (redisTemplate.hasKey(key)) { + throw new RuntimeException("鏈夊鍏ヤ换鍔℃鍦ㄥ鐞�"); + } ExcelReader excelReader = null; try { excelReader = EasyExcel.read(file.getInputStream(), StructureData.class, new StructureUploadListener(structureService)).build(); diff --git a/mes-technology/src/main/java/com/chinaztt/mes/technology/entity/Structure.java b/mes-technology/src/main/java/com/chinaztt/mes/technology/entity/Structure.java index 9fd2503..52048b5 100644 --- a/mes-technology/src/main/java/com/chinaztt/mes/technology/entity/Structure.java +++ b/mes-technology/src/main/java/com/chinaztt/mes/technology/entity/Structure.java @@ -149,4 +149,6 @@ private String dryingTemperature; private String packingInfo; + + private String custom; } diff --git a/mes-technology/src/main/java/com/chinaztt/mes/technology/entity/StructureComponent.java b/mes-technology/src/main/java/com/chinaztt/mes/technology/entity/StructureComponent.java index dd6cf63..c46c882 100644 --- a/mes-technology/src/main/java/com/chinaztt/mes/technology/entity/StructureComponent.java +++ b/mes-technology/src/main/java/com/chinaztt/mes/technology/entity/StructureComponent.java @@ -111,4 +111,5 @@ private String specs; private String partModel; + } diff --git a/mes-technology/src/main/java/com/chinaztt/mes/technology/service/impl/BomServiceImpl.java b/mes-technology/src/main/java/com/chinaztt/mes/technology/service/impl/BomServiceImpl.java index cacfed0..bb92df5 100644 --- a/mes-technology/src/main/java/com/chinaztt/mes/technology/service/impl/BomServiceImpl.java +++ b/mes-technology/src/main/java/com/chinaztt/mes/technology/service/impl/BomServiceImpl.java @@ -286,6 +286,7 @@ StructureTree root = getRootNode(partId); //閫氳繃浜у搧缁撴瀯鏌ュ伐搴� Map<Long, Integer> cache = new HashMap<>(80); + getStructureByPartId(root, partId, cache, version, alternativeNo, bomType, bomLayers); return root; } @@ -617,7 +618,7 @@ if (bomLayers == 999) { getStructureByPartId(child, component.getPartId(), cache, "ALL", "ALL", bomType, bomLayers); // 鍒ゆ柇鍒扮鍑犲眰浜嗭紝鍒堕�犵被鍨嬩负1-宸插埗閫狅紝璁″垝鏂规硶涓篜-铏氭嫙浠� - } else if (bomLayers > 0 && (part.getMaterialType().equals("1") && !part.getPlanningMethod().equals( + } else if (bomLayers > 0 && (part.getMaterialType().equals("1") && part.getPlanningMethod().equals( "A"))) { getStructureByPartId(child, component.getPartId(), cache, "ALL", "ALL", bomType, bomLayers); } diff --git a/mes-technology/src/main/java/com/chinaztt/mes/technology/service/impl/StructureServiceImpl.java b/mes-technology/src/main/java/com/chinaztt/mes/technology/service/impl/StructureServiceImpl.java index a6243fe..eef703c 100644 --- a/mes-technology/src/main/java/com/chinaztt/mes/technology/service/impl/StructureServiceImpl.java +++ b/mes-technology/src/main/java/com/chinaztt/mes/technology/service/impl/StructureServiceImpl.java @@ -17,6 +17,7 @@ package com.chinaztt.mes.technology.service.impl; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.lang.Console; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.write.metadata.WriteSheet; @@ -46,9 +47,13 @@ import com.chinaztt.mes.technology.mapper.StructureMapper; import com.chinaztt.mes.technology.service.StructureService; import com.chinaztt.ztt.common.core.util.R; +import com.chinaztt.ztt.common.security.util.SecurityUtils; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; @@ -58,6 +63,7 @@ import java.math.BigDecimal; import java.net.URLEncoder; import java.util.*; +import java.util.concurrent.CompletableFuture; /** @@ -79,6 +85,10 @@ private NumberGenerator<Structure> numberGenerator; private DictUtils dictUtils; private IfsFeignClient ifsFeignClient; + + private RedisTemplate redisTemplate; + @Autowired + private ThreadPoolTaskExecutor threadPoolTaskExecutor; /** * @Author: Hans @@ -257,7 +267,20 @@ } @Override + @Transactional(rollbackFor = Exception.class) public void importExcel(List<StructureData> list) { + String key = "syncStructure_lock" + SecurityUtils.getUser().getId(); + if (redisTemplate.hasKey(key)) { + throw new RuntimeException("鏈夊鍏ヤ换鍔℃鍦ㄥ鐞�"); + } + CompletableFuture.runAsync(()->{ + asyncImport(list); + redisTemplate.delete(key); + },threadPoolTaskExecutor); + } + + + void asyncImport(List<StructureData> list){ if (CollectionUtil.isEmpty(list)) { return; } @@ -265,14 +288,17 @@ 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() + "涓嶅瓨鍦�"); + log.error("闆朵欢鍙�:" + data.getPartNo() + "涓嶅瓨鍦�"); + return; } 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.setMaster(false); + structure.setVersion("1"); + //structure.setActive(true); structure.setBomTypeDb("M"); structure.setIfsSync(false); structure.setAlternativeNo("*"); @@ -281,7 +307,8 @@ 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() + "涓嶅瓨鍦�"); + log.error("闆朵欢鍙�:" + data.getSonPartNo() + "涓嶅瓨鍦�"); + return; } List<Operation> operations = operationMapper.selectList(Wrappers.<Operation>lambdaQuery().eq(Operation::getName, data.getOperationName())); Operation operation = operations.get(0); @@ -289,8 +316,21 @@ component.setStructureId(structure.getId()); component.setPartId(childPart.getId()); component.setPlanningMethod(childPart.getPlanningMethod()); + QueryWrapper<StructureComponent> queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().select(StructureComponent::getLineItemNo).eq(StructureComponent::getStructureId,structure.getId()).orderByDesc(StructureComponent::getLineItemNo); + List<StructureComponent> structureComponents = structureComponentMapper.selectList(queryWrapper); component.setQpa(new BigDecimal(1));// todo: 浜у搧缁撴瀯瀵煎叆鏁伴噺,杩樼己涓�涓鍙� + Console.log("鍊�===銆�"+structureComponents); + if(structureComponents.size()<1){ + component.setLineItemNo(1); + }else { + Integer lineItemNo = structureComponents.get(0).getLineItemNo(); + component.setLineItemNo(lineItemNo+1); + } component.setOperationId(operation.getId()); + component.setPlanningMethod("A"); + component.setSpecs(childPart.getSpecs()); + component.setPartModel(childPart.getPartModel()); structureComponentMapper.insert(component); } } @@ -441,6 +481,9 @@ Structure structure = baseMapper.selectById(component.getStructureId()); structure.setIfsSync(false); validate(structure.getPartId(), component.getPartId()); + Part part = partMapper.selectById(component.getPartId()); + component.setPartModel(part.getPartModel()); + component.setSpecs(part.getSpecs()); structureComponentMapper.insert(component); // 瀵规帴ifs // List<StructureDTO> structureDTOS = structureMapper.getStructureDtoByIds(Arrays.asList(component.getStructureId())); diff --git a/mes-technology/src/main/resources/mapper/StructureMapper.xml b/mes-technology/src/main/resources/mapper/StructureMapper.xml index ecba329..02a4982 100644 --- a/mes-technology/src/main/resources/mapper/StructureMapper.xml +++ b/mes-technology/src/main/resources/mapper/StructureMapper.xml @@ -47,6 +47,7 @@ <result property="dryingTime" column="drying_time"/> <result property="dryingTemperature" column="drying_temperature"/> <result property="packingInfo" column="packing_info"/> + <result property="custom" column="custom"/> </resultMap> <resultMap id="structureComponentMap" type="com.chinaztt.mes.technology.dto.StructureComponentDTO"> -- Gitblit v1.9.3