package com.yuanchu.mom.service.impl; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.yuanchu.mom.mapper.*; import com.yuanchu.mom.pojo.*; import com.yuanchu.mom.pojo.dto.UpdateInspectUnacceptedDto; import com.yuanchu.mom.service.OpinionService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yuanchu.mom.utils.JackSonUtil; import com.yuanchu.mom.vo.Result; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; /** *

* 不合格处理意见表 服务实现类 *

* * @author 江苏鵷雏网络科技有限公司 * @since 2023-08-07 01:54:28 */ @Service public class OpinionServiceImpl extends ServiceImpl implements OpinionService { @Resource private OpinionMapper opinionMapper; @Resource InspectUnacceptedMapper inspectUnacceptedMapper; @Resource RawInspectMapper rawInspectMapper; @Resource ProcessInspectMapper processInspectMapper; @Resource FinishedInspectMapper finishedInspectMapper; @Resource InspectionItemMapper inspectionItemMapper; @Resource RawInsProductMapper rawInsProductMapper; @Override public List clickEditingTriggerQuery(Integer rawUnacceptedId) { List mapList = opinionMapper.clickEditingTriggerQuery(rawUnacceptedId); if (mapList.size() == 0) { List list = new ArrayList<>(); for (int i = 0; i <= 3; i++) { Opinion opinion = new Opinion() .setType(i) .setRawUnacceptedId(rawUnacceptedId); list.add(opinion); } opinionMapper.insertBatchSomeColumn(list); mapList = opinionMapper.clickEditingTriggerQuery(rawUnacceptedId); } return mapList; } //编辑意见 @Override public Integer updateOpinion(String id, List opinion) { List 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); } }); //编辑意见之后姜处理状态修改为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 inspectionItemList = inspectionItemMapper.selectList(Wrappers.query() .eq("type", 2) .eq("inspect_id", inspectUnaccepted.getRawInspectId())); inspectionItemMapper.updateBatch(inspectionItemList); break; case 2: //过程检验单 processInspectMapper.updById(inspectUnaccepted.getRawInspectId()); //过程检验项目 List inspectionItems = inspectionItemMapper.selectList(Wrappers.query() .eq("type", 1) .eq("inspect_id", inspectUnaccepted.getRawInspectId())); inspectionItemMapper.updateBatch(inspectionItems); break; case 0: //原材料检验单 rawInspectMapper.updById(inspectUnaccepted.getRawInspectId()); //原材料检验项目 List rawInsProductList = rawInsProductMapper.selectList(Wrappers.query() .eq("raw_inspect_id", inspectUnaccepted.getRawInspectId())); rawInsProductMapper.updateBatch(rawInsProductList); break; default: break; } } //更新意见 return opinionMapper.updateOpinion(list); } @Override public List> viewEditorialComments(Integer rawUnacceptedId) { return opinionMapper.viewEditorialComments(rawUnacceptedId); } }