瀏覽代碼

中间计量申请,变更令编号与附件

qianxb 1 年之前
父節點
當前提交
09300db820

+ 5 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/AttachmentForm.java

@@ -68,6 +68,11 @@ public class AttachmentForm extends BaseEntity {
      */
     @ApiModelProperty(value = "附件pdf地址")
     private String filePdfUrl;
+    /**
+     * 中间计量申请专用字段 1中间计量附件,2变更令附件
+     */
+    @ApiModelProperty(value = "中间计量申请专用字段 1中间计量附件,2变更令附件")
+    private Integer fileType;
 
 
 }

+ 2 - 1
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/ChangeTokenForm.java

@@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.time.LocalDate;
+import java.time.LocalDateTime;
 
 import io.swagger.annotations.ApiModelProperty;
 import org.springblade.core.mp.base.BaseEntity;
@@ -127,7 +128,7 @@ public class ChangeTokenForm extends BaseEntity {
     private Integer commandStatus;
 
     @ApiModelProperty(value = "下达日期")
-    private LocalDate commandDate;
+    private LocalDateTime commandDate;
 
 
 

+ 6 - 1
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/MiddleMeterApply.java

@@ -104,10 +104,15 @@ public class MiddleMeterApply extends BaseEntity {
     @ApiModelProperty(value = "收方单id")
     private Long debitFormId;
     /**
-     * 变更令id
+     * 变更令编号
      */
     @ApiModelProperty(value = "变更令编号")
     private String changeTokenNumber;
+    /**
+     * 变更令id
+     */
+    @ApiModelProperty(value = "变更令id,逗号拼接")
+    private String changeTokenIds;
     /**
      * 草图文件
      */

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

@@ -0,0 +1,24 @@
+package org.springblade.meter.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springblade.meter.entity.AttachmentForm;
+
+import java.util.List;
+
+/**
+ * @Param   中间计量申请,返回变更令和变更令编号和变更令附件
+ * @Author wangwl
+ * @Date 2024/1/2 9:37
+ **/
+@Data
+public class MiddleMeterTokenVO {
+    @ApiModelProperty(value = "变更令编号,逗号分隔")
+    private String changeTokenNumber;
+
+    @ApiModelProperty(value = "变更令id,逗号分隔")
+    private String changeTokenIds;
+
+    @ApiModelProperty(value = "变更令附件集合")
+    private List<AttachmentForm> files;
+}

+ 11 - 7
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/MiddleMeterApplyController.java

@@ -26,10 +26,7 @@ import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.meter.dto.MiddleMeterApplyDTO;
-import org.springblade.meter.vo.MeterInventoryDetailVO;
-import org.springblade.meter.vo.MeterInventoryVO;
-import org.springblade.meter.vo.MiddleMeterApplyVO;
-import org.springblade.meter.vo.ResolveInventoryVO;
+import org.springblade.meter.vo.*;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.RequestParam;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -38,6 +35,7 @@ import org.springblade.meter.service.IMiddleMeterApplyService;
 import org.springblade.core.boot.ctrl.BladeController;
 
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.util.List;
 
 /**
@@ -104,9 +102,15 @@ public class MiddleMeterApplyController extends BladeController {
 	 */
 	@GetMapping("/getNodeToken")
 	@ApiOperationSupport(order = 4)
-	@ApiOperation(value = "获取当前节点变更令", notes = "传入节点id,返回变更令编号,没有返回null")
-	public R<String> getNodeToken(Long nodeId) {
-		return R.data(middleMeterApplyService.getNodeToken(nodeId));
+	@ApiOperation(value = "获取变更编号,附件", notes = "传入合同id,节点id,和所有清单id逗号拼接,业务日期")
+	@ApiImplicitParams(value = {
+			@ApiImplicitParam(name = "contractId", value = "合同id", required = true),
+			@ApiImplicitParam(name = "nodeId", value = "节点id", required = true),
+			@ApiImplicitParam(name = "formIds", value = "所有计量清单id,逗号分隔", required = true),
+			@ApiImplicitParam(name = "businessDate", value = "业务日期", required = true)
+	})
+	public R<MiddleMeterTokenVO> getNodeToken(Long contractId,Long nodeId, String formIds, String businessDate) {
+		return R.data(middleMeterApplyService.getNodeToken(contractId,nodeId,formIds,businessDate));
 	}
 
 	/**

+ 4 - 1
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MiddleMeterApplyMapper.java

@@ -26,7 +26,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.springblade.meter.vo.*;
 
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.util.List;
+import java.util.Set;
 
 /**
  * 中间计量申请表 Mapper 接口
@@ -41,7 +43,6 @@ public interface MiddleMeterApplyMapper extends BaseMapper<MiddleMeterApply> {
 
     List<MeterInventoryVO> getResolveFormInfo(@Param("contractId") Long contractId,@Param("nodeId") Long nodeId,@Param("ids") List<Long> longs);
 
-    ChangeTokenMeter getNodeToken(@Param("nodeId") Long nodeId);
 
     List<MeterTreeContract> getNodeDivide(@Param("contractId") Long contractId, @Param("ids") List<Long> ids);
 
@@ -70,4 +71,6 @@ public interface MiddleMeterApplyMapper extends BaseMapper<MiddleMeterApply> {
     List<NodeSortVO> getLowestNodeBySort(@Param("contractId") Long contractId,@Param("nodeId") Long nodeId);
 
     List<NodeSortVO> getAllNode(@Param("contractId") Long contractId);
+
+    Set<ChangeTokenForm> getNodeToken(@Param("contractId") Long contractId,@Param("ids") List<Long> ids,@Param("nodeId") Long nodeId,@Param("bDate") String businessDate);
 }

+ 14 - 6
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MiddleMeterApplyMapper.xml

@@ -52,12 +52,7 @@
             #{id}
         </foreach>
     </select>
-    <select id="getNodeToken" resultType="org.springblade.meter.entity.ChangeTokenMeter">
-        select * from s_change_token_meter
-        where is_deleted = 0 and contract_meter_id = #{nodeId}
-        order by create_time desc
-        limit 1
-    </select>
+
     <select id="getNodeDivide" resultType="org.springblade.meter.entity.MeterTreeContract">
         select *
         from s_meter_tree_contract
@@ -165,6 +160,19 @@
 
 
     </select>
+    <select id="getNodeToken" resultType="org.springblade.meter.entity.ChangeTokenForm">
+        <foreach collection="ids" item="id"  separator="union">
+            (select *
+            from s_change_token_form ctf
+            WHERE is_deleted = 0 and ctf.command_status = 1 and ctf.command_date &lt;= #{bDate}
+            and id in (  select change_token_id
+            from s_change_token_inventory
+            WHERE contract_meter_id = #{nodeId} and contract_id = #{contractId}
+            and contract_form_id = #{id} and is_deleted = 0 and is_collect_form = 0)
+            order by command_date desc
+            limit 1)
+        </foreach>
+    </select>
 
 
 </mapper>

+ 3 - 5
blade-service/blade-meter/src/main/java/org/springblade/meter/service/IMiddleMeterApplyService.java

@@ -21,12 +21,10 @@ import org.springblade.core.mp.support.Query;
 import org.springblade.meter.dto.MiddleMeterApplyDTO;
 import org.springblade.meter.entity.MiddleMeterApply;
 import org.springblade.core.mp.base.BaseService;
-import org.springblade.meter.vo.MeterInventoryDetailVO;
-import org.springblade.meter.vo.MeterInventoryVO;
-import org.springblade.meter.vo.MiddleMeterApplyVO;
-import org.springblade.meter.vo.ResolveInventoryVO;
+import org.springblade.meter.vo.*;
 
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.util.List;
 
 /**
@@ -44,7 +42,7 @@ public interface IMiddleMeterApplyService extends BaseService<MiddleMeterApply>
 
     void add(MiddleMeterApplyDTO dto);
 
-    String getNodeToken(Long nodeId);
+    MiddleMeterTokenVO getNodeToken(Long contractId,Long nodeId, String formIds, String businessDate);
 
     String getNodeDivide(Long nodeId);
 

+ 17 - 2
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/ChangeTokenFormServiceImpl.java

@@ -40,6 +40,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -125,6 +126,13 @@ public class ChangeTokenFormServiceImpl extends BaseServiceImpl<ChangeTokenFormM
     @Override
     @Transactional
     public void add(ChangeTokenFormDTO dto) {
+        //校验编号是否存在
+        ChangeTokenForm one = this.getOne(new LambdaQueryWrapper<ChangeTokenForm>()
+                .eq(ChangeTokenForm::getContractId,dto.getContractId())
+                .eq(ChangeTokenForm::getChangeNumber, dto.getChangeNumber()));
+        if (one != null){
+            throw new ServiceException("当前编号已经存在,请更改后保存");
+        }
         //复制出基础数据
         Long id = SnowFlakeUtil.getId();
         dto.setId(id);
@@ -315,6 +323,13 @@ public class ChangeTokenFormServiceImpl extends BaseServiceImpl<ChangeTokenFormM
     @Override
     @Transactional
     public void update2(ChangeTokenFormDTO dto) {
+        //校验编号是否存在,未排除当前
+//        ChangeTokenForm one = this.getOne(new LambdaQueryWrapper<ChangeTokenForm>()
+//                .eq(ChangeTokenForm::getContractId,dto.getContractId())
+//                .eq(ChangeTokenForm::getChangeNumber, dto.getChangeNumber()));
+//        if (one != null){
+//            throw new ServiceException("当前编号已经存在,请更改后保存");
+//        }
         //获取当前变更令,判断上报状态
         ChangeTokenForm tokenForm = this.getById(dto.getId());
         if (tokenForm.getApproveStatus() != 0){
@@ -548,7 +563,7 @@ public class ChangeTokenFormServiceImpl extends BaseServiceImpl<ChangeTokenFormM
             inventory.setContractId(form2.getContractId());
             inventory.setChangeTokenId(vo2.getChangeTokenId());
             inventory.setContractFormId(vo2.getId());
-            inventory.setContractMeterId(vo2.getContractMeterId());
+//            inventory.setContractMeterId(vo2.getContractMeterId());
             //设置汇总清单的数量
             inventory.setChangeBeforeTotal(form2.getChangeTotal());
             inventory.setChangeTotal(total);
@@ -647,7 +662,7 @@ public class ChangeTokenFormServiceImpl extends BaseServiceImpl<ChangeTokenFormM
         this.update(new LambdaUpdateWrapper<ChangeTokenForm>()
             .eq(ChangeTokenForm::getId,id)
             .set(ChangeTokenForm::getCommandStatus,1)
-            .set(ChangeTokenForm::getCommandDate, LocalDate.now()));
+            .set(ChangeTokenForm::getCommandDate, LocalDateTime.now()));
         //异步重新计算节点金额,和修改施工图号,此方法放到最后,待所有操作成功后再执行
         meterTreeContractService.asyncCalculateNodeMoney(allNode);
     }

+ 32 - 10
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MiddleMeterApplyServiceImpl.java

@@ -37,9 +37,11 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.stream.Collectors;
 
 /**
@@ -192,18 +194,38 @@ public class MiddleMeterApplyServiceImpl extends BaseServiceImpl<MiddleMeterAppl
      * 获取当前节点变更令
      */
     @Override
-    public String getNodeToken(Long nodeId) {
-        //判断是否存在变更令
-        ChangeTokenMeter nodeToken = baseMapper.getNodeToken(nodeId);
-        if (nodeToken == null){
-            return null;
+    public MiddleMeterTokenVO getNodeToken(Long contractId,Long nodeId, String formIds, String businessDate) {
+        if (nodeId == null || StringUtils.isBlank(formIds) || StringUtils.isBlank(businessDate)){
+            throw new ServiceException("请求参数错误,请检查是否有节点id,业务日期,和计量清单");
+        }
+        MiddleMeterTokenVO vo = new MiddleMeterTokenVO();
+        //当前没有清单就没有变更令
+        if (StringUtils.isBlank(formIds)){
+            return vo;
         }
-        //获取变更令
-        ChangeTokenForm tokenForm = baseMapper.getTokenById(nodeToken.getChangeTokenId());
-        if (tokenForm != null && StringUtils.isNotBlank(tokenForm.getChangeNumber())) {
-            return tokenForm.getChangeNumber();
+        //判断是否存在变更令
+        List<Long> ids = Func.toLongList(formIds);
+        Set<ChangeTokenForm> forms = baseMapper.getNodeToken(contractId,ids,nodeId,businessDate);
+        if (forms.size() != 0){
+            //设置变更令id
+            vo.setChangeTokenIds(forms.stream().map(l->l.getId()+"").collect(Collectors.joining(",")));
+            //获取编号拼接
+            vo.setChangeTokenNumber(forms.stream().map(ChangeTokenForm::getChangeNumber).collect(Collectors.joining(",")));
+            //获取变更令附件并转换
+            List<AttachmentForm> files = attachmentFormService.list(new LambdaQueryWrapper<AttachmentForm>()
+                    .in(AttachmentForm::getMasterId,forms.stream().map(ChangeTokenForm::getId).collect(Collectors.toList()))
+                    );
+            if (files.size() != 0){
+                files.stream().forEach(l->{
+                    l.setId(null);
+                    l.setMasterId(null);
+                    l.setFileType(2);
+                });
+                vo.setFiles(files);
+            }
         }
-        return null;
+
+        return vo;
     }
 
     /**