package com.yuanchu.limslaboratory.service.impl; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.yuanchu.limslaboratory.mapper.*; import com.yuanchu.limslaboratory.pojo.*; import com.yuanchu.limslaboratory.pojo.dto.InspectionProductListDto; import com.yuanchu.limslaboratory.pojo.dto.PlanDto; import com.yuanchu.limslaboratory.pojo.vo.PlanVo; import com.yuanchu.limslaboratory.service.PlanService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; import java.util.List; /** *

* 服务实现类 *

* * @author 江苏鵷雏网络科技有限公司 * @since 2023-07-17 */ @Service public class PlanServiceImpl extends ServiceImpl implements PlanService { @Resource PlanMapper planMapper; @Resource InspectionProductListMapper inspectionProductListMapper; @Resource InspectionMaterialListMapper inspectionMaterialListMapper; @Resource UserMapper userMapper; @Resource InstrumentMapper instrumentMapper; //查询所有检验计划分配 @Override public List selectAllPlan(int pageSize, int countSize, Integer state) { if (state == null) { state = 2; } return planMapper.selectAllPlan((pageSize - 1) * countSize, pageSize * countSize, state); } //作废检验计划 @Override public boolean delPlan(Integer id) { Plan plan = planMapper.selectById(id); //状态改为作废0 plan.setState(0); int judge = planMapper.updateById(plan); return judge > 0; } //修改(分配)检验计划里分配计划的信息 @Override public void upPlan(InspectionProductListDto inspectionProductListDto) { /*更新计划表中的状态(3:已分配),更新时间*/ //查询报检单id InspectionMaterialList inspectionMaterialList = inspectionMaterialListMapper.selectById(inspectionProductListDto.getInspectionMaterialListId()); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(Plan::getInspectionId, inspectionMaterialList.getInspectionId()); Plan plan = planMapper.selectOne(queryWrapper); plan.setState(3).setUpdateTime(new Date()); //根据报检单id进行更新计划表 LambdaUpdateWrapper updateWrapper1 = new LambdaUpdateWrapper<>(); updateWrapper1.eq(Plan::getInspectionId, plan.getInspectionId()); planMapper.update(plan, updateWrapper1); /*更新检验项目表中的项目检验开始日期,项目检验结束日期,项目试验员,试验要求,更新时间,设备id*/ InspectionProductList inspectionProductList = new InspectionProductList(); //复制之后,inspectionProductList里面有项目检验开始、结束日期,项目名称,试验方法,试验要求,单位, BeanUtils.copyProperties(inspectionProductListDto, inspectionProductList); //根据设备名获取设备id LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>(); wrapper1.eq(Instrument::getEquipmentName, inspectionProductListDto.getInstrumentName()); Instrument instrument = instrumentMapper.selectOne(wrapper1); //根据用户名获取用户id LambdaQueryWrapper wrapper2 = new LambdaQueryWrapper<>(); wrapper2.eq(User::getName, inspectionProductListDto.getUserName()); User user = userMapper.selectOne(wrapper2); inspectionProductList.setUpdateTime(new Date()).setUserId(user.getId()).setInstrumentId(instrument.getId()); //根据报检样品id和项目名称进行更新检验项目表 LambdaUpdateWrapper updateWrapper2 = new LambdaUpdateWrapper<>(); updateWrapper2.eq(InspectionProductList::getInspectionMaterialListId, inspectionProductList.getInspectionMaterialListId()) .eq(InspectionProductList::getName, inspectionProductList.getName()); inspectionProductListMapper.update(inspectionProductList, updateWrapper2); } //查询成品检验 @Override public List selectInspection(int pageSize, int countSize, Integer state) { return planMapper.selectInspection((pageSize - 1) * countSize, pageSize * countSize, state); } }