|
@@ -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();
|
|
|
}
|
|
|
|
|
|
/**
|