zss
2023-09-25 a3f47b5e065878e5f41699ac1c597fd9ac9c4a21
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InspectUnacceptedServiceImpl.java
@@ -1,17 +1,28 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
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.InspectUnacceptedMapper;
import com.yuanchu.mom.pojo.InspectUnaccepted;
import com.yuanchu.mom.service.InspectUnacceptedService;
import com.yuanchu.mom.mapper.InspectionItemMapper;
import com.yuanchu.mom.mapper.RawInsProductMapper;
import com.yuanchu.mom.pojo.*;
import com.yuanchu.mom.pojo.dto.InspectionItemDto;
import com.yuanchu.mom.pojo.vo.RawInspectVo;
import com.yuanchu.mom.service.*;
import com.yuanchu.mom.utils.MyUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.HashMap;
import javax.xml.crypto.Data;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * 不合格品检验表(InspectUnaccepted)表服务实现类
@@ -25,25 +36,133 @@
    @Resource
    InspectUnacceptedMapper inspectUnacceptedMapper;
    //查询原材料不合格品检验单列表
    // 原材料检验
    @Autowired
    private RawInspectService rawInspectService;
    //原材料检验子数据
    @Autowired
    private RawInsProductService rawInsProductService;
    @Resource
    RawInsProductMapper rawInsProductMapper;
    //产品检验
    @Autowired
    private FinishedInspectService finishedInspectService;
    //过程检验
    @Autowired
    private ProcessInspectService processInspectService;
    @Resource
    InspectionItemMapper inspectionItemMapper;
    @Resource
    InspectionItemService inspectionItemService;
    //不合格处置列表
    @Override
    public IPage<Map<String, Object>> selectUnRawInspectsList(Page<Object> page, String formTime, Integer dealState, Integer type) {
        if (type==null){
            type=2;//为空是原材料2
    public IPage<Map<String, Object>> selectDisposal(Page<Object> page, String specificationModel, String productName, Integer productCategories, Integer state) {
        return inspectUnacceptedMapper.selectDisposal(page, specificationModel, productName, productCategories, state);
    }
    //现象描述失焦保存
    @Override
    public Integer descriptionUpdate(Integer rawUnacceptedId, String tell) {
        LambdaUpdateWrapper<InspectUnaccepted> updateWrapper = Wrappers.<InspectUnaccepted>lambdaUpdate()
                .eq(InspectUnaccepted::getId, rawUnacceptedId)
                .set(InspectUnaccepted::getTell, tell);
        return inspectUnacceptedMapper.update(new InspectUnaccepted(), updateWrapper);
    }
    //编辑处置意见确定按钮
    @Override
    public Integer editDisposalOpinionConfirmation(Integer rawUnacceptedId, String opinionTell, Integer way, Integer type) {
        //根据不合格品id查询不合格品信息
        InspectUnaccepted inspectUnaccepted = inspectUnacceptedMapper.selectById(rawUnacceptedId);
        LambdaUpdateWrapper<InspectUnaccepted> updateWrapper = Wrappers.<InspectUnaccepted>lambdaUpdate()
                .eq(InspectUnaccepted::getId, rawUnacceptedId)
                .set(InspectUnaccepted::getWay, way)
                .set(InspectUnaccepted::getDealState, 1)
                .set(InspectUnaccepted::getDealTime, new Date())
                .set(InspectUnaccepted::getOpinionTell, opinionTell);
        if (way == 1) {
            // 等于0:原材料
            if (type == 0) {
                // 根据Id查询原材料检验信息
                RawInspect rawInspect = rawInspectService.getById(inspectUnaccepted.getRawInspectId());
                List<RawInsProduct> rawInsProductList = rawInsProductMapper.selectList(Wrappers.<RawInsProduct>query()
                        .eq("raw_inspect_id", rawInspect.getId()));
                // 保存父级
                rawInspect.setId(null);
                rawInspect.setInsState(0);
                rawInspect.setJudgeState(null);
                rawInspect.setInsTime(null);
                rawInspectService.save(rawInspect);
                // 批量保存子级
                List<RawInsProduct> rawInsProducts = rawInsProductList.stream().map(rawInsProduct -> {
                    rawInsProduct.setId(null);
                    rawInsProduct.setTestValue(null);
                    rawInsProduct.setTestState(null);
                    rawInsProduct.setDeviceId(null);
                    rawInsProduct.setRawInspectId(rawInspect.getId());
                    rawInsProduct.setUserId(null);
                    return rawInsProduct;
                }).collect(Collectors.toList());
                rawInsProductService.saveBatch(rawInsProducts);
            }
            // 等于1:产品检验(半成品)
            else if (type == 1) {
                //根据id查询产品检验信息
                FinishedInspect finishedInspect = finishedInspectService.getById(inspectUnaccepted.getRawInspectId());
                //根据产品检验单id查询检验项目
                List<InspectionItem> inspectionItems = inspectionItemMapper.selectList(Wrappers.<InspectionItem>query()
                        .eq("inspect_id", finishedInspect.getId())
                        .eq("type", 2));
                //保存产品单
                finishedInspect.setId(null);
                finishedInspect.setResult(null);
                finishedInspectService.save(finishedInspect);
                //保存产品项目
                List<InspectionItem> inspectionItemList = inspectionItems.stream().map(inspectionItem -> {
                    inspectionItem.setId(null);
                    inspectionItem.setInspectionValue(null);
                    inspectionItem.setDeviceId(null);
                    inspectionItem.setResult(null);
                    inspectionItem.setInspectId(finishedInspect.getId());
                    inspectionItem.setUsername(null);
                    return inspectionItem;
                }).collect(Collectors.toList());
                inspectionItemService.saveBatch(inspectionItemList);
            }
            // 等于2:过程检验(在制品)
            else if (type == 2) {
                //根据id查询产品检验信息
                ProcessInspect processInspect = processInspectService.getById(inspectUnaccepted.getRawInspectId());
                //根据产品检验单id查询检验项目
                List<InspectionItem> inspectionItems = inspectionItemMapper.selectList(Wrappers.<InspectionItem>query()
                        .eq("inspect_id", processInspect.getId())
                        .eq("type", 1));
                //保存产品单
                processInspect.setId(null);
                processInspect.setResult(null);
                processInspectService.save(processInspect);
                //保存产品项目
                List<InspectionItem> inspectionItemList = inspectionItems.stream().map(inspectionItem -> {
                    inspectionItem.setId(null);
                    inspectionItem.setInspectionValue(null);
                    inspectionItem.setDeviceId(null);
                    inspectionItem.setResult(null);
                    inspectionItem.setInspectId(processInspect.getId());
                    inspectionItem.setUsername(null);
                    return inspectionItem;
                }).collect(Collectors.toList());
                inspectionItemService.saveBatch(inspectionItemList);
            }
        } else if (way == 2 || way == 3 || way == 4) {
            updateWrapper.set(InspectUnaccepted::getFaultyMaterials, 1);
        }
        switch (type) {
            case 2:
                //2是查询原材料不合格品
                return inspectUnacceptedMapper.selectUnRawInspectsList(page,formTime,dealState,2);
            case 1:
                //1是查询过程不合格品
                return inspectUnacceptedMapper.selectInsList(page,formTime,dealState,1);
            case 0:
                //0是查询成品不合格品
                return inspectUnacceptedMapper.selectInsList(page,formTime,dealState,0);
            default:
                return null;
        }
        return inspectUnacceptedMapper.update(new InspectUnaccepted(), updateWrapper);
    }
}