| | |
| | | package com.yuanchu.mom.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.yuanchu.mom.mapper.*; |
| | | import com.yuanchu.mom.pojo.*; |
| | | import com.yuanchu.mom.service.OrdersService; |
| | | import com.yuanchu.mom.service.SpecificationsService; |
| | | import com.yuanchu.mom.service.StandardService; |
| | | import com.yuanchu.mom.service.*; |
| | | import com.yuanchu.mom.utils.MyUtil; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * 订单(Order)表服务实现类 |
| | |
| | | ManufactureOrderMapper manufactureOrderMapper; |
| | | |
| | | @Resource |
| | | ManualTechnologyMapper manualTechnologyMapper; |
| | | |
| | | @Resource |
| | | SpecificationsMapper specificationsMapper; |
| | | ManualTechnologyService manualTechnologyService; |
| | | |
| | | @Resource |
| | | TechnologyMapper technologyMapper; |
| | | |
| | | @Resource |
| | | ProductMapper productMapper; |
| | | |
| | | @Resource |
| | | MbomMapper mbomMapper; |
| | | |
| | | @Resource |
| | | ManualProductService manualProductService; |
| | | |
| | | @Resource |
| | | ManualMbomService manualMbomService; |
| | | |
| | | |
| | | //查询所有订单列表 |
| | |
| | | .build(); |
| | | //新增生产订单 |
| | | manufactureOrderMapper.insert(manufactureOrder); |
| | | //查询产品的最新工序 |
| | | //产品编码 |
| | | String code = materialMapper.selMcode(manufactureOrder.getName()); |
| | | //型号id |
| | | Integer specificationId = getSpecificationId(manufactureOrder.getName(), code, manufactureOrder.getSpecifications()); |
| | | //默认最新版本 |
| | | Integer version = technologyMapper.selectVerByTec(specificationId).get(0); |
| | | List<Technology> technologyList = technologyMapper.selectList(Wrappers.<Technology>query() |
| | | .eq("specifications_id", specificationId) |
| | | .eq("version", version)); |
| | | for (Technology technology : technologyList) { |
| | | /*正序查询该型号最新版本下的工艺路线*/ |
| | | LambdaQueryWrapper<Technology> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.eq(Technology::getSpecificationsId,specificationId); |
| | | queryWrapper.eq(Technology::getVersion,version); |
| | | queryWrapper.orderByAsc(Technology::getFather); |
| | | List<Technology> technologyList = technologyMapper.selectList(queryWrapper); |
| | | List<ManualTechnology> manualTechnologyList = technologyList.stream().map(technology -> { |
| | | ManualTechnology manualTechnology = ManualTechnology.builder() |
| | | .techname(technology.getName()) |
| | | .techfather(technology.getFather()) |
| | | .deviceGroup(technology.getDeviceGroup()) |
| | | .manufactureOrderId(manufactureOrder.getId()) |
| | | .productionQuota(technology.getProductionQuota()) |
| | | .technologyId(technology.getId()) |
| | | .techname(technology.getName()) //工艺 |
| | | .techfather(technology.getFather()) //工序 |
| | | .deviceGroup(technology.getDeviceGroup()) //生产设备组 |
| | | .manufactureOrderId(manufactureOrder.getId()) //生产订单id |
| | | .productionQuota(technology.getProductionQuota()) //生产效率 |
| | | .technologyId(technology.getId()) //标准bom中工艺路线id |
| | | .build(); |
| | | //新增编制工序表 |
| | | manualTechnologyMapper.insert(manualTechnology); |
| | | return manualTechnology; |
| | | }).collect(Collectors.toList()); |
| | | /*新增编制工艺表*/ |
| | | manualTechnologyService.saveBatch(manualTechnologyList); |
| | | //根据标准bom的工艺路线id查询标准bom中的技术指标 |
| | | for (ManualTechnology manualTechnology : manualTechnologyList) { |
| | | List<Product> productList = productMapper.selProByVerSpe(manualTechnology.getTechnologyId()); |
| | | List<ManualProduct> manualProducts = new ArrayList<>(); |
| | | for (Product product : productList) { |
| | | ManualProduct manualProduct = ManualProduct.builder() |
| | | .manualTechnologyId(manualTechnology.getId()) //关联 生产订单id |
| | | .name(product.getName()) |
| | | .father(product.getFather()) |
| | | .unit(product.getUnit()) |
| | | .required(product.getRequired()) |
| | | .internal(product.getInternal()) |
| | | .build(); |
| | | manualProducts.add(manualProduct); |
| | | } |
| | | /*新增编制技术指标表*/ |
| | | manualProductService.saveBatch(manualProducts); |
| | | } |
| | | //根据标准bom的工艺路线id查询标准bom中的物料清单 |
| | | for (ManualTechnology manualTechnology : manualTechnologyList) { |
| | | List<Mbom> mbomList = mbomMapper.selectList(Wrappers.<Mbom>query().eq("technology_id",manualTechnology.getTechnologyId())); |
| | | List<ManualMbom> manualMboms = new ArrayList<>(); |
| | | for (Mbom mbom : mbomList) { |
| | | ManualMbom manualMbom = ManualMbom.builder() |
| | | .manualTechnologyId(manualTechnology.getId()) //关联 生产订单id |
| | | .name(mbom.getName()) |
| | | .unit(mbom.getUnit()) |
| | | .num(mbom.getNum()) |
| | | .qualityTraceability(mbom.getQualityTraceability()) |
| | | .specifications(mbom.getSpecifications()) |
| | | .build(); |
| | | manualMboms.add(manualMbom); |
| | | } |
| | | /*新增编制物料清单表*/ |
| | | manualMbomService.saveBatch(manualMboms); |
| | | } |
| | | } |
| | | |
| | |
| | | //获取规格名称和型号名称 |
| | | String[] split = specification.split("-"); |
| | | String stName = split[0]; |
| | | String spName = split[1]; |
| | | String spName = split[1]+split[2]; |
| | | //获取规格id |
| | | Standard standard = standardService.getOne(Wrappers.<Standard>query() |
| | | .eq("name", stName) |