package org.jeecg.modules.eam.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import org.apache.shiro.SecurityUtils;
|
import org.jeecg.common.system.vo.LoginUser;
|
import org.jeecg.modules.eam.entity.Area;
|
import org.jeecg.modules.eam.entity.CalibrationOrder;
|
import org.jeecg.modules.eam.entity.CalibrationOrderDetail;
|
import org.jeecg.modules.eam.entity.Equipment;
|
import org.jeecg.modules.eam.mapper.CalibrationOrderDetailMapper;
|
import org.jeecg.modules.eam.mapper.CalibrationOrderMapper;
|
import org.jeecg.modules.eam.model.MaintenanceCycleVo;
|
import org.jeecg.modules.eam.service.IAreaService;
|
import org.jeecg.modules.eam.service.ICalibrationOrderService;
|
import org.jeecg.modules.eam.service.IEamEquipmentService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.io.Serializable;
|
import java.util.ArrayList;
|
import java.util.Collection;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* @Description: 检定工单
|
* @Author: jeecg-boot
|
* @Date: 2023-04-23
|
* @Version: V1.0
|
*/
|
@Service
|
public class CalibrationOrderServiceImpl extends ServiceImpl<CalibrationOrderMapper, CalibrationOrder> implements ICalibrationOrderService {
|
|
|
/**
|
* 用户类型(1 普通成员 2 工段 3 分厂/中心 4 公司)
|
*/
|
private static final Integer USER_TYPE_1 = 1;
|
private static final Integer USER_TYPE_2 = 2;
|
private static final Integer USER_TYPE_3 = 3;
|
private static final Integer USER_TYPE_4 = 4;
|
|
/**
|
* 车间层级类型(1 公司 2 分厂、中心 3 工段)
|
*/
|
private static final String ORG_TYPE_1 = "1";
|
private static final String ORG_TYPE_2 = "2";
|
private static final String ORG_TYPE_3 = "3";
|
|
@Autowired
|
private CalibrationOrderMapper calibrationOrderMapper;
|
@Autowired
|
private CalibrationOrderDetailMapper calibrationOrderDetailMapper;
|
|
@Autowired
|
private IAreaService areaService;
|
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public void saveMain(CalibrationOrder calibrationOrder, List<CalibrationOrderDetail> calibrationOrderDetailList) {
|
calibrationOrderMapper.insert(calibrationOrder);
|
if (calibrationOrderDetailList != null && calibrationOrderDetailList.size() > 0) {
|
for (CalibrationOrderDetail entity : calibrationOrderDetailList) {
|
entity.setId(null);
|
//外键设置
|
entity.setCalibrationOrderId(calibrationOrder.getId());
|
calibrationOrderDetailMapper.insert(entity);
|
}
|
}
|
}
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public void updateMain(CalibrationOrder calibrationOrder, List<CalibrationOrderDetail> calibrationOrderDetailList) {
|
calibrationOrderMapper.updateById(calibrationOrder);
|
|
//1.先删除子表数据
|
calibrationOrderDetailMapper.deleteByMainId(calibrationOrder.getId());
|
|
//2.子表数据重新插入
|
if (calibrationOrderDetailList != null && calibrationOrderDetailList.size() > 0) {
|
for (CalibrationOrderDetail entity : calibrationOrderDetailList) {
|
//外键设置
|
entity.setCalibrationOrderId(calibrationOrder.getId());
|
calibrationOrderDetailMapper.insert(entity);
|
}
|
}
|
}
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public void delMain(String id) {
|
calibrationOrderDetailMapper.deleteByMainId(id);
|
calibrationOrderMapper.deleteById(id);
|
}
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public void delBatchMain(Collection<? extends Serializable> idList) {
|
for (Serializable id : idList) {
|
calibrationOrderDetailMapper.deleteByMainId(id.toString());
|
calibrationOrderMapper.deleteById(id);
|
}
|
}
|
|
//qsw 2023-7-18================================================================================
|
|
/**
|
* 根据模型传入的编码 判断改编码公司/中心/工段的哪一级
|
* qsw 2024-3-18
|
*/
|
@Override
|
public String findOrgType(String productionCode) {
|
return this.baseMapper.findOrgType(productionCode);
|
}
|
|
/**
|
* 获取当前登录人是中心及对应的编码
|
* qsw 2024-3-18
|
*/
|
@Override
|
public String findProductionCode(String userId) {
|
return this.baseMapper.findProductionCode(userId);
|
}
|
|
/**
|
* 根据模型传入的编码 判断改编码公司/中心/工段的哪一级
|
* 获取当前登录人工段级对应的编码
|
* qsw 2024-3-18
|
*/
|
@Override
|
public String findAreaProductionCode(String userId) {
|
return this.baseMapper.findAreaProductionCode(userId);
|
}
|
|
/**
|
* 设备检定工单 创建时通过设备获取设备精度参数
|
* qsw 2023-7-18
|
*/
|
@Override
|
public List<Map<String, Object>> getPrecisionParameterList(String equipmentId) {
|
return this.baseMapper.getPrecisionParameterList(equipmentId);
|
}
|
|
/**
|
*首页公司级 技术状态数量统计
|
* qsw 2024-3-13
|
*/
|
@Override
|
public List<Map<String, Object>> getFactoryEquipmentTechnologyStatusList() {
|
return this.baseMapper.getFactoryEquipmentTechnologyStatusList();
|
}
|
|
/**
|
*首页设备报修情况统计
|
* qsw 2024-3-13
|
*/
|
@Override
|
public List<Map<String, Object>> getFactoryReportRepairEquipmentList() {
|
return this.baseMapper.getFactoryReportRepairEquipmentList();
|
}
|
|
/**
|
*首页本月三保计划
|
* qsw 2024-3-14
|
*/
|
@Override
|
public List<Map<String, Object>> getFactoryThisMonthMaintenanceList() {
|
return this.baseMapper.getFactoryThisMonthMaintenanceList();
|
}
|
|
/**
|
*首页下月三保计划
|
* qsw 2024-3-14
|
*/
|
@Override
|
public List<Map<String, Object>> getFactoryNextMonthMaintenanceList() {
|
return this.baseMapper.getFactoryNextMonthMaintenanceList();
|
}
|
|
/**
|
*首页公司级 本月三保完成数量
|
* qsw 2024-3-14
|
*/
|
@Override
|
public List<Map<String, Object>> getFactoryThisMonthMaintenanceFinishList() {
|
return this.baseMapper.getFactoryThisMonthMaintenanceFinishList();
|
}
|
|
/**
|
*首页下下月三保计划
|
* qsw 2024-3-14
|
*/
|
@Override
|
public List<Map<String, Object>> getFactoryNextNextMonthMaintenanceList() {
|
return this.baseMapper.getFactoryNextNextMonthMaintenanceList();
|
}
|
|
|
/**
|
*首页(二级页面)技术状态数量统计
|
* qsw 2024-3-13
|
*/
|
@Override
|
public List<Map<String, Object>> getEquipmentTechnologyStatusList(String workCenterId,String areaId) {
|
return this.baseMapper.getEquipmentTechnologyStatusList(workCenterId,areaId);
|
}
|
|
/**
|
*首页(二级页面)设备报修情况统计
|
* qsw 2024-3-13
|
*/
|
@Override
|
public List<Map<String, Object>> getReportRepairEquipmentList(String workCenterId,String areaId) {
|
return this.baseMapper.getReportRepairEquipmentList(workCenterId,areaId);
|
}
|
|
/**
|
*首页(二级页面)本月三保计划
|
* qsw 2024-3-14
|
*/
|
@Override
|
public List<Map<String, Object>> getThisMonthMaintenanceList(String workCenterId,String areaId) {
|
return this.baseMapper.getThisMonthMaintenanceList(workCenterId,areaId);
|
}
|
|
/**
|
*首页(二级页面)下月三保计划
|
* qsw 2024-3-14
|
*/
|
@Override
|
public List<Map<String, Object>> getNextMonthMaintenanceList(String workCenterId,String areaId) {
|
return this.baseMapper.getNextMonthMaintenanceList(workCenterId,areaId);
|
}
|
|
/**
|
*首页(二级页面)下下月三保计划
|
* qsw 2024-3-14
|
*/
|
@Override
|
public List<Map<String, Object>> getNextNextMonthMaintenanceList(String workCenterId,String areaId) {
|
return this.baseMapper.getNextNextMonthMaintenanceList(workCenterId,areaId);
|
}
|
|
/**
|
*首页(二级页面)本月三保完成数量
|
* qsw 2024-3-14
|
*/
|
@Override
|
public List<Map<String, Object>> getThisMonthMaintenanceFinishList(String workCenterId,String areaId) {
|
return this.baseMapper.getThisMonthMaintenanceFinishList(workCenterId,areaId);
|
}
|
|
/**
|
*工段级 本月三保延期数量
|
* qsw 2024-3-20
|
*/
|
@Override
|
public List<Map<String, Object>> get3MaintenancePostponeCount(String areaId) {
|
return this.baseMapper.get3MaintenancePostponeCount(areaId);
|
}
|
|
/**
|
*工段级 本月三保超期数量
|
* qsw 2024-3-20
|
*/
|
@Override
|
public List<Map<String, Object>> get3MaintenanceOverdueCount(String areaId) {
|
return this.baseMapper.get3MaintenanceOverdueCount(areaId);
|
}
|
|
/**
|
*首页二保计划展示
|
* qsw 2024-3-15
|
*/
|
@Override
|
public List<Map<String, Object>> getTwoMaintenancePlanList(String productionCode) {
|
Boolean flag = true;
|
List<Map<String, Object>> list = new ArrayList<>();
|
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
Integer userType = user.getUserType();
|
List<Area> areaList = null;
|
if(USER_TYPE_4.equals(userType)){
|
if(StringUtils.isBlank(productionCode)){
|
areaList = areaService.lambdaQuery().eq(Area::getType, "1").eq(Area::getDelFlag, "0").list();
|
}else{
|
String orgType = this.baseMapper.findOrgType(productionCode);
|
if(ORG_TYPE_2.equals(orgType)){
|
Area area = areaService.getOne(new LambdaQueryWrapper<Area>().eq(Area::getNum, productionCode).eq(Area::getType, "1").eq(Area::getDelFlag, 0));
|
areaList = areaService.lambdaQuery().eq(Area::getType, "1").eq(Area::getId,area.getId()).eq(Area::getDelFlag, "0").list();
|
} else if(ORG_TYPE_3.equals(orgType)){
|
//工段级直接显示工段下要保养的设备明细
|
flag = false;
|
String siteProductionCode = this.baseMapper.findSiteProductionCode(productionCode);
|
Area areaOne = areaService.getOne(new LambdaQueryWrapper<Area>().eq(Area::getNum, siteProductionCode).eq(Area::getType, "1").eq(Area::getDelFlag, 0));
|
Area area = areaService.getOne(new LambdaQueryWrapper<Area>().eq(Area::getNum, productionCode).eq(Area::getType, "3").eq(Area::getDelFlag, 0));
|
if(areaOne != null && area != null){
|
String maintenanceDate = this.baseMapper.findMaintenanceDate(areaOne.getId());
|
list = this.baseMapper.getAreTwoMaintenancePlanDetails(area.getId(), maintenanceDate);
|
}
|
}
|
}
|
}else if(USER_TYPE_3.equals(userType)){
|
String code = this.baseMapper.findProductionCode(user.getId());
|
Area area = null;
|
if(StringUtils.isBlank(productionCode)){
|
area = areaService.getOne(new LambdaQueryWrapper<Area>().eq(Area::getNum, code).eq(Area::getType, "1").eq(Area::getDelFlag, 0));
|
if(area != null){
|
areaList = areaService.lambdaQuery().eq(Area::getType, "1").eq(Area::getId,area.getId()).eq(Area::getDelFlag, "0").list();
|
}
|
}else{
|
//工段级直接显示工段下要保养的设备明细
|
flag = false;
|
Area areaOne = areaService.getOne(new LambdaQueryWrapper<Area>().eq(Area::getNum, code).eq(Area::getType, "1").eq(Area::getDelFlag, 0));
|
area = areaService.getOne(new LambdaQueryWrapper<Area>().eq(Area::getNum, productionCode).eq(Area::getType, "3").eq(Area::getDelFlag, 0));
|
if(areaOne != null && area != null){
|
String maintenanceDate = this.baseMapper.findMaintenanceDate(areaOne.getId());
|
list = this.baseMapper.getAreTwoMaintenancePlanDetails(area.getId(), maintenanceDate);
|
}
|
}
|
}else if(USER_TYPE_2.equals(userType)){
|
//工段级直接显示工段下要保养的设备明细
|
flag = false;
|
String areaProductionCode = this.baseMapper.findAreaProductionCode(user.getId());
|
String code = this.baseMapper.findSiteProductionCode(productionCode);
|
Area areaOne = areaService.getOne(new LambdaQueryWrapper<Area>().eq(Area::getNum, code).eq(Area::getType, "1").eq(Area::getDelFlag, 0));
|
Area area = areaService.getOne(new LambdaQueryWrapper<Area>().eq(Area::getNum, areaProductionCode).eq(Area::getType, "3").eq(Area::getDelFlag, 0));
|
if(areaOne != null && area != null){
|
String maintenanceDate = this.baseMapper.findMaintenanceDate(areaOne.getId());
|
list = this.baseMapper.getAreTwoMaintenancePlanDetails(area.getId(), maintenanceDate);
|
}
|
}
|
if(flag == true){
|
for (Area area : areaList) {
|
String id = area.getId();
|
List<Map<String, Object>> centerTwoMaintenancePlanList = this.baseMapper.getCenterTwoMaintenancePlanList(id);
|
if(centerTwoMaintenancePlanList.size()>0){
|
list.add(centerTwoMaintenancePlanList.get(0));
|
}
|
}
|
}
|
return list;
|
}
|
|
@Override
|
public List<Map<String, Object>> getAreaEquipmentList(String equipmentNum, String areaId,List<String> equipmentIds) {
|
return this.baseMapper.getAreaEquipmentList(equipmentNum,areaId,equipmentIds);
|
}
|
|
/**
|
*首页 第四级 对应工区下,设备台账信息展示;
|
* qsw 2024-4-22
|
*/
|
@Override
|
public List<Map<String, Object>> getOperationCertificate(String username) {
|
return this.baseMapper.getOperationCertificate(username);
|
}
|
}
|