Parcourir la source

ly 培训优化

ly il y a 1 jour
Parent
commit
f4a027a750

+ 0 - 2
master/src/main/java/com/ruoyi/framework/task/ImageCompressionTask.java

@@ -30,8 +30,6 @@ public class ImageCompressionTask extends BaseController {
         try {
             // 需要压缩的文件夹路径列表
             List<String> directories = Arrays.asList(
-                "D:/ruoyi",
-                "/u03/cpmsfile/uploadPath/xxxx",
                 "/u03/cpmsfile/uploadPath/upload/eyewash",
                 "/u03/cpmsfile/uploadPath/upload/annihilator",
                 // H110-H118,H130

+ 75 - 2
master/src/main/java/com/ruoyi/framework/task/trainingbcc/TrainingMatrixTask.java

@@ -17,6 +17,11 @@ import com.ruoyi.project.training.service.ITTrainingMatrixService;
 import com.ruoyi.project.training.service.ITTrainingbccDeviceService;
 import com.ruoyi.project.training.service.ITTrainingbccRegularService;
 import com.ruoyi.project.training.service.ITTrainingbccService;
+import com.ruoyi.project.document.domain.TPlantproglist;
+import com.ruoyi.project.document.service.ITPlantproglistService;
+import com.ruoyi.project.common.domain.TCommonfile;
+import com.ruoyi.project.common.service.ITCommonfileService;
+import com.ruoyi.project.plant.mapper.TStaffmgrMapper;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -53,9 +58,15 @@ public class TrainingMatrixTask extends BaseController
     private ITTrainingbccDeviceService trainingbccDeviceService;
     @Autowired
     private ITTrainingMatrixService tTrainingMatrixService;
+    @Autowired
+    private ITPlantproglistService tPlantproglistService;
+    @Autowired
+    private ITCommonfileService tCommonfileService;
 
     @Resource
     private TTrainingbccRegularMapper tTrainingbccRegularMapper;
+    @Resource
+    private TStaffmgrMapper tStaffmgrMapper;
 
     /**
      * 每年矩阵新增培训
@@ -147,7 +158,63 @@ public class TrainingMatrixTask extends BaseController
                 tTrainingRegular.setInvolvedMoc("false");
                 tTrainingRegular.setNotPlan("false");
                 tTrainingRegular.setYear(String.valueOf(currentYear));
-
+                
+                // 通过课程代码搜索程序清单,获取培训人和培训文件(只查询一次)
+                String courseCode = matrix.getCourseCode();
+                String regularTrainer = null;
+                String trainer = null;
+                String fileUrl = "";
+                String fileName = "";
+                TPlantproglist plantproglist = null;
+                
+                if (StringUtils.isNotEmpty(courseCode)) {
+                    TPlantproglist plantproglistParam = new TPlantproglist();
+                    plantproglistParam.setFileno(courseCode);
+                    List<TPlantproglist> plantproglistList = tPlantproglistService.selectList(plantproglistParam);
+                    
+                    if (plantproglistList != null && !plantproglistList.isEmpty()) {
+                        plantproglist = plantproglistList.get(0);
+                        logger.info("找到程序清单,文件编号: {}, 责任者: {}", courseCode, plantproglist.getResponsibility());
+                        
+                        // 获取培训文件
+                        TCommonfile fileParam = new TCommonfile();
+                        fileParam.setpId(plantproglist.getId());
+                        fileParam.setpType("plantproglist");
+                        List<TCommonfile> fileList = tCommonfileService.selectAllFileList(fileParam);
+                        if (fileList != null && !fileList.isEmpty()) {
+                            fileUrl = fileList.get(0).getFileUrl();
+                            fileName = fileList.get(0).getFileName();
+                            logger.info("找到培训文件: {}", fileName);
+                        }
+                        
+                        // 获取培训人:通过责任者查找员工编号
+                        String trainerName = plantproglist.getResponsibility();
+                        regularTrainer = trainerName; // 设置给regular
+                        
+                        if (StringUtils.isNotEmpty(trainerName)) {
+                            TStaffmgr staffmgrParam = new TStaffmgr();
+                            staffmgrParam.setName(trainerName);
+                            staffmgrParam.setDeptId(tTrainingRegular.getDeptId());
+                            staffmgrParam.setDelFlag(0L); // 未删除的员工
+                            TStaffmgr staffmgr = tStaffmgrMapper.selectStaffmgrSingle(staffmgrParam);
+                            if (staffmgr != null && StringUtils.isNotEmpty(staffmgr.getStaffid())) {
+                                trainer = staffmgr.getStaffid();
+                                logger.info("通过责任者找到培训人: {} -> {}", trainerName, trainer);
+                            } else {
+                                logger.warn("未找到责任者对应的员工: {}", trainerName);
+                            }
+                        } else {
+                            logger.warn("程序清单责任者为空");
+                        }
+                    } else {
+                        logger.warn("未找到课程代码对应的程序清单: {}", courseCode);
+                    }
+                } else {
+                    logger.warn("课程代码为空,无法获取程序清单培训人");
+                }
+                
+                // 设置regular的培训人
+                tTrainingRegular.setLecturer(regularTrainer);
                 int doInsert = tTrainingbccRegularService.insertTTrainingbccRegular(tTrainingRegular);
 
                 logger.info("regular:" + tTrainingRegular);
@@ -159,11 +226,17 @@ public class TrainingMatrixTask extends BaseController
                 tTraining.setCourse(tTrainingRegular.getItem());
                 tTraining.setCourseid(tTrainingRegular.getCourseCode());
                 tTraining.setDuration(tTrainingRegular.getHour());
-                tTraining.setTrainer(tTrainingRegular.getLecturer());
                 tTraining.setPosition(tTrainingRegular.getActualpostId());
                 tTraining.setIsfinish(Long.parseLong("0"));
                 tTraining.setDeptId(tTrainingRegular.getDeptId());
                 tTraining.setRegularId(tTrainingRegular.getId());
+                tTraining.setPeriod(matrix.getFrequency());
+                
+                // 设置培训人和文件信息
+                tTraining.setTrainer(trainer);
+                tTraining.setFileUrl(fileUrl);
+                tTraining.setFileName(fileName);
+                tTraining.setContent(fileName);
                 //添加学习时间
                 String hourText = matrix.getHour();
                 if (hourText != null && !hourText.trim().isEmpty() && !hourText.contains("按需")) {

+ 74 - 2
master/src/main/java/com/ruoyi/project/training/controller/TTrainingMatrixController.java

@@ -11,12 +11,17 @@ import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.framework.web.page.TableDataInfo;
 import com.ruoyi.project.plant.domain.TStaffmgr;
 import com.ruoyi.project.plant.service.ITStaffmgrService;
+import com.ruoyi.project.plant.mapper.TStaffmgrMapper;
 import com.ruoyi.project.system.domain.SysDept;
 import com.ruoyi.project.system.domain.SysDictData;
 import com.ruoyi.project.system.service.ISysDeptService;
 import com.ruoyi.project.system.service.ISysDictTypeService;
 import com.ruoyi.project.training.domain.*;
 import com.ruoyi.project.training.service.*;
+import com.ruoyi.project.document.domain.TPlantproglist;
+import com.ruoyi.project.document.service.ITPlantproglistService;
+import com.ruoyi.project.common.domain.TCommonfile;
+import com.ruoyi.project.common.service.ITCommonfileService;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Sheet;
@@ -67,6 +72,12 @@ public class TTrainingMatrixController extends BaseController {
 
     @Autowired
     private ITTrainingService tTrainingService;
+    @Autowired
+    private ITPlantproglistService tPlantproglistService;
+    @Autowired
+    private ITCommonfileService tCommonfileService;
+    @Autowired
+    private TStaffmgrMapper tStaffmgrMapper;
     /**
      * 查询培训矩阵列表
      */
@@ -280,7 +291,63 @@ public class TTrainingMatrixController extends BaseController {
             tTrainingRegular.setInvolvedMoc("false");
             tTrainingRegular.setNotPlan("false");
             tTrainingRegular.setYear(String.valueOf(LocalDate.now().getYear()));
-
+            
+            // 通过课程代码搜索程序清单,获取培训人和培训文件(只查询一次)
+            String courseCode = matrix.getCourseCode();
+            String regularTrainer = null;
+            String trainer = null;
+            String fileUrl = "";
+            String fileName = "";
+            TPlantproglist plantproglist = null;
+            
+            if (StringUtils.isNotEmpty(courseCode)) {
+                TPlantproglist plantproglistParam = new TPlantproglist();
+                plantproglistParam.setFileno(courseCode);
+                List<TPlantproglist> plantproglistList = tPlantproglistService.selectList(plantproglistParam);
+                
+                if (plantproglistList != null && !plantproglistList.isEmpty()) {
+                    plantproglist = plantproglistList.get(0);
+                    logger.info("找到程序清单,文件编号: {}, 责任者: {}", courseCode, plantproglist.getResponsibility());
+                    
+                    // 获取培训文件
+                    TCommonfile fileParam = new TCommonfile();
+                    fileParam.setpId(plantproglist.getId());
+                    fileParam.setpType("plantproglist");
+                    List<TCommonfile> fileList = tCommonfileService.selectAllFileList(fileParam);
+                    if (fileList != null && !fileList.isEmpty()) {
+                        fileUrl = fileList.get(0).getFileUrl();
+                        fileName = fileList.get(0).getFileName();
+                        logger.info("找到培训文件: {}", fileName);
+                    }
+                    
+                    // 获取培训人:通过责任者查找员工编号
+                    String trainerName = plantproglist.getResponsibility();
+                    regularTrainer = trainerName; // 设置给regular
+                    
+                    if (StringUtils.isNotEmpty(trainerName)) {
+                        TStaffmgr staffmgrParam = new TStaffmgr();
+                        staffmgrParam.setName(trainerName);
+                        staffmgrParam.setDeptId(tTrainingRegular.getDeptId());
+                        staffmgrParam.setDelFlag(0L); // 未删除的员工
+                        TStaffmgr staffmgr = tStaffmgrMapper.selectStaffmgrSingle(staffmgrParam);
+                        if (staffmgr != null && StringUtils.isNotEmpty(staffmgr.getStaffid())) {
+                            trainer = staffmgr.getStaffid();
+                            logger.info("通过责任者找到培训人: {} -> {}", trainerName, trainer);
+                        } else {
+                            logger.warn("未找到责任者对应的员工: {}", trainerName);
+                        }
+                    } else {
+                        logger.warn("程序清单责任者为空");
+                    }
+                } else {
+                    logger.warn("未找到课程代码对应的程序清单: {}", courseCode);
+                }
+            } else {
+                logger.warn("课程代码为空,无法获取程序清单培训人");
+            }
+            
+            // 设置regular的培训人
+            tTrainingRegular.setLecturer(regularTrainer);
             int doInsert = tTrainingbccRegularService.insertTTrainingbccRegular(tTrainingRegular);
 
             logger.info("regular:" + tTrainingRegular);
@@ -292,11 +359,16 @@ public class TTrainingMatrixController extends BaseController {
             tTraining.setCourse(tTrainingRegular.getItem());
             tTraining.setCourseid(tTrainingRegular.getCourseCode());
             tTraining.setDuration(tTrainingRegular.getHour());
-            tTraining.setTrainer(tTrainingRegular.getLecturer());
             tTraining.setPosition(tTrainingRegular.getActualpostId());
             tTraining.setIsfinish(Long.parseLong("0"));
             tTraining.setDeptId(tTrainingRegular.getDeptId());
             tTraining.setRegularId(tTrainingRegular.getId());
+            
+            // 设置培训人和文件信息
+            tTraining.setTrainer(trainer);
+            tTraining.setFileUrl(fileUrl);
+            tTraining.setFileName(fileName);
+            tTraining.setContent(fileName);
             trainingbccService.insertTTrainingbcc(tTraining);
             Long trainingId = tTraining.getId();
             //新增人员-装置级关系

+ 1 - 0
master/src/main/resources/mybatis/document/TPlantproglistMapper.xml

@@ -81,6 +81,7 @@
             and d.del_flag = 0
             <if test="deptId != null "> and d.dept_id = #{deptId}</if>
             <if test="responsibility != null "> and d.responsibility = #{responsibility}</if>
+            <if test="fileno != null  and fileno != ''"> and fileno = #{fileno}</if>
         </where>
         <!-- 数据范围过滤 -->
         order by d.fileno asc

BIN
master/src/main/resources/static/word/training/signMOCbcc.docx


BIN
master/src/main/resources/static/word/training/signbcc.docx


+ 24 - 0
ui/src/assets/styles/sidebar.scss

@@ -69,6 +69,30 @@
       white-space: nowrap !important;
     }
 
+    // 菜单角标样式
+    // .menu-badge {
+    //   display: inline-block;
+    //   min-width: 10px;
+    //   height: 8px;
+    //   line-height: 8px;
+    //   text-align: center;
+    //   border-radius: 3px;
+    //   font-size: 6px;
+    //   font-weight: bold;
+    //   color: #fff;
+    //   background-color: transparent;
+    //   border: 1px solid #fff;
+    //   margin-left: 1px;
+    //   padding: 0 1px;
+    //   box-sizing: border-box;
+    //   vertical-align: middle;
+    //   transition: all 0.3s ease;
+    //
+    //   &:hover {
+    //     transform: scale(1.1);
+    //   }
+    // }
+
     // menu hover
     .submenu-title-noDropdown,
     .el-submenu__title {

+ 8 - 0
ui/src/layout/components/Sidebar/Item.vue

@@ -23,6 +23,14 @@ export default {
     if (title) {
       vnodes.push(<span slot='title'>{(title)}</span>)
     }
+
+    // 添加固定的角标"bcc"
+    // vnodes.push(
+    //   <span class="menu-badge" style="background-color: transparent; color: #fff; font-size: 6px; padding: 0px 1px; border-radius: 3px; margin-left: 1px; font-weight: bold; border: 1px solid #fff; height: 8px; line-height: 8px;">
+    //     bcc
+    //   </span>
+    // )
+
     return vnodes
   }
 }

+ 6 - 6
ui/src/views/training/bccregular/new-regular.vue

@@ -34,7 +34,7 @@
           size="mini"
           :disabled="single"
           @click="handleUpdate"
-          v-hasPermi="['training:regular:edit']"
+          v-hasPermi="['training:bccregular:edit']"
         >{{ $t('修改') }}</el-button>
       </el-col>
       <el-col :span="1.5">
@@ -44,7 +44,7 @@
           size="mini"
           :disabled="multiple"
           @click="handleDelete"
-          v-hasPermi="['training:regular:remove']"
+          v-hasPermi="['training:bccregular:remove']"
         >{{ $t('删除') }}</el-button>
       </el-col>
 
@@ -54,7 +54,7 @@
           icon="el-icon-upload2"
           size="mini"
           @click="handleImport"
-          v-hasPermi="['training:regular:edit']"
+          v-hasPermi="['training:bccregular:edit']"
         >导入</el-button>
       </el-col>
       <el-col :span="1.5">
@@ -63,7 +63,7 @@
           icon="el-icon-download"
           size="mini"
           @click="handleExport"
-          v-hasPermi="['training:regular:export']"
+          v-hasPermi="['training:bccregular:export']"
         >{{ $t('导出') }}</el-button>
       </el-col>-->
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
@@ -91,14 +91,14 @@
             type="text"
             icon="el-icon-edit"
             @click="handleUpdate(scope.row)"
-            v-hasPermi="['training:regular:edit']"
+            v-hasPermi="['training:bccregular:edit']"
           >{{ $t('修改') }}</el-button>
           <el-button
             size="mini"
             type="text"
             icon="el-icon-delete"
             @click="handleDelete(scope.row)"
-            v-hasPermi="['training:regular:remove']"
+            v-hasPermi="['training:bccregular:remove']"
           >{{ $t('删除') }}</el-button>
         </template>
       </el-table-column>

+ 8 - 8
ui/src/views/training/bccregular/regular.vue

@@ -32,7 +32,7 @@
           icon="el-icon-plus"
           size="mini"
           @click="handleAdd"
-          v-hasPermi="['training:regular:add']"
+          v-hasPermi="['training:bccregular:add']"
         >{{ $t('新增') }}</el-button>
       </el-col>
       <el-col :span="1.5">
@@ -42,7 +42,7 @@
           size="mini"
           :disabled="single"
           @click="handleUpdate"
-          v-hasPermi="['training:regular:edit']"
+          v-hasPermi="['training:bccregular:edit']"
         >{{ $t('修改') }}</el-button>
       </el-col>
       <el-col :span="1.5">
@@ -52,7 +52,7 @@
           size="mini"
           :disabled="multiple"
           @click="handleDelete"
-          v-hasPermi="['training:regular:remove']"
+          v-hasPermi="['training:bccregular:remove']"
         >{{ $t('删除') }}</el-button>
       </el-col>
       <el-col :span="1.5">
@@ -61,7 +61,7 @@
           icon="el-icon-plus"
           size="mini"
           @click="handleAddBatch"
-          v-hasPermi="['training:regular:add']"
+          v-hasPermi="['training:bccregular:add']"
         >矩阵自动添加</el-button>
       </el-col>
       <!--<el-col :span="1.5">
@@ -70,7 +70,7 @@
           icon="el-icon-upload2"
           size="mini"
           @click="handleImport"
-          v-hasPermi="['training:regular:edit']"
+          v-hasPermi="['training:bccregular:edit']"
         >导入</el-button>
       </el-col>
       <el-col :span="1.5">
@@ -79,7 +79,7 @@
           icon="el-icon-download"
           size="mini"
           @click="handleExport"
-          v-hasPermi="['training:regular:export']"
+          v-hasPermi="['training:bccregular:export']"
         >{{ $t('导出') }}</el-button>
       </el-col>-->
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
@@ -122,14 +122,14 @@
             type="text"
             icon="el-icon-edit"
             @click="handleUpdate(scope.row)"
-            v-hasPermi="['training:regular:edit']"
+            v-hasPermi="['training:bccregular:edit']"
           >{{ $t('修改') }}</el-button>
           <el-button
             size="mini"
             type="text"
             icon="el-icon-delete"
             @click="handleDelete(scope.row)"
-            v-hasPermi="['training:regular:remove']"
+            v-hasPermi="['training:bccregular:remove']"
           >{{ $t('删除') }}</el-button>
         </template>
       </el-table-column>