From 4083cd64d9404f9b28b4f6d3ec9b4417ae445ef7 Mon Sep 17 00:00:00 2001 From: XLR_asd <xueyawei@seaskysh.com> Date: Wed, 28 Jul 2021 17:34:11 +0800 Subject: [PATCH 1/4] =?UTF-8?q?fix=20=20=E9=A1=B9=E7=9B=AE=E7=94=B3?= =?UTF-8?q?=E6=8A=A5=E4=B9=A6=E5=AF=BC=E5=85=A5=E6=A8=A1=E7=89=88=E5=BB=BA?= =?UTF-8?q?=E7=AB=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/projectplan/InfoImportCmd.java | 55 ++++++----------- .../dto/projectplan/PlanSubjectImportCmd.java | 60 +++++++++++++++++++ .../projectplan/ProjectTargetImportCmd.java | 52 ++++++++++++++++ .../projectplan/ProjectPlanSvrImpl.java | 1 + .../projectplan/ProjectPlanQueryService.java | 2 +- .../ProjectPlanQueryServiceImpl.java | 17 +++++- 6 files changed, 148 insertions(+), 39 deletions(-) create mode 100644 ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/PlanSubjectImportCmd.java create mode 100644 ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/ProjectTargetImportCmd.java diff --git a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/InfoImportCmd.java b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/InfoImportCmd.java index f1689f179..3da3bba10 100644 --- a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/InfoImportCmd.java +++ b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/InfoImportCmd.java @@ -23,24 +23,28 @@ import java.math.BigDecimal; @EqualsAndHashCode(callSuper = true) public class InfoImportCmd extends BaseDto { + @ApiModelProperty(value = "搴忓彿",example = "") + @ExcelProperty(value = "搴忓彿", index = 0) + private String index; + @ApiModelProperty(value = "骞翠唤",example = "") - @ExcelProperty(value = "骞翠唤",index=0) + @ExcelProperty(value = "骞翠唤",index=1) private Integer year; @ApiModelProperty(value = "椤圭洰鍚嶇О",example = "") - @ExcelProperty(value = "椤圭洰鍚嶇О",index=1) + @ExcelProperty(value = "椤圭洰鍚嶇О",index=2) private String projectName; @ApiModelProperty(value = "閮ㄩ棬鍚嶇О",example = "") - @ExcelProperty(value = "閮ㄩ棬鍚嶇О",index=2) + @ExcelProperty(value = "閮ㄩ棬鍚嶇О",index=3) private String departmentName; @ApiModelProperty(value = "閮ㄩ棬缂栧彿",example = "") - @ExcelProperty(value = "閮ㄩ棬缂栧彿",index=3) + @ExcelProperty(value = "閮ㄩ棬缂栧彿",index=4) private String departmentCode; @ApiModelProperty(value = "璐熻矗浜� id",example = "") - @ExcelProperty(value = "璐熻矗浜� id",index=4) + //TODO 鏍规嵁 璐熻矗浜哄悕绉板拰缂栧彿 璧嬪€糹d private Long projectLeaderId; @ApiModelProperty(value = "璐熻矗浜� 鍚嶇О",example = "") @@ -51,52 +55,31 @@ public class InfoImportCmd extends BaseDto { @ExcelProperty(value = "璐熻矗浜虹紪鍙�",index=6) private String projectLeaderCode; - @ApiModelProperty(value = "娴佺▼id",example = "") - @ExcelProperty(value = "娴佺▼id",index=7) - private Long flowId; - - @ApiModelProperty(value = "娴佺▼绫诲瀷",example = "") - @ExcelProperty(value = "娴佺▼绫诲瀷",index=8) - private String flowType; - - @ApiModelProperty(value = "鏍稿畾閲戦",example = "") - @ExcelProperty(value = "鏍稿畾閲戦",index=9) - private BigDecimal quotaMoney = new BigDecimal("0"); - - @ApiModelProperty(value = "瀹℃牳鐘舵€�",example = "") - @ExcelProperty(value = "瀹℃牳鐘舵€�",index=10) - private String state; - - @NotEmpty(message = "鐢虫姤涔︾被鍨嬩笉鑳戒负绌�") @ApiModelProperty(value = "鐢虫姤涔︾被鍨�",example = "") - @ExcelProperty(value = "鐢虫姤涔︾被鍨� (XIANGMUKU,YISHANG,ERSHANG)",index=11) + //TODO 榛樿 XIANGMUKU private String planType; - @ApiModelProperty(value = "鍏宠仈鐨勯」鐩簱 id",example = "") - @ExcelProperty(value = "鍏宠仈鐨勯」鐩簱 id",index=12) - private Long projectLibraryId; - // summaryJson; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // summaryJson: "{\"basis\":\"5498\",\"terminfo\":\"456453\",\"plan\":\"4532453\",\"budget\":\"4534\"}" @ApiModelProperty(value = "椤圭洰鍐呭璇ユ暟鍙婂叿浣撳疄鏂藉唴瀹�",example = "") - @ExcelProperty(value = "椤圭洰鍐呭璇ユ暟鍙婂叿浣撳疄鏂藉唴瀹�",index=13) + @ExcelProperty(value = "椤圭洰鍐呭璇ユ暟鍙婂叿浣撳疄鏂藉唴瀹�",index=7) private String basis; @ApiModelProperty(value = "椤圭洰绔嬮」渚濇嵁(瑙勫垝璁″垝銆侀儴闂ㄨ亴璐c€佹斂绛栨硶瑙勭瓑)",example = "") - @ExcelProperty(value = "椤圭洰绔嬮」渚濇嵁(瑙勫垝璁″垝銆侀儴闂ㄨ亴璐c€佹斂绛栨硶瑙勭瓑)",index=14) + @ExcelProperty(value = "椤圭洰绔嬮」渚濇嵁(瑙勫垝璁″垝銆侀儴闂ㄨ亴璐c€佹斂绛栨硶瑙勭瓑)",index=8) private String terminfo; @ApiModelProperty(value = "椤圭洰绔嬮」鐨勫繀瑕佹€у拰鍙鎬�(椤圭洰鍩虹鏉′欢鍙婂墠鏈熷伐浣溿€佺鐞嗗埗搴︿笌淇濋殰鎺柦绛�)",example = "") - @ExcelProperty(value = "椤圭洰绔嬮」鐨勫繀瑕佹€у拰鍙鎬�(椤圭洰鍩虹鏉′欢鍙婂墠鏈熷伐浣溿€佺鐞嗗埗搴︿笌淇濋殰鎺柦绛�)",index=15) + @ExcelProperty(value = "椤圭洰绔嬮」鐨勫繀瑕佹€у拰鍙鎬�(椤圭洰鍩虹鏉′欢鍙婂墠鏈熷伐浣溿€佺鐞嗗埗搴︿笌淇濋殰鎺柦绛�)",index=9) private String plan; @ApiModelProperty(value = "椤圭洰鎵ц鍙婅祫閲戜娇鐢ㄨ鍒�",example = "") - @ExcelProperty(value = "椤圭洰鎵ц鍙婅祫閲戜娇鐢ㄨ鍒�(缁嗗寲鍒版湀浠�)",index=16) + @ExcelProperty(value = "椤圭洰鎵ц鍙婅祫閲戜娇鐢ㄨ鍒�(缁嗗寲鍒版湀浠�)",index=10) private String budget; @ApiModelProperty(value = "椤圭洰绫诲瀷",example = "") - @ExcelProperty(value = "椤圭洰绫诲瀷",index=17) + @ExcelProperty(value = "椤圭洰绫诲瀷",index=11) private String projectType; @ApiModelProperty(value = "椤圭洰绫诲瀷id",example = "") - @ExcelProperty(value = "椤圭洰绫诲瀷id",index=18) + //TODO 鏍规嵁椤圭洰绫诲瀷 鏌ュ嚭鍏秈d private Long projectTypeId; // + 缁╂晥淇℃伅 @@ -105,15 +88,15 @@ public class InfoImportCmd extends BaseDto { // summaryJson: "{\"projectType\":2,\"yearGoal\":\"123456\",\"projectGoal\":\"12345\"}" @ApiModelProperty(value = "椤圭洰绫诲埆(缁忓父鎬ч」鐩�,涓€娆℃€ч」鐩�)",example = "") - @ExcelProperty(value = "椤圭洰绫诲埆(缁忓父鎬ч」鐩�,涓€娆℃€ч」鐩�)",index=19) + @ExcelProperty(value = "椤圭洰绫诲埆(缁忓父鎬ч」鐩�,涓€娆℃€ч」鐩�)",index=12) private String targetProjectType; @ApiModelProperty(value = "骞村害鐩爣",example = "") - @ExcelProperty(value = "骞村害鐩爣",index=20) + @ExcelProperty(value = "骞村害鐩爣",index=13) private String yearGoal; @ApiModelProperty(value = "椤圭洰鎬荤洰鏍�(璺ㄥ勾椤圭洰)",example = "") - @ExcelProperty(value = "椤圭洰鎬荤洰鏍�(璺ㄥ勾椤圭洰)",index=21) + @ExcelProperty(value = "椤圭洰鎬荤洰鏍�(璺ㄥ勾椤圭洰)",index=14) private String projectGoal; diff --git a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/PlanSubjectImportCmd.java b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/PlanSubjectImportCmd.java new file mode 100644 index 000000000..2c4ac24db --- /dev/null +++ b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/PlanSubjectImportCmd.java @@ -0,0 +1,60 @@ +package com.seasky.projectplan.dto.projectplan; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.seasky.core.ddd.base.BaseDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +/** + * 缁忔祹绉戠洰 瀵煎叆cmd + * + * @author XueYawei + * @date 2021/07/28 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class PlanSubjectImportCmd extends BaseDto { + + @ApiModelProperty(value = "鐢虫姤涔﹀簭鍙�",example = "") + @ExcelProperty(value = "鐢虫姤涔﹀簭鍙�", index = 0) + private String index; + + @ApiModelProperty(value = "鏄庣粏鍐呭",example = "") + @ExcelProperty(value = "鏄庣粏鍐呭", index = 1) + private String subjectContent; + + @ApiModelProperty(value = "鏁伴噺",example = "") + @ExcelProperty(value = "鏁伴噺", index = 2) + private Integer number; + + @ApiModelProperty(value = "鍗曚环",example = "") + @ExcelProperty(value = "鍗曚环", index = 3) + private BigDecimal price; + + @ApiModelProperty(value = "閲戦",example = "") + @ExcelProperty(value = "閲戦", index =4) + private BigDecimal subtotal; + +// @ApiModelProperty(value = "鍏朵粬鍐呭 json",example = "") +// private String otherJson; +// otherJson: "{\"fundDescribe\":\"鍙嶆槧鍗曚綅鍏敤鎴垮眿銆佸缓绛戠墿鍙婂叾闄勫睘璁惧鐨勭淮淇垂銆俓",\"orgPurchase\":\"1222\",\"moneyFrom\":\"13333\"}" + + @ApiModelProperty(value = "鏀垮簻閲囪喘",example = "") + @ExcelProperty(value = "鏀垮簻閲囪喘", index = 5) + private String orgPurchase; + + @ApiModelProperty(value = "璧勯噾鏉ユ簮",example = "") + @ExcelProperty(value = "璧勯噾鏉ユ簮", index = 6) + private String moneyFrom; + + +} diff --git a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/ProjectTargetImportCmd.java b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/ProjectTargetImportCmd.java new file mode 100644 index 000000000..98154c245 --- /dev/null +++ b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/ProjectTargetImportCmd.java @@ -0,0 +1,52 @@ +package com.seasky.projectplan.dto.projectplan; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.seasky.core.ddd.base.BaseDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * 椤圭洰缁╂晥鎸囨爣 瀵煎叆cmd + * + * @author XueYawei + * @date 2021/07/28 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class ProjectTargetImportCmd extends BaseDto { + + @ApiModelProperty(value = "鏍圭骇+鏈骇 id",example = "") + private String one; + @ApiModelProperty(value = "鏍圭骇 id",example = "") + private String oneValue; + @ApiModelProperty(value = "鏈骇 id",example = "") + private String towValue; + + + @ApiModelProperty(value = "鐢虫姤涔﹀簭鍙�",example = "") + @ExcelProperty(value = "鐢虫姤涔﹀簭鍙�", index = 0) + private String index; + + @ApiModelProperty(value = "鏍圭骇 name",example = "") + @ExcelProperty(value = "涓€绾ф寚鏍囧悕绉�",index=1) + private String oneName; + + @ApiModelProperty(value = "鏈骇 name",example = "") + @ExcelProperty(value = "浜岀骇鎸囨爣鍚嶇О",index=2) + private String two; + + @ApiModelProperty(value = "涓夌骇鎸囨爣",example = "") + @ExcelProperty(value = "涓夌骇鎸囨爣",index=3) + private String three; + + @ApiModelProperty(value = "骞村害鎸囨爣鍊�",example = "") + @ExcelProperty(value = "骞村害鎸囨爣鍊�",index=4) + private String yearTarget; + + +} diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/application/command/projectplan/ProjectPlanSvrImpl.java b/ServiceSite/src/main/java/com/seasky/projectplan/application/command/projectplan/ProjectPlanSvrImpl.java index 7975f8a15..10df43da2 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/application/command/projectplan/ProjectPlanSvrImpl.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/application/command/projectplan/ProjectPlanSvrImpl.java @@ -338,6 +338,7 @@ public class ProjectPlanSvrImpl implements ProjectPlanSvr { @Override @Transactional(rollbackFor = Exception.class) public Object importInfoPlan(HttpServletRequest request, HttpServletResponse response, MultipartFile file) { + // List<FundingImportCmd> list ; // boolean flag = true; // try { diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/application/query/projectplan/ProjectPlanQueryService.java b/ServiceSite/src/main/java/com/seasky/projectplan/application/query/projectplan/ProjectPlanQueryService.java index e1347b28a..faef400a0 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/application/query/projectplan/ProjectPlanQueryService.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/application/query/projectplan/ProjectPlanQueryService.java @@ -153,7 +153,7 @@ public interface ProjectPlanQueryService extends BaseService<ProjectPlanBookPo> void exportPersonProjectPlanByCurrentUserDept(HttpServletRequest request, HttpServletResponse response, ProjectPersonPlanQry projectPersonPlanQry); /** - * 涓嬪姞杞芥ā鏉� + * 椤圭洰鐢虫姤涔︽ā鏉夸笅杞� * * @param request 璇锋眰 * @param response 鍝嶅簲 diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/reader/projectplan/ProjectPlanQueryServiceImpl.java b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/reader/projectplan/ProjectPlanQueryServiceImpl.java index cbc2eab7b..74bf30924 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/reader/projectplan/ProjectPlanQueryServiceImpl.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/reader/projectplan/ProjectPlanQueryServiceImpl.java @@ -2,6 +2,8 @@ package com.seasky.projectplan.infrastructure.reader.projectplan; import cn.hutool.core.util.ObjectUtil; import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -611,17 +613,28 @@ public class ProjectPlanQueryServiceImpl extends AbstractService<ProjectPlanBook */ @Override public void downLoadInfoTemplate(HttpServletRequest request, HttpServletResponse response) { - List<InfoImportCmd> infoImportCmds = new ArrayList<>(); + + List<InfoImportCmd> infoImportCmdList = new ArrayList<>(); + List<ProjectTargetImportCmd> projectTargetImportCmdList = new ArrayList<>(); + List<PlanSubjectImportCmd> planSubjectImportCmdList = new ArrayList<>(); response.reset(); response.setCharacterEncoding("UTF-8"); response.setContentType("application/x-download"); try{ String fileName = URLEncoder.encode("椤圭洰鐢虫姤涔︽ā鏉夸笅杞�","UTF-8"); response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ".xlsx"); - EasyExcel.write(response.getOutputStream(),InfoImportCmd.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).sheet("椤圭洰鐢虫姤涔�").doWrite(infoImportCmds); + ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build(); + WriteSheet writeSheet = EasyExcel.writerSheet(0,"椤圭洰鐢崇粡璐规姤涔�").head(InfoImportCmd.class).build(); + excelWriter.write(infoImportCmdList,writeSheet); + writeSheet = EasyExcel.writerSheet(1,"缁╂晥鎸囨爣").head(ProjectTargetImportCmd.class).build(); + excelWriter.write(projectTargetImportCmdList,writeSheet); + writeSheet = EasyExcel.writerSheet(2,"缁忔祹绉戠洰").head(PlanSubjectImportCmd.class).build(); + excelWriter.write(planSubjectImportCmdList,writeSheet); + excelWriter.finish(); }catch (IOException e){ throw ExceptionUtil.getException(null,"椤圭洰鐢虫姤涔︽ā鏉夸笅杞藉け璐ワ紒"); } + } public Integer queryConfigYearByType(String type) { -- GitLab From 8f21d254240450ab72d37c27ed3096c6e05729a5 Mon Sep 17 00:00:00 2001 From: XLR_asd <xueyawei@seaskysh.com> Date: Thu, 29 Jul 2021 12:00:47 +0800 Subject: [PATCH 2/4] =?UTF-8?q?fix=20=20=E5=AF=BC=E5=85=A5=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E7=94=B3=E6=8A=A5=E4=B9=A6=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/projectplan/InfoImportCmd.java | 12 +- .../projectplan/ProjectTargetImportCmd.java | 14 +- .../projectplan/ProjectPlanSvrImpl.java | 120 ++++++++++++------ 3 files changed, 92 insertions(+), 54 deletions(-) diff --git a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/InfoImportCmd.java b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/InfoImportCmd.java index 3da3bba10..072f8386e 100644 --- a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/InfoImportCmd.java +++ b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/InfoImportCmd.java @@ -43,9 +43,9 @@ public class InfoImportCmd extends BaseDto { @ExcelProperty(value = "閮ㄩ棬缂栧彿",index=4) private String departmentCode; - @ApiModelProperty(value = "璐熻矗浜� id",example = "") +// @ApiModelProperty(value = "璐熻矗浜� id",example = "") //TODO 鏍规嵁 璐熻矗浜哄悕绉板拰缂栧彿 璧嬪€糹d - private Long projectLeaderId; +// private Long projectLeaderId; @ApiModelProperty(value = "璐熻矗浜� 鍚嶇О",example = "") @ExcelProperty(value = "璐熻矗浜� 鍚嶇О",index=5) @@ -55,9 +55,9 @@ public class InfoImportCmd extends BaseDto { @ExcelProperty(value = "璐熻矗浜虹紪鍙�",index=6) private String projectLeaderCode; - @ApiModelProperty(value = "鐢虫姤涔︾被鍨�",example = "") +// @ApiModelProperty(value = "鐢虫姤涔︾被鍨�",example = "") //TODO 榛樿 XIANGMUKU - private String planType; +// private String planType; // summaryJson; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // summaryJson: "{\"basis\":\"5498\",\"terminfo\":\"456453\",\"plan\":\"4532453\",\"budget\":\"4534\"}" @@ -78,9 +78,9 @@ public class InfoImportCmd extends BaseDto { @ExcelProperty(value = "椤圭洰绫诲瀷",index=11) private String projectType; - @ApiModelProperty(value = "椤圭洰绫诲瀷id",example = "") +// @ApiModelProperty(value = "椤圭洰绫诲瀷id",example = "") //TODO 鏍规嵁椤圭洰绫诲瀷 鏌ュ嚭鍏秈d - private Long projectTypeId; +// private Long projectTypeId; // + 缁╂晥淇℃伅 // subOtherArrayJson: "[{\"oneValue\":\"1412943787541913601\",\"twoValue\":\"1412944927906062338\", diff --git a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/ProjectTargetImportCmd.java b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/ProjectTargetImportCmd.java index 98154c245..46ec9d817 100644 --- a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/ProjectTargetImportCmd.java +++ b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/ProjectTargetImportCmd.java @@ -19,13 +19,13 @@ import lombok.NoArgsConstructor; @NoArgsConstructor @EqualsAndHashCode(callSuper = true) public class ProjectTargetImportCmd extends BaseDto { - - @ApiModelProperty(value = "鏍圭骇+鏈骇 id",example = "") - private String one; - @ApiModelProperty(value = "鏍圭骇 id",example = "") - private String oneValue; - @ApiModelProperty(value = "鏈骇 id",example = "") - private String towValue; +// +// @ApiModelProperty(value = "鏍圭骇+鏈骇 id",example = "") +// private String one; +// @ApiModelProperty(value = "鏍圭骇 id",example = "") +// private String oneValue; +// @ApiModelProperty(value = "鏈骇 id",example = "") +// private String towValue; @ApiModelProperty(value = "鐢虫姤涔﹀簭鍙�",example = "") diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/application/command/projectplan/ProjectPlanSvrImpl.java b/ServiceSite/src/main/java/com/seasky/projectplan/application/command/projectplan/ProjectPlanSvrImpl.java index 10df43da2..04436da2a 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/application/command/projectplan/ProjectPlanSvrImpl.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/application/command/projectplan/ProjectPlanSvrImpl.java @@ -38,15 +38,14 @@ import com.seasky.projectplan.domain.aggregate.projectlibrary.ProjectLibraryAgg; import com.seasky.projectplan.domain.aggregate.projectpersonplan.ProjectPersonPlanAgg; import com.seasky.projectplan.domain.aggregate.projectpersonplan.ProjectPersonRepository; import com.seasky.projectplan.domain.aggregate.projectplanbase.ProjectPlanBaseAgg; +import com.seasky.projectplan.domain.aggregate.projecttarget.ProjectTargetAgg; +import com.seasky.projectplan.domain.aggregate.projecttarget.ProjectTargetRepository; import com.seasky.projectplan.domain.service.*; import com.seasky.projectplan.dto.FacultyStaff.FacultyStaffOut; import com.seasky.projectplan.dto.baseconfig.budgetswitch.BudgetSwitchOut; import com.seasky.projectplan.dto.baseconfig.budgetswitch.BudgetSwitchQry; import com.seasky.projectplan.dto.collegeclasses.CollegeClassesOut; -import com.seasky.projectplan.dto.projectplan.ActionFlowCmd; -import com.seasky.projectplan.dto.projectplan.PlanBookBasicInformationOut; -import com.seasky.projectplan.dto.projectplan.PlanBookBasicInformationQry; -import com.seasky.projectplan.dto.projectplan.ProjectPlanBookCmd; +import com.seasky.projectplan.dto.projectplan.*; import com.seasky.projectplan.dto.schoolStudentInformation.SchoolStudentInformationOut; import com.seasky.projectplan.infrastructure.dataobject.po.*; import com.seasky.projectplan.infrastructure.db.mapper.table.*; @@ -115,6 +114,9 @@ public class ProjectPlanSvrImpl implements ProjectPlanSvr { @Resource private BudgetInfoRepository budgetInfoRepository; + @Resource + private ProjectTargetRepository projectTargetRepository; + @Resource BudgetSwitchMapper budgetSwitchMapper; @@ -338,44 +340,80 @@ public class ProjectPlanSvrImpl implements ProjectPlanSvr { @Override @Transactional(rollbackFor = Exception.class) public Object importInfoPlan(HttpServletRequest request, HttpServletResponse response, MultipartFile file) { + List<InfoImportCmd> infoList = new ArrayList<>(); + List<ProjectTargetImportCmd> targetList = new ArrayList<>(); + List<PlanSubjectImportCmd> subjectList = new ArrayList<>(); + + try { + //椤圭洰鐢虫姤涔� + infoList = EasyExcelUtil.getList(InfoImportCmd.class, file.getInputStream(), 0); + //缁╂晥鎸囨爣 + targetList = EasyExcelUtil.getList(ProjectTargetImportCmd.class, file.getInputStream(), 1); + //缁忔祹绉戠洰 + subjectList = EasyExcelUtil.getList(PlanSubjectImportCmd.class, file.getInputStream(), 2); + } catch (IOException e) { + throw ExceptionUtil.getException(null, "椤圭洰鐢虫姤涔� 瀵煎叆澶辫触--鎻愬彇鏁版嵁閿欒"); + } + //鎷艰椤圭洰鐢虫姤涔ist + List<ProjectPlanBookCmd> infoBookList = new ArrayList<>(); + for (InfoImportCmd infoImportCmd : infoList) { + ProjectPlanBookCmd infoBookCmd = MapperUtils.INSTANCE.map(ProjectPlanBookCmd.class, infoImportCmd); + UserDTO userDTO = UserDTO.builder().build(); + userDTO.setCode(infoImportCmd.getProjectLeaderCode()); + userDTO.setName(infoImportCmd.getProjectLeaderName()); + Result<UserDTO> userList = iUser.getUser(userDTO); + infoBookCmd.setProjectLeaderId(userList.getData().get(0).getId()); + infoBookCmd.setPlanType(PlanTypeEnum.XIANGMUKU.name()); + BudgetInfoAgg budgetInfoAgg = budgetInfoRepository.queryBudgetInfo(BudgetInfoAgg.builder().budgetName(infoImportCmd.getProjectType()).build()); + infoBookCmd.setProjectTypeId(budgetInfoAgg.getId()); + JSONObject summaryJson = new JSONObject(); + summaryJson.put("basis",infoImportCmd.getBasis()); + summaryJson.put("terminfo",infoImportCmd.getTerminfo()); + summaryJson.put("plan",infoImportCmd.getPlan()); + summaryJson.put("budget",infoImportCmd.getBudget()); + infoBookCmd.setSummaryJson(summaryJson.toString()); + //椤圭洰鐢虫姤涔� 缁╂晥鎸囨爣 targetList + ProjectTargetCmd projectTargetCmd = new ProjectTargetCmd(); + JSONObject targetSummaryJson = new JSONObject(); + targetSummaryJson.put("targetProjectType",infoImportCmd.getTargetProjectType()); + targetSummaryJson.put("yearGoal",infoImportCmd.getYearGoal()); + targetSummaryJson.put("projectGoal",infoImportCmd.getProjectGoal()); + projectTargetCmd.setSummaryJson(targetSummaryJson.toString()); + ProjectTargetImportCmd infoBookTarget = targetList.stream().filter(item ->item.getIndex().equals(infoImportCmd.getIndex())).findAny().orElse(null); + if (infoBookTarget != null) { + ProjectTargetAgg oneTarget = projectTargetRepository.queryProjectTarget(ProjectTargetAgg.builder().targetName(infoBookTarget.getOneName()).build()); + ProjectTargetAgg towTarget = projectTargetRepository.queryProjectTarget(ProjectTargetAgg.builder().targetName(infoBookTarget.getTwo()).build()); + String [] one = {oneTarget.getId().toString(),towTarget.getId().toString()}; + JSONObject subOtherArrayJson = new JSONObject(); + subOtherArrayJson.put("oneValue",oneTarget.getId().toString()); + subOtherArrayJson.put("towValue",towTarget.getId().toString()); + subOtherArrayJson.put("two",infoBookTarget.getTwo()); + subOtherArrayJson.put("one",one); + subOtherArrayJson.put("three",infoBookTarget.getThree()); + subOtherArrayJson.put("yearTarget",infoBookTarget.getYearTarget()); + projectTargetCmd.setSubOtherArrayJson(subOtherArrayJson.toString()); + infoBookCmd.setProjectTargetCmd(projectTargetCmd); + } -// List<FundingImportCmd> list ; -// boolean flag = true; -// try { -// list = EasyExcelUtil.getList(FundingImportCmd.class, file.getInputStream(), 0); -// } catch (IOException e) { -// throw ExceptionUtil.getException(null, "缁忚垂淇℃伅瀵煎叆澶辫触"); -// } -// for (FundingImportCmd importCmd : list){ -// try{ -// fundingManageSvr.createFunding(FundingAssembler.buildListToFundingAgg(importCmd)); -// }catch (DataAccessException e){ -// importCmd.setRemark(e.getMessage()); -// flag = false; -// }catch (MappingException e){ -// importCmd.setRemark("棰勭畻骞村害瀛楁蹇呴』鏄暟瀛�"); -// flag = false; -// }catch (NullPointerException e){ -// importCmd.setRemark("闄ゅ娉ㄥ瓧娈靛閮戒笉鑳戒负绌�"); -// flag = false; -// }catch (Exception e){ -// importCmd.setRemark("瀵煎叆瀛楁鏍煎紡鏈夐敊璇�"); -// flag = false; -// } -// } -// if (flag == false){ -// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); -// response.reset(); -// response.setCharacterEncoding("UTF-8"); -// response.setContentType("application/x-download"); -// try{ -// String fileName = URLEncoder.encode("缁忚垂淇℃伅瀵煎嚭","UTF-8"); -// response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ".xlsx"); -// EasyExcel.write(response.getOutputStream(),FundingImportCmd.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).sheet("缁忚垂淇℃伅绠$悊").doWrite(list); -// }catch (IOException ioe){ -// throw ExceptionUtil.getException(null,"瀵煎嚭缁忚垂淇℃伅澶辫触锛�"); -// } -// } + //椤圭洰鐢虫姤涔� 缁忔祹绉戠洰 subjectList + List<PlanSubjectImportCmd> infoBookSubjects = subjectList.stream().filter(i -> i.getIndex().equals(infoImportCmd.getIndex())).collect(Collectors.toList()); + List<PlanSubjectCmd> planSubjectList = new ArrayList<>(); + for (PlanSubjectImportCmd infoBookSubject : infoBookSubjects) { + PlanSubjectCmd subjectCmd = MapperUtils.INSTANCE.map(PlanSubjectCmd.class, infoBookSubject); + JSONObject otherJson = new JSONObject(); + otherJson.put("fundDescribe",""); + otherJson.put("orgPurchase",infoBookSubject.getOrgPurchase()); + otherJson.put("moneyFrom",infoBookSubject.getMoneyFrom()); + subjectCmd.setOtherJson(otherJson.toString()); + planSubjectList.add(subjectCmd); + } + infoBookCmd.setPlanSubjectList(planSubjectList); + infoBookList.add(infoBookCmd); + } + for (ProjectPlanBookCmd planBookCmd : infoBookList) { + saveProjectInfoPlan(planBookCmd); + } + //缁勮 椤圭洰鐢虫姤涔︿繚瀛樺璞� 鎵ц淇濆瓨 return 1; } -- GitLab From 191e4b94f17eee201bf6326020105d6db4e679dc Mon Sep 17 00:00:00 2001 From: XLR_asd <xueyawei@seaskysh.com> Date: Thu, 29 Jul 2021 17:32:10 +0800 Subject: [PATCH 3/4] =?UTF-8?q?fix=20=20=E9=A1=B9=E7=9B=AE=E7=94=B3?= =?UTF-8?q?=E6=8A=A5=E4=B9=A6=E5=AF=BC=E5=85=A5=E6=8E=A5=E5=8F=A3=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/projectplan/InfoImportCmd.java | 49 +++--- .../dto/projectplan/PlanSubjectImportCmd.java | 4 + .../projectplan/ProjectTargetImportCmd.java | 5 + .../projectplan/ProjectPlanSvrImpl.java | 140 +++++++++++++----- .../budgetinfo/BudgetInfoRepository.java | 12 ++ .../db/mapper/table/BudgetInfoMapper.java | 4 + .../budgetinfo/BudgetInfoRepositoryImpl.java | 59 ++++++++ 7 files changed, 209 insertions(+), 64 deletions(-) diff --git a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/InfoImportCmd.java b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/InfoImportCmd.java index 072f8386e..7ba56bf58 100644 --- a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/InfoImportCmd.java +++ b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/InfoImportCmd.java @@ -27,78 +27,65 @@ public class InfoImportCmd extends BaseDto { @ExcelProperty(value = "搴忓彿", index = 0) private String index; - @ApiModelProperty(value = "骞翠唤",example = "") - @ExcelProperty(value = "骞翠唤",index=1) - private Integer year; - @ApiModelProperty(value = "椤圭洰鍚嶇О",example = "") - @ExcelProperty(value = "椤圭洰鍚嶇О",index=2) + @ExcelProperty(value = "椤圭洰鍚嶇О",index=1) private String projectName; @ApiModelProperty(value = "閮ㄩ棬鍚嶇О",example = "") - @ExcelProperty(value = "閮ㄩ棬鍚嶇О",index=3) + @ExcelProperty(value = "閮ㄩ棬鍚嶇О",index=2) private String departmentName; @ApiModelProperty(value = "閮ㄩ棬缂栧彿",example = "") - @ExcelProperty(value = "閮ㄩ棬缂栧彿",index=4) + @ExcelProperty(value = "閮ㄩ棬缂栧彿",index=3) private String departmentCode; -// @ApiModelProperty(value = "璐熻矗浜� id",example = "") - //TODO 鏍规嵁 璐熻矗浜哄悕绉板拰缂栧彿 璧嬪€糹d -// private Long projectLeaderId; - @ApiModelProperty(value = "璐熻矗浜� 鍚嶇О",example = "") - @ExcelProperty(value = "璐熻矗浜� 鍚嶇О",index=5) + @ExcelProperty(value = "璐熻矗浜� 鍚嶇О",index=4) private String projectLeaderName; @ApiModelProperty(value = "璐熻矗浜虹紪鍙�",example = "") - @ExcelProperty(value = "璐熻矗浜虹紪鍙�",index=6) + @ExcelProperty(value = "璐熻矗浜虹紪鍙�",index=5) private String projectLeaderCode; -// @ApiModelProperty(value = "鐢虫姤涔︾被鍨�",example = "") - //TODO 榛樿 XIANGMUKU -// private String planType; - // summaryJson; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // summaryJson: "{\"basis\":\"5498\",\"terminfo\":\"456453\",\"plan\":\"4532453\",\"budget\":\"4534\"}" - @ApiModelProperty(value = "椤圭洰鍐呭璇ユ暟鍙婂叿浣撳疄鏂藉唴瀹�",example = "") - @ExcelProperty(value = "椤圭洰鍐呭璇ユ暟鍙婂叿浣撳疄鏂藉唴瀹�",index=7) + @ApiModelProperty(value = "椤圭洰鍐呭姒傝堪鍙婂叿浣撳疄鏂藉唴瀹� ",example = "") + @ExcelProperty(value = "椤圭洰鍐呭姒傝堪鍙婂叿浣撳疄鏂藉唴瀹�",index=6) private String basis; @ApiModelProperty(value = "椤圭洰绔嬮」渚濇嵁(瑙勫垝璁″垝銆侀儴闂ㄨ亴璐c€佹斂绛栨硶瑙勭瓑)",example = "") - @ExcelProperty(value = "椤圭洰绔嬮」渚濇嵁(瑙勫垝璁″垝銆侀儴闂ㄨ亴璐c€佹斂绛栨硶瑙勭瓑)",index=8) + @ExcelProperty(value = "椤圭洰绔嬮」渚濇嵁(瑙勫垝璁″垝銆侀儴闂ㄨ亴璐c€佹斂绛栨硶瑙勭瓑)",index=7) private String terminfo; @ApiModelProperty(value = "椤圭洰绔嬮」鐨勫繀瑕佹€у拰鍙鎬�(椤圭洰鍩虹鏉′欢鍙婂墠鏈熷伐浣溿€佺鐞嗗埗搴︿笌淇濋殰鎺柦绛�)",example = "") - @ExcelProperty(value = "椤圭洰绔嬮」鐨勫繀瑕佹€у拰鍙鎬�(椤圭洰鍩虹鏉′欢鍙婂墠鏈熷伐浣溿€佺鐞嗗埗搴︿笌淇濋殰鎺柦绛�)",index=9) + @ExcelProperty(value = "椤圭洰绔嬮」鐨勫繀瑕佹€у拰鍙鎬�(椤圭洰鍩虹鏉′欢鍙婂墠鏈熷伐浣溿€佺鐞嗗埗搴︿笌淇濋殰鎺柦绛�)",index=8) private String plan; @ApiModelProperty(value = "椤圭洰鎵ц鍙婅祫閲戜娇鐢ㄨ鍒�",example = "") - @ExcelProperty(value = "椤圭洰鎵ц鍙婅祫閲戜娇鐢ㄨ鍒�(缁嗗寲鍒版湀浠�)",index=10) + @ExcelProperty(value = "椤圭洰鎵ц鍙婅祫閲戜娇鐢ㄨ鍒�(缁嗗寲鍒版湀浠�)",index=9) private String budget; @ApiModelProperty(value = "椤圭洰绫诲瀷",example = "") - @ExcelProperty(value = "椤圭洰绫诲瀷",index=11) + @ExcelProperty(value = "椤圭洰绫诲瀷",index=10) private String projectType; -// @ApiModelProperty(value = "椤圭洰绫诲瀷id",example = "") - //TODO 鏍规嵁椤圭洰绫诲瀷 鏌ュ嚭鍏秈d -// private Long projectTypeId; - // + 缁╂晥淇℃伅 // subOtherArrayJson: "[{\"oneValue\":\"1412943787541913601\",\"twoValue\":\"1412944927906062338\", // \"two\":\"鏈嶅姟瀵硅薄婊℃剰搴︽寚鏍嘰",\"one\":[\"1412943787541913601\",\"1412944927906062338\"],\"three\":\"涓夌骇鎸囨爣\",\"yearTarget\":\"123\"}]" // summaryJson: "{\"projectType\":2,\"yearGoal\":\"123456\",\"projectGoal\":\"12345\"}" - @ApiModelProperty(value = "椤圭洰绫诲埆(缁忓父鎬ч」鐩�,涓€娆℃€ч」鐩�)",example = "") - @ExcelProperty(value = "椤圭洰绫诲埆(缁忓父鎬ч」鐩�,涓€娆℃€ч」鐩�)",index=12) + @ApiModelProperty(value = "椤圭洰绫诲埆(缁忓父鎬ч」鐩�-2,涓€娆℃€ч」鐩�-3)",example = "") + @ExcelProperty(value = "椤圭洰绫诲埆(缁忓父鎬ч」鐩�,涓€娆℃€ч」鐩�)",index=11) private String targetProjectType; @ApiModelProperty(value = "骞村害鐩爣",example = "") - @ExcelProperty(value = "骞村害鐩爣",index=13) + @ExcelProperty(value = "骞村害鐩爣",index=12) private String yearGoal; @ApiModelProperty(value = "椤圭洰鎬荤洰鏍�(璺ㄥ勾椤圭洰)",example = "") - @ExcelProperty(value = "椤圭洰鎬荤洰鏍�(璺ㄥ勾椤圭洰)",index=14) + @ExcelProperty(value = "椤圭洰鎬荤洰鏍�(璺ㄥ勾椤圭洰)",index=13) private String projectGoal; + @ApiModelProperty(value = "瀵煎叆閿欒淇℃伅",example = "") + @ExcelProperty(value = "瀵煎叆閿欒淇℃伅",index=16) + private String errorMessage; } diff --git a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/PlanSubjectImportCmd.java b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/PlanSubjectImportCmd.java index 2c4ac24db..348ba20d5 100644 --- a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/PlanSubjectImportCmd.java +++ b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/PlanSubjectImportCmd.java @@ -56,5 +56,9 @@ public class PlanSubjectImportCmd extends BaseDto { @ExcelProperty(value = "璧勯噾鏉ユ簮", index = 6) private String moneyFrom; + @ApiModelProperty(value = "瀵煎叆閿欒淇℃伅",example = "") + @ExcelProperty(value = "瀵煎叆閿欒淇℃伅",index=8) + private String errorMessage; + } diff --git a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/ProjectTargetImportCmd.java b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/ProjectTargetImportCmd.java index 46ec9d817..1d7904324 100644 --- a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/ProjectTargetImportCmd.java +++ b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/ProjectTargetImportCmd.java @@ -48,5 +48,10 @@ public class ProjectTargetImportCmd extends BaseDto { @ExcelProperty(value = "骞村害鎸囨爣鍊�",index=4) private String yearTarget; + @ApiModelProperty(value = "瀵煎叆閿欒淇℃伅",example = "") + @ExcelProperty(value = "瀵煎叆閿欒淇℃伅",index=6) + private String errorMessage; + + } diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/application/command/projectplan/ProjectPlanSvrImpl.java b/ServiceSite/src/main/java/com/seasky/projectplan/application/command/projectplan/ProjectPlanSvrImpl.java index 04436da2a..745c8ecbc 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/application/command/projectplan/ProjectPlanSvrImpl.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/application/command/projectplan/ProjectPlanSvrImpl.java @@ -2,6 +2,8 @@ package com.seasky.projectplan.application.command.projectplan; import cn.hutool.core.util.ObjectUtil; import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; @@ -24,6 +26,7 @@ import com.seasky.projectplan.application.command.assembler.ProjectLibraryAssemb import com.seasky.projectplan.application.command.assembler.ProjectPlanAssembler; import com.seasky.projectplan.application.command.attachment.AttachmentSvr; import com.seasky.projectplan.application.command.projectlibrary.AProjectLibrarySvr; +import com.seasky.projectplan.domain.aggregate.baseConfig.BaseConfigRepository; import com.seasky.projectplan.domain.aggregate.budgetinfo.BudgetInfoAgg; import com.seasky.projectplan.domain.aggregate.budgetinfo.BudgetInfoRepository; import com.seasky.projectplan.domain.aggregate.common.AuditEnum; @@ -117,6 +120,9 @@ public class ProjectPlanSvrImpl implements ProjectPlanSvr { @Resource private ProjectTargetRepository projectTargetRepository; + @Resource + BaseConfigRepository baseConfigRepository; + @Resource BudgetSwitchMapper budgetSwitchMapper; @@ -150,6 +156,14 @@ public class ProjectPlanSvrImpl implements ProjectPlanSvr { @Transactional(rollbackFor = Exception.class) public Long saveProjectInfoPlan(ProjectPlanBookCmd projectPlanBookCmd) { ProjectInfoPlanAgg agg = ProjectPlanAssembler.cmdToInfoAgg(projectPlanBookCmd); + + if (agg.getId() == null) { + //鏂板 璧嬪€肩郴缁熷勾浠� + if (agg.getYear() == null) { + BudgetSwitchOut out = baseConfigRepository.queryBudgetSwitchPageByType("涓€涓�"); + agg.setYear(out.getYear()); + } + } //鑻ヤ负鏂板鍒欏悓鏃跺惎鍔ㄦ祦绋� if (projectPlanBookCmd.getId() == null) { Long processCode = flowSvr.projectPlanStartFlow(flowTypeEnum.weichi.key()); @@ -161,7 +175,7 @@ public class ProjectPlanSvrImpl implements ProjectPlanSvr { } if ((ObjectUtil.isNull(projectPlanBookCmd.getId()) || ObjectUtil.isEmpty(projectPlanBookCmd.getId())) && projectPlanBookCmd.getPlanType().equals(PlanTypeEnum.XIANGMUKU.name())) { ProjectLibraryAgg projectLibraryAgg = new ProjectLibraryAgg(); - projectLibraryAgg.setModfiy(projectPlanBookCmd.getYear() + projectLibraryAgg.setModfiy(agg.getYear() , projectPlanBookCmd.getProjectName() , new BigDecimal(0) , projectPlanBookCmd.getDepartmentCode() @@ -172,7 +186,7 @@ public class ProjectPlanSvrImpl implements ProjectPlanSvr { if(projectPlanBookCmd.getProjectLibraryId() != null){ ProjectLibraryAgg projectLibraryAgg = new ProjectLibraryAgg(); projectLibraryAgg.setId(projectPlanBookCmd.getProjectLibraryId()); - projectLibraryAgg.setModfiy(projectPlanBookCmd.getYear(), projectPlanBookCmd.getProjectName(), new BigDecimal(0) + projectLibraryAgg.setModfiy(agg.getYear(), projectPlanBookCmd.getProjectName(), new BigDecimal(0) , projectPlanBookCmd.getDepartmentCode(), projectPlanBookCmd.getProjectLeaderId()); projectLibrarySvr.saveProjectLibrary(projectLibraryAgg); } @@ -340,6 +354,7 @@ public class ProjectPlanSvrImpl implements ProjectPlanSvr { @Override @Transactional(rollbackFor = Exception.class) public Object importInfoPlan(HttpServletRequest request, HttpServletResponse response, MultipartFile file) { + boolean flag = true; List<InfoImportCmd> infoList = new ArrayList<>(); List<ProjectTargetImportCmd> targetList = new ArrayList<>(); List<PlanSubjectImportCmd> subjectList = new ArrayList<>(); @@ -356,47 +371,85 @@ public class ProjectPlanSvrImpl implements ProjectPlanSvr { } //鎷艰椤圭洰鐢虫姤涔ist List<ProjectPlanBookCmd> infoBookList = new ArrayList<>(); - for (InfoImportCmd infoImportCmd : infoList) { - ProjectPlanBookCmd infoBookCmd = MapperUtils.INSTANCE.map(ProjectPlanBookCmd.class, infoImportCmd); + for (int i = 0; i < infoList.size(); i++) { + ProjectPlanBookCmd infoBookCmd = MapperUtils.INSTANCE.map(ProjectPlanBookCmd.class, infoList.get(i)); UserDTO userDTO = UserDTO.builder().build(); - userDTO.setCode(infoImportCmd.getProjectLeaderCode()); - userDTO.setName(infoImportCmd.getProjectLeaderName()); + userDTO.setCode(infoList.get(i).getProjectLeaderCode()); Result<UserDTO> userList = iUser.getUser(userDTO); + if (userList.getData().size() <= 0){ + infoList.get(i).setErrorMessage("璐熻矗浜虹紪鍙� "+infoList.get(i).getProjectLeaderCode()+" 鏈壘鍒�"); + flag = false; + } infoBookCmd.setProjectLeaderId(userList.getData().get(0).getId()); infoBookCmd.setPlanType(PlanTypeEnum.XIANGMUKU.name()); - BudgetInfoAgg budgetInfoAgg = budgetInfoRepository.queryBudgetInfo(BudgetInfoAgg.builder().budgetName(infoImportCmd.getProjectType()).build()); - infoBookCmd.setProjectTypeId(budgetInfoAgg.getId()); + List<BudgetInfoAgg> budgetInfoAggList = budgetInfoRepository.queryBudgetInfoListByCurrentUserDept(BudgetInfoAgg.builder().budgetName(infoList.get(i).getProjectType()).build()); + if (budgetInfoAggList.size() <=0){ + infoList.get(i).setErrorMessage(infoList.get(i).getProjectType()+" 闈炲綋鍓嶇櫥褰曠敤鎴峰彲鐢ㄩ」鐩被鍨�,鎴栨煡璇笉鍒板搴旂殑椤圭洰绫诲瀷"); + flag = false; + } + infoBookCmd.setProjectTypeId(budgetInfoAggList.get(0).getId()); JSONObject summaryJson = new JSONObject(); - summaryJson.put("basis",infoImportCmd.getBasis()); - summaryJson.put("terminfo",infoImportCmd.getTerminfo()); - summaryJson.put("plan",infoImportCmd.getPlan()); - summaryJson.put("budget",infoImportCmd.getBudget()); + summaryJson.put("basis",infoList.get(i).getBasis()); + summaryJson.put("terminfo",infoList.get(i).getTerminfo()); + summaryJson.put("plan",infoList.get(i).getPlan()); + summaryJson.put("budget",infoList.get(i).getBudget()); infoBookCmd.setSummaryJson(summaryJson.toString()); //椤圭洰鐢虫姤涔� 缁╂晥鎸囨爣 targetList ProjectTargetCmd projectTargetCmd = new ProjectTargetCmd(); JSONObject targetSummaryJson = new JSONObject(); - targetSummaryJson.put("targetProjectType",infoImportCmd.getTargetProjectType()); - targetSummaryJson.put("yearGoal",infoImportCmd.getYearGoal()); - targetSummaryJson.put("projectGoal",infoImportCmd.getProjectGoal()); + if (infoList.get(i).getTargetProjectType() != null) { + if("缁忓父鎬ч」鐩�".equals(infoList.get(i).getTargetProjectType())){ + targetSummaryJson.put("targetProjectType","2"); + }else if("涓€娆℃€ч」鐩�".equals(infoList.get(i).getTargetProjectType())){ + targetSummaryJson.put("targetProjectType","3"); + }else { + infoList.get(i).setErrorMessage(infoList.get(i).getTargetProjectType()+" 椤圭洰绫诲埆鍙兘濉�: 缁忓父鎬ч」鐩� 鎴� 涓€娆℃€ч」鐩�"); + flag = false; + } + } + targetSummaryJson.put("targetProjectType",infoList.get(i).getTargetProjectType()); + targetSummaryJson.put("yearGoal",infoList.get(i).getYearGoal()); + targetSummaryJson.put("projectGoal",infoList.get(i).getProjectGoal()); projectTargetCmd.setSummaryJson(targetSummaryJson.toString()); - ProjectTargetImportCmd infoBookTarget = targetList.stream().filter(item ->item.getIndex().equals(infoImportCmd.getIndex())).findAny().orElse(null); - if (infoBookTarget != null) { - ProjectTargetAgg oneTarget = projectTargetRepository.queryProjectTarget(ProjectTargetAgg.builder().targetName(infoBookTarget.getOneName()).build()); - ProjectTargetAgg towTarget = projectTargetRepository.queryProjectTarget(ProjectTargetAgg.builder().targetName(infoBookTarget.getTwo()).build()); - String [] one = {oneTarget.getId().toString(),towTarget.getId().toString()}; - JSONObject subOtherArrayJson = new JSONObject(); - subOtherArrayJson.put("oneValue",oneTarget.getId().toString()); - subOtherArrayJson.put("towValue",towTarget.getId().toString()); - subOtherArrayJson.put("two",infoBookTarget.getTwo()); - subOtherArrayJson.put("one",one); - subOtherArrayJson.put("three",infoBookTarget.getThree()); - subOtherArrayJson.put("yearTarget",infoBookTarget.getYearTarget()); - projectTargetCmd.setSubOtherArrayJson(subOtherArrayJson.toString()); - infoBookCmd.setProjectTargetCmd(projectTargetCmd); + String index = infoList.get(i).getIndex(); + List<ProjectTargetImportCmd> infoBookTargetList = targetList.stream().filter(a -> a.getIndex().equals(index)).collect(Collectors.toList()); + List<String> subOtherArrayJsonList = new ArrayList<>(); + for (ProjectTargetImportCmd targetImportCmd : infoBookTargetList) { + ProjectTargetAgg oneTarget = projectTargetRepository.queryProjectTarget(ProjectTargetAgg.builder().targetName(targetImportCmd.getOneName()).build()); + if (oneTarget == null){ + for (ProjectTargetImportCmd projectTargetImportCmd : targetList) { + if(projectTargetImportCmd.getOneName().equals(targetImportCmd.getOneName())){ + projectTargetImportCmd.setErrorMessage("鏌ヨ涓嶅埌 "+targetImportCmd.getOneName()+" 鐨勭哗鏁堟寚鏍囦俊鎭�"); + } + } + flag = false; + } + ProjectTargetAgg towTarget = projectTargetRepository.queryProjectTarget(ProjectTargetAgg.builder().targetName(targetImportCmd.getTwo()).build()); + if (towTarget == null){ + for (ProjectTargetImportCmd projectTargetImportCmd : targetList) { + if(projectTargetImportCmd.getTwo().equals(targetImportCmd.getTwo())){ + projectTargetImportCmd.setErrorMessage("鏌ヨ涓嶅埌 "+targetImportCmd.getTwo()+" 鐨勭哗鏁堟寚鏍囦俊鎭�"); + } + } + flag = false; + } + if (towTarget != null && oneTarget != null ) { + String [] one = {oneTarget.getId().toString(),towTarget.getId().toString()}; + JSONObject subOtherArrayJson = new JSONObject(); + subOtherArrayJson.put("oneValue",oneTarget.getId().toString()); + subOtherArrayJson.put("towValue",towTarget.getId().toString()); + subOtherArrayJson.put("two",targetImportCmd.getTwo()); + subOtherArrayJson.put("one",one); + subOtherArrayJson.put("three",targetImportCmd.getThree()); + subOtherArrayJson.put("yearTarget",targetImportCmd.getYearTarget()); + subOtherArrayJsonList.add(subOtherArrayJson.toString()); + } } - + String[] newArr = subOtherArrayJsonList.toArray(new String[subOtherArrayJsonList.size()]); + projectTargetCmd.setSubOtherArrayJson(Arrays.toString(newArr)); + infoBookCmd.setProjectTargetCmd(projectTargetCmd); //椤圭洰鐢虫姤涔� 缁忔祹绉戠洰 subjectList - List<PlanSubjectImportCmd> infoBookSubjects = subjectList.stream().filter(i -> i.getIndex().equals(infoImportCmd.getIndex())).collect(Collectors.toList()); + List<PlanSubjectImportCmd> infoBookSubjects = subjectList.stream().filter(c -> c.getIndex().equals(index)).collect(Collectors.toList()); List<PlanSubjectCmd> planSubjectList = new ArrayList<>(); for (PlanSubjectImportCmd infoBookSubject : infoBookSubjects) { PlanSubjectCmd subjectCmd = MapperUtils.INSTANCE.map(PlanSubjectCmd.class, infoBookSubject); @@ -410,8 +463,29 @@ public class ProjectPlanSvrImpl implements ProjectPlanSvr { infoBookCmd.setPlanSubjectList(planSubjectList); infoBookList.add(infoBookCmd); } - for (ProjectPlanBookCmd planBookCmd : infoBookList) { - saveProjectInfoPlan(planBookCmd); + if (flag == false) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + response.reset(); + response.setCharacterEncoding("UTF-8"); + response.setContentType("application/x-download"); + try{ + String fileName = URLEncoder.encode("椤圭洰鐢虫姤涔﹀鍏ラ敊璇枃妗d笅杞�","UTF-8"); + response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ".xlsx"); + ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build(); + WriteSheet writeSheet = EasyExcel.writerSheet(0,"椤圭洰鐢崇粡璐规姤涔�").head(InfoImportCmd.class).build(); + excelWriter.write(infoList,writeSheet); + writeSheet = EasyExcel.writerSheet(1,"缁╂晥鎸囨爣").head(ProjectTargetImportCmd.class).build(); + excelWriter.write(targetList,writeSheet); + writeSheet = EasyExcel.writerSheet(2,"缁忔祹绉戠洰").head(PlanSubjectImportCmd.class).build(); + excelWriter.write(subjectList,writeSheet); + excelWriter.finish(); + }catch (IOException e){ + throw ExceptionUtil.getException(null,"椤圭洰鐢虫姤涔﹀鍏ラ敊璇師鍥� 涓嬭浇澶辫触锛�"); + } + }else { + for (ProjectPlanBookCmd planBookCmd : infoBookList) { + saveProjectInfoPlan(planBookCmd); + } } //缁勮 椤圭洰鐢虫姤涔︿繚瀛樺璞� 鎵ц淇濆瓨 return 1; diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/domain/aggregate/budgetinfo/BudgetInfoRepository.java b/ServiceSite/src/main/java/com/seasky/projectplan/domain/aggregate/budgetinfo/BudgetInfoRepository.java index ee597cb81..eddc07852 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/domain/aggregate/budgetinfo/BudgetInfoRepository.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/domain/aggregate/budgetinfo/BudgetInfoRepository.java @@ -1,7 +1,10 @@ package com.seasky.projectplan.domain.aggregate.budgetinfo; +import com.seasky.core.common.Result; import com.seasky.core.ddd.base.DddRepository; import com.seasky.projectplan.domain.aggregate.fund.FundAgg; +import com.seasky.projectplan.dto.budgetinfo.BudgetInfoOut; +import com.seasky.projectplan.dto.budgetinfo.BudgetInfoQry; import java.util.List; @@ -52,4 +55,13 @@ public interface BudgetInfoRepository extends DddRepository<BudgetInfoAgg> { * @return {@link List< FundAgg >} */ List<BudgetInfoAgg> queryBudgetInfoListByIds(List<Long> ids); + + /** + * 鏌ヨ褰撳墠鐢ㄦ埛鎵€鍦ㄩ儴闂� 鍙敤椤圭洰绫诲瀷 鍒楄〃 + * + * @param budgetInfoAgg 棰勭畻淇℃伅鑱氬悎鏍� + * @return {@link List<BudgetInfoOut>} + */ + List<BudgetInfoAgg> queryBudgetInfoListByCurrentUserDept(BudgetInfoAgg budgetInfoAgg); + } diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/table/BudgetInfoMapper.java b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/table/BudgetInfoMapper.java index 264d02af9..a9110e93e 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/table/BudgetInfoMapper.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/table/BudgetInfoMapper.java @@ -2,6 +2,7 @@ package com.seasky.projectplan.infrastructure.db.mapper.table; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.seasky.core.base.BaseMapper; +import com.seasky.projectplan.domain.aggregate.budgetinfo.BudgetInfoAgg; import com.seasky.projectplan.dto.budgetinfo.BudgetInfoOut; import com.seasky.projectplan.dto.budgetinfo.BudgetInfoQry; import com.seasky.projectplan.infrastructure.dataobject.po.BudgetInfoPo; @@ -86,4 +87,7 @@ public interface BudgetInfoMapper extends BaseMapper<BudgetInfoPo> { * @return {@link Page<BudgetInfoPo>} */ List<BudgetInfoPo> queryLeafNodeBudgetInfoPage(@Param("pm") BudgetInfoQry budgetInfoQry); + List<BudgetInfoPo> queryLeafNodeBudgetInfoPage(@Param("pm") BudgetInfoAgg budgetInfoAgg); + + } diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/repository/budgetinfo/BudgetInfoRepositoryImpl.java b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/repository/budgetinfo/BudgetInfoRepositoryImpl.java index 780a356be..c00b9ffa4 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/repository/budgetinfo/BudgetInfoRepositoryImpl.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/repository/budgetinfo/BudgetInfoRepositoryImpl.java @@ -1,19 +1,32 @@ package com.seasky.projectplan.infrastructure.repository.budgetinfo; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.seasky.core.common.Error; import com.seasky.core.common.ResponseCode; +import com.seasky.core.common.Result; import com.seasky.core.ddd.base.DomainKeysMap; import com.seasky.core.enums.Available; import com.seasky.core.exception.DataAccessException; +import com.seasky.micro.basedata.api.IUser; +import com.seasky.micro.basedata.dto.OrganizationDTO; import com.seasky.projectplan.domain.aggregate.budgetinfo.BudgetInfoAgg; import com.seasky.projectplan.domain.aggregate.budgetinfo.BudgetInfoRepository; +import com.seasky.projectplan.dto.budgetinfo.BudgetInfoOut; +import com.seasky.projectplan.dto.budgetinfo.BudgetInfoQry; import com.seasky.projectplan.infrastructure.dataobject.po.BudgetInfoPo; import com.seasky.projectplan.infrastructure.dataobject.qo.BudgetInfoQo; import com.seasky.projectplan.infrastructure.db.mapper.table.BudgetInfoMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; +import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; /** * 椤圭洰绫诲瀷 浠撳偍灞俰mpl @@ -27,6 +40,10 @@ public class BudgetInfoRepositoryImpl implements BudgetInfoRepository { @Autowired BudgetInfoMapper budgetInfoMapper; + @Resource + IUser iUser; + + @Override public Long saveBudgetInfo(BudgetInfoAgg budgetInfoAgg) { BudgetInfoPo budgetInfoPo = BudgetInfoConvert.aggToPo(budgetInfoAgg); @@ -99,6 +116,48 @@ public class BudgetInfoRepositoryImpl implements BudgetInfoRepository { return BudgetInfoConvert.poListToAggList(budgetInfoPos); } + /** + * 鏌ヨ褰撳墠鐢ㄦ埛鎵€鍦ㄩ儴闂� 鍙敤椤圭洰绫诲瀷 鍒楄〃 + * + * @param budgetInfoAgg 棰勭畻淇℃伅鑱氬悎鏍� + * @return {@link List<BudgetInfoOut>} + */ + @Override + public List<BudgetInfoAgg> queryBudgetInfoListByCurrentUserDept(BudgetInfoAgg budgetInfoAgg) { + List<OrganizationDTO> organizationList = iUser.getCurrent("").getData().get(0).getOrganizationList(); + List<String> departmentCodeList = new ArrayList<>(); + //鑾峰彇褰撳墠鐧诲綍浜洪儴闂╟odeList + for (OrganizationDTO organizationDTO : organizationList) { + departmentCodeList.add(organizationDTO.getCode()); + } + //鑾峰彇 椤圭洰绫诲瀷淇℃伅 + List<BudgetInfoPo> budgetInfoPoList = budgetInfoMapper.queryLeafNodeBudgetInfoPage(BudgetInfoAgg.builder().year(budgetInfoAgg.getYear()).build()); + ArrayList<BudgetInfoPo> canUseBudgetInfoPoList = new ArrayList<>(); + //绛涢€� 褰撳墠鐧诲綍浜烘墍鍦ㄩ儴闂� 鍙敤椤圭洰绫诲瀷 + for (String s : departmentCodeList) { + for (BudgetInfoPo budgetPo : budgetInfoPoList) { + if (!ObjectUtil.isNull(budgetPo.getCanUseDeptJson()) && !ObjectUtil.isEmpty(budgetPo.getCanUseDeptJson())) { + if (JSONArray.isValidArray(budgetPo.getCanUseDeptJson())) { + JSONArray jsonArray = JSON.parseArray(budgetPo.getCanUseDeptJson()); + if (!Objects.isNull(jsonArray)) { + for (Object o : jsonArray) { + JSONObject jsonObject = JSON.parseObject(o.toString()); + if (jsonObject.get("code").equals(s)) { + canUseBudgetInfoPoList.add(budgetPo); + break; + } + } + } + } + } else { + //褰撻」鐩被鍨嬬殑鍙娇鐢� 閮ㄩ棬闆嗗悎CanUseDeptJson 涓虹┖鏃� 榛樿鍙褰撳墠鐧诲綍浜轰娇鐢� + canUseBudgetInfoPoList.add(budgetPo); + } + } + } + return BudgetInfoConvert.poListToAggList(canUseBudgetInfoPoList.stream().distinct().collect(Collectors.toList())); + } + @Override public Long save(BudgetInfoAgg aggregate) { -- GitLab From 64016d280feca177e2040f190d4014da9d46bc19 Mon Sep 17 00:00:00 2001 From: XLR_asd <xueyawei@seaskysh.com> Date: Fri, 30 Jul 2021 11:11:31 +0800 Subject: [PATCH 4/4] =?UTF-8?q?fix=20=20=E9=A1=B9=E7=9B=AE=E7=94=B3?= =?UTF-8?q?=E6=8A=A5=E4=B9=A6=E5=AF=BC=E5=85=A5=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/projectplan/InfoImportCmd.java | 2 +- .../dto/projectplan/PlanSubjectImportCmd.java | 12 +++------ .../projectplan/ProjectTargetImportCmd.java | 2 +- .../projectplan/ProjectPlanSvrImpl.java | 25 ++++++++++++++----- 4 files changed, 25 insertions(+), 16 deletions(-) diff --git a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/InfoImportCmd.java b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/InfoImportCmd.java index 7ba56bf58..e3576f841 100644 --- a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/InfoImportCmd.java +++ b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/InfoImportCmd.java @@ -86,6 +86,6 @@ public class InfoImportCmd extends BaseDto { @ApiModelProperty(value = "瀵煎叆閿欒淇℃伅",example = "") @ExcelProperty(value = "瀵煎叆閿欒淇℃伅",index=16) - private String errorMessage; + private String errorMessage = ""; } diff --git a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/PlanSubjectImportCmd.java b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/PlanSubjectImportCmd.java index 348ba20d5..252b97a76 100644 --- a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/PlanSubjectImportCmd.java +++ b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/PlanSubjectImportCmd.java @@ -40,25 +40,21 @@ public class PlanSubjectImportCmd extends BaseDto { @ExcelProperty(value = "鍗曚环", index = 3) private BigDecimal price; - @ApiModelProperty(value = "閲戦",example = "") - @ExcelProperty(value = "閲戦", index =4) - private BigDecimal subtotal; - // @ApiModelProperty(value = "鍏朵粬鍐呭 json",example = "") // private String otherJson; // otherJson: "{\"fundDescribe\":\"鍙嶆槧鍗曚綅鍏敤鎴垮眿銆佸缓绛戠墿鍙婂叾闄勫睘璁惧鐨勭淮淇垂銆俓",\"orgPurchase\":\"1222\",\"moneyFrom\":\"13333\"}" @ApiModelProperty(value = "鏀垮簻閲囪喘",example = "") - @ExcelProperty(value = "鏀垮簻閲囪喘", index = 5) + @ExcelProperty(value = "鏀垮簻閲囪喘", index = 4) private String orgPurchase; @ApiModelProperty(value = "璧勯噾鏉ユ簮",example = "") - @ExcelProperty(value = "璧勯噾鏉ユ簮", index = 6) + @ExcelProperty(value = "璧勯噾鏉ユ簮", index = 5) private String moneyFrom; @ApiModelProperty(value = "瀵煎叆閿欒淇℃伅",example = "") - @ExcelProperty(value = "瀵煎叆閿欒淇℃伅",index=8) - private String errorMessage; + @ExcelProperty(value = "瀵煎叆閿欒淇℃伅",index=7) + private String errorMessage = ""; } diff --git a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/ProjectTargetImportCmd.java b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/ProjectTargetImportCmd.java index 1d7904324..4dd8fd388 100644 --- a/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/ProjectTargetImportCmd.java +++ b/ServiceSite/facade/src/main/java/com/seasky/projectplan/dto/projectplan/ProjectTargetImportCmd.java @@ -50,7 +50,7 @@ public class ProjectTargetImportCmd extends BaseDto { @ApiModelProperty(value = "瀵煎叆閿欒淇℃伅",example = "") @ExcelProperty(value = "瀵煎叆閿欒淇℃伅",index=6) - private String errorMessage; + private String errorMessage = ""; diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/application/command/projectplan/ProjectPlanSvrImpl.java b/ServiceSite/src/main/java/com/seasky/projectplan/application/command/projectplan/ProjectPlanSvrImpl.java index 745c8ecbc..7f147028b 100644 --- a/ServiceSite/src/main/java/com/seasky/projectplan/application/command/projectplan/ProjectPlanSvrImpl.java +++ b/ServiceSite/src/main/java/com/seasky/projectplan/application/command/projectplan/ProjectPlanSvrImpl.java @@ -14,6 +14,7 @@ import com.seasky.core.common.ResponseCode; import com.seasky.core.common.Result; import com.seasky.core.ddd.utils.MapperUtils; import com.seasky.core.exception.DataAccessException; +import com.seasky.core.exception.DataBusinessException; import com.seasky.core.util.EasyExcelUtil; import com.seasky.core.util.ExceptionUtil; import com.seasky.micro.basedata.api.IOrganization; @@ -373,18 +374,30 @@ public class ProjectPlanSvrImpl implements ProjectPlanSvr { List<ProjectPlanBookCmd> infoBookList = new ArrayList<>(); for (int i = 0; i < infoList.size(); i++) { ProjectPlanBookCmd infoBookCmd = MapperUtils.INSTANCE.map(ProjectPlanBookCmd.class, infoList.get(i)); + //褰撳墠鐧诲綍浜� 鏄惁鍦ㄦ墍濉儴闂� + List<UserDTO> currentUser = iUser.getCurrent("").getData(); + if (currentUser.size() > 0) { + String departmentName = infoList.get(i).getDepartmentName(); + List<OrganizationDTO> collect = currentUser.get(0).getOrganizationList().stream().filter(a -> a.getName().equals(departmentName)).collect(Collectors.toList()); + if (collect.size() <= 0){ + infoList.get(i).setErrorMessage(infoList.get(i).getErrorMessage()+" | "+"褰撳墠鐧诲綍浜轰笉鍦ㄦ墍濉儴闂ㄥ唴,涓嶈兘鏂板璇ラ儴闂ㄧ殑椤圭洰鐢虫姤涔�"); + flag = false; + } + } else { + throw new DataBusinessException(new Error(ResponseCode.LOGIN_NOT_ONLINE, null, "鏈櫥褰�", "")); + } UserDTO userDTO = UserDTO.builder().build(); userDTO.setCode(infoList.get(i).getProjectLeaderCode()); Result<UserDTO> userList = iUser.getUser(userDTO); if (userList.getData().size() <= 0){ - infoList.get(i).setErrorMessage("璐熻矗浜虹紪鍙� "+infoList.get(i).getProjectLeaderCode()+" 鏈壘鍒�"); + infoList.get(i).setErrorMessage(infoList.get(i).getErrorMessage()+" | "+"璐熻矗浜轰俊鎭湭鎵惧埌"); flag = false; } infoBookCmd.setProjectLeaderId(userList.getData().get(0).getId()); infoBookCmd.setPlanType(PlanTypeEnum.XIANGMUKU.name()); List<BudgetInfoAgg> budgetInfoAggList = budgetInfoRepository.queryBudgetInfoListByCurrentUserDept(BudgetInfoAgg.builder().budgetName(infoList.get(i).getProjectType()).build()); if (budgetInfoAggList.size() <=0){ - infoList.get(i).setErrorMessage(infoList.get(i).getProjectType()+" 闈炲綋鍓嶇櫥褰曠敤鎴峰彲鐢ㄩ」鐩被鍨�,鎴栨煡璇笉鍒板搴旂殑椤圭洰绫诲瀷"); + infoList.get(i).setErrorMessage(infoList.get(i).getErrorMessage()+" | "+infoList.get(i).getProjectType()+" 闈炲綋鍓嶇櫥褰曠敤鎴峰彲鐢ㄩ」鐩被鍨�,鎴栨煡璇笉鍒板搴旂殑椤圭洰绫诲瀷"); flag = false; } infoBookCmd.setProjectTypeId(budgetInfoAggList.get(0).getId()); @@ -403,7 +416,7 @@ public class ProjectPlanSvrImpl implements ProjectPlanSvr { }else if("涓€娆℃€ч」鐩�".equals(infoList.get(i).getTargetProjectType())){ targetSummaryJson.put("targetProjectType","3"); }else { - infoList.get(i).setErrorMessage(infoList.get(i).getTargetProjectType()+" 椤圭洰绫诲埆鍙兘濉�: 缁忓父鎬ч」鐩� 鎴� 涓€娆℃€ч」鐩�"); + infoList.get(i).setErrorMessage(infoList.get(i).getErrorMessage()+" | "+infoList.get(i).getTargetProjectType()+" 椤圭洰绫诲埆鍙兘濉�: 缁忓父鎬ч」鐩� 鎴� 涓€娆℃€ч」鐩�"); flag = false; } } @@ -419,7 +432,7 @@ public class ProjectPlanSvrImpl implements ProjectPlanSvr { if (oneTarget == null){ for (ProjectTargetImportCmd projectTargetImportCmd : targetList) { if(projectTargetImportCmd.getOneName().equals(targetImportCmd.getOneName())){ - projectTargetImportCmd.setErrorMessage("鏌ヨ涓嶅埌 "+targetImportCmd.getOneName()+" 鐨勭哗鏁堟寚鏍囦俊鎭�"); + projectTargetImportCmd.setErrorMessage(projectTargetImportCmd.getErrorMessage()+" | "+"鏌ヨ涓嶅埌 "+targetImportCmd.getOneName()+" 鐨勭哗鏁堟寚鏍囦俊鎭�"); } } flag = false; @@ -428,7 +441,7 @@ public class ProjectPlanSvrImpl implements ProjectPlanSvr { if (towTarget == null){ for (ProjectTargetImportCmd projectTargetImportCmd : targetList) { if(projectTargetImportCmd.getTwo().equals(targetImportCmd.getTwo())){ - projectTargetImportCmd.setErrorMessage("鏌ヨ涓嶅埌 "+targetImportCmd.getTwo()+" 鐨勭哗鏁堟寚鏍囦俊鎭�"); + projectTargetImportCmd.setErrorMessage(projectTargetImportCmd.getErrorMessage()+" | "+"鏌ヨ涓嶅埌 "+targetImportCmd.getTwo()+" 鐨勭哗鏁堟寚鏍囦俊鎭�"); } } flag = false; @@ -453,6 +466,7 @@ public class ProjectPlanSvrImpl implements ProjectPlanSvr { List<PlanSubjectCmd> planSubjectList = new ArrayList<>(); for (PlanSubjectImportCmd infoBookSubject : infoBookSubjects) { PlanSubjectCmd subjectCmd = MapperUtils.INSTANCE.map(PlanSubjectCmd.class, infoBookSubject); + subjectCmd.setSubtotal(infoBookSubject.getPrice().multiply(new BigDecimal(infoBookSubject.getNumber()))); JSONObject otherJson = new JSONObject(); otherJson.put("fundDescribe",""); otherJson.put("orgPurchase",infoBookSubject.getOrgPurchase()); @@ -487,7 +501,6 @@ public class ProjectPlanSvrImpl implements ProjectPlanSvr { saveProjectInfoPlan(planBookCmd); } } - //缁勮 椤圭洰鐢虫姤涔︿繚瀛樺璞� 鎵ц淇濆瓨 return 1; } -- GitLab