Browse Source

Merge branch 'hotfix-20230213-certstatus'

李学松 2 years ago
parent
commit
6f38af73df

+ 3 - 2
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/SysDictController.java

@@ -104,12 +104,13 @@ public class SysDictController {
 	 */
 	@GetMapping("/type/{type}")
 	// @Cacheable(value = CacheConstants.DICT_DETAILS, key = "#type", unless = "#result.data.isEmpty()")
-	public R<?> getDictByType(@PathVariable String type) {
+	public R<?> getDictByType(@PathVariable String type,
+							  @RequestParam(required = false, defaultValue = "true") Boolean filterData) {
 
 		List<SysDictItem> list = sysDictItemService.list(Wrappers.<SysDictItem>query().lambda().eq(SysDictItem::getType, type));
 
 		Integer deptId = SecurityUtils.getUser().getDeptId();
-		if ("subject_location".equals(type) && 1 != deptId) {
+		if (filterData && "subject_location".equals(type) && 1 != deptId) {
 			List<SysDeptSub> l = deptSubService.list(Wrappers.<SysDeptSub>lambdaQuery().eq(SysDeptSub::getDeptId, deptId).eq(SysDeptSub::getEnableFlag, "1"));
 			if (CollUtil.isNotEmpty(l)) {
 				List<String> collect = l.stream().filter(sub -> sub.getSubjectLocation() != null).map(sub -> sub.getSubjectLocation().getType()).collect(Collectors.toList());

+ 48 - 22
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/SysUserController.java

@@ -1524,33 +1524,59 @@ public class SysUserController {
 				if (CollUtil.isNotEmpty(userSubList) && CollUtil.isNotEmpty(locations)) {
 					// 不同渠道认证信息列表
 					List<SysUserSubVO> certList = new ArrayList<>();
-					userSubList.forEach(sysUserSub -> {
-						SysUserSubVO userSubVO = BeanUtil.copyProperties(sysUserSub, SysUserSubVO.class, "certStatus");
-						userSubVO.setCertStatus(GigTypeEnum.getCertStatusByCode(sysUserSub.getGigType(), sysUserSub.getCertStatus()));
-						userSubVO.setCertStatusDisplay(String.format("%s:%s", sysUserSub.getSubjectLocation().getDescription(),GigTypeEnum.getCertStatusNameByCode(sysUserSub.getGigType(), sysUserSub.getCertStatus())));
-						certList.add(userSubVO);
-					});
-
-					List<SubjectLocation> collect = certList.stream().map(SysUserSubVO::getSubjectLocation).collect(Collectors.toList());
-
-					List<SysUserSubVO> subVOS = locations.stream().filter(loc -> !collect.contains(loc)).map(loc -> {
-								SysUserSubVO userSubVO = new SysUserSubVO();
-								userSubVO.setUserId(userVO.getUserId());
-								userSubVO.setGigType(loc.getGigType());
-								userSubVO.setSubjectLocation(loc);
-								userSubVO.setCertStatus(GigTypeEnum.getCertStatusByCode(userSubVO.getGigType(), 0));
-								userSubVO.setCertStatusDisplay(String.format("%s:%s", userSubVO.getSubjectLocation().getDescription(), GigTypeEnum.getCertStatusNameByCode(userSubVO.getGigType(), 0)));
-								return userSubVO;
-							}
-					).collect(Collectors.toList());
-					certList.addAll(subVOS);
-
-					userVO.setCertList(certList);
+//					userSubList.stream()
+//							.filter(userSub -> locations.contains(userSub.getSubjectLocation()))
+//							.forEach(sysUserSub -> {
+//						SysUserSubVO userSubVO = BeanUtil.copyProperties(sysUserSub, SysUserSubVO.class, "certStatus");
+//						userSubVO.setCertStatus(GigTypeEnum.getCertStatusByCode(sysUserSub.getGigType(), sysUserSub.getCertStatus()));
+//						userSubVO.setCertStatusDisplay(String.format("%s:%s", sysUserSub.getSubjectLocation().getDescription(),GigTypeEnum.getCertStatusNameByCode(sysUserSub.getGigType(), sysUserSub.getCertStatus())));
+//						certList.add(userSubVO);
+//					});
 
 					// 不同渠道认证名称,封装成中文名称数组格式
 					Map<SubjectLocation, SysUserSub> certStatusMap = userSubList.stream()
 							.collect(Collectors.toMap(SysUserSub::getSubjectLocation,
 									sysUserSub -> sysUserSub));
+
+					// 以企业配置并启用的税源地为基准,进行回显
+					List<SysUserSubVO> subVOS = locations.stream().map(loc -> {
+								SysUserSub sysUserSub = certStatusMap.get(loc);
+								if (sysUserSub != null) {
+									// 如果userSub存在该税源地对应的认证数据,则处理后返回
+									SysUserSubVO userSubVO = BeanUtil.copyProperties(sysUserSub, SysUserSubVO.class, "certStatus");
+									userSubVO.setCertStatus(GigTypeEnum.getCertStatusByCode(sysUserSub.getGigType(), sysUserSub.getCertStatus()));
+									userSubVO.setCertStatusDisplay(String.format("%s:%s", sysUserSub.getSubjectLocation().getDescription(),
+											GigTypeEnum.getCertStatusNameByCode(sysUserSub.getGigType(), sysUserSub.getCertStatus())));
+									return userSubVO;
+								} else {
+									// 如果userSub不存在该税源地对应的认证数据,则默认返回一条
+									SysUserSubVO userSubVO = new SysUserSubVO();
+									userSubVO.setUserId(userVO.getUserId());
+									userSubVO.setGigType(loc.getGigType());
+									userSubVO.setSubjectLocation(loc);
+									userSubVO.setCertStatus(GigTypeEnum.getCertStatusByCode(userSubVO.getGigType(), 0));
+									userSubVO.setCertStatusDisplay(String.format("%s:%s", userSubVO.getSubjectLocation().getDescription(),
+											GigTypeEnum.getCertStatusNameByCode(userSubVO.getGigType(), 0)));
+									return userSubVO;
+								}
+							}
+					).collect(Collectors.toList());
+					userVO.setCertList(subVOS);
+
+//					List<SubjectLocation> collect = certList.stream().map(SysUserSubVO::getSubjectLocation).collect(Collectors.toList());
+
+//					List<SysUserSubVO> subVOS = locations.stream().filter(loc -> !collect.contains(loc)).map(loc -> {
+//								SysUserSubVO userSubVO = new SysUserSubVO();
+//								userSubVO.setUserId(userVO.getUserId());
+//								userSubVO.setGigType(loc.getGigType());
+//								userSubVO.setSubjectLocation(loc);
+//								userSubVO.setCertStatus(GigTypeEnum.getCertStatusByCode(userSubVO.getGigType(), 0));
+//								userSubVO.setCertStatusDisplay(String.format("%s:%s", userSubVO.getSubjectLocation().getDescription(), GigTypeEnum.getCertStatusNameByCode(userSubVO.getGigType(), 0)));
+//								return userSubVO;
+//							}
+//					).collect(Collectors.toList());
+//					certList.addAll(subVOS);
+
 					// 该企业配置的所有税源地
 					List<SubjectLocation> subjectLocationList = subList.stream().map(SysDeptSub::getSubjectLocation).collect(Collectors.toList());