Преглед изворни кода

档案编辑 导致顺序错乱

zhuwei пре 5 часа
родитељ
комит
84c1a35f58

+ 4 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/feign/ArchiveFileClient.java

@@ -42,6 +42,10 @@ public interface ArchiveFileClient {
     @PostMapping(API_PREFIX + "/updateArchiveFileSort")
     void updateArchiveFileSort(@RequestBody ArchiveFileVO vo);
 
+    //只修改实体数据
+    @PostMapping(API_PREFIX + "/batchUpdateInfo")
+    void batchUpdateInfo(@RequestBody ArchiveFileVO vo);
+
     @PostMapping(API_PREFIX + "/updateArchiveFileByBoxName")
     boolean updateArchiveFileByBoxName(@RequestBody Map<String, Object> jsons);
 

+ 6 - 1
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/enums/ExecuteType.java

@@ -12,10 +12,15 @@ import lombok.Getter;
 public enum ExecuteType {
     /*Quality Inspection (质量检查)*/
     INSPECTION("质检", 0),
+
     /*Material Testing (材料试验) */
     TESTING("试验", 1),
+
     /*First Article 首件*/
-    FAI("首件", 2);
+    FAI("首件", 2),
+
+    /*log info 日志*/
+    LOGINFO("日志", 3);
     final String name;
     final int mode;
 }

+ 18 - 1
blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchiveFileController.java

@@ -367,7 +367,7 @@ public class ArchiveFileController extends BladeController {
     }
 
     /**
-     * 批量编辑
+     *
      */
     @PostMapping("/batchUpdate")
     @ApiOperationSupport(order = 13)
@@ -382,6 +382,23 @@ public class ArchiveFileController extends BladeController {
         return R.data(true);
     }
 
+    /**
+     * 批量编辑
+     */
+    @PostMapping("/batchUpdateInfo")
+    @ApiOperationSupport(order = 13)
+    @ApiOperation(value = "修改基础信息")
+    public R<Boolean> batchUpdateInfo(@RequestBody ArchiveFileVO vo) {
+        try {
+            this.archiveFileClient.batchUpdateInfo(vo);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.data(false);
+        }
+        return R.data(true);
+    }
+
+
     /**
      * 删除分盒
      */

+ 14 - 0
blade-service/blade-business/src/main/java/org/springblade/business/feignClient/ArchiveFileClientImpl.java

@@ -23,6 +23,7 @@ import org.springblade.core.log.exception.ServiceException;
 import org.springblade.manager.entity.ContractInfo;
 import org.springblade.manager.enums.StorageTypeEnum;
 import org.springblade.manager.feign.ContractClient;
+import org.springframework.beans.BeanUtils;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -68,6 +69,19 @@ public class ArchiveFileClientImpl implements ArchiveFileClient {
         this.iArchiveFileService.updateArchiveFileSort(vo.getList());
     }
 
+    @Override
+    public void batchUpdateInfo(ArchiveFileVO vo) {
+        List<ArchiveFileVO> list = vo.getList();
+        List<ArchiveFile> archiveFileList = list.stream()
+                .map(voen -> {
+                    ArchiveFile file = new ArchiveFile();
+                    BeanUtils.copyProperties(voen, file);
+                    return file;
+                })
+                .collect(Collectors.toList());
+        this.iArchiveFileService.saveOrUpdateBatch(archiveFileList);
+    }
+
     @Override
     public boolean updateArchiveFileByBoxName(Map<String, Object> jsons) {
         return this.iArchiveFileService.updateArchiveFileByBoxName(jsons);

+ 1 - 0
blade-service/blade-business/src/main/java/org/springblade/business/service/IArchiveFileService.java

@@ -59,6 +59,7 @@ public interface IArchiveFileService extends BaseService<ArchiveFile> {
 
     void updateArchiveFileSort(List<ArchiveFileVO> list);
 
+
     boolean updateArchiveFileByBoxName(Map<String, Object> jsons);
 
     String isBoxName(String boxName);

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

@@ -980,7 +980,7 @@ public class ExcelTabController extends BladeController {
     }
 
     /**
-     * 客户端清表生成html
+     * 客户端清表生成html 日志
      */
     @GetMapping("/get-excel-html-two")
     @ApiOperationSupport(order = 15)
@@ -1013,7 +1013,27 @@ public class ExcelTabController extends BladeController {
         Document doc = Jsoup.parse(htmlString);
         Element table = doc.select("table").first();
 
-        //Elements col = doc.select("Col");
+
+        //获取公式颜色
+        String tabName = wbsTreePrivate.getInitTableName();
+        //字段查询、获取公式字段
+        String colKeys = "SELECT e_key from m_table_info a ,m_wbs_form_element b WHERE a.tab_en_name = '" + tabName + "' and a.id=b.f_id and b.id  in(SELECT element_id from m_element_formula_mapping c where c.is_deleted=0) ";
+        List<Map<String, Object>> maps = jdbcTemplate.queryForList(colKeys);
+        if (maps.size() > 0) {
+            for (Map<String, Object> keys : maps) {
+                String key = keys.get("e_key") + "__";
+                Elements gsColor = doc.select("el-input[keyname~=^" + key + "]");
+                for (Element element : gsColor) {
+                    element.parent().attr("gscolor", "11");
+                }
+
+                Elements dateColor = doc.select("el-date-picker[keyname~=^" + key + "]");
+                for (Element element : dateColor) {
+                    element.parent().attr("gscolor", "11");
+                }
+            }
+        }
+
 
         doc.select("Col").remove();
         ProjectInfo projectInfo = projectInfoService.getById(wbsTreePrivate.getProjectId());
@@ -1038,6 +1058,7 @@ public class ExcelTabController extends BladeController {
                 }
             }
         }
+
         return R.data(table + "");
     }
 
@@ -3886,6 +3907,8 @@ public class ExcelTabController extends BladeController {
             data = this.excelTabService.saveOrUpdateFirst(tableInfoList);
         } else {
             //保存日志
+            //------公式填充------
+            this.excelTabService.formulaFillData(tableInfoList, Long.parseLong(nodePrimaryKeyId), ExecuteType.LOGINFO);
             data = this.excelTabService.saveOrUpdateTheLog(tableInfoList);
         }
         this.getTheLogPdInfo(pkeyId, nodePrimaryKeyId, recordTime, contractId,null);

+ 16 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ExcelTabServiceImpl.java

@@ -470,7 +470,16 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                 /*用来保存日志执行情况*/
                 FormulaLog log = new FormulaLog();
                 /*每次都是部分表单提交,保证跨节点跨表取数正常,其次是反向依赖的被动刷新*/
-                List<NodeTable> tableAll = createNodeTables(nodeId, tableInfoList.get(0).getContractId(), tableInfoList.get(0).getProjectId(), type,tableInfoList.get(0).getClassify());
+                List<NodeTable> tableAll = new ArrayList<>();
+                if(type.equals(ExecuteType.LOGINFO)){
+                   List<String> pids = tableInfoList.stream().map(TableInfo::getPkeyId).collect(Collectors.toList());
+                   List<WbsTreePrivate> wbsTreePrivateList = wbsTreePrivateService.getBaseMapper().selectList(Wrappers.<WbsTreePrivate>lambdaQuery().in(WbsTreePrivate::getPKeyId, pids));
+                   tableAll = BeanUtil.copyProperties(wbsTreePrivateList, NodeTable.class);
+                }else{
+                   tableAll = createNodeTables(nodeId, tableInfoList.get(0).getContractId(), tableInfoList.get(0).getProjectId(), type,tableInfoList.get(0).getClassify());
+                }
+
+
                 if (tableAll.size() > tableInfoList.size()) {
                     TableInfo example = tableInfoList.get(0);
 
@@ -539,6 +548,12 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                         pKeyId = wtp.getPKeyId();
                         currentNode = createCurrentNode(wtp);
                         projectId = Long.parseLong(wtp.getProjectId());
+                    } else if (type.equals(ExecuteType.LOGINFO)) {
+                        WbsTreePrivate wtp = this.wbsTreePrivateService.getOne(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getPKeyId, nodeId));
+                        pKeyId = wtp.getPKeyId();
+                        currentNode = createCurrentNode(wtp);
+                        projectId = Long.parseLong(wtp.getProjectId());
+                        contractId = Func.toLong(tableInfoList.get(0).getContractId());
                     }
                     if (currentNode != null) {
                         TableElementConverter tec = new TableElementConverter(tableInfoList, keyMappers, formulas, coordinateMap, currentNode, tableAll);

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

@@ -1217,7 +1217,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
 
     @Override
     public IFormulaService calculate(TableElementConverter tec) {
-        if (ExecuteType.INSPECTION.equals(tec.getExecuteType())) {
+        if (ExecuteType.INSPECTION.equals(tec.getExecuteType()) || ExecuteType.LOGINFO.equals(tec.getExecuteType())) {
             /*天气*/
             weather(tec);
         }
@@ -1225,7 +1225,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
         tec.formDataMap.putAll(baseMap);*/
         /*通用计算*/
         generalCalc(tec);
-        if (ExecuteType.INSPECTION.equals(tec.getExecuteType())) {
+        if (ExecuteType.INSPECTION.equals(tec.getExecuteType())|| ExecuteType.LOGINFO.equals(tec.getExecuteType()) ) {
             if (tec.isNew) {
                 //TODO
             } else {
@@ -2510,8 +2510,10 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
         /*ids 表流水号 projectId项目 nodeId工序节点的pkeyId ExecuteType执行模式 质检或者试验 首件*/
         if (executeType.equals(ExecuteType.INSPECTION)) {
             return listForContract(ids, projectId, nodeId);
-        } else if (executeType.equals(ExecuteType.TESTING)) {
+        } else if (executeType.equals(ExecuteType.TESTING) ) {
             return listForPrivate(ids, projectId, nodeId);
+        } else if (executeType.equals(ExecuteType.LOGINFO) ) {
+            return listForPrivateByLog(ids, projectId, nodeId);
         }
         return Collections.emptyList();
     }
@@ -5319,6 +5321,24 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
         return Collections.emptyList();
     }
 
+    private List<KeyMapper> listForPrivateByLog(List<Long> ids, String projectId, String nodeId) {
+        /**/
+        List<Map<String, Object>> listMap = listMap(ids, ExecuteType.TESTING);
+        List<KeyMapper> list = listMap.stream().map(m -> BeanUtil.toBean(m, KeyMapper.class)).collect(Collectors.toList());
+        if (Func.isNotEmpty(listMap)) {
+            WbsTreePrivate wtp = this.wbsTreePrivateMapper.selectOne(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getPKeyId, nodeId));
+            List<Map<String, Object>> efMap = this.jdbcTemplate.queryForList("select element_id elementId,formula_id formulaId,scope " +
+                    "from m_element_formula_mapping " +
+                    "where element_id in(" + list.stream().map(KeyMapper::getFieldId).distinct().map(Func::toStr).collect(Collectors.joining(",")) + ") " +
+                    "and is_deleted=0 " + " and ( scope<2 or (scope =10 and project_id = " + projectId + ") or (scope=20 and project_id =" + projectId + " and node_id=" + wtp.getId() + "))");
+            setFormula(list, efMap);
+            if (list.size() > 0) {
+                return list;
+            }
+        }
+        return Collections.emptyList();
+    }
+
     /*获取计量公式,计量表是被动加载的,也不存在表单,所以需要根据计量类型获取*/
     private void listForMeter(List<FormData> curFormDatas, String projectId, String parentId) {
         List<WbsTreePrivate> wtpList = this.wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getParentId, parentId));

+ 3 - 3
blade-service/blade-system/src/main/java/org/springblade/system/mapper/DictBizMapper.xml

@@ -40,9 +40,9 @@
         <if test="notRoot != null and notRoot != ''">
             and parent_id > 0
         </if>
-<!--        <if test="tenantId != null and tenantId != ''">-->
-<!--            and tenant_id = #{tenantId}-->
-<!--        </if>-->
+        <if test="tenantId != null and tenantId != ''">
+            and tenant_id = #{tenantId}
+        </if>
         and is_sealed = 0 and is_deleted = 0
         order by sort
     </select>

+ 4 - 1
blade-service/blade-user/src/main/java/org/springblade/system/user/controller/WbsTreeController.java

@@ -17,6 +17,7 @@ import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.manager.entity.ContractRelationJlyz;
 import org.springblade.manager.vo.PrivateTreeVO2;
 import org.springblade.manager.vo.WbsTreeContractLazyVO;
+import org.springblade.manager.vo.WbsTreeContractTreeAllVO;
 import org.springblade.system.user.service.IUserService;
 import org.springblade.system.user.util.ComplexStringComparator;
 import org.springblade.system.user.vo.InformationQueryBIMVO;
@@ -30,6 +31,8 @@ import org.springframework.web.bind.annotation.*;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 @RestController
 @RequestMapping(value = "/wbs")
@@ -100,7 +103,7 @@ public class WbsTreeController extends BladeController {
                         .thenComparing(new ComplexStringComparator<>(obj ->
                                 obj.getTitle() != null ? obj.getTitle() : ""))
                         .thenComparing(Comparator.comparing(
-                                WbsTreeContractLazyVO::getCreateTime,
+                                WbsTreeContractLazyVO::getPrimaryKeyId,
                                 Comparator.nullsLast(Comparator.reverseOrder()))
                         );
                 //对结果进行排序