Showing
53 changed files
with
4946 additions
and
377 deletions
| 1 | 1 | package com.qgutech.qgyun.apaas.sync.cps.controller; |
| 2 | 2 | |
| 3 | +import com.qgutech.qgyun.apaas.sync.cps.dto.CImprovementDetailDTO; | |
| 3 | 4 | import com.qgutech.qgyun.apaas.sync.cps.dto.CImprovementSummaryDTO; |
| 4 | 5 | import com.qgutech.qgyun.apaas.sync.cps.model.CImprovement; |
| 5 | 6 | import com.qgutech.qgyun.apaas.sync.cps.service.CImprovementService; |
| ... | ... | @@ -50,4 +51,23 @@ public class CImprovementController { |
| 50 | 51 | List<CImprovementSummaryDTO> summaryList = cImprovementService.summaryByYearAndQuarter(year, quarter); |
| 51 | 52 | return new JsonResult<>(true, "成功", summaryList); |
| 52 | 53 | } |
| 54 | + | |
| 55 | + /** | |
| 56 | + * 根据年份、季度、单位车间id查询C类改善记录详情列表 | |
| 57 | + * <p> | |
| 58 | + * 查询该年份季度时间范围内、由该单位车间下人员发起的C类改善记录, | |
| 59 | + * 并将记录中涉及的单位、室组、区域、班组、发起人、部门等关联实体名称补充完整 | |
| 60 | + * | |
| 61 | + * @param year 年份,格式:yyyy,可为空(默认当前年) | |
| 62 | + * @param quarter 季度枚举值(#1#-#4#),必传 | |
| 63 | + * @param roomGroupId 室组id,必传 | |
| 64 | + * @return C类改善记录详情列表(含关联实体名称) | |
| 65 | + */ | |
| 66 | + @GetMapping("/list/detail") | |
| 67 | + public JsonResult listDetail(@RequestParam(required = false) String year, | |
| 68 | + @RequestParam String quarter, | |
| 69 | + @RequestParam String roomGroupId) { | |
| 70 | + List<CImprovementDetailDTO> detailList = cImprovementService.listDetailByYearQuarterAndRoomGroup(year, quarter, roomGroupId); | |
| 71 | + return new JsonResult<>(true, "成功", detailList); | |
| 72 | + } | |
| 53 | 73 | } | ... | ... |
| 1 | 1 | package com.qgutech.qgyun.apaas.sync.cps.controller; |
| 2 | 2 | |
| 3 | +import com.qgutech.qgyun.apaas.sync.cps.dto.CpsProblemDetailDTO; | |
| 4 | +import com.qgutech.qgyun.apaas.sync.cps.dto.CpsProblemSourceSummaryDTO; | |
| 5 | +import com.qgutech.qgyun.apaas.sync.cps.dto.CpsProblemSummaryDTO; | |
| 3 | 6 | import com.qgutech.qgyun.apaas.sync.cps.model.CpsProblem; |
| 4 | 7 | import com.qgutech.qgyun.apaas.sync.cps.service.CpsProblemService; |
| 5 | 8 | import com.qgutech.qgyun.framework.common.result.JsonResult; |
| 6 | 9 | import lombok.extern.slf4j.Slf4j; |
| 7 | 10 | import org.springframework.web.bind.annotation.GetMapping; |
| 8 | 11 | import org.springframework.web.bind.annotation.RequestMapping; |
| 12 | +import org.springframework.web.bind.annotation.RequestParam; | |
| 9 | 13 | import org.springframework.web.bind.annotation.RestController; |
| 10 | 14 | |
| 11 | 15 | import javax.annotation.Resource; |
| ... | ... | @@ -32,4 +36,78 @@ public class CpsProblemController { |
| 32 | 36 | List<CpsProblem> cpsProblemList = cpsProblemService.listAll(); |
| 33 | 37 | return new JsonResult<>(true, "成功", cpsProblemList); |
| 34 | 38 | } |
| 39 | + | |
| 40 | + /** | |
| 41 | + * 根据计划解决时间范围汇总各责任单位下各处理状态的问题数 | |
| 42 | + * <p> | |
| 43 | + * 开始、结束时间为空时默认使用当前月的开始、结束时间 | |
| 44 | + * | |
| 45 | + * @param startTime 开始时间,格式:yyyy-MM-dd [HH:mm:ss],可为空(默认当前月 1 号 00:00:00) | |
| 46 | + * @param endTime 结束时间,格式:yyyy-MM-dd [HH:mm:ss],可为空(默认当前月最后一天 23:59:59) | |
| 47 | + * @return 责任单位 + 状态维度的问题数汇总列表 | |
| 48 | + */ | |
| 49 | + @GetMapping("/summary/status") | |
| 50 | + public JsonResult summaryByStatus(@RequestParam(required = false) String startTime, | |
| 51 | + @RequestParam(required = false) String endTime) { | |
| 52 | + List<CpsProblemSummaryDTO> summaryList = cpsProblemService.summaryByPlanResolveTime(startTime, endTime); | |
| 53 | + return new JsonResult<>(true, "成功", summaryList); | |
| 54 | + } | |
| 55 | + | |
| 56 | + /** | |
| 57 | + * 根据计划解决时间范围、责任单位id、问题处理状态查询问题记录明细 | |
| 58 | + * <p> | |
| 59 | + * 明细中包含工作单位、责任单位、室组、区域、班组、问题提出人、问题处理人等关联实体名称; | |
| 60 | + * 开始、结束时间为空时默认使用当前月的开始、结束时间 | |
| 61 | + * | |
| 62 | + * @param startTime 开始时间,格式:yyyy-MM-dd [HH:mm:ss],可为空(默认当前月 1 号 00:00:00) | |
| 63 | + * @param endTime 结束时间,格式:yyyy-MM-dd [HH:mm:ss],可为空(默认当前月最后一天 23:59:59) | |
| 64 | + * @param wtzrdwId 责任单位id,必传 | |
| 65 | + * @param status 问题处理状态编号(#1#-待处理;#2#-处理中;#3#-已关闭;#4#-已逾期),必传 | |
| 66 | + * @return 问题记录明细列表 | |
| 67 | + */ | |
| 68 | + @GetMapping("/list/detail") | |
| 69 | + public JsonResult listDetail(@RequestParam(required = false) String startTime, | |
| 70 | + @RequestParam(required = false) String endTime, | |
| 71 | + @RequestParam String wtzrdwId, | |
| 72 | + @RequestParam String status) { | |
| 73 | + List<CpsProblemDetailDTO> detailList = cpsProblemService.listDetailByPlanResolveTime( | |
| 74 | + startTime, endTime, wtzrdwId, status); | |
| 75 | + return new JsonResult<>(true, "成功", detailList); | |
| 76 | + } | |
| 77 | + | |
| 78 | + /** | |
| 79 | + * 根据创建时间范围汇总各问题来源对应的问题数 | |
| 80 | + * <p> | |
| 81 | + * 开始、结束时间为空时默认使用当前月的开始、结束时间 | |
| 82 | + * | |
| 83 | + * @param startTime 开始时间,格式:yyyy-MM-dd [HH:mm:ss],可为空(默认当前月 1 号 00:00:00) | |
| 84 | + * @param endTime 结束时间,格式:yyyy-MM-dd [HH:mm:ss],可为空(默认当前月最后一天 23:59:59) | |
| 85 | + * @return 问题来源 + 问题数汇总列表 | |
| 86 | + */ | |
| 87 | + @GetMapping("/summary/source") | |
| 88 | + public JsonResult summaryBySource(@RequestParam(required = false) String startTime, | |
| 89 | + @RequestParam(required = false) String endTime) { | |
| 90 | + List<CpsProblemSourceSummaryDTO> summaryList = cpsProblemService.summaryByCreatedAtSource(startTime, endTime); | |
| 91 | + return new JsonResult<>(true, "成功", summaryList); | |
| 92 | + } | |
| 93 | + | |
| 94 | + /** | |
| 95 | + * 根据创建时间范围、问题来源查询问题记录明细 | |
| 96 | + * <p> | |
| 97 | + * 明细中包含工作单位、责任单位、室组、区域、班组、问题提出人、问题处理人等关联实体名称; | |
| 98 | + * 开始、结束时间为空时默认使用当前月的开始、结束时间 | |
| 99 | + * | |
| 100 | + * @param startTime 开始时间,格式:yyyy-MM-dd [HH:mm:ss],可为空(默认当前月 1 号 00:00:00) | |
| 101 | + * @param endTime 结束时间,格式:yyyy-MM-dd [HH:mm:ss],可为空(默认当前月最后一天 23:59:59) | |
| 102 | + * @param wtly 问题来源编号(#1#-开班;#2#-过程验证;#3#-过程确认;#4#-体系健康体检;#5#-单位自检),必传 | |
| 103 | + * @return 问题记录明细列表 | |
| 104 | + */ | |
| 105 | + @GetMapping("/list/detail/source") | |
| 106 | + public JsonResult listDetailBySource(@RequestParam(required = false) String startTime, | |
| 107 | + @RequestParam(required = false) String endTime, | |
| 108 | + @RequestParam String wtly) { | |
| 109 | + List<CpsProblemDetailDTO> detailList = cpsProblemService.listDetailByCreatedAtAndSource( | |
| 110 | + startTime, endTime, wtly); | |
| 111 | + return new JsonResult<>(true, "成功", detailList); | |
| 112 | + } | |
| 35 | 113 | } | ... | ... |
| 1 | +package com.qgutech.qgyun.apaas.sync.cps.dto; | |
| 2 | + | |
| 3 | +import com.fasterxml.jackson.annotation.JsonFormat; | |
| 4 | +import lombok.Getter; | |
| 5 | +import lombok.Setter; | |
| 6 | +import lombok.ToString; | |
| 7 | +import org.springframework.format.annotation.DateTimeFormat; | |
| 8 | + | |
| 9 | +import java.io.Serializable; | |
| 10 | +import java.util.Date; | |
| 11 | + | |
| 12 | +/** | |
| 13 | + * C类改善记录详情(含关联实体名称) | |
| 14 | + */ | |
| 15 | +@Getter | |
| 16 | +@Setter | |
| 17 | +@ToString | |
| 18 | +public class CImprovementDetailDTO implements Serializable { | |
| 19 | + | |
| 20 | + private static final long serialVersionUID = 1L; | |
| 21 | + | |
| 22 | + /* | |
| 23 | + * 记录ID | |
| 24 | + */ | |
| 25 | + private String id; | |
| 26 | + | |
| 27 | + /* | |
| 28 | + * 创建时间 | |
| 29 | + */ | |
| 30 | + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") | |
| 31 | + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") | |
| 32 | + private Date createdAt; | |
| 33 | + | |
| 34 | + /* | |
| 35 | + * 改善名称 | |
| 36 | + */ | |
| 37 | + private String gsmc; | |
| 38 | + | |
| 39 | + /* | |
| 40 | + * 问题编号 | |
| 41 | + */ | |
| 42 | + private String wtbh; | |
| 43 | + | |
| 44 | + /* | |
| 45 | + * 来源问题记录id | |
| 46 | + */ | |
| 47 | + private String lywt; | |
| 48 | + | |
| 49 | + /* | |
| 50 | + * 问题说明 | |
| 51 | + */ | |
| 52 | + private String wtsm; | |
| 53 | + | |
| 54 | + /* | |
| 55 | + * 改善后效果 | |
| 56 | + */ | |
| 57 | + private String gshxg; | |
| 58 | + | |
| 59 | + /* | |
| 60 | + * 状态 #1#-草稿;#2#-已提交;#3#-已否决;#4#-已确认; | |
| 61 | + */ | |
| 62 | + private String zt; | |
| 63 | + | |
| 64 | + /* | |
| 65 | + * 状态名称(枚举 CImprovementStatusEnum) | |
| 66 | + */ | |
| 67 | + private String ztDesc; | |
| 68 | + | |
| 69 | + /* | |
| 70 | + * 是否问题类改善 | |
| 71 | + */ | |
| 72 | + private Boolean sfwtlg; | |
| 73 | + | |
| 74 | + /* | |
| 75 | + * 是否是车间班组 | |
| 76 | + */ | |
| 77 | + private Boolean sfscjb; | |
| 78 | + | |
| 79 | + /* | |
| 80 | + * 是否推送优秀案例 | |
| 81 | + */ | |
| 82 | + private Boolean sftsyxal; | |
| 83 | + | |
| 84 | + /* | |
| 85 | + * 是否推送金点子 | |
| 86 | + */ | |
| 87 | + private Boolean sftsjdz; | |
| 88 | + | |
| 89 | + /* | |
| 90 | + * 流程实例ID | |
| 91 | + */ | |
| 92 | + private String processInstanceId; | |
| 93 | + | |
| 94 | + /* | |
| 95 | + * 审批状态 | |
| 96 | + */ | |
| 97 | + private String approvalStatus; | |
| 98 | + | |
| 99 | + /* | |
| 100 | + * 室组区域名称(原始字段) | |
| 101 | + */ | |
| 102 | + private String szqymc; | |
| 103 | + | |
| 104 | + /* | |
| 105 | + * 员工号 | |
| 106 | + */ | |
| 107 | + private String ygh; | |
| 108 | + | |
| 109 | + // ========== 关联实体ID及名称 ========== | |
| 110 | + | |
| 111 | + /* | |
| 112 | + * 员工id(组织用户) | |
| 113 | + */ | |
| 114 | + private String yh; | |
| 115 | + | |
| 116 | + /* | |
| 117 | + * 员工姓名(组织用户) | |
| 118 | + */ | |
| 119 | + private String yhName; | |
| 120 | + | |
| 121 | + /* | |
| 122 | + * 发起人id/工号 | |
| 123 | + */ | |
| 124 | + private String fqr; | |
| 125 | + | |
| 126 | + /* | |
| 127 | + * 发起人姓名 | |
| 128 | + */ | |
| 129 | + private String fqrName; | |
| 130 | + | |
| 131 | + /* | |
| 132 | + * 部门id(组织结构) | |
| 133 | + */ | |
| 134 | + private String bm; | |
| 135 | + | |
| 136 | + /* | |
| 137 | + * 部门名称(组织结构) | |
| 138 | + */ | |
| 139 | + private String bmName; | |
| 140 | + | |
| 141 | + /* | |
| 142 | + * 室组信息id | |
| 143 | + */ | |
| 144 | + private String szmc; | |
| 145 | + | |
| 146 | + /* | |
| 147 | + * 室组名称 | |
| 148 | + */ | |
| 149 | + private String szmcName; | |
| 150 | + | |
| 151 | + /* | |
| 152 | + * 室组编号 | |
| 153 | + */ | |
| 154 | + private String szbh; | |
| 155 | + | |
| 156 | + /* | |
| 157 | + * 班组信息id | |
| 158 | + */ | |
| 159 | + private String bz; | |
| 160 | + | |
| 161 | + /* | |
| 162 | + * 班组名称 | |
| 163 | + */ | |
| 164 | + private String bzName; | |
| 165 | + | |
| 166 | + /* | |
| 167 | + * 单位车间id | |
| 168 | + */ | |
| 169 | + private String dwcj; | |
| 170 | + | |
| 171 | + /* | |
| 172 | + * 单位车间名称 | |
| 173 | + */ | |
| 174 | + private String dwcjName; | |
| 175 | + | |
| 176 | + /* | |
| 177 | + * 单位车间编号 | |
| 178 | + */ | |
| 179 | + private String dwcjCode; | |
| 180 | + | |
| 181 | + /* | |
| 182 | + * 区域id | |
| 183 | + */ | |
| 184 | + private String szqy; | |
| 185 | + | |
| 186 | + /* | |
| 187 | + * 区域名称 | |
| 188 | + */ | |
| 189 | + private String szqyName; | |
| 190 | + | |
| 191 | + /* | |
| 192 | + * 区长确认-组织用户id | |
| 193 | + */ | |
| 194 | + private String qzqr; | |
| 195 | + | |
| 196 | + /* | |
| 197 | + * 区长确认-姓名 | |
| 198 | + */ | |
| 199 | + private String qzqrName; | |
| 200 | + | |
| 201 | + /* | |
| 202 | + * 改善员确认-组织用户id | |
| 203 | + */ | |
| 204 | + private String gsyqr; | |
| 205 | + | |
| 206 | + /* | |
| 207 | + * 改善员确认-姓名 | |
| 208 | + */ | |
| 209 | + private String gsyqrName; | |
| 210 | +} | ... | ... |
| ... | ... | @@ -32,6 +32,12 @@ public class CImprovementSummaryDTO implements Serializable { |
| 32 | 32 | private String szmc; |
| 33 | 33 | |
| 34 | 34 | /** |
| 35 | + * 室组编号 | |
| 36 | + */ | |
| 37 | + @ApiModelProperty(value = "室组编号") | |
| 38 | + private String szbh; | |
| 39 | + | |
| 40 | + /** | |
| 35 | 41 | * 所属单位车间编码 |
| 36 | 42 | */ |
| 37 | 43 | @ApiModelProperty(value = "所属单位车间编码") |
| ... | ... | @@ -44,6 +50,12 @@ public class CImprovementSummaryDTO implements Serializable { |
| 44 | 50 | private String dwcjName; |
| 45 | 51 | |
| 46 | 52 | /** |
| 53 | + * 所属单位车间编号 | |
| 54 | + */ | |
| 55 | + @ApiModelProperty(value = "所属单位车间编号") | |
| 56 | + private String dwcjCode; | |
| 57 | + | |
| 58 | + /** | |
| 47 | 59 | * 年份 |
| 48 | 60 | */ |
| 49 | 61 | @ApiModelProperty(value = "年份") | ... | ... |
| 1 | +package com.qgutech.qgyun.apaas.sync.cps.dto; | |
| 2 | + | |
| 3 | +import com.fasterxml.jackson.annotation.JsonFormat; | |
| 4 | +import lombok.Getter; | |
| 5 | +import lombok.Setter; | |
| 6 | +import lombok.ToString; | |
| 7 | +import org.springframework.format.annotation.DateTimeFormat; | |
| 8 | + | |
| 9 | +import java.io.Serializable; | |
| 10 | +import java.util.Date; | |
| 11 | + | |
| 12 | +/** | |
| 13 | + * CPS问题记录详情(含关联实体名称) | |
| 14 | + */ | |
| 15 | +@Getter | |
| 16 | +@Setter | |
| 17 | +@ToString | |
| 18 | +public class CpsProblemDetailDTO implements Serializable { | |
| 19 | + | |
| 20 | + private static final long serialVersionUID = 1L; | |
| 21 | + | |
| 22 | + /* | |
| 23 | + * 记录ID | |
| 24 | + */ | |
| 25 | + private String id; | |
| 26 | + | |
| 27 | + /* | |
| 28 | + * 创建时间 | |
| 29 | + */ | |
| 30 | + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") | |
| 31 | + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") | |
| 32 | + private Date createdAt; | |
| 33 | + | |
| 34 | + /* | |
| 35 | + * 问题编号 | |
| 36 | + */ | |
| 37 | + private String wtbh; | |
| 38 | + | |
| 39 | + /* | |
| 40 | + * 问题描述 | |
| 41 | + */ | |
| 42 | + private String wtms; | |
| 43 | + | |
| 44 | + /* | |
| 45 | + * 问题来源:#1#-开班;#2#-过程验证;#3#-过程确认;#4#-体系健康体检;#5#-单位自检(单位牵头) | |
| 46 | + */ | |
| 47 | + private String wtly; | |
| 48 | + | |
| 49 | + /* | |
| 50 | + * 问题来源名称(枚举 WtlyEnum) | |
| 51 | + */ | |
| 52 | + private String wtlyDesc; | |
| 53 | + | |
| 54 | + /* | |
| 55 | + * 问题所属板块 | |
| 56 | + */ | |
| 57 | + private String wtssbk; | |
| 58 | + | |
| 59 | + /* | |
| 60 | + * 问题类别:#1#-方针展开;#2#-标准化作业;#3#-目视化;#4#-时间数据处理;#5#-过程确认;#6#-持续改善 | |
| 61 | + */ | |
| 62 | + private String wtlb; | |
| 63 | + | |
| 64 | + /* | |
| 65 | + * 问题类别名称(枚举 WtlbEnum) | |
| 66 | + */ | |
| 67 | + private String wtlbDesc; | |
| 68 | + | |
| 69 | + /* | |
| 70 | + * 问题性质:#1#-无标准;#2#-未执行标准;#3#-标准不足 | |
| 71 | + */ | |
| 72 | + private String wtxz; | |
| 73 | + | |
| 74 | + /* | |
| 75 | + * 问题性质名称(枚举 WtxzEnum) | |
| 76 | + */ | |
| 77 | + private String wtxzDesc; | |
| 78 | + | |
| 79 | + /* | |
| 80 | + * 6S分类:#1#-整理;#2#-整顿;#3#-清洁;#4#-清扫;#5#-素养;#6#-安全 | |
| 81 | + */ | |
| 82 | + private String sfl; | |
| 83 | + | |
| 84 | + /* | |
| 85 | + * 6S分类名称(枚举 SflEnum) | |
| 86 | + */ | |
| 87 | + private String sflDesc; | |
| 88 | + | |
| 89 | + /* | |
| 90 | + * 问题层级-#1#-1;#2#-2;#3#-3;#4#-4;#5#-5;#0#-0 | |
| 91 | + */ | |
| 92 | + private String mbghlk; | |
| 93 | + | |
| 94 | + /* | |
| 95 | + * 问题层级名称(枚举 MbghlkEnum) | |
| 96 | + */ | |
| 97 | + private String mbghlkDesc; | |
| 98 | + | |
| 99 | + /* | |
| 100 | + * 人员类别:#1#-区长;#2#-班长;#3#-高级经理;#4#-经理;#5#-主管;#6#-专家;#7#-一般员工 | |
| 101 | + */ | |
| 102 | + private String rylb; | |
| 103 | + | |
| 104 | + /* | |
| 105 | + * 人员类别名称(枚举 RylbEnum) | |
| 106 | + */ | |
| 107 | + private String rylbDesc; | |
| 108 | + | |
| 109 | + /* | |
| 110 | + * 问题是否关闭 | |
| 111 | + */ | |
| 112 | + private Boolean wtsfgb; | |
| 113 | + | |
| 114 | + /* | |
| 115 | + * 问题附件 | |
| 116 | + */ | |
| 117 | + private String wtfj; | |
| 118 | + | |
| 119 | + /* | |
| 120 | + * 问题整改后附件 | |
| 121 | + */ | |
| 122 | + private String wtzghfj; | |
| 123 | + | |
| 124 | + /* | |
| 125 | + * 问题解决措施 | |
| 126 | + */ | |
| 127 | + private String wtjjcs; | |
| 128 | + | |
| 129 | + /* | |
| 130 | + * 问题处理方式:#1#-自己解决;#2#-工作安排/同级支持;#3#-问题升级至 | |
| 131 | + */ | |
| 132 | + private String wtclfs; | |
| 133 | + | |
| 134 | + /* | |
| 135 | + * 问题处理方式名称(枚举 WtclfsEnum) | |
| 136 | + */ | |
| 137 | + private String wtclfsDesc; | |
| 138 | + | |
| 139 | + /* | |
| 140 | + * 工作安排/同级支持 | |
| 141 | + */ | |
| 142 | + private String gzap; | |
| 143 | + | |
| 144 | + /* | |
| 145 | + * 问题升级至 | |
| 146 | + */ | |
| 147 | + private String wtsjz; | |
| 148 | + | |
| 149 | + /* | |
| 150 | + * 问题处理方式2 | |
| 151 | + */ | |
| 152 | + private String wtclfs2; | |
| 153 | + | |
| 154 | + /* | |
| 155 | + * 问题处理方式2名称(枚举 WtclfsEnum) | |
| 156 | + */ | |
| 157 | + private String wtclfs2Desc; | |
| 158 | + | |
| 159 | + /* | |
| 160 | + * 工作安排/同级支持2 | |
| 161 | + */ | |
| 162 | + private String gzap2; | |
| 163 | + | |
| 164 | + /* | |
| 165 | + * 问题升级至2 | |
| 166 | + */ | |
| 167 | + private String wtsjz2; | |
| 168 | + | |
| 169 | + /* | |
| 170 | + * 问题处理方式3 | |
| 171 | + */ | |
| 172 | + private String wtclfs3; | |
| 173 | + | |
| 174 | + /* | |
| 175 | + * 问题处理方式3名称(枚举 WtclfsEnum) | |
| 176 | + */ | |
| 177 | + private String wtclfs3Desc; | |
| 178 | + | |
| 179 | + /* | |
| 180 | + * 工作安排/同级支持3 | |
| 181 | + */ | |
| 182 | + private String gzap3; | |
| 183 | + | |
| 184 | + /* | |
| 185 | + * 问题升级至3 | |
| 186 | + */ | |
| 187 | + private String wtsjz3; | |
| 188 | + | |
| 189 | + /* | |
| 190 | + * 计划解决时间 | |
| 191 | + */ | |
| 192 | + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") | |
| 193 | + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") | |
| 194 | + private Date jhjjsj; | |
| 195 | + | |
| 196 | + /* | |
| 197 | + * 问题解决时间 | |
| 198 | + */ | |
| 199 | + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") | |
| 200 | + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") | |
| 201 | + private Date tntpvy; | |
| 202 | + | |
| 203 | + /* | |
| 204 | + * 流程实例ID | |
| 205 | + */ | |
| 206 | + private String processInstanceId; | |
| 207 | + | |
| 208 | + /* | |
| 209 | + * 审批状态 | |
| 210 | + */ | |
| 211 | + private String approvalStatus; | |
| 212 | + | |
| 213 | + // ========== 关联实体ID及名称 ========== | |
| 214 | + | |
| 215 | + /* | |
| 216 | + * 工作单位id | |
| 217 | + */ | |
| 218 | + private String gzdw; | |
| 219 | + | |
| 220 | + /* | |
| 221 | + * 工作单位名称 | |
| 222 | + */ | |
| 223 | + private String gzdwName; | |
| 224 | + | |
| 225 | + /* | |
| 226 | + * 工作单位编号 | |
| 227 | + */ | |
| 228 | + private String gzdwCode; | |
| 229 | + | |
| 230 | + /* | |
| 231 | + * 问题责任单位id | |
| 232 | + */ | |
| 233 | + private String wtzrdw; | |
| 234 | + | |
| 235 | + /* | |
| 236 | + * 问题责任单位名称 | |
| 237 | + */ | |
| 238 | + private String wtzrdwName; | |
| 239 | + | |
| 240 | + /* | |
| 241 | + * 问题责任单位编号 | |
| 242 | + */ | |
| 243 | + private String wtzrdwCode; | |
| 244 | + | |
| 245 | + /* | |
| 246 | + * 室组id | |
| 247 | + */ | |
| 248 | + private String sz; | |
| 249 | + | |
| 250 | + /* | |
| 251 | + * 室组名称 | |
| 252 | + */ | |
| 253 | + private String szName; | |
| 254 | + | |
| 255 | + /* | |
| 256 | + * 室组编号 | |
| 257 | + */ | |
| 258 | + private String szCode; | |
| 259 | + | |
| 260 | + /* | |
| 261 | + * 区域id | |
| 262 | + */ | |
| 263 | + private String qy; | |
| 264 | + | |
| 265 | + /* | |
| 266 | + * 区域名称 | |
| 267 | + */ | |
| 268 | + private String qyName; | |
| 269 | + | |
| 270 | + /* | |
| 271 | + * 区域编号 | |
| 272 | + */ | |
| 273 | + private String qyCode; | |
| 274 | + | |
| 275 | + /* | |
| 276 | + * 班组id | |
| 277 | + */ | |
| 278 | + private String bz; | |
| 279 | + | |
| 280 | + /* | |
| 281 | + * 班组名称 | |
| 282 | + */ | |
| 283 | + private String bzName; | |
| 284 | + | |
| 285 | + /* | |
| 286 | + * 班组编号 | |
| 287 | + */ | |
| 288 | + private String bzCode; | |
| 289 | + | |
| 290 | + /* | |
| 291 | + * 问题提出人id | |
| 292 | + */ | |
| 293 | + private String wttcr; | |
| 294 | + | |
| 295 | + /* | |
| 296 | + * 问题提出人姓名 | |
| 297 | + */ | |
| 298 | + private String wttcrName; | |
| 299 | + | |
| 300 | + /* | |
| 301 | + * 问题处理人id | |
| 302 | + */ | |
| 303 | + private String wtclr; | |
| 304 | + | |
| 305 | + /* | |
| 306 | + * 问题处理人姓名 | |
| 307 | + */ | |
| 308 | + private String wtclrName; | |
| 309 | + | |
| 310 | + /* | |
| 311 | + * 问题处理状态编号 | |
| 312 | + */ | |
| 313 | + private String wtclzt; | |
| 314 | + | |
| 315 | + /* | |
| 316 | + * 问题处理状态中文描述 | |
| 317 | + */ | |
| 318 | + private String wtclztDesc; | |
| 319 | +} | ... | ... |
| 1 | +package com.qgutech.qgyun.apaas.sync.cps.dto; | |
| 2 | + | |
| 3 | +import lombok.Getter; | |
| 4 | +import lombok.Setter; | |
| 5 | +import lombok.ToString; | |
| 6 | + | |
| 7 | +import java.io.Serializable; | |
| 8 | + | |
| 9 | +/** | |
| 10 | + * CPS问题按问题来源汇总结果 | |
| 11 | + */ | |
| 12 | +@Getter | |
| 13 | +@Setter | |
| 14 | +@ToString | |
| 15 | +public class CpsProblemSourceSummaryDTO implements Serializable { | |
| 16 | + | |
| 17 | + private static final long serialVersionUID = 1L; | |
| 18 | + | |
| 19 | + /* | |
| 20 | + * 问题来源编号(#1#-开班;#2#-过程验证;#3#-过程确认;#4#-体系健康体检;#5#-单位自检(单位牵头)) | |
| 21 | + */ | |
| 22 | + private String wtly; | |
| 23 | + | |
| 24 | + /* | |
| 25 | + * 问题来源中文名称(枚举 WtlyEnum) | |
| 26 | + */ | |
| 27 | + private String wtlyDesc; | |
| 28 | + | |
| 29 | + /* | |
| 30 | + * 该问题来源下的问题数 | |
| 31 | + */ | |
| 32 | + private Integer count; | |
| 33 | + | |
| 34 | + public CpsProblemSourceSummaryDTO() { | |
| 35 | + } | |
| 36 | + | |
| 37 | + public CpsProblemSourceSummaryDTO(String wtly, String wtlyDesc, Integer count) { | |
| 38 | + this.wtly = wtly; | |
| 39 | + this.wtlyDesc = wtlyDesc; | |
| 40 | + this.count = count; | |
| 41 | + } | |
| 42 | +} | ... | ... |
| 1 | +package com.qgutech.qgyun.apaas.sync.cps.dto; | |
| 2 | + | |
| 3 | +import lombok.Getter; | |
| 4 | +import lombok.Setter; | |
| 5 | +import lombok.ToString; | |
| 6 | + | |
| 7 | +import java.io.Serializable; | |
| 8 | +import java.util.ArrayList; | |
| 9 | +import java.util.List; | |
| 10 | + | |
| 11 | +/** | |
| 12 | + * CPS问题汇总结果(按责任单位 + 处理状态维度) | |
| 13 | + */ | |
| 14 | +@Getter | |
| 15 | +@Setter | |
| 16 | +@ToString | |
| 17 | +public class CpsProblemSummaryDTO implements Serializable { | |
| 18 | + | |
| 19 | + private static final long serialVersionUID = 1L; | |
| 20 | + | |
| 21 | + /* | |
| 22 | + * 责任单位id | |
| 23 | + */ | |
| 24 | + private String wtzrdw; | |
| 25 | + | |
| 26 | + /* | |
| 27 | + * 责任单位名称 | |
| 28 | + */ | |
| 29 | + private String wtzrdwName; | |
| 30 | + | |
| 31 | + /* | |
| 32 | + * 责任单位编号 | |
| 33 | + */ | |
| 34 | + private String wtzrdwCode; | |
| 35 | + | |
| 36 | + /* | |
| 37 | + * 该责任单位下问题总数 | |
| 38 | + */ | |
| 39 | + private Integer totalCount; | |
| 40 | + | |
| 41 | + /* | |
| 42 | + * 各处理状态下的问题数明细 | |
| 43 | + */ | |
| 44 | + private List<StatusCount> statusCounts = new ArrayList<>(); | |
| 45 | + | |
| 46 | + /** | |
| 47 | + * 状态计数明细 | |
| 48 | + */ | |
| 49 | + @Getter | |
| 50 | + @Setter | |
| 51 | + @ToString | |
| 52 | + public static class StatusCount implements Serializable { | |
| 53 | + | |
| 54 | + private static final long serialVersionUID = 1L; | |
| 55 | + | |
| 56 | + /* | |
| 57 | + * 状态编号(#1#-待处理;#2#-处理中;#3#-已关闭;#4#-已逾期) | |
| 58 | + */ | |
| 59 | + private String statusCode; | |
| 60 | + | |
| 61 | + /* | |
| 62 | + * 状态中文描述 | |
| 63 | + */ | |
| 64 | + private String statusDesc; | |
| 65 | + | |
| 66 | + /* | |
| 67 | + * 该状态下的问题数 | |
| 68 | + */ | |
| 69 | + private Integer count; | |
| 70 | + | |
| 71 | + public StatusCount() { | |
| 72 | + } | |
| 73 | + | |
| 74 | + public StatusCount(String statusCode, String statusDesc, Integer count) { | |
| 75 | + this.statusCode = statusCode; | |
| 76 | + this.statusDesc = statusDesc; | |
| 77 | + this.count = count; | |
| 78 | + } | |
| 79 | + } | |
| 80 | +} | ... | ... |
| 1 | +package com.qgutech.qgyun.apaas.sync.cps.enums; | |
| 2 | + | |
| 3 | +import lombok.Getter; | |
| 4 | + | |
| 5 | +/** | |
| 6 | + * C类改善状态枚举 | |
| 7 | + * <p> | |
| 8 | + * 数据库字段 zt 存储编号:#1#-草稿,#2#-已提交,#3#-已否决,#4#-已确认 | |
| 9 | + */ | |
| 10 | +@Getter | |
| 11 | +public enum CImprovementStatusEnum { | |
| 12 | + | |
| 13 | + /** | |
| 14 | + * 草稿 | |
| 15 | + */ | |
| 16 | + DRAFT("#1#", "草稿"), | |
| 17 | + | |
| 18 | + /** | |
| 19 | + * 已提交 | |
| 20 | + */ | |
| 21 | + SUBMITTED("#2#", "已提交"), | |
| 22 | + | |
| 23 | + /** | |
| 24 | + * 已否决 | |
| 25 | + */ | |
| 26 | + REJECTED("#3#", "已否决"), | |
| 27 | + | |
| 28 | + /** | |
| 29 | + * 已确认 | |
| 30 | + */ | |
| 31 | + CONFIRMED("#4#", "已确认"); | |
| 32 | + | |
| 33 | + /** | |
| 34 | + * 数据库中存储的编号 | |
| 35 | + */ | |
| 36 | + private final String code; | |
| 37 | + | |
| 38 | + /** | |
| 39 | + * 中文描述 | |
| 40 | + */ | |
| 41 | + private final String desc; | |
| 42 | + | |
| 43 | + CImprovementStatusEnum(String code, String desc) { | |
| 44 | + this.code = code; | |
| 45 | + this.desc = desc; | |
| 46 | + } | |
| 47 | + | |
| 48 | + /** | |
| 49 | + * 根据编号获取枚举 | |
| 50 | + * | |
| 51 | + * @param code 编号 | |
| 52 | + * @return 枚举实例,未找到返回 null | |
| 53 | + */ | |
| 54 | + public static CImprovementStatusEnum fromCode(String code) { | |
| 55 | + if (code == null) { | |
| 56 | + return null; | |
| 57 | + } | |
| 58 | + for (CImprovementStatusEnum status : values()) { | |
| 59 | + if (status.code.equals(code)) { | |
| 60 | + return status; | |
| 61 | + } | |
| 62 | + } | |
| 63 | + if (!code.startsWith("#")) { | |
| 64 | + String wrapped = "#" + code + "#"; | |
| 65 | + for (CImprovementStatusEnum status : values()) { | |
| 66 | + if (status.code.equals(wrapped)) { | |
| 67 | + return status; | |
| 68 | + } | |
| 69 | + } | |
| 70 | + } | |
| 71 | + return null; | |
| 72 | + } | |
| 73 | + | |
| 74 | + /** | |
| 75 | + * 根据编号获取中文描述 | |
| 76 | + * | |
| 77 | + * @param code 编号 | |
| 78 | + * @return 中文描述,未找到返回原编号 | |
| 79 | + */ | |
| 80 | + public static String getDescByCode(String code) { | |
| 81 | + CImprovementStatusEnum status = fromCode(code); | |
| 82 | + return status != null ? status.getDesc() : code; | |
| 83 | + } | |
| 84 | +} | ... | ... |
| 1 | +package com.qgutech.qgyun.apaas.sync.cps.enums; | |
| 2 | + | |
| 3 | +import lombok.Getter; | |
| 4 | + | |
| 5 | +/** | |
| 6 | + * 问题层级枚举 | |
| 7 | + * <p> | |
| 8 | + * 数据库字段 mbghlk 存储编号: | |
| 9 | + * #0#-0,#1#-1,#2#-2,#3#-3,#4#-4,#5#-5 | |
| 10 | + */ | |
| 11 | +@Getter | |
| 12 | +public enum MbghlkEnum { | |
| 13 | + | |
| 14 | + LEVEL_0("#0#", "0"), | |
| 15 | + LEVEL_1("#1#", "1"), | |
| 16 | + LEVEL_2("#2#", "2"), | |
| 17 | + LEVEL_3("#3#", "3"), | |
| 18 | + LEVEL_4("#4#", "4"), | |
| 19 | + LEVEL_5("#5#", "5"); | |
| 20 | + | |
| 21 | + private final String code; | |
| 22 | + private final String desc; | |
| 23 | + | |
| 24 | + MbghlkEnum(String code, String desc) { | |
| 25 | + this.code = code; | |
| 26 | + this.desc = desc; | |
| 27 | + } | |
| 28 | + | |
| 29 | + public static MbghlkEnum fromCode(String code) { | |
| 30 | + if (code == null) { | |
| 31 | + return null; | |
| 32 | + } | |
| 33 | + for (MbghlkEnum item : values()) { | |
| 34 | + if (item.code.equals(code)) { | |
| 35 | + return item; | |
| 36 | + } | |
| 37 | + } | |
| 38 | + if (!code.startsWith("#")) { | |
| 39 | + String wrapped = "#" + code + "#"; | |
| 40 | + for (MbghlkEnum item : values()) { | |
| 41 | + if (item.code.equals(wrapped)) { | |
| 42 | + return item; | |
| 43 | + } | |
| 44 | + } | |
| 45 | + } | |
| 46 | + return null; | |
| 47 | + } | |
| 48 | + | |
| 49 | + public static String getDescByCode(String code) { | |
| 50 | + MbghlkEnum item = fromCode(code); | |
| 51 | + return item != null ? item.getDesc() : code; | |
| 52 | + } | |
| 53 | +} | ... | ... |
| ... | ... | @@ -70,6 +70,15 @@ public enum QuarterEnum { |
| 70 | 70 | return quarter; |
| 71 | 71 | } |
| 72 | 72 | } |
| 73 | + if (!code.startsWith("#")) { | |
| 74 | + code = "#" + code + "#"; | |
| 75 | + for (QuarterEnum quarter : values()) { | |
| 76 | + if (quarter.code.equals(code)) { | |
| 77 | + return quarter; | |
| 78 | + } | |
| 79 | + } | |
| 80 | + } | |
| 81 | + | |
| 73 | 82 | return null; |
| 74 | 83 | } |
| 75 | 84 | } | ... | ... |
| 1 | +package com.qgutech.qgyun.apaas.sync.cps.enums; | |
| 2 | + | |
| 3 | +import lombok.Getter; | |
| 4 | + | |
| 5 | +/** | |
| 6 | + * 人员类别枚举 | |
| 7 | + * <p> | |
| 8 | + * 数据库字段 rylb 存储编号: | |
| 9 | + * #1#-区长,#2#-班长,#3#-高级经理,#4#-经理,#5#-主管,#6#-专家,#7#-一般员工 | |
| 10 | + */ | |
| 11 | +@Getter | |
| 12 | +public enum RylbEnum { | |
| 13 | + | |
| 14 | + QUZHANG("#1#", "区长"), | |
| 15 | + BANZHANG("#2#", "班长"), | |
| 16 | + GAOJI_JINGLI("#3#", "高级经理"), | |
| 17 | + JINGLI("#4#", "经理"), | |
| 18 | + ZHUGUAN("#5#", "主管"), | |
| 19 | + ZHUANJIA("#6#", "专家"), | |
| 20 | + YIBAN_YUANGONG("#7#", "一般员工"); | |
| 21 | + | |
| 22 | + private final String code; | |
| 23 | + private final String desc; | |
| 24 | + | |
| 25 | + RylbEnum(String code, String desc) { | |
| 26 | + this.code = code; | |
| 27 | + this.desc = desc; | |
| 28 | + } | |
| 29 | + | |
| 30 | + public static RylbEnum fromCode(String code) { | |
| 31 | + if (code == null) { | |
| 32 | + return null; | |
| 33 | + } | |
| 34 | + for (RylbEnum item : values()) { | |
| 35 | + if (item.code.equals(code)) { | |
| 36 | + return item; | |
| 37 | + } | |
| 38 | + } | |
| 39 | + if (!code.startsWith("#")) { | |
| 40 | + String wrapped = "#" + code + "#"; | |
| 41 | + for (RylbEnum item : values()) { | |
| 42 | + if (item.code.equals(wrapped)) { | |
| 43 | + return item; | |
| 44 | + } | |
| 45 | + } | |
| 46 | + } | |
| 47 | + return null; | |
| 48 | + } | |
| 49 | + | |
| 50 | + public static String getDescByCode(String code) { | |
| 51 | + RylbEnum item = fromCode(code); | |
| 52 | + return item != null ? item.getDesc() : code; | |
| 53 | + } | |
| 54 | +} | ... | ... |
| 1 | +package com.qgutech.qgyun.apaas.sync.cps.enums; | |
| 2 | + | |
| 3 | +import lombok.Getter; | |
| 4 | + | |
| 5 | +/** | |
| 6 | + * 6S分类枚举 | |
| 7 | + * <p> | |
| 8 | + * 数据库字段 sfl 存储编号: | |
| 9 | + * #1#-整理,#2#-整顿,#3#-清洁,#4#-清扫,#5#-素养,#6#-安全 | |
| 10 | + */ | |
| 11 | +@Getter | |
| 12 | +public enum SflEnum { | |
| 13 | + | |
| 14 | + ZHENGLI("#1#", "整理"), | |
| 15 | + ZHENDUN("#2#", "整顿"), | |
| 16 | + QINGJIE("#3#", "清洁"), | |
| 17 | + QINGSAO("#4#", "清扫"), | |
| 18 | + SUYANG("#5#", "素养"), | |
| 19 | + ANQUAN("#6#", "安全"); | |
| 20 | + | |
| 21 | + private final String code; | |
| 22 | + private final String desc; | |
| 23 | + | |
| 24 | + SflEnum(String code, String desc) { | |
| 25 | + this.code = code; | |
| 26 | + this.desc = desc; | |
| 27 | + } | |
| 28 | + | |
| 29 | + public static SflEnum fromCode(String code) { | |
| 30 | + if (code == null) { | |
| 31 | + return null; | |
| 32 | + } | |
| 33 | + for (SflEnum item : values()) { | |
| 34 | + if (item.code.equals(code)) { | |
| 35 | + return item; | |
| 36 | + } | |
| 37 | + } | |
| 38 | + if (!code.startsWith("#")) { | |
| 39 | + String wrapped = "#" + code + "#"; | |
| 40 | + for (SflEnum item : values()) { | |
| 41 | + if (item.code.equals(wrapped)) { | |
| 42 | + return item; | |
| 43 | + } | |
| 44 | + } | |
| 45 | + } | |
| 46 | + return null; | |
| 47 | + } | |
| 48 | + | |
| 49 | + public static String getDescByCode(String code) { | |
| 50 | + SflEnum item = fromCode(code); | |
| 51 | + return item != null ? item.getDesc() : code; | |
| 52 | + } | |
| 53 | +} | ... | ... |
| ... | ... | @@ -58,6 +58,14 @@ public enum WorkshopStatusEnum { |
| 58 | 58 | return status; |
| 59 | 59 | } |
| 60 | 60 | } |
| 61 | + if (!code.startsWith("#")) { | |
| 62 | + code = "#" + code + "#"; | |
| 63 | + for (WorkshopStatusEnum status : values()) { | |
| 64 | + if (status.code.equals(code)) { | |
| 65 | + return status; | |
| 66 | + } | |
| 67 | + } | |
| 68 | + } | |
| 61 | 69 | return null; |
| 62 | 70 | } |
| 63 | 71 | ... | ... |
| 1 | +package com.qgutech.qgyun.apaas.sync.cps.enums; | |
| 2 | + | |
| 3 | +import lombok.Getter; | |
| 4 | + | |
| 5 | +/** | |
| 6 | + * 问题处理方式枚举 | |
| 7 | + * <p> | |
| 8 | + * 数据库字段 wtclfs / wtclfs2 / wtclfs3 存储编号: | |
| 9 | + * #1#-自己解决,#2#-工作安排/同级支持,#3#-问题升级至 | |
| 10 | + */ | |
| 11 | +@Getter | |
| 12 | +public enum WtclfsEnum { | |
| 13 | + | |
| 14 | + ZIJI_JIEJUE("#1#", "自己解决"), | |
| 15 | + GONGZUO_ANPAI("#2#", "工作安排/同级支持"), | |
| 16 | + WENTI_SHENGJI("#3#", "问题升级至"); | |
| 17 | + | |
| 18 | + private final String code; | |
| 19 | + private final String desc; | |
| 20 | + | |
| 21 | + WtclfsEnum(String code, String desc) { | |
| 22 | + this.code = code; | |
| 23 | + this.desc = desc; | |
| 24 | + } | |
| 25 | + | |
| 26 | + public static WtclfsEnum fromCode(String code) { | |
| 27 | + if (code == null) { | |
| 28 | + return null; | |
| 29 | + } | |
| 30 | + for (WtclfsEnum item : values()) { | |
| 31 | + if (item.code.equals(code)) { | |
| 32 | + return item; | |
| 33 | + } | |
| 34 | + } | |
| 35 | + if (!code.startsWith("#")) { | |
| 36 | + String wrapped = "#" + code + "#"; | |
| 37 | + for (WtclfsEnum item : values()) { | |
| 38 | + if (item.code.equals(wrapped)) { | |
| 39 | + return item; | |
| 40 | + } | |
| 41 | + } | |
| 42 | + } | |
| 43 | + return null; | |
| 44 | + } | |
| 45 | + | |
| 46 | + public static String getDescByCode(String code) { | |
| 47 | + WtclfsEnum item = fromCode(code); | |
| 48 | + return item != null ? item.getDesc() : code; | |
| 49 | + } | |
| 50 | +} | ... | ... |
| 1 | +package com.qgutech.qgyun.apaas.sync.cps.enums; | |
| 2 | + | |
| 3 | +import lombok.Getter; | |
| 4 | + | |
| 5 | +/** | |
| 6 | + * 问题处理状态枚举 | |
| 7 | + * <p> | |
| 8 | + * 数据库字段 wtclzt 存储编号:#1#-待处理,#2#-处理中,#3#-已关闭,#4#-已逾期 | |
| 9 | + */ | |
| 10 | +@Getter | |
| 11 | +public enum WtclztEnum { | |
| 12 | + | |
| 13 | + /** | |
| 14 | + * 待处理 | |
| 15 | + */ | |
| 16 | + PENDING("#1#", "待处理"), | |
| 17 | + | |
| 18 | + /** | |
| 19 | + * 处理中 | |
| 20 | + */ | |
| 21 | + PROCESSING("#2#", "处理中"), | |
| 22 | + | |
| 23 | + /** | |
| 24 | + * 已关闭 | |
| 25 | + */ | |
| 26 | + CLOSED("#3#", "已关闭"), | |
| 27 | + | |
| 28 | + /** | |
| 29 | + * 已逾期 | |
| 30 | + */ | |
| 31 | + OVERDUE("#4#", "已逾期"); | |
| 32 | + | |
| 33 | + /** | |
| 34 | + * 数据库中存储的编号 | |
| 35 | + */ | |
| 36 | + private final String code; | |
| 37 | + | |
| 38 | + /** | |
| 39 | + * 中文描述 | |
| 40 | + */ | |
| 41 | + private final String desc; | |
| 42 | + | |
| 43 | + WtclztEnum(String code, String desc) { | |
| 44 | + this.code = code; | |
| 45 | + this.desc = desc; | |
| 46 | + } | |
| 47 | + | |
| 48 | + /** | |
| 49 | + * 根据编号获取枚举 | |
| 50 | + * | |
| 51 | + * @param code 编号 | |
| 52 | + * @return 枚举实例,未找到返回 null | |
| 53 | + */ | |
| 54 | + public static WtclztEnum fromCode(String code) { | |
| 55 | + if (code == null) { | |
| 56 | + return null; | |
| 57 | + } | |
| 58 | + for (WtclztEnum status : values()) { | |
| 59 | + if (status.code.equals(code)) { | |
| 60 | + return status; | |
| 61 | + } | |
| 62 | + } | |
| 63 | + if (!code.startsWith("#")) { | |
| 64 | + String wrapped = "#" + code + "#"; | |
| 65 | + for (WtclztEnum status : values()) { | |
| 66 | + if (status.code.equals(wrapped)) { | |
| 67 | + return status; | |
| 68 | + } | |
| 69 | + } | |
| 70 | + } | |
| 71 | + return null; | |
| 72 | + } | |
| 73 | + | |
| 74 | + /** | |
| 75 | + * 根据编号获取中文描述 | |
| 76 | + * | |
| 77 | + * @param code 编号 | |
| 78 | + * @return 中文描述,未找到返回原编号 | |
| 79 | + */ | |
| 80 | + public static String getDescByCode(String code) { | |
| 81 | + WtclztEnum status = fromCode(code); | |
| 82 | + return status != null ? status.getDesc() : code; | |
| 83 | + } | |
| 84 | +} | ... | ... |
| 1 | +package com.qgutech.qgyun.apaas.sync.cps.enums; | |
| 2 | + | |
| 3 | +import lombok.Getter; | |
| 4 | + | |
| 5 | +/** | |
| 6 | + * 问题类别枚举 | |
| 7 | + * <p> | |
| 8 | + * 数据库字段 wtlb 存储编号: | |
| 9 | + * #1#-方针展开,#2#-标准化作业,#3#-目视化,#4#-时间数据处理,#5#-过程确认,#6#-持续改善 | |
| 10 | + */ | |
| 11 | +@Getter | |
| 12 | +public enum WtlbEnum { | |
| 13 | + | |
| 14 | + FANGZHEN_ZHANKAI("#1#", "方针展开"), | |
| 15 | + BIAOZHUNHUA_ZUOYE("#2#", "标准化作业"), | |
| 16 | + MUSHIHUA("#3#", "目视化"), | |
| 17 | + SHIJIAN_SHUJU_CHULI("#4#", "时间数据处理"), | |
| 18 | + GUOCHENG_QUEREN("#5#", "过程确认"), | |
| 19 | + CHIXU_GAISHAN("#6#", "持续改善"); | |
| 20 | + | |
| 21 | + private final String code; | |
| 22 | + private final String desc; | |
| 23 | + | |
| 24 | + WtlbEnum(String code, String desc) { | |
| 25 | + this.code = code; | |
| 26 | + this.desc = desc; | |
| 27 | + } | |
| 28 | + | |
| 29 | + public static WtlbEnum fromCode(String code) { | |
| 30 | + if (code == null) { | |
| 31 | + return null; | |
| 32 | + } | |
| 33 | + for (WtlbEnum item : values()) { | |
| 34 | + if (item.code.equals(code)) { | |
| 35 | + return item; | |
| 36 | + } | |
| 37 | + } | |
| 38 | + if (!code.startsWith("#")) { | |
| 39 | + String wrapped = "#" + code + "#"; | |
| 40 | + for (WtlbEnum item : values()) { | |
| 41 | + if (item.code.equals(wrapped)) { | |
| 42 | + return item; | |
| 43 | + } | |
| 44 | + } | |
| 45 | + } | |
| 46 | + return null; | |
| 47 | + } | |
| 48 | + | |
| 49 | + public static String getDescByCode(String code) { | |
| 50 | + WtlbEnum item = fromCode(code); | |
| 51 | + return item != null ? item.getDesc() : code; | |
| 52 | + } | |
| 53 | +} | ... | ... |
| 1 | +package com.qgutech.qgyun.apaas.sync.cps.enums; | |
| 2 | + | |
| 3 | +import lombok.Getter; | |
| 4 | + | |
| 5 | +/** | |
| 6 | + * 问题来源枚举 | |
| 7 | + * <p> | |
| 8 | + * 数据库字段 wtly 存储编号: | |
| 9 | + * #1#-开班,#2#-过程验证,#3#-过程确认,#4#-体系健康体检,#5#-单位自检(单位牵头) | |
| 10 | + */ | |
| 11 | +@Getter | |
| 12 | +public enum WtlyEnum { | |
| 13 | + | |
| 14 | + /** | |
| 15 | + * 开班 | |
| 16 | + */ | |
| 17 | + KAIBAN("#1#", "开班"), | |
| 18 | + | |
| 19 | + /** | |
| 20 | + * 过程验证 | |
| 21 | + */ | |
| 22 | + GUOCHENG_YANZHENG("#2#", "过程验证"), | |
| 23 | + | |
| 24 | + /** | |
| 25 | + * 过程确认 | |
| 26 | + */ | |
| 27 | + GUOCHENG_QUEREN("#3#", "过程确认"), | |
| 28 | + | |
| 29 | + /** | |
| 30 | + * 体系健康体检 | |
| 31 | + */ | |
| 32 | + TIXI_JIANKANG_TIJIAN("#4#", "体系健康体检"), | |
| 33 | + | |
| 34 | + /** | |
| 35 | + * 单位自检(单位牵头) | |
| 36 | + */ | |
| 37 | + DANWEI_ZIJIAN("#5#", "单位自检(单位牵头)"); | |
| 38 | + | |
| 39 | + private final String code; | |
| 40 | + private final String desc; | |
| 41 | + | |
| 42 | + WtlyEnum(String code, String desc) { | |
| 43 | + this.code = code; | |
| 44 | + this.desc = desc; | |
| 45 | + } | |
| 46 | + | |
| 47 | + public static WtlyEnum fromCode(String code) { | |
| 48 | + if (code == null) { | |
| 49 | + return null; | |
| 50 | + } | |
| 51 | + for (WtlyEnum item : values()) { | |
| 52 | + if (item.code.equals(code)) { | |
| 53 | + return item; | |
| 54 | + } | |
| 55 | + } | |
| 56 | + if (!code.startsWith("#")) { | |
| 57 | + String wrapped = "#" + code + "#"; | |
| 58 | + for (WtlyEnum item : values()) { | |
| 59 | + if (item.code.equals(wrapped)) { | |
| 60 | + return item; | |
| 61 | + } | |
| 62 | + } | |
| 63 | + } | |
| 64 | + return null; | |
| 65 | + } | |
| 66 | + | |
| 67 | + public static String getDescByCode(String code) { | |
| 68 | + WtlyEnum item = fromCode(code); | |
| 69 | + return item != null ? item.getDesc() : code; | |
| 70 | + } | |
| 71 | +} | ... | ... |
| 1 | +package com.qgutech.qgyun.apaas.sync.cps.enums; | |
| 2 | + | |
| 3 | +import lombok.Getter; | |
| 4 | + | |
| 5 | +/** | |
| 6 | + * 问题性质枚举 | |
| 7 | + * <p> | |
| 8 | + * 数据库字段 wtxz 存储编号: | |
| 9 | + * #1#-无标准,#2#-未执行标准,#3#-标准不足 | |
| 10 | + */ | |
| 11 | +@Getter | |
| 12 | +public enum WtxzEnum { | |
| 13 | + | |
| 14 | + WU_BIAOZHUN("#1#", "无标准"), | |
| 15 | + WEI_ZHIXING_BIAOZHUN("#2#", "未执行标准"), | |
| 16 | + BIAOZHUN_BUZU("#3#", "标准不足"); | |
| 17 | + | |
| 18 | + private final String code; | |
| 19 | + private final String desc; | |
| 20 | + | |
| 21 | + WtxzEnum(String code, String desc) { | |
| 22 | + this.code = code; | |
| 23 | + this.desc = desc; | |
| 24 | + } | |
| 25 | + | |
| 26 | + public static WtxzEnum fromCode(String code) { | |
| 27 | + if (code == null) { | |
| 28 | + return null; | |
| 29 | + } | |
| 30 | + for (WtxzEnum item : values()) { | |
| 31 | + if (item.code.equals(code)) { | |
| 32 | + return item; | |
| 33 | + } | |
| 34 | + } | |
| 35 | + if (!code.startsWith("#")) { | |
| 36 | + String wrapped = "#" + code + "#"; | |
| 37 | + for (WtxzEnum item : values()) { | |
| 38 | + if (item.code.equals(wrapped)) { | |
| 39 | + return item; | |
| 40 | + } | |
| 41 | + } | |
| 42 | + } | |
| 43 | + return null; | |
| 44 | + } | |
| 45 | + | |
| 46 | + public static String getDescByCode(String code) { | |
| 47 | + WtxzEnum item = fromCode(code); | |
| 48 | + return item != null ? item.getDesc() : code; | |
| 49 | + } | |
| 50 | +} | ... | ... |
| 1 | 1 | package com.qgutech.qgyun.apaas.sync.cps.model; |
| 2 | 2 | |
| 3 | 3 | import com.qgutech.qgyun.framework.database.model.BaseCorpModel; |
| 4 | -import io.swagger.annotations.ApiModel; | |
| 5 | -import io.swagger.annotations.ApiModelProperty; | |
| 6 | 4 | import lombok.Getter; |
| 7 | 5 | import lombok.Setter; |
| 8 | 6 | import lombok.ToString; | ... | ... |
| 1 | 1 | package com.qgutech.qgyun.apaas.sync.cps.model; |
| 2 | 2 | |
| 3 | 3 | import com.qgutech.qgyun.framework.database.model.BaseCorpModel; |
| 4 | -import io.swagger.annotations.ApiModel; | |
| 5 | -import io.swagger.annotations.ApiModelProperty; | |
| 6 | 4 | import lombok.Getter; |
| 7 | 5 | import lombok.Setter; |
| 8 | 6 | import lombok.ToString; |
| ... | ... | @@ -15,28 +13,41 @@ import javax.persistence.Table; |
| 15 | 13 | @Getter |
| 16 | 14 | @Setter |
| 17 | 15 | @ToString |
| 18 | -@ApiModel(value = "Area", description = "区域信息") | |
| 19 | 16 | @Table(name = "t_auto_hfca_ixzvok_cnfeci") |
| 20 | 17 | public class Area extends BaseCorpModel { |
| 21 | 18 | |
| 22 | - @ApiModelProperty(value = "区域名称") | |
| 19 | + /* | |
| 20 | + * 区域名称 | |
| 21 | + */ | |
| 23 | 22 | private String qymc; |
| 24 | 23 | |
| 25 | - @ApiModelProperty(value = "区域编号") | |
| 24 | + /* | |
| 25 | + * 区域编号 | |
| 26 | + */ | |
| 26 | 27 | private String qybh; |
| 27 | 28 | |
| 28 | - @ApiModelProperty(value = "区域负责人") | |
| 29 | + /* | |
| 30 | + * 区域负责人 | |
| 31 | + */ | |
| 29 | 32 | private String qyfzr; |
| 30 | 33 | |
| 31 | - @ApiModelProperty(value = "所属车间") | |
| 34 | + /* | |
| 35 | + * 所属车间 | |
| 36 | + */ | |
| 32 | 37 | private String sscj; |
| 33 | 38 | |
| 34 | - @ApiModelProperty(value = "所属室组") | |
| 39 | + /* | |
| 40 | + * 所属室组 | |
| 41 | + */ | |
| 35 | 42 | private String sssz; |
| 36 | 43 | |
| 37 | - @ApiModelProperty(value = "所属组织") | |
| 44 | + /* | |
| 45 | + * 所属组织 | |
| 46 | + */ | |
| 38 | 47 | private String sszz; |
| 39 | 48 | |
| 40 | - @ApiModelProperty(value = "状态") | |
| 49 | + /* | |
| 50 | + * 状态 | |
| 51 | + */ | |
| 41 | 52 | private String zt; |
| 42 | 53 | } | ... | ... |
| 1 | 1 | package com.qgutech.qgyun.apaas.sync.cps.model; |
| 2 | 2 | |
| 3 | 3 | import com.qgutech.qgyun.framework.database.model.BaseCorpModel; |
| 4 | -import io.swagger.annotations.ApiModel; | |
| 5 | -import io.swagger.annotations.ApiModelProperty; | |
| 6 | 4 | import lombok.Getter; |
| 7 | 5 | import lombok.Setter; |
| 8 | 6 | import lombok.ToString; |
| ... | ... | @@ -15,16 +13,14 @@ import javax.persistence.Table; |
| 15 | 13 | @Getter |
| 16 | 14 | @Setter |
| 17 | 15 | @ToString |
| 18 | -@ApiModel(value = "CImprovement", description = "C类改善") | |
| 19 | 16 | @Table(name = "t_auto_hfca_ixzvok_clgsgl") |
| 20 | 17 | public class CImprovement extends BaseCorpModel { |
| 21 | 18 | |
| 22 | - @ApiModelProperty(value = "yh") | |
| 23 | - private String yh; | |
| 19 | + public static final String FQR = "fqr"; | |
| 24 | 20 | |
| 25 | - /* | |
| 26 | - * 员工号 | |
| 27 | - */ | |
| 21 | + /* | |
| 22 | + * 员工号 | |
| 23 | + */ | |
| 28 | 24 | private String ygh; |
| 29 | 25 | |
| 30 | 26 | /* |
| ... | ... | @@ -42,11 +38,8 @@ public class CImprovement extends BaseCorpModel { |
| 42 | 38 | */ |
| 43 | 39 | private String bm; |
| 44 | 40 | |
| 45 | - @ApiModelProperty(value = "szqymc") | |
| 46 | - private String szqymc; | |
| 47 | - | |
| 48 | 41 | /* |
| 49 | - *是否问题类改善 | |
| 42 | + * 是否问题类改善 | |
| 50 | 43 | */ |
| 51 | 44 | private Boolean sfwtlg; |
| 52 | 45 | |
| ... | ... | @@ -71,7 +64,7 @@ public class CImprovement extends BaseCorpModel { |
| 71 | 64 | private String qzqr; |
| 72 | 65 | |
| 73 | 66 | /* |
| 74 | - *改善员确认-组织用户id | |
| 67 | + * 改善员确认-组织用户id | |
| 75 | 68 | */ |
| 76 | 69 | private String gsyqr; |
| 77 | 70 | |
| ... | ... | @@ -81,7 +74,7 @@ public class CImprovement extends BaseCorpModel { |
| 81 | 74 | private Boolean sftsyxal; |
| 82 | 75 | |
| 83 | 76 | /* |
| 84 | - * 状态 | |
| 77 | + * 状态 #1#-草稿;#2#-已提交;#3#-已否决;#4#-已确认; | |
| 85 | 78 | */ |
| 86 | 79 | private String zt; |
| 87 | 80 | |
| ... | ... | @@ -105,10 +98,14 @@ public class CImprovement extends BaseCorpModel { |
| 105 | 98 | */ |
| 106 | 99 | private String szmc; |
| 107 | 100 | |
| 108 | - @ApiModelProperty(value = "流程实例ID") | |
| 101 | + /* | |
| 102 | + * 流程实例ID | |
| 103 | + */ | |
| 109 | 104 | private String processInstanceId; |
| 110 | 105 | |
| 111 | - @ApiModelProperty(value = "审批状态") | |
| 106 | + /* | |
| 107 | + * 审批状态 | |
| 108 | + */ | |
| 112 | 109 | private String approvalStatus; |
| 113 | 110 | |
| 114 | 111 | /* | ... | ... |
| 1 | 1 | package com.qgutech.qgyun.apaas.sync.cps.model; |
| 2 | 2 | |
| 3 | - | |
| 4 | 3 | import com.fasterxml.jackson.annotation.JsonFormat; |
| 5 | -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; | |
| 6 | -import com.fasterxml.jackson.databind.annotation.JsonSerialize; | |
| 7 | -import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; | |
| 8 | -import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; | |
| 9 | 4 | import com.qgutech.qgyun.framework.database.model.BaseCorpModel; |
| 10 | 5 | import lombok.Getter; |
| 11 | 6 | import lombok.Setter; |
| ... | ... | @@ -13,7 +8,6 @@ import lombok.ToString; |
| 13 | 8 | import org.springframework.format.annotation.DateTimeFormat; |
| 14 | 9 | |
| 15 | 10 | import javax.persistence.Table; |
| 16 | -import java.time.LocalDateTime; | |
| 17 | 11 | import java.util.Date; |
| 18 | 12 | |
| 19 | 13 | /** |
| ... | ... | @@ -25,6 +19,10 @@ import java.util.Date; |
| 25 | 19 | @Table(name = "t_auto_hfca_ixzvok_jhzvno") |
| 26 | 20 | public class CImprovementTarget extends BaseCorpModel { |
| 27 | 21 | |
| 22 | + public static final String YEAR = "year"; | |
| 23 | + public static final String DWCJ = "dwcj"; | |
| 24 | + public static final String SZXX = "szxx"; | |
| 25 | + | |
| 28 | 26 | /* |
| 29 | 27 | * 年份 |
| 30 | 28 | */ | ... | ... |
| 1 | 1 | package com.qgutech.qgyun.apaas.sync.cps.model; |
| 2 | 2 | |
| 3 | 3 | import com.qgutech.qgyun.framework.database.model.BaseCorpModel; |
| 4 | -import io.swagger.annotations.ApiModel; | |
| 5 | -import io.swagger.annotations.ApiModelProperty; | |
| 6 | 4 | import lombok.Getter; |
| 7 | 5 | import lombok.Setter; |
| 8 | 6 | import lombok.ToString; |
| ... | ... | @@ -16,121 +14,182 @@ import java.util.Date; |
| 16 | 14 | @Getter |
| 17 | 15 | @Setter |
| 18 | 16 | @ToString |
| 19 | -@ApiModel(value = "CpsProblem", description = "CPS体系问题记录信息") | |
| 20 | 17 | @Table(name = "t_auto_hfca_ixzvok_cpstxw") |
| 21 | 18 | public class CpsProblem extends BaseCorpModel { |
| 22 | 19 | |
| 23 | - @ApiModelProperty(value = "问题编号") | |
| 20 | + public static final String JHJJSJ = "jhjjsj"; | |
| 21 | + public static final String GZDW = "gzdw"; | |
| 22 | + public static final String WTZRDW = "wtzrdw"; | |
| 23 | + public static final String WTCLZT = "wtclzt"; | |
| 24 | + public static final String WTLY = "wtly"; | |
| 25 | + | |
| 26 | + /* | |
| 27 | + * 问题编号 | |
| 28 | + */ | |
| 24 | 29 | private String wtbh; |
| 25 | 30 | |
| 26 | - @ApiModelProperty(value = "问题来源") | |
| 31 | + /* | |
| 32 | + * 问题来源:#1#-开班;#2#-过程验证;#3#-过程确认;#4#-体系健康体检;#5#-单位自检(单位牵头); | |
| 33 | + */ | |
| 27 | 34 | private String wtly; |
| 28 | 35 | |
| 29 | - @ApiModelProperty(value = "问题提出人") | |
| 36 | + /* | |
| 37 | + * 问题提出人 | |
| 38 | + */ | |
| 30 | 39 | private String wttcr; |
| 31 | 40 | |
| 32 | - @ApiModelProperty(value = "工作单位") | |
| 41 | + /* | |
| 42 | + * 工作单位 | |
| 43 | + */ | |
| 33 | 44 | private String gzdw; |
| 34 | 45 | |
| 35 | - @ApiModelProperty(value = "所在区域名称") | |
| 36 | - private String szqymc; | |
| 37 | - | |
| 38 | - @ApiModelProperty(value = "人员类别") | |
| 46 | + /* | |
| 47 | + * 人员类别:#1#-区长;#2#-班长;#3#-高级经理;#4#-经理;#5#-主管;#6#-专家;#7#-一般员工; | |
| 48 | + */ | |
| 39 | 49 | private String rylb; |
| 40 | 50 | |
| 41 | - @ApiModelProperty(value = "问题描述") | |
| 51 | + /* | |
| 52 | + * 问题描述 | |
| 53 | + */ | |
| 42 | 54 | private String wtms; |
| 43 | 55 | |
| 44 | - @ApiModelProperty(value = "问题单位") | |
| 45 | - private String wtdw; | |
| 56 | + /* | |
| 57 | + * 问题责任单位 | |
| 58 | + */ | |
| 59 | + private String wtzrdw; | |
| 46 | 60 | |
| 47 | - @ApiModelProperty(value = "问题附件") | |
| 61 | + /* | |
| 62 | + * 问题附件 | |
| 63 | + */ | |
| 48 | 64 | private String wtfj; |
| 49 | 65 | |
| 50 | - @ApiModelProperty(value = "问题所属板块") | |
| 66 | + /* | |
| 67 | + * 问题所属板块 | |
| 68 | + */ | |
| 51 | 69 | private String wtssbk; |
| 52 | 70 | |
| 53 | - @ApiModelProperty(value = "问题类别") | |
| 71 | + /* | |
| 72 | + * 问题类别:#1#-方针展开;#2#-标准化作业;#3#-目视化;#4#-时间数据处理;#5#-过程确认;#6#-持续改善; | |
| 73 | + */ | |
| 54 | 74 | private String wtlb; |
| 55 | 75 | |
| 56 | - @ApiModelProperty(value = "问题性质") | |
| 76 | + /* | |
| 77 | + * 问题性质:#1#-无标准;#2#-未执行标准;#3#-标准不足; | |
| 78 | + */ | |
| 57 | 79 | private String wtxz; |
| 58 | 80 | |
| 59 | - @ApiModelProperty(value = "sfl") | |
| 81 | + /* | |
| 82 | + * 6S分类:#1#-整理;#2#-整顿;#3#-清洁;#4#-清扫;#5#-素养;#6#-安全; | |
| 83 | + */ | |
| 60 | 84 | private String sfl; |
| 61 | 85 | |
| 62 | - @ApiModelProperty(value = "问题是否关闭") | |
| 86 | + /* | |
| 87 | + * 问题是否关闭 | |
| 88 | + */ | |
| 63 | 89 | private Boolean wtsfgb; |
| 64 | 90 | |
| 65 | - @ApiModelProperty(value = "室组") | |
| 91 | + /* | |
| 92 | + * 室组 | |
| 93 | + */ | |
| 66 | 94 | private String sz; |
| 67 | 95 | |
| 68 | - @ApiModelProperty(value = "mbghlk") | |
| 96 | + /* | |
| 97 | + * 问题层级-#1#-1;#2#-2;#3#-3;#4#-4;#5#-5;#0#-0; | |
| 98 | + */ | |
| 69 | 99 | private String mbghlk; |
| 70 | 100 | |
| 71 | - @ApiModelProperty(value = "问题处理方式") | |
| 101 | + /* | |
| 102 | + * 问题处理方式:#1#-自己解决;#2#-工作安排\同级支持;#3#-问题升级至; | |
| 103 | + */ | |
| 72 | 104 | private String wtclfs; |
| 73 | 105 | |
| 74 | - @ApiModelProperty(value = "tntpvy") | |
| 106 | + /* | |
| 107 | + * 问题解决时间 | |
| 108 | + */ | |
| 75 | 109 | private Date tntpvy; |
| 76 | 110 | |
| 77 | - @ApiModelProperty(value = "gzap") | |
| 111 | + /* | |
| 112 | + * 工作安排/同级支持 | |
| 113 | + */ | |
| 78 | 114 | private String gzap; |
| 79 | 115 | |
| 80 | - @ApiModelProperty(value = "wtsjz") | |
| 116 | + /* | |
| 117 | + * 问题升级至 | |
| 118 | + */ | |
| 81 | 119 | private String wtsjz; |
| 82 | 120 | |
| 83 | - @ApiModelProperty(value = "wtjjcs") | |
| 121 | + /* | |
| 122 | + * 问题解决措施 | |
| 123 | + */ | |
| 84 | 124 | private String wtjjcs; |
| 85 | 125 | |
| 86 | - @ApiModelProperty(value = "wtzghfj") | |
| 126 | + /* | |
| 127 | + * 问题整改后附件 | |
| 128 | + */ | |
| 87 | 129 | private String wtzghfj; |
| 88 | 130 | |
| 89 | - @ApiModelProperty(value = "wtclr") | |
| 131 | + /* | |
| 132 | + * 问题处理人 | |
| 133 | + */ | |
| 90 | 134 | private String wtclr; |
| 91 | 135 | |
| 92 | - @ApiModelProperty(value = "wtclzt") | |
| 136 | + /* | |
| 137 | + * 问题处理状态, #1#-待处理;#2#-处理中;#3#-已关闭;#4#-已逾期; | |
| 138 | + */ | |
| 93 | 139 | private String wtclzt; |
| 94 | 140 | |
| 95 | - @ApiModelProperty(value = "lywt") | |
| 96 | - private String lywt; | |
| 97 | - | |
| 98 | - @ApiModelProperty(value = "zcwt") | |
| 99 | - private String zcwt; | |
| 100 | - | |
| 101 | - @ApiModelProperty(value = "区域") | |
| 141 | + /* | |
| 142 | + * 区域 | |
| 143 | + */ | |
| 102 | 144 | private String qy; |
| 103 | 145 | |
| 104 | - @ApiModelProperty(value = "班组") | |
| 146 | + /* | |
| 147 | + * 班组 | |
| 148 | + */ | |
| 105 | 149 | private String bz; |
| 106 | 150 | |
| 107 | - @ApiModelProperty(value = "lylx") | |
| 108 | - private String lylx; | |
| 109 | - | |
| 110 | - @ApiModelProperty(value = "jhjjsj") | |
| 151 | + /* | |
| 152 | + * 计划解决时间 | |
| 153 | + */ | |
| 111 | 154 | private Date jhjjsj; |
| 112 | 155 | |
| 113 | - @ApiModelProperty(value = "wtclfs2") | |
| 156 | + /* | |
| 157 | + * 问题处理方式2 | |
| 158 | + */ | |
| 114 | 159 | private String wtclfs2; |
| 115 | 160 | |
| 116 | - @ApiModelProperty(value = "gzap2") | |
| 161 | + /* | |
| 162 | + * 工作安排/同级支持2 | |
| 163 | + */ | |
| 117 | 164 | private String gzap2; |
| 118 | 165 | |
| 119 | - @ApiModelProperty(value = "wtsjz2") | |
| 166 | + /* | |
| 167 | + * 问题升级至2 | |
| 168 | + */ | |
| 120 | 169 | private String wtsjz2; |
| 121 | 170 | |
| 122 | - @ApiModelProperty(value = "wtclfs3") | |
| 171 | + /* | |
| 172 | + * 问题处理方式3 | |
| 173 | + */ | |
| 123 | 174 | private String wtclfs3; |
| 124 | 175 | |
| 125 | - @ApiModelProperty(value = "gzap3") | |
| 176 | + /* | |
| 177 | + * 工作安排/同级支持3 | |
| 178 | + */ | |
| 126 | 179 | private String gzap3; |
| 127 | 180 | |
| 128 | - @ApiModelProperty(value = "wtsjz3") | |
| 181 | + /* | |
| 182 | + * 问题升级至3 | |
| 183 | + */ | |
| 129 | 184 | private String wtsjz3; |
| 130 | 185 | |
| 131 | - @ApiModelProperty(value = "流程实例ID") | |
| 186 | + /* | |
| 187 | + * 流程实例ID | |
| 188 | + */ | |
| 132 | 189 | private String processInstanceId; |
| 133 | 190 | |
| 134 | - @ApiModelProperty(value = "审批状态") | |
| 191 | + /* | |
| 192 | + * 审批状态 | |
| 193 | + */ | |
| 135 | 194 | private String approvalStatus; |
| 136 | 195 | } | ... | ... |
| 1 | 1 | package com.qgutech.qgyun.apaas.sync.cps.model; |
| 2 | 2 | |
| 3 | 3 | import com.qgutech.qgyun.framework.database.model.BaseCorpModel; |
| 4 | -import io.swagger.annotations.ApiModel; | |
| 5 | -import io.swagger.annotations.ApiModelProperty; | |
| 6 | 4 | import lombok.Getter; |
| 7 | 5 | import lombok.Setter; |
| 8 | 6 | import lombok.ToString; |
| ... | ... | @@ -15,31 +13,48 @@ import javax.persistence.Table; |
| 15 | 13 | @Getter |
| 16 | 14 | @Setter |
| 17 | 15 | @ToString |
| 18 | -@ApiModel(value = "Personnel", description = "人员信息") | |
| 19 | 16 | @Table(name = "t_auto_hfca_ixzvok_bzcygl") |
| 20 | 17 | public class Personnel extends BaseCorpModel { |
| 21 | 18 | |
| 22 | - @ApiModelProperty(value = "所属班组") | |
| 19 | + public static final String GH = "gh"; | |
| 20 | + | |
| 21 | + /* | |
| 22 | + * 所属班组 | |
| 23 | + */ | |
| 23 | 24 | private String ssbz; |
| 24 | 25 | |
| 25 | - @ApiModelProperty(value = "姓名") | |
| 26 | + /* | |
| 27 | + * 姓名 | |
| 28 | + */ | |
| 26 | 29 | private String xm; |
| 27 | 30 | |
| 28 | - @ApiModelProperty(value = "人员") | |
| 31 | + /* | |
| 32 | + * 人员 | |
| 33 | + */ | |
| 29 | 34 | private String ry; |
| 30 | 35 | |
| 31 | - @ApiModelProperty(value = "所属部门") | |
| 36 | + /* | |
| 37 | + * 所属部门 | |
| 38 | + */ | |
| 32 | 39 | private String ssbm; |
| 33 | 40 | |
| 34 | - @ApiModelProperty(value = "工号") | |
| 41 | + /* | |
| 42 | + * 工号 | |
| 43 | + */ | |
| 35 | 44 | private String gh; |
| 36 | 45 | |
| 37 | - @ApiModelProperty(value = "所属单位") | |
| 46 | + /* | |
| 47 | + * 所属单位 | |
| 48 | + */ | |
| 38 | 49 | private String ssdw; |
| 39 | 50 | |
| 40 | - @ApiModelProperty(value = "所属室组") | |
| 51 | + /* | |
| 52 | + * 所属室组 | |
| 53 | + */ | |
| 41 | 54 | private String sssz; |
| 42 | 55 | |
| 43 | - @ApiModelProperty(value = "所属区域") | |
| 56 | + /* | |
| 57 | + * 所属区域 | |
| 58 | + */ | |
| 44 | 59 | private String ssqy; |
| 45 | 60 | } | ... | ... |
| 1 | 1 | package com.qgutech.qgyun.apaas.sync.cps.model; |
| 2 | 2 | |
| 3 | 3 | import com.qgutech.qgyun.framework.database.model.BaseCorpModel; |
| 4 | -import io.swagger.annotations.ApiModel; | |
| 5 | -import io.swagger.annotations.ApiModelProperty; | |
| 6 | 4 | import lombok.Getter; |
| 7 | 5 | import lombok.Setter; |
| 8 | 6 | import lombok.ToString; |
| ... | ... | @@ -16,28 +14,41 @@ import java.util.Date; |
| 16 | 14 | @Getter |
| 17 | 15 | @Setter |
| 18 | 16 | @ToString |
| 19 | -@ApiModel(value = "PjoBatch", description = "PJO计划批次信息") | |
| 20 | 17 | @Table(name = "t_auto_hfca_ixzvok_ouziyg") |
| 21 | 18 | public class PjoBatch extends BaseCorpModel { |
| 22 | 19 | |
| 23 | - @ApiModelProperty(value = "批次编号") | |
| 20 | + /* | |
| 21 | + * 批次编号 | |
| 22 | + */ | |
| 24 | 23 | private String pcbh; |
| 25 | 24 | |
| 26 | - @ApiModelProperty(value = "批次执行人") | |
| 25 | + /* | |
| 26 | + * 批次执行人 | |
| 27 | + */ | |
| 27 | 28 | private String pczxr; |
| 28 | 29 | |
| 29 | - @ApiModelProperty(value = "批次执行开始日期") | |
| 30 | + /* | |
| 31 | + * 批次执行开始日期 | |
| 32 | + */ | |
| 30 | 33 | private Date pczxksrq; |
| 31 | 34 | |
| 32 | - @ApiModelProperty(value = "批次执行结束日期") | |
| 35 | + /* | |
| 36 | + * 批次执行结束日期 | |
| 37 | + */ | |
| 33 | 38 | private Date pczxjsrq; |
| 34 | 39 | |
| 35 | - @ApiModelProperty(value = "执行区域") | |
| 40 | + /* | |
| 41 | + * 执行区域 | |
| 42 | + */ | |
| 36 | 43 | private String zxqy; |
| 37 | 44 | |
| 38 | - @ApiModelProperty(value = "状态") | |
| 45 | + /* | |
| 46 | + * 状态 | |
| 47 | + */ | |
| 39 | 48 | private String zt; |
| 40 | 49 | |
| 41 | - @ApiModelProperty(value = "批次名称") | |
| 50 | + /* | |
| 51 | + * 批次名称 | |
| 52 | + */ | |
| 42 | 53 | private String pcmc; |
| 43 | 54 | } | ... | ... |
| 1 | 1 | package com.qgutech.qgyun.apaas.sync.cps.model; |
| 2 | 2 | |
| 3 | 3 | import com.qgutech.qgyun.framework.database.model.BaseCorpModel; |
| 4 | -import io.swagger.annotations.ApiModel; | |
| 5 | -import io.swagger.annotations.ApiModelProperty; | |
| 6 | 4 | import lombok.Getter; |
| 7 | 5 | import lombok.Setter; |
| 8 | 6 | import lombok.ToString; |
| ... | ... | @@ -16,103 +14,166 @@ import java.util.Date; |
| 16 | 14 | @Getter |
| 17 | 15 | @Setter |
| 18 | 16 | @ToString |
| 19 | -@ApiModel(value = "PjoExec", description = "PJO计划执行信息") | |
| 20 | 17 | @Table(name = "t_auto_hfca_ixzvok_wmkgsv") |
| 21 | 18 | public class PjoExec extends BaseCorpModel { |
| 22 | 19 | |
| 23 | - @ApiModelProperty(value = "当日生产班次") | |
| 20 | + /* | |
| 21 | + * 当日生产班次 | |
| 22 | + */ | |
| 24 | 23 | private String drscbc; |
| 25 | 24 | |
| 26 | - @ApiModelProperty(value = "qkxdwk") | |
| 25 | + /* | |
| 26 | + * qkxdwk | |
| 27 | + */ | |
| 27 | 28 | private Date qkxdwk; |
| 28 | 29 | |
| 29 | - @ApiModelProperty(value = "PJO执行人") | |
| 30 | + /* | |
| 31 | + * PJO执行人 | |
| 32 | + */ | |
| 30 | 33 | private String pjozxr; |
| 31 | 34 | |
| 32 | - @ApiModelProperty(value = "PJO批次") | |
| 35 | + /* | |
| 36 | + * PJO批次 | |
| 37 | + */ | |
| 33 | 38 | private String pjopc; |
| 34 | 39 | |
| 35 | - @ApiModelProperty(value = "车间") | |
| 40 | + /* | |
| 41 | + * 车间 | |
| 42 | + */ | |
| 36 | 43 | private String cj; |
| 37 | 44 | |
| 38 | - @ApiModelProperty(value = "产线") | |
| 45 | + /* | |
| 46 | + * 产线 | |
| 47 | + */ | |
| 39 | 48 | private String cx; |
| 40 | 49 | |
| 41 | - @ApiModelProperty(value = "CPS区域") | |
| 50 | + /* | |
| 51 | + * CPS区域 | |
| 52 | + */ | |
| 42 | 53 | private String cpsqy; |
| 43 | 54 | |
| 44 | - @ApiModelProperty(value = "班组") | |
| 55 | + /* | |
| 56 | + * 班组 | |
| 57 | + */ | |
| 45 | 58 | private String bz; |
| 46 | 59 | |
| 47 | - @ApiModelProperty(value = "PJO观察人姓名") | |
| 60 | + /* | |
| 61 | + * PJO观察人姓名 | |
| 62 | + */ | |
| 48 | 63 | private String pjogcrxm; |
| 49 | 64 | |
| 50 | - @ApiModelProperty(value = "工位信息") | |
| 65 | + /* | |
| 66 | + * 工位信息 | |
| 67 | + */ | |
| 51 | 68 | private String gwxx; |
| 52 | 69 | |
| 53 | - @ApiModelProperty(value = "所属批次") | |
| 70 | + /* | |
| 71 | + * 所属批次 | |
| 72 | + */ | |
| 54 | 73 | private String sspc; |
| 55 | 74 | |
| 56 | - @ApiModelProperty(value = "工位性质") | |
| 75 | + /* | |
| 76 | + * 工位性质 | |
| 77 | + */ | |
| 57 | 78 | private String gwxz; |
| 58 | 79 | |
| 59 | - @ApiModelProperty(value = "PJO是否正常开展") | |
| 80 | + /* | |
| 81 | + * PJO是否正常开展 | |
| 82 | + */ | |
| 60 | 83 | private Boolean pjosfzckz; |
| 61 | 84 | |
| 62 | - @ApiModelProperty(value = "gchtxzyyc") | |
| 85 | + /* | |
| 86 | + * gchtxzyyc | |
| 87 | + */ | |
| 63 | 88 | private String gchtxzyyc; |
| 64 | 89 | |
| 65 | - @ApiModelProperty(value = "gchtxcyyc") | |
| 90 | + /* | |
| 91 | + * gchtxcyyc | |
| 92 | + */ | |
| 66 | 93 | private String gchtxcyyc; |
| 67 | 94 | |
| 68 | - @ApiModelProperty(value = "gcdwt") | |
| 95 | + /* | |
| 96 | + * gcdwt | |
| 97 | + */ | |
| 69 | 98 | private String gcdwt; |
| 70 | 99 | |
| 71 | - @ApiModelProperty(value = "gcgjjh") | |
| 100 | + /* | |
| 101 | + * gcgjjh | |
| 102 | + */ | |
| 72 | 103 | private String gcgjjh; |
| 73 | 104 | |
| 74 | - @ApiModelProperty(value = "lfwkuc") | |
| 105 | + /* | |
| 106 | + * lfwkuc | |
| 107 | + */ | |
| 75 | 108 | private String lfwkuc; |
| 76 | 109 | |
| 77 | - @ApiModelProperty(value = "zyczdwt") | |
| 110 | + /* | |
| 111 | + * zyczdwt | |
| 112 | + */ | |
| 78 | 113 | private String zyczdwt; |
| 79 | 114 | |
| 80 | - @ApiModelProperty(value = "zdbgwdgsjy") | |
| 115 | + /* | |
| 116 | + * zdbgwdgsjy | |
| 117 | + */ | |
| 81 | 118 | private String zdbgwdgsjy; |
| 82 | 119 | |
| 83 | - @ApiModelProperty(value = "lvqwyc") | |
| 120 | + /* | |
| 121 | + * lvqwyc | |
| 122 | + */ | |
| 84 | 123 | private String lvqwyc; |
| 85 | 124 | |
| 86 | - @ApiModelProperty(value = "zyqm") | |
| 125 | + /* | |
| 126 | + * zyqm | |
| 127 | + */ | |
| 87 | 128 | private String zyqm; |
| 88 | 129 | |
| 89 | - @ApiModelProperty(value = "zysfyjy") | |
| 130 | + /* | |
| 131 | + * zysfyjy | |
| 132 | + */ | |
| 90 | 133 | private Boolean zysfyjy; |
| 91 | 134 | |
| 92 | - @ApiModelProperty(value = "cyjy") | |
| 135 | + /* | |
| 136 | + * cyjy | |
| 137 | + */ | |
| 93 | 138 | private String cyjy; |
| 94 | 139 | |
| 95 | - @ApiModelProperty(value = "zyjy") | |
| 140 | + /* | |
| 141 | + * zyjy | |
| 142 | + */ | |
| 96 | 143 | private String zyjy; |
| 97 | 144 | |
| 98 | - @ApiModelProperty(value = "状态") | |
| 145 | + /* | |
| 146 | + * 状态 | |
| 147 | + */ | |
| 99 | 148 | private String zt; |
| 100 | 149 | |
| 101 | - @ApiModelProperty(value = "区域") | |
| 150 | + /* | |
| 151 | + * 区域 | |
| 152 | + */ | |
| 102 | 153 | private String qy; |
| 103 | 154 | |
| 104 | - @ApiModelProperty(value = "gwxx2") | |
| 155 | + /* | |
| 156 | + * gwxx2 | |
| 157 | + */ | |
| 105 | 158 | private String gwxx2; |
| 106 | 159 | |
| 107 | - @ApiModelProperty(value = "zyqmb") | |
| 160 | + /* | |
| 161 | + * zyqmb | |
| 162 | + */ | |
| 108 | 163 | private String zyqmb; |
| 109 | 164 | |
| 110 | - @ApiModelProperty(value = "gwzx1") | |
| 165 | + /* | |
| 166 | + * gwzx1 | |
| 167 | + */ | |
| 111 | 168 | private String gwzx1; |
| 112 | 169 | |
| 113 | - @ApiModelProperty(value = "gwzx2") | |
| 170 | + /* | |
| 171 | + * gwzx2 | |
| 172 | + */ | |
| 114 | 173 | private String gwzx2; |
| 115 | 174 | |
| 116 | - @ApiModelProperty(value = "线体") | |
| 175 | + /* | |
| 176 | + * 线体 | |
| 177 | + */ | |
| 117 | 178 | private String xt; |
| 118 | 179 | } | ... | ... |
| 1 | 1 | package com.qgutech.qgyun.apaas.sync.cps.model; |
| 2 | 2 | |
| 3 | 3 | import com.qgutech.qgyun.framework.database.model.BaseCorpModel; |
| 4 | -import io.swagger.annotations.ApiModel; | |
| 5 | -import io.swagger.annotations.ApiModelProperty; | |
| 6 | 4 | import lombok.Getter; |
| 7 | 5 | import lombok.Setter; |
| 8 | 6 | import lombok.ToString; |
| ... | ... | @@ -15,34 +13,51 @@ import javax.persistence.Table; |
| 15 | 13 | @Getter |
| 16 | 14 | @Setter |
| 17 | 15 | @ToString |
| 18 | -@ApiModel(value = "PjoWorkstationExec", description = "PJO计划工位执行情况信息") | |
| 19 | 16 | @Table(name = "t_auto_hfca_ixzvok_kjpssd") |
| 20 | 17 | public class PjoWorkstationExec extends BaseCorpModel { |
| 21 | 18 | |
| 22 | - @ApiModelProperty(value = "工位状态") | |
| 19 | + /* | |
| 20 | + * 工位状态 | |
| 21 | + */ | |
| 23 | 22 | private String gwzt; |
| 24 | 23 | |
| 25 | - @ApiModelProperty(value = "PJO批次") | |
| 24 | + /* | |
| 25 | + * PJO批次 | |
| 26 | + */ | |
| 26 | 27 | private String pjopc; |
| 27 | 28 | |
| 28 | - @ApiModelProperty(value = "工位") | |
| 29 | + /* | |
| 30 | + * 工位 | |
| 31 | + */ | |
| 29 | 32 | private String gw; |
| 30 | 33 | |
| 31 | - @ApiModelProperty(value = "clbcfl") | |
| 34 | + /* | |
| 35 | + * clbcfl | |
| 36 | + */ | |
| 32 | 37 | private Double clbcfl; |
| 33 | 38 | |
| 34 | - @ApiModelProperty(value = "工位名称") | |
| 39 | + /* | |
| 40 | + * 工位名称 | |
| 41 | + */ | |
| 35 | 42 | private String gwmc; |
| 36 | 43 | |
| 37 | - @ApiModelProperty(value = "工位编号") | |
| 44 | + /* | |
| 45 | + * 工位编号 | |
| 46 | + */ | |
| 38 | 47 | private String gwbh; |
| 39 | 48 | |
| 40 | - @ApiModelProperty(value = "所属车间") | |
| 49 | + /* | |
| 50 | + * 所属车间 | |
| 51 | + */ | |
| 41 | 52 | private String sscj; |
| 42 | 53 | |
| 43 | - @ApiModelProperty(value = "所属区域") | |
| 54 | + /* | |
| 55 | + * 所属区域 | |
| 56 | + */ | |
| 44 | 57 | private String ssqy; |
| 45 | 58 | |
| 46 | - @ApiModelProperty(value = "工位执行所属班组") | |
| 59 | + /* | |
| 60 | + * 工位执行所属班组 | |
| 61 | + */ | |
| 47 | 62 | private String gwzxssbz; |
| 48 | 63 | } | ... | ... |
| ... | ... | @@ -2,8 +2,6 @@ package com.qgutech.qgyun.apaas.sync.cps.model; |
| 2 | 2 | |
| 3 | 3 | import com.fasterxml.jackson.annotation.JsonFormat; |
| 4 | 4 | import com.qgutech.qgyun.framework.database.model.BaseCorpModel; |
| 5 | -import io.swagger.annotations.ApiModel; | |
| 6 | -import io.swagger.annotations.ApiModelProperty; | |
| 7 | 5 | import lombok.Getter; |
| 8 | 6 | import lombok.Setter; |
| 9 | 7 | import lombok.ToString; |
| ... | ... | @@ -18,62 +16,95 @@ import java.util.Date; |
| 18 | 16 | @Getter |
| 19 | 17 | @Setter |
| 20 | 18 | @ToString |
| 21 | -@ApiModel(value = "ProcessConfirmExec", description = "过程确认计划执行记录信息") | |
| 22 | 19 | @Table(name = "t_auto_hfca_ixzvok_gcqrjhzx") |
| 23 | 20 | public class ProcessConfirmExec extends BaseCorpModel { |
| 24 | 21 | |
| 22 | + /* | |
| 23 | + * 活动执行日期 | |
| 24 | + */ | |
| 25 | 25 | @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| 26 | 26 | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| 27 | - @ApiModelProperty(value = "活动执行日期") | |
| 28 | 27 | private Date hdzxrq; |
| 29 | 28 | |
| 30 | - @ApiModelProperty(value = "过程确认计划人员") | |
| 29 | + /* | |
| 30 | + * 过程确认计划人员 | |
| 31 | + */ | |
| 31 | 32 | private String gcqrjhry; |
| 32 | 33 | |
| 33 | - @ApiModelProperty(value = "执行人员") | |
| 34 | + /* | |
| 35 | + * 执行人员 | |
| 36 | + */ | |
| 34 | 37 | private String zxry; |
| 35 | 38 | |
| 36 | - @ApiModelProperty(value = "工号") | |
| 39 | + /* | |
| 40 | + * 工号 | |
| 41 | + */ | |
| 37 | 42 | private String gh; |
| 38 | 43 | |
| 39 | - @ApiModelProperty(value = "人员类别") | |
| 44 | + /* | |
| 45 | + * 人员类别 | |
| 46 | + */ | |
| 40 | 47 | private String rylb; |
| 41 | 48 | |
| 42 | - @ApiModelProperty(value = "单位") | |
| 49 | + /* | |
| 50 | + * 单位 | |
| 51 | + */ | |
| 43 | 52 | private String dw; |
| 44 | 53 | |
| 45 | - @ApiModelProperty(value = "室组") | |
| 54 | + /* | |
| 55 | + * 室组 | |
| 56 | + */ | |
| 46 | 57 | private String sz; |
| 47 | 58 | |
| 48 | - @ApiModelProperty(value = "区域") | |
| 59 | + /* | |
| 60 | + * 区域 | |
| 61 | + */ | |
| 49 | 62 | private String qy; |
| 50 | 63 | |
| 51 | - @ApiModelProperty(value = "班组") | |
| 64 | + /* | |
| 65 | + * 班组 | |
| 66 | + */ | |
| 52 | 67 | private String bz; |
| 53 | 68 | |
| 54 | - @ApiModelProperty(value = "线体") | |
| 69 | + /* | |
| 70 | + * 线体 | |
| 71 | + */ | |
| 55 | 72 | private String xt; |
| 56 | 73 | |
| 57 | - @ApiModelProperty(value = "班次") | |
| 74 | + /* | |
| 75 | + * 班次 | |
| 76 | + */ | |
| 58 | 77 | private String bc; |
| 59 | 78 | |
| 79 | + /* | |
| 80 | + * 过期时间 | |
| 81 | + */ | |
| 60 | 82 | @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| 61 | 83 | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| 62 | - @ApiModelProperty(value = "过期时间") | |
| 63 | 84 | private Date gqsj; |
| 64 | 85 | |
| 65 | - @ApiModelProperty(value = "状态") | |
| 86 | + /* | |
| 87 | + * 状态 | |
| 88 | + */ | |
| 66 | 89 | private String zt; |
| 67 | 90 | |
| 68 | - @ApiModelProperty(value = "是否已执行") | |
| 91 | + /* | |
| 92 | + * 是否已执行 | |
| 93 | + */ | |
| 69 | 94 | private Boolean sfyzx; |
| 70 | 95 | |
| 71 | - @ApiModelProperty(value = "未执行原因说明") | |
| 96 | + /* | |
| 97 | + * 未执行原因说明 | |
| 98 | + */ | |
| 72 | 99 | private String wzxyysm; |
| 73 | 100 | |
| 74 | - @ApiModelProperty(value = "是否发现问题") | |
| 101 | + /* | |
| 102 | + * 是否发现问题 | |
| 103 | + */ | |
| 75 | 104 | private Boolean sffxwt; |
| 76 | 105 | |
| 77 | - @ApiModelProperty(value = "未执行原因") | |
| 106 | + /* | |
| 107 | + * 未执行原因 | |
| 108 | + */ | |
| 78 | 109 | private String wzxyys; |
| 79 | 110 | } | ... | ... |
| 1 | 1 | package com.qgutech.qgyun.apaas.sync.cps.model; |
| 2 | 2 | |
| 3 | 3 | import com.qgutech.qgyun.framework.database.model.BaseCorpModel; |
| 4 | -import io.swagger.annotations.ApiModel; | |
| 5 | -import io.swagger.annotations.ApiModelProperty; | |
| 6 | 4 | import lombok.Getter; |
| 7 | 5 | import lombok.Setter; |
| 8 | 6 | import lombok.ToString; |
| ... | ... | @@ -16,103 +14,166 @@ import java.util.Date; |
| 16 | 14 | @Getter |
| 17 | 15 | @Setter |
| 18 | 16 | @ToString |
| 19 | -@ApiModel(value = "ProcessConfirmPersonnel", description = "过程确认维护人员信息") | |
| 20 | 17 | @Table(name = "t_auto_hfca_ixzvok_gcjhrywh") |
| 21 | 18 | public class ProcessConfirmPersonnel extends BaseCorpModel { |
| 22 | 19 | |
| 23 | - @ApiModelProperty(value = "活动执行日期") | |
| 20 | + /* | |
| 21 | + * 活动执行日期 | |
| 22 | + */ | |
| 24 | 23 | private Date hdzxrq; |
| 25 | 24 | |
| 26 | - @ApiModelProperty(value = "执行人员") | |
| 25 | + /* | |
| 26 | + * 执行人员 | |
| 27 | + */ | |
| 27 | 28 | private String zxry; |
| 28 | 29 | |
| 29 | - @ApiModelProperty(value = "活动执行人姓名") | |
| 30 | + /* | |
| 31 | + * 活动执行人姓名 | |
| 32 | + */ | |
| 30 | 33 | private String hdzxrxm; |
| 31 | 34 | |
| 32 | - @ApiModelProperty(value = "工号") | |
| 35 | + /* | |
| 36 | + * 工号 | |
| 37 | + */ | |
| 33 | 38 | private String gh; |
| 34 | 39 | |
| 35 | - @ApiModelProperty(value = "工作单位") | |
| 40 | + /* | |
| 41 | + * 工作单位 | |
| 42 | + */ | |
| 36 | 43 | private String gzdw; |
| 37 | 44 | |
| 38 | - @ApiModelProperty(value = "人员类别") | |
| 45 | + /* | |
| 46 | + * 人员类别 | |
| 47 | + */ | |
| 39 | 48 | private String rylb; |
| 40 | 49 | |
| 41 | - @ApiModelProperty(value = "所在区域名称") | |
| 50 | + /* | |
| 51 | + * 所在区域名称 | |
| 52 | + */ | |
| 42 | 53 | private String szqymc; |
| 43 | 54 | |
| 44 | - @ApiModelProperty(value = "班组") | |
| 55 | + /* | |
| 56 | + * 班组 | |
| 57 | + */ | |
| 45 | 58 | private String bz; |
| 46 | 59 | |
| 47 | - @ApiModelProperty(value = "线体") | |
| 60 | + /* | |
| 61 | + * 线体 | |
| 62 | + */ | |
| 48 | 63 | private String xt; |
| 49 | 64 | |
| 50 | - @ApiModelProperty(value = "班次") | |
| 65 | + /* | |
| 66 | + * 班次 | |
| 67 | + */ | |
| 51 | 68 | private String bc; |
| 52 | 69 | |
| 53 | - @ApiModelProperty(value = "过期时间") | |
| 70 | + /* | |
| 71 | + * 过期时间 | |
| 72 | + */ | |
| 54 | 73 | private Date gqsj; |
| 55 | 74 | |
| 56 | - @ApiModelProperty(value = "状态") | |
| 75 | + /* | |
| 76 | + * 状态 | |
| 77 | + */ | |
| 57 | 78 | private String zt; |
| 58 | 79 | |
| 59 | - @ApiModelProperty(value = "过程执行") | |
| 80 | + /* | |
| 81 | + * 过程执行 | |
| 82 | + */ | |
| 60 | 83 | private String gczx; |
| 61 | 84 | |
| 62 | - @ApiModelProperty(value = "未执行原因") | |
| 85 | + /* | |
| 86 | + * 未执行原因 | |
| 87 | + */ | |
| 63 | 88 | private String wzxyy; |
| 64 | 89 | |
| 65 | - @ApiModelProperty(value = "是否发现问题") | |
| 90 | + /* | |
| 91 | + * 是否发现问题 | |
| 92 | + */ | |
| 66 | 93 | private Boolean sffxwt; |
| 67 | 94 | |
| 68 | - @ApiModelProperty(value = "单位名称") | |
| 95 | + /* | |
| 96 | + * 单位名称 | |
| 97 | + */ | |
| 69 | 98 | private String dwmc; |
| 70 | 99 | |
| 71 | - @ApiModelProperty(value = "单位编号") | |
| 100 | + /* | |
| 101 | + * 单位编号 | |
| 102 | + */ | |
| 72 | 103 | private String dwbh; |
| 73 | 104 | |
| 74 | - @ApiModelProperty(value = "单位负责人") | |
| 105 | + /* | |
| 106 | + * 单位负责人 | |
| 107 | + */ | |
| 75 | 108 | private String dwfzr; |
| 76 | 109 | |
| 77 | - @ApiModelProperty(value = "人员") | |
| 110 | + /* | |
| 111 | + * 人员 | |
| 112 | + */ | |
| 78 | 113 | private String ry; |
| 79 | 114 | |
| 80 | - @ApiModelProperty(value = "人员所属单位") | |
| 115 | + /* | |
| 116 | + * 人员所属单位 | |
| 117 | + */ | |
| 81 | 118 | private String ryssdw; |
| 82 | 119 | |
| 83 | - @ApiModelProperty(value = "所属室组") | |
| 120 | + /* | |
| 121 | + * 所属室组 | |
| 122 | + */ | |
| 84 | 123 | private String sssz; |
| 85 | 124 | |
| 86 | - @ApiModelProperty(value = "所属班组") | |
| 125 | + /* | |
| 126 | + * 所属班组 | |
| 127 | + */ | |
| 87 | 128 | private String ssbz; |
| 88 | 129 | |
| 89 | - @ApiModelProperty(value = "室组") | |
| 130 | + /* | |
| 131 | + * 室组 | |
| 132 | + */ | |
| 90 | 133 | private String sz; |
| 91 | 134 | |
| 92 | - @ApiModelProperty(value = "区域") | |
| 135 | + /* | |
| 136 | + * 区域 | |
| 137 | + */ | |
| 93 | 138 | private String qy; |
| 94 | 139 | |
| 95 | - @ApiModelProperty(value = "所属区域") | |
| 140 | + /* | |
| 141 | + * 所属区域 | |
| 142 | + */ | |
| 96 | 143 | private String ssqy; |
| 97 | 144 | |
| 98 | - @ApiModelProperty(value = "eaohkg") | |
| 145 | + /* | |
| 146 | + * eaohkg | |
| 147 | + */ | |
| 99 | 148 | private String eaohkg; |
| 100 | 149 | |
| 101 | - @ApiModelProperty(value = "过程确认计划人员") | |
| 150 | + /* | |
| 151 | + * 过程确认计划人员 | |
| 152 | + */ | |
| 102 | 153 | private String gcqrjhry; |
| 103 | 154 | |
| 104 | - @ApiModelProperty(value = "单位") | |
| 155 | + /* | |
| 156 | + * 单位 | |
| 157 | + */ | |
| 105 | 158 | private String dw; |
| 106 | 159 | |
| 107 | - @ApiModelProperty(value = "所属单位") | |
| 160 | + /* | |
| 161 | + * 所属单位 | |
| 162 | + */ | |
| 108 | 163 | private String ssdw; |
| 109 | 164 | |
| 110 | - @ApiModelProperty(value = "所属线体") | |
| 165 | + /* | |
| 166 | + * 所属线体 | |
| 167 | + */ | |
| 111 | 168 | private String ssxt; |
| 112 | 169 | |
| 113 | - @ApiModelProperty(value = "人员姓名") | |
| 170 | + /* | |
| 171 | + * 人员姓名 | |
| 172 | + */ | |
| 114 | 173 | private String ryxm; |
| 115 | 174 | |
| 116 | - @ApiModelProperty(value = "是否已执行") | |
| 175 | + /* | |
| 176 | + * 是否已执行 | |
| 177 | + */ | |
| 117 | 178 | private Boolean sfyzx; |
| 118 | 179 | } | ... | ... |
| 1 | 1 | package com.qgutech.qgyun.apaas.sync.cps.model; |
| 2 | 2 | |
| 3 | +import com.fasterxml.jackson.annotation.JsonFormat; | |
| 3 | 4 | import com.qgutech.qgyun.framework.database.model.BaseCorpModel; |
| 4 | -import io.swagger.annotations.ApiModel; | |
| 5 | -import io.swagger.annotations.ApiModelProperty; | |
| 6 | 5 | import lombok.Getter; |
| 7 | 6 | import lombok.Setter; |
| 8 | 7 | import lombok.ToString; |
| 8 | +import org.springframework.format.annotation.DateTimeFormat; | |
| 9 | 9 | |
| 10 | 10 | import javax.persistence.Table; |
| 11 | +import java.util.Date; | |
| 11 | 12 | |
| 12 | 13 | /** |
| 13 | 14 | * 季度人员信息 |
| ... | ... | @@ -15,28 +16,53 @@ import javax.persistence.Table; |
| 15 | 16 | @Getter |
| 16 | 17 | @Setter |
| 17 | 18 | @ToString |
| 18 | -@ApiModel(value = "QuarterPersonnel", description = "季度人员信息") | |
| 19 | 19 | @Table(name = "t_auto_hfca_ixzvok_wltctp") |
| 20 | 20 | public class QuarterPersonnel extends BaseCorpModel { |
| 21 | 21 | |
| 22 | - @ApiModelProperty(value = "季度信息") | |
| 22 | + public static final String JDXX = "jdxx"; | |
| 23 | + public static final String YEAR = "year"; | |
| 24 | + public static final String SHDW = "shdw"; | |
| 25 | + public static final String SHSZ = "shsz"; | |
| 26 | + public static final String YHRY = "yhry"; | |
| 27 | + /* | |
| 28 | + * 年份 | |
| 29 | + */ | |
| 30 | + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") | |
| 31 | + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") | |
| 32 | + private Date year; | |
| 33 | + | |
| 34 | + /* | |
| 35 | + * 季度枚举 #1#-第一季度 #2#-第二季度 #3#-第三季度 #4#-第四季度 | |
| 36 | + */ | |
| 23 | 37 | private String jdxx; |
| 24 | 38 | |
| 25 | - @ApiModelProperty(value = "员工人员") | |
| 39 | + /* | |
| 40 | + * 员工人员 | |
| 41 | + */ | |
| 26 | 42 | private String yhry; |
| 27 | 43 | |
| 28 | - @ApiModelProperty(value = "人员工号") | |
| 44 | + /* | |
| 45 | + * 人员工号 | |
| 46 | + */ | |
| 29 | 47 | private String rygh; |
| 30 | 48 | |
| 31 | - @ApiModelProperty(value = "所在单位") | |
| 49 | + /* | |
| 50 | + * 所在单位 | |
| 51 | + */ | |
| 32 | 52 | private String shdw; |
| 33 | 53 | |
| 34 | - @ApiModelProperty(value = "所在室组") | |
| 54 | + /* | |
| 55 | + * 所在室组 | |
| 56 | + */ | |
| 35 | 57 | private String shsz; |
| 36 | 58 | |
| 37 | - @ApiModelProperty(value = "所属区域") | |
| 59 | + /* | |
| 60 | + * 所属区域 | |
| 61 | + */ | |
| 38 | 62 | private String ssqy; |
| 39 | 63 | |
| 40 | - @ApiModelProperty(value = "所属班组") | |
| 64 | + /* | |
| 65 | + * 所属班组 | |
| 66 | + */ | |
| 41 | 67 | private String ssbz; |
| 42 | 68 | } | ... | ... |
| 1 | 1 | package com.qgutech.qgyun.apaas.sync.cps.model; |
| 2 | 2 | |
| 3 | 3 | import com.qgutech.qgyun.framework.database.model.BaseCorpModel; |
| 4 | -import io.swagger.annotations.ApiModel; | |
| 5 | -import io.swagger.annotations.ApiModelProperty; | |
| 6 | 4 | import lombok.Getter; |
| 7 | 5 | import lombok.Setter; |
| 8 | 6 | import lombok.ToString; |
| ... | ... | @@ -15,25 +13,36 @@ import javax.persistence.Table; |
| 15 | 13 | @Getter |
| 16 | 14 | @Setter |
| 17 | 15 | @ToString |
| 18 | -@ApiModel(value = "RoomGroup", description = "室组信息") | |
| 19 | 16 | @Table(name = "t_auto_hfca_ixzvok_efawtt") |
| 20 | 17 | public class RoomGroup extends BaseCorpModel { |
| 21 | 18 | |
| 22 | - @ApiModelProperty(value = "室组名称") | |
| 19 | + /* | |
| 20 | + * 室组名称 | |
| 21 | + */ | |
| 23 | 22 | private String szmc; |
| 24 | 23 | |
| 25 | - @ApiModelProperty(value = "室组编号") | |
| 24 | + /* | |
| 25 | + * 室组编号 | |
| 26 | + */ | |
| 26 | 27 | private String szbh; |
| 27 | 28 | |
| 28 | - @ApiModelProperty(value = "室组负责人") | |
| 29 | + /* | |
| 30 | + * 室组负责人 | |
| 31 | + */ | |
| 29 | 32 | private String szfzr; |
| 30 | 33 | |
| 31 | - @ApiModelProperty(value = "所属单位") | |
| 34 | + /* | |
| 35 | + * 所属单位 | |
| 36 | + */ | |
| 32 | 37 | private String ssdw; |
| 33 | 38 | |
| 34 | - @ApiModelProperty(value = "所属组织") | |
| 39 | + /* | |
| 40 | + * 所属组织 | |
| 41 | + */ | |
| 35 | 42 | private String sszz; |
| 36 | 43 | |
| 37 | - @ApiModelProperty(value = "状态") | |
| 44 | + /* | |
| 45 | + * 状态 | |
| 46 | + */ | |
| 38 | 47 | private String zt; |
| 39 | 48 | } | ... | ... |
| 1 | 1 | package com.qgutech.qgyun.apaas.sync.cps.model; |
| 2 | 2 | |
| 3 | 3 | import com.qgutech.qgyun.framework.database.model.BaseCorpModel; |
| 4 | -import io.swagger.annotations.ApiModel; | |
| 5 | -import io.swagger.annotations.ApiModelProperty; | |
| 6 | 4 | import lombok.Getter; |
| 7 | 5 | import lombok.Setter; |
| 8 | 6 | import lombok.ToString; |
| ... | ... | @@ -15,19 +13,26 @@ import javax.persistence.Table; |
| 15 | 13 | @Getter |
| 16 | 14 | @Setter |
| 17 | 15 | @ToString |
| 18 | -@ApiModel(value = "Shift", description = "班次信息") | |
| 19 | 16 | @Table(name = "t_auto_hfca_ixzvok_usnoxx") |
| 20 | 17 | public class Shift extends BaseCorpModel { |
| 21 | 18 | |
| 22 | - @ApiModelProperty(value = "班次名称") | |
| 19 | + /* | |
| 20 | + * 班次名称 | |
| 21 | + */ | |
| 23 | 22 | private String bcmc; |
| 24 | 23 | |
| 25 | - @ApiModelProperty(value = "班次编号") | |
| 24 | + /* | |
| 25 | + * 班次编号 | |
| 26 | + */ | |
| 26 | 27 | private String bcbh; |
| 27 | 28 | |
| 28 | - @ApiModelProperty(value = "班次类型") | |
| 29 | + /* | |
| 30 | + * 班次类型 | |
| 31 | + */ | |
| 29 | 32 | private String bclx; |
| 30 | 33 | |
| 31 | - @ApiModelProperty(value = "状态") | |
| 34 | + /* | |
| 35 | + * 状态 | |
| 36 | + */ | |
| 32 | 37 | private String zt; |
| 33 | 38 | } | ... | ... |
| 1 | 1 | package com.qgutech.qgyun.apaas.sync.cps.model; |
| 2 | 2 | |
| 3 | 3 | import com.qgutech.qgyun.framework.database.model.BaseCorpModel; |
| 4 | -import io.swagger.annotations.ApiModel; | |
| 5 | -import io.swagger.annotations.ApiModelProperty; | |
| 6 | 4 | import lombok.Getter; |
| 7 | 5 | import lombok.Setter; |
| 8 | 6 | import lombok.ToString; |
| ... | ... | @@ -15,61 +13,96 @@ import javax.persistence.Table; |
| 15 | 13 | @Getter |
| 16 | 14 | @Setter |
| 17 | 15 | @ToString |
| 18 | -@ApiModel(value = "StdActivityCase", description = "标准活动优秀案例") | |
| 19 | 16 | @Table(name = "t_auto_hfca_ixzvok_bzhdyx") |
| 20 | 17 | public class StdActivityCase extends BaseCorpModel { |
| 21 | 18 | |
| 22 | - @ApiModelProperty(value = "hdzxr") | |
| 19 | + /* | |
| 20 | + * hdzxr | |
| 21 | + */ | |
| 23 | 22 | private String hdzxr; |
| 24 | 23 | |
| 25 | - @ApiModelProperty(value = "ygbh") | |
| 24 | + /* | |
| 25 | + * ygbh | |
| 26 | + */ | |
| 26 | 27 | private String ygbh; |
| 27 | 28 | |
| 28 | - @ApiModelProperty(value = "gzdw") | |
| 29 | + /* | |
| 30 | + * gzdw | |
| 31 | + */ | |
| 29 | 32 | private String gzdw; |
| 30 | 33 | |
| 31 | - @ApiModelProperty(value = "szqymc") | |
| 34 | + /* | |
| 35 | + * szqymc | |
| 36 | + */ | |
| 32 | 37 | private String szqymc; |
| 33 | 38 | |
| 34 | - @ApiModelProperty(value = "xt") | |
| 39 | + /* | |
| 40 | + * xt | |
| 41 | + */ | |
| 35 | 42 | private String xt; |
| 36 | 43 | |
| 37 | - @ApiModelProperty(value = "wtbm") | |
| 44 | + /* | |
| 45 | + * wtbm | |
| 46 | + */ | |
| 38 | 47 | private String wtbm; |
| 39 | 48 | |
| 40 | - @ApiModelProperty(value = "tjalfj") | |
| 49 | + /* | |
| 50 | + * tjalfj | |
| 51 | + */ | |
| 41 | 52 | private String tjalfj; |
| 42 | 53 | |
| 43 | - @ApiModelProperty(value = "qz") | |
| 54 | + /* | |
| 55 | + * qz | |
| 56 | + */ | |
| 44 | 57 | private String qz; |
| 45 | 58 | |
| 46 | - @ApiModelProperty(value = "bdwcps") | |
| 59 | + /* | |
| 60 | + * bdwcps | |
| 61 | + */ | |
| 47 | 62 | private String bdwcps; |
| 48 | 63 | |
| 49 | - @ApiModelProperty(value = "dwldsh") | |
| 64 | + /* | |
| 65 | + * dwldsh | |
| 66 | + */ | |
| 50 | 67 | private String dwldsh; |
| 51 | 68 | |
| 52 | - @ApiModelProperty(value = "_c_sftscp") | |
| 69 | + /* | |
| 70 | + * _c_sftscp | |
| 71 | + */ | |
| 53 | 72 | private String cSftscp; |
| 54 | 73 | |
| 55 | - @ApiModelProperty(value = "sftscp") | |
| 74 | + /* | |
| 75 | + * sftscp | |
| 76 | + */ | |
| 56 | 77 | private Boolean sftscp; |
| 57 | 78 | |
| 58 | - @ApiModelProperty(value = "sz") | |
| 79 | + /* | |
| 80 | + * sz | |
| 81 | + */ | |
| 59 | 82 | private String sz; |
| 60 | 83 | |
| 61 | - @ApiModelProperty(value = "bdwcpstxy") | |
| 84 | + /* | |
| 85 | + * bdwcpstxy | |
| 86 | + */ | |
| 62 | 87 | private String bdwcpstxy; |
| 63 | 88 | |
| 64 | - @ApiModelProperty(value = "sftscps") | |
| 89 | + /* | |
| 90 | + * sftscps | |
| 91 | + */ | |
| 65 | 92 | private String sftscps; |
| 66 | 93 | |
| 67 | - @ApiModelProperty(value = "zt") | |
| 94 | + /* | |
| 95 | + * zt | |
| 96 | + */ | |
| 68 | 97 | private String zt; |
| 69 | 98 | |
| 70 | - @ApiModelProperty(value = "流程实例ID") | |
| 99 | + /* | |
| 100 | + * 流程实例ID | |
| 101 | + */ | |
| 71 | 102 | private String processInstanceId; |
| 72 | 103 | |
| 73 | - @ApiModelProperty(value = "审批状态") | |
| 104 | + /* | |
| 105 | + * 审批状态 | |
| 106 | + */ | |
| 74 | 107 | private String approvalStatus; |
| 75 | 108 | } | ... | ... |
| 1 | 1 | package com.qgutech.qgyun.apaas.sync.cps.model; |
| 2 | 2 | |
| 3 | 3 | import com.qgutech.qgyun.framework.database.model.BaseCorpModel; |
| 4 | -import io.swagger.annotations.ApiModel; | |
| 5 | -import io.swagger.annotations.ApiModelProperty; | |
| 6 | 4 | import lombok.Getter; |
| 7 | 5 | import lombok.Setter; |
| 8 | 6 | import lombok.ToString; |
| ... | ... | @@ -15,34 +13,51 @@ import javax.persistence.Table; |
| 15 | 13 | @Getter |
| 16 | 14 | @Setter |
| 17 | 15 | @ToString |
| 18 | -@ApiModel(value = "Team", description = "班组信息") | |
| 19 | 16 | @Table(name = "t_auto_hfca_ixzvok_bzxxgl") |
| 20 | 17 | public class Team extends BaseCorpModel { |
| 21 | 18 | |
| 22 | - @ApiModelProperty(value = "班组名称") | |
| 19 | + /* | |
| 20 | + * 班组名称 | |
| 21 | + */ | |
| 23 | 22 | private String bzmc; |
| 24 | 23 | |
| 25 | - @ApiModelProperty(value = "班组编号") | |
| 24 | + /* | |
| 25 | + * 班组编号 | |
| 26 | + */ | |
| 26 | 27 | private String bzbh; |
| 27 | 28 | |
| 28 | - @ApiModelProperty(value = "班组负责人") | |
| 29 | + /* | |
| 30 | + * 班组负责人 | |
| 31 | + */ | |
| 29 | 32 | private String bzfzr; |
| 30 | 33 | |
| 31 | - @ApiModelProperty(value = "所属区域") | |
| 34 | + /* | |
| 35 | + * 所属区域 | |
| 36 | + */ | |
| 32 | 37 | private String ssqy; |
| 33 | 38 | |
| 34 | - @ApiModelProperty(value = "班次") | |
| 39 | + /* | |
| 40 | + * 班次 | |
| 41 | + */ | |
| 35 | 42 | private String bc; |
| 36 | 43 | |
| 37 | - @ApiModelProperty(value = "iytfgx") | |
| 44 | + /* | |
| 45 | + * iytfgx | |
| 46 | + */ | |
| 38 | 47 | private String iytfgx; |
| 39 | 48 | |
| 40 | - @ApiModelProperty(value = "班组成员") | |
| 49 | + /* | |
| 50 | + * 班组成员 | |
| 51 | + */ | |
| 41 | 52 | private String bzcy; |
| 42 | 53 | |
| 43 | - @ApiModelProperty(value = "所属组织") | |
| 54 | + /* | |
| 55 | + * 所属组织 | |
| 56 | + */ | |
| 44 | 57 | private String sszz; |
| 45 | 58 | |
| 46 | - @ApiModelProperty(value = "状态") | |
| 59 | + /* | |
| 60 | + * 状态 | |
| 61 | + */ | |
| 47 | 62 | private String zt; |
| 48 | 63 | } | ... | ... |
| ... | ... | @@ -2,7 +2,6 @@ package com.qgutech.qgyun.apaas.sync.cps.model; |
| 2 | 2 | |
| 3 | 3 | import com.qgutech.qgyun.apaas.sync.cps.enums.WorkshopStatusEnum; |
| 4 | 4 | import com.qgutech.qgyun.framework.database.model.BaseCorpModel; |
| 5 | -import io.swagger.annotations.ApiModelProperty; | |
| 6 | 5 | import lombok.Getter; |
| 7 | 6 | import lombok.Setter; |
| 8 | 7 | import lombok.ToString; |
| ... | ... | @@ -19,34 +18,41 @@ import javax.persistence.Transient; |
| 19 | 18 | @Table(name = "t_auto_hfca_ixzvok_phwifn") |
| 20 | 19 | public class Workshop extends BaseCorpModel { |
| 21 | 20 | |
| 22 | - /** | |
| 21 | + /* | |
| 23 | 22 | * 单位名称 |
| 24 | 23 | */ |
| 25 | 24 | private String dwmc; |
| 26 | 25 | |
| 27 | - @ApiModelProperty(value = "单位编号") | |
| 26 | + /* | |
| 27 | + * 单位编号 | |
| 28 | + */ | |
| 28 | 29 | private String dwbh; |
| 29 | 30 | |
| 30 | - @ApiModelProperty(value = "所属线体") | |
| 31 | + /* | |
| 32 | + * 所属线体 | |
| 33 | + */ | |
| 31 | 34 | private String ssxt; |
| 32 | 35 | |
| 33 | - @ApiModelProperty(value = "单位负责人") | |
| 36 | + /* | |
| 37 | + * 单位负责人 | |
| 38 | + */ | |
| 34 | 39 | private String dwfzr; |
| 35 | 40 | |
| 36 | - @ApiModelProperty(value = "所属组织") | |
| 41 | + /* | |
| 42 | + * 所属组织 | |
| 43 | + */ | |
| 37 | 44 | private String sszz; |
| 38 | 45 | |
| 39 | - /** | |
| 46 | + /* | |
| 40 | 47 | * 状态-#1#:草稿;#2#:启用;#3#:停用; |
| 41 | 48 | */ |
| 42 | - @ApiModelProperty(value = "状态", hidden = true) | |
| 43 | 49 | private String ieiblp; |
| 44 | 50 | |
| 45 | - /** | |
| 51 | + /**********非持久化字段*********/ | |
| 52 | + /* | |
| 46 | 53 | * 状态中文描述(非数据库字段,用于前端展示) |
| 47 | 54 | */ |
| 48 | 55 | @Transient |
| 49 | - @ApiModelProperty(value = "状态描述") | |
| 50 | 56 | private String statusDesc; |
| 51 | 57 | |
| 52 | 58 | /** | ... | ... |
| 1 | 1 | package com.qgutech.qgyun.apaas.sync.cps.model; |
| 2 | 2 | |
| 3 | 3 | import com.qgutech.qgyun.framework.database.model.BaseCorpModel; |
| 4 | -import io.swagger.annotations.ApiModel; | |
| 5 | -import io.swagger.annotations.ApiModelProperty; | |
| 6 | 4 | import lombok.Getter; |
| 7 | 5 | import lombok.Setter; |
| 8 | 6 | import lombok.ToString; |
| ... | ... | @@ -15,37 +13,56 @@ import javax.persistence.Table; |
| 15 | 13 | @Getter |
| 16 | 14 | @Setter |
| 17 | 15 | @ToString |
| 18 | -@ApiModel(value = "Workstation", description = "工位信息") | |
| 19 | 16 | @Table(name = "t_auto_hfca_ixzvok_jtcffk") |
| 20 | 17 | public class Workstation extends BaseCorpModel { |
| 21 | 18 | |
| 22 | - @ApiModelProperty(value = "工位名称") | |
| 19 | + /* | |
| 20 | + * 工位名称 | |
| 21 | + */ | |
| 23 | 22 | private String gwmc; |
| 24 | 23 | |
| 25 | - @ApiModelProperty(value = "工位编号") | |
| 24 | + /* | |
| 25 | + * 工位编号 | |
| 26 | + */ | |
| 26 | 27 | private String gwbh; |
| 27 | 28 | |
| 28 | - @ApiModelProperty(value = "工位性质") | |
| 29 | + /* | |
| 30 | + * 工位性质 | |
| 31 | + */ | |
| 29 | 32 | private String gwxz; |
| 30 | 33 | |
| 31 | - @ApiModelProperty(value = "所属区域") | |
| 34 | + /* | |
| 35 | + * 所属区域 | |
| 36 | + */ | |
| 32 | 37 | private String ssqy; |
| 33 | 38 | |
| 34 | - @ApiModelProperty(value = "所属班组") | |
| 39 | + /* | |
| 40 | + * 所属班组 | |
| 41 | + */ | |
| 35 | 42 | private String ssbz; |
| 36 | 43 | |
| 37 | - @ApiModelProperty(value = "所属车间") | |
| 44 | + /* | |
| 45 | + * 所属车间 | |
| 46 | + */ | |
| 38 | 47 | private String sscj; |
| 39 | 48 | |
| 40 | - @ApiModelProperty(value = "所属室组") | |
| 49 | + /* | |
| 50 | + * 所属室组 | |
| 51 | + */ | |
| 41 | 52 | private String ssqz; |
| 42 | 53 | |
| 43 | - @ApiModelProperty(value = "状态") | |
| 54 | + /* | |
| 55 | + * 状态 | |
| 56 | + */ | |
| 44 | 57 | private String zt; |
| 45 | 58 | |
| 46 | - @ApiModelProperty(value = "线体") | |
| 59 | + /* | |
| 60 | + * 线体 | |
| 61 | + */ | |
| 47 | 62 | private String xt; |
| 48 | 63 | |
| 49 | - @ApiModelProperty(value = "byiwiz") | |
| 64 | + /* | |
| 65 | + * byiwiz | |
| 66 | + */ | |
| 50 | 67 | private String byiwiz; |
| 51 | 68 | } | ... | ... |
| 1 | 1 | package com.qgutech.qgyun.apaas.sync.cps.model; |
| 2 | 2 | |
| 3 | 3 | import com.qgutech.qgyun.framework.database.model.BaseCorpModel; |
| 4 | -import io.swagger.annotations.ApiModel; | |
| 5 | -import io.swagger.annotations.ApiModelProperty; | |
| 6 | 4 | import lombok.Getter; |
| 7 | 5 | import lombok.Setter; |
| 8 | 6 | import lombok.ToString; |
| ... | ... | @@ -15,19 +13,26 @@ import javax.persistence.Table; |
| 15 | 13 | @Getter |
| 16 | 14 | @Setter |
| 17 | 15 | @ToString |
| 18 | -@ApiModel(value = "XtLine", description = "线体信息") | |
| 19 | 16 | @Table(name = "t_auto_hfca_ixzvok_umsoxi") |
| 20 | 17 | public class XtLine extends BaseCorpModel { |
| 21 | 18 | |
| 22 | - @ApiModelProperty(value = "线体名称") | |
| 19 | + /* | |
| 20 | + * 线体名称 | |
| 21 | + */ | |
| 23 | 22 | private String xtmc; |
| 24 | 23 | |
| 25 | - @ApiModelProperty(value = "线体编号") | |
| 24 | + /* | |
| 25 | + * 线体编号 | |
| 26 | + */ | |
| 26 | 27 | private String xtbh; |
| 27 | 28 | |
| 28 | - @ApiModelProperty(value = "线体负责人") | |
| 29 | + /* | |
| 30 | + * 线体负责人 | |
| 31 | + */ | |
| 29 | 32 | private String xtfzr; |
| 30 | 33 | |
| 31 | - @ApiModelProperty(value = "amoigs") | |
| 34 | + /* | |
| 35 | + * amoigs | |
| 36 | + */ | |
| 32 | 37 | private String amoigs; |
| 33 | 38 | } | ... | ... |
| ... | ... | @@ -6,7 +6,6 @@ import com.qgutech.qgyun.apaas.sync.base.BoErrorCode; |
| 6 | 6 | import com.qgutech.qgyun.apaas.sync.base.BoException; |
| 7 | 7 | import com.qgutech.qgyun.apaas.sync.cps.dto.AbImprovementSummaryDTO; |
| 8 | 8 | import com.qgutech.qgyun.apaas.sync.cps.mapper.AbImprovementMapper; |
| 9 | -import com.qgutech.qgyun.apaas.sync.cps.mapper.AbImprovementTargetMapper; | |
| 10 | 9 | import com.qgutech.qgyun.apaas.sync.cps.model.AbImprovement; |
| 11 | 10 | import com.qgutech.qgyun.apaas.sync.cps.model.AbImprovementTarget; |
| 12 | 11 | import com.qgutech.qgyun.apaas.sync.cps.model.Workshop; |
| ... | ... | @@ -18,8 +17,6 @@ import org.springframework.util.Assert; |
| 18 | 17 | import tk.mybatis.mapper.entity.Example; |
| 19 | 18 | |
| 20 | 19 | import javax.annotation.Resource; |
| 21 | -import java.text.ParseException; | |
| 22 | -import java.text.SimpleDateFormat; | |
| 23 | 20 | import java.util.*; |
| 24 | 21 | import java.util.stream.Collectors; |
| 25 | 22 | |
| ... | ... | @@ -143,7 +140,7 @@ public class AbImprovementService extends BaseServiceImpl<AbImprovement> { |
| 143 | 140 | |
| 144 | 141 | // 7. 组装汇总结果(每个单位车间一条记录) |
| 145 | 142 | Map<String, Double> finalTargetMap = targetMap; |
| 146 | - return dwcjSummaryMap.entrySet().stream() | |
| 143 | + List<AbImprovementSummaryDTO> resultList = dwcjSummaryMap.entrySet().stream() | |
| 147 | 144 | .map(entry -> { |
| 148 | 145 | String dwcj = entry.getKey(); |
| 149 | 146 | AbImprovementSummaryDTO dto = new AbImprovementSummaryDTO(); |
| ... | ... | @@ -151,7 +148,7 @@ public class AbImprovementService extends BaseServiceImpl<AbImprovement> { |
| 151 | 148 | dto.setYear(queryYear); |
| 152 | 149 | dto.setTotalQnjyjz(entry.getValue()); |
| 153 | 150 | dto.setMb(finalTargetMap.get(dwcj)); |
| 154 | - // 设置单位车间名称 | |
| 151 | + // 设置单位车间名称、编号 | |
| 155 | 152 | Workshop workshop = workshopMap.get(dwcj); |
| 156 | 153 | if (workshop != null) { |
| 157 | 154 | dto.setDwcjName(workshop.getDwmc()); |
| ... | ... | @@ -164,5 +161,10 @@ public class AbImprovementService extends BaseServiceImpl<AbImprovement> { |
| 164 | 161 | return dto; |
| 165 | 162 | }) |
| 166 | 163 | .collect(Collectors.toList()); |
| 164 | + | |
| 165 | + // 8. 按单位车间编号升序排序,编号为空的排在最后 | |
| 166 | + resultList.sort(Comparator.comparing(AbImprovementSummaryDTO::getDwcjCode, | |
| 167 | + Comparator.nullsLast(Comparator.naturalOrder()))); | |
| 168 | + return resultList; | |
| 167 | 169 | } |
| 168 | 170 | } | ... | ... |
| 1 | 1 | package com.qgutech.qgyun.apaas.sync.cps.service; |
| 2 | 2 | |
| 3 | -import com.qgutech.qgyun.framework.database.mybatis.service.BaseServiceImpl; | |
| 4 | 3 | import com.qgutech.qgyun.apaas.sync.base.BoErrorCode; |
| 5 | 4 | import com.qgutech.qgyun.apaas.sync.base.BoException; |
| 5 | +import com.qgutech.qgyun.apaas.sync.cps.dto.CImprovementDetailDTO; | |
| 6 | 6 | import com.qgutech.qgyun.apaas.sync.cps.dto.CImprovementSummaryDTO; |
| 7 | 7 | import com.qgutech.qgyun.apaas.sync.cps.enums.QuarterEnum; |
| 8 | +import com.qgutech.qgyun.apaas.sync.cps.enums.CImprovementStatusEnum; | |
| 8 | 9 | import com.qgutech.qgyun.apaas.sync.cps.mapper.CImprovementMapper; |
| 9 | -import com.qgutech.qgyun.apaas.sync.cps.mapper.CImprovementTargetMapper; | |
| 10 | +import com.qgutech.qgyun.apaas.sync.cps.model.Area; | |
| 10 | 11 | import com.qgutech.qgyun.apaas.sync.cps.model.CImprovement; |
| 11 | 12 | import com.qgutech.qgyun.apaas.sync.cps.model.CImprovementTarget; |
| 13 | +import com.qgutech.qgyun.apaas.sync.cps.model.Personnel; | |
| 12 | 14 | import com.qgutech.qgyun.apaas.sync.cps.model.QuarterPersonnel; |
| 13 | 15 | import com.qgutech.qgyun.apaas.sync.cps.model.RoomGroup; |
| 16 | +import com.qgutech.qgyun.apaas.sync.cps.model.Team; | |
| 14 | 17 | import com.qgutech.qgyun.apaas.sync.cps.model.Workshop; |
| 18 | +import com.qgutech.qgyun.apaas.sync.org.model.UcOrg; | |
| 19 | +import com.qgutech.qgyun.apaas.sync.org.model.UcUser; | |
| 20 | +import com.qgutech.qgyun.apaas.sync.org.service.UcOrgService; | |
| 21 | +import com.qgutech.qgyun.apaas.sync.org.service.UcUserService; | |
| 22 | +import com.qgutech.qgyun.apaas.sync.utils.DateDealUtils; | |
| 23 | +import com.qgutech.qgyun.framework.database.mybatis.service.BaseServiceImpl; | |
| 15 | 24 | import org.apache.commons.collections4.CollectionUtils; |
| 16 | 25 | import org.apache.commons.lang3.StringUtils; |
| 26 | +import org.springframework.beans.BeanUtils; | |
| 17 | 27 | import org.springframework.stereotype.Service; |
| 18 | 28 | import org.springframework.transaction.annotation.Transactional; |
| 19 | 29 | import org.springframework.util.Assert; |
| 20 | 30 | import tk.mybatis.mapper.entity.Example; |
| 21 | 31 | |
| 22 | 32 | import javax.annotation.Resource; |
| 23 | -import java.text.ParseException; | |
| 24 | -import java.text.SimpleDateFormat; | |
| 25 | 33 | import java.util.*; |
| 26 | 34 | import java.util.stream.Collectors; |
| 27 | 35 | |
| ... | ... | @@ -35,7 +43,7 @@ public class CImprovementService extends BaseServiceImpl<CImprovement> { |
| 35 | 43 | private CImprovementMapper cImprovementMapper; |
| 36 | 44 | |
| 37 | 45 | @Resource |
| 38 | - private CImprovementTargetMapper cImprovementTargetMapper; | |
| 46 | + private CImprovementTargetService cImprovementTargetService; | |
| 39 | 47 | |
| 40 | 48 | @Resource |
| 41 | 49 | private QuarterPersonnelService quarterPersonnelService; |
| ... | ... | @@ -46,6 +54,21 @@ public class CImprovementService extends BaseServiceImpl<CImprovement> { |
| 46 | 54 | @Resource |
| 47 | 55 | private WorkshopService workshopService; |
| 48 | 56 | |
| 57 | + @Resource | |
| 58 | + private TeamService teamService; | |
| 59 | + | |
| 60 | + @Resource | |
| 61 | + private AreaService areaService; | |
| 62 | + | |
| 63 | + @Resource | |
| 64 | + private PersonnelService personnelService; | |
| 65 | + | |
| 66 | + @Resource | |
| 67 | + private UcUserService ucUserService; | |
| 68 | + | |
| 69 | + @Resource | |
| 70 | + private UcOrgService ucOrgService; | |
| 71 | + | |
| 49 | 72 | @Transactional(readOnly = true) |
| 50 | 73 | public CImprovement getById(String id) { |
| 51 | 74 | Assert.hasLength(id, "id is empty!"); |
| ... | ... | @@ -91,13 +114,13 @@ public class CImprovementService extends BaseServiceImpl<CImprovement> { |
| 91 | 114 | } |
| 92 | 115 | |
| 93 | 116 | /** |
| 94 | - * 根据年份和季度查询C类改善汇总(按单位车间分组) | |
| 117 | + * 根据年份和季度查询C类改善汇总(按室组维度分组) | |
| 95 | 118 | * <p> |
| 96 | - * 年份为空时默认查询当前年,季度必传 | |
| 119 | + * 年份为空时默认查询当前年,季度必传;返回列表按室组编号升序排序 | |
| 97 | 120 | * |
| 98 | 121 | * @param year 年份,格式:yyyy,可为空 |
| 99 | 122 | * @param quarter 季度枚举值(#1#-#4#),必传 |
| 100 | - * @return C类改善汇总列表 | |
| 123 | + * @return C类改善汇总列表(按室组编号升序) | |
| 101 | 124 | */ |
| 102 | 125 | @Transactional(readOnly = true) |
| 103 | 126 | public List<CImprovementSummaryDTO> summaryByYearAndQuarter(String year, String quarter) { |
| ... | ... | @@ -111,28 +134,27 @@ public class CImprovementService extends BaseServiceImpl<CImprovement> { |
| 111 | 134 | Assert.isTrue(queryYear.matches("\\d{4}"), "year format must be yyyy!"); |
| 112 | 135 | |
| 113 | 136 | // 3. 计算季度的开始时间和结束时间 |
| 114 | - Date startTime = parseQuarterStartTime(queryYear, quarterEnum); | |
| 115 | - Date endTime = parseQuarterEndTime(queryYear, quarterEnum); | |
| 137 | + Date startTime = DateDealUtils.parseQuarterStartTime(queryYear, quarterEnum); | |
| 138 | + Date endTime = DateDealUtils.parseQuarterEndTime(queryYear, quarterEnum); | |
| 116 | 139 | |
| 117 | 140 | // 4. 查询该季度时间范围内的C类改善记录 |
| 118 | 141 | Example example = new Example(CImprovement.class); |
| 119 | 142 | example.createCriteria() |
| 120 | - .andBetween("createTime", startTime, endTime); | |
| 143 | + .andBetween(CImprovement.CREATED_AT, startTime, endTime); | |
| 121 | 144 | List<CImprovement> cImprovementList = cImprovementMapper.selectByExample(example); |
| 122 | 145 | |
| 123 | 146 | // 5. 查询该年份季度的季度人员信息 |
| 124 | - Date yearStartTime = parseYearStartTime(queryYear); | |
| 125 | - List<QuarterPersonnel> quarterPersonnelList = quarterPersonnelService.listByYearAndQuarter(yearStartTime, quarter); | |
| 147 | + List<QuarterPersonnel> quarterPersonnelList = quarterPersonnelService.listByYearAndQuarter(queryYear, quarterEnum); | |
| 126 | 148 | |
| 127 | 149 | if (CollectionUtils.isEmpty(quarterPersonnelList)) { |
| 128 | 150 | return new ArrayList<>(0); |
| 129 | 151 | } |
| 130 | 152 | |
| 131 | - // 6. 构建人员工号到季度人员信息的映射 | |
| 153 | + // 6. 构建人员id到季度人员信息的映射 | |
| 132 | 154 | Map<String, QuarterPersonnel> personnelMap = quarterPersonnelList.stream() |
| 133 | 155 | .filter(item -> item.getRygh() != null) |
| 134 | 156 | .collect(Collectors.toMap( |
| 135 | - QuarterPersonnel::getRygh, | |
| 157 | + QuarterPersonnel::getYhry, | |
| 136 | 158 | item -> item, |
| 137 | 159 | (v1, v2) -> v1 |
| 138 | 160 | )); |
| ... | ... | @@ -146,13 +168,12 @@ public class CImprovementService extends BaseServiceImpl<CImprovement> { |
| 146 | 168 | )); |
| 147 | 169 | |
| 148 | 170 | // 8. 统计每个室组有C类改善记录的人数(同一人多条记录算一次) |
| 149 | - // 先获取有改善记录的发起人工号集合 | |
| 150 | - Set<String> improvementFqrSet = cImprovementList.stream() | |
| 171 | + Set<String> improvementFqrSet = CollectionUtils.isEmpty(cImprovementList) ? Collections.emptySet() | |
| 172 | + : cImprovementList.stream() | |
| 151 | 173 | .filter(item -> item.getFqr() != null) |
| 152 | 174 | .map(CImprovement::getFqr) |
| 153 | 175 | .collect(Collectors.toSet()); |
| 154 | 176 | |
| 155 | - // 按室组统计有改善记录的人数 | |
| 156 | 177 | Map<String, Set<String>> roomGroupImprovementPersonnelMap = new HashMap<>(); |
| 157 | 178 | for (String fqr : improvementFqrSet) { |
| 158 | 179 | QuarterPersonnel personnel = personnelMap.get(fqr); |
| ... | ... | @@ -161,13 +182,8 @@ public class CImprovementService extends BaseServiceImpl<CImprovement> { |
| 161 | 182 | } |
| 162 | 183 | } |
| 163 | 184 | |
| 164 | - // 9. 查询该年份的C类目标信息(按室组维度) | |
| 165 | - Example targetExample = new Example(CImprovementTarget.class); | |
| 166 | - targetExample.createCriteria() | |
| 167 | - .andEqualTo("year", yearStartTime); | |
| 168 | - List<CImprovementTarget> targetList = cImprovementTargetMapper.selectByExample(targetExample); | |
| 169 | - | |
| 170 | - // 构建目标值映射Map:szxx(室组) -> mb | |
| 185 | + // 9. 查询该年份的C类目标信息(按室组维度),走 CImprovementTargetService | |
| 186 | + List<CImprovementTarget> targetList = cImprovementTargetService.listByYear(queryYear); | |
| 171 | 187 | Map<String, Double> targetMap = new HashMap<>(); |
| 172 | 188 | if (CollectionUtils.isNotEmpty(targetList)) { |
| 173 | 189 | targetMap = targetList.stream() |
| ... | ... | @@ -179,29 +195,26 @@ public class CImprovementService extends BaseServiceImpl<CImprovement> { |
| 179 | 195 | )); |
| 180 | 196 | } |
| 181 | 197 | |
| 182 | - // 10. 查询室组详细信息(室组名称、所属单位) | |
| 198 | + // 10. 查询室组详细信息(室组名称、室组编号、所属单位) | |
| 183 | 199 | Set<String> roomGroupIds = roomGroupPersonnelCountMap.keySet(); |
| 184 | - Map<String, RoomGroup> roomGroupMap = new HashMap<>(); | |
| 185 | - if (CollectionUtils.isNotEmpty(roomGroupIds)) { | |
| 186 | - roomGroupMap = roomGroupService.mapByIds(roomGroupIds); | |
| 187 | - } | |
| 200 | + Map<String, RoomGroup> roomGroupMap = CollectionUtils.isEmpty(roomGroupIds) | |
| 201 | + ? new HashMap<>(0) | |
| 202 | + : roomGroupService.mapByIds(roomGroupIds); | |
| 188 | 203 | |
| 189 | - // 11. 根据室组所属单位查询单位车间详细信息 | |
| 204 | + // 11. 根据室组所属单位查询单位车间详细信息(含单位编号) | |
| 190 | 205 | Set<String> dwcjIds = roomGroupMap.values().stream() |
| 191 | 206 | .map(RoomGroup::getSsdw) |
| 192 | 207 | .filter(Objects::nonNull) |
| 193 | 208 | .collect(Collectors.toSet()); |
| 194 | - Map<String, Workshop> workshopMap = new HashMap<>(); | |
| 195 | - if (CollectionUtils.isNotEmpty(dwcjIds)) { | |
| 196 | - workshopMap = workshopService.mapByIds(dwcjIds); | |
| 197 | - } | |
| 209 | + Map<String, Workshop> workshopMap = CollectionUtils.isEmpty(dwcjIds) | |
| 210 | + ? new HashMap<>(0) | |
| 211 | + : workshopService.mapByIds(dwcjIds); | |
| 198 | 212 | |
| 199 | 213 | // 12. 组装汇总结果(按室组维度) |
| 200 | 214 | Map<String, Double> finalTargetMap = targetMap; |
| 201 | 215 | Map<String, RoomGroup> finalRoomGroupMap = roomGroupMap; |
| 202 | 216 | Map<String, Workshop> finalWorkshopMap = workshopMap; |
| 203 | - String finalQueryYear = queryYear; | |
| 204 | - return roomGroupPersonnelCountMap.entrySet().stream() | |
| 217 | + List<CImprovementSummaryDTO> resultList = roomGroupPersonnelCountMap.entrySet().stream() | |
| 205 | 218 | .map(entry -> { |
| 206 | 219 | String szxx = entry.getKey(); |
| 207 | 220 | int totalPersonnel = entry.getValue().intValue(); |
| ... | ... | @@ -209,7 +222,7 @@ public class CImprovementService extends BaseServiceImpl<CImprovement> { |
| 209 | 222 | |
| 210 | 223 | CImprovementSummaryDTO dto = new CImprovementSummaryDTO(); |
| 211 | 224 | dto.setSzxx(szxx); |
| 212 | - dto.setYear(finalQueryYear); | |
| 225 | + dto.setYear(queryYear); | |
| 213 | 226 | dto.setQuarter(quarter); |
| 214 | 227 | dto.setQuarterDesc(quarterEnum.getDesc()); |
| 215 | 228 | dto.setTotalPersonnel(totalPersonnel); |
| ... | ... | @@ -217,15 +230,17 @@ public class CImprovementService extends BaseServiceImpl<CImprovement> { |
| 217 | 230 | // 目标值按室组维度匹配 |
| 218 | 231 | dto.setMb(finalTargetMap.get(szxx)); |
| 219 | 232 | |
| 220 | - // 设置室组名称及所属单位车间信息 | |
| 233 | + // 设置室组名称、室组编号及所属单位车间信息 | |
| 221 | 234 | RoomGroup roomGroup = finalRoomGroupMap.get(szxx); |
| 222 | 235 | if (roomGroup != null) { |
| 223 | 236 | dto.setSzmc(roomGroup.getSzmc()); |
| 237 | + dto.setSzbh(roomGroup.getSzbh()); | |
| 224 | 238 | String dwcj = roomGroup.getSsdw(); |
| 225 | 239 | dto.setDwcj(dwcj); |
| 226 | 240 | Workshop workshop = finalWorkshopMap.get(dwcj); |
| 227 | 241 | if (workshop != null) { |
| 228 | 242 | dto.setDwcjName(workshop.getDwmc()); |
| 243 | + dto.setDwcjCode(workshop.getDwbh()); | |
| 229 | 244 | } |
| 230 | 245 | } |
| 231 | 246 | |
| ... | ... | @@ -237,41 +252,179 @@ public class CImprovementService extends BaseServiceImpl<CImprovement> { |
| 237 | 252 | return dto; |
| 238 | 253 | }) |
| 239 | 254 | .collect(Collectors.toList()); |
| 255 | + | |
| 256 | + // 13. 按室组编号升序排序,编号为空的排在最后 | |
| 257 | + resultList.sort(Comparator.comparing(CImprovementSummaryDTO::getSzbh, | |
| 258 | + Comparator.nullsLast(Comparator.naturalOrder()))); | |
| 259 | + return resultList; | |
| 240 | 260 | } |
| 241 | 261 | |
| 242 | 262 | /** |
| 243 | - * 解析年份开始时间 | |
| 263 | + * 根据年份、季度、单位车间id查询C类改善记录详情列表 | |
| 264 | + * <p> | |
| 265 | + * 查询该年份季度时间范围内、由该单位车间下人员发起的C类改善记录, | |
| 266 | + * 并将记录中涉及的单位、室组、区域、班组、发起人、部门等关联实体名称补充完整 | |
| 267 | + * | |
| 268 | + * @param year 年份,格式:yyyy,可为空(默认当前年) | |
| 269 | + * @param quarter 季度枚举值(#1#-#4#),必传 | |
| 270 | + * @param roomGroupId 室组id,必传 | |
| 271 | + * @return C类改善记录详情列表(含关联实体名称) | |
| 244 | 272 | */ |
| 245 | - private Date parseYearStartTime(String year) { | |
| 246 | - try { | |
| 247 | - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | |
| 248 | - return sdf.parse(year + "-01-01 00:00:00"); | |
| 249 | - } catch (ParseException e) { | |
| 250 | - throw new BoException(BoErrorCode.PARAM_ERROR, "年份格式错误"); | |
| 273 | + @Transactional(readOnly = true) | |
| 274 | + public List<CImprovementDetailDTO> listDetailByYearQuarterAndRoomGroup(String year, String quarter, String roomGroupId) { | |
| 275 | + // 1. 校验参数 | |
| 276 | + Assert.hasLength(quarter, "quarter is empty!"); | |
| 277 | + Assert.hasLength(roomGroupId, "roomGroupId is empty!"); | |
| 278 | + QuarterEnum quarterEnum = QuarterEnum.fromCode(quarter); | |
| 279 | + Assert.notNull(quarterEnum, "quarter format is invalid!"); | |
| 280 | + | |
| 281 | + String queryYear = StringUtils.isBlank(year) ? String.valueOf(Calendar.getInstance().get(Calendar.YEAR)) : year; | |
| 282 | + Assert.isTrue(queryYear.matches("\\d{4}"), "year format must be yyyy!"); | |
| 283 | + | |
| 284 | + // 2. 计算季度时间范围 | |
| 285 | + Date startTime = DateDealUtils.parseQuarterStartTime(queryYear, quarterEnum); | |
| 286 | + Date endTime = DateDealUtils.parseQuarterEndTime(queryYear, quarterEnum); | |
| 287 | + | |
| 288 | + // 3. 查询该年份季度该室组下的季度人员信息 | |
| 289 | + List<QuarterPersonnel> quarterPersonnelList = quarterPersonnelService.listByYearQuarterAndRoomGroup(queryYear, quarterEnum, roomGroupId); | |
| 290 | + if (CollectionUtils.isEmpty(quarterPersonnelList)) { | |
| 291 | + return new ArrayList<>(0); | |
| 251 | 292 | } |
| 252 | - } | |
| 253 | 293 | |
| 254 | - /** | |
| 255 | - * 解析季度开始时间 | |
| 256 | - */ | |
| 257 | - private Date parseQuarterStartTime(String year, QuarterEnum quarter) { | |
| 258 | - try { | |
| 259 | - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | |
| 260 | - return sdf.parse(year + "-" + quarter.getStartDate() + " 00:00:00"); | |
| 261 | - } catch (ParseException e) { | |
| 262 | - throw new BoException(BoErrorCode.PARAM_ERROR, "季度日期格式错误"); | |
| 294 | + // 4. 获取人员id集合(yhry),用于匹配C类改善记录的发起人 | |
| 295 | + Set<String> personnelYhrySet = quarterPersonnelList.stream() | |
| 296 | + .filter(item -> item.getYhry() != null) | |
| 297 | + .map(QuarterPersonnel::getYhry) | |
| 298 | + .collect(Collectors.toSet()); | |
| 299 | + if (CollectionUtils.isEmpty(personnelYhrySet)) { | |
| 300 | + return new ArrayList<>(0); | |
| 263 | 301 | } |
| 264 | - } | |
| 265 | 302 | |
| 266 | - /** | |
| 267 | - * 解析季度结束时间 | |
| 268 | - */ | |
| 269 | - private Date parseQuarterEndTime(String year, QuarterEnum quarter) { | |
| 270 | - try { | |
| 271 | - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | |
| 272 | - return sdf.parse(year + "-" + quarter.getEndDate() + " 23:59:59"); | |
| 273 | - } catch (ParseException e) { | |
| 274 | - throw new BoException(BoErrorCode.PARAM_ERROR, "季度日期格式错误"); | |
| 303 | + // 5. 查询该季度时间范围内、发起人属于该单位车间人员的C类改善记录 | |
| 304 | + Example example = new Example(CImprovement.class); | |
| 305 | + example.createCriteria() | |
| 306 | + .andBetween(CImprovement.CREATED_AT, startTime, endTime) | |
| 307 | + .andIn(CImprovement.FQR, personnelYhrySet); | |
| 308 | + List<CImprovement> cImprovementList = cImprovementMapper.selectByExample(example); | |
| 309 | + if (CollectionUtils.isEmpty(cImprovementList)) { | |
| 310 | + return new ArrayList<>(0); | |
| 311 | + } | |
| 312 | + | |
| 313 | + // 6. 收集所有关联实体ID | |
| 314 | + Set<String> roomGroupIds = new HashSet<>(); | |
| 315 | + Set<String> teamIds = new HashSet<>(); | |
| 316 | + Set<String> orgIds = new HashSet<>(); | |
| 317 | + Set<String> userIds = new HashSet<>(); | |
| 318 | + Set<String> areaIds = new HashSet<>(); | |
| 319 | + Set<String> workshopIds = new HashSet<>(); | |
| 320 | + | |
| 321 | + for (CImprovement item : cImprovementList) { | |
| 322 | + if (item.getSzmc() != null) roomGroupIds.add(item.getSzmc()); | |
| 323 | + if (item.getBz() != null) teamIds.add(item.getBz()); | |
| 324 | + if (item.getBm() != null) orgIds.add(item.getBm()); | |
| 325 | + if (item.getQzqr() != null) userIds.add(item.getQzqr()); | |
| 326 | + if (item.getGsyqr() != null) userIds.add(item.getGsyqr()); | |
| 327 | + if (item.getFqr() != null) userIds.add(item.getFqr()); | |
| 275 | 328 | } |
| 329 | + | |
| 330 | + // 从季度人员信息中收集区域id和单位车间id | |
| 331 | + for (QuarterPersonnel qp : quarterPersonnelList) { | |
| 332 | + if (qp.getSsqy() != null) areaIds.add(qp.getSsqy()); | |
| 333 | + if (qp.getShdw() != null) workshopIds.add(qp.getShdw()); | |
| 334 | + } | |
| 335 | + | |
| 336 | + // 7. 批量查询关联实体 | |
| 337 | + Map<String, RoomGroup> roomGroupMap = CollectionUtils.isEmpty(roomGroupIds) | |
| 338 | + ? new HashMap<>(0) : roomGroupService.mapByIds(roomGroupIds); | |
| 339 | + Map<String, Team> teamMap = CollectionUtils.isEmpty(teamIds) | |
| 340 | + ? new HashMap<>(0) : teamService.mapByIds(teamIds); | |
| 341 | + Map<String, UcOrg> orgMap = CollectionUtils.isEmpty(orgIds) | |
| 342 | + ? new HashMap<>(0) : ucOrgService.mapByIds(orgIds); | |
| 343 | + Map<String, UcUser> userMap = CollectionUtils.isEmpty(userIds) | |
| 344 | + ? new HashMap<>(0) : ucUserService.mapByIds(userIds); | |
| 345 | + Map<String, Area> areaMap = CollectionUtils.isEmpty(areaIds) | |
| 346 | + ? new HashMap<>(0) : areaService.mapByIds(areaIds); | |
| 347 | + | |
| 348 | + // 从室组中补充单位车间id | |
| 349 | + for (RoomGroup rg : roomGroupMap.values()) { | |
| 350 | + if (rg.getSsdw() != null) workshopIds.add(rg.getSsdw()); | |
| 351 | + } | |
| 352 | + Map<String, Workshop> workshopMap = CollectionUtils.isEmpty(workshopIds) | |
| 353 | + ? new HashMap<>(0) : workshopService.mapByIds(workshopIds); | |
| 354 | + | |
| 355 | + List<CImprovementDetailDTO> resultList = cImprovementList.stream() | |
| 356 | + .map(item -> { | |
| 357 | + CImprovementDetailDTO dto = new CImprovementDetailDTO(); | |
| 358 | + // 复制原始字段 | |
| 359 | + BeanUtils.copyProperties(item, dto); | |
| 360 | + | |
| 361 | + // 状态名称(枚举 CImprovementStatusEnum) | |
| 362 | + dto.setZtDesc(CImprovementStatusEnum.getDescByCode(item.getZt())); | |
| 363 | + | |
| 364 | + // 室组名称、编号及所属单位车间 | |
| 365 | + if (item.getSzmc() != null) { | |
| 366 | + RoomGroup rg = roomGroupMap.get(item.getSzmc()); | |
| 367 | + if (rg != null) { | |
| 368 | + dto.setSzmcName(rg.getSzmc()); | |
| 369 | + dto.setSzbh(rg.getSzbh()); | |
| 370 | + if (rg.getSsdw() != null) { | |
| 371 | + dto.setDwcj(rg.getSsdw()); | |
| 372 | + Workshop ws = workshopMap.get(rg.getSsdw()); | |
| 373 | + if (ws != null) { | |
| 374 | + dto.setDwcjName(ws.getDwmc()); | |
| 375 | + dto.setDwcjCode(ws.getDwbh()); | |
| 376 | + } | |
| 377 | + } | |
| 378 | + } | |
| 379 | + } | |
| 380 | + | |
| 381 | + // 班组名称 | |
| 382 | + if (item.getBz() != null) { | |
| 383 | + Team team = teamMap.get(item.getBz()); | |
| 384 | + if (team != null) { | |
| 385 | + dto.setBzName(team.getBzmc()); | |
| 386 | + } | |
| 387 | + } | |
| 388 | + | |
| 389 | + // 部门名称 | |
| 390 | + if (item.getBm() != null) { | |
| 391 | + UcOrg org = orgMap.get(item.getBm()); | |
| 392 | + if (org != null) { | |
| 393 | + dto.setBmName(org.getName()); | |
| 394 | + } | |
| 395 | + } | |
| 396 | + | |
| 397 | + // 发起人姓名 | |
| 398 | + if (item.getFqr() != null) { | |
| 399 | + UcUser user = userMap.get(item.getFqr()); | |
| 400 | + if (user != null) { | |
| 401 | + dto.setFqrName(user.getName()); | |
| 402 | + } | |
| 403 | + } | |
| 404 | + | |
| 405 | + // 区长确认姓名 | |
| 406 | + if (item.getQzqr() != null) { | |
| 407 | + UcUser user = userMap.get(item.getQzqr()); | |
| 408 | + if (user != null) { | |
| 409 | + dto.setQzqrName(user.getName()); | |
| 410 | + } | |
| 411 | + } | |
| 412 | + | |
| 413 | + // 改善员确认姓名 | |
| 414 | + if (item.getGsyqr() != null) { | |
| 415 | + UcUser user = userMap.get(item.getGsyqr()); | |
| 416 | + if (user != null) { | |
| 417 | + dto.setGsyqrName(user.getName()); | |
| 418 | + } | |
| 419 | + } | |
| 420 | + | |
| 421 | + return dto; | |
| 422 | + }) | |
| 423 | + .collect(Collectors.toList()); | |
| 424 | + | |
| 425 | + // 10. 按创建时间降序排序 | |
| 426 | + resultList.sort(Comparator.comparing(CImprovementDetailDTO::getCreatedAt, | |
| 427 | + Comparator.nullsLast(Comparator.reverseOrder()))); | |
| 428 | + return resultList; | |
| 276 | 429 | } |
| 277 | 430 | } | ... | ... |
| 1 | +package com.qgutech.qgyun.apaas.sync.cps.service; | |
| 2 | + | |
| 3 | +import com.qgutech.qgyun.apaas.sync.cps.mapper.CImprovementTargetMapper; | |
| 4 | +import com.qgutech.qgyun.apaas.sync.cps.model.CImprovementTarget; | |
| 5 | +import com.qgutech.qgyun.apaas.sync.utils.DateDealUtils; | |
| 6 | +import com.qgutech.qgyun.framework.database.mybatis.service.BaseServiceImpl; | |
| 7 | +import org.apache.commons.collections4.CollectionUtils; | |
| 8 | +import org.apache.commons.lang3.StringUtils; | |
| 9 | +import org.springframework.stereotype.Service; | |
| 10 | +import org.springframework.transaction.annotation.Transactional; | |
| 11 | +import org.springframework.util.Assert; | |
| 12 | +import tk.mybatis.mapper.entity.Example; | |
| 13 | + | |
| 14 | +import javax.annotation.Resource; | |
| 15 | +import java.util.ArrayList; | |
| 16 | +import java.util.Calendar; | |
| 17 | +import java.util.Date; | |
| 18 | +import java.util.List; | |
| 19 | + | |
| 20 | +/** | |
| 21 | + * CImprovementTarget 服务 | |
| 22 | + */ | |
| 23 | +@Service | |
| 24 | +public class CImprovementTargetService extends BaseServiceImpl<CImprovementTarget> { | |
| 25 | + | |
| 26 | + @Resource | |
| 27 | + private CImprovementTargetMapper cImprovementTargetMapper; | |
| 28 | + | |
| 29 | + /** | |
| 30 | + * 根据年份查询C类改善目标 | |
| 31 | + * | |
| 32 | + * @param year 年份,格式:yyyy,为空时默认当前年 | |
| 33 | + * @return C类改善目标列表 | |
| 34 | + */ | |
| 35 | + @Transactional(readOnly = true) | |
| 36 | + public List<CImprovementTarget> listByYear(String year) { | |
| 37 | + // 1. 处理年份参数,为空时默认为当前年 | |
| 38 | + String queryYear = StringUtils.isBlank(year) ? String.valueOf(Calendar.getInstance().get(Calendar.YEAR)) : year; | |
| 39 | + Assert.isTrue(queryYear.matches("\\d{4}"), "year format must be yyyy!"); | |
| 40 | + | |
| 41 | + // 2. 计算年份的开始时间和结束时间 | |
| 42 | + Date startTime = DateDealUtils.parseYearStartTime(queryYear); | |
| 43 | + Date endTime = DateDealUtils.parseYearEndTime(queryYear); | |
| 44 | + | |
| 45 | + // 3. 查询该年份的C类目标信息 | |
| 46 | + Example targetExample = new Example(entityClass); | |
| 47 | + targetExample.createCriteria() | |
| 48 | + .andBetween(CImprovementTarget.YEAR, startTime, endTime); | |
| 49 | + List<CImprovementTarget> targetList = cImprovementTargetMapper.selectByExample(targetExample); | |
| 50 | + if (CollectionUtils.isEmpty(targetList)) { | |
| 51 | + return new ArrayList<>(0); | |
| 52 | + } | |
| 53 | + return targetList; | |
| 54 | + } | |
| 55 | +} | ... | ... |
| 1 | 1 | package com.qgutech.qgyun.apaas.sync.cps.service; |
| 2 | 2 | |
| 3 | -import com.qgutech.qgyun.framework.database.mybatis.service.BaseServiceImpl; | |
| 4 | 3 | import com.qgutech.qgyun.apaas.sync.base.BoErrorCode; |
| 5 | 4 | import com.qgutech.qgyun.apaas.sync.base.BoException; |
| 5 | +import com.qgutech.qgyun.apaas.sync.cps.dto.CpsProblemDetailDTO; | |
| 6 | +import com.qgutech.qgyun.apaas.sync.cps.dto.CpsProblemSourceSummaryDTO; | |
| 7 | +import com.qgutech.qgyun.apaas.sync.cps.dto.CpsProblemSummaryDTO; | |
| 8 | +import com.qgutech.qgyun.apaas.sync.cps.enums.MbghlkEnum; | |
| 9 | +import com.qgutech.qgyun.apaas.sync.cps.enums.RylbEnum; | |
| 10 | +import com.qgutech.qgyun.apaas.sync.cps.enums.SflEnum; | |
| 11 | +import com.qgutech.qgyun.apaas.sync.cps.enums.WtclfsEnum; | |
| 12 | +import com.qgutech.qgyun.apaas.sync.cps.enums.WtclztEnum; | |
| 13 | +import com.qgutech.qgyun.apaas.sync.cps.enums.WtlbEnum; | |
| 14 | +import com.qgutech.qgyun.apaas.sync.cps.enums.WtlyEnum; | |
| 15 | +import com.qgutech.qgyun.apaas.sync.cps.enums.WtxzEnum; | |
| 6 | 16 | import com.qgutech.qgyun.apaas.sync.cps.mapper.CpsProblemMapper; |
| 17 | +import com.qgutech.qgyun.apaas.sync.cps.model.Area; | |
| 7 | 18 | import com.qgutech.qgyun.apaas.sync.cps.model.CpsProblem; |
| 19 | +import com.qgutech.qgyun.apaas.sync.cps.model.RoomGroup; | |
| 20 | +import com.qgutech.qgyun.apaas.sync.cps.model.Team; | |
| 21 | +import com.qgutech.qgyun.apaas.sync.cps.model.Workshop; | |
| 22 | +import com.qgutech.qgyun.apaas.sync.org.model.UcUser; | |
| 23 | +import com.qgutech.qgyun.apaas.sync.org.service.UcUserService; | |
| 24 | +import com.qgutech.qgyun.apaas.sync.utils.DateDealUtils; | |
| 25 | +import com.qgutech.qgyun.framework.database.mybatis.service.BaseServiceImpl; | |
| 8 | 26 | import org.apache.commons.collections4.CollectionUtils; |
| 27 | +import org.apache.commons.lang3.StringUtils; | |
| 28 | +import org.springframework.beans.BeanUtils; | |
| 9 | 29 | import org.springframework.stereotype.Service; |
| 10 | 30 | import org.springframework.transaction.annotation.Transactional; |
| 11 | 31 | import org.springframework.util.Assert; |
| ... | ... | @@ -24,6 +44,21 @@ public class CpsProblemService extends BaseServiceImpl<CpsProblem> { |
| 24 | 44 | @Resource |
| 25 | 45 | private CpsProblemMapper cpsProblemMapper; |
| 26 | 46 | |
| 47 | + @Resource | |
| 48 | + private WorkshopService workshopService; | |
| 49 | + | |
| 50 | + @Resource | |
| 51 | + private RoomGroupService roomGroupService; | |
| 52 | + | |
| 53 | + @Resource | |
| 54 | + private AreaService areaService; | |
| 55 | + | |
| 56 | + @Resource | |
| 57 | + private TeamService teamService; | |
| 58 | + | |
| 59 | + @Resource | |
| 60 | + private UcUserService ucUserService; | |
| 61 | + | |
| 27 | 62 | @Transactional(readOnly = true) |
| 28 | 63 | public CpsProblem getById(String id) { |
| 29 | 64 | Assert.hasLength(id, "id is empty!"); |
| ... | ... | @@ -67,4 +102,402 @@ public class CpsProblemService extends BaseServiceImpl<CpsProblem> { |
| 67 | 102 | |
| 68 | 103 | return cpsProblemMapper.selectAll(); |
| 69 | 104 | } |
| 105 | + | |
| 106 | + /** | |
| 107 | + * 根据计划解决时间范围查询问题记录,并按责任单位 + 问题处理状态维度汇总问题数 | |
| 108 | + * <p> | |
| 109 | + * 开始、结束时间为空时默认使用当前月的开始、结束时间 | |
| 110 | + * | |
| 111 | + * @param startTime 开始时间,格式:yyyy-MM-dd [HH:mm:ss],可为空(默认当前月 1 号 00:00:00) | |
| 112 | + * @param endTime 结束时间,格式:yyyy-MM-dd [HH:mm:ss],可为空(默认当前月最后一天 23:59:59) | |
| 113 | + * @return 各责任单位下各处理状态的问题数汇总列表(按责任单位编号升序) | |
| 114 | + */ | |
| 115 | + @Transactional(readOnly = true) | |
| 116 | + public List<CpsProblemSummaryDTO> summaryByPlanResolveTime(String startTime, String endTime) { | |
| 117 | + // 1. 解析时间参数,为空时默认当前月起止时间 | |
| 118 | + Date start = DateDealUtils.parseStartTimeOrCurrentMonthStart(startTime); | |
| 119 | + Date end = DateDealUtils.parseEndTimeOrCurrentMonthEnd(endTime); | |
| 120 | + Assert.notNull(start, "startTime is invalid!"); | |
| 121 | + Assert.notNull(end, "endTime is invalid!"); | |
| 122 | + Assert.isTrue(!start.after(end), "startTime must be earlier than endTime!"); | |
| 123 | + | |
| 124 | + // 2. 查询计划解决时间在范围内的所有问题记录 | |
| 125 | + Example example = new Example(CpsProblem.class); | |
| 126 | + example.createCriteria() | |
| 127 | + .andBetween(CpsProblem.JHJJSJ, start, end); | |
| 128 | + List<CpsProblem> cpsProblemList = cpsProblemMapper.selectByExample(example); | |
| 129 | + if (CollectionUtils.isEmpty(cpsProblemList)) { | |
| 130 | + return new ArrayList<>(0); | |
| 131 | + } | |
| 132 | + | |
| 133 | + // 3. 按责任单位分组,再按处理状态计数 | |
| 134 | + Map<String, Map<String, Long>> wtdwStatusCountMap = cpsProblemList.stream() | |
| 135 | + .filter(item -> item.getWtzrdw() != null) | |
| 136 | + .collect(Collectors.groupingBy( | |
| 137 | + CpsProblem::getWtzrdw, | |
| 138 | + Collectors.groupingBy( | |
| 139 | + item -> item.getWtclzt() == null ? "" : item.getWtclzt(), | |
| 140 | + Collectors.counting() | |
| 141 | + ) | |
| 142 | + )); | |
| 143 | + | |
| 144 | + if (wtdwStatusCountMap.isEmpty()) { | |
| 145 | + return new ArrayList<>(0); | |
| 146 | + } | |
| 147 | + | |
| 148 | + // 4. 批量查询责任单位详细信息 | |
| 149 | + Set<String> workshopIds = wtdwStatusCountMap.keySet(); | |
| 150 | + Map<String, Workshop> workshopMap = workshopService.mapByIds(workshopIds); | |
| 151 | + | |
| 152 | + // 5. 组装汇总结果 | |
| 153 | + List<CpsProblemSummaryDTO> resultList = wtdwStatusCountMap.entrySet().stream() | |
| 154 | + .map(entry -> { | |
| 155 | + String wtzrdw = entry.getKey(); | |
| 156 | + Map<String, Long> statusCountMap = entry.getValue(); | |
| 157 | + | |
| 158 | + CpsProblemSummaryDTO dto = new CpsProblemSummaryDTO(); | |
| 159 | + dto.setWtzrdw(wtzrdw); | |
| 160 | + | |
| 161 | + // 设置责任单位名称、编号 | |
| 162 | + Workshop workshop = workshopMap.get(wtzrdw); | |
| 163 | + if (workshop != null) { | |
| 164 | + dto.setWtzrdwName(workshop.getDwmc()); | |
| 165 | + dto.setWtzrdwCode(workshop.getDwbh()); | |
| 166 | + } | |
| 167 | + | |
| 168 | + // 计算总数 | |
| 169 | + int totalCount = statusCountMap.values().stream().mapToInt(Long::intValue).sum(); | |
| 170 | + dto.setTotalCount(totalCount); | |
| 171 | + | |
| 172 | + // 按预定义状态顺序填充状态明细(保证 4 个状态都存在,即使为 0) | |
| 173 | + List<CpsProblemSummaryDTO.StatusCount> statusCounts = new ArrayList<>(); | |
| 174 | + for (WtclztEnum statusEnum : WtclztEnum.values()) { | |
| 175 | + Long count = statusCountMap.getOrDefault(statusEnum.getCode(), 0L); | |
| 176 | + statusCounts.add(new CpsProblemSummaryDTO.StatusCount( | |
| 177 | + statusEnum.getCode(), statusEnum.getDesc(), count.intValue())); | |
| 178 | + } | |
| 179 | + // 处理非预定义状态(如空值或异常状态码) | |
| 180 | + for (Map.Entry<String, Long> sc : statusCountMap.entrySet()) { | |
| 181 | + String code = sc.getKey(); | |
| 182 | + if (StringUtils.isBlank(code) || WtclztEnum.fromCode(code) == null) { | |
| 183 | + String desc = StringUtils.isBlank(code) ? "未设置" : code; | |
| 184 | + statusCounts.add(new CpsProblemSummaryDTO.StatusCount( | |
| 185 | + code, desc, sc.getValue().intValue())); | |
| 186 | + } | |
| 187 | + } | |
| 188 | + dto.setStatusCounts(statusCounts); | |
| 189 | + | |
| 190 | + return dto; | |
| 191 | + }) | |
| 192 | + .collect(Collectors.toList()); | |
| 193 | + | |
| 194 | + // 6. 按责任单位编号升序排序,编号为空的排在最后 | |
| 195 | + resultList.sort(Comparator.comparing(CpsProblemSummaryDTO::getWtzrdwCode, | |
| 196 | + Comparator.nullsLast(Comparator.naturalOrder()))); | |
| 197 | + return resultList; | |
| 198 | + } | |
| 199 | + | |
| 200 | + /** | |
| 201 | + * 根据计划解决时间范围、责任单位id、问题处理状态查询问题记录明细 | |
| 202 | + * <p> | |
| 203 | + * 结果中包含工作单位、责任单位、室组、区域、班组、问题提出人、问题处理人等关联实体名称; | |
| 204 | + * 开始、结束时间为空时默认使用当前月的开始、结束时间 | |
| 205 | + * | |
| 206 | + * @param startTime 开始时间,格式:yyyy-MM-dd [HH:mm:ss],可为空(默认当前月 1 号 00:00:00) | |
| 207 | + * @param endTime 结束时间,格式:yyyy-MM-dd [HH:mm:ss],可为空(默认当前月最后一天 23:59:59) | |
| 208 | + * @param wtzrdwId 责任单位id,必传 | |
| 209 | + * @param status 问题处理状态编号(#1#-#4#),必传 | |
| 210 | + * @return 问题记录明细列表(按创建时间降序) | |
| 211 | + */ | |
| 212 | + @Transactional(readOnly = true) | |
| 213 | + public List<CpsProblemDetailDTO> listDetailByPlanResolveTime(String startTime, String endTime, | |
| 214 | + String wtzrdwId, String status) { | |
| 215 | + // 1. 校验参数 | |
| 216 | + Assert.hasLength(wtzrdwId, "wtzrdwId is empty!"); | |
| 217 | + Assert.hasLength(status, "status is empty!"); | |
| 218 | + | |
| 219 | + // 解析时间参数,为空时默认当前月起止时间 | |
| 220 | + Date start = DateDealUtils.parseStartTimeOrCurrentMonthStart(startTime); | |
| 221 | + Date end = DateDealUtils.parseEndTimeOrCurrentMonthEnd(endTime); | |
| 222 | + Assert.notNull(start, "startTime is invalid!"); | |
| 223 | + Assert.notNull(end, "endTime is invalid!"); | |
| 224 | + Assert.isTrue(!start.after(end), "startTime must be earlier than endTime!"); | |
| 225 | + | |
| 226 | + // 校验状态格式,允许传入 #1# 或 1 两种形式,统一转换为 #1# | |
| 227 | + WtclztEnum statusEnum = WtclztEnum.fromCode(status); | |
| 228 | + Assert.notNull(statusEnum, "status format is invalid!"); | |
| 229 | + String statusCode = statusEnum.getCode(); | |
| 230 | + | |
| 231 | + // 2. 查询问题记录 | |
| 232 | + Example example = new Example(CpsProblem.class); | |
| 233 | + example.createCriteria() | |
| 234 | + .andBetween(CpsProblem.JHJJSJ, start, end) | |
| 235 | + .andEqualTo(CpsProblem.WTZRDW, wtzrdwId) | |
| 236 | + .andEqualTo(CpsProblem.WTCLZT, statusCode); | |
| 237 | + List<CpsProblem> cpsProblemList = cpsProblemMapper.selectByExample(example); | |
| 238 | + if (CollectionUtils.isEmpty(cpsProblemList)) { | |
| 239 | + return new ArrayList<>(0); | |
| 240 | + } | |
| 241 | + | |
| 242 | + // 3. 收集所有关联实体ID | |
| 243 | + Set<String> workshopIds = new HashSet<>(); | |
| 244 | + Set<String> roomGroupIds = new HashSet<>(); | |
| 245 | + Set<String> areaIds = new HashSet<>(); | |
| 246 | + Set<String> teamIds = new HashSet<>(); | |
| 247 | + Set<String> userIds = new HashSet<>(); | |
| 248 | + | |
| 249 | + for (CpsProblem item : cpsProblemList) { | |
| 250 | + if (item.getGzdw() != null) workshopIds.add(item.getGzdw()); | |
| 251 | + if (item.getWtzrdw() != null) workshopIds.add(item.getWtzrdw()); | |
| 252 | + if (item.getSz() != null) roomGroupIds.add(item.getSz()); | |
| 253 | + if (item.getQy() != null) areaIds.add(item.getQy()); | |
| 254 | + if (item.getBz() != null) teamIds.add(item.getBz()); | |
| 255 | + if (item.getWttcr() != null) userIds.add(item.getWttcr()); | |
| 256 | + if (item.getWtclr() != null) userIds.add(item.getWtclr()); | |
| 257 | + } | |
| 258 | + | |
| 259 | + // 4. 批量查询关联实体 | |
| 260 | + Map<String, Workshop> workshopMap = CollectionUtils.isEmpty(workshopIds) | |
| 261 | + ? new HashMap<>(0) : workshopService.mapByIds(workshopIds); | |
| 262 | + Map<String, RoomGroup> roomGroupMap = CollectionUtils.isEmpty(roomGroupIds) | |
| 263 | + ? new HashMap<>(0) : roomGroupService.mapByIds(roomGroupIds); | |
| 264 | + Map<String, Area> areaMap = CollectionUtils.isEmpty(areaIds) | |
| 265 | + ? new HashMap<>(0) : areaService.mapByIds(areaIds); | |
| 266 | + Map<String, Team> teamMap = CollectionUtils.isEmpty(teamIds) | |
| 267 | + ? new HashMap<>(0) : teamService.mapByIds(teamIds); | |
| 268 | + Map<String, UcUser> userMap = CollectionUtils.isEmpty(userIds) | |
| 269 | + ? new HashMap<>(0) : ucUserService.mapByIds(userIds); | |
| 270 | + | |
| 271 | + // 5. 组装明细结果 | |
| 272 | + List<CpsProblemDetailDTO> resultList = buildDetailList(cpsProblemList, workshopMap, roomGroupMap, areaMap, teamMap, userMap); | |
| 273 | + | |
| 274 | + // 6. 按创建时间降序排序 | |
| 275 | + resultList.sort(Comparator.comparing(CpsProblemDetailDTO::getCreatedAt, | |
| 276 | + Comparator.nullsLast(Comparator.reverseOrder()))); | |
| 277 | + return resultList; | |
| 278 | + } | |
| 279 | + | |
| 280 | + /** | |
| 281 | + * 根据创建时间范围查询问题记录,并按问题来源维度汇总问题数 | |
| 282 | + * <p> | |
| 283 | + * 开始、结束时间为空时默认使用当前月的开始、结束时间; | |
| 284 | + * 结果按 WtlyEnum 预定义顺序输出(含计数为 0 的来源),未知编号追加在后 | |
| 285 | + * | |
| 286 | + * @param startTime 开始时间,格式:yyyy-MM-dd [HH:mm:ss],可为空(默认当前月 1 号 00:00:00) | |
| 287 | + * @param endTime 结束时间,格式:yyyy-MM-dd [HH:mm:ss],可为空(默认当前月最后一天 23:59:59) | |
| 288 | + * @return 各问题来源对应的问题数汇总列表 | |
| 289 | + */ | |
| 290 | + @Transactional(readOnly = true) | |
| 291 | + public List<CpsProblemSourceSummaryDTO> summaryByCreatedAtSource(String startTime, String endTime) { | |
| 292 | + // 1. 解析时间参数,为空时默认当前月起止时间 | |
| 293 | + Date start = DateDealUtils.parseStartTimeOrCurrentMonthStart(startTime); | |
| 294 | + Date end = DateDealUtils.parseEndTimeOrCurrentMonthEnd(endTime); | |
| 295 | + Assert.notNull(start, "startTime is invalid!"); | |
| 296 | + Assert.notNull(end, "endTime is invalid!"); | |
| 297 | + Assert.isTrue(!start.after(end), "startTime must be earlier than endTime!"); | |
| 298 | + | |
| 299 | + // 2. 查询创建时间在范围内的问题记录 | |
| 300 | + Example example = new Example(CpsProblem.class); | |
| 301 | + example.createCriteria() | |
| 302 | + .andBetween(CpsProblem.CREATED_AT, start, end); | |
| 303 | + List<CpsProblem> cpsProblemList = cpsProblemMapper.selectByExample(example); | |
| 304 | + | |
| 305 | + // 3. 按问题来源分组计数(包含 null 和空字符串,统一归为“未设置”) | |
| 306 | + Map<String, Long> sourceCountMap = CollectionUtils.isEmpty(cpsProblemList) | |
| 307 | + ? new HashMap<>(0) | |
| 308 | + : cpsProblemList.stream() | |
| 309 | + .collect(Collectors.groupingBy( | |
| 310 | + item -> item.getWtly() == null ? "" : item.getWtly(), | |
| 311 | + Collectors.counting() | |
| 312 | + )); | |
| 313 | + | |
| 314 | + // 4. 按 WtlyEnum 预定义顺序输出,保证 5 个来源都存在(即使为 0) | |
| 315 | + List<CpsProblemSourceSummaryDTO> resultList = new ArrayList<>(); | |
| 316 | + for (WtlyEnum sourceEnum : WtlyEnum.values()) { | |
| 317 | + Long count = sourceCountMap.getOrDefault(sourceEnum.getCode(), 0L); | |
| 318 | + resultList.add(new CpsProblemSourceSummaryDTO( | |
| 319 | + sourceEnum.getCode(), sourceEnum.getDesc(), count.intValue())); | |
| 320 | + } | |
| 321 | + | |
| 322 | + // 5. 处理非预定义来源(如空值或异常编号) | |
| 323 | + for (Map.Entry<String, Long> entry : sourceCountMap.entrySet()) { | |
| 324 | + String code = entry.getKey(); | |
| 325 | + if (StringUtils.isBlank(code) || WtlyEnum.fromCode(code) == null) { | |
| 326 | + String desc = StringUtils.isBlank(code) ? "未设置" : code; | |
| 327 | + resultList.add(new CpsProblemSourceSummaryDTO(code, desc, entry.getValue().intValue())); | |
| 328 | + } | |
| 329 | + } | |
| 330 | + | |
| 331 | + return resultList; | |
| 332 | + } | |
| 333 | + | |
| 334 | + /** | |
| 335 | + * 根据创建时间范围、问题来源查询问题记录明细 | |
| 336 | + * <p> | |
| 337 | + * 结果中包含工作单位、责任单位、室组、区域、班组、问题提出人、问题处理人等关联实体名称; | |
| 338 | + * 开始、结束时间为空时默认使用当前月的开始、结束时间 | |
| 339 | + * | |
| 340 | + * @param startTime 开始时间,格式:yyyy-MM-dd [HH:mm:ss],可为空(默认当前月 1 号 00:00:00) | |
| 341 | + * @param endTime 结束时间,格式:yyyy-MM-dd [HH:mm:ss],可为空(默认当前月最后一天 23:59:59) | |
| 342 | + * @param wtly 问题来源编号(#1#-#5#),必传;兼容传入 1 ~ 5 的短形式 | |
| 343 | + * @return 问题记录明细列表(按创建时间降序) | |
| 344 | + */ | |
| 345 | + @Transactional(readOnly = true) | |
| 346 | + public List<CpsProblemDetailDTO> listDetailByCreatedAtAndSource(String startTime, String endTime, String wtly) { | |
| 347 | + // 1. 校验参数 | |
| 348 | + Assert.hasLength(wtly, "wtly is empty!"); | |
| 349 | + WtlyEnum sourceEnum = WtlyEnum.fromCode(wtly); | |
| 350 | + Assert.notNull(sourceEnum, "wtly format is invalid!"); | |
| 351 | + String sourceCode = sourceEnum.getCode(); | |
| 352 | + | |
| 353 | + // 解析时间参数,为空时默认当前月起止时间 | |
| 354 | + Date start = DateDealUtils.parseStartTimeOrCurrentMonthStart(startTime); | |
| 355 | + Date end = DateDealUtils.parseEndTimeOrCurrentMonthEnd(endTime); | |
| 356 | + Assert.notNull(start, "startTime is invalid!"); | |
| 357 | + Assert.notNull(end, "endTime is invalid!"); | |
| 358 | + Assert.isTrue(!start.after(end), "startTime must be earlier than endTime!"); | |
| 359 | + | |
| 360 | + // 2. 查询问题记录 | |
| 361 | + Example example = new Example(CpsProblem.class); | |
| 362 | + example.createCriteria() | |
| 363 | + .andBetween(CpsProblem.CREATED_AT, start, end) | |
| 364 | + .andEqualTo(CpsProblem.WTLY, sourceCode); | |
| 365 | + List<CpsProblem> cpsProblemList = cpsProblemMapper.selectByExample(example); | |
| 366 | + if (CollectionUtils.isEmpty(cpsProblemList)) { | |
| 367 | + return new ArrayList<>(0); | |
| 368 | + } | |
| 369 | + | |
| 370 | + // 3. 收集关联实体ID | |
| 371 | + Set<String> workshopIds = new HashSet<>(); | |
| 372 | + Set<String> roomGroupIds = new HashSet<>(); | |
| 373 | + Set<String> areaIds = new HashSet<>(); | |
| 374 | + Set<String> teamIds = new HashSet<>(); | |
| 375 | + Set<String> userIds = new HashSet<>(); | |
| 376 | + for (CpsProblem item : cpsProblemList) { | |
| 377 | + if (item.getGzdw() != null) workshopIds.add(item.getGzdw()); | |
| 378 | + if (item.getWtzrdw() != null) workshopIds.add(item.getWtzrdw()); | |
| 379 | + if (item.getSz() != null) roomGroupIds.add(item.getSz()); | |
| 380 | + if (item.getQy() != null) areaIds.add(item.getQy()); | |
| 381 | + if (item.getBz() != null) teamIds.add(item.getBz()); | |
| 382 | + if (item.getWttcr() != null) userIds.add(item.getWttcr()); | |
| 383 | + if (item.getWtclr() != null) userIds.add(item.getWtclr()); | |
| 384 | + } | |
| 385 | + | |
| 386 | + // 4. 批量查询关联实体 | |
| 387 | + Map<String, Workshop> workshopMap = CollectionUtils.isEmpty(workshopIds) | |
| 388 | + ? new HashMap<>(0) : workshopService.mapByIds(workshopIds); | |
| 389 | + Map<String, RoomGroup> roomGroupMap = CollectionUtils.isEmpty(roomGroupIds) | |
| 390 | + ? new HashMap<>(0) : roomGroupService.mapByIds(roomGroupIds); | |
| 391 | + Map<String, Area> areaMap = CollectionUtils.isEmpty(areaIds) | |
| 392 | + ? new HashMap<>(0) : areaService.mapByIds(areaIds); | |
| 393 | + Map<String, Team> teamMap = CollectionUtils.isEmpty(teamIds) | |
| 394 | + ? new HashMap<>(0) : teamService.mapByIds(teamIds); | |
| 395 | + Map<String, UcUser> userMap = CollectionUtils.isEmpty(userIds) | |
| 396 | + ? new HashMap<>(0) : ucUserService.mapByIds(userIds); | |
| 397 | + | |
| 398 | + // 5. 组装明细结果 | |
| 399 | + List<CpsProblemDetailDTO> resultList = buildDetailList(cpsProblemList, workshopMap, roomGroupMap, areaMap, teamMap, userMap); | |
| 400 | + | |
| 401 | + // 6. 按创建时间降序排序 | |
| 402 | + resultList.sort(Comparator.comparing(CpsProblemDetailDTO::getCreatedAt, | |
| 403 | + Comparator.nullsLast(Comparator.reverseOrder()))); | |
| 404 | + return resultList; | |
| 405 | + } | |
| 406 | + | |
| 407 | + /** | |
| 408 | + * 组装 CPS 问题明细 DTO 列表(含枚举名称、关联实体名称) | |
| 409 | + */ | |
| 410 | + private List<CpsProblemDetailDTO> buildDetailList(List<CpsProblem> cpsProblemList, | |
| 411 | + Map<String, Workshop> workshopMap, | |
| 412 | + Map<String, RoomGroup> roomGroupMap, | |
| 413 | + Map<String, Area> areaMap, | |
| 414 | + Map<String, Team> teamMap, | |
| 415 | + Map<String, UcUser> userMap) { | |
| 416 | + return cpsProblemList.stream() | |
| 417 | + .map(item -> { | |
| 418 | + CpsProblemDetailDTO dto = new CpsProblemDetailDTO(); | |
| 419 | + // 复制原始字段(同名属性) | |
| 420 | + BeanUtils.copyProperties(item, dto); | |
| 421 | + // 模型字段 wtzrdw 对应 DTO 字段 wtdw,需手动赋值 | |
| 422 | + dto.setWtzrdw(item.getWtzrdw()); | |
| 423 | + | |
| 424 | + // 处理状态描述 | |
| 425 | + dto.setWtclztDesc(WtclztEnum.getDescByCode(item.getWtclzt())); | |
| 426 | + | |
| 427 | + // 各枚举字段中文名称 | |
| 428 | + dto.setWtlyDesc(WtlyEnum.getDescByCode(item.getWtly())); | |
| 429 | + dto.setWtlbDesc(WtlbEnum.getDescByCode(item.getWtlb())); | |
| 430 | + dto.setWtxzDesc(WtxzEnum.getDescByCode(item.getWtxz())); | |
| 431 | + dto.setSflDesc(SflEnum.getDescByCode(item.getSfl())); | |
| 432 | + dto.setMbghlkDesc(MbghlkEnum.getDescByCode(item.getMbghlk())); | |
| 433 | + dto.setRylbDesc(RylbEnum.getDescByCode(item.getRylb())); | |
| 434 | + dto.setWtclfsDesc(WtclfsEnum.getDescByCode(item.getWtclfs())); | |
| 435 | + dto.setWtclfs2Desc(WtclfsEnum.getDescByCode(item.getWtclfs2())); | |
| 436 | + dto.setWtclfs3Desc(WtclfsEnum.getDescByCode(item.getWtclfs3())); | |
| 437 | + | |
| 438 | + // 工作单位 | |
| 439 | + if (item.getGzdw() != null) { | |
| 440 | + Workshop ws = workshopMap.get(item.getGzdw()); | |
| 441 | + if (ws != null) { | |
| 442 | + dto.setGzdwName(ws.getDwmc()); | |
| 443 | + dto.setGzdwCode(ws.getDwbh()); | |
| 444 | + } | |
| 445 | + } | |
| 446 | + | |
| 447 | + // 问题责任单位 | |
| 448 | + if (item.getWtzrdw() != null) { | |
| 449 | + Workshop ws = workshopMap.get(item.getWtzrdw()); | |
| 450 | + if (ws != null) { | |
| 451 | + dto.setWtzrdwName(ws.getDwmc()); | |
| 452 | + dto.setWtzrdwCode(ws.getDwbh()); | |
| 453 | + } | |
| 454 | + } | |
| 455 | + | |
| 456 | + // 室组 | |
| 457 | + if (item.getSz() != null) { | |
| 458 | + RoomGroup rg = roomGroupMap.get(item.getSz()); | |
| 459 | + if (rg != null) { | |
| 460 | + dto.setSzName(rg.getSzmc()); | |
| 461 | + dto.setSzCode(rg.getSzbh()); | |
| 462 | + } | |
| 463 | + } | |
| 464 | + | |
| 465 | + // 区域 | |
| 466 | + if (item.getQy() != null) { | |
| 467 | + Area area = areaMap.get(item.getQy()); | |
| 468 | + if (area != null) { | |
| 469 | + dto.setQyName(area.getQymc()); | |
| 470 | + dto.setQyCode(area.getQybh()); | |
| 471 | + } | |
| 472 | + } | |
| 473 | + | |
| 474 | + // 班组 | |
| 475 | + if (item.getBz() != null) { | |
| 476 | + Team team = teamMap.get(item.getBz()); | |
| 477 | + if (team != null) { | |
| 478 | + dto.setBzName(team.getBzmc()); | |
| 479 | + dto.setBzCode(team.getBzbh()); | |
| 480 | + } | |
| 481 | + } | |
| 482 | + | |
| 483 | + // 问题提出人 | |
| 484 | + if (item.getWttcr() != null) { | |
| 485 | + UcUser user = userMap.get(item.getWttcr()); | |
| 486 | + if (user != null) { | |
| 487 | + dto.setWttcrName(user.getName()); | |
| 488 | + } | |
| 489 | + } | |
| 490 | + | |
| 491 | + // 问题处理人 | |
| 492 | + if (item.getWtclr() != null) { | |
| 493 | + UcUser user = userMap.get(item.getWtclr()); | |
| 494 | + if (user != null) { | |
| 495 | + dto.setWtclrName(user.getName()); | |
| 496 | + } | |
| 497 | + } | |
| 498 | + | |
| 499 | + return dto; | |
| 500 | + }) | |
| 501 | + .collect(Collectors.toList()); | |
| 502 | + } | |
| 70 | 503 | } | ... | ... |
| ... | ... | @@ -67,4 +67,28 @@ public class PersonnelService extends BaseServiceImpl<Personnel> { |
| 67 | 67 | |
| 68 | 68 | return personnelMapper.selectAll(); |
| 69 | 69 | } |
| 70 | + | |
| 71 | + /** | |
| 72 | + * 根据工号集合查询人员信息 | |
| 73 | + * | |
| 74 | + * @param ghSet 工号集合 | |
| 75 | + * @return 工号到人员信息的映射 | |
| 76 | + */ | |
| 77 | + @Transactional(readOnly = true) | |
| 78 | + public Map<String, Personnel> mapByGh(Collection<String> ghSet) { | |
| 79 | + if (CollectionUtils.isEmpty(ghSet)) { | |
| 80 | + return new HashMap<>(0); | |
| 81 | + } | |
| 82 | + | |
| 83 | + Example example = new Example(entityClass); | |
| 84 | + example.createCriteria().andIn(Personnel.GH, ghSet); | |
| 85 | + List<Personnel> personnelList = personnelMapper.selectByExample(example); | |
| 86 | + if (CollectionUtils.isEmpty(personnelList)) { | |
| 87 | + return new HashMap<>(0); | |
| 88 | + } | |
| 89 | + | |
| 90 | + return personnelList.stream() | |
| 91 | + .filter(p -> p.getGh() != null) | |
| 92 | + .collect(Collectors.toMap(Personnel::getGh, p -> p, (v1, v2) -> v1)); | |
| 93 | + } | |
| 70 | 94 | } | ... | ... |
| 1 | 1 | package com.qgutech.qgyun.apaas.sync.cps.service; |
| 2 | 2 | |
| 3 | +import com.qgutech.qgyun.apaas.sync.cps.enums.QuarterEnum; | |
| 4 | +import com.qgutech.qgyun.apaas.sync.utils.DateDealUtils; | |
| 3 | 5 | import com.qgutech.qgyun.framework.database.mybatis.service.BaseServiceImpl; |
| 4 | 6 | import com.qgutech.qgyun.apaas.sync.base.BoErrorCode; |
| 5 | 7 | import com.qgutech.qgyun.apaas.sync.base.BoException; |
| 6 | 8 | import com.qgutech.qgyun.apaas.sync.cps.mapper.QuarterPersonnelMapper; |
| 7 | 9 | import com.qgutech.qgyun.apaas.sync.cps.model.QuarterPersonnel; |
| 8 | 10 | import org.apache.commons.collections4.CollectionUtils; |
| 11 | +import org.apache.commons.lang3.StringUtils; | |
| 9 | 12 | import org.springframework.stereotype.Service; |
| 10 | 13 | import org.springframework.transaction.annotation.Transactional; |
| 11 | 14 | import org.springframework.util.Assert; |
| ... | ... | @@ -71,19 +74,56 @@ public class QuarterPersonnelService extends BaseServiceImpl<QuarterPersonnel> { |
| 71 | 74 | /** |
| 72 | 75 | * 根据年份和季度查询季度人员信息 |
| 73 | 76 | * |
| 74 | - * @param yearStartTime 年份开始时间 | |
| 75 | - * @param quarter 季度枚举值(#1#-#4#) | |
| 77 | + * @param year 年份 | |
| 78 | + * @param quarter 季度枚举值(#1#-#4#) | |
| 76 | 79 | * @return 季度人员信息列表 |
| 77 | 80 | */ |
| 78 | 81 | @Transactional(readOnly = true) |
| 79 | - public List<QuarterPersonnel> listByYearAndQuarter(Date yearStartTime, String quarter) { | |
| 80 | - Assert.notNull(yearStartTime, "year is empty!"); | |
| 81 | - Assert.hasLength(quarter, "quarter is empty!"); | |
| 82 | + public List<QuarterPersonnel> listByYearAndQuarter(String year, QuarterEnum quarter) { | |
| 83 | + // 2. 处理年份参数,为空时默认为当前年 | |
| 84 | + String queryYear = StringUtils.isBlank(year) ? String.valueOf(Calendar.getInstance().get(Calendar.YEAR)) : year; | |
| 85 | + Assert.isTrue(queryYear.matches("\\d{4}"), "year format must be yyyy!"); | |
| 86 | + Assert.notNull(quarter, "quarter is empty!"); | |
| 82 | 87 | |
| 88 | + Date yearStartTime = DateDealUtils.parseYearStartTime(queryYear); | |
| 89 | + Date yearEndTime = DateDealUtils.parseYearEndTime(queryYear); | |
| 83 | 90 | Example example = new Example(entityClass); |
| 84 | 91 | example.createCriteria() |
| 85 | - .andEqualTo("year", yearStartTime) | |
| 86 | - .andEqualTo("jdxx", quarter); | |
| 92 | + .andBetween(QuarterPersonnel.YEAR, yearStartTime, yearEndTime) | |
| 93 | + .andEqualTo(QuarterPersonnel.JDXX, quarter.getCode()); | |
| 94 | + List<QuarterPersonnel> quarterPersonnelList = quarterPersonnelMapper.selectByExample(example); | |
| 95 | + if (CollectionUtils.isEmpty(quarterPersonnelList)) { | |
| 96 | + return new ArrayList<>(0); | |
| 97 | + } | |
| 98 | + return quarterPersonnelList; | |
| 99 | + } | |
| 100 | + | |
| 101 | + /** | |
| 102 | + * 根据年份、季度和室组id查询季度人员信息 | |
| 103 | + * | |
| 104 | + * @param year 年份,格式:yyyy,为空时默认当前年 | |
| 105 | + * @param quarter 季度枚举值(#1#-#4#) | |
| 106 | + * @param roomGroupId 室组id | |
| 107 | + * @return 季度人员信息列表 | |
| 108 | + */ | |
| 109 | + @Transactional(readOnly = true) | |
| 110 | + public List<QuarterPersonnel> listByYearQuarterAndRoomGroup(String year, QuarterEnum quarter, String roomGroupId) { | |
| 111 | + // 1. 处理年份参数,为空时默认为当前年 | |
| 112 | + String queryYear = StringUtils.isBlank(year) ? String.valueOf(Calendar.getInstance().get(Calendar.YEAR)) : year; | |
| 113 | + Assert.isTrue(queryYear.matches("\\d{4}"), "year format must be yyyy!"); | |
| 114 | + Assert.notNull(quarter, "quarter is empty!"); | |
| 115 | + Assert.hasLength(roomGroupId, "roomGroupId is empty!"); | |
| 116 | + | |
| 117 | + // 2. 计算年份的开始时间和结束时间 | |
| 118 | + Date yearStartTime = DateDealUtils.parseYearStartTime(queryYear); | |
| 119 | + Date yearEndTime = DateDealUtils.parseYearEndTime(queryYear); | |
| 120 | + | |
| 121 | + // 3. 查询该年份季度该室组下的季度人员信息 | |
| 122 | + Example example = new Example(entityClass); | |
| 123 | + example.createCriteria() | |
| 124 | + .andBetween(QuarterPersonnel.YEAR, yearStartTime, yearEndTime) | |
| 125 | + .andEqualTo(QuarterPersonnel.JDXX, quarter.getCode()) | |
| 126 | + .andEqualTo(QuarterPersonnel.SHSZ, roomGroupId); | |
| 87 | 127 | List<QuarterPersonnel> quarterPersonnelList = quarterPersonnelMapper.selectByExample(example); |
| 88 | 128 | if (CollectionUtils.isEmpty(quarterPersonnelList)) { |
| 89 | 129 | return new ArrayList<>(0); | ... | ... |
| 1 | +package com.qgutech.qgyun.apaas.sync.org.model; | |
| 2 | + | |
| 3 | +import com.qgutech.qgyun.framework.database.model.BaseCorpModel; | |
| 4 | +import lombok.Getter; | |
| 5 | +import lombok.Setter; | |
| 6 | +import lombok.ToString; | |
| 7 | + | |
| 8 | +import javax.persistence.Table; | |
| 9 | + | |
| 10 | +/** | |
| 11 | + * 组织结构信息 | |
| 12 | + */ | |
| 13 | +@Getter | |
| 14 | +@Setter | |
| 15 | +@ToString | |
| 16 | +@Table(name = "t_apaas_uc_org") | |
| 17 | +public class UcOrg extends BaseCorpModel { | |
| 18 | + | |
| 19 | + public static final String NAME = "name"; | |
| 20 | + public static final String PARENT_ID = "parentId"; | |
| 21 | + | |
| 22 | + /* | |
| 23 | + * 部门编码 | |
| 24 | + */ | |
| 25 | + private String code; | |
| 26 | + | |
| 27 | + /* | |
| 28 | + * 部门名称 | |
| 29 | + */ | |
| 30 | + private String name; | |
| 31 | + | |
| 32 | + /* | |
| 33 | + * 部门负责人 | |
| 34 | + */ | |
| 35 | + private String administrator; | |
| 36 | + | |
| 37 | + /* | |
| 38 | + * 部门类型 | |
| 39 | + */ | |
| 40 | + private String type; | |
| 41 | + | |
| 42 | + /* | |
| 43 | + * 父级ID | |
| 44 | + */ | |
| 45 | + private String parentId; | |
| 46 | + | |
| 47 | + /* | |
| 48 | + * 引用类型 | |
| 49 | + */ | |
| 50 | + private String refType; | |
| 51 | + | |
| 52 | + /* | |
| 53 | + * 引用ID | |
| 54 | + */ | |
| 55 | + private String refId; | |
| 56 | + | |
| 57 | + /* | |
| 58 | + * 排序 | |
| 59 | + */ | |
| 60 | + private Double sorts; | |
| 61 | +} | ... | ... |
| 1 | +package com.qgutech.qgyun.apaas.sync.org.model; | |
| 2 | + | |
| 3 | +import com.fasterxml.jackson.annotation.JsonFormat; | |
| 4 | +import com.qgutech.qgyun.framework.database.model.BaseCorpModel; | |
| 5 | +import lombok.Getter; | |
| 6 | +import lombok.Setter; | |
| 7 | +import lombok.ToString; | |
| 8 | +import org.springframework.format.annotation.DateTimeFormat; | |
| 9 | + | |
| 10 | +import javax.persistence.Column; | |
| 11 | +import javax.persistence.Table; | |
| 12 | +import java.util.Date; | |
| 13 | + | |
| 14 | +/** | |
| 15 | + * 组织用户信息 | |
| 16 | + */ | |
| 17 | +@Getter | |
| 18 | +@Setter | |
| 19 | +@ToString | |
| 20 | +@Table(name = "t_apaas_uc_user") | |
| 21 | +public class UcUser extends BaseCorpModel { | |
| 22 | + | |
| 23 | + public static final String NAME = "name"; | |
| 24 | + | |
| 25 | + /* | |
| 26 | + * 姓名 | |
| 27 | + */ | |
| 28 | + private String name; | |
| 29 | + | |
| 30 | + /* | |
| 31 | + * 姓名全拼 | |
| 32 | + */ | |
| 33 | + private String nameSpell; | |
| 34 | + | |
| 35 | + /* | |
| 36 | + * 手机号 | |
| 37 | + */ | |
| 38 | + private String mobile; | |
| 39 | + | |
| 40 | + /* | |
| 41 | + * 邮箱 | |
| 42 | + */ | |
| 43 | + private String email; | |
| 44 | + | |
| 45 | + /* | |
| 46 | + * 身份证号 | |
| 47 | + */ | |
| 48 | + private String idCard; | |
| 49 | + | |
| 50 | + /* | |
| 51 | + * 上级ID | |
| 52 | + */ | |
| 53 | + private String leaderId; | |
| 54 | + | |
| 55 | + /* | |
| 56 | + * 登录名 | |
| 57 | + */ | |
| 58 | + private String loginName; | |
| 59 | + | |
| 60 | + /* | |
| 61 | + * 状态 | |
| 62 | + */ | |
| 63 | + private String status; | |
| 64 | + | |
| 65 | + /* | |
| 66 | + * 密码 | |
| 67 | + */ | |
| 68 | + private String pwd; | |
| 69 | + | |
| 70 | + /* | |
| 71 | + * 类型 | |
| 72 | + */ | |
| 73 | + private String type; | |
| 74 | + | |
| 75 | + /* | |
| 76 | + * 是否启用报表(自定义字段) | |
| 77 | + */ | |
| 78 | + @Column(name = "_d_10409_enabled_report") | |
| 79 | + private Boolean d10409EnabledReport; | |
| 80 | + | |
| 81 | + /* | |
| 82 | + * 门户ID | |
| 83 | + */ | |
| 84 | + private String portalId; | |
| 85 | + | |
| 86 | + /* | |
| 87 | + * lflzvg | |
| 88 | + */ | |
| 89 | + private String lflzvg; | |
| 90 | + | |
| 91 | + /* | |
| 92 | + * 性别 | |
| 93 | + */ | |
| 94 | + private String sex; | |
| 95 | + | |
| 96 | + /* | |
| 97 | + * 上级 | |
| 98 | + */ | |
| 99 | + private String leader; | |
| 100 | + | |
| 101 | + /* | |
| 102 | + * 生日 | |
| 103 | + */ | |
| 104 | + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") | |
| 105 | + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") | |
| 106 | + private Date birthday; | |
| 107 | + | |
| 108 | + /* | |
| 109 | + * 启用报表 | |
| 110 | + */ | |
| 111 | + private String enabledReport; | |
| 112 | + | |
| 113 | + /* | |
| 114 | + * 头像 | |
| 115 | + */ | |
| 116 | + private String avatar; | |
| 117 | + | |
| 118 | + /* | |
| 119 | + * 引用类型 | |
| 120 | + */ | |
| 121 | + private String refType; | |
| 122 | + | |
| 123 | + /* | |
| 124 | + * 引用ID | |
| 125 | + */ | |
| 126 | + private String refId; | |
| 127 | +} | ... | ... |
| 1 | +package com.qgutech.qgyun.apaas.sync.org.service; | |
| 2 | + | |
| 3 | +import com.qgutech.qgyun.apaas.sync.base.BoErrorCode; | |
| 4 | +import com.qgutech.qgyun.apaas.sync.base.BoException; | |
| 5 | +import com.qgutech.qgyun.apaas.sync.org.mapper.UcOrgMapper; | |
| 6 | +import com.qgutech.qgyun.apaas.sync.org.model.UcOrg; | |
| 7 | +import com.qgutech.qgyun.framework.database.mybatis.service.BaseServiceImpl; | |
| 8 | +import org.apache.commons.collections4.CollectionUtils; | |
| 9 | +import org.springframework.stereotype.Service; | |
| 10 | +import org.springframework.transaction.annotation.Transactional; | |
| 11 | +import org.springframework.util.Assert; | |
| 12 | +import tk.mybatis.mapper.entity.Example; | |
| 13 | + | |
| 14 | +import javax.annotation.Resource; | |
| 15 | +import java.util.*; | |
| 16 | +import java.util.stream.Collectors; | |
| 17 | + | |
| 18 | +/** | |
| 19 | + * 组织结构信息服务 | |
| 20 | + */ | |
| 21 | +@Service | |
| 22 | +public class UcOrgService extends BaseServiceImpl<UcOrg> { | |
| 23 | + | |
| 24 | + @Resource | |
| 25 | + private UcOrgMapper ucOrgMapper; | |
| 26 | + | |
| 27 | + @Transactional(readOnly = true) | |
| 28 | + public UcOrg getById(String id) { | |
| 29 | + Assert.hasLength(id, "id is empty!"); | |
| 30 | + | |
| 31 | + Example example = new Example(entityClass); | |
| 32 | + example.createCriteria().andEqualTo(UcOrg.ID, id); | |
| 33 | + UcOrg ucOrg = ucOrgMapper.selectOneByExample(example); | |
| 34 | + if (null == ucOrg) { | |
| 35 | + throw new BoException(BoErrorCode.DATA_ERROR); | |
| 36 | + } | |
| 37 | + return ucOrg; | |
| 38 | + } | |
| 39 | + | |
| 40 | + @Transactional(readOnly = true) | |
| 41 | + public List<UcOrg> listByIds(Collection<String> ids) { | |
| 42 | + Assert.notEmpty(ids, "ids is empty!"); | |
| 43 | + | |
| 44 | + Example example = new Example(entityClass); | |
| 45 | + example.createCriteria().andIn(UcOrg.ID, ids); | |
| 46 | + List<UcOrg> ucOrgList = ucOrgMapper.selectByExample(example); | |
| 47 | + if (CollectionUtils.isEmpty(ucOrgList)) { | |
| 48 | + return new ArrayList<>(0); | |
| 49 | + } | |
| 50 | + return ucOrgList; | |
| 51 | + } | |
| 52 | + | |
| 53 | + @Transactional(readOnly = true) | |
| 54 | + public Map<String, UcOrg> mapByIds(Collection<String> ids) { | |
| 55 | + Assert.notEmpty(ids, "ids is empty!"); | |
| 56 | + | |
| 57 | + List<UcOrg> ucOrgList = listByIds(ids); | |
| 58 | + if (CollectionUtils.isEmpty(ucOrgList)) { | |
| 59 | + return new HashMap<>(0); | |
| 60 | + } | |
| 61 | + | |
| 62 | + return ucOrgList.stream().collect(Collectors.toMap(UcOrg::getId, ucOrg -> ucOrg)); | |
| 63 | + } | |
| 64 | + | |
| 65 | + @Transactional(readOnly = true) | |
| 66 | + public List<UcOrg> listAll() { | |
| 67 | + | |
| 68 | + return ucOrgMapper.selectAll(); | |
| 69 | + } | |
| 70 | +} | ... | ... |
| 1 | +package com.qgutech.qgyun.apaas.sync.org.service; | |
| 2 | + | |
| 3 | +import com.qgutech.qgyun.apaas.sync.base.BoErrorCode; | |
| 4 | +import com.qgutech.qgyun.apaas.sync.base.BoException; | |
| 5 | +import com.qgutech.qgyun.apaas.sync.org.mapper.UcUserMapper; | |
| 6 | +import com.qgutech.qgyun.apaas.sync.org.model.UcUser; | |
| 7 | +import com.qgutech.qgyun.framework.database.mybatis.service.BaseServiceImpl; | |
| 8 | +import org.apache.commons.collections4.CollectionUtils; | |
| 9 | +import org.springframework.stereotype.Service; | |
| 10 | +import org.springframework.transaction.annotation.Transactional; | |
| 11 | +import org.springframework.util.Assert; | |
| 12 | +import tk.mybatis.mapper.entity.Example; | |
| 13 | + | |
| 14 | +import javax.annotation.Resource; | |
| 15 | +import java.util.*; | |
| 16 | +import java.util.stream.Collectors; | |
| 17 | + | |
| 18 | +/** | |
| 19 | + * 组织用户信息服务 | |
| 20 | + */ | |
| 21 | +@Service | |
| 22 | +public class UcUserService extends BaseServiceImpl<UcUser> { | |
| 23 | + | |
| 24 | + @Resource | |
| 25 | + private UcUserMapper ucUserMapper; | |
| 26 | + | |
| 27 | + @Transactional(readOnly = true) | |
| 28 | + public UcUser getById(String id) { | |
| 29 | + Assert.hasLength(id, "id is empty!"); | |
| 30 | + | |
| 31 | + Example example = new Example(entityClass); | |
| 32 | + example.createCriteria().andEqualTo(UcUser.ID, id); | |
| 33 | + UcUser ucUser = ucUserMapper.selectOneByExample(example); | |
| 34 | + if (null == ucUser) { | |
| 35 | + throw new BoException(BoErrorCode.DATA_ERROR); | |
| 36 | + } | |
| 37 | + return ucUser; | |
| 38 | + } | |
| 39 | + | |
| 40 | + @Transactional(readOnly = true) | |
| 41 | + public List<UcUser> listByIds(Collection<String> ids) { | |
| 42 | + Assert.notEmpty(ids, "ids is empty!"); | |
| 43 | + | |
| 44 | + Example example = new Example(entityClass); | |
| 45 | + example.createCriteria().andIn(UcUser.ID, ids); | |
| 46 | + List<UcUser> ucUserList = ucUserMapper.selectByExample(example); | |
| 47 | + if (CollectionUtils.isEmpty(ucUserList)) { | |
| 48 | + return new ArrayList<>(0); | |
| 49 | + } | |
| 50 | + return ucUserList; | |
| 51 | + } | |
| 52 | + | |
| 53 | + @Transactional(readOnly = true) | |
| 54 | + public Map<String, UcUser> mapByIds(Collection<String> ids) { | |
| 55 | + Assert.notEmpty(ids, "ids is empty!"); | |
| 56 | + | |
| 57 | + List<UcUser> ucUserList = listByIds(ids); | |
| 58 | + if (CollectionUtils.isEmpty(ucUserList)) { | |
| 59 | + return new HashMap<>(0); | |
| 60 | + } | |
| 61 | + | |
| 62 | + return ucUserList.stream().collect(Collectors.toMap(UcUser::getId, ucUser -> ucUser)); | |
| 63 | + } | |
| 64 | + | |
| 65 | + @Transactional(readOnly = true) | |
| 66 | + public List<UcUser> listAll() { | |
| 67 | + | |
| 68 | + return ucUserMapper.selectAll(); | |
| 69 | + } | |
| 70 | +} | ... | ... |
| ... | ... | @@ -2,19 +2,23 @@ package com.qgutech.qgyun.apaas.sync.utils; |
| 2 | 2 | |
| 3 | 3 | import com.qgutech.qgyun.apaas.sync.base.BoErrorCode; |
| 4 | 4 | import com.qgutech.qgyun.apaas.sync.base.BoException; |
| 5 | +import com.qgutech.qgyun.apaas.sync.cps.enums.QuarterEnum; | |
| 5 | 6 | |
| 6 | 7 | import java.text.ParseException; |
| 7 | 8 | import java.text.SimpleDateFormat; |
| 9 | +import java.util.Calendar; | |
| 8 | 10 | import java.util.Date; |
| 9 | 11 | |
| 10 | 12 | public class DateDealUtils { |
| 11 | 13 | |
| 14 | + private static final String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss"; | |
| 15 | + | |
| 12 | 16 | /** |
| 13 | 17 | * 解析年份开始时间 |
| 14 | 18 | */ |
| 15 | 19 | public static Date parseYearStartTime(String year) { |
| 16 | 20 | try { |
| 17 | - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | |
| 21 | + SimpleDateFormat sdf = new SimpleDateFormat(DATE_TIME_PATTERN); | |
| 18 | 22 | return sdf.parse(year + "-01-01 00:00:00"); |
| 19 | 23 | } catch (ParseException e) { |
| 20 | 24 | throw new BoException(BoErrorCode.PARAM_ERROR, "年份格式错误"); |
| ... | ... | @@ -26,10 +30,151 @@ public class DateDealUtils { |
| 26 | 30 | */ |
| 27 | 31 | public static Date parseYearEndTime(String year) { |
| 28 | 32 | try { |
| 29 | - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | |
| 33 | + SimpleDateFormat sdf = new SimpleDateFormat(DATE_TIME_PATTERN); | |
| 30 | 34 | return sdf.parse(year + "-12-31 23:59:59"); |
| 31 | 35 | } catch (ParseException e) { |
| 32 | 36 | throw new BoException(BoErrorCode.PARAM_ERROR, "年份格式错误"); |
| 33 | 37 | } |
| 34 | 38 | } |
| 39 | + | |
| 40 | + /** | |
| 41 | + * 解析季度开始时间 | |
| 42 | + */ | |
| 43 | + public static Date parseQuarterStartTime(String year, QuarterEnum quarter) { | |
| 44 | + try { | |
| 45 | + SimpleDateFormat sdf = new SimpleDateFormat(DATE_TIME_PATTERN); | |
| 46 | + return sdf.parse(year + "-" + quarter.getStartDate() + " 00:00:00"); | |
| 47 | + } catch (ParseException e) { | |
| 48 | + throw new BoException(BoErrorCode.PARAM_ERROR, "季度日期格式错误"); | |
| 49 | + } | |
| 50 | + } | |
| 51 | + | |
| 52 | + /** | |
| 53 | + * 解析季度结束时间 | |
| 54 | + */ | |
| 55 | + public static Date parseQuarterEndTime(String year, QuarterEnum quarter) { | |
| 56 | + try { | |
| 57 | + SimpleDateFormat sdf = new SimpleDateFormat(DATE_TIME_PATTERN); | |
| 58 | + return sdf.parse(year + "-" + quarter.getEndDate() + " 23:59:59"); | |
| 59 | + } catch (ParseException e) { | |
| 60 | + throw new BoException(BoErrorCode.PARAM_ERROR, "季度日期格式错误"); | |
| 61 | + } | |
| 62 | + } | |
| 63 | + | |
| 64 | + /** | |
| 65 | + * 解析日期字符串,支持以下格式: | |
| 66 | + * <ul> | |
| 67 | + * <li>yyyy-MM-dd HH:mm:ss</li> | |
| 68 | + * <li>yyyy-MM-dd</li> | |
| 69 | + * <li>yyyy/MM/dd HH:mm:ss</li> | |
| 70 | + * <li>yyyy/MM/dd</li> | |
| 71 | + * </ul> | |
| 72 | + * | |
| 73 | + * @param dateStr 日期字符串 | |
| 74 | + * @return 解析后的日期,为空时返回 null | |
| 75 | + */ | |
| 76 | + public static Date parseDate(String dateStr) { | |
| 77 | + if (dateStr == null || dateStr.trim().isEmpty()) { | |
| 78 | + return null; | |
| 79 | + } | |
| 80 | + String trimmed = dateStr.trim(); | |
| 81 | + String[] patterns = new String[]{ | |
| 82 | + "yyyy-MM-dd HH:mm:ss", | |
| 83 | + "yyyy-MM-dd", | |
| 84 | + "yyyy/MM/dd HH:mm:ss", | |
| 85 | + "yyyy/MM/dd" | |
| 86 | + }; | |
| 87 | + for (String pattern : patterns) { | |
| 88 | + try { | |
| 89 | + SimpleDateFormat sdf = new SimpleDateFormat(pattern); | |
| 90 | + sdf.setLenient(false); | |
| 91 | + return sdf.parse(trimmed); | |
| 92 | + } catch (ParseException ignored) { | |
| 93 | + // 尝试下一个格式 | |
| 94 | + } | |
| 95 | + } | |
| 96 | + throw new BoException(BoErrorCode.PARAM_ERROR, "日期格式错误,支持 yyyy-MM-dd [HH:mm:ss]"); | |
| 97 | + } | |
| 98 | + | |
| 99 | + /** | |
| 100 | + * 将开始时间字符串解析为当天的 00:00:00(若未包含时间部分) | |
| 101 | + */ | |
| 102 | + public static Date parseStartTime(String dateStr) { | |
| 103 | + Date date = parseDate(dateStr); | |
| 104 | + if (date == null) { | |
| 105 | + return null; | |
| 106 | + } | |
| 107 | + // 如果传入的字符串不包含时间部分,则默认为当天开始 | |
| 108 | + if (dateStr != null && dateStr.trim().length() <= 10) { | |
| 109 | + return date; | |
| 110 | + } | |
| 111 | + return date; | |
| 112 | + } | |
| 113 | + | |
| 114 | + /** | |
| 115 | + * 将结束时间字符串解析为当天的 23:59:59(若未包含时间部分) | |
| 116 | + */ | |
| 117 | + public static Date parseEndTime(String dateStr) { | |
| 118 | + Date date = parseDate(dateStr); | |
| 119 | + if (date == null) { | |
| 120 | + return null; | |
| 121 | + } | |
| 122 | + // 如果传入的字符串不包含时间部分,则默认为当天结束 | |
| 123 | + if (dateStr != null && dateStr.trim().length() <= 10) { | |
| 124 | + java.util.Calendar cal = java.util.Calendar.getInstance(); | |
| 125 | + cal.setTime(date); | |
| 126 | + cal.set(java.util.Calendar.HOUR_OF_DAY, 23); | |
| 127 | + cal.set(java.util.Calendar.MINUTE, 59); | |
| 128 | + cal.set(java.util.Calendar.SECOND, 59); | |
| 129 | + cal.set(java.util.Calendar.MILLISECOND, 999); | |
| 130 | + return cal.getTime(); | |
| 131 | + } | |
| 132 | + return date; | |
| 133 | + } | |
| 134 | + | |
| 135 | + /** | |
| 136 | + * 获取当前月的开始时间(当月 1 号 00:00:00.000) | |
| 137 | + */ | |
| 138 | + public static Date getCurrentMonthStartTime() { | |
| 139 | + Calendar cal = Calendar.getInstance(); | |
| 140 | + cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH)); | |
| 141 | + cal.set(Calendar.HOUR_OF_DAY, 0); | |
| 142 | + cal.set(Calendar.MINUTE, 0); | |
| 143 | + cal.set(Calendar.SECOND, 0); | |
| 144 | + cal.set(Calendar.MILLISECOND, 0); | |
| 145 | + return cal.getTime(); | |
| 146 | + } | |
| 147 | + | |
| 148 | + /** | |
| 149 | + * 获取当前月的结束时间(当月最后一天 23:59:59.999) | |
| 150 | + */ | |
| 151 | + public static Date getCurrentMonthEndTime() { | |
| 152 | + Calendar cal = Calendar.getInstance(); | |
| 153 | + cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH)); | |
| 154 | + cal.set(Calendar.HOUR_OF_DAY, 23); | |
| 155 | + cal.set(Calendar.MINUTE, 59); | |
| 156 | + cal.set(Calendar.SECOND, 59); | |
| 157 | + cal.set(Calendar.MILLISECOND, 999); | |
| 158 | + return cal.getTime(); | |
| 159 | + } | |
| 160 | + | |
| 161 | + /** | |
| 162 | + * 解析开始时间字符串,为空时默认返回当前月开始时间 | |
| 163 | + */ | |
| 164 | + public static Date parseStartTimeOrCurrentMonthStart(String dateStr) { | |
| 165 | + if (dateStr == null || dateStr.trim().isEmpty()) { | |
| 166 | + return getCurrentMonthStartTime(); | |
| 167 | + } | |
| 168 | + return parseStartTime(dateStr); | |
| 169 | + } | |
| 170 | + | |
| 171 | + /** | |
| 172 | + * 解析结束时间字符串,为空时默认返回当前月结束时间 | |
| 173 | + */ | |
| 174 | + public static Date parseEndTimeOrCurrentMonthEnd(String dateStr) { | |
| 175 | + if (dateStr == null || dateStr.trim().isEmpty()) { | |
| 176 | + return getCurrentMonthEndTime(); | |
| 177 | + } | |
| 178 | + return parseEndTime(dateStr); | |
| 179 | + } | |
| 35 | 180 | } | ... | ... |
src/main/resources/doc/CPS模块接口API说明文档.md
0 → 100644
| 1 | +# CPS 模块接口 API 说明文档 | |
| 2 | + | |
| 3 | +## 目录 | |
| 4 | + | |
| 5 | +- [1. AB类改善接口](#1-ab类改善接口) | |
| 6 | + - [1.1 获取所有AB类改善列表](#11-获取所有ab类改善列表) | |
| 7 | + - [1.2 根据年份查询AB类改善汇总](#12-根据年份查询ab类改善汇总) | |
| 8 | +- [2. C类改善接口](#2-c类改善接口) | |
| 9 | + - [2.1 获取所有C类改善列表](#21-获取所有c类改善列表) | |
| 10 | + - [2.2 根据年份和季度查询C类改善发起率汇总](#22-根据年份和季度查询c类改善发起率汇总) | |
| 11 | + - [2.3 根据年份、季度、室组id查询C类改善记录详情](#23-根据年份季度室组id查询c类改善记录详情) | |
| 12 | +- [3. CPS问题接口](#3-cps问题接口) | |
| 13 | + - [3.1 获取所有CPS问题列表](#31-获取所有cps问题列表) | |
| 14 | + - [3.2 根据计划解决时间范围汇总各责任单位下各处理状态的问题数](#32-根据计划解决时间范围汇总各责任单位下各处理状态的问题数) | |
| 15 | + - [3.3 根据计划解决时间范围、责任单位id、问题处理状态查询问题记录明细](#33-根据计划解决时间范围责任单位id问题处理状态查询问题记录明细) | |
| 16 | + - [3.4 根据创建时间范围汇总各问题来源对应的问题数](#34-根据创建时间范围汇总各问题来源对应的问题数) | |
| 17 | + - [3.5 根据创建时间范围、问题来源查询问题记录明细](#35-根据创建时间范围问题来源查询问题记录明细) | |
| 18 | + | |
| 19 | +--- | |
| 20 | + | |
| 21 | +## 通用说明 | |
| 22 | + | |
| 23 | +### 统一响应格式 | |
| 24 | + | |
| 25 | +所有接口返回统一的 `JsonResult` 结构: | |
| 26 | + | |
| 27 | +```json | |
| 28 | +{ | |
| 29 | + "success": true, | |
| 30 | + "message": "成功", | |
| 31 | + "data": [] | |
| 32 | +} | |
| 33 | +``` | |
| 34 | + | |
| 35 | +| 字段 | 类型 | 说明 | | |
| 36 | +|------|------|------| | |
| 37 | +| success | Boolean | 请求是否成功 | | |
| 38 | +| message | String | 响应消息 | | |
| 39 | +| data | Object/Array | 响应数据体 | | |
| 40 | + | |
| 41 | +### 枚举值说明 | |
| 42 | + | |
| 43 | +#### 季度枚举(QuarterEnum) | |
| 44 | + | |
| 45 | +| 编号 | 描述 | 起始日期 | 结束日期 | | |
| 46 | +|------|------|----------|----------| | |
| 47 | +| #1# | 第一季度 | 01-01 | 03-31 | | |
| 48 | +| #2# | 第二季度 | 04-01 | 06-30 | | |
| 49 | +| #3# | 第三季度 | 07-01 | 09-30 | | |
| 50 | +| #4# | 第四季度 | 10-01 | 12-31 | | |
| 51 | + | |
| 52 | +#### 问题处理状态枚举(WtclztEnum) | |
| 53 | + | |
| 54 | +| 编号 | 描述 | | |
| 55 | +|------|------| | |
| 56 | +| #1# | 待处理 | | |
| 57 | +| #2# | 处理中 | | |
| 58 | +| #3# | 已关闭 | | |
| 59 | +| #4# | 已逾期 | | |
| 60 | + | |
| 61 | +#### 问题来源枚举(WtlyEnum) | |
| 62 | + | |
| 63 | +| 编号 | 描述 | | |
| 64 | +|------|------| | |
| 65 | +| #1# | 开班 | | |
| 66 | +| #2# | 过程验证 | | |
| 67 | +| #3# | 过程确认 | | |
| 68 | +| #4# | 体系健康体检 | | |
| 69 | +| #5# | 单位自检(单位牵头) | | |
| 70 | + | |
| 71 | +#### 问题类别枚举(WtlbEnum) | |
| 72 | + | |
| 73 | +| 编号 | 描述 | | |
| 74 | +|------|------| | |
| 75 | +| #1# | 方针展开 | | |
| 76 | +| #2# | 标准化作业 | | |
| 77 | +| #3# | 目视化 | | |
| 78 | +| #4# | 时间数据处理 | | |
| 79 | +| #5# | 过程确认 | | |
| 80 | +| #6# | 持续改善 | | |
| 81 | + | |
| 82 | +#### 问题性质枚举(WtxzEnum) | |
| 83 | + | |
| 84 | +| 编号 | 描述 | | |
| 85 | +|------|------| | |
| 86 | +| #1# | 无标准 | | |
| 87 | +| #2# | 未执行标准 | | |
| 88 | +| #3# | 标准不足 | | |
| 89 | + | |
| 90 | +#### 6S分类枚举(SflEnum) | |
| 91 | + | |
| 92 | +| 编号 | 描述 | | |
| 93 | +|------|------| | |
| 94 | +| #1# | 整理 | | |
| 95 | +| #2# | 整顿 | | |
| 96 | +| #3# | 清洁 | | |
| 97 | +| #4# | 清扫 | | |
| 98 | +| #5# | 素养 | | |
| 99 | +| #6# | 安全 | | |
| 100 | + | |
| 101 | +#### 问题层级枚举(MbghlkEnum) | |
| 102 | + | |
| 103 | +| 编号 | 描述 | | |
| 104 | +|------|------| | |
| 105 | +| #0# | 0 | | |
| 106 | +| #1# | 1 | | |
| 107 | +| #2# | 2 | | |
| 108 | +| #3# | 3 | | |
| 109 | +| #4# | 4 | | |
| 110 | +| #5# | 5 | | |
| 111 | + | |
| 112 | +#### 人员类别枚举(RylbEnum) | |
| 113 | + | |
| 114 | +| 编号 | 描述 | | |
| 115 | +|------|------| | |
| 116 | +| #1# | 区长 | | |
| 117 | +| #2# | 班长 | | |
| 118 | +| #3# | 高级经理 | | |
| 119 | +| #4# | 经理 | | |
| 120 | +| #5# | 主管 | | |
| 121 | +| #6# | 专家 | | |
| 122 | +| #7# | 一般员工 | | |
| 123 | + | |
| 124 | +#### 问题处理方式枚举(WtclfsEnum) | |
| 125 | + | |
| 126 | +| 编号 | 描述 | | |
| 127 | +|------|------| | |
| 128 | +| #1# | 自己解决 | | |
| 129 | +| #2# | 工作安排/同级支持 | | |
| 130 | +| #3# | 问题升级至 | | |
| 131 | + | |
| 132 | +#### C类改善状态枚举(CImprovementStatusEnum) | |
| 133 | + | |
| 134 | +| 编号 | 描述 | | |
| 135 | +|------|------| | |
| 136 | +| #1# | 草稿 | | |
| 137 | +| #2# | 已提交 | | |
| 138 | +| #3# | 已否决 | | |
| 139 | +| #4# | 已确认 | | |
| 140 | + | |
| 141 | +--- | |
| 142 | + | |
| 143 | +## 1. AB类改善接口 | |
| 144 | + | |
| 145 | +### 1.1 获取所有AB类改善列表 | |
| 146 | + | |
| 147 | +**接口路径:** `GET /abImprovement/list/all` | |
| 148 | + | |
| 149 | +**接口说明:** 获取系统中所有AB类改善记录列表。 | |
| 150 | + | |
| 151 | +**请求参数:** 无 | |
| 152 | + | |
| 153 | +**响应数据:** `List<AbImprovement>` | |
| 154 | + | |
| 155 | +**响应字段说明:** | |
| 156 | + | |
| 157 | +| 字段 | 类型 | 说明 | | |
| 158 | +|------|------|------| | |
| 159 | +| id | String | 记录ID | | |
| 160 | +| createdAt | Date | 创建时间(yyyy-MM-dd HH:mm:ss) | | |
| 161 | +| lcslmc | String | 流程实例名称 | | |
| 162 | +| dwcj | String | 单位车间id | | |
| 163 | +| sqr | String | 申请人 | | |
| 164 | +| sqbm | String | 申请部门 | | |
| 165 | +| sqrq | Date | 申请日期 | | |
| 166 | +| lxr | String | 立项人 | | |
| 167 | +| qnjyjz | Double | 全年节约价值 | | |
| 168 | +| gslx | String | 改善类型 | | |
| 169 | +| tdrs | Double | 团队人数 | | |
| 170 | + | |
| 171 | +**响应示例:** | |
| 172 | + | |
| 173 | +```json | |
| 174 | +{ | |
| 175 | + "success": true, | |
| 176 | + "message": "成功", | |
| 177 | + "data": [ | |
| 178 | + { | |
| 179 | + "id": "abc123", | |
| 180 | + "createdAt": "2026-09-15 10:30:00", | |
| 181 | + "lcslmc": "AB类改善流程-2026-001", | |
| 182 | + "dwcj": "workshop001", | |
| 183 | + "sqr": "张三", | |
| 184 | + "sqbm": "生产部", | |
| 185 | + "sqrq": "2026-09-10 09:00:00", | |
| 186 | + "lxr": "李四", | |
| 187 | + "qnjyjz": 50000.0, | |
| 188 | + "gslx": "效率提升", | |
| 189 | + "tdrs": 5.0 | |
| 190 | + } | |
| 191 | + ] | |
| 192 | +} | |
| 193 | +``` | |
| 194 | + | |
| 195 | +--- | |
| 196 | + | |
| 197 | +### 1.2 根据年份查询AB类改善汇总 | |
| 198 | + | |
| 199 | +**接口路径:** `GET /abImprovement/summary/year` | |
| 200 | + | |
| 201 | +**接口说明:** 按单位车间分组汇总指定年份的AB类改善记录,包含节约价值汇总、目标值及完成率。 | |
| 202 | + | |
| 203 | +**请求参数:** | |
| 204 | + | |
| 205 | +| 参数名 | 类型 | 必传 | 说明 | | |
| 206 | +|--------|------|------|------| | |
| 207 | +| year | String | 否 | 年份,格式:yyyy,为空时默认当前年 | | |
| 208 | + | |
| 209 | +**响应数据:** `List<AbImprovementSummaryDTO>` | |
| 210 | + | |
| 211 | +**响应字段说明:** | |
| 212 | + | |
| 213 | +| 字段 | 类型 | 说明 | | |
| 214 | +|------|------|------| | |
| 215 | +| dwcj | String | 单位车间编码 | | |
| 216 | +| dwcjName | String | 单位车间名称 | | |
| 217 | +| dwcjCode | String | 单位车间编号 | | |
| 218 | +| year | String | 年份 | | |
| 219 | +| totalQnjyjz | Double | 节约价值汇总 | | |
| 220 | +| mb | Double | 目标值 | | |
| 221 | +| completionRate | Double | 完成率(%) | | |
| 222 | + | |
| 223 | +**响应示例:** | |
| 224 | + | |
| 225 | +```json | |
| 226 | +{ | |
| 227 | + "success": true, | |
| 228 | + "message": "成功", | |
| 229 | + "data": [ | |
| 230 | + { | |
| 231 | + "dwcj": "workshop001", | |
| 232 | + "dwcjName": "总装车间", | |
| 233 | + "dwcjCode": "ZZ001", | |
| 234 | + "year": "2026", | |
| 235 | + "totalQnjyjz": 150000.0, | |
| 236 | + "mb": 200000.0, | |
| 237 | + "completionRate": 75.0 | |
| 238 | + } | |
| 239 | + ] | |
| 240 | +} | |
| 241 | +``` | |
| 242 | + | |
| 243 | +--- | |
| 244 | + | |
| 245 | +## 2. C类改善接口 | |
| 246 | + | |
| 247 | +### 2.1 获取所有C类改善列表 | |
| 248 | + | |
| 249 | +**接口路径:** `GET /cImprovement/list/all` | |
| 250 | + | |
| 251 | +**接口说明:** 获取系统中所有C类改善记录列表。 | |
| 252 | + | |
| 253 | +**请求参数:** 无 | |
| 254 | + | |
| 255 | +**响应数据:** `List<CImprovement>` | |
| 256 | + | |
| 257 | +**响应字段说明:** | |
| 258 | + | |
| 259 | +| 字段 | 类型 | 说明 | | |
| 260 | +|------|------|------| | |
| 261 | +| id | String | 记录ID | | |
| 262 | +| createdAt | Date | 创建时间(yyyy-MM-dd HH:mm:ss) | | |
| 263 | +| ygh | String | 员工号 | | |
| 264 | +| lywt | String | 来源问题记录id | | |
| 265 | +| wtbh | String | 问题编号 | | |
| 266 | +| bm | String | 部门id | | |
| 267 | +| sfwtlg | Boolean | 是否问题类改善 | | |
| 268 | +| sfscjb | Boolean | 是否是车间班组 | | |
| 269 | +| bz | String | 班组信息id | | |
| 270 | +| gsmc | String | 改善名称 | | |
| 271 | +| qzqr | String | 区长确认-组织用户id | | |
| 272 | +| gsyqr | String | 改善员确认-组织用户id | | |
| 273 | +| sftsyxal | Boolean | 是否推送优秀案例 | | |
| 274 | +| zt | String | 状态(#1#-草稿;#2#-已提交;#3#-已否决;#4#-已确认) | | |
| 275 | +| wtsm | String | 问题说明 | | |
| 276 | +| gshxg | String | 改善后效果 | | |
| 277 | +| fqr | String | 发起人 | | |
| 278 | +| szmc | String | 室组信息id | | |
| 279 | +| processInstanceId | String | 流程实例ID | | |
| 280 | +| approvalStatus | String | 审批状态 | | |
| 281 | +| sftsjdz | Boolean | 是否推送金点子 | | |
| 282 | + | |
| 283 | +**响应示例:** | |
| 284 | + | |
| 285 | +```json | |
| 286 | +{ | |
| 287 | + "success": true, | |
| 288 | + "message": "成功", | |
| 289 | + "data": [ | |
| 290 | + { | |
| 291 | + "id": "c123", | |
| 292 | + "createdAt": "2026-09-15 14:20:00", | |
| 293 | + "ygh": "YG001", | |
| 294 | + "lywt": "wt001", | |
| 295 | + "wtbh": "WT202609001", | |
| 296 | + "bm": "org001", | |
| 297 | + "sfwtlg": true, | |
| 298 | + "sfscjb": true, | |
| 299 | + "bz": "team001", | |
| 300 | + "gsmc": "优化装配流程", | |
| 301 | + "qzqr": "user001", | |
| 302 | + "gsyqr": "user002", | |
| 303 | + "sftsyxal": false, | |
| 304 | + "zt": "#2#", | |
| 305 | + "wtsm": "装配效率低", | |
| 306 | + "gshxg": "效率提升20%", | |
| 307 | + "fqr": "user003", | |
| 308 | + "szmc": "rg001", | |
| 309 | + "processInstanceId": "pi123", | |
| 310 | + "approvalStatus": "approved", | |
| 311 | + "sftsjdz": false | |
| 312 | + } | |
| 313 | + ] | |
| 314 | +} | |
| 315 | +``` | |
| 316 | + | |
| 317 | +--- | |
| 318 | + | |
| 319 | +### 2.2 根据年份和季度查询C类改善发起率汇总 | |
| 320 | + | |
| 321 | +**接口路径:** `GET /cImprovement/summary/quarter` | |
| 322 | + | |
| 323 | +**接口说明:** 按室组维度统计指定年份季度的C类改善发起率,包含室组总人数、有改善记录人数、发起率及目标值。 | |
| 324 | + | |
| 325 | +**请求参数:** | |
| 326 | + | |
| 327 | +| 参数名 | 类型 | 必传 | 说明 | | |
| 328 | +|--------|------|------|------| | |
| 329 | +| year | String | 否 | 年份,格式:yyyy,为空时默认当前年 | | |
| 330 | +| quarter | String | 是 | 季度枚举值(#1#-#4#) | | |
| 331 | + | |
| 332 | +**响应数据:** `List<CImprovementSummaryDTO>` | |
| 333 | + | |
| 334 | +**响应字段说明:** | |
| 335 | + | |
| 336 | +| 字段 | 类型 | 说明 | | |
| 337 | +|------|------|------| | |
| 338 | +| szxx | String | 室组编码 | | |
| 339 | +| szmc | String | 室组名称 | | |
| 340 | +| szbh | String | 室组编号 | | |
| 341 | +| dwcj | String | 所属单位车间编码 | | |
| 342 | +| dwcjName | String | 所属单位车间名称 | | |
| 343 | +| dwcjCode | String | 所属单位车间编号 | | |
| 344 | +| year | String | 年份 | | |
| 345 | +| quarter | String | 季度 | | |
| 346 | +| quarterDesc | String | 季度描述 | | |
| 347 | +| totalPersonnel | Integer | 室组总人数 | | |
| 348 | +| improvementPersonnel | Integer | 有C类改善记录的人数 | | |
| 349 | +| improvementRate | Double | C类改善发起率(%) | | |
| 350 | +| mb | Double | 目标值 | | |
| 351 | + | |
| 352 | +**响应示例:** | |
| 353 | + | |
| 354 | +```json | |
| 355 | +{ | |
| 356 | + "success": true, | |
| 357 | + "message": "成功", | |
| 358 | + "data": [ | |
| 359 | + { | |
| 360 | + "szxx": "rg001", | |
| 361 | + "szmc": "装配一组", | |
| 362 | + "szbh": "SZ001", | |
| 363 | + "dwcj": "workshop001", | |
| 364 | + "dwcjName": "总装车间", | |
| 365 | + "dwcjCode": "ZZ001", | |
| 366 | + "year": "2026", | |
| 367 | + "quarter": "#3#", | |
| 368 | + "quarterDesc": "第三季度", | |
| 369 | + "totalPersonnel": 50, | |
| 370 | + "improvementPersonnel": 35, | |
| 371 | + "improvementRate": 70.0, | |
| 372 | + "mb": 80.0 | |
| 373 | + } | |
| 374 | + ] | |
| 375 | +} | |
| 376 | +``` | |
| 377 | + | |
| 378 | +--- | |
| 379 | + | |
| 380 | +### 2.3 根据年份、季度、室组id查询C类改善记录详情 | |
| 381 | + | |
| 382 | +**接口路径:** `GET /cImprovement/list/detail` | |
| 383 | + | |
| 384 | +**接口说明:** 查询指定年份季度时间范围内、由该室组下人员发起的C类改善记录,并补充关联实体名称。 | |
| 385 | + | |
| 386 | +**请求参数:** | |
| 387 | + | |
| 388 | +| 参数名 | 类型 | 必传 | 说明 | | |
| 389 | +|--------|------|------|------| | |
| 390 | +| year | String | 否 | 年份,格式:yyyy,为空时默认当前年 | | |
| 391 | +| quarter | String | 是 | 季度枚举值(#1#-#4#) | | |
| 392 | +| roomGroupId | String | 是 | 室组id | | |
| 393 | + | |
| 394 | +**响应数据:** `List<CImprovementDetailDTO>` | |
| 395 | + | |
| 396 | +**响应字段说明:** | |
| 397 | + | |
| 398 | +| 字段 | 类型 | 说明 | | |
| 399 | +|------|------|------| | |
| 400 | +| id | String | 记录ID | | |
| 401 | +| createdAt | Date | 创建时间(yyyy-MM-dd HH:mm:ss) | | |
| 402 | +| gsmc | String | 改善名称 | | |
| 403 | +| wtbh | String | 问题编号 | | |
| 404 | +| lywt | String | 来源问题记录id | | |
| 405 | +| wtsm | String | 问题说明 | | |
| 406 | +| gshxg | String | 改善后效果 | | |
| 407 | +| zt | String | 状态(#1#-草稿;#2#-已提交;#3#-已否决;#4#-已确认) | | |
| 408 | +| ztDesc | String | 状态名称 | | |
| 409 | +| sfwtlg | Boolean | 是否问题类改善 | | |
| 410 | +| sfscjb | Boolean | 是否是车间班组 | | |
| 411 | +| sftsyxal | Boolean | 是否推送优秀案例 | | |
| 412 | +| sftsjdz | Boolean | 是否推送金点子 | | |
| 413 | +| processInstanceId | String | 流程实例ID | | |
| 414 | +| approvalStatus | String | 审批状态 | | |
| 415 | +| szqymc | String | 室组区域名称(原始字段) | | |
| 416 | +| ygh | String | 员工号 | | |
| 417 | +| yh | String | 员工id(组织用户) | | |
| 418 | +| yhName | String | 员工姓名(组织用户) | | |
| 419 | +| fqr | String | 发起人id/工号 | | |
| 420 | +| fqrName | String | 发起人姓名 | | |
| 421 | +| bm | String | 部门id(组织结构) | | |
| 422 | +| bmName | String | 部门名称(组织结构) | | |
| 423 | +| szmc | String | 室组信息id | | |
| 424 | +| szmcName | String | 室组名称 | | |
| 425 | +| szbh | String | 室组编号 | | |
| 426 | +| bz | String | 班组信息id | | |
| 427 | +| bzName | String | 班组名称 | | |
| 428 | +| dwcj | String | 单位车间id | | |
| 429 | +| dwcjName | String | 单位车间名称 | | |
| 430 | +| dwcjCode | String | 单位车间编号 | | |
| 431 | +| szqy | String | 区域id | | |
| 432 | +| szqyName | String | 区域名称 | | |
| 433 | +| qzqr | String | 区长确认-组织用户id | | |
| 434 | +| qzqrName | String | 区长确认-姓名 | | |
| 435 | +| gsyqr | String | 改善员确认-组织用户id | | |
| 436 | +| gsyqrName | String | 改善员确认-姓名 | | |
| 437 | + | |
| 438 | +**响应示例:** | |
| 439 | + | |
| 440 | +```json | |
| 441 | +{ | |
| 442 | + "success": true, | |
| 443 | + "message": "成功", | |
| 444 | + "data": [ | |
| 445 | + { | |
| 446 | + "id": "c123", | |
| 447 | + "createdAt": "2026-09-15 14:20:00", | |
| 448 | + "gsmc": "优化装配流程", | |
| 449 | + "wtbh": "WT202609001", | |
| 450 | + "lywt": "wt001", | |
| 451 | + "wtsm": "装配效率低", | |
| 452 | + "gshxg": "效率提升20%", | |
| 453 | + "zt": "#2#", | |
| 454 | + "ztDesc": "已提交", | |
| 455 | + "sfwtlg": true, | |
| 456 | + "sfscjb": true, | |
| 457 | + "sftsyxal": false, | |
| 458 | + "sftsjdz": false, | |
| 459 | + "processInstanceId": "pi123", | |
| 460 | + "approvalStatus": "approved", | |
| 461 | + "szqymc": "装配区域", | |
| 462 | + "ygh": "YG001", | |
| 463 | + "yh": "user001", | |
| 464 | + "yhName": "张三", | |
| 465 | + "fqr": "user003", | |
| 466 | + "fqrName": "王五", | |
| 467 | + "bm": "org001", | |
| 468 | + "bmName": "生产部", | |
| 469 | + "szmc": "rg001", | |
| 470 | + "szmcName": "装配一组", | |
| 471 | + "szbh": "SZ001", | |
| 472 | + "bz": "team001", | |
| 473 | + "bzName": "装配一班", | |
| 474 | + "dwcj": "workshop001", | |
| 475 | + "dwcjName": "总装车间", | |
| 476 | + "dwcjCode": "ZZ001", | |
| 477 | + "szqy": "area001", | |
| 478 | + "szqyName": "装配区域", | |
| 479 | + "qzqr": "user001", | |
| 480 | + "qzqrName": "张三", | |
| 481 | + "gsyqr": "user002", | |
| 482 | + "gsyqrName": "李四" | |
| 483 | + } | |
| 484 | + ] | |
| 485 | +} | |
| 486 | +``` | |
| 487 | + | |
| 488 | +--- | |
| 489 | + | |
| 490 | +## 3. CPS问题接口 | |
| 491 | + | |
| 492 | +### 3.1 获取所有CPS问题列表 | |
| 493 | + | |
| 494 | +**接口路径:** `GET /cpsProblem/list/all` | |
| 495 | + | |
| 496 | +**接口说明:** 获取系统中所有CPS问题记录列表。 | |
| 497 | + | |
| 498 | +**请求参数:** 无 | |
| 499 | + | |
| 500 | +**响应数据:** `List<CpsProblem>` | |
| 501 | + | |
| 502 | +**响应字段说明:** | |
| 503 | + | |
| 504 | +| 字段 | 类型 | 说明 | | |
| 505 | +|------|------|------| | |
| 506 | +| id | String | 记录ID | | |
| 507 | +| createdAt | Date | 创建时间(yyyy-MM-dd HH:mm:ss) | | |
| 508 | +| wtbh | String | 问题编号 | | |
| 509 | +| wtly | String | 问题来源(#1#-开班;#2#-过程验证;#3#-过程确认;#4#-体系健康体检;#5#-单位自检) | | |
| 510 | +| wttcr | String | 问题提出人 | | |
| 511 | +| gzdw | String | 工作单位 | | |
| 512 | +| rylb | String | 人员类别(#1#-区长;#2#-班长;#3#-高级经理;#4#-经理;#5#-主管;#6#-专家;#7#-一般员工) | | |
| 513 | +| wtms | String | 问题描述 | | |
| 514 | +| wtzrdw | String | 问题责任单位 | | |
| 515 | +| wtfj | String | 问题附件 | | |
| 516 | +| wtssbk | String | 问题所属板块 | | |
| 517 | +| wtlb | String | 问题类别(#1#-方针展开;#2#-标准化作业;#3#-目视化;#4#-时间数据处理;#5#-过程确认;#6#-持续改善) | | |
| 518 | +| wtxz | String | 问题性质(#1#-无标准;#2#-未执行标准;#3#-标准不足) | | |
| 519 | +| sfl | String | 6S分类(#1#-整理;#2#-整顿;#3#-清洁;#4#-清扫;#5#-素养;#6#-安全) | | |
| 520 | +| wtsfgb | Boolean | 问题是否关闭 | | |
| 521 | +| sz | String | 室组 | | |
| 522 | +| mbghlk | String | 问题层级(#0#-0;#1#-1;#2#-2;#3#-3;#4#-4;#5#-5) | | |
| 523 | +| wtclfs | String | 问题处理方式(#1#-自己解决;#2#-工作安排/同级支持;#3#-问题升级至) | | |
| 524 | +| tntpvy | Date | 问题解决时间 | | |
| 525 | +| gzap | String | 工作安排/同级支持 | | |
| 526 | +| wtsjz | String | 问题升级至 | | |
| 527 | +| wtjjcs | String | 问题解决措施 | | |
| 528 | +| wtzghfj | String | 问题整改后附件 | | |
| 529 | +| wtclr | String | 问题处理人 | | |
| 530 | +| wtclzt | String | 问题处理状态(#1#-待处理;#2#-处理中;#3#-已关闭;#4#-已逾期) | | |
| 531 | +| qy | String | 区域 | | |
| 532 | +| bz | String | 班组 | | |
| 533 | +| jhjjsj | Date | 计划解决时间 | | |
| 534 | +| wtclfs2 | String | 问题处理方式2 | | |
| 535 | +| gzap2 | String | 工作安排/同级支持2 | | |
| 536 | +| wtsjz2 | String | 问题升级至2 | | |
| 537 | +| wtclfs3 | String | 问题处理方式3 | | |
| 538 | +| gzap3 | String | 工作安排/同级支持3 | | |
| 539 | +| wtsjz3 | String | 问题升级至3 | | |
| 540 | +| processInstanceId | String | 流程实例ID | | |
| 541 | +| approvalStatus | String | 审批状态 | | |
| 542 | + | |
| 543 | +**响应示例:** | |
| 544 | + | |
| 545 | +```json | |
| 546 | +{ | |
| 547 | + "success": true, | |
| 548 | + "message": "成功", | |
| 549 | + "data": [ | |
| 550 | + { | |
| 551 | + "id": "p123", | |
| 552 | + "createdAt": "2026-09-15 09:00:00", | |
| 553 | + "wtbh": "WT202609001", | |
| 554 | + "wtly": "#1#", | |
| 555 | + "wttcr": "user001", | |
| 556 | + "gzdw": "workshop001", | |
| 557 | + "rylb": "#1#", | |
| 558 | + "wtms": "装配线设备故障", | |
| 559 | + "wtzrdw": "workshop002", | |
| 560 | + "wtfj": "file001", | |
| 561 | + "wtssbk": "设备管理", | |
| 562 | + "wtlb": "#2#", | |
| 563 | + "wtxz": "#1#", | |
| 564 | + "sfl": "#6#", | |
| 565 | + "wtsfgb": false, | |
| 566 | + "sz": "rg001", | |
| 567 | + "mbghlk": "#1#", | |
| 568 | + "wtclfs": "#1#", | |
| 569 | + "tntpvy": "2026-09-20 18:00:00", | |
| 570 | + "gzap": "安排维修", | |
| 571 | + "wtsjz": "", | |
| 572 | + "wtjjcs": "更换零件", | |
| 573 | + "wtzghfj": "file002", | |
| 574 | + "wtclr": "user002", | |
| 575 | + "wtclzt": "#2#", | |
| 576 | + "qy": "area001", | |
| 577 | + "bz": "team001", | |
| 578 | + "jhjjsj": "2026-09-25 18:00:00", | |
| 579 | + "wtclfs2": "", | |
| 580 | + "gzap2": "", | |
| 581 | + "wtsjz2": "", | |
| 582 | + "wtclfs3": "", | |
| 583 | + "gzap3": "", | |
| 584 | + "wtsjz3": "", | |
| 585 | + "processInstanceId": "pi123", | |
| 586 | + "approvalStatus": "processing" | |
| 587 | + } | |
| 588 | + ] | |
| 589 | +} | |
| 590 | +``` | |
| 591 | + | |
| 592 | +--- | |
| 593 | + | |
| 594 | +### 3.2 根据计划解决时间范围汇总各责任单位下各处理状态的问题数 | |
| 595 | + | |
| 596 | +**接口路径:** `GET /cpsProblem/summary/status` | |
| 597 | + | |
| 598 | +**接口说明:** 按计划解决时间范围查询问题记录,按责任单位分组统计各处理状态下的问题数。 | |
| 599 | + | |
| 600 | +**请求参数:** | |
| 601 | + | |
| 602 | +| 参数名 | 类型 | 必传 | 说明 | | |
| 603 | +|--------|------|------|------| | |
| 604 | +| startTime | String | 否 | 开始时间,格式:yyyy-MM-dd [HH:mm:ss],为空默认当前月1号 00:00:00 | | |
| 605 | +| endTime | String | 否 | 结束时间,格式:yyyy-MM-dd [HH:mm:ss],为空默认当前月最后一天 23:59:59 | | |
| 606 | + | |
| 607 | +**响应数据:** `List<CpsProblemSummaryDTO>` | |
| 608 | + | |
| 609 | +**响应字段说明:** | |
| 610 | + | |
| 611 | +| 字段 | 类型 | 说明 | | |
| 612 | +|------|------|------| | |
| 613 | +| wtzrdw | String | 责任单位id | | |
| 614 | +| wtzrdwName | String | 责任单位名称 | | |
| 615 | +| wtzrdwCode | String | 责任单位编号 | | |
| 616 | +| totalCount | Integer | 该责任单位下问题总数 | | |
| 617 | +| statusCounts | Array | 各处理状态下的问题数明细 | | |
| 618 | +| statusCounts[].statusCode | String | 状态编号 | | |
| 619 | +| statusCounts[].statusDesc | String | 状态中文描述 | | |
| 620 | +| statusCounts[].count | Integer | 该状态下的问题数 | | |
| 621 | + | |
| 622 | +**响应示例:** | |
| 623 | + | |
| 624 | +```json | |
| 625 | +{ | |
| 626 | + "success": true, | |
| 627 | + "message": "成功", | |
| 628 | + "data": [ | |
| 629 | + { | |
| 630 | + "wtzrdw": "workshop001", | |
| 631 | + "wtzrdwName": "总装车间", | |
| 632 | + "wtzrdwCode": "ZZ001", | |
| 633 | + "totalCount": 25, | |
| 634 | + "statusCounts": [ | |
| 635 | + { | |
| 636 | + "statusCode": "#1#", | |
| 637 | + "statusDesc": "待处理", | |
| 638 | + "count": 5 | |
| 639 | + }, | |
| 640 | + { | |
| 641 | + "statusCode": "#2#", | |
| 642 | + "statusDesc": "处理中", | |
| 643 | + "count": 10 | |
| 644 | + }, | |
| 645 | + { | |
| 646 | + "statusCode": "#3#", | |
| 647 | + "statusDesc": "已关闭", | |
| 648 | + "count": 8 | |
| 649 | + }, | |
| 650 | + { | |
| 651 | + "statusCode": "#4#", | |
| 652 | + "statusDesc": "已逾期", | |
| 653 | + "count": 2 | |
| 654 | + } | |
| 655 | + ] | |
| 656 | + } | |
| 657 | + ] | |
| 658 | +} | |
| 659 | +``` | |
| 660 | + | |
| 661 | +--- | |
| 662 | + | |
| 663 | +### 3.3 根据计划解决时间范围、责任单位id、问题处理状态查询问题记录明细 | |
| 664 | + | |
| 665 | +**接口路径:** `GET /cpsProblem/list/detail` | |
| 666 | + | |
| 667 | +**接口说明:** 按计划解决时间范围、责任单位id、问题处理状态查询问题记录明细,包含关联实体名称。 | |
| 668 | + | |
| 669 | +**请求参数:** | |
| 670 | + | |
| 671 | +| 参数名 | 类型 | 必传 | 说明 | | |
| 672 | +|--------|------|------|------| | |
| 673 | +| startTime | String | 否 | 开始时间,格式:yyyy-MM-dd [HH:mm:ss],为空默认当前月1号 00:00:00 | | |
| 674 | +| endTime | String | 否 | 结束时间,格式:yyyy-MM-dd [HH:mm:ss],为空默认当前月最后一天 23:59:59 | | |
| 675 | +| wtzrdwId | String | 是 | 责任单位id | | |
| 676 | +| status | String | 是 | 问题处理状态编号(#1#-待处理;#2#-处理中;#3#-已关闭;#4#-已逾期) | | |
| 677 | + | |
| 678 | +**响应数据:** `List<CpsProblemDetailDTO>` | |
| 679 | + | |
| 680 | +**响应字段说明:** | |
| 681 | + | |
| 682 | +| 字段 | 类型 | 说明 | | |
| 683 | +|------|------|------| | |
| 684 | +| id | String | 记录ID | | |
| 685 | +| createdAt | Date | 创建时间(yyyy-MM-dd HH:mm:ss) | | |
| 686 | +| wtbh | String | 问题编号 | | |
| 687 | +| wtms | String | 问题描述 | | |
| 688 | +| wtly | String | 问题来源编号 | | |
| 689 | +| wtlyDesc | String | 问题来源名称 | | |
| 690 | +| wtssbk | String | 问题所属板块 | | |
| 691 | +| wtlb | String | 问题类别编号 | | |
| 692 | +| wtlbDesc | String | 问题类别名称 | | |
| 693 | +| wtxz | String | 问题性质编号 | | |
| 694 | +| wtxzDesc | String | 问题性质名称 | | |
| 695 | +| sfl | String | 6S分类编号 | | |
| 696 | +| sflDesc | String | 6S分类名称 | | |
| 697 | +| mbghlk | String | 问题层级编号 | | |
| 698 | +| mbghlkDesc | String | 问题层级名称 | | |
| 699 | +| rylb | String | 人员类别编号 | | |
| 700 | +| rylbDesc | String | 人员类别名称 | | |
| 701 | +| wtsfgb | Boolean | 问题是否关闭 | | |
| 702 | +| wtfj | String | 问题附件 | | |
| 703 | +| wtzghfj | String | 问题整改后附件 | | |
| 704 | +| wtjjcs | String | 问题解决措施 | | |
| 705 | +| wtclfs | String | 问题处理方式编号 | | |
| 706 | +| wtclfsDesc | String | 问题处理方式名称 | | |
| 707 | +| gzap | String | 工作安排/同级支持 | | |
| 708 | +| wtsjz | String | 问题升级至 | | |
| 709 | +| wtclfs2 | String | 问题处理方式2编号 | | |
| 710 | +| wtclfs2Desc | String | 问题处理方式2名称 | | |
| 711 | +| gzap2 | String | 工作安排/同级支持2 | | |
| 712 | +| wtsjz2 | String | 问题升级至2 | | |
| 713 | +| wtclfs3 | String | 问题处理方式3编号 | | |
| 714 | +| wtclfs3Desc | String | 问题处理方式3名称 | | |
| 715 | +| gzap3 | String | 工作安排/同级支持3 | | |
| 716 | +| wtsjz3 | String | 问题升级至3 | | |
| 717 | +| jhjjsj | Date | 计划解决时间(yyyy-MM-dd HH:mm:ss) | | |
| 718 | +| tntpvy | Date | 问题解决时间(yyyy-MM-dd HH:mm:ss) | | |
| 719 | +| processInstanceId | String | 流程实例ID | | |
| 720 | +| approvalStatus | String | 审批状态 | | |
| 721 | +| gzdw | String | 工作单位id | | |
| 722 | +| gzdwName | String | 工作单位名称 | | |
| 723 | +| gzdwCode | String | 工作单位编号 | | |
| 724 | +| wtzrdw | String | 问题责任单位id | | |
| 725 | +| wtzrdwName | String | 问题责任单位名称 | | |
| 726 | +| wtzrdwCode | String | 问题责任单位编号 | | |
| 727 | +| sz | String | 室组id | | |
| 728 | +| szName | String | 室组名称 | | |
| 729 | +| szCode | String | 室组编号 | | |
| 730 | +| qy | String | 区域id | | |
| 731 | +| qyName | String | 区域名称 | | |
| 732 | +| qyCode | String | 区域编号 | | |
| 733 | +| bz | String | 班组id | | |
| 734 | +| bzName | String | 班组名称 | | |
| 735 | +| bzCode | String | 班组编号 | | |
| 736 | +| wttcr | String | 问题提出人id | | |
| 737 | +| wttcrName | String | 问题提出人姓名 | | |
| 738 | +| wtclr | String | 问题处理人id | | |
| 739 | +| wtclrName | String | 问题处理人姓名 | | |
| 740 | +| wtclzt | String | 问题处理状态编号 | | |
| 741 | +| wtclztDesc | String | 问题处理状态中文描述 | | |
| 742 | + | |
| 743 | +**响应示例:** | |
| 744 | + | |
| 745 | +```json | |
| 746 | +{ | |
| 747 | + "success": true, | |
| 748 | + "message": "成功", | |
| 749 | + "data": [ | |
| 750 | + { | |
| 751 | + "id": "p123", | |
| 752 | + "createdAt": "2026-09-15 09:00:00", | |
| 753 | + "wtbh": "WT202609001", | |
| 754 | + "wtms": "装配线设备故障", | |
| 755 | + "wtly": "#1#", | |
| 756 | + "wtlyDesc": "开班", | |
| 757 | + "wtssbk": "设备管理", | |
| 758 | + "wtlb": "#2#", | |
| 759 | + "wtlbDesc": "标准化作业", | |
| 760 | + "wtxz": "#1#", | |
| 761 | + "wtxzDesc": "无标准", | |
| 762 | + "sfl": "#6#", | |
| 763 | + "sflDesc": "安全", | |
| 764 | + "mbghlk": "#1#", | |
| 765 | + "mbghlkDesc": "1", | |
| 766 | + "rylb": "#1#", | |
| 767 | + "rylbDesc": "区长", | |
| 768 | + "wtsfgb": false, | |
| 769 | + "wtfj": "file001", | |
| 770 | + "wtzghfj": "file002", | |
| 771 | + "wtjjcs": "更换零件", | |
| 772 | + "wtclfs": "#1#", | |
| 773 | + "wtclfsDesc": "自己解决", | |
| 774 | + "gzap": "安排维修", | |
| 775 | + "wtsjz": "", | |
| 776 | + "wtclfs2": "", | |
| 777 | + "wtclfs2Desc": "", | |
| 778 | + "gzap2": "", | |
| 779 | + "wtsjz2": "", | |
| 780 | + "wtclfs3": "", | |
| 781 | + "wtclfs3Desc": "", | |
| 782 | + "gzap3": "", | |
| 783 | + "wtsjz3": "", | |
| 784 | + "jhjjsj": "2026-09-25 18:00:00", | |
| 785 | + "tntpvy": "2026-09-20 18:00:00", | |
| 786 | + "processInstanceId": "pi123", | |
| 787 | + "approvalStatus": "processing", | |
| 788 | + "gzdw": "workshop001", | |
| 789 | + "gzdwName": "总装车间", | |
| 790 | + "gzdwCode": "ZZ001", | |
| 791 | + "wtzrdw": "workshop002", | |
| 792 | + "wtzrdwName": "维修车间", | |
| 793 | + "wtzrdwCode": "WX001", | |
| 794 | + "sz": "rg001", | |
| 795 | + "szName": "装配一组", | |
| 796 | + "szCode": "SZ001", | |
| 797 | + "qy": "area001", | |
| 798 | + "qyName": "装配区域", | |
| 799 | + "qyCode": "QY001", | |
| 800 | + "bz": "team001", | |
| 801 | + "bzName": "装配一班", | |
| 802 | + "bzCode": "BZ001", | |
| 803 | + "wttcr": "user001", | |
| 804 | + "wttcrName": "张三", | |
| 805 | + "wtclr": "user002", | |
| 806 | + "wtclrName": "李四", | |
| 807 | + "wtclzt": "#2#", | |
| 808 | + "wtclztDesc": "处理中" | |
| 809 | + } | |
| 810 | + ] | |
| 811 | +} | |
| 812 | +``` | |
| 813 | + | |
| 814 | +--- | |
| 815 | + | |
| 816 | +### 3.4 根据创建时间范围汇总各问题来源对应的问题数 | |
| 817 | + | |
| 818 | +**接口路径:** `GET /cpsProblem/summary/source` | |
| 819 | + | |
| 820 | +**接口说明:** 按创建时间范围查询问题记录,按问题来源维度汇总问题数。 | |
| 821 | + | |
| 822 | +**请求参数:** | |
| 823 | + | |
| 824 | +| 参数名 | 类型 | 必传 | 说明 | | |
| 825 | +|--------|------|------|------| | |
| 826 | +| startTime | String | 否 | 开始时间,格式:yyyy-MM-dd [HH:mm:ss],为空默认当前月1号 00:00:00 | | |
| 827 | +| endTime | String | 否 | 结束时间,格式:yyyy-MM-dd [HH:mm:ss],为空默认当前月最后一天 23:59:59 | | |
| 828 | + | |
| 829 | +**响应数据:** `List<CpsProblemSourceSummaryDTO>` | |
| 830 | + | |
| 831 | +**响应字段说明:** | |
| 832 | + | |
| 833 | +| 字段 | 类型 | 说明 | | |
| 834 | +|------|------|------| | |
| 835 | +| wtly | String | 问题来源编号 | | |
| 836 | +| wtlyDesc | String | 问题来源中文名称 | | |
| 837 | +| count | Integer | 该问题来源下的问题数 | | |
| 838 | + | |
| 839 | +**响应示例:** | |
| 840 | + | |
| 841 | +```json | |
| 842 | +{ | |
| 843 | + "success": true, | |
| 844 | + "message": "成功", | |
| 845 | + "data": [ | |
| 846 | + { | |
| 847 | + "wtly": "#1#", | |
| 848 | + "wtlyDesc": "开班", | |
| 849 | + "count": 15 | |
| 850 | + }, | |
| 851 | + { | |
| 852 | + "wtly": "#2#", | |
| 853 | + "wtlyDesc": "过程验证", | |
| 854 | + "count": 8 | |
| 855 | + }, | |
| 856 | + { | |
| 857 | + "wtly": "#3#", | |
| 858 | + "wtlyDesc": "过程确认", | |
| 859 | + "count": 12 | |
| 860 | + }, | |
| 861 | + { | |
| 862 | + "wtly": "#4#", | |
| 863 | + "wtlyDesc": "体系健康体检", | |
| 864 | + "count": 5 | |
| 865 | + }, | |
| 866 | + { | |
| 867 | + "wtly": "#5#", | |
| 868 | + "wtlyDesc": "单位自检(单位牵头)", | |
| 869 | + "count": 3 | |
| 870 | + } | |
| 871 | + ] | |
| 872 | +} | |
| 873 | +``` | |
| 874 | + | |
| 875 | +--- | |
| 876 | + | |
| 877 | +### 3.5 根据创建时间范围、问题来源查询问题记录明细 | |
| 878 | + | |
| 879 | +**接口路径:** `GET /cpsProblem/list/detail/source` | |
| 880 | + | |
| 881 | +**接口说明:** 按创建时间范围、问题来源查询问题记录明细,包含关联实体名称。 | |
| 882 | + | |
| 883 | +**请求参数:** | |
| 884 | + | |
| 885 | +| 参数名 | 类型 | 必传 | 说明 | | |
| 886 | +|--------|------|------|------| | |
| 887 | +| startTime | String | 否 | 开始时间,格式:yyyy-MM-dd [HH:mm:ss],为空默认当前月1号 00:00:00 | | |
| 888 | +| endTime | String | 否 | 结束时间,格式:yyyy-MM-dd [HH:mm:ss],为空默认当前月最后一天 23:59:59 | | |
| 889 | +| wtly | String | 是 | 问题来源编号(#1#-开班;#2#-过程验证;#3#-过程确认;#4#-体系健康体检;#5#-单位自检) | | |
| 890 | + | |
| 891 | +**响应数据:** `List<CpsProblemDetailDTO>` | |
| 892 | + | |
| 893 | +**响应字段说明:** 同 [3.3 根据计划解决时间范围、责任单位id、问题处理状态查询问题记录明细](#33-根据计划解决时间范围责任单位id问题处理状态查询问题记录明细) | |
| 894 | + | |
| 895 | +**响应示例:** | |
| 896 | + | |
| 897 | +```json | |
| 898 | +{ | |
| 899 | + "success": true, | |
| 900 | + "message": "成功", | |
| 901 | + "data": [ | |
| 902 | + { | |
| 903 | + "id": "p123", | |
| 904 | + "createdAt": "2026-09-15 09:00:00", | |
| 905 | + "wtbh": "WT202609001", | |
| 906 | + "wtms": "装配线设备故障", | |
| 907 | + "wtly": "#1#", | |
| 908 | + "wtlyDesc": "开班", | |
| 909 | + "wtssbk": "设备管理", | |
| 910 | + "wtlb": "#2#", | |
| 911 | + "wtlbDesc": "标准化作业", | |
| 912 | + "wtxz": "#1#", | |
| 913 | + "wtxzDesc": "无标准", | |
| 914 | + "sfl": "#6#", | |
| 915 | + "sflDesc": "安全", | |
| 916 | + "mbghlk": "#1#", | |
| 917 | + "mbghlkDesc": "1", | |
| 918 | + "rylb": "#1#", | |
| 919 | + "rylbDesc": "区长", | |
| 920 | + "wtsfgb": false, | |
| 921 | + "wtfj": "file001", | |
| 922 | + "wtzghfj": "file002", | |
| 923 | + "wtjjcs": "更换零件", | |
| 924 | + "wtclfs": "#1#", | |
| 925 | + "wtclfsDesc": "自己解决", | |
| 926 | + "gzap": "安排维修", | |
| 927 | + "wtsjz": "", | |
| 928 | + "wtclfs2": "", | |
| 929 | + "wtclfs2Desc": "", | |
| 930 | + "gzap2": "", | |
| 931 | + "wtsjz2": "", | |
| 932 | + "wtclfs3": "", | |
| 933 | + "wtclfs3Desc": "", | |
| 934 | + "gzap3": "", | |
| 935 | + "wtsjz3": "", | |
| 936 | + "jhjjsj": "2026-09-25 18:00:00", | |
| 937 | + "tntpvy": "2026-09-20 18:00:00", | |
| 938 | + "processInstanceId": "pi123", | |
| 939 | + "approvalStatus": "processing", | |
| 940 | + "gzdw": "workshop001", | |
| 941 | + "gzdwName": "总装车间", | |
| 942 | + "gzdwCode": "ZZ001", | |
| 943 | + "wtzrdw": "workshop002", | |
| 944 | + "wtzrdwName": "维修车间", | |
| 945 | + "wtzrdwCode": "WX001", | |
| 946 | + "sz": "rg001", | |
| 947 | + "szName": "装配一组", | |
| 948 | + "szCode": "SZ001", | |
| 949 | + "qy": "area001", | |
| 950 | + "qyName": "装配区域", | |
| 951 | + "qyCode": "QY001", | |
| 952 | + "bz": "team001", | |
| 953 | + "bzName": "装配一班", | |
| 954 | + "bzCode": "BZ001", | |
| 955 | + "wttcr": "user001", | |
| 956 | + "wttcrName": "张三", | |
| 957 | + "wtclr": "user002", | |
| 958 | + "wtclrName": "李四", | |
| 959 | + "wtclzt": "#2#", | |
| 960 | + "wtclztDesc": "处理中" | |
| 961 | + } | |
| 962 | + ] | |
| 963 | +} | |
| 964 | +``` | ... | ... |
src/main/resources/doc/接口示例
0 → 100644
| 1 | +接口示例 | |
| 2 | +AB类改善模块: | |
| 3 | + | |
| 4 | +C类改善模块: | |
| 5 | +1、C类改善柱状图数据来源-根据季度获取每个室组的汇总统计信息; | |
| 6 | +请求url: | |
| 7 | +http://localhost:8090/cImprovement/summary/quarter?quarter=3 | |
| 8 | +出参示例: | |
| 9 | +{ | |
| 10 | + "success": true, | |
| 11 | + "data": [ | |
| 12 | + { | |
| 13 | + "szxx": "lvRCTDE4V7qlUhLqHzS", | |
| 14 | + "szmc": "制造室2", | |
| 15 | + "szbh": "232", | |
| 16 | + "dwcj": "zTaXfHi1shF22hC8vnx", | |
| 17 | + "dwcjName": "分装车间", | |
| 18 | + "dwcjCode": "109", | |
| 19 | + "year": "2026", | |
| 20 | + "quarter": "3", | |
| 21 | + "quarterDesc": "第三季度", | |
| 22 | + "totalPersonnel": 2, | |
| 23 | + "improvementPersonnel": 1, | |
| 24 | + "improvementRate": 50, | |
| 25 | + "mb": 0.8 | |
| 26 | + }, | |
| 27 | + { | |
| 28 | + "szxx": "tMIdOMvQud8yjLXfLiG", | |
| 29 | + "szmc": "CPS体系室", | |
| 30 | + "szbh": "64", | |
| 31 | + "dwcj": "6AkMzM03wQflhjYqaRV", | |
| 32 | + "dwcjName": "制造运营处", | |
| 33 | + "dwcjCode": "106", | |
| 34 | + "year": "2026", | |
| 35 | + "quarter": "3", | |
| 36 | + "quarterDesc": "第三季度", | |
| 37 | + "totalPersonnel": 3, | |
| 38 | + "improvementPersonnel": 2, | |
| 39 | + "improvementRate": 66.67, | |
| 40 | + "mb": 0.6 | |
| 41 | + } | |
| 42 | + ], | |
| 43 | + "msg": "成功", | |
| 44 | + "errCode": null | |
| 45 | +} | |
| 46 | + | |
| 47 | +2、C类改善柱子下探数据来源-根据季度室组入参获取室组下人员指定季度发起的C类改善记录列表明细 | |
| 48 | +请求url: | |
| 49 | +http://localhost:8090/cImprovement/list/detail?quarter=3&roomGroupId=lvRCTDE4V7qlUhLqHzS | |
| 50 | +出参示例: | |
| 51 | +{ | |
| 52 | + "success": true, | |
| 53 | + "data": [ | |
| 54 | + { | |
| 55 | + "id": "mBtSiChAlCeIM3HxWbW", | |
| 56 | + "createdAt": null, | |
| 57 | + "gsmc": "改善4397", | |
| 58 | + "wtbh": "345", | |
| 59 | + "lywt": "lgRDYJqHMS81zBdYfjg", | |
| 60 | + "wtsm": null, | |
| 61 | + "gshxg": null, | |
| 62 | + "zt": "#4#", | |
| 63 | + "ztDesc": "已确认", | |
| 64 | + "sfwtlg": null, | |
| 65 | + "sfscjb": true, | |
| 66 | + "sftsyxal": null, | |
| 67 | + "sftsjdz": null, | |
| 68 | + "processInstanceId": "31de43d8daa24cdea7baeea2b6c2ad46", | |
| 69 | + "approvalStatus": "#PASS#", | |
| 70 | + "szqymc": null, | |
| 71 | + "ygh": "18856914956", | |
| 72 | + "yh": null, | |
| 73 | + "yhName": null, | |
| 74 | + "fqr": "cyTZZMgy3WliwVfM3LT", | |
| 75 | + "fqrName": "周雪", | |
| 76 | + "bm": "zTaXfHi1shF22hC8vnx", | |
| 77 | + "bmName": null, | |
| 78 | + "szmc": "lvRCTDE4V7qlUhLqHzS", | |
| 79 | + "szmcName": "制造室2", | |
| 80 | + "szbh": "232", | |
| 81 | + "bz": "rLrKJmjkCcz7d8Jc3dd", | |
| 82 | + "bzName": "分装三班", | |
| 83 | + "dwcj": "zTaXfHi1shF22hC8vnx", | |
| 84 | + "dwcjName": "分装车间", | |
| 85 | + "dwcjCode": "109", | |
| 86 | + "szqy": null, | |
| 87 | + "szqyName": null, | |
| 88 | + "qzqr": "kf3xfAv2hEA8kkoDxrz", | |
| 89 | + "qzqrName": "许佩玉", | |
| 90 | + "gsyqr": "inSGohb1FwgLvJuP4Ct", | |
| 91 | + "gsyqrName": "檀玲玲" | |
| 92 | + }, | |
| 93 | + { | |
| 94 | + "id": "PgYZCh3lz8SPpmeOFVH", | |
| 95 | + "createdAt": null, | |
| 96 | + "gsmc": "改善一二", | |
| 97 | + "wtbh": "92", | |
| 98 | + "lywt": "0y6Gls817Nktw4srkPH", | |
| 99 | + "wtsm": null, | |
| 100 | + "gshxg": null, | |
| 101 | + "zt": "#2#", | |
| 102 | + "ztDesc": "已提交", | |
| 103 | + "sfwtlg": null, | |
| 104 | + "sfscjb": null, | |
| 105 | + "sftsyxal": true, | |
| 106 | + "sftsjdz": null, | |
| 107 | + "processInstanceId": null, | |
| 108 | + "approvalStatus": "#DRAFT#", | |
| 109 | + "szqymc": null, | |
| 110 | + "ygh": "18856914956", | |
| 111 | + "yh": null, | |
| 112 | + "yhName": null, | |
| 113 | + "fqr": "cyTZZMgy3WliwVfM3LT", | |
| 114 | + "fqrName": "周雪", | |
| 115 | + "bm": "zTaXfHi1shF22hC8vnx", | |
| 116 | + "bmName": null, | |
| 117 | + "szmc": "lvRCTDE4V7qlUhLqHzS", | |
| 118 | + "szmcName": "制造室2", | |
| 119 | + "szbh": "232", | |
| 120 | + "bz": null, | |
| 121 | + "bzName": null, | |
| 122 | + "dwcj": "zTaXfHi1shF22hC8vnx", | |
| 123 | + "dwcjName": "分装车间", | |
| 124 | + "dwcjCode": "109", | |
| 125 | + "szqy": null, | |
| 126 | + "szqyName": null, | |
| 127 | + "qzqr": null, | |
| 128 | + "qzqrName": null, | |
| 129 | + "gsyqr": "cyTZZMgy3WliwVfM3LT", | |
| 130 | + "gsyqrName": "周雪" | |
| 131 | + } | |
| 132 | + ], | |
| 133 | + "msg": "成功", | |
| 134 | + "errCode": null | |
| 135 | +} | |
| 136 | + | |
| 137 | + | |
| 138 | +问题模块: | |
| 139 | +1、问题超期未解决柱状图-根据开始结束时间获取计划解决时间这个范围内的各责任单位问题数汇总(各状态问题数汇总); | |
| 140 | +请求url: | |
| 141 | +http://localhost:8090/cpsProblem/summary/status?startTime=2026-08-01&endTime=2026-09-30 | |
| 142 | +出参示例: | |
| 143 | +{ | |
| 144 | + "success": true, | |
| 145 | + "data": [ | |
| 146 | + { | |
| 147 | + "wtzrdw": "GUGXUW77KKfQRu4BFgx", | |
| 148 | + "wtzrdwName": "冲压车间", | |
| 149 | + "wtzrdwCode": "102", | |
| 150 | + "totalCount": 1, | |
| 151 | + "statusCounts": [ | |
| 152 | + { | |
| 153 | + "statusCode": "#1#", | |
| 154 | + "statusDesc": "待处理", | |
| 155 | + "count": 0 | |
| 156 | + }, | |
| 157 | + { | |
| 158 | + "statusCode": "#2#", | |
| 159 | + "statusDesc": "处理中", | |
| 160 | + "count": 0 | |
| 161 | + }, | |
| 162 | + { | |
| 163 | + "statusCode": "#3#", | |
| 164 | + "statusDesc": "已关闭", | |
| 165 | + "count": 0 | |
| 166 | + }, | |
| 167 | + { | |
| 168 | + "statusCode": "#4#", | |
| 169 | + "statusDesc": "已逾期", | |
| 170 | + "count": 1 | |
| 171 | + } | |
| 172 | + ] | |
| 173 | + }, | |
| 174 | + { | |
| 175 | + "wtzrdw": "ahImSLxXBuQkFtU8Ace", | |
| 176 | + "wtzrdwName": "总装车间", | |
| 177 | + "wtzrdwCode": "104", | |
| 178 | + "totalCount": 3, | |
| 179 | + "statusCounts": [ | |
| 180 | + { | |
| 181 | + "statusCode": "#1#", | |
| 182 | + "statusDesc": "待处理", | |
| 183 | + "count": 0 | |
| 184 | + }, | |
| 185 | + { | |
| 186 | + "statusCode": "#2#", | |
| 187 | + "statusDesc": "处理中", | |
| 188 | + "count": 0 | |
| 189 | + }, | |
| 190 | + { | |
| 191 | + "statusCode": "#3#", | |
| 192 | + "statusDesc": "已关闭", | |
| 193 | + "count": 1 | |
| 194 | + }, | |
| 195 | + { | |
| 196 | + "statusCode": "#4#", | |
| 197 | + "statusDesc": "已逾期", | |
| 198 | + "count": 2 | |
| 199 | + } | |
| 200 | + ] | |
| 201 | + }, | |
| 202 | + { | |
| 203 | + "wtzrdw": "fajFKONK5pKiFcyzqDT", | |
| 204 | + "wtzrdwName": "焊装车间", | |
| 205 | + "wtzrdwCode": "105", | |
| 206 | + "totalCount": 1, | |
| 207 | + "statusCounts": [ | |
| 208 | + { | |
| 209 | + "statusCode": "#1#", | |
| 210 | + "statusDesc": "待处理", | |
| 211 | + "count": 0 | |
| 212 | + }, | |
| 213 | + { | |
| 214 | + "statusCode": "#2#", | |
| 215 | + "statusDesc": "处理中", | |
| 216 | + "count": 0 | |
| 217 | + }, | |
| 218 | + { | |
| 219 | + "statusCode": "#3#", | |
| 220 | + "statusDesc": "已关闭", | |
| 221 | + "count": 1 | |
| 222 | + }, | |
| 223 | + { | |
| 224 | + "statusCode": "#4#", | |
| 225 | + "statusDesc": "已逾期", | |
| 226 | + "count": 0 | |
| 227 | + } | |
| 228 | + ] | |
| 229 | + } | |
| 230 | + ], | |
| 231 | + "msg": "成功", | |
| 232 | + "errCode": null | |
| 233 | +} | |
| 234 | + | |
| 235 | + | |
| 236 | +2、问题超期未解决问题下探列表明细-根据开始结束时间、问题责任单位id、问题处理状态获取计划解决时间这个范围内的问题明细列表; | |
| 237 | +请求url: | |
| 238 | +http://localhost:8090/cpsProblem/list/detail?startTime=2026-08-01&endTime=2026-09-30&wtdwId=ahImSLxXBuQkFtU8Ace&status=4 | |
| 239 | + | |
| 240 | +出参示例: | |
| 241 | +{ | |
| 242 | + "success": true, | |
| 243 | + "data": [ | |
| 244 | + { | |
| 245 | + "id": "6cc5XQRD4EHdYGVr4Rm", | |
| 246 | + "createdAt": null, | |
| 247 | + "wtbh": "0001", | |
| 248 | + "wtms": "12345", | |
| 249 | + "wtly": "#3#", | |
| 250 | + "wtlyDesc": "过程确认", | |
| 251 | + "wtssbk": "3Bd6p7ixQBb1OSF8gwE", | |
| 252 | + "wtlb": "#5#", | |
| 253 | + "wtlbDesc": "过程确认", | |
| 254 | + "wtxz": "#1#", | |
| 255 | + "wtxzDesc": "无标准", | |
| 256 | + "sfl": "#1#", | |
| 257 | + "sflDesc": "整理", | |
| 258 | + "mbghlk": "#1#", | |
| 259 | + "mbghlkDesc": "1", | |
| 260 | + "rylb": "#7#", | |
| 261 | + "rylbDesc": "一般员工", | |
| 262 | + "wtsfgb": null, | |
| 263 | + "wtfj": null, | |
| 264 | + "wtzghfj": null, | |
| 265 | + "wtjjcs": null, | |
| 266 | + "wtclfs": null, | |
| 267 | + "wtclfsDesc": null, | |
| 268 | + "gzap": null, | |
| 269 | + "wtsjz": null, | |
| 270 | + "wtclfs2": null, | |
| 271 | + "wtclfs2Desc": null, | |
| 272 | + "gzap2": null, | |
| 273 | + "wtsjz2": null, | |
| 274 | + "wtclfs3": null, | |
| 275 | + "wtclfs3Desc": null, | |
| 276 | + "gzap3": null, | |
| 277 | + "wtsjz3": null, | |
| 278 | + "jhjjsj": "2026-09-19 16:00:00", | |
| 279 | + "tntpvy": "2026-09-09 02:32:45", | |
| 280 | + "processInstanceId": null, | |
| 281 | + "approvalStatus": null, | |
| 282 | + "gzdw": "ahImSLxXBuQkFtU8Ace", | |
| 283 | + "gzdwName": "总装车间", | |
| 284 | + "gzdwCode": "104", | |
| 285 | + "wtzrdw": "ahImSLxXBuQkFtU8Ace", | |
| 286 | + "wtzrdwName": "总装车间", | |
| 287 | + "wtzrdwCode": "104", | |
| 288 | + "sz": "gjCsFTBShT36aQhnACN", | |
| 289 | + "szName": "制造室", | |
| 290 | + "szCode": "76", | |
| 291 | + "qy": "fmYCcdP0L8ABmx2cPo1", | |
| 292 | + "qyName": "区域1", | |
| 293 | + "qyCode": "111", | |
| 294 | + "bz": "6Lj0fH9rB5bXm19thta", | |
| 295 | + "bzName": "班组1", | |
| 296 | + "bzCode": "999", | |
| 297 | + "wttcr": "jU1pkX6iMiZjUPP19MP", | |
| 298 | + "wttcrName": "陈工", | |
| 299 | + "wtclr": "jU1pkX6iMiZjUPP19MP", | |
| 300 | + "wtclrName": "陈工", | |
| 301 | + "wtclzt": "#4#", | |
| 302 | + "wtclztDesc": "已逾期" | |
| 303 | + }, | |
| 304 | + { | |
| 305 | + "id": "lgRDYJqHMS81zBdYfjg", | |
| 306 | + "createdAt": null, | |
| 307 | + "wtbh": "0007", | |
| 308 | + "wtms": "260909", | |
| 309 | + "wtly": "#3#", | |
| 310 | + "wtlyDesc": "过程确认", | |
| 311 | + "wtssbk": "C4UyMlZruanCjNoRjpB", | |
| 312 | + "wtlb": "#5#", | |
| 313 | + "wtlbDesc": "过程确认", | |
| 314 | + "wtxz": "#1#", | |
| 315 | + "wtxzDesc": "无标准", | |
| 316 | + "sfl": "#6#", | |
| 317 | + "sflDesc": "安全", | |
| 318 | + "mbghlk": "#1#", | |
| 319 | + "mbghlkDesc": "1", | |
| 320 | + "rylb": "#7#", | |
| 321 | + "rylbDesc": "一般员工", | |
| 322 | + "wtsfgb": null, | |
| 323 | + "wtfj": null, | |
| 324 | + "wtzghfj": null, | |
| 325 | + "wtjjcs": null, | |
| 326 | + "wtclfs": null, | |
| 327 | + "wtclfsDesc": null, | |
| 328 | + "gzap": null, | |
| 329 | + "wtsjz": null, | |
| 330 | + "wtclfs2": null, | |
| 331 | + "wtclfs2Desc": null, | |
| 332 | + "gzap2": null, | |
| 333 | + "wtsjz2": null, | |
| 334 | + "wtclfs3": null, | |
| 335 | + "wtclfs3Desc": null, | |
| 336 | + "gzap3": null, | |
| 337 | + "wtsjz3": null, | |
| 338 | + "jhjjsj": "2026-09-09 16:00:00", | |
| 339 | + "tntpvy": "2026-09-09 13:00:03", | |
| 340 | + "processInstanceId": null, | |
| 341 | + "approvalStatus": null, | |
| 342 | + "gzdw": "ahImSLxXBuQkFtU8Ace", | |
| 343 | + "gzdwName": "总装车间", | |
| 344 | + "gzdwCode": "104", | |
| 345 | + "wtzrdw": "ahImSLxXBuQkFtU8Ace", | |
| 346 | + "wtzrdwName": "总装车间", | |
| 347 | + "wtzrdwCode": "104", | |
| 348 | + "sz": "gjCsFTBShT36aQhnACN", | |
| 349 | + "szName": "制造室", | |
| 350 | + "szCode": "76", | |
| 351 | + "qy": "NpZtfnU8FcGXCXPUhEr", | |
| 352 | + "qyName": "制造室", | |
| 353 | + "qyCode": "76", | |
| 354 | + "bz": "6Lj0fH9rB5bXm19thta", | |
| 355 | + "bzName": "班组1", | |
| 356 | + "bzCode": "999", | |
| 357 | + "wttcr": "jU1pkX6iMiZjUPP19MP", | |
| 358 | + "wttcrName": "陈工", | |
| 359 | + "wtclr": null, | |
| 360 | + "wtclrName": null, | |
| 361 | + "wtclzt": "#4#", | |
| 362 | + "wtclztDesc": "已逾期" | |
| 363 | + } | |
| 364 | + ], | |
| 365 | + "msg": "成功", | |
| 366 | + "errCode": null | |
| 367 | +} | |
| 368 | + | |
| 369 | + | |
| 370 | +3、问题来源环形图--根据开始结束时间获取创建时间这个范围内的各问题来源问题数汇总; | |
| 371 | +请求url: | |
| 372 | +http://localhost:8090/cpsProblem/summary/source?startTime=2026-08-01&endTime=2026-09-30 | |
| 373 | +出参示例: | |
| 374 | +{ | |
| 375 | + "success": true, | |
| 376 | + "data": [ | |
| 377 | + { | |
| 378 | + "wtly": "#1#", | |
| 379 | + "wtlyDesc": "开班", | |
| 380 | + "count": 0 | |
| 381 | + }, | |
| 382 | + { | |
| 383 | + "wtly": "#2#", | |
| 384 | + "wtlyDesc": "过程验证", | |
| 385 | + "count": 1 | |
| 386 | + }, | |
| 387 | + { | |
| 388 | + "wtly": "#3#", | |
| 389 | + "wtlyDesc": "过程确认", | |
| 390 | + "count": 4 | |
| 391 | + }, | |
| 392 | + { | |
| 393 | + "wtly": "#4#", | |
| 394 | + "wtlyDesc": "体系健康体检", | |
| 395 | + "count": 0 | |
| 396 | + }, | |
| 397 | + { | |
| 398 | + "wtly": "#5#", | |
| 399 | + "wtlyDesc": "单位自检(单位牵头)", | |
| 400 | + "count": 0 | |
| 401 | + } | |
| 402 | + ], | |
| 403 | + "msg": "成功", | |
| 404 | + "errCode": null | |
| 405 | +} | |
| 406 | + | |
| 407 | +4、问题来源环形图下探明细-根据开始、结束时间、问题来源获取创建时间这个范围内的符合问题来源条件的问题明细列表; | |
| 408 | +请求url: | |
| 409 | +http://localhost:8090/cpsProblem/list/detail/source?startTime=2026-08-01&endTime=2026-09-30&wtly=3 | |
| 410 | + | |
| 411 | +出参示例:{ | |
| 412 | + "success": true, | |
| 413 | + "data": [ | |
| 414 | + { | |
| 415 | + "id": "0y6Gls817Nktw4srkPH", | |
| 416 | + "createdAt": null, | |
| 417 | + "wtbh": "0011", | |
| 418 | + "wtms": "问题一二三", | |
| 419 | + "wtly": "#3#", | |
| 420 | + "wtlyDesc": "过程确认", | |
| 421 | + "wtssbk": null, | |
| 422 | + "wtlb": null, | |
| 423 | + "wtlbDesc": null, | |
| 424 | + "wtxz": null, | |
| 425 | + "wtxzDesc": null, | |
| 426 | + "sfl": null, | |
| 427 | + "sflDesc": null, | |
| 428 | + "mbghlk": "#1#", | |
| 429 | + "mbghlkDesc": "1", | |
| 430 | + "rylb": "#7#", | |
| 431 | + "rylbDesc": "一般员工", | |
| 432 | + "wtsfgb": null, | |
| 433 | + "wtfj": null, | |
| 434 | + "wtzghfj": null, | |
| 435 | + "wtjjcs": null, | |
| 436 | + "wtclfs": null, | |
| 437 | + "wtclfsDesc": null, | |
| 438 | + "gzap": null, | |
| 439 | + "wtsjz": null, | |
| 440 | + "wtclfs2": null, | |
| 441 | + "wtclfs2Desc": null, | |
| 442 | + "gzap2": null, | |
| 443 | + "wtsjz2": null, | |
| 444 | + "wtclfs3": null, | |
| 445 | + "wtclfs3Desc": null, | |
| 446 | + "gzap3": null, | |
| 447 | + "wtsjz3": null, | |
| 448 | + "jhjjsj": "2026-08-24 16:00:00", | |
| 449 | + "tntpvy": "2026-09-10 09:37:39", | |
| 450 | + "processInstanceId": null, | |
| 451 | + "approvalStatus": null, | |
| 452 | + "gzdw": "Iv9y56sXFNZyuPFPQ85", | |
| 453 | + "gzdwName": "人力资源处", | |
| 454 | + "gzdwCode": "108", | |
| 455 | + "wtzrdw": "GUGXUW77KKfQRu4BFgx", | |
| 456 | + "wtzrdwName": "冲压车间", | |
| 457 | + "wtzrdwCode": "102", | |
| 458 | + "sz": "lvRCTDE4V7qlUhLqHzS", | |
| 459 | + "szName": "制造室2", | |
| 460 | + "szCode": "232", | |
| 461 | + "qy": "c3vxhnAwpekrWYoceWV", | |
| 462 | + "qyName": "总装2", | |
| 463 | + "qyCode": "313", | |
| 464 | + "bz": "rLrKJmjkCcz7d8Jc3dd", | |
| 465 | + "bzName": "分装三班", | |
| 466 | + "bzCode": "872", | |
| 467 | + "wttcr": "cyTZZMgy3WliwVfM3LT", | |
| 468 | + "wttcrName": "周雪", | |
| 469 | + "wtclr": "cyTZZMgy3WliwVfM3LT", | |
| 470 | + "wtclrName": "周雪", | |
| 471 | + "wtclzt": "#4#", | |
| 472 | + "wtclztDesc": "已逾期" | |
| 473 | + }, | |
| 474 | + { | |
| 475 | + "id": "6cc5XQRD4EHdYGVr4Rm", | |
| 476 | + "createdAt": null, | |
| 477 | + "wtbh": "0001", | |
| 478 | + "wtms": "12345", | |
| 479 | + "wtly": "#3#", | |
| 480 | + "wtlyDesc": "过程确认", | |
| 481 | + "wtssbk": "3Bd6p7ixQBb1OSF8gwE", | |
| 482 | + "wtlb": "#5#", | |
| 483 | + "wtlbDesc": "过程确认", | |
| 484 | + "wtxz": "#1#", | |
| 485 | + "wtxzDesc": "无标准", | |
| 486 | + "sfl": "#1#", | |
| 487 | + "sflDesc": "整理", | |
| 488 | + "mbghlk": "#1#", | |
| 489 | + "mbghlkDesc": "1", | |
| 490 | + "rylb": "#7#", | |
| 491 | + "rylbDesc": "一般员工", | |
| 492 | + "wtsfgb": null, | |
| 493 | + "wtfj": null, | |
| 494 | + "wtzghfj": null, | |
| 495 | + "wtjjcs": null, | |
| 496 | + "wtclfs": null, | |
| 497 | + "wtclfsDesc": null, | |
| 498 | + "gzap": null, | |
| 499 | + "wtsjz": null, | |
| 500 | + "wtclfs2": null, | |
| 501 | + "wtclfs2Desc": null, | |
| 502 | + "gzap2": null, | |
| 503 | + "wtsjz2": null, | |
| 504 | + "wtclfs3": null, | |
| 505 | + "wtclfs3Desc": null, | |
| 506 | + "gzap3": null, | |
| 507 | + "wtsjz3": null, | |
| 508 | + "jhjjsj": "2026-09-19 16:00:00", | |
| 509 | + "tntpvy": "2026-09-09 02:32:45", | |
| 510 | + "processInstanceId": null, | |
| 511 | + "approvalStatus": null, | |
| 512 | + "gzdw": "ahImSLxXBuQkFtU8Ace", | |
| 513 | + "gzdwName": "总装车间", | |
| 514 | + "gzdwCode": "104", | |
| 515 | + "wtzrdw": "ahImSLxXBuQkFtU8Ace", | |
| 516 | + "wtzrdwName": "总装车间", | |
| 517 | + "wtzrdwCode": "104", | |
| 518 | + "sz": "gjCsFTBShT36aQhnACN", | |
| 519 | + "szName": "制造室", | |
| 520 | + "szCode": "76", | |
| 521 | + "qy": "fmYCcdP0L8ABmx2cPo1", | |
| 522 | + "qyName": "区域1", | |
| 523 | + "qyCode": "111", | |
| 524 | + "bz": "6Lj0fH9rB5bXm19thta", | |
| 525 | + "bzName": "班组1", | |
| 526 | + "bzCode": "999", | |
| 527 | + "wttcr": "jU1pkX6iMiZjUPP19MP", | |
| 528 | + "wttcrName": "陈工", | |
| 529 | + "wtclr": "jU1pkX6iMiZjUPP19MP", | |
| 530 | + "wtclrName": "陈工", | |
| 531 | + "wtclzt": "#4#", | |
| 532 | + "wtclztDesc": "已逾期" | |
| 533 | + }, | |
| 534 | + { | |
| 535 | + "id": "lgRDYJqHMS81zBdYfjg", | |
| 536 | + "createdAt": null, | |
| 537 | + "wtbh": "0007", | |
| 538 | + "wtms": "260909", | |
| 539 | + "wtly": "#3#", | |
| 540 | + "wtlyDesc": "过程确认", | |
| 541 | + "wtssbk": "C4UyMlZruanCjNoRjpB", | |
| 542 | + "wtlb": "#5#", | |
| 543 | + "wtlbDesc": "过程确认", | |
| 544 | + "wtxz": "#1#", | |
| 545 | + "wtxzDesc": "无标准", | |
| 546 | + "sfl": "#6#", | |
| 547 | + "sflDesc": "安全", | |
| 548 | + "mbghlk": "#1#", | |
| 549 | + "mbghlkDesc": "1", | |
| 550 | + "rylb": "#7#", | |
| 551 | + "rylbDesc": "一般员工", | |
| 552 | + "wtsfgb": null, | |
| 553 | + "wtfj": null, | |
| 554 | + "wtzghfj": null, | |
| 555 | + "wtjjcs": null, | |
| 556 | + "wtclfs": null, | |
| 557 | + "wtclfsDesc": null, | |
| 558 | + "gzap": null, | |
| 559 | + "wtsjz": null, | |
| 560 | + "wtclfs2": null, | |
| 561 | + "wtclfs2Desc": null, | |
| 562 | + "gzap2": null, | |
| 563 | + "wtsjz2": null, | |
| 564 | + "wtclfs3": null, | |
| 565 | + "wtclfs3Desc": null, | |
| 566 | + "gzap3": null, | |
| 567 | + "wtsjz3": null, | |
| 568 | + "jhjjsj": "2026-09-09 16:00:00", | |
| 569 | + "tntpvy": "2026-09-09 13:00:03", | |
| 570 | + "processInstanceId": null, | |
| 571 | + "approvalStatus": null, | |
| 572 | + "gzdw": "ahImSLxXBuQkFtU8Ace", | |
| 573 | + "gzdwName": "总装车间", | |
| 574 | + "gzdwCode": "104", | |
| 575 | + "wtzrdw": "ahImSLxXBuQkFtU8Ace", | |
| 576 | + "wtzrdwName": "总装车间", | |
| 577 | + "wtzrdwCode": "104", | |
| 578 | + "sz": "gjCsFTBShT36aQhnACN", | |
| 579 | + "szName": "制造室", | |
| 580 | + "szCode": "76", | |
| 581 | + "qy": "NpZtfnU8FcGXCXPUhEr", | |
| 582 | + "qyName": "制造室", | |
| 583 | + "qyCode": "76", | |
| 584 | + "bz": "6Lj0fH9rB5bXm19thta", | |
| 585 | + "bzName": "班组1", | |
| 586 | + "bzCode": "999", | |
| 587 | + "wttcr": "jU1pkX6iMiZjUPP19MP", | |
| 588 | + "wttcrName": "陈工", | |
| 589 | + "wtclr": null, | |
| 590 | + "wtclrName": null, | |
| 591 | + "wtclzt": "#4#", | |
| 592 | + "wtclztDesc": "已逾期" | |
| 593 | + }, | |
| 594 | + { | |
| 595 | + "id": "VnP3UBlwvExVy3ThQRx", | |
| 596 | + "createdAt": null, | |
| 597 | + "wtbh": "0021", | |
| 598 | + "wtms": "222", | |
| 599 | + "wtly": "#3#", | |
| 600 | + "wtlyDesc": "过程确认", | |
| 601 | + "wtssbk": "D4TKppnh6cdNBbp3m75", | |
| 602 | + "wtlb": "#5#", | |
| 603 | + "wtlbDesc": "过程确认", | |
| 604 | + "wtxz": "#1#", | |
| 605 | + "wtxzDesc": "无标准", | |
| 606 | + "sfl": "#1#", | |
| 607 | + "sflDesc": "整理", | |
| 608 | + "mbghlk": "#0#", | |
| 609 | + "mbghlkDesc": "0", | |
| 610 | + "rylb": "#7#", | |
| 611 | + "rylbDesc": "一般员工", | |
| 612 | + "wtsfgb": null, | |
| 613 | + "wtfj": null, | |
| 614 | + "wtzghfj": null, | |
| 615 | + "wtjjcs": "899999", | |
| 616 | + "wtclfs": "#3#", | |
| 617 | + "wtclfsDesc": "问题升级至", | |
| 618 | + "gzap": null, | |
| 619 | + "wtsjz": "94kDpRJdCZeIwYvEdHo", | |
| 620 | + "wtclfs2": "#3#", | |
| 621 | + "wtclfs2Desc": "问题升级至", | |
| 622 | + "gzap2": null, | |
| 623 | + "wtsjz2": "jU1pkX6iMiZjUPP19MP", | |
| 624 | + "wtclfs3": "#1#", | |
| 625 | + "wtclfs3Desc": "自己解决", | |
| 626 | + "gzap3": null, | |
| 627 | + "wtsjz3": null, | |
| 628 | + "jhjjsj": "2026-09-21 16:00:00", | |
| 629 | + "tntpvy": null, | |
| 630 | + "processInstanceId": "626e55ca22e14a0f9c9748de891a64d0", | |
| 631 | + "approvalStatus": "#PASS#", | |
| 632 | + "gzdw": "ahImSLxXBuQkFtU8Ace", | |
| 633 | + "gzdwName": "总装车间", | |
| 634 | + "gzdwCode": "104", | |
| 635 | + "wtzrdw": "ahImSLxXBuQkFtU8Ace", | |
| 636 | + "wtzrdwName": "总装车间", | |
| 637 | + "wtzrdwCode": "104", | |
| 638 | + "sz": "6oektTxrhzFKLmaUIuU", | |
| 639 | + "szName": "完成区", | |
| 640 | + "szCode": "68", | |
| 641 | + "qy": "cIBCbwuP3H0U478Rdmd", | |
| 642 | + "qyName": "完成区", | |
| 643 | + "qyCode": "68", | |
| 644 | + "bz": "0UClE70jI0b6F3CuRoE", | |
| 645 | + "bzName": "完成一班", | |
| 646 | + "bzCode": "144", | |
| 647 | + "wttcr": "jU1pkX6iMiZjUPP19MP", | |
| 648 | + "wttcrName": "陈工", | |
| 649 | + "wtclr": null, | |
| 650 | + "wtclrName": null, | |
| 651 | + "wtclzt": "#3#", | |
| 652 | + "wtclztDesc": "已关闭" | |
| 653 | + } | |
| 654 | + ], | |
| 655 | + "msg": "成功", | |
| 656 | + "errCode": null | |
| 657 | +} | |
| \ No newline at end of file | ... | ... |
src/main/resources/sql/init.sql
0 → 100644
| 1 | +--组织用户信息表 | |
| 2 | +CREATE TABLE `t_apaas_uc_user` | |
| 3 | +( | |
| 4 | + `id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'ID', | |
| 5 | + `corp_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '公司编号', | |
| 6 | + `created_at` datetime NOT NULL COMMENT '创建时间', | |
| 7 | + `created_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人ID', | |
| 8 | + `updated_at` datetime NOT NULL COMMENT '最后更新时间', | |
| 9 | + `updated_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '最后更新人', | |
| 10 | + `name` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '姓名', | |
| 11 | + `name_spell` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '姓名全拼', | |
| 12 | + `mobile` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, | |
| 13 | + `email` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '邮箱', | |
| 14 | + `id_card` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '身份证号', | |
| 15 | + `leader_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, | |
| 16 | + `login_name` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '登录名', | |
| 17 | + `status` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, | |
| 18 | + `pwd` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '密码', | |
| 19 | + `type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, | |
| 20 | + `_d_10409_enabled_report` tinyint(1) DEFAULT NULL, | |
| 21 | + `portal_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, | |
| 22 | + `lflzvg` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, | |
| 23 | + `sex` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, | |
| 24 | + `leader` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, | |
| 25 | + `birthday` datetime(3) DEFAULT NULL, | |
| 26 | + `enabled_report` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, | |
| 27 | + `avatar` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, | |
| 28 | + `ref_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, | |
| 29 | + `ref_id` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, | |
| 30 | + PRIMARY KEY (`id`) USING BTREE | |
| 31 | +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; | |
| 32 | + | |
| 33 | +--组织结构信息表 | |
| 34 | +CREATE TABLE `t_apaas_uc_org` | |
| 35 | +( | |
| 36 | + `id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'ID', | |
| 37 | + `corp_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '公司编号', | |
| 38 | + `created_at` datetime NOT NULL COMMENT '创建时间', | |
| 39 | + `created_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人ID', | |
| 40 | + `updated_at` datetime NOT NULL COMMENT '最后更新时间', | |
| 41 | + `updated_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '最后更新人', | |
| 42 | + `code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '部门编码', | |
| 43 | + `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '部门名称', | |
| 44 | + `administrator` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '部门负责人', | |
| 45 | + `type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '部门类型', | |
| 46 | + `parent_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, | |
| 47 | + `ref_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, | |
| 48 | + `ref_id` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, | |
| 49 | + `sorts` double (21,6) DEFAULT NULL, | |
| 50 | + PRIMARY KEY (`id`) USING BTREE | |
| 51 | +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; | ... | ... |