diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/entity/PostHandleEntity.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/entity/PostHandleEntity.java index 3f7a2a59..ca2b9d43 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/entity/PostHandleEntity.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/entity/PostHandleEntity.java @@ -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; /** * 毕业院校 */ diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/enums/GenderEnum.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/enums/GenderEnum.java new file mode 100644 index 00000000..8102a07c --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/enums/GenderEnum.java @@ -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(); + } +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/excel/CertificateMaintenanceExcel.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/excel/CertificateMaintenanceExcel.java index 50c40010..51078350 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/excel/CertificateMaintenanceExcel.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/excel/CertificateMaintenanceExcel.java @@ -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; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/excel/CertificateMaintenanceImport.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/excel/CertificateMaintenanceImport.java new file mode 100644 index 00000000..fc8ce960 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/excel/CertificateMaintenanceImport.java @@ -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; +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/excel/CultivateDetailExcel.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/excel/CultivateDetailExcel.java index fd5fd1dd..70f4a3f1 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/excel/CultivateDetailExcel.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/excel/CultivateDetailExcel.java @@ -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; /** * 下发时间 */ diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/excel/EquipmentMaintenanceExcel.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/excel/EquipmentMaintenanceExcel.java index cf14166c..6742f716 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/excel/EquipmentMaintenanceExcel.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/excel/EquipmentMaintenanceExcel.java @@ -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; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/excel/PostHandleExcel.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/excel/PostHandleExcel.java index f022c9fc..743df5a3 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/excel/PostHandleExcel.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/excel/PostHandleExcel.java @@ -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; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/excel/PostHandleImport.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/excel/PostHandleImport.java index f8234e17..77f668a1 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/excel/PostHandleImport.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/excel/PostHandleImport.java @@ -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; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/vo/CertificateMaintenanceVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/vo/CertificateMaintenanceVO.java index 7d2ba0fe..17bddf95 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/vo/CertificateMaintenanceVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/vo/CertificateMaintenanceVO.java @@ -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(); diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/vo/EquipmentMaintenanceVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/vo/EquipmentMaintenanceVO.java index 2c09c1c8..b8721eb2 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/vo/EquipmentMaintenanceVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/vo/EquipmentMaintenanceVO.java @@ -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(); + } } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/vo/PostHandleVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/vo/PostHandleVO.java index 7716f321..7aa66e25 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/vo/PostHandleVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/jobTransfer/pojo/vo/PostHandleVO.java @@ -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; + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/CertificateMaintenanceController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/CertificateMaintenanceController.java index c944f804..84321bfe 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/CertificateMaintenanceController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/CertificateMaintenanceController.java @@ -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 certificateMaintenance, BladeUser bladeUser, HttpServletResponse response) { - QueryWrapper queryWrapper = Condition.getQueryWrapper(certificateMaintenance, CertificateMaintenanceEntity.class); + public void exportCertificateMaintenance(CertificateLedgerQuery certificateLedgerQuery, Query query, BladeUser bladeUser, HttpServletResponse response) { +// QueryWrapper 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 list = certificateMaintenanceService.exportCertificateMaintenance(queryWrapper); - ExcelUtil.export(response, "证书维护数据" + DateUtil.time(), "证书维护数据表", list, CertificateMaintenanceExcel.class); +// List list = certificateMaintenanceService.exportCertificateMaintenance(queryWrapper); + query.setSize(99999); + IPage pages = certificateMaintenanceService.selectCertificateMaintenancePage(Condition.getPage(query), certificateLedgerQuery); + List list = pages.getRecords(); + List 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 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 importList = ExcelUtil.read( + file, 0, 1, CertificateMaintenanceImport.class + ); + return certificateMaintenanceService.saveExcelData(importList); } @PostConstruct // 项目启动后立即执行一次 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/CertificateTypeController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/CertificateTypeController.java index e3542503..97b44fbf 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/CertificateTypeController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/CertificateTypeController.java @@ -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") diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/CultivateDetailController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/CultivateDetailController.java index 604580a3..30bbbdf6 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/CultivateDetailController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/CultivateDetailController.java @@ -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 cultivateDetail, BladeUser bladeUser, HttpServletResponse response) { - QueryWrapper queryWrapper = Condition.getQueryWrapper(cultivateDetail, CultivateDetailEntity.class); + public void exportCultivateDetail(CultivateDetailQuery cultivateDetailQuery, Query query, HttpServletResponse response) { +// QueryWrapper 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 list = cultivateDetailService.exportCultivateDetail(queryWrapper); - ExcelUtil.export(response, "培训安排数据" + DateUtil.time(), "培训安排数据表", list, CultivateDetailExcel.class); +// List list = cultivateDetailService.exportCultivateDetail(queryWrapper); + query.setSize(99999); + IPage pages = cultivateDetailService.selectCultivateDetailPage(Condition.getPage(query), cultivateDetailQuery); + List list = pages.getRecords(); + List 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); } /** diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/EquipmentMaintenanceController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/EquipmentMaintenanceController.java index d38f03a2..019f5f9e 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/EquipmentMaintenanceController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/EquipmentMaintenanceController.java @@ -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 equipmentMaintenance, BladeUser bladeUser, HttpServletResponse response) { - QueryWrapper queryWrapper = Condition.getQueryWrapper(equipmentMaintenance, EquipmentMaintenanceEntity.class); + public void exportEquipmentMaintenance(EquipmentMaintenanceQuery equipmentMaintenanceQuery, Query query, BladeUser bladeUser, HttpServletResponse response) { +// QueryWrapper 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 list = equipmentMaintenanceService.exportEquipmentMaintenance(queryWrapper); - ExcelUtil.export(response, "岗位设备维护数据" + DateUtil.time(), "岗位设备维护数据表", list, EquipmentMaintenanceExcel.class); +// List list = equipmentMaintenanceService.exportEquipmentMaintenance(queryWrapper); + query.setSize(99999); + IPage pages = equipmentMaintenanceService.selectEquipmentMaintenancePage(Condition.getPage(query), equipmentMaintenanceQuery); + List list = pages.getRecords(); + List 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(); } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/PostHandleController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/PostHandleController.java index cef1dd1e..1663826f 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/PostHandleController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/PostHandleController.java @@ -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 postHandle, BladeUser bladeUser, HttpServletResponse response) { - QueryWrapper queryWrapper = Condition.getQueryWrapper(postHandle, PostHandleEntity.class); + public void exportPostHandle(PostHandleQuery postHandleQuery, Query query, HttpServletResponse response) { + query.setSize(99999); + IPage pages = postHandleService.selectPostHandlePage(Condition.getPage(query), postHandleQuery); + List list = pages.getRecords(); +// QueryWrapper 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 list = postHandleService.exportPostHandle(queryWrapper); - ExcelUtil.export(response, "岗位处理数据" + DateUtil.time(), "岗位处理数据表", list, PostHandleExcel.class); +// List list = postHandleService.exportPostHandle(queryWrapper); + List 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 downloadExcelTemplate() { return ExcelExtUtil.downloadXlsTemplate( "Excel/jobTransfer/岗位处理导入模板下载.xls", - "岗位处理导入模板下载.xls"); + "岗位处理导入模板.xls"); } /** diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/TrainingPlanController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/TrainingPlanController.java index dd6276a0..ff06551c 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/TrainingPlanController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/TrainingPlanController.java @@ -130,7 +130,6 @@ public class TrainingPlanController extends BladeController { /** * 导出数据 */ - @IsAdmin @GetMapping("/export-trainingPlan") @ApiOperationSupport(order = 9) @Operation(summary = "导出数据", description = "传入trainingPlan") diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/mapper/CertificateMaintenanceMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/mapper/CertificateMaintenanceMapper.xml index 0a90ab1a..fb44eea5 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/mapper/CertificateMaintenanceMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/mapper/CertificateMaintenanceMapper.xml @@ -82,6 +82,8 @@ + + @@ -93,6 +95,7 @@ + @@ -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 AND ph.name LIKE CONCAT(CONCAT('%', #{query.name}), '%') diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/mapper/EquipmentMaintenanceMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/mapper/EquipmentMaintenanceMapper.java index 845dfd8f..79f59061 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/mapper/EquipmentMaintenanceMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/mapper/EquipmentMaintenanceMapper.java @@ -38,5 +38,8 @@ public interface EquipmentMaintenanceMapper extends BaseMapper exportEquipmentMaintenance(@Param("ew") Wrapper queryWrapper); + /** + * 更新设备维护状态 + */ void updateMaintenanceStatus(); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/mapper/EquipmentMaintenanceMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/mapper/EquipmentMaintenanceMapper.xml index 8a233930..afab02e0 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/mapper/EquipmentMaintenanceMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/mapper/EquipmentMaintenanceMapper.xml @@ -70,6 +70,8 @@ + + @@ -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 AND ph.name LIKE CONCAT(CONCAT('%', #{query.name}), '%') diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/mapper/PostHandleMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/mapper/PostHandleMapper.xml index 26252749..2faca7a3 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/mapper/PostHandleMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/mapper/PostHandleMapper.xml @@ -36,6 +36,8 @@ + + @@ -73,6 +75,8 @@ + + @@ -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 AND bu.CODE = #{postHandle.userCode} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/ICertificateMaintenanceService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/ICertificateMaintenanceService.java index a0e5d0b9..dba9d2d0 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/ICertificateMaintenanceService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/ICertificateMaintenanceService.java @@ -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 certificateMaintenances); + + /** + * 导入 + * + * @param certificateMaintenanceImports + * @return + */ + R saveExcelData(List certificateMaintenanceImports); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/IEquipmentMaintenanceService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/IEquipmentMaintenanceService.java index 20a8a7ed..6ef616a0 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/IEquipmentMaintenanceService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/IEquipmentMaintenanceService.java @@ -35,6 +35,16 @@ public interface IEquipmentMaintenanceService extends BaseService exportEquipmentMaintenance(Wrapper queryWrapper); + /** + * 批量增改 + * + * @param equipmentMaintenanceEntities + * @return + */ Boolean submitList(List equipmentMaintenanceEntities); + /** + * 更新设备维护状态 + */ + void updateMaintenanceStatus(); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/impl/CertificateMaintenanceServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/impl/CertificateMaintenanceServiceImpl.java index df4c6118..89c27b2c 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/impl/CertificateMaintenanceServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/impl/CertificateMaintenanceServiceImpl.java @@ -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 implements ICertificateMaintenanceService { + @Resource + private PostHandleMapper postHandleMapper; + + @Resource + private CertificateTypeMapper certificateTypeMapper; + @Override public IPage selectCertificateMaintenancePage(IPage page, CertificateLedgerQuery certificateLedgerQuery) { return page.setRecords(baseMapper.selectCertificateMaintenancePage(page, certificateLedgerQuery)); @@ -53,7 +71,44 @@ public class CertificateMaintenanceServiceImpl extends BaseServiceImpl certificateMaintenanceImports) { + //获取全部用户codes,通过code获取用户ID, + Set codes = certificateMaintenanceImports.stream().map(CertificateMaintenanceImport::getUserCode) + .collect(Collectors.toSet()); + Map 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 values = idCodeMap.keySet(); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(PostHandleEntity::getUserId, values) + .eq(PostHandleEntity::getStaffType, StaffTypeEnum.FORMAL.getCode().shortValue()) + .ne(PostHandleEntity::getPhStatus, PostHandleStatusEnum.DEPART.getCode().shortValue()); // 使用实体类的get方法引用 + List postHandleEntities = postHandleMapper.selectList(lambdaQueryWrapper); + Map idMap = postHandleEntities.stream().collect(Collectors.toMap( + entity -> entity.getUserId(), + entity -> entity.getId())); + //整合成一个用户code和PostHandleEntityId的map + Map 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 certificateType = certificateMaintenanceImports.stream().map(CertificateMaintenanceImport::getCertificateType) + .collect(Collectors.toSet()); + return null; + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/impl/EquipmentMaintenanceServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/impl/EquipmentMaintenanceServiceImpl.java index 8c48c7e5..8341ba92 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/impl/EquipmentMaintenanceServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/impl/EquipmentMaintenanceServiceImpl.java @@ -46,4 +46,9 @@ public class EquipmentMaintenanceServiceImpl extends BaseServiceImpl selectPostHandlePage(IPage page, PostHandleQuery postHandleQuery) { // return page.setRecords(baseMapper.selectPostHandlePage(page, postHandle)); @@ -227,7 +234,10 @@ public class PostHandleServiceImpl extends BaseServiceImpl list = postHandleImports.stream().map(this::convertSingle).collect(Collectors.toList()); + //获取用户与班组对应关系 + List relTeamSetUsers = relTeamSetUserService.list(); + Map relTeamSetUserMap = relTeamSetUsers.stream().collect(Collectors.toMap(item -> item.getUserId(), item -> item.getTeamSetId())); + List list = postHandleImports.stream().map((PostHandleImport excel) -> convertSingle(excel, relTeamSetUserMap)).collect(Collectors.toList()); //获取全部用户id,对比PostHandleEntity已有数据,不允许重复添加 List ids = list.stream().map(PostHandleEntity::getUserId) .collect(Collectors.toList()); @@ -287,7 +297,7 @@ public class PostHandleServiceImpl extends BaseServiceImpl map) { PostHandleEntity entity = new PostHandleEntity(); // 核心:属性拷贝,两个类的字段名和类型必须一致 BeanUtils.copyProperties(excel, entity); @@ -302,11 +312,13 @@ public class PostHandleServiceImpl extends BaseServiceImpl