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.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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 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 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 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 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> getPrecisionParameterList(String equipmentId) { return this.baseMapper.getPrecisionParameterList(equipmentId); } /** *首页公司级 技术状态数量统计 * qsw 2024-3-13 */ @Override public List> getFactoryEquipmentTechnologyStatusList() { return this.baseMapper.getFactoryEquipmentTechnologyStatusList(); } /** *首页设备报修情况统计 * qsw 2024-3-13 */ @Override public List> getFactoryReportRepairEquipmentList() { return this.baseMapper.getFactoryReportRepairEquipmentList(); } /** *首页本月三保计划 * qsw 2024-3-14 */ @Override public List> getFactoryThisMonthMaintenanceList() { return this.baseMapper.getFactoryThisMonthMaintenanceList(); } /** *首页下月三保计划 * qsw 2024-3-14 */ @Override public List> getFactoryNextMonthMaintenanceList() { return this.baseMapper.getFactoryNextMonthMaintenanceList(); } /** *首页公司级 本月三保完成数量 * qsw 2024-3-14 */ @Override public List> getFactoryThisMonthMaintenanceFinishList() { return this.baseMapper.getFactoryThisMonthMaintenanceFinishList(); } /** *首页下下月三保计划 * qsw 2024-3-14 */ @Override public List> getFactoryNextNextMonthMaintenanceList() { return this.baseMapper.getFactoryNextNextMonthMaintenanceList(); } /** *首页(二级页面)技术状态数量统计 * qsw 2024-3-13 */ @Override public List> getEquipmentTechnologyStatusList(String workCenterId,String areaId) { return this.baseMapper.getEquipmentTechnologyStatusList(workCenterId,areaId); } /** *首页 技术状态点击弹出对应明细 * qsw 2024-5-25 */ @Override public IPage> getEquipmentByTechnologyStatus(Integer pageNo, Integer pageSize,String workCenterId, String areaId,String technologyStatus) { IPage pageData = new Page(pageNo, pageSize); return this.baseMapper.getEquipmentByTechnologyStatus(pageData,workCenterId,areaId,technologyStatus); } /** *首页(二级页面)设备报修情况统计 * qsw 2024-3-13 */ @Override public List> getReportRepairEquipmentList(String workCenterId,String areaId) { return this.baseMapper.getReportRepairEquipmentList(workCenterId,areaId); } /** *首页 设备报修情况统计明细展示 * qsw 2024-5-25 */ @Override public IPage> getEquipmentByReportRepair(Integer pageNo, Integer pageSize, String workCenterId, String areaId, String isStop) { IPage pageData = new Page(pageNo, pageSize); return this.baseMapper.getEquipmentByReportRepair(pageData,workCenterId,areaId,isStop); } /** *首页(二级页面)本月三保计划 * qsw 2024-3-14 */ @Override public List> getThisMonthMaintenanceList(String workCenterId,String areaId) { return this.baseMapper.getThisMonthMaintenanceList(workCenterId,areaId); } /** *首页本月三保计划明细 * qsw 2024-3-14 */ @Override public IPage> showThisMonthMaintenanceList(Integer pageNo, Integer pageSize, String workCenterId, String areaId) { IPage pageData = new Page(pageNo, pageSize); return this.baseMapper.showThisMonthMaintenanceList(pageData,workCenterId,areaId); } /** *首页(二级页面)下月三保计划 * qsw 2024-3-14 */ @Override public List> getNextMonthMaintenanceList(String workCenterId,String areaId) { return this.baseMapper.getNextMonthMaintenanceList(workCenterId,areaId); } /** *首页下月三保计划明细展示 * qsw 2024-3-14 */ @Override public IPage> showNextMonthMaintenanceList(Integer pageNo, Integer pageSize, String workCenterId, String areaId) { IPage pageData = new Page(pageNo, pageSize); return this.baseMapper.showNextMonthMaintenanceList(pageData,workCenterId,areaId); } /** *首页(二级页面)下下月三保计划 * qsw 2024-3-14 */ @Override public List> getNextNextMonthMaintenanceList(String workCenterId,String areaId) { return this.baseMapper.getNextNextMonthMaintenanceList(workCenterId,areaId); } /** *首页(二级页面)下下月三保计划明细 * qsw 2024-3-14 */ @Override public IPage> showNextNextMonthMaintenanceList(Integer pageNo, Integer pageSize, String workCenterId, String areaId) { IPage pageData = new Page(pageNo, pageSize); return this.baseMapper.showNextNextMonthMaintenanceList(pageData,workCenterId,areaId); } /** *首页(二级页面)本月三保完成数量 * qsw 2024-3-14 */ @Override public List> getThisMonthMaintenanceFinishList(String workCenterId,String areaId) { return this.baseMapper.getThisMonthMaintenanceFinishList(workCenterId,areaId); } @Override public IPage> showThisMonthMaintenanceFinishList(Integer pageNo, Integer pageSize, String workCenterId, String areaId) { IPage pageData = new Page(pageNo, pageSize); return this.baseMapper.showThisMonthMaintenanceFinishList(pageData,workCenterId,areaId); } /** *工段级 本月三保延期数量 * qsw 2024-3-20 */ @Override public List> get3MaintenancePostponeCount(String areaId) { return this.baseMapper.get3MaintenancePostponeCount(areaId); } @Override public IPage> show3MaintenancePostponeCount(Integer pageNo, Integer pageSize, String areaId) { IPage pageData = new Page(pageNo, pageSize); return this.baseMapper.show3MaintenancePostponeCount(pageData,areaId); } /** *工段级 本月三保超期数量 * qsw 2024-3-20 */ @Override public List> get3MaintenanceOverdueCount(String areaId) { return this.baseMapper.get3MaintenanceOverdueCount(areaId); } /** * 工段级 三保超期数量明细 * qsw 2024-3-20 */ @Override public IPage> show3MaintenanceOverdueCount(Integer pageNo, Integer pageSize, String areaId) { IPage pageData = new Page(pageNo, pageSize); return this.baseMapper.show3MaintenanceOverdueCount(pageData,areaId); } /** *首页二保计划展示 * qsw 2024-3-15 */ @Override public List> getTwoMaintenancePlanList(String productionCode) { Boolean flag = true; List> list = new ArrayList<>(); LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); Integer userType = user.getUserType(); List 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().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().eq(Area::getNum, siteProductionCode).eq(Area::getType, "1").eq(Area::getDelFlag, 0)); Area area = areaService.getOne(new LambdaQueryWrapper().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().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().eq(Area::getNum, code).eq(Area::getType, "1").eq(Area::getDelFlag, 0)); area = areaService.getOne(new LambdaQueryWrapper().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().eq(Area::getNum, code).eq(Area::getType, "1").eq(Area::getDelFlag, 0)); Area area = areaService.getOne(new LambdaQueryWrapper().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> centerTwoMaintenancePlanList = this.baseMapper.getCenterTwoMaintenancePlanList(id); if(centerTwoMaintenancePlanList.size()>0){ list.add(centerTwoMaintenancePlanList.get(0)); } } } return list; } @Override public List> getAreaEquipmentList(String equipmentNum, String areaId,List equipmentIds) { return this.baseMapper.getAreaEquipmentList(equipmentNum,areaId,equipmentIds); } /** *首页 第四级 对应工区下,设备台账信息展示; * qsw 2024-4-22 */ @Override public List> getOperationCertificate(String username) { return this.baseMapper.getOperationCertificate(username); } /** *首页 第四级 对应工区下,设备台账信息展示; * qsw 2024-4-22 */ @Override public List> getEquipmentReportRepairCount(String equipmentId) { return this.baseMapper.getEquipmentReportRepairCount(equipmentId); } }