Browse Source

feat:投诉举报数据录入时生成问题

feature/tsjb-1.0
buaixuexideshitongxue 1 month ago
parent
commit
ae379f5289
  1. 26
      src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionAddRequest.java
  2. 6
      src/main/java/com/biutag/supervision/service/NegativeWorkService.java
  3. 56
      src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionServiceImpl.java

26
src/main/java/com/biutag/supervision/pojo/request/complaintCollection/ComplaintCollectionAddRequest.java

@ -116,6 +116,32 @@ public class ComplaintCollectionAddRequest implements ParamChecked {
@Schema(description = "附件列表")
private List<FileVo> thingFiles = new ArrayList<>();
// ===== 以下字段用于同步创建 Negative =====
@Schema(description = "主办层级")
private String hostLevel;
@Schema(description = "指定办理单位ID")
private String departId;
@Schema(description = "指定办理单位名称")
private String departName;
@Schema(description = "办理时限")
private String timeLimit;
@Schema(description = "签收时限(天)")
private Integer maxSignDuration;
@Schema(description = "办理时限(天)")
private Integer maxHandleDuration;
@Schema(description = "延期时限(天)")
private Integer maxExtensionDuration;
@Schema(description = "审批流程")
private String approvalFlow;
@Override
public void check() {
trimFields();

6
src/main/java/com/biutag/supervision/service/NegativeWorkService.java

@ -38,9 +38,9 @@ public class NegativeWorkService extends ServiceImpl<NegativeWorkMapper, Negativ
public Page<NegativeWorkModel> page(NegativeQueryParam param, String workStatus) {
UserAuth user = UserContextHolder.getCurrentUser();
// if (user.getRoleCodes().isEmpty() || user.getAuthDepartIds().isEmpty() || user.getAuthSources().isEmpty()) {
// return new Page<NegativeWorkModel>().setTotal(0).setRecords(new ArrayList<>());
// }
if (user.getRoleCodes().isEmpty() || user.getAuthDepartIds().isEmpty() || user.getAuthSources().isEmpty()) {
return new Page<NegativeWorkModel>().setTotal(0).setRecords(new ArrayList<>());
}
QueryWrapper<NegativeWorkModel> queryWrapper = new QueryWrapper<>();
queryWrapper.in("w.role_code", user.getRoleCodes())
.in("w.depart_id", user.getAuthDepartIds())

56
src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionServiceImpl.java

@ -142,6 +142,10 @@ public class ComplaintCollectionServiceImpl implements ComplaintCollectionServic
Boolean res = complaintCollectionResourceService.createComplaintCollection(Arrays.asList(complaintCollection));
Assert.notNull(complaintCollection.getId(), "主表插入后未获取到ID");
saveThingFilesOrThrow(complaintCollection.getId(), request.getThingFiles());
// 同步创建 Negative
NegativeDto negativeDto = buildNegativeDtoFromComplaintCollection(complaintCollection, request);
negativeService.save(negativeDto);
return Result.success(res);
}
@ -294,7 +298,7 @@ public class ComplaintCollectionServiceImpl implements ComplaintCollectionServic
return Result.success(complaintCollectionPageVo);
}
@Deprecated
@Override
@Transactional(rollbackFor = Exception.class)
public Result<Boolean> addComplaintCollectionBlame(ComplaintCollectionAndBlameAddRequest request) {
@ -942,6 +946,56 @@ public class ComplaintCollectionServiceImpl implements ComplaintCollectionServic
return dto;
}
/**
* ComplaintCollectionAddRequest 构建 NegativeDto用于同步创建 Negative
*/
private NegativeDto buildNegativeDtoFromComplaintCollection(ComplaintCollection complaintCollection, ComplaintCollectionAddRequest request) {
Map<String, String> sourceDict = buildDictLabelMap(SupDictEnum.SFSS_SOURCE_TABLE.getCode());
NegativeDto dto = new NegativeDto();
// originId 会自动生成
dto.setOriginId(complaintCollection.getOriginId());
dto.setDiscoveryTime(complaintCollection.getDiscoveryTime());
// 问题来源
if (ComplaintCollectionSourceTableEnum.LEADER_ASSIGN.getCode().equals(request.getSourceTable())) {
dto.setProblemSourcesCode(request.getSourceTableSubOne());
dto.setProblemSources(sourceDict.get(request.getSourceTableSubOne()));
}else {
dto.setProblemSourcesCode(request.getSourceTable());
dto.setProblemSources(sourceDict.get(request.getSourceTable()));
}
// 业务类别
dto.setBusinessTypeCode(request.getBusinessTypeCode());
// 涉及单位 - 使用被投诉二级机构
dto.setInvolveDepartId(request.getSecondDepartId());
dto.setInvolveDepartName(request.getSecondDepartName());
// 内容描述
dto.setThingDesc(complaintCollection.getThingDesc());
// 主办层级
dto.setHostLevel(request.getHostLevel());
// 指定办理单位
dto.setDepartId(request.getDepartId());
// dto.setDepartName(request.getDepartName());
// 办理时限
dto.setTimeLimit(request.getTimeLimit());
dto.setMaxSignDuration(request.getMaxSignDuration());
dto.setMaxHandleDuration(request.getMaxHandleDuration());
dto.setMaxExtensionDuration(request.getMaxExtensionDuration());
// 审批流程
dto.setApprovalFlow(request.getApprovalFlow());
// 附件
dto.setThingFiles(request.getThingFiles());
return dto;
}
private Map<String, String> buildDictLabelMap(String dictType) {
List<SupDictData> list = supDictDataService.listByDictType(dictType);
return list.stream()

Loading…
Cancel
Save