|
@@ -1,6 +1,8 @@
|
|
|
package com.ruoyi.project.training.controller;
|
|
|
|
|
|
+import java.time.LocalDate;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Calendar;
|
|
|
import java.util.Iterator;
|
|
|
import java.util.List;
|
|
|
|
|
@@ -9,9 +11,7 @@ import com.ruoyi.project.plant.service.ITStaffmgrService;
|
|
|
import com.ruoyi.project.system.domain.SysDictData;
|
|
|
import com.ruoyi.project.system.service.ISysDictTypeService;
|
|
|
import com.ruoyi.project.training.domain.*;
|
|
|
-import com.ruoyi.project.training.service.ITTrainingService;
|
|
|
-import com.ruoyi.project.training.service.ITTrainingbccDeviceService;
|
|
|
-import com.ruoyi.project.training.service.ITTrainingbccService;
|
|
|
+import com.ruoyi.project.training.service.*;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -25,7 +25,6 @@ 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.training.service.ITTrainingbccRegularService;
|
|
|
import com.ruoyi.framework.web.controller.BaseController;
|
|
|
import com.ruoyi.framework.web.domain.AjaxResult;
|
|
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
|
@@ -50,7 +49,8 @@ public class TTrainingbccRegularController extends BaseController
|
|
|
|
|
|
@Autowired
|
|
|
private ITTrainingbccDeviceService trainingbccDeviceService;
|
|
|
-
|
|
|
+ @Autowired
|
|
|
+ private ITTrainingMatrixService tTrainingMatrixService;
|
|
|
@Autowired
|
|
|
private ITStaffmgrService tStaffmgrService;
|
|
|
/**
|
|
@@ -246,6 +246,153 @@ public class TTrainingbccRegularController extends BaseController
|
|
|
return toAjax(doInsert);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 新增装置培训计划
|
|
|
+ */
|
|
|
+ @PreAuthorize("@ss.hasPermi('training:bccregular:add')")
|
|
|
+ @Log(title = "装置培训计划", businessType = BusinessType.INSERT)
|
|
|
+ @GetMapping("batchAddTraining")
|
|
|
+ public AjaxResult addBatch() {
|
|
|
+ TTrainingbccRegular tr =new TTrainingbccRegular();
|
|
|
+ TTrainingMatrix tTrainingMatrix = new TTrainingMatrix();
|
|
|
+ tTrainingMatrix.setDeptId(103l);
|
|
|
+ tTrainingMatrix.setTrainingLevel("14");
|
|
|
+ List<TTrainingMatrix> list = tTrainingMatrixService.selectTTrainingMatrixList(tTrainingMatrix);
|
|
|
+ logger.info("===========" + list.size() + "");
|
|
|
+ int currentYear = LocalDate.now().getYear();
|
|
|
+ for (TTrainingMatrix matrix: list
|
|
|
+ ) {
|
|
|
+ int addFlag = 0;
|
|
|
+ if ("每年一次".equals(matrix.getFrequency()) || "每年至少一次".equals(matrix.getFrequency())) {
|
|
|
+ tr.setYear(String.valueOf(currentYear));
|
|
|
+ tr.setItem(matrix.getItem());
|
|
|
+ List<TTrainingbccRegular> regulars = tTrainingbccRegularService.selectTTrainingbccRegularList(tr);
|
|
|
+ if (regulars.size() == 0) {
|
|
|
+ addFlag = 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if ("每年两次".equals(matrix.getFrequency()) || "每年2次".equals(matrix.getFrequency())) {
|
|
|
+ tr.setYear(String.valueOf(currentYear));
|
|
|
+ tr.setItem(matrix.getItem());
|
|
|
+ List<TTrainingbccRegular> regulars = tTrainingbccRegularService.selectTTrainingbccRegularList(tr);
|
|
|
+ if (regulars.size() < 2) {
|
|
|
+ addFlag = 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (addFlag == 1) {
|
|
|
+ TTrainingbccRegular tTrainingRegular = new TTrainingbccRegular();
|
|
|
+ tTrainingRegular.setDeptId(matrix.getDeptId());
|
|
|
+ tTrainingRegular.setActualpostId(matrix.getActualpostId());
|
|
|
+ tTrainingRegular.setCourseCode(matrix.getCourseCode());
|
|
|
+ tTrainingRegular.setItem(matrix.getItem());
|
|
|
+ tTrainingRegular.setHour(matrix.getHour());
|
|
|
+ tTrainingRegular.setInvolvedMoc("false");
|
|
|
+ tTrainingRegular.setNotPlan("false");
|
|
|
+ tTrainingRegular.setYear(String.valueOf(currentYear));
|
|
|
+
|
|
|
+ int doInsert = tTrainingbccRegularService.insertTTrainingbccRegular(tTrainingRegular);
|
|
|
+
|
|
|
+ logger.info("regular:" + tTrainingRegular);
|
|
|
+ tTrainingRegular.setDeptId(103l); //bcc专用
|
|
|
+ //新增培训计划定期类
|
|
|
+ TTrainingbcc tTraining = new TTrainingbcc();
|
|
|
+ tTraining.setTrainingType("10");
|
|
|
+ tTraining.setYears(tTrainingRegular.getYear());
|
|
|
+ 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());
|
|
|
+ trainingbccService.insertTTrainingbcc(tTraining);
|
|
|
+ Long trainingId = tTraining.getId();
|
|
|
+ //新增人员-装置级关系
|
|
|
+ // 参培岗位人员
|
|
|
+ if (tTrainingRegular.getActualpostId() != null) {
|
|
|
+ logger.info("参培岗位人员");
|
|
|
+ TStaffmgr staffmgr = new TStaffmgr();
|
|
|
+ staffmgr.setActualposts(tTrainingRegular.getActualpostId());
|
|
|
+ staffmgr.setDeptId(tTrainingRegular.getDeptId());
|
|
|
+ List<TStaffmgr> staffmgrs = tStaffmgrService.selectAllTStaffmgrList(staffmgr);
|
|
|
+ try {
|
|
|
+ //判断离职
|
|
|
+ if (!StringUtils.isEmpty(tTrainingRegular.getYear())) {
|
|
|
+ Iterator<TStaffmgr> iterator = staffmgrs.iterator();
|
|
|
+ while (iterator.hasNext()) {
|
|
|
+ TStaffmgr t = iterator.next();
|
|
|
+ if (t.getLeftDate() != null && t.getDelFlag() == 9){
|
|
|
+ if (t.getLeftDate().getTime() - tTrainingRegular.getPlanTrainingdate().getTime() < 0l ) {
|
|
|
+ logger.debug(t.getName() + "离职时间小于培训时间");
|
|
|
+ iterator.remove();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }catch (Exception e) {
|
|
|
+ logger.error(e.toString());
|
|
|
+ }
|
|
|
+ for (TStaffmgr s : staffmgrs) {
|
|
|
+ TTrainingbccDevice tTrainingDevice = new TTrainingbccDevice();
|
|
|
+ tTrainingDevice.setStaffId(s.getStaffid());
|
|
|
+ tTrainingDevice.setRegularId(trainingId);
|
|
|
+ tTrainingDevice.setStartDate(tTrainingRegular.getPlanTrainingdate());
|
|
|
+ tTrainingDevice.setSupplementary("0");
|
|
|
+ trainingbccDeviceService.insertTTrainingbccDevice(tTrainingDevice);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //指定岗位人员
|
|
|
+ if (tTrainingRegular.getDesignatedStaff() != null) {
|
|
|
+ logger.info("指定岗位人员");
|
|
|
+ String[] designatedStaffs = tTrainingRegular.getDesignatedStaff().split(",");
|
|
|
+ for (String staffId : designatedStaffs) {
|
|
|
+ TTrainingbccDevice tTrainingDevice = new TTrainingbccDevice();
|
|
|
+ tTrainingDevice.setStaffId(staffId);
|
|
|
+ tTrainingDevice.setRegularId(trainingId);
|
|
|
+ tTrainingDevice.setStartDate(tTrainingRegular.getPlanTrainingdate());
|
|
|
+ tTrainingDevice.setSupplementary("0");
|
|
|
+ trainingbccDeviceService.insertTTrainingbccDevice(tTrainingDevice);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //涉及其他部门
|
|
|
+ if (tTrainingRegular.getInvolvedMoc().equals("true")){
|
|
|
+ logger.info("涉及MOC人员");
|
|
|
+ TStaffmgr staffmgrMoc = new TStaffmgr();
|
|
|
+ staffmgrMoc.setActualposts(tTrainingRegular.getDesignatedOther());
|
|
|
+ List<TStaffmgr> staffmgrsMoc = tStaffmgrService.selectAllTStaffmgrList(staffmgrMoc);
|
|
|
+ try {
|
|
|
+ //判断离职
|
|
|
+ if (!StringUtils.isEmpty(tTrainingRegular.getYear())) {
|
|
|
+ Iterator<TStaffmgr> iterator = staffmgrsMoc.iterator();
|
|
|
+ while (iterator.hasNext()) {
|
|
|
+ TStaffmgr t = iterator.next();
|
|
|
+ if (t.getLeftDate() != null && t.getDelFlag() == 9){
|
|
|
+ if (t.getLeftDate().getTime() - tTrainingRegular.getPlanTrainingdate().getTime() > 0l ) {
|
|
|
+ logger.debug(t.getName() + "离职时间小于培训时间");
|
|
|
+ iterator.remove();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }catch (Exception e) {
|
|
|
+ logger.error(e.toString());
|
|
|
+ }
|
|
|
+ for (TStaffmgr s : staffmgrsMoc) {
|
|
|
+ TTrainingbccDevice tTrainingDevice = new TTrainingbccDevice();
|
|
|
+ tTrainingDevice.setStaffId(s.getStaffid());
|
|
|
+ tTrainingDevice.setRegularId(trainingId);
|
|
|
+ tTrainingDevice.setStartDate(tTrainingRegular.getPlanTrainingdate());
|
|
|
+ tTrainingDevice.setSupplementary("0");
|
|
|
+ trainingbccDeviceService.insertTTrainingbccDevice(tTrainingDevice);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return AjaxResult.success();
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 修改装置培训计划
|
|
|
*/
|