qushaowei
2024-03-19 cdeec053dbbc842c03dd1a0b961b3b3321c5ac20
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/CalibrationOrderServiceImpl.java
@@ -1,11 +1,19 @@
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;
@@ -13,6 +21,7 @@
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;
@@ -26,10 +35,29 @@
@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
@@ -81,6 +109,35 @@
    }
    //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
@@ -89,4 +146,186 @@
    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-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;
    }
}