瀏覽代碼

中间计量公式

yangyj 1 年之前
父節點
當前提交
bbca0485c6

+ 4 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/dto/ElementData.java

@@ -119,6 +119,10 @@ public class ElementData implements Serializable {
         return Func.isEmpty(this.value);
     }
 
+    public Boolean isNotEmpty() {
+        return Func.isNotEmpty(this.value);
+    }
+
 
     public ElementData clone(Object value) {
         return new ElementData(index, groupId, value);

+ 2 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/MeterPeriodInfo.java

@@ -38,4 +38,6 @@ public class MeterPeriodInfo {
     /**排序号*/
     private Integer sort;
 
+    private Long id;
+
 }

+ 3 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/FormulaController.java

@@ -872,9 +872,9 @@ public class FormulaController {
     }
 
     @GetMapping("/test")
-    public R<Object> meter(Long contractId,Long periodId ,Integer type){
-        /* public  List<ReportResult> execute3(Long contractId,Long periodId ,Integer type)*/
-        return R.data(this.service.execute3(contractId,periodId,type));
+    public R<Object> meter(Long contractId,Long reportId ,Integer type){
+        /*合同段id,报表Id,报表类型中间计量0,材料1,开工2*/
+        return R.data(this.service.execute3(contractId,reportId,type));
     }
 
 

+ 5 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreeController.java

@@ -298,17 +298,21 @@ public class WbsTreeController extends BladeController {
          set.add(InterimPaymentSummary.ID);
          set.add(SubprojectInterimPaymentSummary.ID);
          set.add(SubInterimMeterPaySummary.ID);
+         set.add(InterimMeterPaySummary.ID);
+         set.add(InterimMeter.ID);
          return set.contains(id);
      };
 
    public final static Map<String,List<WbsFormElementVO>> MODEL_MAP = new HashMap<>();
-    {
+    static {
         MODEL_MAP.put(BaseInfo.ID,FormulaUtils.toElementVos(BaseInfo.class));
         MODEL_MAP.put(MeterPeriodInfo.ID,FormulaUtils.toElementVos(MeterPeriodInfo.class));
         MODEL_MAP.put(InterimPaymentCertificate.ID,FormulaUtils.toElementVos(InterimPaymentCertificate.class));
         MODEL_MAP.put(InterimPaymentSummary.ID,FormulaUtils.toElementVos(InterimPaymentSummary.class));
         MODEL_MAP.put(SubprojectInterimPaymentSummary.ID,FormulaUtils.toElementVos(SubprojectInterimPaymentSummary.class));
         MODEL_MAP.put(SubInterimMeterPaySummary.ID,FormulaUtils.toElementVos(SubInterimMeterPaySummary.class));
+        MODEL_MAP.put(InterimMeterPaySummary.ID,FormulaUtils.toElementVos(InterimMeterPaySummary.class));
+        MODEL_MAP.put(InterimMeter.ID,FormulaUtils.toElementVos(InterimMeter.class));
     }
     public List<WbsFormElementVO> dataModel(String id){
           return MODEL_MAP.getOrDefault(id,Collections.emptyList());

+ 2 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/impl/ExecutorInit.java

@@ -39,7 +39,8 @@ public class ExecutorInit extends FormulaExecutor {
         tec.formDataMap.putAll(FormulaUtils.toFormDataMap(baseInfo));
         if(MeterType.MATERIAL.equals(tec.getMeterType())||MeterType.START.equals(tec.getMeterType())){
             /*加载计量期信息*/
-            MeterPeriodInfo meterPeriod=meterPeriodFc.apply(tec.getPeriodId());
+            MeterPeriodInfo meterPeriod=meterPeriodFc.apply(tec.getReportId());
+            tec.setPeriodId(meterPeriod.getId());
             tec.formDataMap.putAll(FormulaUtils.toFormDataMap(meterPeriod));
             tec.getConstantMap().put(MeterPeriodInfo.TBN,meterPeriod);
         }else if(MeterType.INTERIM.equals(tec.getMeterType())){

+ 7 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/impl/TableElementConverter.java

@@ -108,7 +108,10 @@ public class TableElementConverter implements ITableElementConverter {
     /**输入输出转换,在创建TableElementConverter必须明确实例*/
     private final Converter in;
     private final Converter out;
-    /**计量属性*/
+    /*计量属性*/
+    /**报表Id*/
+    private  Long reportId;
+    /**计量期Id*/
     private Long periodId;
     /**计量类型*/
     private MeterType meterType;
@@ -475,7 +478,9 @@ public class TableElementConverter implements ITableElementConverter {
                            if(!fd.empty()) {
                                List<ElementData> eds = fd.getValues();
                                for(ElementData ed:eds){
-                                   dataList.get(ed.getIndex()).put(ed.getCoords(),ed.getValue());
+                                   if(!ed.isEmpty()) {
+                                       dataList.get(ed.getIndex()).put(ed.getCoords(), ed.getValue());
+                                   }
                                }
                            }
                        }

+ 3 - 6
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaDaoImpl.java

@@ -50,7 +50,7 @@ public class FormulaDaoImpl implements IFormulaDao {
     @Override
     public Function<Long,MeterPeriodInfo> getMeterPeriodFc(){
         return id-> {
-           List<MeterPeriodInfo> beans = this.jdbcTemplate.query("select b.period_number periodNumber,b.period_name periodName,a.print_date formPrintDate ,a.repayment_cause cause from s_material_start_statement a join  s_meter_period b on a.meter_period_id=b.id where a.id="+id, new BeanPropertyRowMapper<>(MeterPeriodInfo.class));
+           List<MeterPeriodInfo> beans = this.jdbcTemplate.query("select b.id,b.period_number periodNumber,b.period_name periodName,a.print_date formPrintDate ,a.repayment_cause cause from s_material_start_statement a join  s_meter_period b on a.meter_period_id=b.id where a.id="+id, new BeanPropertyRowMapper<>(MeterPeriodInfo.class));
             if(beans.size()>0){
                 MeterPeriodInfo bean = beans.get(0);
                 List<Map<String,Object>> listMap= this.jdbcTemplate.queryForList("select sum(b.current_amount) currentAmount from s_meter_period a join s_meter_period b on (a.contract_id=b.contract_id and a.type=b.type) where a.id="+id+" and b.id<>"+id);
@@ -69,11 +69,8 @@ public class FormulaDaoImpl implements IFormulaDao {
     @Override
     public Function<Long, List<Material>> getMaterialFormFc() {
         return id->{
-            List<Map<String,Object>> mapList = this.jdbcTemplate.queryForList("select  b.material_name name,b.unit,b.price,a.meter_amount amount,meter_money sum,a.material_source source,material_conform  materialConform,a.storage_place storagePlace,a.storage_status storageStatus,a.storage_conform storageConform,a.remark from s_material_meter_form a left join s_contract_material b on a.contract_material_id = b.id where a.meter_period_id="+id+"  and a.is_deleted=0");
-            if(Func.isNotEmpty(mapList)){
-               return mapList.stream().map(m->BeanUtil.toBean(m,Material.class)).collect(Collectors.toList());
-            }
-            return Collections.emptyList();
+            String sql="select  b.material_name name,b.unit,b.price,a.meter_amount amount,meter_money sum,a.material_source source,material_conform  materialConform,a.storage_place storagePlace,a.storage_status storageStatus,a.storage_conform storageConform,a.remark from s_material_meter_form a left join s_contract_material b on a.contract_material_id = b.id where a.meter_period_id="+id+"  and a.is_deleted=0";
+            return  getEntityList(sql,Material.class);
         };
     }
 

+ 4 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -2616,13 +2616,14 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
     }
 
     @Override
-    public  List<ReportResult> execute3(Long contractId,Long periodId ,Integer type) {
+    /*合同段id,报表Id,报表类型中间计量0,材料1,开工2*/
+    public  List<ReportResult> execute3(Long contractId,Long reportId ,Integer type) {
         ContractInfo contractInfo = this.contractInfoService.getById(contractId);
         MeterType meterType = MeterType.getByIndex(type);
 
         /*元素创建*/
         Map<String,String> parent=  getWtpParent(meterType.getName(),contractInfo.getPId());
-        List<NodeTable> tableList=  this.getSqlList("select p_key_id pkeyId, node_name nodeName ,init_table_name initTableName,html_url htmlUrl ,excel_id  from  m_wbs_tree_private where ancestors like ? and LENGTH(html_url)>0 and is_deleted=0 and project_id=? and wbs_id=?",NodeTable.class,parent.get("path")+"%",contractInfo.getPId(),parent.get("wbsId"));
+        List<NodeTable> tableList=  this.getSqlList("select p_key_id pkeyId, node_name nodeName ,init_table_name initTableName,html_url htmlUrl ,excel_id excelId from  m_wbs_tree_private where ancestors like ? and LENGTH(html_url)>0 and is_deleted=0 and project_id=? and wbs_id=?",NodeTable.class,parent.get("path")+"%",contractInfo.getPId(),parent.get("wbsId"));
         Map<String,Map<String,String>> coordinateMap=tableList.stream().collect(Collectors.toMap(NodeTable::getInitTableName,m->FormulaUtils.getElementCell(m.getHtmlUrl()),(v1,v2)->v2));
         List<FormData> processFds = this.createFormDataByTableName(tableList.stream().map(NodeTable::getInitTableName).collect(Collectors.joining("','")));
         listForMeter(processFds,contractInfo.getPId(),parent.get("id"));
@@ -2631,7 +2632,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
         TableElementConverter tec = new TableElementConverter(processFds,coordinateMap,tableList);
         tec.setProjectId(Long.parseLong(contractInfo.getPId()));
         tec.setContractId(contractInfo.getId());
-        tec.setPeriodId(periodId);
+        tec.setReportId(reportId);
         tec.setLog(new FormulaLog());
         tec.setMeterType(meterType);
         tec.before();