package com.yuanchu.mom.service.impl; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yuanchu.mom.mapper.*; import com.yuanchu.mom.pojo.ElementTechnology; import com.yuanchu.mom.pojo.TechnologyTemplate; import com.yuanchu.mom.pojo.dto.TechnologyTemplateDto; import com.yuanchu.mom.service.ElementTechnologyService; import com.yuanchu.mom.service.TechnologyTemplateService; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * 工艺路线维护表(TechnologyTemplate)表服务实现类 * * @author zss * @since 2023-08-18 16:59:14 */ @Service public class TechnologyTemplateServiceImpl extends ServiceImpl implements TechnologyTemplateService { @Resource TechnologyTemplateMapper technologyTemplateMapper; @Resource DeviceMapper deviceMapper; @Resource ElementMapper elementMapper; @Resource ElementTechnologyService elementTechnologyService; @Resource TechnicalModelMapper technicalModelMapper; @Resource TechniqueModelMapper techniqueModelMapper; @Resource SelfcheckModelMapper selfcheckModelMapper; @Resource RecordModelMapper recordModelMapper; @Resource MbomModelMapper mbomModelMapper; //新增工艺路线-->选择设备组 @Override public List> chooseDevGroup() { return deviceMapper.chooseDevGroup(); } //新增工艺路线-->选择工序 @Override public List chooseTech(Integer type) { return technologyTemplateMapper.chooseTech(type); } //新增工艺路线-->选择元件 @Override public List> chooseElement() { return elementMapper.chooseElement(); } //新增工艺路线 @Override @Transactional(rollbackFor = Exception.class) public void addTechTemp(TechnologyTemplateDto technologyTemplateDto) { /*新增工艺*/ TechnologyTemplate technologyTemplate = new TechnologyTemplate(); BeanUtils.copyProperties(technologyTemplateDto, technologyTemplate); technologyTemplateMapper.insert(technologyTemplate); /*新增工艺元件中间表*/ String[] split = technologyTemplateDto.getElementId().split(","); List elementTechnologies = Arrays.stream(split).map(s -> { ElementTechnology elementTechnology = new ElementTechnology(); elementTechnology.setTechTemId(technologyTemplate.getId()); elementTechnology.setElementId(Integer.parseInt(s)); return elementTechnology; }).collect(Collectors.toList()); elementTechnologyService.saveBatch(elementTechnologies); } //查询工艺路线列表-->左边二级展示 @Override public List> selectAllTechTem(Integer type, String message) { return technologyTemplateMapper.selectAllTechTem(type, message); } //查询工艺路线列表-->右边展示工艺和设备 @Override public List> selectAllTechNam(String father) { return technologyTemplateMapper.selectAllTechNam(father); } //根据id查看详情 @Override public List> selecTechById(Integer id) { return technologyTemplateMapper.selecTechById(id); } //编辑 (工艺id) @Override @Transactional(rollbackFor = Exception.class) public void writeTechById(Integer id, TechnologyTemplateDto technologyTemplateDto) { /*工艺表更新*/ TechnologyTemplate technologyTemplate = new TechnologyTemplate(); BeanUtils.copyProperties(technologyTemplateDto, technologyTemplate); technologyTemplate.setId(id); technologyTemplateMapper.updateById(technologyTemplate); /*更改中间表*/ //批量删除原有的中间表(根据工序id) elementTechnologyService.delElemaByTechsId(id); //批量添加中间表 String[] split = technologyTemplateDto.getElementId().split(","); List elementTechnologies = Arrays.stream(split).map(s -> { ElementTechnology elementTechnology = new ElementTechnology(); elementTechnology.setTechTemId(technologyTemplate.getId()); elementTechnology.setElementId(Integer.parseInt(s)); return elementTechnology; }).collect(Collectors.toList()); elementTechnologyService.saveBatch(elementTechnologies); } //删除(工艺路线id) @Override @Transactional(rollbackFor = Exception.class) public void delTechById(Integer id) { //删除工艺路线维护表 TechnologyTemplate technologyTemplate = new TechnologyTemplate(); technologyTemplate.setId(id).setState(0); technologyTemplateMapper.updateById(technologyTemplate); //删除中间表 elementTechnologyService.delElemaByTechsId(id); //删除技术指标维护表 technicalModelMapper.delTeMoByTechId(id); //删除生产工艺维护表 techniqueModelMapper.delQueByTechId(id); //删除自检项目维护表 selfcheckModelMapper.delSelfByTechId(id); //删除记录内容维护表 recordModelMapper.delRecordByTechId(id); //删除物料清单维护表 mbomModelMapper.delMbomByTechId(id); } //批量删除 @Override @Transactional(rollbackFor = Exception.class) public void delAllTech(String ids) { //批量删除工艺表 technologyTemplateMapper.delAllTech(ids); //批量删除中间表 elementTechnologyService.delAllByTechId(ids); //批量删除指标维护表 technicalModelMapper.delAllByTechId(ids); //批量删除生产工艺维护表 techniqueModelMapper.delAllByTechId(ids); //批量删除自检项目维护表 selfcheckModelMapper.delAllByTechId(ids); //批量删除记录内容维护表 recordModelMapper.delAllByTechId(ids); //批量删除物料清单维护表 mbomModelMapper.delAllByTechId(ids); } }