Răsfoiți Sursa

Merge remote-tracking branch 'origin/master'

liuyc 1 an în urmă
părinte
comite
1f620c0ff5

+ 4 - 1
blade-service/blade-manager/src/main/java/com/mixsmart/utils/FormulaUtils.java

@@ -150,7 +150,10 @@ public class FormulaUtils {
     }*/
 
 
-
+    /*默认去空*/
+    public  static void write(FormData fd, Object data){
+        write(fd,data,false);
+    }
     public  static void write(FormData fd, Object data,Boolean nullOrBlank ){
         if(Func.isEmpty(fd.getValues())){
             /*无定位信息不写入*/

+ 7 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java

@@ -2105,7 +2105,7 @@ public class ExcelTabController extends BladeController {
 
 
 
-    @PostMapping("/save_buss_data2")
+    @PostMapping("/save_buss_data")
     @ApiOperationSupport(order = 13)
     @ApiOperation(value = "填报页面数据保存", notes = "填报页面数据保存")
     public R saveBussData2(@Valid @RequestBody JSONObject dataInfo) throws Exception {
@@ -3802,7 +3802,7 @@ public class ExcelTabController extends BladeController {
      * @return
      * @throws Exception
      */
-    @PostMapping("/save_buss_data")
+    @PostMapping("/save_buss_data2")
     @ApiOperationSupport(order = 13)
     @ApiOperation(value = "填报页面数据保存", notes = "填报页面数据保存")
     public R saveBussData(@Valid @RequestBody JSONObject dataInfo) throws Exception {
@@ -3813,6 +3813,11 @@ public class ExcelTabController extends BladeController {
         } else { //单个保存
             dataArray.add(dataInfo);
         }
+        /*公式处理开始*/
+        this.excelTabService.formulaFillData2(dataArray,ExecuteType.INSPECTION);
+        /*公式处理结束*/
         return excelTabService.saveBussData(dataArray);
     }
+
+
 }

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

@@ -251,7 +251,7 @@ public class FormulaTurnPoint implements FormulaStrategy {
                 tmp.addAll(Collections.nCopies(m,x));
             }
             tmp=tmp.stream().map(v->StringUtils.number2String(v,1)).collect(Collectors.toList());
-            FormulaUtils.write(t,tmp,false);
+            FormulaUtils.write(t,tmp);
         });
     }
 

+ 3 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IExcelTabService.java

@@ -17,6 +17,7 @@
 package org.springblade.manager.service;
 
 import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import org.jsoup.nodes.Document;
 import org.springblade.business.dto.TrialSelfInspectionRecordDTO;
 import org.springblade.core.tool.api.R;
@@ -100,6 +101,8 @@ public interface IExcelTabService extends BaseService<ExcelTab> {
      * 公式填充
      */
     void formulaFillData(List<TableInfo> tableInfoList, Long nodeId, ExecuteType type);
+    void formulaFillData2(JSONArray dataArray, ExecuteType type);
+
 
     /**
      * 结果信息持久化

+ 3 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IFormulaService.java

@@ -50,7 +50,6 @@ public interface IFormulaService extends BaseService<Formula> {
     void format();
 
     List<Formula> getFormulaList(List<KeyMapper> keyMapperList);
-
     /**
      * ids 表流水号 projectId项目 nodeId工序节点的pkeyId ExecuteType执行模式 质检或者试验 首件
      */
@@ -62,4 +61,7 @@ public interface IFormulaService extends BaseService<Formula> {
      WbsTreePrivate wtpId(Long pkeyId);
     /**根据wbs_tree_private的pkeyId获取公共树*/
     WbsTreePrivate getOriginWtp(Long pkeyId);
+
+
+
 }

+ 24 - 8
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ExcelTabServiceImpl.java

@@ -100,10 +100,8 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
     private final InformationQueryClient informationQueryClient;
     private final IWbsTreeContractService wbsTreeContractService;
     private final IFormulaService formulaService;
-
     @Autowired
     private JdbcTemplate jdbcTemplate;
-
     @Autowired
     private DataSourceTransactionManager transactionManager1;
     private final IWbsParamService wbsParamService;
@@ -296,7 +294,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                                 Integer tr_1 = Integer.parseInt(ziduan[j + 1].split("__")[1].split("_")[0]);
                                 Integer td_1 = Integer.parseInt(ziduan[j + 1].split("__")[1].split("_")[1]);
 
-                                if (tr > tr_1 && td == td_1) { //纵向排序
+                                if (tr > tr_1 && td.equals(td_1)) { //纵向排序
                                     temp = ziduan[j];
                                     ziduan[j] = ziduan[j + 1];
                                     ziduan[j + 1] = temp;
@@ -390,6 +388,29 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
     }
 
 
+    @Override
+    public void formulaFillData2(JSONArray dataArray, ExecuteType type) {
+           try{
+               /*用来保存日志执行情况*/
+               StopWatch stopWatch = new StopWatch();
+               FormulaLog log = new FormulaLog();
+               stopWatch.start("公式处理");
+               /*公式*/
+               JSONObject tableInfo =dataArray.getJSONObject(0);
+               Long nodeId=tableInfo.getLong("nodeId");
+               List<TableInfo> tableInfoList = this.getTableInfoList(dataArray);
+               List<NodeTable> tableAll = createNodeTables(nodeId, tableInfoList.get(0).getContractId(), tableInfoList.get(0).getProjectId(), type);
+               Thread.sleep(200);
+               stopWatch.stop();
+               long totalTime = stopWatch.getTotalTimeMillis();
+               log.put(FormulaLog.PF, "公式执行消耗时间:" + (double)totalTime / 1000 + "秒");
+               StaticLog.info("公式执行用时:{}", totalTime);
+               updateFormulaLog(log.toJsonString(), nodeId);
+           }catch (Exception e){
+               e.printStackTrace();
+           }
+    }
+
     private List<NodeTable> createNodeTables(Long nodeId, String contractId, String projectId, ExecuteType type) {
         List<NodeTable> tableAll = new ArrayList<>();
         if (type.equals(ExecuteType.INSPECTION)) {
@@ -423,11 +444,6 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
 
     private void updateFormulaLog(String log, Long pKeyId) {
         try {
-       /*     String[] sql = new String[]{
-                    "delete from m_formula_log where id =" + pKeyId,
-                    "INSERT INTO m_formula_log (id,content) VALUES (" + pKeyId + ", '" + log + "')"
-            };
-            this.jdbcTemplate.batchUpdate(sql);*/
             String deleteSql = "DELETE FROM m_formula_log WHERE id = ?";
             String insertSql = "INSERT INTO m_formula_log (id, content,update_time) VALUES (?, ?,?)";
             jdbcTemplate.update(deleteSql, pKeyId);

+ 0 - 9
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -7,16 +7,11 @@ import cn.hutool.core.util.HashUtil;
 import cn.hutool.log.StaticLog;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.jfireel.expression.Expression;
 import com.mixsmart.utils.*;
 import lombok.RequiredArgsConstructor;
 import org.apache.poi.ss.usermodel.*;
-import org.jsoup.Jsoup;
-import org.jsoup.nodes.Document;
-import org.jsoup.nodes.Element;
-import org.jsoup.select.Elements;
 import org.springblade.common.utils.BaseUtils;
 import org.springblade.common.utils.CommonUtil;
 import org.springblade.common.utils.SnowFlakeUtil;
@@ -41,11 +36,7 @@ import org.springframework.context.annotation.ScopedProxyMode;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.web.context.WebApplicationContext;
-
 import javax.validation.constraints.NotNull;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;