@@ -42,6 +42,10 @@ public interface CommonConst { | |||||
String ITEM_BASED = "依据项:"; | String ITEM_BASED = "依据项:"; | ||||
String ITEM_BASED_FILE_NAME = "依据文件名:"; | String ITEM_BASED_FILE_NAME = "依据文件名:"; | ||||
String APPENDIX = "文件:"; | String APPENDIX = "文件:"; | ||||
String NEW_CONSTRUCTION = "新建"; | |||||
String CONTINUED_CONSTRUCTION = "续建"; | |||||
String MONTH = "月"; | |||||
} | } |
@@ -4,6 +4,7 @@ import com.ningdatech.basic.util.SpringUtils; | |||||
import com.ningdatech.pmapi.datascope.model.DataScopeDTO; | import com.ningdatech.pmapi.datascope.model.DataScopeDTO; | ||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
import java.io.Serializable; | |||||
import java.util.Map; | import java.util.Map; | ||||
import java.util.Optional; | import java.util.Optional; | ||||
@@ -16,7 +17,7 @@ import java.util.Optional; | |||||
* @since 2022/1/9 23:28 | * @since 2022/1/9 23:28 | ||||
*/ | */ | ||||
@RequiredArgsConstructor | @RequiredArgsConstructor | ||||
public class DataScopeContext { | |||||
public class DataScopeContext implements Serializable { | |||||
private static final String WARN_MSG = "请先创建数据权限[%s]的实现类,使其实现 DataScopeProvider"; | private static final String WARN_MSG = "请先创建数据权限[%s]的实现类,使其实现 DataScopeProvider"; | ||||
@@ -112,7 +112,9 @@ public class PrequalificationDeclaredProjectManage { | |||||
.throwMessage("提交失败 该项目不是 待预审状态(省级部门联审成功)或者未立项阶段"); | .throwMessage("提交失败 该项目不是 待预审状态(省级部门联审成功)或者未立项阶段"); | ||||
//使用状态机 进入下一步 看看需不需要走省级审批 放入文件 | //使用状态机 进入下一步 看看需不需要走省级审批 放入文件 | ||||
projectInfo.setHigherLineSuperOrgReviewComments(projectDto.getHigherLineSuperOrgReviewComments()); | |||||
if(StringUtils.isNotBlank(projectDto.getHigherLineSuperOrgReviewComments())){ | |||||
projectInfo.setHigherLineSuperOrgReviewComments(projectDto.getHigherLineSuperOrgReviewComments()); | |||||
} | |||||
stateMachineUtils.pass(projectInfo); | stateMachineUtils.pass(projectInfo); | ||||
String instanceId = null; | String instanceId = null; | ||||
//如果是省级部门 需要联审的(申报金额大于1000万 并且是市级项目) | //如果是省级部门 需要联审的(申报金额大于1000万 并且是市级项目) | ||||
@@ -299,6 +299,9 @@ public class ProjectDraft implements Serializable { | |||||
@ApiModelProperty("用户id") | @ApiModelProperty("用户id") | ||||
private String userId; | private String userId; | ||||
@ApiModelProperty("项目申报书") | |||||
private String projectApplicationForm; | |||||
private Long createBy; | private Long createBy; | ||||
private Long updateBy; | private Long updateBy; | ||||
} | } |
@@ -303,6 +303,8 @@ public class ProjectDraftVO implements Serializable { | |||||
@ApiModelProperty("21位项目编号") | @ApiModelProperty("21位项目编号") | ||||
private String projectCode; | private String projectCode; | ||||
@ApiModelProperty("项目申报书") | |||||
private String projectApplicationForm; | |||||
private Long createBy; | private Long createBy; | ||||
private Long updateBy; | private Long updateBy; | ||||
@@ -0,0 +1,31 @@ | |||||
package com.ningdatech.pmapi.projectlib.constant; | |||||
import com.ningdatech.pmapi.projectlib.enumeration.ImportTemplateEnum; | |||||
import java.util.*; | |||||
/** | |||||
* <p> | |||||
* ImportTemplateEnumConstant | |||||
* </p> | |||||
* | |||||
* @author WendyYang | |||||
* @since 20:11 2022/11/4 | |||||
*/ | |||||
public class ImportTemplateConstant { | |||||
public static final List<String> ANNUAL_PLAN_COL_LIST = Arrays.asList("序号","项目id","项目名称","建设内容","建设依据","建设性质","建设起止年限(填写到月)", "总投资", "自有资金", "政府投资-本级财政","政府投资-上级补助资金","银行贷款","其他","一季度","二季度","三季度","四季度","建设单位","项目联系人","项目分管领导","备注"); | |||||
private static final Map<ImportTemplateEnum, List<String>> IMPORT_TEMPLATE_MAP; | |||||
static { | |||||
IMPORT_TEMPLATE_MAP = new HashMap<>(ImportTemplateEnum.values().length); | |||||
IMPORT_TEMPLATE_MAP.put(ImportTemplateEnum.ANNUAL_PLAN, ANNUAL_PLAN_COL_LIST); | |||||
} | |||||
public static List<String> getTemplateTitle(ImportTemplateEnum template) { | |||||
return IMPORT_TEMPLATE_MAP.getOrDefault(template, Collections.emptyList()); | |||||
} | |||||
} |
@@ -2,6 +2,7 @@ package com.ningdatech.pmapi.projectlib.controller; | |||||
import com.ningdatech.basic.model.PageVo; | import com.ningdatech.basic.model.PageVo; | ||||
import com.ningdatech.log.annotation.WebLog; | import com.ningdatech.log.annotation.WebLog; | ||||
import com.ningdatech.pmapi.projectlib.enumeration.ImportTemplateEnum; | |||||
import com.ningdatech.pmapi.projectlib.manage.AnnualPlanLibManage; | import com.ningdatech.pmapi.projectlib.manage.AnnualPlanLibManage; | ||||
import com.ningdatech.pmapi.projectlib.model.dto.ProjectDTO; | import com.ningdatech.pmapi.projectlib.model.dto.ProjectDTO; | ||||
import com.ningdatech.pmapi.projectlib.model.req.ProjectApprovedReq; | import com.ningdatech.pmapi.projectlib.model.req.ProjectApprovedReq; | ||||
@@ -64,8 +65,8 @@ public class AnnualPlanController { | |||||
@PostMapping("/importAnnualPlan") | @PostMapping("/importAnnualPlan") | ||||
@ApiOperation("导入年度计划") | @ApiOperation("导入年度计划") | ||||
@WebLog("导入年度计划") | @WebLog("导入年度计划") | ||||
public void importAnnualPlan(MultipartFile file) { | |||||
annualPlanLibManage.importAnnualPlan(file); | |||||
public void importAnnualPlan(@RequestParam("template") ImportTemplateEnum template, MultipartFile file) { | |||||
annualPlanLibManage.importAnnualPlan(template,file); | |||||
} | } | ||||
@PostMapping("/modify") | @PostMapping("/modify") | ||||
@@ -0,0 +1,28 @@ | |||||
package com.ningdatech.pmapi.projectlib.enumeration; | |||||
import lombok.Getter; | |||||
/** | |||||
* <p> | |||||
* 导入模版枚举 | |||||
* </p> | |||||
* | |||||
* @author WendyYang | |||||
* @since 2022-11-04 | |||||
*/ | |||||
@Getter | |||||
public enum ImportTemplateEnum { | |||||
/** | |||||
* 通用导入模版枚举 | |||||
*/ | |||||
ANNUAL_PLAN("年度计划(增补)库导入"); | |||||
private final String value; | |||||
ImportTemplateEnum(String value) { | |||||
this.value = value; | |||||
} | |||||
} |
@@ -1,6 +1,9 @@ | |||||
package com.ningdatech.pmapi.projectlib.manage; | package com.ningdatech.pmapi.projectlib.manage; | ||||
import cn.hutool.core.bean.BeanUtil; | import cn.hutool.core.bean.BeanUtil; | ||||
import cn.hutool.core.lang.Assert; | |||||
import cn.hutool.poi.excel.ExcelReader; | |||||
import cn.hutool.poi.excel.ExcelUtil; | |||||
import com.alibaba.excel.EasyExcel; | import com.alibaba.excel.EasyExcel; | ||||
import com.alibaba.excel.context.AnalysisContext; | import com.alibaba.excel.context.AnalysisContext; | ||||
import com.alibaba.excel.event.AnalysisEventListener; | import com.alibaba.excel.event.AnalysisEventListener; | ||||
@@ -13,12 +16,15 @@ import com.ningdatech.basic.model.PageVo; | |||||
import com.ningdatech.basic.util.CollUtils; | import com.ningdatech.basic.util.CollUtils; | ||||
import com.ningdatech.basic.util.ValidUtil; | import com.ningdatech.basic.util.ValidUtil; | ||||
import com.ningdatech.pmapi.common.constant.CommonConst; | import com.ningdatech.pmapi.common.constant.CommonConst; | ||||
import com.ningdatech.pmapi.common.enumeration.CommonEnum; | |||||
import com.ningdatech.pmapi.common.helper.UserInfoHelper; | import com.ningdatech.pmapi.common.helper.UserInfoHelper; | ||||
import com.ningdatech.pmapi.common.model.entity.ExcelExportWriter; | import com.ningdatech.pmapi.common.model.entity.ExcelExportWriter; | ||||
import com.ningdatech.pmapi.common.statemachine.util.StateMachineUtils; | import com.ningdatech.pmapi.common.statemachine.util.StateMachineUtils; | ||||
import com.ningdatech.pmapi.common.util.ExcelDownUtil; | import com.ningdatech.pmapi.common.util.ExcelDownUtil; | ||||
import com.ningdatech.pmapi.datascope.model.DataScopeDTO; | import com.ningdatech.pmapi.datascope.model.DataScopeDTO; | ||||
import com.ningdatech.pmapi.datascope.utils.DataScopeUtil; | import com.ningdatech.pmapi.datascope.utils.DataScopeUtil; | ||||
import com.ningdatech.pmapi.projectlib.constant.ImportTemplateConstant; | |||||
import com.ningdatech.pmapi.projectlib.enumeration.ImportTemplateEnum; | |||||
import com.ningdatech.pmapi.projectlib.enumeration.ProjectStatusEnum; | import com.ningdatech.pmapi.projectlib.enumeration.ProjectStatusEnum; | ||||
import com.ningdatech.pmapi.projectlib.helper.ProjectHelper; | import com.ningdatech.pmapi.projectlib.helper.ProjectHelper; | ||||
import com.ningdatech.pmapi.projectlib.model.dto.AnnualLibImportDTO; | import com.ningdatech.pmapi.projectlib.model.dto.AnnualLibImportDTO; | ||||
@@ -35,6 +41,7 @@ import com.ningdatech.pmapi.user.security.auth.model.UserFullInfoDTO; | |||||
import com.ningdatech.pmapi.user.util.LoginUserUtil; | import com.ningdatech.pmapi.user.util.LoginUserUtil; | ||||
import lombok.AllArgsConstructor; | import lombok.AllArgsConstructor; | ||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
import org.apache.commons.collections4.CollectionUtils; | |||||
import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
import org.springframework.transaction.annotation.Transactional; | import org.springframework.transaction.annotation.Transactional; | ||||
import org.springframework.web.multipart.MultipartFile; | import org.springframework.web.multipart.MultipartFile; | ||||
@@ -42,6 +49,7 @@ import org.springframework.web.multipart.MultipartFile; | |||||
import javax.servlet.http.HttpServletResponse; | import javax.servlet.http.HttpServletResponse; | ||||
import java.io.IOException; | import java.io.IOException; | ||||
import java.io.InputStream; | import java.io.InputStream; | ||||
import java.time.LocalDateTime; | |||||
import java.util.*; | import java.util.*; | ||||
import static com.ningdatech.pmapi.projectlib.enumeration.ProjectStatusEnum.*; | import static com.ningdatech.pmapi.projectlib.enumeration.ProjectStatusEnum.*; | ||||
@@ -162,65 +170,109 @@ public class AnnualPlanLibManage { | |||||
} | } | ||||
@Transactional(rollbackFor = Exception.class) | @Transactional(rollbackFor = Exception.class) | ||||
public void importAnnualPlan(MultipartFile file) { | |||||
try (InputStream inputStream = file.getInputStream()) { | |||||
EasyExcel.read(inputStream, new AnalysisEventListener<AnnualLibImportDTO>() { | |||||
private final List<Project> records = new ArrayList<>(); | |||||
public void importAnnualPlan(ImportTemplateEnum template, MultipartFile file) { | |||||
String contentType = file.getContentType(); | |||||
if (!contentType.equals(ExcelUtil.XLS_CONTENT_TYPE) && | |||||
!contentType.equals(ExcelUtil.XLSX_CONTENT_TYPE) | |||||
) { | |||||
throw BizException.wrap("导入失败,不支持的文件类型,请按照提供的模板导入文件!"); | |||||
} | |||||
try (InputStream inputStream = file.getInputStream(); | |||||
ExcelReader reader = ExcelUtil.getReader(inputStream)) { | |||||
Map<String, String> alias; | |||||
List<String> title = ImportTemplateConstant.getTemplateTitle(template); | |||||
switch (template) { | |||||
case ANNUAL_PLAN: | |||||
alias = new HashMap<>(title.size()); | |||||
alias.put(title.get(0), "id"); | |||||
alias.put(title.get(1), "projectId"); | |||||
alias.put(title.get(2), "projectName"); | |||||
alias.put(title.get(3), "projectIntroduction"); | |||||
alias.put(title.get(4), "buildBasis"); | |||||
alias.put(title.get(5), "isFirst"); | |||||
alias.put(title.get(6), "buildCycle"); | |||||
alias.put(title.get(7), "declaredAmount"); | |||||
alias.put(title.get(8), "annualPlanAmount"); | |||||
alias.put(title.get(9), "declareHaveAmount"); | |||||
alias.put(title.get(10), "declareGovOwnFinanceAmount"); | |||||
alias.put(title.get(11), "declareGovSuperiorFinanceAmount"); | |||||
alias.put(title.get(12), "declareBankLendingAmount"); | |||||
alias.put(title.get(13), "declareOtherAmount"); | |||||
alias.put(title.get(14), "firstQuarter"); | |||||
alias.put(title.get(15), "secondQuarter"); | |||||
alias.put(title.get(16), "thirdQuarter"); | |||||
alias.put(title.get(17), "fourthQuarter"); | |||||
alias.put(title.get(18), "buildUnitName"); | |||||
alias.put(title.get(19), "contactName"); | |||||
alias.put(title.get(20), "responsibleMan"); | |||||
alias.put(title.get(21), "projectRemarks"); | |||||
reader.setHeaderAlias(alias); | |||||
importAnnualPlanData(reader.readAll(AnnualLibImportDTO.class)); | |||||
break; | |||||
default: | |||||
throw new BizException("不支持的数据导入类型"); | |||||
} | |||||
} catch (IOException e) { | |||||
throw new RuntimeException(e); | |||||
} | |||||
} | |||||
@Override | |||||
public void onException(Exception exception, AnalysisContext context) throws Exception { | |||||
super.onException(exception, context); | |||||
throw BizException.wrap("导入年度计划解析失败"); | |||||
} | |||||
private void importAnnualPlanData(List<AnnualLibImportDTO> importDataList) { | |||||
if (CollectionUtils.isEmpty(importDataList)) { | |||||
return; | |||||
} | |||||
List<Project> projectList = new ArrayList<>(); | |||||
List<Long> projectIds = CollUtils.fieldList(importDataList, AnnualLibImportDTO::getProjectId); | |||||
Assert.isTrue(projectIds.size() == importDataList.size(), "项目ID不可重复"); | |||||
Long userId = LoginUserUtil.getUserId(); | |||||
LocalDateTime now = LocalDateTime.now(); | |||||
importDataList.forEach(w -> { | |||||
Project project = new Project(); | |||||
project.setCreateBy(userId); | |||||
project.setCreateOn(now); | |||||
project.setUpdateBy(userId); | |||||
project.setUpdateOn(now); | |||||
@Override | |||||
public void invoke(AnnualLibImportDTO data, AnalysisContext context) { | |||||
ValidUtil.valid(data); | |||||
Project project = new Project(); | |||||
project.setId(data.getProjectId()); | |||||
project.setProjectName(data.getProjectName()); | |||||
project.setProjectRemarks(data.getProjectRemarks()); | |||||
project.setEngineeringSpeedOne(data.getEngineeringSpeedOne()); | |||||
project.setEngineeringSpeedTwo(data.getEngineeringSpeedTwo()); | |||||
project.setEngineeringSpeedThree(data.getEngineeringSpeedThree()); | |||||
project.setEngineeringSpeedFour(data.getEngineeringSpeedFour()); | |||||
project.setAnnualPlanAmount(data.getAnnualPlanAmount()); | |||||
project.setDeclareOtherAmount(data.getDeclareOtherAmount()); | |||||
project.setBuildBasis(data.getBuildBasis()); | |||||
project.setBuildOrgName(data.getBuildUnitName()); | |||||
project.setDeclareBankLendingAmount(data.getDeclareBankLendingAmount()); | |||||
project.setDeclareGovOwnFinanceAmount(data.getDeclareGovOwnFinanceAmount()); | |||||
project.setDeclareGovSuperiorFinanceAmount(data.getDeclareGovSuperiorFinanceAmount()); | |||||
project.setDeclareHaveAmount(data.getDeclareHaveAmount()); | |||||
project.setDeclareOtherAmount(data.getDeclareOtherAmount()); | |||||
project.setContactName(data.getContactName()); | |||||
project.setResponsibleMan(data.getResponsibleMan()); | |||||
String[] dataArr = data.getBuildCycle().split("至"); | |||||
project.setBeginTime(dataArr[0].trim()); | |||||
project.setEndTime(dataArr[1].trim()); | |||||
project.setProjectIntroduction(data.getProjectIntroduction()); | |||||
project.setIsFirst("新建".equals(data.getIsFirst()) ? 1 : 0); | |||||
records.add(project); | |||||
} | |||||
project.setId(w.getProjectId()); | |||||
project.setProjectName(w.getProjectName()); | |||||
project.setProjectIntroduction(w.getProjectIntroduction()); | |||||
// 建设依据(立项依据忽略) | |||||
if (CommonConst.NEW_CONSTRUCTION.equals(w.getIsFirst())){ | |||||
project.setIsFirst(CommonEnum.YES.getCode()); | |||||
}else if (CommonConst.CONTINUED_CONSTRUCTION.equals(w.getIsFirst())){ | |||||
project.setIsFirst(CommonEnum.NO.getCode()); | |||||
} | |||||
String buildCycle = w.getBuildCycle(); | |||||
int index = buildCycle.indexOf(CommonConst.MONTH); | |||||
if (-1 == index){ | |||||
throw new BizException("项目ID为:" + w.getProjectId() + "的建设起止年限格式不正确,请按照xx年xx月至xx年xx月的格式输入!"); | |||||
} | |||||
String beginTime = buildCycle.substring(0, index + 1); | |||||
project.setBeginTime(beginTime); | |||||
String endTime = buildCycle.substring(index + 2); | |||||
project.setEndTime(endTime); | |||||
project.setDeclareAmount(w.getDeclaredAmount()); | |||||
project.setAnnualPlanAmount(w.getAnnualPlanAmount()); | |||||
project.setDeclareHaveAmount(w.getDeclareHaveAmount()); | |||||
project.setDeclareGovOwnFinanceAmount(w.getDeclareGovOwnFinanceAmount()); | |||||
project.setDeclareGovSuperiorFinanceAmount(w.getDeclareGovSuperiorFinanceAmount()); | |||||
project.setDeclareBankLendingAmount(w.getDeclareBankLendingAmount()); | |||||
project.setDeclareOtherAmount(w.getDeclareOtherAmount()); | |||||
project.setEngineeringSpeedOne(w.getFirstQuarter()); | |||||
project.setEngineeringSpeedTwo(w.getSecondQuarter()); | |||||
project.setEngineeringSpeedThree(w.getThirdQuarter()); | |||||
project.setEngineeringSpeedFour(w.getFourthQuarter()); | |||||
@Override | |||||
public void doAfterAllAnalysed(AnalysisContext context) { | |||||
if (records.isEmpty()) { | |||||
throw BizException.wrap("导入年度计划为空"); | |||||
} | |||||
List<Long> projectIds = CollUtils.fieldList(records, Project::getId); | |||||
long count = projectService.count(Wrappers.lambdaQuery(Project.class) | |||||
.in(Project::getId, projectIds)); | |||||
if (count != records.size()) { | |||||
throw BizException.wrap("请确保所有项目都存在"); | |||||
} | |||||
projectService.updateBatchById(records); | |||||
} | |||||
}).sheet(0).doReadSync(); | |||||
} catch (IOException e) { | |||||
throw BizException.wrap("导入年度计划失败"); | |||||
} | |||||
project.setBuildOrgName(w.getBuildUnitName()); | |||||
project.setContactName(w.getContactName()); | |||||
project.setResponsibleMan(w.getResponsibleMan()); | |||||
project.setProjectRemarks(w.getProjectRemarks()); | |||||
projectList.add(project); | |||||
}); | |||||
LambdaQueryWrapper<Project> delQuery = Wrappers.lambdaQuery(Project.class) | |||||
.in(Project::getId, projectIds); | |||||
projectService.remove(delQuery); | |||||
projectService.saveBatch(projectList); | |||||
} | } | ||||
public void updateAnnualPlan(ProjectDTO req) { | public void updateAnnualPlan(ProjectDTO req) { | ||||
@@ -62,8 +62,8 @@ public class AnnualLibImportDTO { | |||||
@NotNull(message = "政府投资-本级财政不能为空") | @NotNull(message = "政府投资-本级财政不能为空") | ||||
private BigDecimal declareGovOwnFinanceAmount; | private BigDecimal declareGovOwnFinanceAmount; | ||||
@ExcelProperty("政府投资-上级补") | |||||
@NotNull(message = "政府投资-上级补不能为空") | |||||
@ExcelProperty("政府投资-上级补助资金") | |||||
@NotNull(message = "政府投资-上级补助资金不能为空") | |||||
private BigDecimal declareGovSuperiorFinanceAmount; | private BigDecimal declareGovSuperiorFinanceAmount; | ||||
@ExcelProperty("银行贷款") | @ExcelProperty("银行贷款") | ||||
@@ -76,19 +76,19 @@ public class AnnualLibImportDTO { | |||||
@ExcelProperty("一季度") | @ExcelProperty("一季度") | ||||
@NotBlank(message = "一季度不能为空") | @NotBlank(message = "一季度不能为空") | ||||
private String engineeringSpeedOne; | |||||
private String firstQuarter; | |||||
@ExcelProperty("二季度") | @ExcelProperty("二季度") | ||||
@NotBlank(message = "二季度不能为空") | @NotBlank(message = "二季度不能为空") | ||||
private String engineeringSpeedTwo; | |||||
private String secondQuarter; | |||||
@ExcelProperty("三季度") | @ExcelProperty("三季度") | ||||
@NotBlank(message = "三季度不能为空") | @NotBlank(message = "三季度不能为空") | ||||
private String engineeringSpeedThree; | |||||
private String thirdQuarter; | |||||
@ExcelProperty("四季度") | @ExcelProperty("四季度") | ||||
@NotBlank(message = "四季度不能为空") | @NotBlank(message = "四季度不能为空") | ||||
private String engineeringSpeedFour; | |||||
private String fourthQuarter; | |||||
@ExcelProperty("建设单位") | @ExcelProperty("建设单位") | ||||
@NotBlank(message = "建设单位不能为空") | @NotBlank(message = "建设单位不能为空") | ||||
@@ -662,6 +662,7 @@ public class TodoCenterManage { | |||||
ResToBeProcessedVO res = new ResToBeProcessedVO(); | ResToBeProcessedVO res = new ResToBeProcessedVO(); | ||||
Project project = projectInfoMap.get(d.getInstanceId()); | Project project = projectInfoMap.get(d.getInstanceId()); | ||||
BeanUtils.copyProperties(project, res); | BeanUtils.copyProperties(project, res); | ||||
res.setInstCode(d.getInstanceId()); | |||||
res.setBuildOrg(project.getBuildOrgName()); | res.setBuildOrg(project.getBuildOrgName()); | ||||
res.setDeclaredAmount(project.getDeclareAmount()); | res.setDeclaredAmount(project.getDeclareAmount()); | ||||
res.setProjectId(project.getId()); | res.setProjectId(project.getId()); | ||||
@@ -125,10 +125,6 @@ public class UserInfoManage { | |||||
} | } | ||||
private List<String> getCompliantOrgEmpCodeList(String orgName, String orgCode, Long regionId) { | private List<String> getCompliantOrgEmpCodeList(String orgName, String orgCode, Long regionId) { | ||||
if (Objects.nonNull(regionId) && regionId == 331100L) { | |||||
// 丽水默认查全部 | |||||
regionId = null; | |||||
} | |||||
if (StringUtils.isBlank(orgName) && StringUtils.isBlank(orgCode) && Objects.isNull(regionId)) { | if (StringUtils.isBlank(orgName) && StringUtils.isBlank(orgCode) && Objects.isNull(regionId)) { | ||||
return null; | return null; | ||||
} | } | ||||
@@ -420,6 +416,8 @@ public class UserInfoManage { | |||||
resUserDetailVO.setOrgCode(userFullInfo.getOrganizationCode()); | resUserDetailVO.setOrgCode(userFullInfo.getOrganizationCode()); | ||||
resUserDetailVO.setOrgName(userFullInfo.getOrganizationName()); | resUserDetailVO.setOrgName(userFullInfo.getOrganizationName()); | ||||
resUserDetailVO.setRegionCode(userFullInfo.getRegionCode()); | resUserDetailVO.setRegionCode(userFullInfo.getRegionCode()); | ||||
resUserDetailVO.setRegionName(regionCacheHelper.getRegionName(userFullInfo.getRegionCode() | |||||
,RegionConst.RL_COUNTY)); | |||||
resUserDetailVO.setEmpPosUnitCode(userFullInfo.getEmpPosUnitCode()); | resUserDetailVO.setEmpPosUnitCode(userFullInfo.getEmpPosUnitCode()); | ||||
resUserDetailVO.setEmpPosUnitName(userFullInfo.getEmpPosUnitName()); | resUserDetailVO.setEmpPosUnitName(userFullInfo.getEmpPosUnitName()); | ||||
} | } | ||||
@@ -434,7 +432,7 @@ public class UserInfoManage { | |||||
userInfo.setUserName(u.getRealName()); | userInfo.setUserName(u.getRealName()); | ||||
// 根据 单位code获取单位名称 | // 根据 单位code获取单位名称 | ||||
UserFullInfoDTO userFullInfo = userInfoHelper.getUserFullInfo(u.getId()); | UserFullInfoDTO userFullInfo = userInfoHelper.getUserFullInfo(u.getId()); | ||||
if(Objects.nonNull(userFullInfo)){ | |||||
if (Objects.nonNull(userFullInfo)) { | |||||
userInfo.setOrgCode(userFullInfo.getEmpPosUnitCode()); | userInfo.setOrgCode(userFullInfo.getEmpPosUnitCode()); | ||||
userInfo.setOrgName(userFullInfo.getEmpPosUnitName()); | userInfo.setOrgName(userFullInfo.getEmpPosUnitName()); | ||||
} | } | ||||
@@ -443,12 +441,12 @@ public class UserInfoManage { | |||||
} | } | ||||
public Map<String, ProcessInstanceUserDto> getUserMapByEmployeeCode(Set<String> staterUsers) { | public Map<String, ProcessInstanceUserDto> getUserMapByEmployeeCode(Set<String> staterUsers) { | ||||
if(CollUtil.isEmpty(staterUsers)){ | |||||
if (CollUtil.isEmpty(staterUsers)) { | |||||
return Collections.emptyMap(); | return Collections.emptyMap(); | ||||
} | } | ||||
List<UserInfo> userInfos = iUserInfoService.list(Wrappers.lambdaQuery(UserInfo.class) | List<UserInfo> userInfos = iUserInfoService.list(Wrappers.lambdaQuery(UserInfo.class) | ||||
.in(UserInfo::getEmployeeCode,staterUsers)); | |||||
if(CollUtil.isEmpty(userInfos)){ | |||||
.in(UserInfo::getEmployeeCode, staterUsers)); | |||||
if (CollUtil.isEmpty(userInfos)) { | |||||
return Collections.emptyMap(); | return Collections.emptyMap(); | ||||
} | } | ||||
return userInfos.stream().map(u -> { | return userInfos.stream().map(u -> { | ||||
@@ -457,7 +455,7 @@ public class UserInfoManage { | |||||
userInfo.setUserName(u.getRealName()); | userInfo.setUserName(u.getRealName()); | ||||
// 根据 单位code获取单位名称 | // 根据 单位code获取单位名称 | ||||
UserFullInfoDTO userFullInfo = userInfoHelper.getUserFullInfo(u.getId()); | UserFullInfoDTO userFullInfo = userInfoHelper.getUserFullInfo(u.getId()); | ||||
if(Objects.nonNull(userFullInfo)){ | |||||
if (Objects.nonNull(userFullInfo)) { | |||||
userInfo.setOrgCode(userFullInfo.getEmpPosUnitCode()); | userInfo.setOrgCode(userFullInfo.getEmpPosUnitCode()); | ||||
userInfo.setOrgName(userFullInfo.getEmpPosUnitName()); | userInfo.setOrgName(userFullInfo.getEmpPosUnitName()); | ||||
} | } | ||||
@@ -472,7 +470,7 @@ public class UserInfoManage { | |||||
processInstanceUserDto.setUserName(userInfo.getRealName()); | processInstanceUserDto.setUserName(userInfo.getRealName()); | ||||
// 根据 单位code获取单位名称 | // 根据 单位code获取单位名称 | ||||
UserFullInfoDTO userFullInfo = userInfoHelper.getUserFullInfo(userInfo.getId()); | UserFullInfoDTO userFullInfo = userInfoHelper.getUserFullInfo(userInfo.getId()); | ||||
if(Objects.nonNull(userFullInfo)){ | |||||
if (Objects.nonNull(userFullInfo)) { | |||||
processInstanceUserDto.setOrgCode(userFullInfo.getEmpPosUnitCode()); | processInstanceUserDto.setOrgCode(userFullInfo.getEmpPosUnitCode()); | ||||
processInstanceUserDto.setOrgName(userFullInfo.getEmpPosUnitName()); | processInstanceUserDto.setOrgName(userFullInfo.getEmpPosUnitName()); | ||||
} | } | ||||
@@ -4,9 +4,11 @@ import com.ningdatech.pmapi.common.constant.RegionConst; | |||||
import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; | ||||
import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||
import lombok.Data; | import lombok.Data; | ||||
import org.apache.commons.lang3.StringUtils; | |||||
import java.time.LocalDateTime; | import java.time.LocalDateTime; | ||||
import java.util.List; | import java.util.List; | ||||
import java.util.Objects; | |||||
/** | /** | ||||
* @author liuxinxin | * @author liuxinxin | ||||
@@ -40,6 +42,7 @@ public class ResUserDetailVO { | |||||
@ApiModelProperty("所属区域") | @ApiModelProperty("所属区域") | ||||
private Long regionId; | private Long regionId; | ||||
private String regionCode; | private String regionCode; | ||||
private String regionName; | |||||
@ApiModelProperty("用户任职所在单位code") | @ApiModelProperty("用户任职所在单位code") | ||||
private String empPosUnitCode; | private String empPosUnitCode; | ||||
@@ -51,6 +51,7 @@ public class WorkbenchManage { | |||||
public WorkbenchVO getWorkbenchData(Integer year){ | public WorkbenchVO getWorkbenchData(Integer year){ | ||||
WorkbenchVO res = new WorkbenchVO(); | WorkbenchVO res = new WorkbenchVO(); | ||||
UserInfoDetails user = LoginUserUtil.loginUserDetail(); | |||||
//1.待办中心数据 | //1.待办中心数据 | ||||
TodoCenterStatisticsVO statisticsVO = todoCenterManage.todoCenterStatistics(); | TodoCenterStatisticsVO statisticsVO = todoCenterManage.todoCenterStatistics(); | ||||
@@ -70,6 +71,7 @@ public class WorkbenchManage { | |||||
projectListReq.setPageNumber(1); | projectListReq.setPageNumber(1); | ||||
projectListReq.setPageSize(5); | projectListReq.setPageSize(5); | ||||
projectListReq.setProjectYear(year); | projectListReq.setProjectYear(year); | ||||
projectListReq.setBuildOrgCode(user.getEmpPosUnitCode()); | |||||
res.setProjects(projectLibManage.projectLibListWithPermission(projectListReq).getRecords().stream().collect(Collectors.toList())); | res.setProjects(projectLibManage.projectLibListWithPermission(projectListReq).getRecords().stream().collect(Collectors.toList())); | ||||
//3.所有公告按类型分 | //3.所有公告按类型分 | ||||