Browse Source

SAI开项管理:导入模板、导入、导出

wangggziwen 2 years ago
parent
commit
4866f37b5c

+ 4 - 1
master/src/main/java/com/ruoyi/project/common/CommonController.java

@@ -106,8 +106,11 @@ public class CommonController extends BaseController
             downloadname = "能耗管理统计导入模板.xlsx";
             url = "static/template/production/lbnhjstj.xlsx";
         } else if( type.equals("sai") ) {
-            downloadname = "SAI信息导入模板.xlsx";
+            downloadname = "SAI检查管理导入模板.xlsx";
             url = "static/template/production/sai.xlsx";
+        } else if( type.equals("saiApply") ) {
+            downloadname = "SAI开项管理导入模板.xlsx";
+            url = "static/template/production/saiApply.xlsx";
         } else if( type.equals("rcaudit") ) {
             downloadname = "RC审计助手导入模板.xlsx";
             url = "static/template/ehs/rcaudit.xlsx";

+ 206 - 34
master/src/main/java/com/ruoyi/project/production/controller/TSaiApplyController.java

@@ -1,23 +1,27 @@
 package com.ruoyi.project.production.controller;
 
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
+import com.alibaba.fastjson.JSON;
 import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.file.ExcelUtils;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
 import com.ruoyi.framework.interceptor.annotation.RepeatSubmit;
-import com.ruoyi.project.apply.domain.TApplyLock;
-import com.ruoyi.project.apply.domain.TApplyOfflinevalve;
-import com.ruoyi.project.apply.domain.TApplySafetychange;
+import com.ruoyi.framework.web.controller.BaseController;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.framework.web.page.TableDataInfo;
 import com.ruoyi.project.approve.damain.DevTask;
-import com.ruoyi.project.listener.apply.change.ChangeEndFailListener;
-import com.ruoyi.project.listener.apply.change.ChangeEndSuccessListener;
-import com.ruoyi.project.listener.apply.change.ChangeFlowListener;
-import com.ruoyi.project.listener.apply.change.ChangeNextTaskListener;
-import com.ruoyi.project.plant.domain.TStaffmgr;
+import com.ruoyi.project.process.domain.TMoc;
+import com.ruoyi.project.production.controller.vo.SaiApplyExportVO;
+import com.ruoyi.project.production.domain.TSaiApply;
+import com.ruoyi.project.production.service.ITSaiApplyService;
+import com.ruoyi.project.system.domain.SysDept;
+import com.ruoyi.project.system.domain.SysDictData;
 import com.ruoyi.project.system.domain.SysUser;
+import com.ruoyi.project.system.mapper.SysDeptMapper;
+import com.ruoyi.project.system.mapper.SysUserMapper;
+import com.ruoyi.project.system.service.ISysDeptService;
+import com.ruoyi.project.system.service.ISysDictTypeService;
 import com.ruoyi.project.system.service.ISysUserService;
 import org.activiti.engine.ProcessEngine;
 import org.activiti.engine.ProcessEngines;
@@ -26,25 +30,18 @@ import org.activiti.engine.TaskService;
 import org.activiti.engine.impl.identity.Authentication;
 import org.activiti.engine.runtime.ProcessInstance;
 import org.activiti.engine.task.Task;
-import org.activiti.engine.task.TaskQuery;
-import org.springframework.security.access.prepost.PreAuthorize;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import com.ruoyi.framework.aspectj.lang.annotation.Log;
-import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
-import com.ruoyi.project.production.domain.TSaiApply;
-import com.ruoyi.project.production.service.ITSaiApplyService;
-import com.ruoyi.framework.web.controller.BaseController;
-import com.ruoyi.framework.web.domain.AjaxResult;
-import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.framework.web.page.TableDataInfo;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 /**
  * SAI开项管理Controller
@@ -65,9 +62,15 @@ public class TSaiApplyController extends BaseController
     @Autowired
     private ISysUserService userService;
 
+    @Autowired
+    private ISysDeptService deptService;
+
     @Autowired
     private TaskService taskService;
 
+    @Autowired
+    private ISysDictTypeService iSysDictTypeService;
+
     /**
      * 查询SAI开项管理列表
      */
@@ -80,6 +83,140 @@ public class TSaiApplyController extends BaseController
         return getDataTable(list);
     }
 
+    /**
+     * 批量导入SAI开项管理列表
+     */
+    @PreAuthorize("@ss.hasPermi('production:apply:add')")
+    @PostMapping("/importData")
+    public AjaxResult importData(@RequestParam("file") MultipartFile file) throws IOException
+    {
+        //获取操作人员ID
+        Long userId = getUserId();
+        //报错行数统计
+        List<Integer> failRow =new ArrayList<Integer>();
+        Workbook workbook = ExcelUtils.getWorkBook(file);
+        Sheet sheet = workbook.getSheetAt(0);
+        List<TSaiApply> list = new ArrayList<TSaiApply>();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        // 字典查询
+        List<SysDictData> saiApplyStatusDict = iSysDictTypeService.selectDictDataByType("SAI_APPLY_STATUS");
+        List<SysDictData> teamDivideDict = iSysDictTypeService.selectDictDataByType("TEAM_DIVIDE");
+        // 部门列表
+        List<SysDept> deptList = deptService.selectDeptList(new SysDept());
+        // 用户列表
+        List<SysUser> userList = userService.selectUserList(new SysUser());
+        int rowNum = sheet.getPhysicalNumberOfRows();
+        int failNumber = 0;
+        for (int i = 2; i <= rowNum; i++) {
+            try {
+                logger.info("读取行数:" + i);
+                Row row = sheet.getRow(i);
+                int cellNum = row.getPhysicalNumberOfCells();
+                TSaiApply entity = new TSaiApply();
+                entity.setCreateTime(new Date());
+                entity.setCreateBy(userId.toString());
+                entity.setDeptId(103L);
+                for (int j = 0; j < cellNum; j++) {
+                    Cell cell = row.getCell(j);
+                    //  cell.setCellType(CellType.STRING);
+                    String cellValue = ExcelUtils.getCellValue(cell);
+                    String applicantName = "";
+                    String handlerName = "";
+                    String executorName = "";
+                    logger.info("cellValue:" + cellValue);
+                    if (j == 0) {
+                        entity.setDescription(cellValue);
+                    } else if (j == 1) {
+                        for (SysDictData sysDictData : saiApplyStatusDict) {
+                            if (sysDictData.getDictLabel().equals(cellValue.trim())) {
+                                entity.setApplyStatus(Long.valueOf(sysDictData.getDictValue()));
+                            }
+                        }
+                    } else if (j == 2) {
+                        if (cellValue != "" && cellValue != null) {
+                            for (SysDept sysDept : deptList) {
+                                if (cellValue.equals(sysDept.getDeptName())) {
+                                    entity.setApplicantDept(sysDept.getDeptId().toString());
+                                }
+                            }
+                        }
+                    } else if (j == 3) {
+                        for (SysDictData sysDictData : teamDivideDict) {
+                            if (sysDictData.getDictLabel().equals(cellValue.trim())) {
+                                entity.setApplicantTeam(sysDictData.getDictValue());
+                            }
+                        }
+                    } else if (j == 4) {
+                        applicantName = cellValue;
+                    } else if (j == 5) {
+                        handlerName = cellValue;
+                    } else if (j == 6) {
+                        executorName = cellValue;
+                    } else if (j == 7) {
+                        if (cellValue.length() > 3) {
+                            entity.setApplyDate(new SimpleDateFormat(DateUtils.getDateFormat(cellValue)).parse(cellValue));
+                        }
+                    } else if (j == 8) {
+                        if (cellValue.length() > 3) {
+                            entity.setEstimateFinishDate(new SimpleDateFormat(DateUtils.getDateFormat(cellValue)).parse(cellValue));
+                        }
+                    } else if (j == 9) {
+                        if (cellValue.length() > 3) {
+                            entity.setActualFinishDate(new SimpleDateFormat(DateUtils.getDateFormat(cellValue)).parse(cellValue));
+                        }
+                    } else if (j == 10) {
+                        if (cellValue != "" && cellValue != null) {
+                            entity.setIsRecorded(cellValue == "是" ? 1L : 0L);
+                        }
+                    } else if (j == 11) {
+                        entity.setRecordNo(cellValue);
+                    }
+                    for (SysUser sysUser : userList) {
+                        if (applicantName != "" && applicantName != null) {
+                            if (applicantName.equals(sysUser.getNickName())) {
+                                entity.setApplicant(sysUser.getUserId().toString());
+                            }
+                        }
+                        if (handlerName != "" && handlerName != null) {
+                            if (handlerName.equals(sysUser.getNickName())) {
+                                entity.setHandler(sysUser.getUserId().toString());
+                            }
+                        }
+                        if (executorName != "" && executorName != null) {
+                            if (executorName.equals(sysUser.getNickName())) {
+                                entity.setExecutor(sysUser.getUserId().toString());
+                            }
+                        }
+                    }
+                }
+                logger.info("entity:" + entity);
+                list.add(entity);
+            }catch (Exception e){
+                failNumber++;
+                failRow.add(i+1);
+            }
+        }
+        int successNumber = 0;
+        int failNum = 0;
+        for (TSaiApply t : list
+        ) {
+            failNum++;
+            try {
+                tSaiApplyService.insertTSaiApply(t);
+                successNumber++;
+            }catch (Exception e){
+                failNumber++;
+                logger.info("e:" + e);
+                failRow.add(failNum+1);
+            }
+        }
+        logger.info("list:" + JSON.toJSONString(list));
+        logger.info("successNumber:" +String.valueOf(successNumber));
+        logger.info("failNumber:" +String.valueOf(failNumber));
+        logger.info("failRow:" +String.valueOf(failRow));
+        return AjaxResult.success(String.valueOf(successNumber), failRow);
+    }
+
     /**
      * 导出SAI开项管理列表
      */
@@ -88,9 +225,43 @@ public class TSaiApplyController extends BaseController
     @GetMapping("/export")
     public AjaxResult export(TSaiApply tSaiApply)
     {
+        // 实体类集合
         List<TSaiApply> list = tSaiApplyService.selectTSaiApplyList(tSaiApply);
-        ExcelUtil<TSaiApply> util = new ExcelUtil<TSaiApply>(TSaiApply.class);
-        return util.exportExcel(list, "apply");
+        // 导出VO集合
+        List<SaiApplyExportVO> exportVOList = new ArrayList<>();
+        // 字典查询
+        List<SysDictData> saiApplyStatusDict = iSysDictTypeService.selectDictDataByType("SAI_APPLY_STATUS");
+        List<SysDictData> teamDivideDict = iSysDictTypeService.selectDictDataByType("TEAM_DIVIDE");
+        for (TSaiApply entity : list) {
+            // 复制属性
+            SaiApplyExportVO vo = new SaiApplyExportVO();
+            vo.setDescription(entity.getDescription());
+            for (SysDictData sysDictData : saiApplyStatusDict) {
+                if (sysDictData.getDictValue().equals(entity.getApplyStatus() + "")) {
+                    vo.setApplyStatus(sysDictData.getDictLabel());
+                }
+            }
+            vo.setApplicantDept(entity.getApplicantDeptName());
+            for (SysDictData sysDictData : teamDivideDict) {
+                if (sysDictData.getDictValue().equals(entity.getApplicantTeam())) {
+                    vo.setApplicantTeam(sysDictData.getDictLabel());
+                }
+            }
+            vo.setApplicant(entity.getApplicantName());
+            vo.setHandler(entity.getHandlerName());
+            vo.setExecutor(entity.getExecutorName());
+            vo.setApplyDate(entity.getApplyDate());
+            vo.setEstimateFinishDate(entity.getEstimateFinishDate());
+            vo.setActualFinishDate(entity.getActualFinishDate());
+            Long isRecorded = entity.getIsRecorded();
+            if (isRecorded != null) {
+                vo.setIsRecorded(isRecorded == 1L ? "是" : "否");
+            }
+            vo.setRecordNo(entity.getRecordNo());
+            exportVOList.add(vo);
+        }
+        ExcelUtil<SaiApplyExportVO> util = new ExcelUtil<SaiApplyExportVO>(SaiApplyExportVO.class);
+        return util.exportExcel(exportVOList, "SAI开项管理数据");
     }
 
     /**
@@ -230,6 +401,7 @@ public class TSaiApplyController extends BaseController
             case "验收":
                 if ("1".equals(condition)) {
                     form.setApplyStatus(4);
+                    form.setActualFinishDate(new Date());
                     form.setTaskId(null);
                     form.setTaskName(null);
                     nextHandler = null;

+ 463 - 0
master/src/main/java/com/ruoyi/project/production/controller/vo/SaiApplyExportVO.java

@@ -0,0 +1,463 @@
+package com.ruoyi.project.production.controller.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import com.ruoyi.framework.web.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.util.Date;
+
+/**
+ * SAI开项管理导出VO
+ *
+ * @author ruoyi
+ * @date 2023-03-21
+ */
+public class SaiApplyExportVO extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    private Long saiApplyId;
+
+    /** 删除状态 */
+    private String delFlag;
+
+    /** 部门编号 */
+    private Long deptId;
+
+    /** 问题描述 */
+    @Excel(name = "问题描述")
+    private String description;
+
+    /** 申请状态 */
+    @Excel(name = "申请状态")
+    private String applyStatus;
+
+    /** 登记人部门 */
+    @Excel(name = "登记人部门")
+    private String applicantDept;
+
+    private String applicantDeptName;
+
+    /** 登记人班组 */
+    @Excel(name = "登记人班组")
+    private String applicantTeam;
+
+    /** 登记人 */
+    @Excel(name = "登记人")
+    private String applicant;
+
+    private String applicantName;
+
+    /** 当前处理人 */
+    @Excel(name = "当前处理人")
+    private String handler;
+
+    private String handlerName;
+
+    /** 整改负责人 */
+    @Excel(name = "整改负责人")
+    private String executor;
+
+    private String executorName;
+
+    /** 登记时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    @Excel(name = "登记时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date applyDate;
+
+    /** 预计完成时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    @Excel(name = "预计完成时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date estimateFinishDate;
+
+    /** 实际完成时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    @Excel(name = "实际完成时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date actualFinishDate;
+
+    /** 是否录入开项系统 */
+    @Excel(name = "是否录入开项系统")
+    private String isRecorded;
+
+    /** 开项编号 */
+    @Excel(name = "开项编号")
+    private String recordNo;
+
+    /** 申请编号 */
+    private String apNo;
+
+    /** 流程id */
+    private String processId;
+
+    /** 评估人 */
+    private String assessor;
+
+    /** 验收人 */
+    private String inspectors;
+
+    /** 不安全状态 */
+    private Long unsafeStatus;
+
+    /** 不安全行为 */
+    private Long unsafeAction;
+
+    /** 任务编号 */
+    private String taskId;
+
+    /** 任务名称 */
+    private String taskName;
+
+    /** 采取的措施 */
+    private String reaction;
+
+    /** 是否需要VE验证 */
+    private Long needVe;
+
+    /** VE验证条款 */
+    private String veItems;
+
+    /** VC/VE验证成果 */
+    private String veResult;
+
+    /** 备注 */
+    private String remarks;
+
+    /** VC/VE验证条款(其它) */
+    private String veItemOther;
+
+    public String getApplicantName() {
+        return applicantName;
+    }
+
+    public void setApplicantName(String applicantName) {
+        this.applicantName = applicantName;
+    }
+
+    public String getExecutorName() {
+        return executorName;
+    }
+
+    public void setExecutorName(String executorName) {
+        this.executorName = executorName;
+    }
+
+    public String getApplicantDeptName() {
+        return applicantDeptName;
+    }
+
+    public void setApplicantDeptName(String applicantDeptName) {
+        this.applicantDeptName = applicantDeptName;
+    }
+
+    public String getHandlerName() {
+        return handlerName;
+    }
+
+    public void setHandlerName(String handlerName) {
+        this.handlerName = handlerName;
+    }
+
+    public void setSaiApplyId(Long saiApplyId)
+    {
+        this.saiApplyId = saiApplyId;
+    }
+
+    public Long getSaiApplyId()
+    {
+        return saiApplyId;
+    }
+    public void setDelFlag(String delFlag)
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getDelFlag()
+    {
+        return delFlag;
+    }
+    public void setDeptId(Long deptId)
+    {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId()
+    {
+        return deptId;
+    }
+    public void setApplyStatus(String applyStatus)
+    {
+        this.applyStatus = applyStatus;
+    }
+
+    public String getApplyStatus()
+    {
+        return applyStatus;
+    }
+    public void setApNo(String apNo)
+    {
+        this.apNo = apNo;
+    }
+
+    public String getApNo()
+    {
+        return apNo;
+    }
+    public void setProcessId(String processId)
+    {
+        this.processId = processId;
+    }
+
+    public String getProcessId()
+    {
+        return processId;
+    }
+    public void setApplicant(String applicant)
+    {
+        this.applicant = applicant;
+    }
+
+    public String getApplicant()
+    {
+        return applicant;
+    }
+    public void setAssessor(String assessor)
+    {
+        this.assessor = assessor;
+    }
+
+    public String getAssessor()
+    {
+        return assessor;
+    }
+    public void setExecutor(String executor)
+    {
+        this.executor = executor;
+    }
+
+    public String getExecutor()
+    {
+        return executor;
+    }
+    public void setInspectors(String inspectors)
+    {
+        this.inspectors = inspectors;
+    }
+
+    public String getInspectors()
+    {
+        return inspectors;
+    }
+    public void setApplicantDept(String applicantDept)
+    {
+        this.applicantDept = applicantDept;
+    }
+
+    public String getApplicantDept()
+    {
+        return applicantDept;
+    }
+    public void setApplicantTeam(String applicantTeam)
+    {
+        this.applicantTeam = applicantTeam;
+    }
+
+    public String getApplicantTeam()
+    {
+        return applicantTeam;
+    }
+    public void setDescription(String description)
+    {
+        this.description = description;
+    }
+
+    public String getDescription()
+    {
+        return description;
+    }
+    public void setUnsafeStatus(Long unsafeStatus)
+    {
+        this.unsafeStatus = unsafeStatus;
+    }
+
+    public Long getUnsafeStatus()
+    {
+        return unsafeStatus;
+    }
+    public void setUnsafeAction(Long unsafeAction)
+    {
+        this.unsafeAction = unsafeAction;
+    }
+
+    public Long getUnsafeAction()
+    {
+        return unsafeAction;
+    }
+    public void setApplyDate(Date applyDate)
+    {
+        this.applyDate = applyDate;
+    }
+
+    public Date getApplyDate()
+    {
+        return applyDate;
+    }
+    public void setHandler(String handler)
+    {
+        this.handler = handler;
+    }
+
+    public String getHandler()
+    {
+        return handler;
+    }
+    public void setTaskId(String taskId)
+    {
+        this.taskId = taskId;
+    }
+
+    public String getTaskId()
+    {
+        return taskId;
+    }
+    public void setTaskName(String taskName)
+    {
+        this.taskName = taskName;
+    }
+
+    public String getTaskName()
+    {
+        return taskName;
+    }
+    public void setEstimateFinishDate(Date estimateFinishDate)
+    {
+        this.estimateFinishDate = estimateFinishDate;
+    }
+
+    public Date getEstimateFinishDate()
+    {
+        return estimateFinishDate;
+    }
+    public void setActualFinishDate(Date actualFinishDate)
+    {
+        this.actualFinishDate = actualFinishDate;
+    }
+
+    public Date getActualFinishDate()
+    {
+        return actualFinishDate;
+    }
+    public void setIsRecorded(String isRecorded)
+    {
+        this.isRecorded = isRecorded;
+    }
+
+    public String getIsRecorded()
+    {
+        return isRecorded;
+    }
+    public void setRecordNo(String recordNo)
+    {
+        this.recordNo = recordNo;
+    }
+
+    public String getRecordNo()
+    {
+        return recordNo;
+    }
+    public void setReaction(String reaction)
+    {
+        this.reaction = reaction;
+    }
+
+    public String getReaction()
+    {
+        return reaction;
+    }
+    public void setNeedVe(Long needVe)
+    {
+        this.needVe = needVe;
+    }
+
+    public Long getNeedVe()
+    {
+        return needVe;
+    }
+    public void setVeItems(String veItems)
+    {
+        this.veItems = veItems;
+    }
+
+    public String getVeItems()
+    {
+        return veItems;
+    }
+    public void setVeResult(String veResult)
+    {
+        this.veResult = veResult;
+    }
+
+    public String getVeResult()
+    {
+        return veResult;
+    }
+    public void setRemarks(String remarks)
+    {
+        this.remarks = remarks;
+    }
+
+    public String getRemarks()
+    {
+        return remarks;
+    }
+    public void setVeItemOther(String veItemOther)
+    {
+        this.veItemOther = veItemOther;
+    }
+
+    public String getVeItemOther()
+    {
+        return veItemOther;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("saiApplyId", getSaiApplyId())
+            .append("delFlag", getDelFlag())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("deptId", getDeptId())
+            .append("applyStatus", getApplyStatus())
+            .append("apNo", getApNo())
+            .append("processId", getProcessId())
+            .append("applicant", getApplicant())
+            .append("assessor", getAssessor())
+            .append("executor", getExecutor())
+            .append("inspectors", getInspectors())
+            .append("applicantDept", getApplicantDept())
+            .append("applicantTeam", getApplicantTeam())
+            .append("description", getDescription())
+            .append("unsafeStatus", getUnsafeStatus())
+            .append("unsafeAction", getUnsafeAction())
+            .append("applyDate", getApplyDate())
+            .append("handler", getHandler())
+            .append("taskId", getTaskId())
+            .append("taskName", getTaskName())
+            .append("estimateFinishDate", getEstimateFinishDate())
+            .append("actualFinishDate", getActualFinishDate())
+            .append("isRecorded", getIsRecorded())
+            .append("recordNo", getRecordNo())
+            .append("reaction", getReaction())
+            .append("needVe", getNeedVe())
+            .append("veItems", getVeItems())
+            .append("veResult", getVeResult())
+            .append("remarks", getRemarks())
+            .append("veItemOther", getVeItemOther())
+            .toString();
+    }
+}

+ 43 - 55
master/src/main/java/com/ruoyi/project/production/domain/TSaiApply.java

@@ -18,84 +18,54 @@ public class TSaiApply extends BaseEntity
     private static final long serialVersionUID = 1L;
 
     /** 主键 */
-    @Excel(name = "主键")
     private Long saiApplyId;
 
     /** 删除状态 */
     private String delFlag;
 
     /** 部门编号 */
-    @Excel(name = "部门编号")
     private Long deptId;
 
+    /** 问题描述 */
+    @Excel(name = "问题描述")
+    private String description;
+
     /** 申请状态 */
     @Excel(name = "申请状态")
     private long applyStatus;
 
-    /** 申请编号 */
-    @Excel(name = "申请编号")
-    private String apNo;
-
-    /** 流程id */
-    @Excel(name = "流程id")
-    private String processId;
-
-    /** 申请人 */
-    @Excel(name = "申请人")
-    private String applicant;
-    private String applicantName;
-
-    /** 评估人 */
-    @Excel(name = "评估人")
-    private String assessor;
-
-    /** 执行人 */
-    @Excel(name = "执行人")
-    private String executor;
-    private String executorName;
-
-    /** 验收人 */
-    @Excel(name = "验收人")
-    private String inspectors;
-
     /** 登记人部门 */
     @Excel(name = "登记人部门")
     private String applicantDept;
+
     private String applicantDeptName;
 
     /** 登记人班组 */
     @Excel(name = "登记人班组")
     private String applicantTeam;
 
-    /** 问题描述 */
-    @Excel(name = "问题描述")
-    private String description;
-
-    /** 不安全状态 */
-    @Excel(name = "不安全状态")
-    private Long unsafeStatus;
-
-    /** 不安全行为 */
-    @Excel(name = "不安全行为")
-    private Long unsafeAction;
+    /** 登记人 */
+    @Excel(name = "登记人")
+    private String applicant;
 
-    /** 记录日期 */
-    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
-    @Excel(name = "记录日期", width = 30, dateFormat = "yyyy-MM-dd")
-    private Date applyDate;
+    private String applicantName;
 
     /** 当前处理人 */
     @Excel(name = "当前处理人")
     private String handler;
+
     private String handlerName;
 
-    /** 任务编号 */
-    @Excel(name = "任务编号")
-    private String taskId;
+    /** 整改负责人 */
+    @Excel(name = "整改负责人")
+    private String executor;
 
-    /** 任务名称 */
-    @Excel(name = "任务名称")
-    private String taskName;
+    private String executorName;
+
+    /** 登记时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
+    @Excel(name = "登记时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date applyDate;
 
     /** 预计完成时间 */
     @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
@@ -115,28 +85,46 @@ public class TSaiApply extends BaseEntity
     @Excel(name = "开项编号")
     private String recordNo;
 
+    /** 申请编号 */
+    private String apNo;
+
+    /** 流程id */
+    private String processId;
+
+    /** 评估人 */
+    private String assessor;
+
+    /** 验收人 */
+    private String inspectors;
+
+    /** 不安全状态 */
+    private Long unsafeStatus;
+
+    /** 不安全行为 */
+    private Long unsafeAction;
+
+    /** 任务编号 */
+    private String taskId;
+
+    /** 任务名称 */
+    private String taskName;
+
     /** 采取的措施 */
-    @Excel(name = "采取的措施")
     private String reaction;
 
     /** 是否需要VE验证 */
-    @Excel(name = "是否需要VE验证")
     private Long needVe;
 
     /** VE验证条款 */
-    @Excel(name = "VE验证条款")
     private String veItems;
 
     /** VC/VE验证成果 */
-    @Excel(name = "VC/VE验证成果")
     private String veResult;
 
     /** 备注 */
-    @Excel(name = "备注")
     private String remarks;
 
     /** VC/VE验证条款(其它) */
-    @Excel(name = "VC/VE验证条款", readConverterExp = "其=它")
     private String veItemOther;
 
     public String getApplicantName() {

BIN
master/src/main/resources/static/template/production/saiApply.xlsx


+ 23 - 11
ui/src/views/production/apply/all/index.vue

@@ -141,7 +141,11 @@
           <span>{{ parseTime(scope.row.actualFinishDate, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="是否录入开项系统" align="center" prop="isRecorded" :show-overflow-tooltip="true"/>
+      <el-table-column label="是否录入开项系统" align="center" prop="isRecorded" :show-overflow-tooltip="true">
+        <template slot-scope="scope">
+          <span>{{ scope.row.isRecorded == 1 ? "是" : "否" }}</span>
+        </template>
+      </el-table-column>
       <el-table-column label="开项编号" align="center" prop="recordNo" :show-overflow-tooltip="true"/>
       <el-table-column label="操作" align="center" fixed="right" width="120" class-name="small-padding fixed-width">
         <template slot-scope="scope">
@@ -308,7 +312,7 @@
                   :limit="1"
                   accept=".xlsx, .xls"
                   :headers="upload.headers"
-                  :action="upload.url + '?updateSupport=' + upload.updateSupport"
+                  :action="upload.url"
                   :disabled="upload.isUploading"
                   :on-progress="handleFileUploadProgress"
                   :on-success="handleFileSuccess"
@@ -321,9 +325,11 @@
                   <em>点击上传</em>
               </div>
               <div class="el-upload__tip" slot="tip">
-                  <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的用户数据
                   <el-link type="info" style="font-size:12px" @click="importTemplate">下载模板</el-link>
               </div>
+              <form ref="downloadFileForm" :action="upload.downloadAction" target="FORMSUBMIT">
+                <input name="type" :value="upload.type" hidden />
+              </form>
               <div class="el-upload__tip" style="color:red" slot="tip">提示:仅允许导入“xls”或“xlsx”格式文件!</div>
           </el-upload>
           <div slot="footer" class="dialog-footer">
@@ -398,6 +404,10 @@ export default {
       open: false,
         // 用户导入参数
         upload: {
+            //下载模板请求地址
+            downloadAction: process.env.VUE_APP_BASE_API + '/common/template',
+            //下载模板类型
+            type: 'saiApply',
             // 是否显示弹出层(用户导入)
             open: false,
             // 弹出层标题(用户导入)
@@ -791,9 +801,7 @@ export default {
       },
       /** 下载模板操作 */
       importTemplate() {
-          importTemplate().then(response => {
-              this.download(response.msg);
-          });
+        this.$refs['downloadFileForm'].submit()
       },
       // 文件上传中处理
       handleFileUploadProgress(event, file, fileList) {
@@ -801,11 +809,15 @@ export default {
       },
       // 文件上传成功处理
       handleFileSuccess(response, file, fileList) {
-          this.upload.open = false;
-          this.upload.isUploading = false;
-          this.$refs.upload.clearFiles();
-          this.$alert(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
-          this.getList();
+        this.upload.open = false;
+        this.upload.isUploading = false;
+        this.$refs.upload.clearFiles();
+        if (response.data[0] != null) {
+          this.$alert(this.$t('成功导入') + response.msg + this.$t('条数据') + "," + this.$t('第') + response.data + this.$t('行数据出现错误导入失败')+"。", this.$t('导入结果'), { dangerouslyUseHTMLString: true });
+        }else {
+          this.$alert(this.$t('成功导入') + response.msg + this.$t('条数据'), this.$t('导入结果'), { dangerouslyUseHTMLString: true });
+        }
+        this.getList();
       },
       // 提交上传文件
       submitFileForm() {