zss
2023-09-19 3625accd261feb99a6927013d7551a08d68c756e
inspect-server/src/main/java/com/yuanchu/mom/service/impl/OpinionServiceImpl.java
@@ -1,18 +1,13 @@
package com.yuanchu.mom.service.impl;
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.yuanchu.mom.pojo.InspectUnaccepted;
import com.yuanchu.mom.pojo.Opinion;
import com.yuanchu.mom.mapper.OpinionMapper;
import com.yuanchu.mom.mapper.*;
import com.yuanchu.mom.pojo.*;
import com.yuanchu.mom.pojo.dto.UpdateInspectUnacceptedDto;
import com.yuanchu.mom.service.InspectUnacceptedService;
import com.yuanchu.mom.service.OpinionService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.utils.JackSonUtil;
import com.yuanchu.mom.utils.MyUtil;
import com.yuanchu.mom.vo.Result;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -20,6 +15,8 @@
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
/**
 * <p>
@@ -34,6 +31,24 @@
    @Resource
    private OpinionMapper opinionMapper;
    @Resource
    InspectUnacceptedMapper inspectUnacceptedMapper;
    @Resource
    RawInspectMapper rawInspectMapper;
    @Resource
    ProcessInspectMapper processInspectMapper;
    @Resource
    FinishedInspectMapper finishedInspectMapper;
    @Resource
    InspectionItemMapper inspectionItemMapper;
    @Resource
    RawInsProductMapper rawInsProductMapper;
    @Override
@@ -53,20 +68,67 @@
        return mapList;
    }
    //编辑意见
    @Override
    public Integer updateOpinion(String id, List<?> opinion) {
        List<Opinion> list = new ArrayList<>();
        AtomicInteger a= new AtomicInteger();
        AtomicInteger unId= new AtomicInteger();
        opinion.forEach(i -> {
            try {
                Opinion unmarshal = JackSonUtil.unmarshal(JackSonUtil.marshal(i), Opinion.class);
                unmarshal.setUserId(Integer.valueOf(id));
                unmarshal.setFillDate(new Date());
                list.add(unmarshal);
                //记录处理的方式为返修的次数
                if (unmarshal.getWay()==1){
                    a.getAndIncrement();
                }
                //记录这个处理意见关联的不合格订单id
                unId.set(opinionMapper.selectById(unmarshal.getId()).getRawUnacceptedId());
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        });
        return opinionMapper.updateOpinion(list);
        //编辑意见之后姜处理状态修改为1已处理
        InspectUnaccepted inspectUnaccepted = inspectUnacceptedMapper.selectById(unId.get());
        inspectUnaccepted.setDealState(1);
        inspectUnacceptedMapper.updateById(inspectUnaccepted);
        //如果全部都是返修则返回检验,将检验状态清空
        if (a.get()==opinion.size()){
            switch (inspectUnaccepted.getType()){
                case 1:
                    //成品检验单
                    finishedInspectMapper.updById(inspectUnaccepted.getRawInspectId());
                    //成品检验项目
                    List<InspectionItem> inspectionItemList = inspectionItemMapper.selectList(Wrappers.<InspectionItem>query()
                            .eq("type", 2)
                            .eq("inspect_id", inspectUnaccepted.getRawInspectId()));
                    inspectionItemMapper.updateBatch(inspectionItemList);
                    break;
                case 2:
                    //过程检验单
                    processInspectMapper.updById(inspectUnaccepted.getRawInspectId());
                    //过程检验项目
                    List<InspectionItem> inspectionItems = inspectionItemMapper.selectList(Wrappers.<InspectionItem>query()
                            .eq("type", 1)
                            .eq("inspect_id", inspectUnaccepted.getRawInspectId()));
                    inspectionItemMapper.updateBatch(inspectionItems);
                    break;
                case 0:
                    //原材料检验单
                    rawInspectMapper.updById(inspectUnaccepted.getRawInspectId());
                    //原材料检验项目
                    List<RawInsProduct> rawInsProductList = rawInsProductMapper.selectList(Wrappers.<RawInsProduct>query()
                            .eq("raw_inspect_id", inspectUnaccepted.getRawInspectId()));
                    rawInsProductMapper.updateBatch(rawInsProductList);
                    break;
                default:
                    break;
            }
        }
        //更新意见
        return  opinionMapper.updateOpinion(list);
    }
    @Override