| | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.yuanchu.mom.pojo.Material; |
| | | import com.yuanchu.mom.service.MaterialService; |
| | | import com.yuanchu.mom.mapper.MaterialMapper; |
| | | import com.yuanchu.mom.mapper.*; |
| | | import com.yuanchu.mom.pojo.*; |
| | | import com.yuanchu.mom.pojo.dto.MaterialDto; |
| | | 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.stream.Collectors; |
| | | |
| | | /** |
| | | * @author Administrator |
| | |
| | | * @createDate 2023-07-26 15:52:50 |
| | | */ |
| | | @Service |
| | | public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material> |
| | | implements MaterialService { |
| | | public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material> implements MaterialService { |
| | | |
| | | @Resource |
| | | MaterialMapper materialMapper; |
| | | |
| | | @Resource |
| | | StandardMapper standardMapper; |
| | | |
| | | @Resource |
| | | SpecificationsMapper specificationsMapper; |
| | | |
| | | @Resource |
| | | TechnologyService technologyService; |
| | | |
| | | @Resource |
| | | TechnologyTemplateMapper technologyTemplateMapper; |
| | | |
| | | @Resource |
| | | ProductService productService; |
| | | |
| | | @Resource |
| | | TechnicalModelMapper technicalModelMapper; |
| | | |
| | | @Resource |
| | | MbomService mbomService; |
| | | |
| | | @Resource |
| | | MbomModelMapper mbomModelMapper; |
| | | |
| | | @Resource |
| | | TechniqueService techniqueService; |
| | | |
| | | @Resource |
| | | TechniqueModelMapper techniqueModelMapper; |
| | | |
| | | @Resource |
| | | DeviceMapper deviceMapper; |
| | | |
| | | //标准MOM-->左侧五级树展示 |
| | | @Override |
| | | public List<Map<String,Object>> selectTreeByMaterial() { |
| | | public List<Map<String, Object>> selectTreeByMaterial() { |
| | | return materialMapper.selectTreeByMaterial(); |
| | | } |
| | | |
| | | //(1,2级)新增-->物料,标准,型号 |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public String addMaterial(MaterialDto materialDto) { |
| | | //校验添加物料是否重复 |
| | | if (materialMapper.selectOne(Wrappers.<Material>query() |
| | | .eq("type", materialDto.getType()) |
| | | .eq("father", materialDto.getFather())).getName().equals(materialDto.getName())) { |
| | | return "该类型产品大类下有该产品名称"; |
| | | } |
| | | /*新增物料表*/ |
| | | Material material = new Material(); |
| | | material.setCode(MyUtil.getTimeSixNumberCode("ML", "ML")); |
| | | material.setName(materialDto.getName()); |
| | | material.setType(materialDto.getType()); |
| | | material.setFather(materialDto.getFather()); |
| | | materialMapper.insert(material); |
| | | /*新增标准表*/ |
| | | Standard standard = new Standard(); |
| | | standard.setName(materialDto.getStandard()); |
| | | standard.setMaterial_id(material.getId()); |
| | | standardMapper.insert(standard); |
| | | /*新增型号表*/ |
| | | Specifications specifications = new Specifications(); |
| | | specifications.setName(materialDto.getSpecifications()); |
| | | specifications.setStandardId(standard.getId()); |
| | | specificationsMapper.insert(specifications); |
| | | /*新增标准BOM-->工艺路线(批量添加)*/ |
| | | List<TechnologyTemplate> technologyTemplateList = technologyTemplateMapper.selectList(Wrappers.<TechnologyTemplate>query().eq("type", materialDto.getFather())); |
| | | List<Technology> technologyList = technologyTemplateList.stream().map(technologyTemplate -> { |
| | | Technology technology = new Technology(); |
| | | technology.setSpecificationsId(specifications.getId()); |
| | | technology.setFather(technologyTemplate.getFather()); |
| | | technology.setName(technologyTemplate.getName()); |
| | | technology.setDeviceGroup(technologyTemplate.getDeviceGroup()); |
| | | return technology; |
| | | }).collect(Collectors.toList()); |
| | | technologyService.saveBatch(technologyList); |
| | | /*新增标准BOM-->技术指标(批量添加)*/ |
| | | //新增的工艺路线id集合 |
| | | List<Integer> technologyIds = technologyList.stream().map(Technology::getId).collect(Collectors.toList()); |
| | | //基础数据中工艺路线id集合 |
| | | List<Integer> techTemIds = technologyTemplateList.stream().map(TechnologyTemplate::getId).collect(Collectors.toList()); |
| | | //两者长度一定一样 |
| | | List<Product> productList = new ArrayList<>(); |
| | | for (int i = 0; i < technologyIds.size(); i++) { |
| | | List<TechnicalModel> technicalModelList = technicalModelMapper.selectList(Wrappers.<TechnicalModel>query().eq("tech_tem_id", techTemIds.get(i))); |
| | | for (TechnicalModel technicalModel : technicalModelList) { |
| | | Product product = new Product(); |
| | | product.setFather(technicalModel.getFather()); |
| | | product.setName(technicalModel.getName()); |
| | | product.setUnit(technicalModel.getUnit()); |
| | | product.setTechnologyId(technologyIds.get(i)); |
| | | productList.add(product); |
| | | } |
| | | } |
| | | productService.saveBatch(productList); |
| | | /*新增标准BOM-->物料清单(批量添加)*/ |
| | | List<Mbom> mbomList = new ArrayList<>(); |
| | | for (int i = 0; i < technologyIds.size(); i++) { |
| | | List<MbomModel> mbomModelList = mbomModelMapper.selectList(Wrappers.<MbomModel>query().eq("tech_tem_id", techTemIds.get(i))); |
| | | for (MbomModel mbomModel : mbomModelList) { |
| | | Mbom mbom = new Mbom(); |
| | | mbom.setUnit(mbomModel.getUnit()); |
| | | mbom.setName(mbomModel.getName()); |
| | | mbom.setSupplier(mbomModel.getSupplier()); |
| | | mbom.setQualityTraceability(mbomModel.getQualityTraceability()); |
| | | mbom.setSpecifications(mbomModel.getSpecifications()); |
| | | mbom.setTechnologyId(technologyIds.get(i)); |
| | | mbomList.add(mbom); |
| | | } |
| | | } |
| | | mbomService.saveBatch(mbomList); |
| | | /*新增标准BOM-->生产工艺(批量添加)*/ |
| | | List<Technique> techniqueList = new ArrayList<>(); |
| | | for (int i = 0; i < technologyIds.size(); i++) { |
| | | List<TechniqueModel> techniqueModelList = techniqueModelMapper.selectList(Wrappers.<TechniqueModel>query().eq("tech_tem_id", techTemIds.get(i))); |
| | | for (TechniqueModel techniqueModel : techniqueModelList) { |
| | | //查询设备名称 |
| | | Device device = deviceMapper.selectById(techniqueModel.getDeviceId()); |
| | | //查询基础生产工艺中每个设备的具体项目 |
| | | TechnicalModel technicalModel = technicalModelMapper.selectById(techniqueModel.getTechnicalModelId()); |
| | | Technique technique = new Technique(); |
| | | technique.setTechnologyId(technologyIds.get(i)); |
| | | technique.setDevice(device.getName()); |
| | | technique.setProductFather(technicalModel.getFather()); |
| | | technique.setProduct(technicalModel.getName()); |
| | | technique.setUnit(technicalModel.getUnit()); |
| | | techniqueList.add(technique); |
| | | } |
| | | } |
| | | techniqueService.saveBatch(techniqueList); |
| | | return "添加物料【" + materialDto.getName() + "】成功"; |
| | | } |
| | | |
| | | //检验模块-->QMS管理-->成品检验-->新增(项目名称下拉框:Id与名称,编码) |
| | | @Override |
| | | public List<Map<String, Object>> selectMaterialIdAndNameAndCode() { |
| | | LambdaQueryWrapper<Material> wrapper = new LambdaQueryWrapper<>(); |
| | |
| | | return materialMapper.selectMaps(wrapper); |
| | | } |
| | | |
| | | //查询所有物料信息 |
| | | @Override |
| | | public List<Material> selectMaterial() { |
| | | return materialMapper.selectList(Wrappers.<Material>query()); |
| | | } |
| | | |
| | | //根据物料名称查询物料id和物料编码 |
| | | @Override |
| | | public List<Material> selectMcodeId(String name) { |
| | | return materialMapper.selectMcodeId(name); |
| | | } |
| | | |
| | | //根据物料名称和物料编码查询物料id,规格信息和型号信息 |
| | | @Override |
| | | public List<Map> selectIdByCoNa(String name, String code) { |
| | | return materialMapper.selectIdByCoNa(name,code); |
| | | } |
| | | } |
| | | |
| | | |