Kaynağa Gözat

计量相关

yangyj 1 yıl önce
ebeveyn
işleme
303954ce38

+ 3 - 0
blade-common/src/main/java/org/springblade/common/utils/BaseUtils.java

@@ -139,6 +139,9 @@ public class BaseUtils {
     public static Double obj2DoubleZero(Object obj) {
        if(isNumber(obj)){
            if(obj instanceof Number){
+               if(obj instanceof  BigDecimal){
+                   return str2BigDecimal(obj).doubleValue();
+               }
                return (double) obj;
            }
            return Double.parseDouble(obj.toString());

+ 4 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/BaseInfo.java

@@ -45,6 +45,9 @@ public class BaseInfo  {
     /**合同段金额*/
     @JSONField(name = "key_7",label="合同段金额",ordinal = 7)
     private BigDecimal contractAmount;
+    /**动员总额*/
+    @JSONField(name = "key_17",label="动员总额",ordinal = 13)
+    private BigDecimal dyTotalAmount;
     /**农工资帐号名称*/
     @JSONField(name = "key_8",label="农工资帐号名称",ordinal = 8)
     private String  laborerAccountName  ="未设置";
@@ -72,4 +75,5 @@ public class BaseInfo  {
 
 
 
+
 }

+ 47 - 0
blade-service/blade-manager/src/main/java/com/mixsmart/utils/FormulaUtils.java

@@ -1313,6 +1313,53 @@ public static Map<String,List<Long>> relatedPages(List<FormData> curFormDatas ,L
         return "";
     }
 
+    private static final Map<Character, Integer> CHINESE_TO_ARABIC = new HashMap<>();
+
+    static {
+        CHINESE_TO_ARABIC.put('零', 0);
+        CHINESE_TO_ARABIC.put('一', 1);
+        CHINESE_TO_ARABIC.put('二', 2);
+        CHINESE_TO_ARABIC.put('三', 3);
+        CHINESE_TO_ARABIC.put('四', 4);
+        CHINESE_TO_ARABIC.put('五', 5);
+        CHINESE_TO_ARABIC.put('六', 6);
+        CHINESE_TO_ARABIC.put('七', 7);
+        CHINESE_TO_ARABIC.put('八', 8);
+        CHINESE_TO_ARABIC.put('九', 9);
+        CHINESE_TO_ARABIC.put('十', 10);
+        CHINESE_TO_ARABIC.put('百', 100);
+        CHINESE_TO_ARABIC.put('千', 1000);
+        CHINESE_TO_ARABIC.put('万', 10000);
+    }
+
+    public static int chineseToArabic(String chineseNumber) {
+        int result = 0;
+        int multiplier = 1;
+        for (int i = chineseNumber.length() - 1; i >= 0; i--) {
+            char c = chineseNumber.charAt(i);
+            if (CHINESE_TO_ARABIC.containsKey(c)) {
+                int value = CHINESE_TO_ARABIC.get(c);
+                if(value!=0&&value%10==0&&i!=0){
+                    multiplier=value;
+                }else{
+                    result=result+value*multiplier;
+                }
+            } else {
+                throw new IllegalArgumentException("Invalid Chinese numeral: " + c);
+            }
+        }
+        return result;
+    }
+
+    public static void main(String[] args) {
+/*        System.out.println(chineseToArabic("二十九"));
+        System.out.println(chineseToArabic("一"));
+        System.out.println(chineseToArabic("十一"));*/
+        System.out.println(chineseToArabic("十"));
+/*        System.out.println(chineseToArabic("一百二十"));
+        System.out.println(chineseToArabic("一百二十二"));
+        System.out.println(chineseToArabic("一百零二"));*/
+    }
 
     public static List<TableInfo> getTableInfoList(JSONArray dataArray) {
         if (dataArray != null && !dataArray.isEmpty()) {

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

@@ -51,8 +51,11 @@ public class ExecutorInit extends FormulaExecutor {
         tec.setPeriodId(tec.periodInfo.getId());
         String periodNumber = tec.periodInfo.getPeriodNumber();
         if(!BaseUtils.isNumber(periodNumber)){
-            periodNumber= RegexUtil.findResult("[\\d一二三四五六七八九十]+",periodNumber);
+            periodNumber= RegexUtil.findResult("[ 一二三四五六七八九十]+",periodNumber);
             if(periodNumber!=null){
+                if(RegexUtil.find("[ 一二三四五六七八九十]+",periodNumber)){
+                    periodNumber=String.valueOf(FormulaUtils.chineseToArabic(periodNumber));
+                }
                 tec.periodInfo.setPeriodNumber(periodNumber);
             }
         }

+ 1 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/impl/ExecutorMeter.java

@@ -125,6 +125,7 @@ public class ExecutorMeter extends FormulaExecutor {
 
         public void parse(){
             LinkedHashMap<String,FormData>  fdm = FormulaUtils.toFormDataMap(AdvancePaymentCertificate.class);
+            tec.formDataMap.putAll(fdm);
             List<StartPayForm> startPayForms= stayPayFormFc.apply(tec.getContractId());
             if(Func.isNotEmpty(startPayForms)){
                 startPayForms.sort(Comparator.comparingInt(StartPayForm::getPeriodSort));

+ 10 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaDaoImpl.java

@@ -2,6 +2,7 @@ package org.springblade.manager.service.impl;
 
 import com.mixsmart.utils.StringUtils;
 import lombok.RequiredArgsConstructor;
+import org.springblade.common.utils.BaseUtils;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.manager.dto.TreeNode;
@@ -41,6 +42,15 @@ public class FormulaDaoImpl implements IFormulaDao {
             ContractInfo info=  this.contractInfoService.getById(contractId);
             ProjectInfo projectInfo= projectInfoService.getById(info.getPId());
             BaseInfo baseInfo= new BaseInfo();
+            List<Map<String,Object>> meterContractList = jdbcTemplate.queryForList("select * from s_meter_contract_info where contract_Id="+contractId);
+            if(meterContractList.size()>0){
+                Map<String,Object> map = meterContractList.get(0);
+                baseInfo.setDyTotalAmount(BaseUtils.str2BigDecimal(map.get("dy_total_amount")));
+                baseInfo.setDeductRatio(BaseUtils.obj2DoubleZero(map.get("cl_prepayment_ratio")));
+                baseInfo.setBankAccountName(map.getOrDefault("bank_account_name","").toString());
+                baseInfo.setBankAccount(map.getOrDefault("bank_account_number","").toString());
+                baseInfo.setBankName(map.getOrDefault("bank_of_deposit","").toString());
+            }
             BeanUtils.copyProperties(info,baseInfo);
             baseInfo.setProjectName(projectInfo.getProjectName());
             return baseInfo;

+ 7 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsParamServiceImpl.java

@@ -108,7 +108,11 @@ public class WbsParamServiceImpl extends BaseServiceImpl<WbsParamMapper, WbsPara
             loop++;
             WbsTreeContract tmp = this.treeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getId,wtc.getOldId()).eq(WbsTreeContract::getProjectId,wtc.getProjectId()).last(" limit 1 "));
             if(tmp==null){
+                if(wtc.getIsTypePrivatePid()!=null){
+                    return this.wbsTreePrivateMapper.selectOne(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getPKeyId,wtc.getIsTypePrivatePid()));
+                }else{
                 return this.wbsTreePrivateMapper.selectOne(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getId,wtc.getOldId()).eq(WbsTreePrivate::getProjectId,wtc.getProjectId()).last(" limit 1 "));
+                }
             }else{
                 wtc=tmp;
             }
@@ -119,11 +123,11 @@ public class WbsParamServiceImpl extends BaseServiceImpl<WbsParamMapper, WbsPara
     @Override
     public String createFileTitle(Long pkeyId) {
         WbsTreeContract wtc =this.treeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getPKeyId,pkeyId));
-        if(wtc.getOldId()!=null) {
+/*        if(wtc.getOldId()!=null) {//oldId存在就不再横向才查找,暂时注释掉
             int loop = 10;
             do {
                 try {
-                    WbsTreeContract tmp = this.jdbcTemplate.queryForObject("select p_key_id, id,old_id,contract_id from m_wbs_tree_contract where id=" + wtc.getOldId() + " and contract_id =" + wtc.getContractId() + " limit 1", new BeanPropertyRowMapper<>(WbsTreeContract.class));
+                    WbsTreeContract tmp = this.jdbcTemplate.queryForObject("select p_key_id, id,old_id,contract_id from m_wbs_tree_contract where id=" + wtc.getOldId() + " and contract_id =" + wtc.getContractId() +  " and is_deleted=0 limit 1", new BeanPropertyRowMapper<>(WbsTreeContract.class));
                     if (tmp == null) {
                         loop = 0;
                     } else {
@@ -135,7 +139,7 @@ public class WbsParamServiceImpl extends BaseServiceImpl<WbsParamMapper, WbsPara
                     e.printStackTrace();
                 }
             } while (loop > 0);
-        }
+        }*/
         return createFileTitle(wtc);
     }
 

+ 1 - 1
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/TaskController.java

@@ -2773,7 +2773,7 @@ public class TaskController extends BladeController {
                                 sheet.getPrintSetup().setPaperSize(PrintSetup.A4_PAPERSIZE);
                                 ByteArrayOutputStream out = new ByteArrayOutputStream();
                                 workbook.write(out);
-                                workbook.write(new FileOutputStream(rs.getExcelPath()));
+                               // workbook.write(new FileOutputStream(rs.getExcelPath()));
                                 com.aspose.cells.Workbook wb = new com.aspose.cells.Workbook(new ByteArrayInputStream(out.toByteArray()));
                                 out.reset();
                                 wb.save(out, SaveFormat.PDF);