zss
2023-09-04 e4aed6ad69c6b4b55d6d043f3706967439e2500d
standard-server/src/main/java/com/yuanchu/mom/service/impl/TechnologyServiceImpl.java
@@ -2,11 +2,15 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.yuanchu.mom.mapper.*;
import com.yuanchu.mom.pojo.Technology;
import com.yuanchu.mom.mapper.TechnologyMapper;
import com.yuanchu.mom.pojo.dto.TechnologyDto;
import com.yuanchu.mom.service.TechnologyService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
@@ -14,7 +18,7 @@
/**
 * <p>
 *  服务实现类
 * 服务实现类
 * </p>
 *
 * @author 江苏鵷雏网络科技有限公司
@@ -24,15 +28,106 @@
public class TechnologyServiceImpl extends ServiceImpl<TechnologyMapper, Technology> implements TechnologyService {
    @Resource
    private TechnologyMapper technologyMapper;
    TechnologyMapper technologyMapper;
    @Resource
    DeviceMapper deviceMapper;
    @Resource
    ProductMapper productMapper;
    @Resource
    MbomMapper mbomMapper;
    @Resource
    TechniqueMapper techniqueMapper;
    //根据型号id查询版本
    @Override
    public List<Map<String, Object>> selectTechnology(String technologyName) {
        LambdaQueryWrapper<Technology> wrapper = new LambdaQueryWrapper<>();
        if (!ObjectUtils.isEmpty(technologyName)){
            wrapper.like(Technology::getName, technologyName);
    public List<Integer> selectVerByTec(Integer specificationsId) {
        return technologyMapper.selectVerByTec(specificationsId);
    }
    //右侧数据展示-->工艺路线
    @Override
    public List<Map<String, Object>> selectAllTec(Integer specificationsId, Integer version, String message) {
        return technologyMapper.selectAllTec(specificationsId, version, message);
    }
    //右上角新增-->工艺路线-->选择设备组
    @Override
    public List<Map<String, Object>> chooseDevice() {
        return deviceMapper.chooseDevGroup();
    }
    //右上角新增-->工艺路线-->选择工序
    @Override
    public List<Map<String, Object>> chooseFather(Integer specificationsId) {
        return technologyMapper.chooseFather(specificationsId);
    }
    //右上角新增-->工艺路线
    @Override
    public void addTechnology(Integer specificationsId, TechnologyDto technologyDto) {
        Technology technology = new Technology();
        BeanUtils.copyProperties(technologyDto, technology);
        technology.setSpecificationsId(specificationsId);
        technologyMapper.insert(technology);
    }
    //填写生产定额,鼠标移开保存
    @Override
    public Integer write(Integer id, Integer productionQuota) {
        Technology technology = new Technology();
        technology.setId(id);
        technology.setProductionQuota(productionQuota);
        return technologyMapper.updateById(technology);
    }
    //添加同一个型号工艺路线的版本
    @Override
    public Integer addVersion(Integer specificationsId, Integer version) {
        List<Technology> technologyList = technologyMapper.selectList(Wrappers.<Technology>query()
                .eq("specifications_id", specificationsId)
                .eq("version", version));
        for (Technology technology : technologyList) {
            technology.setId(null);
            //最新版本+!
            technology.setVersion(technologyMapper.selectVerByTec(specificationsId).get(0) + 1);
        }
        wrapper.select(Technology::getId, Technology::getName, Technology::getDeviceGroup, Technology::getFather);
        return technologyMapper.selectMaps(wrapper);
        saveBatch(technologyList);
        return technologyList.get(0).getVersion();
    }
    //删除
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void delTechById(Integer id) {
        //删除工艺路线表
        Technology technology = new Technology();
        technology.setId(id);
        technology.setState(0);
        technologyMapper.updateById(technology);
        //删除技术指标表
        productMapper.delProByTecId(id);
        //删除物料清单表
        mbomMapper.delMbomByTecId(id);
        //删除生产工艺表
        techniqueMapper.delTeqByTecId(id);
    }
    //批量删除
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void delAllTech(String ids) {
        //批量删除工艺路线表
        technologyMapper.delAllTech(ids);
        //批量删除技术指标表
        productMapper.delAllByTechId(ids);
        //批量删除物料清单表
        mbomMapper.delAllByTecId(ids);
        //批量删除生产工艺表
        techniqueMapper.delAllByTecId(ids);
    }
}