Kaynağa Gözat

执行计划汇总

赵芳群 2 yıl önce
ebeveyn
işleme
ad3cd40928

+ 47 - 4
src/main/java/com/jeeplus/modules/sg/balancedlibrary/planSummary/service/PlanSummaryService.java

@@ -1,4 +1,5 @@
 
+
 package com.jeeplus.modules.sg.balancedlibrary.planSummary.service;
 import com.jeeplus.core.service.CrudService;
 import com.jeeplus.modules.sg.balancedlibrary.planSummary.entity.AgriculturalDistributionNetwork;
@@ -7,6 +8,7 @@ import com.jeeplus.modules.sg.balancedlibrary.planSummary.mapper.PlanSummaryMapp
 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.mapper.ReportPersonMapper;
+import com.jeeplus.modules.sys.utils.DictUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -15,6 +17,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.atomic.AtomicReference;
 
 /**
  * @author 杜
@@ -38,16 +41,20 @@ public class PlanSummaryService extends CrudService<PlanSummaryMapper, Agricultu
 
         //提报人
         Map<String, String> reportPersonMap = getPerson();
+
         // 去重统计各个部门需求数量(配农网)
         agriculturalDistributionNetworkList.forEach(agriculturalDistributionNetwork -> {
             //物料编码+提报人
-            String key = agriculturalDistributionNetwork.getRequiredMaterialCode() + "-" + reportPersonMap.get(agriculturalDistributionNetwork.getPlanSubmitter());
+            String key = agriculturalDistributionNetwork.getRequiredMaterialCode() + "-" +
+                    reportPersonMap.get(agriculturalDistributionNetwork.getPlanSubmitter());
             //如果包含key
             if (agriculturalDistributionNetworkMap.containsKey(key)) {
-                agriculturalDistributionNetworkMap.put(key,agriculturalDistributionNetworkMap.get(key).add(new BigDecimal(agriculturalDistributionNetwork.getDemandQuantity())));
+                agriculturalDistributionNetworkMap.put(key,agriculturalDistributionNetworkMap.get(key).
+                        add(new BigDecimal(agriculturalDistributionNetwork.getDemandQuantity())));
             }else{
                 //不包含 把key和需求数量添加
-                agriculturalDistributionNetworkMap.put(key,new BigDecimal(agriculturalDistributionNetwork.getDemandQuantity()));
+                agriculturalDistributionNetworkMap.
+                        put(key,new BigDecimal(agriculturalDistributionNetwork.getDemandQuantity()));
             }
 
         });
@@ -60,9 +67,16 @@ public class PlanSummaryService extends CrudService<PlanSummaryMapper, Agricultu
                 processTrackingMap.put(key,new BigDecimal(processTracking.getDemandQuantity()));
             }
         });
+
+
         //两个表 相比
         processTrackingMap.forEach((k,v)->{
-            planSummaryList.add(new PlanSummary(null,k,null,null,v.toString(),
+            String[] split = k.split("-");
+            String person = getPerson(reportPersonMap, split[1], agriculturalDistributionNetworkList, split[0]);
+            String s = reportPersonMap.get(person);
+            String dictLabels = DictUtils.getDictLabel(s, "report_department", "");
+            String materialDescription = getMaterialDescription(split[0], person, agriculturalDistributionNetworkList);
+            planSummaryList.add(new PlanSummary(person,dictLabels,split[0],materialDescription,v.toString(),
                     //配农网是否有这个key
                     agriculturalDistributionNetworkMap.containsKey(k)?
                             agriculturalDistributionNetworkMap.get(k).toString():null,
@@ -76,9 +90,38 @@ public class PlanSummaryService extends CrudService<PlanSummaryMapper, Agricultu
                                     divide(v,1,BigDecimal.ROUND_HALF_DOWN))+ "%":
                             "未上报需求"
             ));
+
         });
 
         return planSummaryList;
+
+    }
+        //申请人
+    private String getPerson(Map<String,String> map,String department,List<AgriculturalDistributionNetwork> agriculturalDistributionNetworkList,String requiredMaterialCode){
+        List<String> person = new ArrayList<>();
+        AtomicReference<String> name = new AtomicReference<>("");
+        map.forEach((k,v)->{
+            if(v.equals(department)){
+                person.add(k);
+            }
+        });
+        agriculturalDistributionNetworkList.forEach(l->{
+            if(l.getRequiredMaterialCode().equals(requiredMaterialCode)){
+                name.set(l.getPlanSubmitter());
+            }
+        });
+        return name.get();
+    }
+        //物料描述
+    private String getMaterialDescription(String requiredMaterialCode,String name,List<AgriculturalDistributionNetwork> agriculturalDistributionNetworkList){
+        AtomicReference<String> materialDescription = new AtomicReference<>("");
+        agriculturalDistributionNetworkList.forEach(l->{
+            if(requiredMaterialCode.equals(l.getRequiredMaterialCode())&&name.equals(l.getPlanSubmitter())){
+                materialDescription.set(l.getMaterialDescription());
+            }
+        });
+        return materialDescription
+                .get();
     }
 
     /**

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

@@ -34,12 +34,11 @@ public class PlanSummary {
     public String getApplicant() {
         return applicant;
     }
-    @ExcelField(title="项目部门", align=2, sort=2, dictType="report_department")
+    @ExcelField(title="项目部门", align=2, sort=2)
     public String getProjectDepartment() {
         return projectDepartment;
     }
     @ExcelField(title="物料编码", align=2, sort=3)
-
     public String getMaterialCoding() {
         return materialCoding;
     }