ソースを参照

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

lvy 15 時間 前
コミット
072ab84ed8

+ 31 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/feign/WbsTreeContractExtendClient.java

@@ -0,0 +1,31 @@
+package org.springblade.manager.feign;
+
+import org.springblade.manager.entity.WbsTreeContract;
+import org.springblade.manager.entity.WbsTreeContractExtend;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+import static org.springblade.core.launch.constant.AppConstant.APPLICATION_NAME_PREFIX;
+
+@FeignClient(value = APPLICATION_NAME_PREFIX + "manager")
+public interface WbsTreeContractExtendClient {
+
+    /**
+     * 接口前缀
+     */
+    String API_PREFIX = "/api/manager/WbsTreeContractExtend";
+
+    @PostMapping(API_PREFIX + "/getByPKeyId")
+    List<WbsTreeContractExtend> getByPKeyId(@RequestBody WbsTreeContract wbsTreeContract);
+
+    @PostMapping(API_PREFIX + "/save")
+    Boolean save(@RequestBody WbsTreeContractExtend wbsTreeContractExtend);
+    @PostMapping(API_PREFIX + "/saveList")
+    Boolean saveList(@RequestBody List<WbsTreeContractExtend> wbsTreeContractExtends);
+
+    @PostMapping(API_PREFIX + "/getByAncestorsPId")
+    List<WbsTreeContractExtend> getByAncestorsPid(String ancestorsPid);
+}

+ 24 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/ChangeNodeVO.java

@@ -1,5 +1,6 @@
 package org.springblade.meter.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -35,12 +36,15 @@ public class ChangeNodeVO {
     private String beforeContractPicture;
 
     @ApiModelProperty(value = "变更前-施工图金额")
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
     private BigDecimal beforeBuildMoney;
 
     @ApiModelProperty(value = "变更前-变更后金额")
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
     private BigDecimal beforeChangeMoney;
 
     @ApiModelProperty(value = "变更后金额")
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
     private BigDecimal changeMoney;
 
     @ApiModelProperty(value = "是否增补")
@@ -52,6 +56,17 @@ public class ChangeNodeVO {
     @ApiModelProperty(value = "清单集合")
     private List<ChangeFormVO2> formList;
 
+    public void setBeforeBuildMoney(BigDecimal beforeBuildMoney) {
+        this.beforeBuildMoney = trimTrailingZeros(beforeBuildMoney);
+    }
+
+    public void setBeforeChangeMoney(BigDecimal beforeChangeMoney) {
+        this.beforeChangeMoney = trimTrailingZeros(beforeChangeMoney);
+    }
+    public void setChangeMoney(BigDecimal changeMoney) {
+        this.changeMoney = trimTrailingZeros(changeMoney);
+    }
+
     @Override
     public boolean equals(Object o) {
         if (this == o) return true;
@@ -65,4 +80,13 @@ public class ChangeNodeVO {
     public int hashCode() {
         return Objects.hash(id);
     }
+
+    private BigDecimal trimTrailingZeros(BigDecimal value) {
+        if (value == null) {
+            return null;
+        }
+        // 先去除末尾零,然后使用普通字符串表示避免科学计数法
+        BigDecimal stripped = value.stripTrailingZeros();
+        return new BigDecimal(stripped.toPlainString());
+    }
 }

+ 4 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchivesAutoServiceImpl.java

@@ -5412,6 +5412,10 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 									LocalDateTime[] localDateTimes = convertDateRange(time, "-");
 									auto.setStartDate(localDateTimes[0]);
 									auto.setEndDate(localDateTimes[1]);
+								} else if (result.contains("~")) {
+									LocalDateTime[] localDateTimes = convertDateRange(time, "~");
+									auto.setStartDate(localDateTimes[0]);
+									auto.setEndDate(localDateTimes[1]);
 								}
 							} else if (result.contains("保管期限")||result.contains("保管限期")) {
 								String storageTime=result.replace("保管期限","").replace("保管限期","").replace(":","").replace(":","");

+ 48 - 0
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -117,6 +117,9 @@ public class InformationWriteQueryController extends BladeController {
     private final ContractClient contractClient;
 
     private final WbsTreeContractClient wbsTreeContractClient;
+
+    private final WbsTreeContractExtendClient wbsTreeContractExtendClient;
+
     private final WbsTreeContractOldHtmlClient wbsTreeContractOldHtmlClient;
 
     private final WbsTreePrivateClient wbsTreePrivateClient;
@@ -2046,6 +2049,8 @@ public R<Boolean> copyContractTreeNode(@RequestBody CopyContractTreeNodeVO vo) {
     if (("1").equals(vo.getCopyType())) {
         //选中节点
         WbsTreeContract needCopyNode = this.wbsTreeContractClient.getContractNodeByPrimaryKeyId(vo.getNeedCopyPrimaryKeyId());
+        //获取扩展表信息,同时复制扩展表信息  要考虑复制节点下存在其他子级节点
+        List<WbsTreeContractExtend> wbsTreeContractExtend = wbsTreeContractExtendClient.getByPKeyId(needCopyNode);
 
         /*结果集-节点表*/
         List<WbsTreeContract> saveList = new ArrayList<>();
@@ -2157,6 +2162,17 @@ public R<Boolean> copyContractTreeNode(@RequestBody CopyContractTreeNodeVO vo) {
                     logger.info("以下元素表没有获取到对应实体表数据,已跳过 ===> 表pKeyId:[{}]", StringUtils.join(continuePkeyIds, ","));
                 }
             }
+            //根据旧节点 pkid 获取新节点pkid
+            if(wbsTreeContractExtend != null){
+                wbsTreeContractExtend.forEach(f->{
+                    f.setPKeyId(oldPKeyIdToNewPKeyIdMap.get(f.getPKeyId()));
+                });
+                List<WbsTreeContractExtend> collect = wbsTreeContractExtend.stream().filter(f -> f.getPKeyId() != null).collect(Collectors.toList());
+                if(!collect.isEmpty()){
+                    //排除没有扩展表记录的节点
+                    Boolean b = wbsTreeContractExtendClient.saveList(collect);
+                }
+            }
             // 节点+表节点
             for (WbsTreeContract nodeOld : nodeChildAll) {
                 //新节点
@@ -2376,6 +2392,8 @@ public R<Boolean> copyContractTreeNode(@RequestBody CopyContractTreeNodeVO vo) {
             }
 
             WbsTreeContract needCopyNodeRoot = this.wbsTreeContractClient.getContractNodeByPrimaryKeyId(vo.getNeedCopyPrimaryKeyId());
+            //获取当前节点扩展表
+            List<WbsTreeContractExtend> contractExtends = wbsTreeContractExtendClient.getByPKeyId(needCopyNodeRoot);
             if (needCopyNodeRoot != null) {
                 /*缓存需要复制的节点、表信息*/
                 Map<String, List<WbsTreeContract>> needCopyNodeAndTabMap = new HashMap<>();
@@ -2553,6 +2571,9 @@ public R<Boolean> copyContractTreeNode(@RequestBody CopyContractTreeNodeVO vo) {
                 if (nodes.size() > 0) {
                     /*复制formulaOption*/
                     this.copyFormulaOptions(nodes, peerMap);
+                    /*复制扩展表数据*/
+                    List<WbsTreeContractExtend> saveContractExtend = this.copyContractExtend(contractExtends, peerMap);
+                    wbsTreeContractExtendClient.saveList(saveContractExtend);
                 }
                 if (row) {
                     //更新redis缓存
@@ -2590,6 +2611,33 @@ public R<Boolean> copyContractTreeNode(@RequestBody CopyContractTreeNodeVO vo) {
     return R.fail("操作失败");
 }
 
+    /**
+     * 复制合同段扩展表
+     * @param contractExtends 旧节点扩展表信息
+     * @param map 新节点与旧节点 映射关系
+     * */
+    private List<WbsTreeContractExtend> copyContractExtend(List<WbsTreeContractExtend> contractExtends, Map<Long, Long> map) {
+        List<WbsTreeContractExtend> wbsTreeContractExtends = new ArrayList<>();
+        contractExtends.forEach(f->{
+            //根基旧节点查询新节点信息,一个旧节点可能存在多个新节点数据
+            List<Long> cities = map.entrySet()
+                    .stream()
+                    .filter(entry -> f.getPKeyId().equals(entry.getValue()))
+                    .map(Map.Entry::getKey)
+                    .collect(Collectors.toList());
+            if(CollectionUtil.isNotEmpty(cities)){
+                cities.forEach(c->{
+                    WbsTreeContractExtend wbsTreeContractExtend = BeanUtil.copyProperties(f, WbsTreeContractExtend.class);
+                    if(wbsTreeContractExtend != null){
+                        wbsTreeContractExtend.setPKeyId(c);
+                        wbsTreeContractExtends.add(wbsTreeContractExtend);
+                    }
+                });
+            }
+        });
+        return wbsTreeContractExtends;
+    }
+
 @Async
 public void copyFormulaOptions(List<WbsTreeContract> saveList, Map<Long, Long> peerMap) {
     if (peerMap.size() > 0) {

+ 59 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/feign/WbsTreeContractExtendClientImpl.java

@@ -0,0 +1,59 @@
+package org.springblade.manager.feign;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.AllArgsConstructor;
+import org.springblade.manager.entity.WbsTreeContract;
+import org.springblade.manager.entity.WbsTreeContractExtend;
+import org.springblade.manager.service.IWbsTreeContractService;
+import org.springblade.manager.service.WbsTreeContractExtendService;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+@RestController
+@AllArgsConstructor
+public class WbsTreeContractExtendClientImpl implements WbsTreeContractExtendClient {
+
+    @Resource
+    private WbsTreeContractExtendService wbsTreeContractExtendService;
+    @Resource
+    private IWbsTreeContractService wbsTreeContractService;
+
+    @Override
+    public List<WbsTreeContractExtend> getByPKeyId(WbsTreeContract wbsTreeContract) {
+        //查询指定节点下的其他节点 不查询表单
+        List<WbsTreeContract> list = wbsTreeContractService.list(Wrappers.<WbsTreeContract>lambdaQuery()
+                .eq(WbsTreeContract::getContractId, wbsTreeContract.getContractId())
+                .eq(WbsTreeContract::getType, 1)
+                .likeRight(WbsTreeContract::getAncestorsPId, wbsTreeContract.getAncestorsPId())
+        );
+        Set<Long> collect = list.stream().map(WbsTreeContract::getPKeyId).collect(Collectors.toSet());
+        //可能当前节点下没有子节点了,把当前节点加进去
+        collect.add(wbsTreeContract.getPKeyId());
+
+        return wbsTreeContractExtendService.listByIds(collect);
+    }
+
+    @Override
+    public Boolean save(WbsTreeContractExtend wbsTreeContractExtend) {
+        return wbsTreeContractExtendService.save(wbsTreeContractExtend);
+    }
+
+    @Override
+    public Boolean saveList(List<WbsTreeContractExtend> wbsTreeContractExtends) {
+        return wbsTreeContractExtendService.saveBatch(wbsTreeContractExtends);
+    }
+
+    @Override
+    public List<WbsTreeContractExtend> getByAncestorsPid(String ancestorsPid) {
+        //只复制节点 不复制表单
+
+        return wbsTreeContractExtendService.list(Wrappers.<WbsTreeContractExtend>lambdaQuery()
+                .eq(WbsTreeContractExtend::getIsDeleted,0)
+                .in(WbsTreeContractExtend::getPKeyId,Arrays.asList(ancestorsPid.split(","))));
+    }
+}