2 Commit-ok 76a8e5f8b4 ... 15d39fbc8f

Szerző SHA1 Üzenet Dátum
  赵芳群 15d39fbc8f Merge remote-tracking branch 'origin/master' 2 éve
  赵芳群 9650a89288 执行计划汇总 2 éve

+ 88 - 88
src/main/java/com/jeeplus/modules/sg/balancedlibrary/planSummary/entity/AgriculturalDistributionNetwork.java

@@ -13,28 +13,28 @@ public class AgriculturalDistributionNetwork extends DataEntity<AgriculturalDist
     private String itemCode; //项目编码
     private String itemName; //项目名称
     private String itemType; // 项目类型
-    private String FundAttribute; //资金属性
-    private String MunicipalTerritory; //市级属地
-    private String ItemAccountingCode;// 项目列帐单位编码
-    private String Description; //项目列帐单位描述
-    private String PlanSubmitter;//计划提报人
-    private String ReportingUnit;//提报人单位
-    private String CompanyDepartment;//对应省公司管理部门
-    private String CategoryDescription;//大类描述
-    private String MediumDescription;//中类描述
-    private String SubclassDescription;//小类描述
-    private String RequiredMaterialCode;//需求物料编码
-    private String MaterialDescription;//物料描述
-    private String ItemExtensionCode;//物料扩展编码
-    private String MaterialExtensionDescription;//物料扩展描述
-    private String BidSection;//标段
-    private String SpecificationID;//电子商务平台技术规范书ID
-    private String Company;//单位
-    private String DemandQuantity;//需求数量
-    private Double EstimatedPrice;//概算单价(元)
-    private Double TotalPrice;//概算总价(元)
-    private Date DeliveryDate;//交货日期
-    private String RemarksPlan;//需求计划备注
+    private String fundAttribute; //资金属性
+    private String municipalTerritory; //市级属地
+    private String itemAccountingCode;// 项目列帐单位编码
+    private String description; //项目列帐单位描述
+    private String planSubmitter;//计划提报人
+    private String reportingUnit;//提报人单位
+    private String companyDepartment;//对应省公司管理部门
+    private String categoryDescription;//大类描述
+    private String mediumDescription;//中类描述
+    private String subclassDescription;//小类描述
+    private String requiredMaterialCode;//需求物料编码
+    private String materialDescription;//物料描述
+    private String itemExtensionCode;//物料扩展编码
+    private String materialExtensionDescription;//物料扩展描述
+    private String bidSection;//标段
+    private String specificationID;//电子商务平台技术规范书ID
+    private String company;//单位
+    private String demandQuantity;//需求数量
+    private Double estimatedPrice;//概算单价(元)
+    private Double totalPrice;//概算总价(元)
+    private Date deliveryDate;//交货日期
+    private String remarksPlan;//需求计划备注
 
     @Override
     public String toString() {
@@ -43,28 +43,28 @@ public class AgriculturalDistributionNetwork extends DataEntity<AgriculturalDist
                 ", itemCode='" + itemCode + '\'' +
                 ", itemName='" + itemName + '\'' +
                 ", itemType='" + itemType + '\'' +
-                ", FundAttribute='" + FundAttribute + '\'' +
-                ", MunicipalTerritory='" + MunicipalTerritory + '\'' +
-                ", ItemAccountingCode='" + ItemAccountingCode + '\'' +
-                ", Description='" + Description + '\'' +
-                ", PlanSubmitter='" + PlanSubmitter + '\'' +
-                ", ReportingUnit='" + ReportingUnit + '\'' +
-                ", CompanyDepartment='" + CompanyDepartment + '\'' +
-                ", CategoryDescription='" + CategoryDescription + '\'' +
-                ", MediumDescription='" + MediumDescription + '\'' +
-                ", SubclassDescription='" + SubclassDescription + '\'' +
-                ", RequiredMaterialCode='" + RequiredMaterialCode + '\'' +
-                ", MaterialDescription='" + MaterialDescription + '\'' +
-                ", ItemExtensionCode='" + ItemExtensionCode + '\'' +
-                ", MaterialExtensionDescription='" + MaterialExtensionDescription + '\'' +
-                ", BidSection='" + BidSection + '\'' +
-                ", SpecificationID='" + SpecificationID + '\'' +
-                ", Company='" + Company + '\'' +
-                ", DemandQuantity='" + DemandQuantity + '\'' +
-                ", EstimatedPrice=" + EstimatedPrice +
-                ", TotalPrice=" + TotalPrice +
-                ", DeliveryDate=" + DeliveryDate +
-                ", RemarksPlan='" + RemarksPlan + '\'' +
+                ", FundAttribute='" + fundAttribute + '\'' +
+                ", MunicipalTerritory='" + municipalTerritory + '\'' +
+                ", ItemAccountingCode='" + itemAccountingCode + '\'' +
+                ", Description='" + description + '\'' +
+                ", PlanSubmitter='" + planSubmitter + '\'' +
+                ", ReportingUnit='" + reportingUnit + '\'' +
+                ", CompanyDepartment='" + companyDepartment + '\'' +
+                ", CategoryDescription='" + categoryDescription + '\'' +
+                ", MediumDescription='" + mediumDescription + '\'' +
+                ", SubclassDescription='" + subclassDescription + '\'' +
+                ", RequiredMaterialCode='" + requiredMaterialCode + '\'' +
+                ", MaterialDescription='" + materialDescription + '\'' +
+                ", ItemExtensionCode='" + itemExtensionCode + '\'' +
+                ", MaterialExtensionDescription='" + materialExtensionDescription + '\'' +
+                ", BidSection='" + bidSection + '\'' +
+                ", SpecificationID='" + specificationID + '\'' +
+                ", Company='" + company + '\'' +
+                ", DemandQuantity='" + demandQuantity + '\'' +
+                ", EstimatedPrice=" + estimatedPrice +
+                ", TotalPrice=" + totalPrice +
+                ", DeliveryDate=" + deliveryDate +
+                ", RemarksPlan='" + remarksPlan + '\'' +
                 '}';
     }
 
@@ -102,178 +102,178 @@ public class AgriculturalDistributionNetwork extends DataEntity<AgriculturalDist
     }
     @ExcelField(title="资金属性", align=2, sort=5)
     public String getFundAttribute() {
-        return FundAttribute;
+        return fundAttribute;
     }
 
     public void setFundAttribute(String fundAttribute) {
-        FundAttribute = fundAttribute;
+        this.fundAttribute = fundAttribute;
     }
     @ExcelField(title="市级属地", align=2, sort=6)
     public String getMunicipalTerritory() {
-        return MunicipalTerritory;
+        return municipalTerritory;
     }
 
     public void setMunicipalTerritory(String municipalTerritory) {
-        MunicipalTerritory = municipalTerritory;
+        this.municipalTerritory = municipalTerritory;
     }
     @ExcelField(title="项目列帐单位编码", align=2, sort=7)
     public String getItemAccountingCode() {
-        return ItemAccountingCode;
+        return itemAccountingCode;
     }
 
     public void setItemAccountingCode(String itemAccountingCode) {
-        ItemAccountingCode = itemAccountingCode;
+        this.itemAccountingCode = itemAccountingCode;
     }
     @ExcelField(title="项目列帐单位描述", align=2, sort=8)
     public String getDescription() {
-        return Description;
+        return description;
     }
 
     public void setDescription(String description) {
-        Description = description;
+        this.description = description;
     }
     @ExcelField(title="计划提报人", align=2, sort=9)
     public String getPlanSubmitter() {
-        return PlanSubmitter;
+        return planSubmitter;
     }
 
     public void setPlanSubmitter(String planSubmitter) {
-        PlanSubmitter = planSubmitter;
+        this.planSubmitter = planSubmitter;
     }
     @ExcelField(title="提报人单位", align=2, sort=10)
     public String getReportingUnit() {
-        return ReportingUnit;
+        return reportingUnit;
     }
 
     public void setReportingUnit(String reportingUnit) {
-        ReportingUnit = reportingUnit;
+        this.reportingUnit = reportingUnit;
     }
     @ExcelField(title="对应省公司管理部门", align=2, sort=11)
     public String getCompanyDepartment() {
-        return CompanyDepartment;
+        return companyDepartment;
     }
 
     public void setCompanyDepartment(String companyDepartment) {
-        CompanyDepartment = companyDepartment;
+        this.companyDepartment = companyDepartment;
     }
     @ExcelField(title="大类描述", align=2, sort=12)
     public String getCategoryDescription() {
-        return CategoryDescription;
+        return categoryDescription;
     }
 
     public void setCategoryDescription(String categoryDescription) {
-        CategoryDescription = categoryDescription;
+        this.categoryDescription = categoryDescription;
     }
     @ExcelField(title="中类描述", align=2, sort=13)
     public String getMediumDescription() {
-        return MediumDescription;
+        return mediumDescription;
     }
 
     public void setMediumDescription(String mediumDescription) {
-        MediumDescription = mediumDescription;
+        this.mediumDescription = mediumDescription;
     }
     @ExcelField(title="小类描述", align=2, sort=14)
     public String getSubclassDescription() {
-        return SubclassDescription;
+        return subclassDescription;
     }
 
     public void setSubclassDescription(String subclassDescription) {
-        SubclassDescription = subclassDescription;
+        this.subclassDescription = subclassDescription;
     }
     @ExcelField(title="需求物料编码", align=2, sort=15)
     public String getRequiredMaterialCode() {
-        return RequiredMaterialCode;
+        return requiredMaterialCode;
     }
 
     public void setRequiredMaterialCode(String requiredMaterialCode) {
-        RequiredMaterialCode = requiredMaterialCode;
+        this.requiredMaterialCode = requiredMaterialCode;
     }
     @ExcelField(title="物料描述", align=2, sort=16)
     public String getMaterialDescription() {
-        return MaterialDescription;
+        return materialDescription;
     }
 
     public void setMaterialDescription(String materialDescription) {
-        MaterialDescription = materialDescription;
+        this.materialDescription = materialDescription;
     }
     @ExcelField(title="物料扩展编码", align=2, sort=17)
     public String getItemExtensionCode() {
-        return ItemExtensionCode;
+        return itemExtensionCode;
     }
 
     public void setItemExtensionCode(String itemExtensionCode) {
-        ItemExtensionCode = itemExtensionCode;
+        this.itemExtensionCode = itemExtensionCode;
     }
     @ExcelField(title="物料扩展描述", align=2, sort=18)
     public String getMaterialExtensionDescription() {
-        return MaterialExtensionDescription;
+        return materialExtensionDescription;
     }
 
     public void setMaterialExtensionDescription(String materialExtensionDescription) {
-        MaterialExtensionDescription = materialExtensionDescription;
+        this.materialExtensionDescription = materialExtensionDescription;
     }
     @ExcelField(title="标段", align=2, sort=19)
     public String getBidSection() {
-        return BidSection;
+        return bidSection;
     }
 
     public void setBidSection(String bidSection) {
-        BidSection = bidSection;
+        this.bidSection = bidSection;
     }
     @ExcelField(title="电子商务平台技术规范书ID", align=2, sort=20)
     public String getSpecificationID() {
-        return SpecificationID;
+        return specificationID;
     }
 
     public void setSpecificationID(String specificationID) {
-        SpecificationID = specificationID;
+        this.specificationID = specificationID;
     }
     @ExcelField(title="单位", align=2, sort=21)
     public String getCompany() {
-        return Company;
+        return company;
     }
 
     public void setCompany(String company) {
-        Company = company;
+        this.company = company;
     }
     @ExcelField(title="需求数量", align=2, sort=22)
     public String getDemandQuantity() {
-        return DemandQuantity;
+        return demandQuantity;
     }
 
     public void setDemandQuantity(String demandQuantity) {
-        DemandQuantity = demandQuantity;
+        this.demandQuantity = demandQuantity;
     }
     @ExcelField(title="概算单价", align=2, sort=23)
     public Double getEstimatedPrice() {
-        return EstimatedPrice;
+        return estimatedPrice;
     }
 
     public void setEstimatedPrice(Double estimatedPrice) {
-        EstimatedPrice = estimatedPrice;
+        this.estimatedPrice = estimatedPrice;
     }
     @ExcelField(title="概算总价", align=2, sort=24)
     public Double getTotalPrice() {
-        return TotalPrice;
+        return totalPrice;
     }
 
     public void setTotalPrice(Double totalPrice) {
-        TotalPrice = totalPrice;
+        this.totalPrice = totalPrice;
     }
     @ExcelField(title="交货日期", align=2, sort=25)
     public Date getDeliveryDate() {
-        return DeliveryDate;
+        return deliveryDate;
     }
 
     public void setDeliveryDate(Date deliveryDate) {
-        DeliveryDate = deliveryDate;
+        this.deliveryDate = deliveryDate;
     }
     @ExcelField(title="需求计划备注", align=2, sort=26)
     public String getRemarksPlan() {
-        return RemarksPlan;
+        return remarksPlan;
     }
 
     public void setRemarksPlan(String remarksPlan) {
-        RemarksPlan = remarksPlan;
+        this.remarksPlan = remarksPlan;
     }
 }

+ 4 - 4
src/main/java/com/jeeplus/modules/sg/balancedlibrary/planSummary/entity/ProcessTracking.java

@@ -43,7 +43,7 @@ public class ProcessTracking extends DataEntity<ProcessTracking>{
     private Date FirstLevelApprovalDate;//一级审批日期
     private Date SecondaryLevelApprovalDate ;//二级审批日期
     private String primaryApprover;//一级审批人
-    private String SecondaryApprover;//二级审批人
+    private String secondaryApprover;//二级审批人
     private String reasonForRejection;//拒绝原因说明
     private String fundAttributeDescription;//资金属性描述
     private String assetAttributeDescription;//资产属性描述
@@ -91,7 +91,7 @@ public class ProcessTracking extends DataEntity<ProcessTracking>{
                 ", FirstLevelApprovalDate=" + FirstLevelApprovalDate +
                 ", SecondaryLevelApprovalDate=" + SecondaryLevelApprovalDate +
                 ", primaryApprover='" + primaryApprover + '\'' +
-                ", SecondaryApprover='" + SecondaryApprover + '\'' +
+                ", SecondaryApprover='" + secondaryApprover + '\'' +
                 ", reasonForRejection='" + reasonForRejection + '\'' +
                 ", fundAttributeDescription='" + fundAttributeDescription + '\'' +
                 ", assetAttributeDescription='" + assetAttributeDescription + '\'' +
@@ -378,11 +378,11 @@ public class ProcessTracking extends DataEntity<ProcessTracking>{
     }
     @ExcelField(title="二级审批人", align=2, sort=35)
     public String getSecondaryApprover() {
-        return SecondaryApprover;
+        return secondaryApprover;
     }
 
     public void setSecondaryApprover(String secondaryApprover) {
-        SecondaryApprover = secondaryApprover;
+        this.secondaryApprover = secondaryApprover;
     }
     @ExcelField(title="拒绝说明原因", align=2, sort=36)
     public String getReasonForRejection() {

+ 71 - 109
src/main/java/com/jeeplus/modules/sg/balancedlibrary/planSummary/service/PlanSummaryService.java

@@ -1,135 +1,97 @@
-package com.jeeplus.modules.sg.balancedlibrary.planSummary.service;
 
-import com.jeeplus.common.json.AjaxJson;
-import com.jeeplus.common.utils.DateUtils;
-import com.jeeplus.common.utils.excel.ExportExcel;
-import com.jeeplus.common.utils.excel.ImportExcel;
+package com.jeeplus.modules.sg.balancedlibrary.planSummary.service;
 import com.jeeplus.core.service.CrudService;
 import com.jeeplus.modules.sg.balancedlibrary.planSummary.entity.AgriculturalDistributionNetwork;
 import com.jeeplus.modules.sg.balancedlibrary.planSummary.entity.ProcessTracking;
 import com.jeeplus.modules.sg.balancedlibrary.planSummary.mapper.PlanSummaryMapper;
-
 import com.jeeplus.modules.sg.balancedlibrary.planSummary.vo.PlanSummary;
 import com.jeeplus.modules.sg.balancedlibrary.reportPerson.entity.ReportPerson;
-import com.jeeplus.modules.sg.balancedlibrary.reportPerson.service.ReportPersonService;
-import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
+import com.jeeplus.modules.sg.balancedlibrary.reportPerson.mapper.ReportPersonMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+/**
+ * @author 杜
+ */
 @Service
 @Transactional(readOnly = true)
 public class PlanSummaryService extends CrudService<PlanSummaryMapper, AgriculturalDistributionNetwork> {
     @Autowired
-    private ReportPersonService reportPersonService;
-    /**
-     * 导入Excel数据
-     */
-    public AjaxJson importFile(@RequestParam("file") MultipartFile[] file, HttpServletRequest request, HttpServletResponse response) {
-        AjaxJson ajaxJson = new AjaxJson();
-        //保存提报人和物料编码
-        Map<String, BigDecimal> PNWMap = new HashMap<>();
-        //去重统计配农网物料编码 提报人
-        List<String> PNWSameList = new ArrayList<>();
-        Map<String, BigDecimal> GZMap = new HashMap<>();
-        //跟踪去重
-        List<String> GZSameList = new ArrayList<>();
-        List<PlanSummary> planSummaryList = new ArrayList<>();
-
-        try {
-            ImportExcel ei = new ImportExcel(file[1], 1, 0);
-            ImportExcel ie = new ImportExcel(file[0], 1, 0);
-            //将excel表转换成集合
-            List<AgriculturalDistributionNetwork> PNWList = ei.getDataList(AgriculturalDistributionNetwork.class);
-            List<ProcessTracking> GZList = ie.getDataList(ProcessTracking.class);
-
-            // 去重统计各个部门需求数量
-            PNWList.forEach(l -> {
-                String person = l.getRequiredMaterialCode() + "-" + l.getPlanSubmitter();
-                if (!PNWSameList.contains(person)) {
-                    PNWSameList.add(person);
-                    //创建提交人对象l
-                    ReportPerson reportPerson = new ReportPerson();
-                    reportPerson.setReportPerson(l.getPlanSubmitter());
-
-                    //根据名称查询
-                    List<ReportPerson> getPlanSubmitterList = reportPersonService.findList(reportPerson);
-                    //如果不为空,出现重名情况默认取第一个
-                    String key = "";
-                    if(getPlanSubmitterList!=null && getPlanSubmitterList.size()!=0){
-                        key = getPlanSubmitterList.get(0).getReportDepartment();
-                    }
-                    //根据部门增加需求数量
-                    if(PNWMap.containsKey(key)){
-                        BigDecimal temp = PNWMap.get(key).add(new BigDecimal(l.getDemandQuantity()));
-                        PNWMap.put(key, temp);
-                    }else{
-                        PNWMap.put(key, new BigDecimal(l.getDemandQuantity()));
-                    }
-                }
+    private ReportPersonMapper reportPersonMapper;
 
-            });
-
-
-            //去重统计各个部门需求数量
-            GZList.forEach(l -> {
-                String parson = l.getMaterialCode() + "-" + l.getApplicant();
-                if (!GZSameList.contains(parson)) {
-                    GZSameList.add(parson);
-                    //创建提交人对象l
-                    ReportPerson reportPerson = new ReportPerson();
-                    reportPerson.setReportPerson(l.getApplicant());
-                    //根据名称查询
-                    List<ReportPerson> getPlanSubmitterList = reportPersonService.findList(reportPerson);
-                    //如果不为空,出现重名情况默认取第一个
-                    String key = "";
-                    if(getPlanSubmitterList!=null&&getPlanSubmitterList.size()!=0){
-
-                        key = getPlanSubmitterList.get(0).getReportDepartment();
-                    }
-                    if(GZMap.containsKey(key)){
-                        BigDecimal temp = GZMap.get(key).add(new BigDecimal(l.getDemandQuantity()));
-                        GZMap.put(key, temp);
-                    }else{
-                        GZMap.put(key, new BigDecimal(l.getDemandQuantity()));
-                    }
-
-                }
-
-            });
-            //Q
-            GZMap.forEach((k,v)->{
-                planSummaryList.add(new PlanSummary(null,k,null,null,v.toString(),PNWMap.containsKey(k)?PNWMap.get(k).toString():null,
-                        //需求数量是否为0  如果不为0 计算执行进度 如果为0则显示未上报
-                        PNWMap.containsKey(k)&&PNWMap.get(k)!=null?PNWMap.get(k).compareTo(new BigDecimal(0))==0?"未上报需求":(PNWMap.get(k).divide(v,1,BigDecimal.ROUND_HALF_DOWN))+ "%":"未上报需求"
-                ));
-            });
 
+    public List<PlanSummary>  importFile(List<AgriculturalDistributionNetwork> agriculturalDistributionNetworkList, List<ProcessTracking> processTrackingList) {
+        //返回结果
+        List<PlanSummary> planSummaryList = new ArrayList<>();
 
-            /***********************************************/
-            String fileName = "执行计划汇总" + DateUtils.getDate("yyyy-MM-dd-HHmmss") + ".xlsx";
-            new ExportExcel("", PlanSummary.class).setDataList(planSummaryList).write(response, fileName).dispose();
+        //配农网
+        Map<String, BigDecimal> agriculturalDistributionNetworkMap = new HashMap<>();
+
+        //跟踪表
+        Map<String, BigDecimal> processTrackingMap = new HashMap<>();
+
+        //提报人
+        Map<String, String> reportPersonMap = getPerson();
+        // 去重统计各个部门需求数量(配农网)
+        agriculturalDistributionNetworkList.forEach(agriculturalDistributionNetwork -> {
+            //物料编码+提报人
+            String key = agriculturalDistributionNetwork.getRequiredMaterialCode() + "-" + reportPersonMap.get(agriculturalDistributionNetwork.getPlanSubmitter());
+            //如果包含key
+            if (agriculturalDistributionNetworkMap.containsKey(key)) {
+                agriculturalDistributionNetworkMap.put(key,agriculturalDistributionNetworkMap.get(key).add(new BigDecimal(agriculturalDistributionNetwork.getDemandQuantity())));
+            }else{
+                //不包含 把key和需求数量添加
+                agriculturalDistributionNetworkMap.put(key,new BigDecimal(agriculturalDistributionNetwork.getDemandQuantity()));
+            }
+
+        });
+        //去重统计各个部门需求数量(流程表)
+        processTrackingList.forEach(processTracking -> {
+            String key = processTracking.getMaterialCode() + "-" + reportPersonMap.get(processTracking.getApplicant());
+            if (processTrackingMap.containsKey(key)) {
+                processTrackingMap.put(key,processTrackingMap.get(key).add(new BigDecimal(processTracking.getDemandQuantity())));
+            }else{
+                processTrackingMap.put(key,new BigDecimal(processTracking.getDemandQuantity()));
+            }
+        });
+        //两个表 相比
+        processTrackingMap.forEach((k,v)->{
+            planSummaryList.add(new PlanSummary(null,k,null,null,v.toString(),
+                    //配农网是否有这个key
+                    agriculturalDistributionNetworkMap.containsKey(k)?
+                            agriculturalDistributionNetworkMap.get(k).toString():null,
+                    //需求数量是否为0  如果不为0 计算执行进度 如果为0则显示未上报
+                    //如果有这个key并且不是null时,配农网的key / 流程跟踪表的v
+                    agriculturalDistributionNetworkMap.containsKey(k)
+                            &&
+                            agriculturalDistributionNetworkMap.get(k)!=null?
+                            agriculturalDistributionNetworkMap.get(k).compareTo(new BigDecimal(0))==0?
+                                    "未上报需求":(agriculturalDistributionNetworkMap.get(k).
+                                    divide(v,1,BigDecimal.ROUND_HALF_DOWN))+ "%":
+                            "未上报需求"
+            ));
+        });
+
+        return planSummaryList;
+    }
 
-        } catch (IOException e) {
-            e.printStackTrace();
-        } catch (InstantiationException e) {
-            e.printStackTrace();
-        } catch (IllegalAccessException e) {
-            e.printStackTrace();
-        } catch (InvalidFormatException e) {
-            e.printStackTrace();
-        }
-        return ajaxJson;
+    /**
+     * 查询数据库数据获取对应的部门和部门下对应的人
+     * @return
+     */
+    private Map<String,String> getPerson(){
+        Map<String,String> map = new HashMap<>();
+        List<ReportPerson> departmentGroupByPerson = reportPersonMapper.findDepartmentGroupByPerson();
+        departmentGroupByPerson.forEach(person->{
+            map.put(person.getReportPerson(),person.getReportDepartment());
+        });
+        return map;
     }
+
 }

+ 1 - 1
src/main/java/com/jeeplus/modules/sg/balancedlibrary/planSummary/vo/PlanSummary.java

@@ -34,7 +34,7 @@ public class PlanSummary {
     public String getApplicant() {
         return applicant;
     }
-    @ExcelField(title="项目部门", align=2, sort=2)
+    @ExcelField(title="项目部门", align=2, sort=2, dictType="report_department")
     public String getProjectDepartment() {
         return projectDepartment;
     }

+ 22 - 36
src/main/java/com/jeeplus/modules/sg/balancedlibrary/planSummary/web/PlanSummaryController.java

@@ -7,8 +7,6 @@ import com.jeeplus.modules.sg.balancedlibrary.planSummary.entity.AgriculturalDis
 import com.jeeplus.modules.sg.balancedlibrary.planSummary.entity.ProcessTracking;
 import com.jeeplus.modules.sg.balancedlibrary.planSummary.service.PlanSummaryService;
 import com.jeeplus.modules.sg.balancedlibrary.planSummary.vo.PlanSummary;
-import com.jeeplus.modules.sg.balancedlibrary.reportPerson.entity.ReportPerson;
-import com.jeeplus.modules.sg.balancedlibrary.reportPerson.service.ReportPersonService;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -17,7 +15,7 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
-import java.math.BigDecimal;
+
 import java.util.*;
 
 @Controller
@@ -27,44 +25,32 @@ public class PlanSummaryController {
     PlanSummaryService summaryService;
     @PostMapping(value = "import")
     public AjaxJson importFile(@RequestParam("file") MultipartFile[] file, HttpServletRequest request, HttpServletResponse response){
-        AjaxJson ajaxJson = summaryService.importFile(file, request, response);
-        return ajaxJson;
-    }
-    @RequestMapping(value = "list")
-    public String list() {
-        return "modules/sg/balancedlibrary/planSummary/planSummaryList";
-    }
-}
-
-
-
-
+        AjaxJson ajaxJson = new AjaxJson();
 
 
 
+        try {
+            ImportExcel excel = new ImportExcel(file[1], 1, 0);
+            ImportExcel importExcel = new ImportExcel(file[0], 1, 0);
+            //将excel表转换成集合
+            List<AgriculturalDistributionNetwork> agriculturalDistributionNetworkList = excel.getDataList(AgriculturalDistributionNetwork.class);
+            List<ProcessTracking> processTrackingList = importExcel.getDataList(ProcessTracking.class);
 
+            List<PlanSummary> planSummaryList = summaryService.importFile(agriculturalDistributionNetworkList,processTrackingList);
 
 
+            /***********************************************/
+            String fileName = "执行计划汇总" + DateUtils.getDate("yyyy-MM-dd HH:mm:ss") + ".xlsx";
+            new ExportExcel("", PlanSummary.class).setDataList(planSummaryList).write(response, fileName).dispose();
 
-
-
-
-
-
-//            PNWMap.forEach((k,v)->{
-//
-//              planSummaryList.forEach(l->{
-//                    if(!k.equals(l.getProjectDepartment())){
-//                        planSummaryList.add(new PlanSummary(null,k,null,null,GZMap.containsKey(k)?GZMap.get(k).toString():null,v.toString(),
-//                                //需求数量是否为0  如果不为0 计算执行进度 如果为0则显示未上报
-//                                GZMap.containsKey(k) ?
-//                                        (GZMap.get(k).compareTo(new BigDecimal(0))==0?
-//                                                (v.divide(GZMap.get(k))).multiply(new BigDecimal(100)).toString() + "%"
-//                                                :"未上报需求")
-//                                        :"未上报需求"
-//                        ));
-//                    }
-//                });
-//
-//            });
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return ajaxJson;
+    }
+    @RequestMapping(value = "list")
+    public String list() {
+        return "modules/sg/balancedlibrary/planSummary/planSummaryList";
+    }
+}