qushaowei
2024-07-12 15ae1e3b5cda40a8248a1addf4a64c1e0a9e2b13
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/DailyInspectionStandardController.java
@@ -11,9 +11,11 @@
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.dto.message.MessageDTO;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.api.ISysBaseAPI;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.vo.LoginUser;
@@ -21,6 +23,8 @@
import org.jeecg.modules.eam.entity.*;
import org.jeecg.modules.eam.service.*;
import org.jeecg.modules.eam.vo.InspectionStandardImportVo;
import org.jeecg.modules.system.entity.*;
import org.jeecg.modules.system.service.*;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
@@ -29,6 +33,7 @@
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@@ -64,6 +69,19 @@
    @Autowired
    private IInspectionCycleService inspectionCycleService;
    @Autowired
    private ISysBaseAPI sysBaseApi;
    @Autowired
    private ISysUserService sysUserService;
    @Resource
    private ISysRoleService sysRoleService;
    @Resource
    private ISysDictService sysDictService;
    @Resource
    private ISysDictItemService sysDictItemService;
    @Resource
    private ISysUserRoleService sysUserRoleService;
    /**
     * 分页列表查询
     *
@@ -142,6 +160,8 @@
            isd.setInspectionCycleId(dailyInspectionStandardDetail.getInspectionCycleId());
            dailyInspectionStandardDetailService.save(isd);
        }
        //消息提醒
        this.inspectionStandardAlert(dailyInspectionStandard.getApprovalStatus(),dailyInspectionStandard.getNum());
        return Result.OK("添加成功!");
    }
@@ -179,6 +199,8 @@
            isd.setInspectionCycleId(dailyInspectionStandardDetail.getInspectionCycleId());
            dailyInspectionStandardDetailService.save(isd);
        }
        //消息提醒
        this.inspectionStandardAlert(dailyInspectionStandard.getApprovalStatus(),dailyInspectionStandard.getNum());
        return Result.OK("编辑成功!");
    }
@@ -269,9 +291,11 @@
        int successLines = 0, errorLines = 0;
        //a = 1开始读取点检项目;b = 1开始读取周保养项目;c = 1该设备导入信息存在错误;projectColumnIndex点检项目所在列;maintenanceColumnIndex周保养项目所在列
        int a = 0,b = 0,c = 0,projectColumnIndex = -1,maintenanceColumnIndex = 0;
        //表头标题
        String title = "";
        String dailyInspectionStandardId = null;
        String equipmentNum = null;
        DailyInspectionStandard dailyInspectionStandard = new DailyInspectionStandard();
        DailyInspectionStandard dailyInspectionStandard = null;
        List<DailyInspectionStandardDetail> dailyInspectionStandardDetailList = new ArrayList<>();
        for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
            MultipartFile file = entity.getValue();
@@ -301,6 +325,9 @@
                                if("STRING".equals(cell.getCellType().toString())|| "BLANK".equals(cell.getCellType().toString())){
                                    //点检周期存在,判断设备统一编码是否存在
                                    String strCell = cell.getStringCellValue();
                                    if(strCell.contains("生产设备自主维护点检表")){
                                        title = strCell.trim().substring(11).trim();
                                    }
                                    if(strCell.contains("设备名称:")){
                                        String[] tybh1  = strCell.split("统一编号:");
                                        String[] tybh2 = tybh1[1].split("年");
@@ -325,12 +352,15 @@
                                                errorLines++;
                                            }else {
                                                c = 0;
                                                dailyInspectionStandard.setNum(identityService.getNumByTypeAndLength("DailylnspectionStandard",4));
                                                String num = identityService.getNumByTypeAndLength("DailylnspectionStandard", 4);
                                                dailyInspectionStandard = new DailyInspectionStandard();
                                                dailyInspectionStandard.setNum(num);
                                                dailyInspectionStandard.setVersionStatus("2");
                                                dailyInspectionStandard.setVersion("1.0");
                                                dailyInspectionStandard.setAssignMode("1");
                                                dailyInspectionStandard.setEquipmentId(equipment.getId());
                                                dailyInspectionStandard.setApprovalStatus("5");
                                                dailyInspectionStandard.setDisUda1(title);
                                                //dailyInspectionStandardService.save(dailyInspectionStandard);
                                                //dailyInspectionStandardId = dailyInspectionStandard.getId();
                                            }
@@ -353,9 +383,10 @@
                                            dailyInspectionStandardDetail.setDailyInspectionStandardId(dailyInspectionStandardId);
                                            String dayInspectionProjectName = row.getCell(projectColumnIndex).toString();
                                            String standard = row.getCell(projectColumnIndex+3).toString();
                                            //查询点击项目,如果没有新增点检项目
                                            //查询点检项目,如果没有新增点检项目
                                            if(StringUtils.isNotBlank(dayInspectionProjectName)){
                                                List<InspectionProject> inspectionProjectList = inspectionProjectService.lambdaQuery().eq(InspectionProject::getName,dayInspectionProjectName).eq(InspectionProject::getDelFlag,CommonConstant.DEL_FLAG_0).list();
                                                List<InspectionProject> inspectionProjectList = inspectionProjectService.lambdaQuery().eq(InspectionProject::getName,dayInspectionProjectName)
                                                        .eq(InspectionProject::getDetectionStandard,standard).eq(InspectionProject::getDelFlag,CommonConstant.DEL_FLAG_0).list();
                                                if(CollectionUtils.isEmpty(inspectionProjectList)){
                                                    InspectionProject inspectionProject = new InspectionProject();
                                                    inspectionProject.setNum(identityService.getNumByTypeAndLength("InspectionProject",4));
@@ -400,7 +431,8 @@
                                            String weekInspectionProjectName = row.getCell(maintenanceColumnIndex).toString();
                                            String inspectionStandardName = row.getCell(maintenanceColumnIndex+3).toString();
                                            if(StringUtils.isNotBlank(weekInspectionProjectName)){
                                                List<InspectionProject> inspectionProjectList = inspectionProjectService.lambdaQuery().eq(InspectionProject::getName,weekInspectionProjectName).eq(InspectionProject::getDelFlag,CommonConstant.DEL_FLAG_0).list();
                                                List<InspectionProject> inspectionProjectList = inspectionProjectService.lambdaQuery().eq(InspectionProject::getName,weekInspectionProjectName)
                                                        .eq(InspectionProject::getDetectionStandard,inspectionStandardName).eq(InspectionProject::getDelFlag,CommonConstant.DEL_FLAG_0).list();
                                                if(CollectionUtils.isEmpty(inspectionProjectList)){
                                                    InspectionProject inspectionProject = new InspectionProject();
                                                    inspectionProject.setNum(identityService.getNumByTypeAndLength("InspectionProject",4));
@@ -560,12 +592,83 @@
        }
        boolean b = dailyInspectionStandardService.updateById(dailyInspectionStandard);
        if (b){
            if(!"5".equals(approvalStatus)){//已编制
                this.inspectionStandardAlert(approvalStatus,dailyInspectionStandard.getNum());
            }
            return Result.OK("审核成功!");
        }else{
            return Result.error("审核失败!");
        }
    }
    /**
     *点检标准签审流程消息提醒
     * qsw 2024-3-11
     */
    void inspectionStandardAlert(String approvalStatus,String standardNum){
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        SysDict sysDict = sysDictService.getOne(new QueryWrapper<SysDict>().eq("dict_code","info_type"),false);
        SysDictItem sysDictItem = null;
        String roleDictItem = "";
        if("1".equals(approvalStatus)){//已编制
            roleDictItem = "点检标准审核";
            sysDictItem = sysDictItemService.getOne(new QueryWrapper<SysDictItem>()
                    .eq("item_text","点检标准审核")
                    .eq("dict_id",sysDict.getId()),false);
        }else if("2".equals(approvalStatus)){//驳回编制
            roleDictItem = "点检标准编制";
            sysDictItem = sysDictItemService.getOne(new QueryWrapper<SysDictItem>()
                    .eq("item_text","点检标准编制")
                    .eq("dict_id",sysDict.getId()),false);
        }else if("3".equals(approvalStatus)){//已审核
            roleDictItem = "点检标准审批";
            sysDictItem = sysDictItemService.getOne(new QueryWrapper<SysDictItem>()
                    .eq("item_text","点检标准审批")
                    .eq("dict_id",sysDict.getId()),false);
        }else if("4".equals(approvalStatus)){//驳回审核
            roleDictItem = "点检标准审核";
            sysDictItem = sysDictItemService.getOne(new QueryWrapper<SysDictItem>()
                    .eq("item_text","点检标准审核")
                    .eq("dict_id",sysDict.getId()),false);
        }
//        else if("5".equals(approvalStatus)){//通过
//            roleDictItem = "点检标准审批";
//            sysDictItem = sysDictItemService.getOne(new QueryWrapper<SysDictItem>()
//                    .eq("item_text","点检标准审批")
//                    .eq("dict_id",sysDict.getId()),false);
//        }
        String roleCode = sysDictItem.getItemValue();
        SysRole sysRole = sysRoleService.getOne(new QueryWrapper<SysRole>().eq("role_code",roleCode),false);
        List<SysUserRole> sysUserRoles = sysUserRoleService.list(new QueryWrapper<SysUserRole>().eq("role_id",sysRole.getId()));
        for(SysUserRole sysUserRole:sysUserRoles){
            SysUser user = sysUserService.getById(sysUserRole.getUserId());
            String msg = "";
            if("1".equals(approvalStatus)){
                msg = "【"+sysUser.getRealname()+"】"+"将【"+standardNum+"】的自主维护点检标准编制成功,请到自主维护点检标准页面审核!";
            }else if("2".equals(approvalStatus)){
                msg = "【"+sysUser.getRealname()+"】"+"将【"+standardNum+"】的自主维护点检标准已驳回,请到自主维护点检标准页面查看!";
            }else if("3".equals(approvalStatus)){
                msg = "【"+sysUser.getRealname()+"】"+"将【"+standardNum+"】的自主维护点检标准审核通过,请到自主维护点检标准页面审批!";
            }else if("4".equals(approvalStatus)){
                msg = "【"+sysUser.getRealname()+"】"+"将【"+standardNum+"】的自主维护点检标准已驳回,请到自主维护点检标准页面查看!";
            }
//            else if("5".equals(approvalStatus)){
//                msg = "【"+sysUser.getRealname()+"】"+"将二级保养工单号【"+standardNum+"】的完工移交单确认通过,请到二级保养页面查看!";
//            }
            MessageDTO messageDTO = new MessageDTO();
            messageDTO.setTitle("自主维护点检标准签审消息提醒!");
            messageDTO.setContent(msg);
            messageDTO.setCategory(roleDictItem);
            messageDTO.setFromUser("自主维护点检标准签审消息提醒提醒小助手");
            if(user != null){
                messageDTO.setToUser(user.getUsername());
            }
            sysBaseApi.sendSysAnnouncement(messageDTO);
        }
    }
    /**
     * 批量 签审流程