Переглянути джерело

Merge branch 'test-merge' of http://219.151.181.73:3000/zhuwei/bladex into test-merge

lvy 1 день тому
батько
коміт
f7fc6943c1
18 змінених файлів з 63 додано та 57 видалено
  1. 2 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/dto/TrialClassificationTreeDTO.java
  2. 2 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/dto/TrialSystemDockingDTO.java
  3. 2 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/TrialClassificationTree.java
  4. 5 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/TrialCyTestType.java
  5. 2 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/TrialSystemDocking.java
  6. 2 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/TrialSystemDockingVO.java
  7. 4 2
      blade-service/blade-business/src/main/java/org/springblade/business/controller/TrialClassificationTreeController.java
  8. 3 0
      blade-service/blade-business/src/main/java/org/springblade/business/controller/TrialSystemDockingController.java
  9. 1 1
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/TrialClassificationTreeMapper.java
  10. 2 2
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/TrialClassificationTreeMapper.xml
  11. 1 1
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/TrialSystemDockingMapper.xml
  12. 7 47
      blade-service/blade-business/src/main/java/org/springblade/business/scheduled/ChenYuTestScheduled.java
  13. 1 1
      blade-service/blade-business/src/main/java/org/springblade/business/service/ITrialClassificationTreeService.java
  14. 2 2
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialClassificationTreeServiceImpl.java
  15. 8 1
      blade-service/blade-manager/src/main/java/com/jfireel/expression/node/impl/DivisionNode.java
  16. 5 0
      blade-service/blade-manager/src/main/java/com/jfireel/expression/node/impl/MinusNode.java
  17. 7 0
      blade-service/blade-manager/src/main/java/com/jfireel/expression/node/impl/MutliNode.java
  18. 7 0
      blade-service/blade-manager/src/main/java/com/jfireel/expression/node/impl/PlusNode.java

+ 2 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/dto/TrialClassificationTreeDTO.java

@@ -44,6 +44,8 @@ public class TrialClassificationTreeDTO {
 
 	private Long projectId;
 
+	private Long contractId;
+
 	/**
 	 * 分类名称
 	 */

+ 2 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/dto/TrialSystemDockingDTO.java

@@ -36,6 +36,8 @@ public class TrialSystemDockingDTO {
 	 */
 	@NotNull(message = "projectId 不能为空")
 	private Long projectId;
+
+	private Long contractId;
 	/**
 	 * 报告文件名称
 	 */

+ 2 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/TrialClassificationTree.java

@@ -42,6 +42,8 @@ public class TrialClassificationTree extends BaseEntity {
 
 
 	private Long projectId;
+
+	private Long contractId;
 	/**
 	* 父级ID
 	*/

+ 5 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/TrialCyTestType.java

@@ -23,6 +23,11 @@ public class TrialCyTestType {
      */
     @ApiModelProperty("项目id")
     private Long projectId;
+    /**
+     * 项目id
+     */
+    @ApiModelProperty("合同段id")
+    private Long contractId;
     /**
      * ID唯一标识
      */

+ 2 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/TrialSystemDocking.java

@@ -43,6 +43,8 @@ public class TrialSystemDocking extends BaseEntity {
 	 */
 	private Long projectId;
 
+	private Long contractId;
+
 	private String classificationAncestors;
 	/**
 	* 报告文件名称

+ 2 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/TrialSystemDockingVO.java

@@ -38,6 +38,8 @@ public class TrialSystemDockingVO {
 	 * 项目Id
 	 */
 	private Long projectId;
+
+	private Long contractId;
 	/**
 	 * 报告文件名称
 	 */

+ 4 - 2
blade-service/blade-business/src/main/java/org/springblade/business/controller/TrialClassificationTreeController.java

@@ -61,6 +61,7 @@ import java.util.stream.Collectors;
 public class TrialClassificationTreeController extends BladeController {
 
 	private final ITrialClassificationTreeService trialClassificationTreeService;
+	private final Long TJ05_CONTRACT_ID = 1912405021063585793L;
 
 //	/**
 //	 * 详情
@@ -79,11 +80,11 @@ public class TrialClassificationTreeController extends BladeController {
 	@GetMapping("/list")
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "查询当前节点的子节点", notes = "传入trialClassificationTree")
-	public R<List<TrialClassificationTreeVO>> list(Long id,Long projectId) {
+	public R<List<TrialClassificationTreeVO>> list(Long id,Long projectId,Long TJ05_CONTRACT_ID) {
 		if(projectId==null){
 			throw new ServiceException("请选择项目");
 		}
-		List<TrialClassificationTreeVO> list = trialClassificationTreeService.selectAllNode(id,projectId);
+		List<TrialClassificationTreeVO> list = trialClassificationTreeService.selectAllNode(id,projectId,TJ05_CONTRACT_ID);
 		return R.data(list);
 	}
 
@@ -122,6 +123,7 @@ public class TrialClassificationTreeController extends BladeController {
 		for (TrialClassificationTreeDTO trialClassificationTreeDTO : dto.getList()) {
 			TrialClassificationTree trialClassificationTree = new TrialClassificationTree();
 			BeanUtil.copy(trialClassificationTreeDTO, trialClassificationTree);
+			trialClassificationTree.setContractId(TJ05_CONTRACT_ID);
 			Long parentId = trialClassificationTree.getParentId();
 			StringBuilder classificationAncestors = new StringBuilder();
 			classificationAncestors.append(trialClassificationTree.getId());

+ 3 - 0
blade-service/blade-business/src/main/java/org/springblade/business/controller/TrialSystemDockingController.java

@@ -63,6 +63,7 @@ public class TrialSystemDockingController extends BladeController {
 
 	private final ITrialClassificationTreeService trialClassificationTreeService;
 
+	private final Long TJ05_CONTRACT_ID = 1912405021063585793L;
 
 	/**
 	 * 详情
@@ -93,6 +94,7 @@ public class TrialSystemDockingController extends BladeController {
 	@ApiOperationSupport(order = 3)
 	@ApiOperation(value = "分页", notes = "传入trialSystemDocking")
 	public R<IPage<TrialSystemDockingVO>> page(TrialSystemDockingVO trialSystemDocking, Query query) {
+		trialSystemDocking.setContractId(TJ05_CONTRACT_ID);
 		IPage<TrialSystemDockingVO> pages = trialSystemDockingService.selectTrialSystemDockingPage(Condition.getPage(query), trialSystemDocking);
 		return R.data(pages);
 	}
@@ -108,6 +110,7 @@ public class TrialSystemDockingController extends BladeController {
 		for (TrialSystemDockingDTO trialSystemDockingDTO : list) {
 			TrialSystemDocking trialSystemDocking = new TrialSystemDocking();
 			BeanUtil.copy(trialSystemDockingDTO,trialSystemDocking);
+			trialSystemDocking.setContractId(TJ05_CONTRACT_ID);
 			TrialClassificationTree trialClassificationTree = trialClassificationTreeService.getById(trialSystemDockingDTO.getClassificationId());
 			if(trialClassificationTree!=null){
 				trialSystemDocking.setClassificationAncestors(trialClassificationTree.getClassificationAncestors());

+ 1 - 1
blade-service/blade-business/src/main/java/org/springblade/business/mapper/TrialClassificationTreeMapper.java

@@ -44,7 +44,7 @@ public interface TrialClassificationTreeMapper extends BaseMapper<TrialClassific
 
 	Long selectAncestors(Long parentId);
 
-    List<TrialClassificationTreeVO> selectAllNode(@Param("id") Long id, @Param("projectId") Long projectId);
+    List<TrialClassificationTreeVO> selectAllNode(@Param("id") Long id, @Param("projectId") Long projectId,@Param("contractId")Long contractId);
 
 	void deleteByGroupType(@Param("groupType") Integer groupType);
 }

+ 2 - 2
blade-service/blade-business/src/main/java/org/springblade/business/mapper/TrialClassificationTreeMapper.xml

@@ -24,7 +24,7 @@
         select parent_id from u_trial_classification_tree where id = #{parentId} and is_deleted = 0
     </select>
     <select id="selectAllNode" resultType="org.springblade.business.vo.TrialClassificationTreeVO">
-        select tree.id,tree.parent_id,tree.project_id,tree.classification_name,(
+        select tree.id,tree.parent_id,tree.project_id,tree.contract_id,tree.classification_name,(
             SELECT
                 CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
             FROM
@@ -33,7 +33,7 @@
                 parent_id = tree.id and is_deleted = 0
         ) AS "has_children"
         from u_trial_classification_tree tree
-        where tree.is_deleted = 0 and tree.project_id = #{projectId}
+        where tree.is_deleted = 0 and tree.project_id = #{projectId} and tree.contract_id = #{contractId}
         <if test="id!=null and id!=''">
             and tree.parent_id = #{id}
         </if>

+ 1 - 1
blade-service/blade-business/src/main/java/org/springblade/business/mapper/TrialSystemDockingMapper.xml

@@ -19,7 +19,7 @@
 
 
     <select id="selectTrialSystemDockingPage" resultMap="trialSystemDockingResultMap">
-        select id,project_id,report_name,report_number,unit_name,classification_id,specification,report_type,purpose_location,report_date,file_url,person_in_charge from u_trial_system_docking where is_deleted = 0 and project_id=#{vo.projectId}
+        select id,project_id,report_name,report_number,unit_name,classification_id,specification,report_type,purpose_location,report_date,file_url,person_in_charge from u_trial_system_docking where is_deleted = 0 and project_id=#{vo.projectId} and contract_id=#{vo.contractId}
         <if test="vo.reportName != null and vo.reportName != ''">
             and report_name like concat('%',#{vo.reportName},'%')
         </if>

+ 7 - 47
blade-service/blade-business/src/main/java/org/springblade/business/scheduled/ChenYuTestScheduled.java

@@ -101,6 +101,7 @@ public class ChenYuTestScheduled {
     private CloseableHttpClient httpClient;
     private static final String TOKEN_REDIS_KEY = "blade:cqcy:token";
     private static final String PROJECT_CODE = "cqcyfx";
+    private static final String CONTRACT_CODE = "CYTJ03";
     private static Long PROJECT_ID = null;
     private static final String BASE_URL = "https://apicqcyfx.qdm123.com";
     private final Map<String, Long> contractCodeMap = new ConcurrentHashMap<>();
@@ -209,62 +210,20 @@ public class ChenYuTestScheduled {
         if (!SystemUtils.isLinux()) {
             return;
         }
-
-        contractCodeMap.clear();
-        String token = getToken();
-        ensureProjectIdInitialized();
-
-        if (token == null || PROJECT_ID == null) {
-            log.error("Invalid token or project ID");
-            return;
-        }
-
         try {
-            //获取合同段列表接口
-            Result result = getContractList();
-            if (result == null || result.getState() != 1) {
-                log.error("Failed to get contract sections: {}",
-                        result != null ? result.getMessage() : "No response");
-                return;
-            }
-
-            JSONArray data = (JSONArray) result.getData();
-            if (CollectionUtil.isEmpty(data)) {
-                log.warn("No contract sections found");
-                return;
-            }
-
-            List<String> codes = new ArrayList<>();
-            for (int i = 0; i < data.size(); i++) {
-                JSONObject obj = data.getJSONObject(i);
-                String name = obj.getString("Name");
-                if (StringUtil.isNotBlank(name)) {
-                    codes.add(name);
-                }
-            }
-
-            if (CollectionUtil.isEmpty(codes)) {
-                log.info("No valid contract codes found");
-                return;
-            }
-
             // 构建参数化查询
-            String placeholders = String.join(",", Collections.nCopies(codes.size(), "?"));
-            String sql = "SELECT * FROM m_contract_info WHERE contract_number IN (" + placeholders + ")";
-
+            String sql = "SELECT id FROM m_contract_info WHERE contract_number = " + CONTRACT_CODE;
             List<ContractInfo> contracts = jdbcTemplate.query(
                     sql,
-                    codes.toArray(),
                     new BeanPropertyRowMapper<>(ContractInfo.class)
             );
-
-            for (ContractInfo contract : contracts) {
-                contractCodeMap.put(contract.getContractNumber(), contract.getId());
+            if(CollectionUtil.isNotEmpty(contracts)){
+                ContractInfo contractInfo = contracts.get(0);
+                contractCodeMap.put(CONTRACT_CODE, contractInfo.getId());
             }
-
             log.info("Loaded {} contract mappings", contractCodeMap.size());
         } catch (Exception e) {
-            log.error("Error processing contract sections", e);
+            log.error(CONTRACT_CODE + " 合同段编码不存在", e);
         }
     }
 
@@ -600,6 +559,7 @@ public class ChenYuTestScheduled {
             for (TrialCyTestType type : testTypes) {
                 type.setPKeyId(SnowFlakeUtil.getId());
                 type.setProjectId(PROJECT_ID);
+                type.setContractId(contractCodeMap.get(CONTRACT_CODE));
                 type.setFatherId(type.getFatherId() == null || type.getFatherId().isEmpty() ? "0" : type.getFatherId());
             }
             //先删除旧数据

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

@@ -48,7 +48,7 @@ public interface ITrialClassificationTreeService extends BaseService<TrialClassi
     boolean deleteById(Long id);
 
 
-    List<TrialClassificationTreeVO> selectAllNode(Long id, Long projectId);
+    List<TrialClassificationTreeVO> selectAllNode(Long id, Long projectId,Long contractId);
 
 	void deleteByGroupType(Integer groupType);
 }

+ 2 - 2
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialClassificationTreeServiceImpl.java

@@ -57,8 +57,8 @@ public class TrialClassificationTreeServiceImpl extends BaseServiceImpl<TrialCla
 	}
 
 	@Override
-	public List<TrialClassificationTreeVO> selectAllNode(Long id, Long projectId) {
-		return baseMapper.selectAllNode(id,projectId);
+	public List<TrialClassificationTreeVO> selectAllNode(Long id, Long projectId,Long contractId) {
+		return baseMapper.selectAllNode(id,projectId,contractId);
 	}
 
 	@Override

+ 8 - 1
blade-service/blade-manager/src/main/java/com/jfireel/expression/node/impl/DivisionNode.java

@@ -1,10 +1,12 @@
 package com.jfireel.expression.node.impl;
 
 import com.jfireel.expression.token.Operator;
+import com.jfireel.expression.util.ValueUtil;
 import com.jfireel.expression.util.number.DivisionUtil;
 import com.mixsmart.utils.StringUtils;
 
 import java.math.BigDecimal;
+import java.util.List;
 import java.util.Map;
 
 public class DivisionNode extends OperatorResultNode {
@@ -16,13 +18,18 @@ public class DivisionNode extends OperatorResultNode {
     @Override
     public Object calculate(Map<String, Object> variables) {
         Object leftValue = leftOperand.calculate(variables);
+        Object rightValue = rightOperand.calculate(variables);
+        if (leftValue instanceof List || rightValue instanceof List) {
+            Object[] leftAndRight = ValueUtil.obtain(leftOperand.calculate(variables), rightOperand.calculate(variables));
+            leftValue = leftAndRight[0];
+            rightValue = leftAndRight[1];
+        }
         if (leftValue instanceof String && StringUtils.isNumber(leftValue)) {
             leftValue = new BigDecimal(leftValue.toString());
         }
         if (leftValue instanceof Number == false) {
             return null;
         }
-        Object rightValue = rightOperand.calculate(variables);
         if (rightValue instanceof String && StringUtils.isNumber(rightValue)) {
             rightValue = new BigDecimal(rightValue.toString());
         }

+ 5 - 0
blade-service/blade-manager/src/main/java/com/jfireel/expression/node/impl/MinusNode.java

@@ -2,6 +2,7 @@ package com.jfireel.expression.node.impl;
 
 import com.jfireel.expression.Expression;
 import com.jfireel.expression.token.Operator;
+import com.jfireel.expression.util.ValueUtil;
 import com.jfireel.expression.util.number.SubtractUtil;
 import com.mixsmart.utils.CustomFunction;
 import com.mixsmart.utils.StringUtils;
@@ -24,6 +25,10 @@ public class MinusNode extends OperatorResultNode {
             return CustomFunction.dXd(rightValue, leftValue);
         }else if(leftStr.contains(COLON)&&rightStr.contains(COLON)){
             return fraction(leftStr)-fraction(rightStr);
+        }else if (leftValue instanceof List || rightValue instanceof List) {
+            Object[] leftAndRight = ValueUtil.obtain(leftOperand.calculate(variables), rightOperand.calculate(variables));
+            leftValue = leftAndRight[0];
+            rightValue = leftAndRight[1];
         }
         if (leftValue instanceof String ) {
             if(StringUtils.isNumber(leftValue)){

+ 7 - 0
blade-service/blade-manager/src/main/java/com/jfireel/expression/node/impl/MutliNode.java

@@ -2,6 +2,7 @@ package com.jfireel.expression.node.impl;
 
 import com.jfireel.expression.Expression;
 import com.jfireel.expression.token.Operator;
+import com.jfireel.expression.util.ValueUtil;
 import com.jfireel.expression.util.number.MultiplyUtil;
 import com.mixsmart.utils.CustomFunction;
 import com.mixsmart.utils.StringUtils;
@@ -9,6 +10,7 @@ import com.mixsmart.utils.StringUtils;
 import java.math.BigDecimal;
 import java.util.Collections;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
@@ -34,6 +36,11 @@ public class MutliNode extends OperatorResultNode {
             String leftValueStr = Collections.nCopies(n, leftValue).stream().map(StringUtils::handleNull).collect(Collectors.joining("*"));
             return CustomFunction.dXd(rightValue, leftValueStr, 1, 1);
         }
+        if (leftValue instanceof List || rightValue instanceof List) {
+            Object[] leftAndRight = ValueUtil.obtain(leftOperand.calculate(variables), rightOperand.calculate(variables));
+            leftValue = leftAndRight[0];
+            rightValue = leftAndRight[1];
+        }
         if (leftValue instanceof String && StringUtils.isNumber(leftValue)) {
             leftValue = new BigDecimal(leftValue.toString());
         }

+ 7 - 0
blade-service/blade-manager/src/main/java/com/jfireel/expression/node/impl/PlusNode.java

@@ -1,8 +1,10 @@
 package com.jfireel.expression.node.impl;
 
 import com.jfireel.expression.token.Operator;
+import com.jfireel.expression.util.ValueUtil;
 import com.jfireel.expression.util.number.PlusUtil;
 
+import java.util.List;
 import java.util.Map;
 
 public class PlusNode extends OperatorResultNode {
@@ -22,6 +24,11 @@ public class PlusNode extends OperatorResultNode {
     public Object calculate(Map<String, Object> variables) {
         Object leftValue = leftOperand.calculate(variables);
         Object rightValue = rightOperand.calculate(variables);
+        if (leftValue instanceof List || rightValue instanceof List) {
+            Object[] leftAndRight = ValueUtil.obtain(leftOperand.calculate(variables), rightOperand.calculate(variables));
+            leftValue = leftAndRight[0];
+            rightValue = leftAndRight[1];
+        }
         if (leftValue instanceof String || rightValue instanceof String) {
             StringBuilder cache = LOCAL.get();
             if (leftValue != null) {