qushaowei
2024-03-19 cdeec053dbbc842c03dd1a0b961b3b3321c5ac20
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/CalibrationOrderServiceImpl.java
@@ -1,6 +1,8 @@
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;
@@ -32,6 +34,22 @@
 */
@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;
@@ -108,6 +126,16 @@
    @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);
    }
    /**
@@ -233,18 +261,71 @@
     * qsw 2024-3-15
     */
    @Override
    public List<Map<String, Object>> getTwoMaintenancePlanList() {
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        List<Area> areaList = areaService.lambdaQuery().eq(Area::getType, "1").eq(Area::getDelFlag, "0").list();
        List<Map<String, Object>> arrayList = new ArrayList<>();
        for (Area area : areaList) {
            String id = area.getId();
            List<Map<String, Object>> centerTwoMaintenancePlanList = this.baseMapper.getCenterTwoMaintenancePlanList(id);
            if(centerTwoMaintenancePlanList.size()>0){
                arrayList.add(centerTwoMaintenancePlanList.get(0));
    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);
            }
        }
        return null;
        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;
    }
}