Merge branch 'master' into develop-QA

develop-QA
Tom Li 4 months ago
commit 3d1120a6f6
  1. 10
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/entity/PostHandleEntity.java
  2. 57
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/enums/GenderEnum.java
  3. 92
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/excel/CertificateMaintenanceExcel.java
  4. 54
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/excel/CertificateMaintenanceImport.java
  5. 54
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/excel/CultivateDetailExcel.java
  6. 71
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/excel/EquipmentMaintenanceExcel.java
  7. 33
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/excel/PostHandleExcel.java
  8. 9
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/excel/PostHandleImport.java
  9. 28
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/vo/CertificateMaintenanceVO.java
  10. 14
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/vo/EquipmentMaintenanceVO.java
  11. 73
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/vo/PostHandleVO.java
  12. 76
      blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/CertificateMaintenanceController.java
  13. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/CertificateTypeController.java
  14. 24
      blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/CultivateDetailController.java
  15. 54
      blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/EquipmentMaintenanceController.java
  16. 24
      blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/PostHandleController.java
  17. 1
      blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/TrainingPlanController.java
  18. 10
      blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/mapper/CertificateMaintenanceMapper.xml
  19. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/mapper/EquipmentMaintenanceMapper.java
  20. 8
      blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/mapper/EquipmentMaintenanceMapper.xml
  21. 8
      blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/mapper/PostHandleMapper.xml
  22. 10
      blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/ICertificateMaintenanceService.java
  23. 10
      blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/IEquipmentMaintenanceService.java
  24. 57
      blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/impl/CertificateMaintenanceServiceImpl.java
  25. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/impl/EquipmentMaintenanceServiceImpl.java
  26. 20
      blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/impl/PostHandleServiceImpl.java
  27. BIN
      blade-service/blade-desk/src/main/resources/Excel/jobTransfer/证书维护导入模板.xls
  28. 87
      doc/sql/mes/increase-260113.sql

@ -81,6 +81,16 @@ public class PostHandleEntity extends BaseEntity {
*/
@Schema(description = "婚姻状态(0未婚,1已婚)")
private String marriage;
/**
* 性别(0女1男)
*/
@Schema(description = "性别(0女,1男)")
private String gender;
/**
* 手机号
*/
@Schema(description = "手机号")
private String mobile;
/**
* 毕业院校
*/

@ -0,0 +1,57 @@
package org.springblade.desk.jobTransfer.pojo.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.springblade.core.tool.utils.ObjectUtil;
import org.springblade.core.tool.utils.StringPool;
import java.util.Arrays;
/**
* 性别枚举
*
* @author qyl
* @date 2026-01-14
*/
@Getter
@AllArgsConstructor
public enum GenderEnum {
EMPTY(StringPool.EMPTY, ""),
/**
* 状态枚举
*/
MAN("男", "1"),
WOMAN("女", "0"),
;
final String name;
final String code;
/**
* 匹配枚举值
*
* @param name 名称
* @return
*/
public static GenderEnum of(String name) {
return Arrays.stream(GenderEnum.values())
.filter(enumItem -> enumItem.getName().equalsIgnoreCase(name != null ? name : ""))
.findFirst()
// 在没有找到匹配项时返回默认值
.orElse(GenderEnum.EMPTY);
}
/**
* 根据值获取名称
*
* @param code
* @return
*/
public static String getName(String code) {
GenderEnum item = Arrays.stream(GenderEnum.values())
.filter(enumItem -> enumItem.getCode().equalsIgnoreCase(code))
.findFirst()
.orElse(null);
return ObjectUtil.isEmpty(item) ? StringPool.EMPTY : item.getName();
}
}

@ -1,6 +1,7 @@
package org.springblade.desk.jobTransfer.pojo.excel;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
@ -29,48 +30,121 @@ public class CertificateMaintenanceExcel implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 岗位处理ID
* 名称
*/
@ColumnWidth(20)
@ExcelProperty("姓名")
private String userName;
/**
* 班组ID
*/
@ColumnWidth(20)
@ExcelProperty("所属班组")
private String deptName;
/**
* 所属岗位
*/
@ColumnWidth(20)
@ExcelProperty("所属岗位")
private String station;
/**
* 技能等级
*/
@ColumnWidth(20)
@ExcelProperty("岗位处理ID")
private Long phId;
@ExcelProperty("技能等级")
private String skillName;
/**
* 证书类型ID
* 最高学历
*/
@ColumnWidth(20)
@ExcelProperty("证书类型ID")
private Long certificateId;
@ExcelProperty("最高学历")
private String education;
/**
* 出生日期
*/
@ColumnWidth(20)
@ExcelProperty("出生日期")
private Date dataBirth;
/**
* 证书名称
*/
@ColumnWidth(20)
@ExcelProperty("证书名称")
private String CertificateTypeName;
/**
* 证书编号
*/
@ColumnWidth(20)
@ExcelProperty("证书编号")
private String certificateCode;
/**
* 从事本岗位或工种时间
*/
@ColumnWidth(20)
@ExcelProperty("从事本岗位或工种时间")
private Short workingHours;
/**
* 证书日期
*/
@ColumnWidth(20)
@ExcelProperty("证书日期")
private Date certificateDate;
/**
* 证书有效期
*/
@ColumnWidth(20)
@ExcelProperty("证书有效期")
private Short validityPeriod;
/**
* 证书到期日期
*/
@ColumnWidth(20)
@ExcelProperty("证书到期日期")
private Date validityPeriodExpire;
/**
* 适航日期
*/
@ColumnWidth(20)
@ExcelProperty("适航日期")
private Date airworthinessDate;
/**
* 适航有效期
*/
@ColumnWidth(20)
@ExcelProperty("适航有效期")
private Short airworthinessValidityPeriod;
/**
* 适航日期
*/
@ColumnWidth(20)
@ExcelProperty("适航到期日期")
private Date airworthinessDateExpire;
/**
* 宇航日期
*/
@ColumnWidth(20)
@ExcelProperty("宇航日期")
private Date astronautDate;
/**
* 宇航有效期
*/
@ColumnWidth(20)
@ExcelProperty("宇航有效期")
private Short astronautValidityPeriod;
/**
* 宇航到期日期
*/
@ColumnWidth(20)
@ExcelProperty("宇航到期日期")
private Date astronautDateExpire;
/**
* 维护状态(1正常,2到期,3离职)
*/
@ColumnWidth(20)
@ExcelProperty("维护状态(1正常,2到期,3离职)")
private Short maintenanceStatus;
@ExcelProperty("状态")
private String MaintenanceStatusName;
}

@ -0,0 +1,54 @@
package org.springblade.desk.jobTransfer.pojo.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import java.util.Date;
/**
* 证书维护导入
*
* @author qyl
* @since 2026-01-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class CertificateMaintenanceImport extends BaseEntity {
/**
* 用户code
*/
@ExcelProperty(index = 0)
private String userCode;
/**
* 证书类型
*/
@ExcelProperty(index = 1)
private String certificateType;
/**
* 证书编号
*/
@ExcelProperty(index = 2)
private String certificateCode;
/**
* 证书日期
*/
@ExcelProperty(index = 3)
@DateTimeFormat("yyyy/MM/dd")
private Date certificateDate;
/**
* 适航日期
*/
@ExcelProperty(index = 4)
@DateTimeFormat("yyyy/MM/dd")
private Date airworthinessDate;
/**
* 宇航日期
*/
@ExcelProperty(index = 5)
@DateTimeFormat("yyyy/MM/dd")
private Date astronautDate;
}

@ -29,31 +29,40 @@ public class CultivateDetailExcel implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
//姓名
@ColumnWidth(20)
@ExcelProperty("姓名")
private String name;
/**
* 岗位处理ID
*/
//用工号
@ColumnWidth(20)
@ExcelProperty("岗位处理ID")
private Long phId;
/**
* 培训类型(1实习,2转岗,3下岗)
*/
@ExcelProperty("工号")
private String code;
//用工类型名
@ColumnWidth(20)
@ExcelProperty("培训类型(1实习,2转岗,3下岗)")
private Short type;
/**
* 培训模板ID
*/
@ExcelProperty("用工类型")
private String staffTypeName;
//培训类型
@ColumnWidth(20)
@ExcelProperty("培训模板ID")
private Long planId;
/**
* 培训师ID
*/
@ExcelProperty("培训类型")
private String typeName;
//培训周期(天)
@ColumnWidth(20)
@ExcelProperty("培训周期(天)")
private Integer cycle;
//预警周期(天)
@ColumnWidth(20)
@ExcelProperty("预警周期(天)")
private Integer earlyWarningDay;
//培训计划
@ColumnWidth(20)
@ExcelProperty("培训师ID")
private Long teacherId;
@ExcelProperty("培训计划")
private String planName;
/**
* 培训师
*/
@ -63,9 +72,10 @@ public class CultivateDetailExcel implements Serializable {
/**
* 培训状态(1未配置,2等待下发,3已下发-培训中,4已到期,5已培训-待确认,6培训完成)
*/
//状态
@ColumnWidth(20)
@ExcelProperty("培训状态(1未配置,2等待下发,3已下发-培训中,4已到期,5已培训-待确认,6培训完成)")
private Short caStatus;
@ExcelProperty("培训状态")
private String caStatusName;
/**
* 下发时间
*/

@ -29,36 +29,83 @@ public class EquipmentMaintenanceExcel implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 岗位处理ID
* 名称
*/
@ColumnWidth(20)
@ExcelProperty("岗位处理ID")
private Long phId;
@ExcelProperty("姓名")
private String userName;
/**
* 设备ID
* 班组ID
*/
@ColumnWidth(20)
@ExcelProperty("设备ID")
private Long equipmentId;
@ExcelProperty("所属班组")
private String deptName;
/**
* 设备有效期
* 所属岗位
*/
@ColumnWidth(20)
@ExcelProperty("设备有效期")
private Integer equipmentValidityPeriod;
@ExcelProperty("所属岗位")
private String station;
/**
* 技能等级
*/
@ColumnWidth(20)
@ExcelProperty("技能等级")
private String skillName;
/**
* 最高学历
*/
@ColumnWidth(20)
@ExcelProperty("最高学历")
private String education;
/**
* 出生日期
*/
@ColumnWidth(20)
@ExcelProperty("出生日期")
private Date dataBirth;
/**
* 设备名称
*/
@ColumnWidth(20)
@ExcelProperty("设备名称")
private String deviceName;
/**
* 设备编码
*/
@ColumnWidth(20)
@ExcelProperty("设备编码")
private String deviceCode;
/**
* 规格型号
*/
@ColumnWidth(20)
@ExcelProperty("规格型号")
private String macSpec;
/**
* 设备日期
*/
@ColumnWidth(20)
@ExcelProperty("设备日期")
private Date equipmentDate;
/**
* 设备有效期
*/
@ColumnWidth(20)
@ExcelProperty("设备有效期")
private Integer equipmentValidityPeriod;
/**
* 设备到期日期
*/
@ColumnWidth(20)
@ExcelProperty("设备到期日期")
private Date validityPeriodExpire;
/**
* 维护状态(1正常,2到期,3离职)
*/
@ColumnWidth(20)
@ExcelProperty("维护状态(1正常,2到期,3离职)")
private Short maintenanceStatus;
@ExcelProperty("状态")
private String maintenanceStatusName;
}

@ -29,13 +29,6 @@ public class PostHandleExcel implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 用户ID
*/
@ColumnWidth(20)
@ExcelProperty("用户ID")
private Long userId;
/**
* 名称
*/
@ -48,6 +41,12 @@ public class PostHandleExcel implements Serializable {
@ColumnWidth(20)
@ExcelProperty("民族")
private String nation;
/**
* 性别
*/
@ColumnWidth(20)
@ExcelProperty("性别")
private String gender;
/**
* 年龄
*/
@ -70,8 +69,8 @@ public class PostHandleExcel implements Serializable {
* 班组ID
*/
@ColumnWidth(20)
@ExcelProperty("班组ID")
private Long deptId;
@ExcelProperty("班组")
private String deptName;
/**
* 所属岗位
*/
@ -95,7 +94,7 @@ public class PostHandleExcel implements Serializable {
*/
@ColumnWidth(20)
@ExcelProperty("婚姻状态(0未婚,1已婚)")
private String marriage;
private String marriageName;
/**
* 毕业院校
*/
@ -125,7 +124,7 @@ public class PostHandleExcel implements Serializable {
*/
@ColumnWidth(20)
@ExcelProperty("用工类型")
private Short staffType;
private String staffTypeName;
/**
* 参加工作时间
*/
@ -137,7 +136,7 @@ public class PostHandleExcel implements Serializable {
*/
@ColumnWidth(20)
@ExcelProperty("技能等级")
private Short skill;
private String skillName;
/**
* 任现职时间
*/
@ -162,11 +161,17 @@ public class PostHandleExcel implements Serializable {
@ColumnWidth(20)
@ExcelProperty("转岗时间")
private Date toNewJob;
/**
* 手机号
*/
@ColumnWidth(20)
@ExcelProperty("手机号")
private String mobile;
/**
* 1实习-培训中,2转岗中,3正常,4下岗中,5离职,6培训合格,7培训不合格
*/
@ColumnWidth(20)
@ExcelProperty("1实习-培训中,2转岗中,3正常,4下岗中,5离职,6培训合格,7培训不合格")
private Short phStatus;
@ExcelProperty("状态")
private String phStatusName;
}

@ -27,10 +27,10 @@ public class PostHandleImport extends BaseEntity {
@ExcelProperty(index = 0)
private String code;
/**
* 名称
* 性别
*/
@ExcelProperty(index = 1)
private String name;
private String gender;
/**
* 民族
*/
@ -127,4 +127,9 @@ public class PostHandleImport extends BaseEntity {
*/
@ExcelProperty(index = 19)
private String address;
/**
* 手机号
*/
@ExcelProperty(index = 20)
private String mobile;
}

@ -7,6 +7,9 @@ import lombok.EqualsAndHashCode;
import org.springblade.desk.jobTransfer.pojo.enums.MaintenanceStatusEnum;
import java.io.Serial;
import java.time.LocalDate;
import java.time.Period;
import java.time.ZoneId;
import java.util.Calendar;
import java.util.Date;
@ -21,6 +24,9 @@ import java.util.Date;
public class CertificateMaintenanceVO extends CertificateMaintenanceEntity {
@Serial
private static final long serialVersionUID = 1L;
// @Schema(description = "从事本岗位或工种时间")
// private Short workingHours;
/**
* 证书名称
*/
@ -88,6 +94,28 @@ public class CertificateMaintenanceVO extends CertificateMaintenanceEntity {
}
}
public Short getWorkingYears() {
Date createTime = this.getCreateTime();
Date now = new Date();
LocalDate startDate = createTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
LocalDate endDate = now.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
// 使用Period计算间隔
Period period = Period.between(startDate, endDate);
int years = period.getYears();
int months = period.getMonths();
int days = period.getDays();
// 如果月数或天数大于0,则说明不满一年但已超出一个完整年份的周期,需要加1
long workingYears = (months > 0 || days > 0) ? years + 1 : years;
if (workingYears < Short.MIN_VALUE || workingYears > Short.MAX_VALUE) {
throw new ArithmeticException("工龄数值超出Short范围");
}
return (short) workingYears;
}
public String getMaintenanceStatusName() {
if (this.getMaintenanceStatus() == MaintenanceStatusEnum.DEPART.getCode().shortValue()) {
return MaintenanceStatusEnum.DEPART.getName();

@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import org.springblade.desk.jobTransfer.pojo.entity.EquipmentMaintenanceEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.desk.jobTransfer.pojo.enums.MaintenanceStatusEnum;
import java.io.Serial;
import java.util.Calendar;
@ -50,4 +51,17 @@ public class EquipmentMaintenanceVO extends EquipmentMaintenanceEntity {
return null;
}
}
public String getMaintenanceStatusName() {
if (this.getMaintenanceStatus() == MaintenanceStatusEnum.DEPART.getCode().shortValue()) {
return MaintenanceStatusEnum.DEPART.getName();
}
Date date = new Date();
if (getValidityPeriodExpire() != null && getValidityPeriodExpire().getTime() < date.getTime()) {
setMaintenanceStatus(MaintenanceStatusEnum.DUE.getCode().shortValue());
return MaintenanceStatusEnum.DUE.getName();
}
setMaintenanceStatus(MaintenanceStatusEnum.NORMAL.getCode().shortValue());
return MaintenanceStatusEnum.NORMAL.getName();
}
}

@ -4,12 +4,13 @@ import io.swagger.v3.oas.annotations.media.Schema;
import org.springblade.desk.jobTransfer.pojo.entity.PostHandleEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.desk.jobTransfer.pojo.enums.PostHandleStatusEnum;
import org.springblade.desk.jobTransfer.pojo.enums.SkillEnum;
import org.springblade.desk.jobTransfer.pojo.enums.StaffTypeEnum;
import org.springblade.desk.jobTransfer.pojo.enums.TrainingStatusEnum;
import org.springblade.desk.jobTransfer.pojo.enums.*;
import java.io.Serial;
import java.time.LocalDate;
import java.time.Period;
import java.time.ZoneId;
import java.util.Date;
/**
* 岗位处理 视图实体类
@ -41,6 +42,21 @@ public class PostHandleVO extends PostHandleEntity {
//技能等级名
@Schema(description = "技能等级名")
private String skillName;
//婚姻名
@Schema(description = "婚姻名")
private String marriageName;
//性别名
@Schema(description = "性别名")
private String genderName;
//入职工作时长
// @Schema(description = "入职工作时长")
// private Short beInOfficeDuration;
// //社会工作时长
// @Schema(description = "社会工作时长")
// private Short socialWorkingDuration;
// //合同到期时长
// @Schema(description = "合同到期时长")
// private Short contractDuration;
public String getPhStatusName() {
return PostHandleStatusEnum.getName(null != this.getPhStatus() ? this.getPhStatus().intValue() : null);
@ -53,4 +69,53 @@ public class PostHandleVO extends PostHandleEntity {
public String getSkillName() {
return SkillEnum.getName(null != this.getSkill() ? this.getSkill().intValue() : null);
}
public String getMarriageName() {
return MarriageEnum.getName(null != this.getMarriage() ? this.getMarriage() : null);
}
public String getGenderName() {
return GenderEnum.getName(null != this.getGender() ? this.getGender() : null);
}
public String getBeInOfficeDuration() {
if (null != this.getInJobDate()) {
return getCountYears(this.getInJobDate(), new Date()).toString();
}
return "";
}
public String getSocialWorkingDuration() {
if (null != this.getJoinJobDate()) {
return getCountYears(this.getJoinJobDate(), new Date()).toString();
}
return "";
}
public String getContractDuration() {
if (null != this.getConExpDate()) {
return getCountYears(new Date(), this.getConExpDate()).toString();
}
return "";
}
private Short getCountYears(Date startTime, Date endTime) {
LocalDate startDate = startTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
LocalDate endDate = endTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
// 使用Period计算间隔
Period period = Period.between(startDate, endDate);
int years = period.getYears();
int months = period.getMonths();
int days = period.getDays();
// 如果月数或天数大于0,则说明不满一年但已超出一个完整年份的周期,需要加1
long workingYears = (months > 0 || days > 0) ? years + 1 : years;
if (workingYears < Short.MIN_VALUE || workingYears > Short.MAX_VALUE) {
throw new ArithmeticException("工龄数值超出Short范围");
}
return (short) workingYears;
}
}

@ -17,9 +17,20 @@ import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.desk.basic.util.ExcelExtUtil;
import org.springblade.desk.jobTransfer.pojo.excel.CertificateMaintenanceExcel;
import org.springblade.desk.jobTransfer.pojo.excel.CertificateMaintenanceImport;
import org.springblade.desk.jobTransfer.pojo.excel.CultivateDetailExcel;
import org.springblade.desk.jobTransfer.pojo.excel.PostHandleImport;
import org.springblade.desk.jobTransfer.pojo.request.CertificateLedgerQuery;
import org.springblade.desk.jobTransfer.pojo.vo.CertificateLedgerVO;
import org.springblade.desk.jobTransfer.pojo.vo.CultivateDetailVO;
import org.springblade.desk.jobTransfer.pojo.vo.PostHandleVO;
import org.springblade.system.cache.UserCache;
import org.springblade.system.pojo.entity.UserInfo;
import org.springframework.beans.BeanUtils;
import org.springframework.core.io.Resource;
import org.springframework.http.ResponseEntity;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -32,10 +43,10 @@ import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.excel.util.ExcelUtil;
import java.util.Map;
import java.util.List;
import java.util.*;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.multipart.MultipartFile;
/**
* 证书维护 控制器
@ -46,7 +57,7 @@ import jakarta.servlet.http.HttpServletResponse;
@RestController
@AllArgsConstructor
@RequestMapping("/certificateMaintenance")
@Tag(name = "证书维护", description = "证书维护接口")
@Tag(name = "上岗证台账", description = "上岗证台账接口")
public class CertificateMaintenanceController extends BladeController {
private final ICertificateMaintenanceService certificateMaintenanceService;
@ -134,18 +145,67 @@ public class CertificateMaintenanceController extends BladeController {
/**
* 导出数据
*/
@IsAdmin
@GetMapping("/export-certificateMaintenance")
@ApiOperationSupport(order = 9)
@Operation(summary = "导出数据", description = "传入certificateMaintenance")
public void exportCertificateMaintenance(@Parameter(hidden = true) @RequestParam Map<String, Object> certificateMaintenance, BladeUser bladeUser, HttpServletResponse response) {
QueryWrapper<CertificateMaintenanceEntity> queryWrapper = Condition.getQueryWrapper(certificateMaintenance, CertificateMaintenanceEntity.class);
public void exportCertificateMaintenance(CertificateLedgerQuery certificateLedgerQuery, Query query, BladeUser bladeUser, HttpServletResponse response) {
// QueryWrapper<CertificateMaintenanceEntity> queryWrapper = Condition.getQueryWrapper(certificateMaintenance, CertificateMaintenanceEntity.class);
//if (!AuthUtil.isAdministrator()) {
// queryWrapper.lambda().eq(CertificateMaintenance::getTenantId, bladeUser.getTenantId());
//}
//queryWrapper.lambda().eq(CertificateMaintenanceEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
List<CertificateMaintenanceExcel> list = certificateMaintenanceService.exportCertificateMaintenance(queryWrapper);
ExcelUtil.export(response, "证书维护数据" + DateUtil.time(), "证书维护数据表", list, CertificateMaintenanceExcel.class);
// List<CertificateMaintenanceExcel> list = certificateMaintenanceService.exportCertificateMaintenance(queryWrapper);
query.setSize(99999);
IPage<CertificateLedgerVO> pages = certificateMaintenanceService.selectCertificateMaintenancePage(Condition.getPage(query), certificateLedgerQuery);
List<CertificateLedgerVO> list = pages.getRecords();
List<CertificateMaintenanceExcel> excels = new ArrayList<>();
for (CertificateLedgerVO certificateLedgerVO : list) {
PostHandleVO postHandleVO = certificateLedgerVO.getPostHandleVO();
if (null != certificateLedgerVO.getCertificateMaintenanceVOList()
&& certificateLedgerVO.getCertificateMaintenanceVOList().size() > 0) {
for (CertificateMaintenanceVO certificateMaintenanceVO : certificateLedgerVO.getCertificateMaintenanceVOList()) {
CertificateMaintenanceExcel excel = new CertificateMaintenanceExcel();
BeanUtils.copyProperties(certificateMaintenanceVO, excel);
excel.setUserName(postHandleVO.getName());
excel.setDeptName(postHandleVO.getDeptName());
excel.setDataBirth(postHandleVO.getDataBirth());
excel.setSkillName(postHandleVO.getSkillName());
excel.setStation(postHandleVO.getStation());
excel.setEducation(postHandleVO.getEducation());
excels.add(excel);
}
}
}
ExcelUtil.export(response, "证书维护数据" + DateUtil.time(), "证书维护数据表", excels, CertificateMaintenanceExcel.class);
}
/**
* 下载Excel模板
*/
@GetMapping("/downloadExcelTemplate")
@ApiOperationSupport(order = 10)
@Operation(summary = "下载Excel模板", description = "")
public ResponseEntity<Resource> downloadExcelTemplate() {
return ExcelExtUtil.downloadXlsTemplate(
"Excel/jobTransfer/证书维护导入模板.xls",
"证书维护导入模板.xls");
}
/**
* 导入Excel
*/
@PostMapping("/importExcel")
@ApiOperationSupport(order = 11)
@Operation(summary = "导入Excel", description = "MultipartFile")
public R importExcel(@RequestParam("file") MultipartFile file) {
R checkR = ExcelExtUtil.importExcelCheck(file);
if (checkR != null) {
return checkR;
}
List<CertificateMaintenanceImport> importList = ExcelUtil.read(
file, 0, 1, CertificateMaintenanceImport.class
);
return certificateMaintenanceService.saveExcelData(importList);
}
@PostConstruct // 项目启动后立即执行一次

@ -40,7 +40,7 @@ import jakarta.servlet.http.HttpServletResponse;
@RestController
@AllArgsConstructor
@RequestMapping("/certificateType")
@Tag(name = "证书类型", description = "证书类型接口")
@Tag(name = "证书类型维护", description = "证书类型维护接口")
public class CertificateTypeController extends BladeController {
private final ICertificateTypeService certificateTypeService;
@ -111,7 +111,6 @@ public class CertificateTypeController extends BladeController {
/**
* 导出数据
*/
@IsAdmin
@GetMapping("/export-certificateType")
@ApiOperationSupport(order = 9)
@Operation(summary = "导出数据", description = "传入certificateType")

@ -16,7 +16,10 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.desk.jobTransfer.pojo.enums.TrainingStatusEnum;
import org.springblade.desk.jobTransfer.pojo.excel.CultivateDetailExcel;
import org.springblade.desk.jobTransfer.pojo.excel.PostHandleExcel;
import org.springblade.desk.jobTransfer.pojo.request.CultivateDetailQuery;
import org.springblade.desk.jobTransfer.pojo.vo.PostHandleVO;
import org.springframework.beans.BeanUtils;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -30,6 +33,7 @@ import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.tool.constant.BladeConstant;
import java.util.ArrayList;
import java.util.Date;
import java.util.Map;
import java.util.List;
@ -45,7 +49,7 @@ import jakarta.servlet.http.HttpServletResponse;
@RestController
@AllArgsConstructor
@RequestMapping("/cultivateDetail")
@Tag(name = "培训安排", description = "培训安排接口")
@Tag(name = "培训记录管理", description = "培训记录管理接口")
public class CultivateDetailController extends BladeController {
private final ICultivateDetailService cultivateDetailService;
@ -116,18 +120,26 @@ public class CultivateDetailController extends BladeController {
/**
* 导出数据
*/
@IsAdmin
@GetMapping("/export-cultivateDetail")
@ApiOperationSupport(order = 9)
@Operation(summary = "导出数据", description = "传入cultivateDetail")
public void exportCultivateDetail(@Parameter(hidden = true) @RequestParam Map<String, Object> cultivateDetail, BladeUser bladeUser, HttpServletResponse response) {
QueryWrapper<CultivateDetailEntity> queryWrapper = Condition.getQueryWrapper(cultivateDetail, CultivateDetailEntity.class);
public void exportCultivateDetail(CultivateDetailQuery cultivateDetailQuery, Query query, HttpServletResponse response) {
// QueryWrapper<CultivateDetailEntity> queryWrapper = Condition.getQueryWrapper(cultivateDetail, CultivateDetailEntity.class);
//if (!AuthUtil.isAdministrator()) {
// queryWrapper.lambda().eq(CultivateDetail::getTenantId, bladeUser.getTenantId());
//}
//queryWrapper.lambda().eq(CultivateDetailEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
List<CultivateDetailExcel> list = cultivateDetailService.exportCultivateDetail(queryWrapper);
ExcelUtil.export(response, "培训安排数据" + DateUtil.time(), "培训安排数据表", list, CultivateDetailExcel.class);
// List<CultivateDetailExcel> list = cultivateDetailService.exportCultivateDetail(queryWrapper);
query.setSize(99999);
IPage<CultivateDetailVO> pages = cultivateDetailService.selectCultivateDetailPage(Condition.getPage(query), cultivateDetailQuery);
List<CultivateDetailVO> list = pages.getRecords();
List<CultivateDetailExcel> excels = new ArrayList<>();
for (CultivateDetailVO cultivateDetailVO : list) {
CultivateDetailExcel excel = new CultivateDetailExcel();
BeanUtils.copyProperties(cultivateDetailVO, excel);
excels.add(excel);
}
ExcelUtil.export(response, "培训安排数据" + DateUtil.time(), "培训安排数据表", excels, CultivateDetailExcel.class);
}
/**

@ -7,6 +7,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import jakarta.annotation.PostConstruct;
import lombok.AllArgsConstructor;
import jakarta.validation.Valid;
@ -18,13 +19,15 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.desk.jobTransfer.pojo.entity.CertificateMaintenanceEntity;
import org.springblade.desk.jobTransfer.pojo.excel.EquipmentMaintenanceExcel;
import org.springblade.desk.jobTransfer.pojo.excel.EquipmentMaintenanceExcel;
import org.springblade.desk.jobTransfer.pojo.request.EquipmentMaintenanceQuery;
import org.springblade.desk.jobTransfer.pojo.vo.EquipmentMaintenanceListVO;
import org.springblade.desk.jobTransfer.pojo.vo.*;
import org.springframework.beans.BeanUtils;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.desk.jobTransfer.pojo.entity.EquipmentMaintenanceEntity;
import org.springblade.desk.jobTransfer.pojo.vo.EquipmentMaintenanceVO;
import org.springblade.desk.jobTransfer.wrapper.EquipmentMaintenanceWrapper;
import org.springblade.desk.jobTransfer.service.IEquipmentMaintenanceService;
import org.springblade.core.boot.ctrl.BladeController;
@ -32,6 +35,7 @@ import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.tool.constant.BladeConstant;
import java.util.ArrayList;
import java.util.Map;
import java.util.List;
@ -46,7 +50,7 @@ import jakarta.servlet.http.HttpServletResponse;
@RestController
@AllArgsConstructor
@RequestMapping("/equipmentMaintenance")
@Tag(name = "岗位设备维护", description = "岗位设备维护接口")
@Tag(name = "人员设备台账", description = "人员设备台账接口")
public class EquipmentMaintenanceController extends BladeController {
private final IEquipmentMaintenanceService equipmentMaintenanceService;
@ -134,18 +138,52 @@ public class EquipmentMaintenanceController extends BladeController {
/**
* 导出数据
*/
@IsAdmin
@GetMapping("/export-equipmentMaintenance")
@ApiOperationSupport(order = 9)
@Operation(summary = "导出数据", description = "传入equipmentMaintenance")
public void exportEquipmentMaintenance(@Parameter(hidden = true) @RequestParam Map<String, Object> equipmentMaintenance, BladeUser bladeUser, HttpServletResponse response) {
QueryWrapper<EquipmentMaintenanceEntity> queryWrapper = Condition.getQueryWrapper(equipmentMaintenance, EquipmentMaintenanceEntity.class);
public void exportEquipmentMaintenance(EquipmentMaintenanceQuery equipmentMaintenanceQuery, Query query, BladeUser bladeUser, HttpServletResponse response) {
// QueryWrapper<EquipmentMaintenanceEntity> queryWrapper = Condition.getQueryWrapper(equipmentMaintenance, EquipmentMaintenanceEntity.class);
//if (!AuthUtil.isAdministrator()) {
// queryWrapper.lambda().eq(EquipmentMaintenance::getTenantId, bladeUser.getTenantId());
//}
//queryWrapper.lambda().eq(EquipmentMaintenanceEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
List<EquipmentMaintenanceExcel> list = equipmentMaintenanceService.exportEquipmentMaintenance(queryWrapper);
ExcelUtil.export(response, "岗位设备维护数据" + DateUtil.time(), "岗位设备维护数据表", list, EquipmentMaintenanceExcel.class);
// List<EquipmentMaintenanceExcel> list = equipmentMaintenanceService.exportEquipmentMaintenance(queryWrapper);
query.setSize(99999);
IPage<EquipmentMaintenanceListVO> pages = equipmentMaintenanceService.selectEquipmentMaintenancePage(Condition.getPage(query), equipmentMaintenanceQuery);
List<EquipmentMaintenanceListVO> list = pages.getRecords();
List<EquipmentMaintenanceExcel> excels = new ArrayList<>();
for (EquipmentMaintenanceListVO equipmentMaintenanceListVO : list) {
PostHandleVO postHandleVO = equipmentMaintenanceListVO.getPostHandleVO();
if (null != equipmentMaintenanceListVO.getEquipmentMaintenanceVOList()
&& equipmentMaintenanceListVO.getEquipmentMaintenanceVOList().size() > 0) {
for (EquipmentMaintenanceVO maintenanceVO : equipmentMaintenanceListVO.getEquipmentMaintenanceVOList()) {
EquipmentMaintenanceExcel excel = new EquipmentMaintenanceExcel();
BeanUtils.copyProperties(maintenanceVO, excel);
excel.setUserName(postHandleVO.getName());
excel.setDeptName(postHandleVO.getDeptName());
excel.setDataBirth(postHandleVO.getDataBirth());
excel.setSkillName(postHandleVO.getSkillName());
excel.setStation(postHandleVO.getStation());
excel.setEducation(postHandleVO.getEducation());
excels.add(excel);
}
}
}
ExcelUtil.export(response, "岗位设备维护数据" + DateUtil.time(), "岗位设备维护数据表", excels, EquipmentMaintenanceExcel.class);
}
@PostConstruct // 项目启动后立即执行一次
public void init() {
updateMaintenanceStatus();
}
/**
* 更新设备维护状态
* TODO 以后需要交由PowerJob服务统一管理
*/
@Scheduled(cron = "0 0 0 * * ?") // 每天凌晨0点执行
public void updateMaintenanceStatus() {
equipmentMaintenanceService.updateMaintenanceStatus();
}
}

@ -1,5 +1,6 @@
package org.springblade.desk.jobTransfer.controller;
import io.micrometer.core.instrument.binder.BaseUnits;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.enums.ParameterIn;
import io.swagger.v3.oas.annotations.media.Schema;
@ -34,6 +35,7 @@ import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.excel.util.ExcelUtil;
import java.util.ArrayList;
import java.util.Map;
import java.util.List;
import java.util.stream.Collectors;
@ -50,7 +52,7 @@ import org.springframework.web.multipart.MultipartFile;
@RestController
@AllArgsConstructor
@RequestMapping("/postHandle")
@Tag(name = "岗位处理", description = "岗位处理接口")
@Tag(name = "人员岗位管理", description = "人员岗位管理接口")
public class PostHandleController extends BladeController {
private final IPostHandleService postHandleService;
@ -182,18 +184,26 @@ public class PostHandleController extends BladeController {
/**
* 导出数据
*/
@IsAdmin
@GetMapping("/export-postHandle")
@ApiOperationSupport(order = 11)
@Operation(summary = "导出数据", description = "传入postHandle")
public void exportPostHandle(@Parameter(hidden = true) @RequestParam Map<String, Object> postHandle, BladeUser bladeUser, HttpServletResponse response) {
QueryWrapper<PostHandleEntity> queryWrapper = Condition.getQueryWrapper(postHandle, PostHandleEntity.class);
public void exportPostHandle(PostHandleQuery postHandleQuery, Query query, HttpServletResponse response) {
query.setSize(99999);
IPage<PostHandleVO> pages = postHandleService.selectPostHandlePage(Condition.getPage(query), postHandleQuery);
List<PostHandleVO> list = pages.getRecords();
// QueryWrapper<PostHandleEntity> queryWrapper = Condition.getQueryWrapper(postHandle, PostHandleEntity.class);
//if (!AuthUtil.isAdministrator()) {
// queryWrapper.lambda().eq(PostHandle::getTenantId, bladeUser.getTenantId());
//}
//queryWrapper.lambda().eq(PostHandleEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
List<PostHandleExcel> list = postHandleService.exportPostHandle(queryWrapper);
ExcelUtil.export(response, "岗位处理数据" + DateUtil.time(), "岗位处理数据表", list, PostHandleExcel.class);
// List<PostHandleExcel> list = postHandleService.exportPostHandle(queryWrapper);
List<PostHandleExcel> excels = new ArrayList<>();
for (PostHandleVO postHandleVO : list) {
PostHandleExcel excel = new PostHandleExcel();
BeanUtils.copyProperties(postHandleVO, excel);
excels.add(excel);
}
ExcelUtil.export(response, "岗位处理数据" + DateUtil.time(), "岗位处理数据表", excels, PostHandleExcel.class);
}
/**
@ -205,7 +215,7 @@ public class PostHandleController extends BladeController {
public ResponseEntity<Resource> downloadExcelTemplate() {
return ExcelExtUtil.downloadXlsTemplate(
"Excel/jobTransfer/岗位处理导入模板下载.xls",
"岗位处理导入模板下载.xls");
"岗位处理导入模板.xls");
}
/**

@ -130,7 +130,6 @@ public class TrainingPlanController extends BladeController {
/**
* 导出数据
*/
@IsAdmin
@GetMapping("/export-trainingPlan")
@ApiOperationSupport(order = 9)
@Operation(summary = "导出数据", description = "传入trainingPlan")

@ -82,6 +82,8 @@
<result column="ADDRESS" property="address"/>
<result column="TO_NEW_JOB" property="toNewJob"/>
<result column="PH_STATUS" property="phStatus"/>
<result column="GENDER" property="gender"/>
<result column="MOBILE" property="mobile"/>
<!-- 映射 VO 扩展字段 -->
<result column="USER_NAME" property="userName"/>
@ -93,6 +95,7 @@
<resultMap id="certificateMaintenanceMap" type="org.springblade.desk.jobTransfer.pojo.vo.CertificateMaintenanceVO">
<id property="id" column="cm_id"/>
<result property="phId" column="cm_ph_id"/>
<result property="createTime" column="cm_create_time"/>
<result property="certificateId" column="certificate_id"/>
<result property="certificateCode" column="certificate_code"/>
<result property="certificateDate" column="certificate_date"/>
@ -110,9 +113,10 @@
SELECT
ph.ID as ph_id,
ph.*,
bd.DEPT_NAME as DEPT_NAME,
bd.TS_NAME as DEPT_NAME,
cm.id as cm_id,
cm.ph_id as cm_ph_id,
cm.create_time as cm_create_time,
cm.certificate_id,
cm.certificate_code,
cm.certificate_date,
@ -126,10 +130,10 @@
ct.astronaut_validity_period as astronaut_validity_period
FROM MES_POST_HANDLE ph
LEFT JOIN BLADE_USER bu ON ph.USER_ID = bu.ID
LEFT JOIN BLADE_DEPT bd ON ph.DEPT_ID = bd.ID
LEFT JOIN BA_TEAM_SET bd ON ph.DEPT_ID = bd.ID
LEFT JOIN MES_CERTIFICATE_MAINTENANCE cm ON ph.id = cm.ph_id AND cm.is_deleted = 0
LEFT JOIN MES_CERTIFICATE_TYPE ct ON cm.certificate_id = ct.id AND ct.is_deleted = 0
WHERE ph.is_deleted = 0
WHERE ph.is_deleted = 0 and ph.staff_type != 1
<if test="query.name != null and query.name != ''">
AND ph.name LIKE CONCAT(CONCAT('%', #{query.name}), '%')
</if>

@ -38,5 +38,8 @@ public interface EquipmentMaintenanceMapper extends BaseMapper<EquipmentMaintena
*/
List<EquipmentMaintenanceExcel> exportEquipmentMaintenance(@Param("ew") Wrapper<EquipmentMaintenanceEntity> queryWrapper);
/**
* 更新设备维护状态
*/
void updateMaintenanceStatus();
}

@ -70,6 +70,8 @@
<result column="ADDRESS" property="address"/>
<result column="TO_NEW_JOB" property="toNewJob"/>
<result column="PH_STATUS" property="phStatus"/>
<result column="GENDER" property="gender"/>
<result column="MOBILE" property="mobile"/>
<!-- 映射 VO 扩展字段 -->
<result column="USER_NAME" property="userName"/>
@ -95,7 +97,7 @@
SELECT
ph.ID as ph_id,
ph.*,
bd.DEPT_NAME as DEPT_NAME,
bd.TS_NAME as DEPT_NAME,
em.id as em_id,
em.ph_id as em_ph_id,
em.equipment_id,
@ -107,10 +109,10 @@
equipment.mac_spec
FROM MES_POST_HANDLE ph
LEFT JOIN BLADE_USER bu ON ph.USER_ID = bu.ID
LEFT JOIN BLADE_DEPT bd ON ph.DEPT_ID = bd.ID
LEFT JOIN BA_TEAM_SET bd ON ph.DEPT_ID = bd.ID
LEFT JOIN MES_EQUIPMENT_MAINTENANCE em ON ph.id = em.ph_id AND em.is_deleted = 0
LEFT JOIN MES_EQUIPMENT equipment ON em.equipment_id = equipment.id AND equipment.is_deleted = 0
WHERE ph.is_deleted = 0
WHERE ph.is_deleted = 0 and ph.staff_type != 1
<if test="query.name != null and query.name != ''">
AND ph.name LIKE CONCAT(CONCAT('%', #{query.name}), '%')
</if>

@ -36,6 +36,8 @@
<result column="ADDRESS" property="address"/>
<result column="TO_NEW_JOB" property="toNewJob"/>
<result column="PH_STATUS" property="phStatus"/>
<result column="GENDER" property="gender"/>
<result column="MOBILE" property="mobile"/>
</resultMap>
<!-- PostHandleVO 专用结果映射 -->
@ -73,6 +75,8 @@
<result column="ADDRESS" property="address"/>
<result column="TO_NEW_JOB" property="toNewJob"/>
<result column="PH_STATUS" property="phStatus"/>
<result column="GENDER" property="gender"/>
<result column="MOBILE" property="mobile"/>
<!-- 映射 VO 扩展字段 -->
<result column="USER_NAME" property="userName"/>
@ -98,10 +102,10 @@
mph.*, -- 主表所有字段
bu.REAL_NAME as USER_NAME, -- 用户姓名
bu.CODE as USER_CODE, -- 用户工号
bd.DEPT_NAME as DEPT_NAME -- 班组名称
bd.TS_NAME as DEPT_NAME -- 班组名称
FROM MES_POST_HANDLE mph
LEFT JOIN BLADE_USER bu ON mph.USER_ID = bu.ID -- 关联用户表
LEFT JOIN BLADE_DEPT bd ON mph.DEPT_ID = bd.ID -- 关联部门表
LEFT JOIN BA_TEAM_SET bd ON mph.DEPT_ID = bd.ID -- 关联部门表
WHERE mph.IS_DELETED = 0
<if test="postHandle.userCode != null and postHandle.userCode != ''">
AND bu.CODE = #{postHandle.userCode}

@ -1,8 +1,10 @@
package org.springblade.desk.jobTransfer.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import org.springblade.core.tool.api.R;
import org.springblade.desk.jobTransfer.pojo.entity.CertificateMaintenanceEntity;
import org.springblade.desk.jobTransfer.pojo.excel.CertificateMaintenanceExcel;
import org.springblade.desk.jobTransfer.pojo.excel.CertificateMaintenanceImport;
import org.springblade.desk.jobTransfer.pojo.request.CertificateLedgerQuery;
import org.springblade.desk.jobTransfer.pojo.vo.CertificateLedgerVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -47,4 +49,12 @@ public interface ICertificateMaintenanceService extends BaseService<CertificateM
* @return
*/
Boolean submitList(List<CertificateMaintenanceEntity> certificateMaintenances);
/**
* 导入
*
* @param certificateMaintenanceImports
* @return
*/
R saveExcelData(List<CertificateMaintenanceImport> certificateMaintenanceImports);
}

@ -35,6 +35,16 @@ public interface IEquipmentMaintenanceService extends BaseService<EquipmentMaint
*/
List<EquipmentMaintenanceExcel> exportEquipmentMaintenance(Wrapper<EquipmentMaintenanceEntity> queryWrapper);
/**
* 批量增改
*
* @param equipmentMaintenanceEntities
* @return
*/
Boolean submitList(List<EquipmentMaintenanceEntity> equipmentMaintenanceEntities);
/**
* 更新设备维护状态
*/
void updateMaintenanceStatus();
}

@ -1,18 +1,30 @@
package org.springblade.desk.jobTransfer.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import jakarta.annotation.Resource;
import org.springblade.core.tool.api.R;
import org.springblade.desk.jobTransfer.mapper.CertificateTypeMapper;
import org.springblade.desk.jobTransfer.mapper.PostHandleMapper;
import org.springblade.desk.jobTransfer.pojo.entity.CertificateMaintenanceEntity;
import org.springblade.desk.jobTransfer.pojo.entity.PostHandleEntity;
import org.springblade.desk.jobTransfer.pojo.enums.PostHandleStatusEnum;
import org.springblade.desk.jobTransfer.pojo.enums.StaffTypeEnum;
import org.springblade.desk.jobTransfer.pojo.excel.CertificateMaintenanceExcel;
import org.springblade.desk.jobTransfer.pojo.excel.CertificateMaintenanceImport;
import org.springblade.desk.jobTransfer.pojo.request.CertificateLedgerQuery;
import org.springblade.desk.jobTransfer.pojo.vo.CertificateLedgerVO;
import org.springblade.desk.jobTransfer.mapper.CertificateMaintenanceMapper;
import org.springblade.desk.jobTransfer.service.ICertificateMaintenanceService;
import org.springblade.system.cache.UserCache;
import org.springblade.system.pojo.entity.UserInfo;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
* 证书维护 服务实现类
@ -23,6 +35,12 @@ import java.util.List;
@Service
public class CertificateMaintenanceServiceImpl extends BaseServiceImpl<CertificateMaintenanceMapper, CertificateMaintenanceEntity> implements ICertificateMaintenanceService {
@Resource
private PostHandleMapper postHandleMapper;
@Resource
private CertificateTypeMapper certificateTypeMapper;
@Override
public IPage<CertificateLedgerVO> selectCertificateMaintenancePage(IPage<CertificateLedgerVO> page, CertificateLedgerQuery certificateLedgerQuery) {
return page.setRecords(baseMapper.selectCertificateMaintenancePage(page, certificateLedgerQuery));
@ -53,7 +71,44 @@ public class CertificateMaintenanceServiceImpl extends BaseServiceImpl<Certifica
return saved;
}
@Override
public R saveExcelData(List<CertificateMaintenanceImport> certificateMaintenanceImports) {
//获取全部用户codes,通过code获取用户ID,
Set<String> codes = certificateMaintenanceImports.stream().map(CertificateMaintenanceImport::getUserCode)
.collect(Collectors.toSet());
Map<Long, String> idCodeMap = codes.stream()
.map(code -> {
UserInfo userInfo = UserCache.getUserByCode(code);
return (userInfo != null && userInfo.getUser() != null) ?
new AbstractMap.SimpleEntry<>(code, userInfo.getUser().getId()) : null;
})
.filter(Objects::nonNull)
.collect(Collectors.toMap(AbstractMap.SimpleEntry::getValue, AbstractMap.SimpleEntry::getKey));
//根据用户id获取人员岗位数据
Collection<Long> values = idCodeMap.keySet();
LambdaQueryWrapper<PostHandleEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(PostHandleEntity::getUserId, values)
.eq(PostHandleEntity::getStaffType, StaffTypeEnum.FORMAL.getCode().shortValue())
.ne(PostHandleEntity::getPhStatus, PostHandleStatusEnum.DEPART.getCode().shortValue()); // 使用实体类的get方法引用
List<PostHandleEntity> postHandleEntities = postHandleMapper.selectList(lambdaQueryWrapper);
Map<Long, Long> idMap = postHandleEntities.stream().collect(Collectors.toMap(
entity -> entity.getUserId(),
entity -> entity.getId()));
//整合成一个用户code和PostHandleEntityId的map
Map<String, Long> codePostHandleIdMap = new HashMap<>();
for (Long l : idMap.keySet()) {
codePostHandleIdMap.put(idCodeMap.get(l), idMap.get(l));
}
codes.removeAll(codePostHandleIdMap.keySet());
if (codes.size() > 0) {
return R.fail("工号:" + String.join(",", codes) + "不存在。");
}
//获取全部证书类型
Set<String> certificateType = certificateMaintenanceImports.stream().map(CertificateMaintenanceImport::getCertificateType)
.collect(Collectors.toSet());
return null;
}
}

@ -46,4 +46,9 @@ public class EquipmentMaintenanceServiceImpl extends BaseServiceImpl<EquipmentMa
return saved;
}
@Override
public void updateMaintenanceStatus() {
baseMapper.updateMaintenanceStatus();
}
}

@ -3,6 +3,8 @@ package org.springblade.desk.jobTransfer.service.impl;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import jakarta.annotation.Resource;
import org.springblade.core.tool.api.R;
import org.springblade.desk.basic.pojo.entity.RelTeamSetUser;
import org.springblade.desk.basic.service.IRelTeamSetUserService;
import org.springblade.desk.jobTransfer.pojo.entity.CertificateMaintenanceEntity;
import org.springblade.desk.jobTransfer.pojo.entity.CultivateDetailEntity;
import org.springblade.desk.jobTransfer.pojo.entity.EquipmentMaintenanceEntity;
@ -44,7 +46,7 @@ public class PostHandleServiceImpl extends BaseServiceImpl<PostHandleMapper, Pos
private ICultivateDetailService iCultivateDetailService;
private ICertificateMaintenanceService certificateMaintenanceService;
private IEquipmentMaintenanceService equipmentMaintenanceService;
private IRelTeamSetUserService relTeamSetUserService;
@Resource
public void setICultivateDetailService(ICultivateDetailService iCultivateDetailService) {
this.iCultivateDetailService = iCultivateDetailService;
@ -60,6 +62,11 @@ public class PostHandleServiceImpl extends BaseServiceImpl<PostHandleMapper, Pos
this.equipmentMaintenanceService = equipmentMaintenanceService;
}
@Resource
public void setRelTeamSetUserService(IRelTeamSetUserService relTeamSetUserService) {
this.relTeamSetUserService = relTeamSetUserService;
}
@Override
public IPage<PostHandleVO> selectPostHandlePage(IPage<PostHandleVO> page, PostHandleQuery postHandleQuery) {
// return page.setRecords(baseMapper.selectPostHandlePage(page, postHandle));
@ -227,7 +234,10 @@ public class PostHandleServiceImpl extends BaseServiceImpl<PostHandleMapper, Pos
// 存在重复的用户code,返回错误信息。假设R是统一的返回结果类
return R.fail("导入数据中存在重复的工号:" + duplicateCodes);
}
List<PostHandleEntity> list = postHandleImports.stream().map(this::convertSingle).collect(Collectors.toList());
//获取用户与班组对应关系
List<RelTeamSetUser> relTeamSetUsers = relTeamSetUserService.list();
Map<Long, Long> relTeamSetUserMap = relTeamSetUsers.stream().collect(Collectors.toMap(item -> item.getUserId(), item -> item.getTeamSetId()));
List<PostHandleEntity> list = postHandleImports.stream().map((PostHandleImport excel) -> convertSingle(excel, relTeamSetUserMap)).collect(Collectors.toList());
//获取全部用户id,对比PostHandleEntity已有数据,不允许重复添加
List<Long> ids = list.stream().map(PostHandleEntity::getUserId)
.collect(Collectors.toList());
@ -287,7 +297,7 @@ public class PostHandleServiceImpl extends BaseServiceImpl<PostHandleMapper, Pos
/**
* 转换单个对象
*/
private PostHandleEntity convertSingle(PostHandleImport excel) {
private PostHandleEntity convertSingle(PostHandleImport excel, Map<Long, Long> map) {
PostHandleEntity entity = new PostHandleEntity();
// 核心:属性拷贝,两个类的字段名和类型必须一致
BeanUtils.copyProperties(excel, entity);
@ -302,11 +312,13 @@ public class PostHandleServiceImpl extends BaseServiceImpl<PostHandleMapper, Pos
}
entity.setUserId(userByCode.getUser().getId());
entity.setName(userByCode.getUser().getRealName());
entity.setDeptId(Long.valueOf(userByCode.getUser().getDeptId()));
entity.setDeptId(map.get(userByCode.getUser().getId()));
//技能等级
entity.setSkill(SkillEnum.of(excel.getSkillName()).getCode().shortValue());
//婚姻状态
entity.setMarriage(MarriageEnum.of(excel.getMarriageName()).getCode().toString());
//性别
entity.setGender(GenderEnum.of(excel.getGender()).getCode().toString());
// 如果是正式工状态为正常
if (entity.getStaffType() == StaffTypeEnum.FORMAL.getCode().shortValue()) {
entity.setPhStatus(PostHandleStatusEnum.NORMALITY.getCode().shortValue());

@ -3,3 +3,90 @@ ALTER TABLE MES_EQUIPMENT
MODIFY (WORKSTATION_ID NUMBER (20,0));
ALTER TABLE MES_EQUIPMENT RENAME COLUMN WORKSTATION_ID TO WORK_CENTER_ID;
--
INSERT INTO BLADE_DICT (ID, PARENT_ID, CODE, DICT_KEY, DICT_VALUE, SORT, REMARK, IS_SEALED, STATUS, IS_DELETED)
VALUES ('2010964046474784769', '0', 'staff_type', '-1', '用工类型', '1026', '用工类型', '0', '1', '0');
INSERT INTO BLADE_DICT (ID, PARENT_ID, CODE, DICT_KEY, DICT_VALUE, SORT, REMARK, IS_SEALED, STATUS, IS_DELETED)
VALUES ('2010964096160509954', '2010964046474784769', 'staff_type', '1', '实习工', '1', '实习工', '0', '1', '0');
INSERT INTO BLADE_DICT (ID, PARENT_ID, CODE, DICT_KEY, DICT_VALUE, SORT, REMARK, IS_SEALED, STATUS, IS_DELETED)
VALUES ('2010964125885542401', '2010964046474784769', 'staff_type', '2', '正式工', '2', '正式工', '0', '1', '0');
INSERT INTO BLADE_DICT (ID, PARENT_ID, CODE, DICT_KEY, DICT_VALUE, SORT, REMARK, IS_SEALED, STATUS, IS_DELETED)
VALUES ('2010964532472983554', '0', 'cultivate_status', '-1', '培训类型', '1027', '培训类型', '0', '1', '0');
INSERT INTO BLADE_DICT (ID, PARENT_ID, CODE, DICT_KEY, DICT_VALUE, SORT, REMARK, IS_SEALED, STATUS, IS_DELETED)
VALUES ('2010964577607888897', '2010964532472983554', 'cultivate_status', '1', '实习', '1', '实习', '0', '1', '0');
INSERT INTO BLADE_DICT (ID, PARENT_ID, CODE, DICT_KEY, DICT_VALUE, SORT, REMARK, IS_SEALED, STATUS, IS_DELETED)
VALUES ('2010964608230502401', '2010964532472983554', 'cultivate_status', '2', '转岗', '2', '转岗', '0', '1', '0');
INSERT INTO BLADE_DICT (ID, PARENT_ID, CODE, DICT_KEY, DICT_VALUE, SORT, REMARK, IS_SEALED, STATUS, IS_DELETED)
VALUES ('2010964640312733697', '2010964532472983554', 'cultivate_status', '3', '下岗', '3', '下岗', '0', '1', '0');
INSERT INTO BLADE_DICT (ID, PARENT_ID, CODE, DICT_KEY, DICT_VALUE, SORT, REMARK, IS_SEALED, STATUS, IS_DELETED)
VALUES ('2010964863843971073', '0', 'training_status', '-1', '培训状态', '1028', '培训状态', '0', '1', '0');
INSERT INTO BLADE_DICT (ID, PARENT_ID, CODE, DICT_KEY, DICT_VALUE, SORT, REMARK, IS_SEALED, STATUS, IS_DELETED)
VALUES ('2010964906055446530', '2010964863843971073', 'training_status', '1', '未配置', '1', '未配置', '0', '1', '0');
INSERT INTO BLADE_DICT (ID, PARENT_ID, CODE, DICT_KEY, DICT_VALUE, SORT, REMARK, IS_SEALED, STATUS, IS_DELETED)
VALUES ('2010964940725563393', '2010964863843971073', 'training_status', '2', '等待下发', '2', '等待下发', '0', '1',
'0');
INSERT INTO BLADE_DICT (ID, PARENT_ID, CODE, DICT_KEY, DICT_VALUE, SORT, REMARK, IS_SEALED, STATUS, IS_DELETED)
VALUES ('2010964980449816578', '2010964863843971073', 'training_status', '3', '已下发-培训中', '3', '已下发-培训中',
'0', '1', '0');
INSERT INTO BLADE_DICT (ID, PARENT_ID, CODE, DICT_KEY, DICT_VALUE, SORT, REMARK, IS_SEALED, STATUS, IS_DELETED)
VALUES ('2010965012834037761', '2010964863843971073', 'training_status', '4', '已到期', '4', '已到期', '0', '1', '0');
INSERT INTO BLADE_DICT (ID, PARENT_ID, CODE, DICT_KEY, DICT_VALUE, SORT, REMARK, IS_SEALED, STATUS, IS_DELETED)
VALUES ('2010965054177292289', '2010964863843971073', 'training_status', '5', '已培训-待确认', '5', '已培训-待确认',
'0', '1', '0');
INSERT INTO BLADE_DICT (ID, PARENT_ID, CODE, DICT_KEY, DICT_VALUE, SORT, REMARK, IS_SEALED, STATUS, IS_DELETED)
VALUES ('2010965089786933249', '2010964863843971073', 'training_status', '6', '培训完成', '6', '培训完成', '0', '1',
'0');
INSERT INTO BLADE_DICT (ID, PARENT_ID, CODE, DICT_KEY, DICT_VALUE, SORT, REMARK, IS_SEALED, STATUS, IS_DELETED)
VALUES ('2008364878937874434', '0', 'equipment_used', '-1', '设备服役状态', '1021', '设备服役状态', '0', '1', '0');
INSERT INTO BLADE_DICT (ID, PARENT_ID, CODE, DICT_KEY, DICT_VALUE, SORT, REMARK, IS_SEALED, STATUS, IS_DELETED)
VALUES ('2008364966972121090', '2008364878937874434', 'equipment_used', '1', '正常服役', '0', '正常服役', '0', '1',
'0');
INSERT INTO BLADE_DICT (ID, PARENT_ID, CODE, DICT_KEY, DICT_VALUE, SORT, REMARK, IS_SEALED, STATUS, IS_DELETED)
VALUES ('2008365020491440129', '2008364878937874434', 'equipment_used', '2', '服役中', '1', '服役中', '0', '1', '0');
INSERT INTO BLADE_DICT (ID, PARENT_ID, CODE, DICT_KEY, DICT_VALUE, SORT, REMARK, IS_SEALED, STATUS, IS_DELETED)
VALUES ('2008365080713256962', '2008364878937874434', 'equipment_used', '3', '暂停服役', '2', '暂停服役', '0', '1',
'0');
INSERT INTO BLADE_DICT (ID, PARENT_ID, CODE, DICT_KEY, DICT_VALUE, SORT, REMARK, IS_SEALED, STATUS, IS_DELETED)
VALUES ('2010961090912333825', '0', 'post_handle_status', '-1', '人员岗位管理状态', '1024', NULL, '0', '1', '0');
INSERT INTO BLADE_DICT (ID, PARENT_ID, CODE, DICT_KEY, DICT_VALUE, SORT, REMARK, IS_SEALED, STATUS, IS_DELETED)
VALUES ('2010961260999749634', '2010961090912333825', 'post_handle_status', '1', '实习中', '1', '实习中', '0', '1',
'0');
INSERT INTO BLADE_DICT (ID, PARENT_ID, CODE, DICT_KEY, DICT_VALUE, SORT, REMARK, IS_SEALED, STATUS, IS_DELETED)
VALUES ('2010961315622170625', '2010961090912333825', 'post_handle_status', '2', '转岗中', '2', '转岗中', '0', '1',
'0');
INSERT INTO BLADE_DICT (ID, PARENT_ID, CODE, DICT_KEY, DICT_VALUE, SORT, REMARK, IS_SEALED, STATUS, IS_DELETED)
VALUES ('2010961353375100929', '2010961090912333825', 'post_handle_status', '3', '正常', '3', '正常', '0', '1', '0');
INSERT INTO BLADE_DICT (ID, PARENT_ID, CODE, DICT_KEY, DICT_VALUE, SORT, REMARK, IS_SEALED, STATUS, IS_DELETED)
VALUES ('2010961399629885441', '2010961090912333825', 'post_handle_status', '4', '下岗中', '4', '下岗中', '0', '1',
'0');
INSERT INTO BLADE_DICT (ID, PARENT_ID, CODE, DICT_KEY, DICT_VALUE, SORT, REMARK, IS_SEALED, STATUS, IS_DELETED)
VALUES ('2010961438691438593', '2010961090912333825', 'post_handle_status', '5', '离职', '5', '离职', '0', '1', '0');
INSERT INTO BLADE_DICT (ID, PARENT_ID, CODE, DICT_KEY, DICT_VALUE, SORT, REMARK, IS_SEALED, STATUS, IS_DELETED)
VALUES ('2010961468466802689', '2010961090912333825', 'post_handle_status', '6', '转岗培训合格', '6', '转岗培训合格',
'0', '1', '0');
INSERT INTO BLADE_DICT (ID, PARENT_ID, CODE, DICT_KEY, DICT_VALUE, SORT, REMARK, IS_SEALED, STATUS, IS_DELETED)
VALUES ('2010961519066886145', '2010961090912333825', 'post_handle_status', '7', '下岗培训合格', '7', '下岗培训合格',
'0', '1', '0');
INSERT INTO BLADE_DICT (ID, PARENT_ID, CODE, DICT_KEY, DICT_VALUE, SORT, REMARK, IS_SEALED, STATUS, IS_DELETED)
VALUES ('2010961567850835970', '2010961090912333825', 'post_handle_status', '8', '实习培训合格', '8', '实习培训合格',
'0', '1', '0');
INSERT INTO BLADE_DICT (ID, PARENT_ID, CODE, DICT_KEY, DICT_VALUE, SORT, REMARK, IS_SEALED, STATUS, IS_DELETED)
VALUES ('2010961601405267970', '2010961090912333825', 'post_handle_status', '9', '培训不合格', '9', '培训不合格', '0',
'1', '0');
INSERT INTO BLADE_DICT (ID, PARENT_ID, CODE, DICT_KEY, DICT_VALUE, SORT, REMARK, IS_SEALED, STATUS, IS_DELETED)
VALUES ('2010962442006704130', '0', 'skill_level', '-1', '技能等级', '1025', '技能等级', '0', '1', '0');
INSERT INTO BLADE_DICT (ID, PARENT_ID, CODE, DICT_KEY, DICT_VALUE, SORT, REMARK, IS_SEALED, STATUS, IS_DELETED)
VALUES ('2010962529642491905', '2010962442006704130', 'skill_level', '1', '中级', '1', '中级', '0', '1', '0');
INSERT INTO BLADE_DICT (ID, PARENT_ID, CODE, DICT_KEY, DICT_VALUE, SORT, REMARK, IS_SEALED, STATUS, IS_DELETED)
VALUES ('2010962574047588354', '2010962442006704130', 'skill_level', '2', '高级', '2', '高级', '0', '1', '0');
INSERT INTO BLADE_DICT (ID, PARENT_ID, CODE, DICT_KEY, DICT_VALUE, SORT, REMARK, IS_SEALED, STATUS, IS_DELETED)
VALUES ('2010962612769402882', '2010962442006704130', 'skill_level', '3', '技师', '3', '技师', '0', '1', '0');
ALTER TABLE MES_POST_HANDLE
ADD (GENDER CHAR(1))
ADD (MOBILE NVARCHAR2(32));
COMMENT
ON COLUMN MES_POST_HANDLE.GENDER IS '性别(0女,1男)';
COMMENT
ON COLUMN MES_POST_HANDLE.MOBILE IS '手机号';
Loading…
Cancel
Save