package com.yuanchu.limslaboratory.service.impl;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.yuanchu.limslaboratory.mapper.*;
|
import com.yuanchu.limslaboratory.pojo.*;
|
import com.yuanchu.limslaboratory.pojo.dto.InspectionProductListDto;
|
import com.yuanchu.limslaboratory.pojo.vo.FinPlanVo;
|
import com.yuanchu.limslaboratory.pojo.vo.PlanVo;
|
import com.yuanchu.limslaboratory.service.InspectionProductListService;
|
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;
|
|
|
/**
|
* <p>
|
* 服务实现类
|
* </p>
|
*
|
* @author 江苏鵷雏网络科技有限公司
|
* @since 2023-07-17
|
*/
|
@Service
|
public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements PlanService {
|
|
@Resource
|
PlanMapper planMapper;
|
|
@Resource
|
InspectionProductListMapper inspectionProductListMapper;
|
|
@Resource
|
InspectionMaterialListMapper inspectionMaterialListMapper;
|
|
@Resource
|
InspectionProductListService inspectionProductListService;
|
|
//查询所有检验计划分配
|
@Override
|
public List<PlanVo> selectAllPlan(int pageSize, int countSize, Integer state) {
|
if (state == null) {
|
state = 2;
|
}
|
return planMapper.selectAllPlan((pageSize - 1) * countSize, pageSize * countSize, state);
|
}
|
|
//作废检验计划
|
@Override
|
public void delPlan(Integer id) {
|
Plan plan = planMapper.selectById(id);
|
|
/*检验计划作废*/
|
//状态改为作废0
|
plan.setState(0);
|
planMapper.updateById(plan);
|
|
/*检验样品作废(根据报检单id删除样品信息)*/
|
UpdateWrapper<InspectionMaterialList> wrapper1 = new UpdateWrapper<>();
|
wrapper1.eq("inspection_id", plan.getInspectionId()).set("state", 0);
|
inspectionMaterialListMapper.update(new InspectionMaterialList(), wrapper1);
|
|
/*检验样品中的检验项目作废*/
|
//查出检验样品id
|
LambdaQueryWrapper<InspectionMaterialList> queryWrapper = new LambdaQueryWrapper<>();
|
queryWrapper.eq(InspectionMaterialList::getInspectionId, plan.getInspectionId());
|
List<InspectionMaterialList> inspectionMaterialLists = inspectionMaterialListMapper.selectList(queryWrapper);
|
for (InspectionMaterialList inspectionMaterialList : inspectionMaterialLists) {
|
UpdateWrapper<InspectionProductList> wrapper = new UpdateWrapper<>();
|
wrapper.eq("inspection_material_list_id", inspectionMaterialList.getId()).set("state", 0);
|
inspectionProductListService.update(new InspectionProductList(), wrapper);
|
}
|
}
|
|
//修改(分配)检验计划里分配计划的信息
|
@Override
|
public void upPlan(Integer id, InspectionProductListDto inspectionProductListDto) {
|
/*更新计划表中的状态(3:已分配),更新时间*/
|
//查询报检单id
|
InspectionMaterialList inspectionMaterialList = inspectionMaterialListMapper.selectById(id);
|
LambdaQueryWrapper<Plan> queryWrapper = new LambdaQueryWrapper<>();
|
queryWrapper.eq(Plan::getInspectionId, inspectionMaterialList.getInspectionId());
|
Plan plan = planMapper.selectOne(queryWrapper);
|
plan.setState(3).setUpdateTime(new Date());
|
//根据报检单id进行更新计划表
|
LambdaUpdateWrapper<Plan> updateWrapper1 = new LambdaUpdateWrapper<>();
|
updateWrapper1.eq(Plan::getInspectionId, plan.getInspectionId());
|
planMapper.update(plan, updateWrapper1);
|
|
/*更新检验项目表中的项目检验开始日期,项目检验结束日期,项目试验员,试验要求,更新时间,设备id*/
|
InspectionProductList inspectionProductList = new InspectionProductList();
|
BeanUtils.copyProperties(inspectionProductListDto, inspectionProductList);
|
inspectionProductList.setInspectionMaterialListId(id);
|
//根据报检样品id和项目名称进行更新检验项目表
|
LambdaUpdateWrapper<InspectionProductList> updateWrapper2 = new LambdaUpdateWrapper<>();
|
updateWrapper2.eq(InspectionProductList::getInspectionMaterialListId, inspectionProductList.getInspectionMaterialListId())
|
.eq(InspectionProductList::getName, inspectionProductList.getName());
|
inspectionProductListMapper.update(inspectionProductList, updateWrapper2);
|
}
|
|
//查询成品检验
|
@Override
|
public List<FinPlanVo> selectInspection(int pageSize, int countSize, Integer state) {
|
return planMapper.selectInspection((pageSize - 1) * countSize, pageSize * countSize, state);
|
}
|
}
|