package com.yuanchu.limslaboratory.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.yuanchu.limslaboratory.mapper.InspectionMaterialListMapper;
import com.yuanchu.limslaboratory.mapper.InspectionProductListMapper;
import com.yuanchu.limslaboratory.mapper.PlanMapper;
import com.yuanchu.limslaboratory.pojo.Inspection;
import com.yuanchu.limslaboratory.mapper.InspectionMapper;
import com.yuanchu.limslaboratory.pojo.InspectionMaterialList;
import com.yuanchu.limslaboratory.pojo.InspectionProductList;
import com.yuanchu.limslaboratory.pojo.Plan;
import com.yuanchu.limslaboratory.pojo.dto.InspectionDto;
import com.yuanchu.limslaboratory.service.InspectionProductListService;
import com.yuanchu.limslaboratory.service.InspectionService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
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 InspectionServiceImpl extends ServiceImpl implements InspectionService {
@Resource
private InspectionMapper inspectionMapper;
@Resource
private PlanMapper planMapper;
@Resource
InspectionMaterialListMapper inspectionMaterialListMapper;
@Resource
InspectionProductListService inspectionProductListService;
//添加检验申请单
@Override
public Inspection addInspection(String userName, int type) {
Inspection inspection = new Inspection(type, 0, 1, 1, userName);
int judge = inspectionMapper.insert(inspection);
return judge > 0 ? inspection : null;
}
//查询所有检验单列表
@Override
public List selectAllInspection(int pageSize, int countSize, Integer state) {
return inspectionMapper.selectAllInspection((pageSize - 1) * countSize, pageSize * countSize, state);
}
//作废申请检验单
@Override
public void delInspectionByInsId(String inspectionId) {
/*检验单作废*/
Inspection inspection = inspectionMapper.selectById(inspectionId);
inspection.setState(0);
inspectionMapper.updateById(inspection);
/*检验计划作废*/
UpdateWrapper updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("inspection_id", inspectionId).set("state", 0);
planMapper.update(new Plan(), updateWrapper);
/*检验样品作废(根据报检单id删除样品信息)*/
UpdateWrapper wrapper1 = new UpdateWrapper<>();
wrapper1.eq("inspection_id", inspectionId).set("state", 0);
inspectionMaterialListMapper.update(new InspectionMaterialList(), wrapper1);
/*检验样品中的检验项目作废*/
//查出检验样品id
LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(InspectionMaterialList::getInspectionId,inspectionId);
List inspectionMaterialLists = inspectionMaterialListMapper.selectList(queryWrapper);
for (InspectionMaterialList inspectionMaterialList : inspectionMaterialLists) {
UpdateWrapper wrapper = new UpdateWrapper<>();
wrapper.eq("inspection_material_list_id", inspectionMaterialList.getId()).set("state", 0);
inspectionProductListService.update(new InspectionProductList(), wrapper);
}
}
//提交申请检验单
@Override
public void subInspectionByInsId(String inspectionId) {
Inspection inspection = inspectionMapper.selectById(inspectionId);
//状态改为已提交2
inspection.setState(2);
inspectionMapper.updateById(inspection);
//计划表新增
Plan plan = Plan.builder().inspectionId(inspectionId).state(1).userId(inspection.getInspectUserId()).createTime(new Date()).build();
planMapper.insert(plan);
}
}