Browse Source

报销付款

sangwenwei 1 year ago
parent
commit
34ed887ce2
40 changed files with 529 additions and 3 deletions
  1. 12 0
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/controller/ReimbursementInfoController.java
  2. 9 0
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/domain/ReimbursementInfo.java
  3. 2 0
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/mapper/ReimbursementInfoMapper.java
  4. 14 1
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/mapper/xml/ReimbursementInfoMapper.xml
  5. 39 0
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/service/ReimbursementInfoService.java
  6. 4 0
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/service/dto/QueryListDto.java
  7. 11 0
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/service/dto/RetureListDto.java
  8. 11 0
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/service/dto/SaveInfoDto.java
  9. 12 0
      jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/controller/CcpmReimbursementInfoController.java
  10. 11 0
      jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/domain/CcpmReimbursementInfo.java
  11. 2 0
      jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/mapper/CcpmReimbursementInfoMapper.java
  12. 12 0
      jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/mapper/xml/CcpmReimbursementInfoMapper.xml
  13. 39 0
      jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/service/CcpmReimbursementInfoService.java
  14. 14 0
      jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/service/dto/CcpmQueryListDto.java
  15. 10 0
      jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/service/dto/CcpmRetureListDto.java
  16. 10 0
      jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/service/dto/CcpmSaveInfoDto.java
  17. 12 0
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/controller/ZsReimbursementInfoController.java
  18. 9 0
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/domain/ZsReimbursementInfo.java
  19. 2 0
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/mapper/ZsReimbursementInfoMapper.java
  20. 13 0
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/mapper/xml/ZsReimbursementInfoMapper.xml
  21. 39 1
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/service/ZsReimbursementInfoService.java
  22. 4 0
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/service/dto/ZsQueryListDto.java
  23. 11 0
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/service/dto/ZsRetureListDto.java
  24. 10 0
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/service/dto/ZsSaveInfoDto.java
  25. 12 0
      jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/controller/ConsultancyReimbursementInfoController.java
  26. 11 0
      jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/domain/ConsultancyReimbursementInfo.java
  27. 2 0
      jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/mapper/ConsultancyReimbursementInfoMapper.java
  28. 13 0
      jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/mapper/xml/ConsultancyReimbursementInfoMapper.xml
  29. 39 0
      jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/service/ConsultancyReimbursementInfoService.java
  30. 15 0
      jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/service/dto/ConsultancyQueryListDto.java
  31. 11 0
      jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/service/dto/ConsultancyRetureListDto.java
  32. 11 0
      jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/service/dto/ConsultancySaveInfoDto.java
  33. 12 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/controller/CwReimbursementInfoController.java
  34. 9 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/domain/CwReimbursementInfo.java
  35. 2 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/mapper/CwReimbursementInfoMapper.java
  36. 12 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/mapper/xml/CwReimbursementInfoMapper.xml
  37. 41 1
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/service/CwReimbursementInfoService.java
  38. 4 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/service/dto/QueryListDto.java
  39. 12 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/service/dto/RetureListDto.java
  40. 11 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/service/dto/SaveInfoDto.java

+ 12 - 0
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/controller/ReimbursementInfoController.java

@@ -251,4 +251,16 @@ public class ReimbursementInfoController {
         SaveInfoDto list=service.findHiById(id);
         return ResponseEntity.ok(list);
     }
+
+    /**
+     * 修改付款状态
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "修改付款状态")
+    @PostMapping("/updatePaymentStatus")
+    public String updatePaymentStatus(@RequestBody RetureListDto dto) {
+        String data=service.updatePaymentStatus(dto.getId(),dto.getPaymentStatus());
+        return data;
+    }
 }

+ 9 - 0
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/domain/ReimbursementInfo.java

@@ -71,4 +71,13 @@ public class ReimbursementInfo extends BaseEntity {
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
     private Date approvalTime;
+
+    /**
+     * 付款时间
+     */
+    private Date paymentTime;
+    /**
+     * 付款状态  0:未付款  1:已付款
+     */
+    private String paymentStatus;
 }

+ 2 - 0
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/mapper/ReimbursementInfoMapper.java

@@ -96,4 +96,6 @@ public interface ReimbursementInfoMapper extends BaseMapper<ReimbursementInfo> {
 
     @InterceptorIgnore(tenantLine = "true")
     List<TreeUserDto> findOfficeListByIdList(@Param("idList") List<String> idList);
+
+    void updatePaymentById(@Param("id") String id,@Param("paymentStatus") String paymentStatus);
 }

+ 14 - 1
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/mapper/xml/ReimbursementInfoMapper.xml

@@ -56,7 +56,9 @@
 			a.source_type,
 			a.purchase_id,
 			a.reimbursement_type,
-			a.approval_time
+			a.approval_time,
+			a.payment_status,
+			a.payment_time
 -- 			pru.purchase_no
 		FROM
 			reimbursement_info a
@@ -472,4 +474,15 @@
 			</foreach>
 		</where>
 	</select>
+
+	<update id="updatePaymentById">
+		update
+			reimbursement_info
+		set payment_status = #{paymentStatus},
+		payment_time = case
+			when #{paymentStatus} = '1' then NOW()
+			else null end
+		where id = #{id}
+	</update>
+
 </mapper>

+ 39 - 0
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/service/ReimbursementInfoService.java

@@ -184,6 +184,10 @@ public class ReimbursementInfoService {
         if (StringUtils.isNotEmpty(dto.getNo())) {
             queryWrapper.like("a.no", dto.getNo());
         }
+        // 付款状态
+        if (com.jeeplus.utils.StringUtils.isNotEmpty(dto.getPaymentStatus())) {
+            queryWrapper.like("a.payment_status", dto.getPaymentStatus());
+        }
         //获取当前登录人信息
         /*UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken ( ));
         //获取当前登录人所属角色
@@ -430,6 +434,17 @@ public class ReimbursementInfoService {
                 info.setApprovalTime(new Date());
             }
         }
+        //获取当前审核节点
+        String currentTaskName = SpringUtil.getBean(IFlowableApi.class).getCurrentTaskName(dto.getProcInsId());
+        //当前节点为财务审批且通过
+        if ("财务审批".equals(currentTaskName) && "2".equals(dto.getType())){
+            //判断付款时间存不存在,不存在则添加
+            if (null == reimbursementInfo.getPaymentTime()){
+                info.setPaymentStatus("1");
+                info.setPaymentTime(new Date());
+            }
+        }
+
         infoMapper.updateById(info);
 
         infoMapper.updateById(info);
@@ -1304,4 +1319,28 @@ public class ReimbursementInfoService {
         return reimbursementInfoUpHi;
     }
 
+    /**
+     * 修改付款状态
+     * @param id
+     */
+    public String updatePaymentStatus(String id,String paymentStatus) {
+        //根据id查询报销信息
+        ReimbursementInfo reimbursementInfo = infoMapper.selectById(id);
+        //判断当前付款状态是付款还是撤回付款
+        if ("1".equals(paymentStatus)){
+            //判断付款时间是否存在
+            if (null != reimbursementInfo.getPaymentTime()){
+                return "该报销已经付款,请勿重复付款";
+            }else {
+                infoMapper.updatePaymentById(id,paymentStatus);
+            }
+            return "付款成功";
+        }else if ("0".equals(paymentStatus)){
+            infoMapper.updatePaymentById(id,paymentStatus);
+            return "付款撤回成功";
+        }else {
+            return "付款失败,请确认后付款";
+        }
+    }
+
 }

+ 4 - 0
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/service/dto/QueryListDto.java

@@ -62,4 +62,8 @@ public class QueryListDto extends BaseEntity {
      * 报销编号
      */
     private String no;
+    /**
+     * 付款状态
+     */
+    private String paymentStatus;
 }

+ 11 - 0
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/service/dto/RetureListDto.java

@@ -130,4 +130,15 @@ public class RetureListDto {
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
     private Date approvalTime;
+
+    /**
+     * 付款时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date paymentTime;
+    /**
+     * 付款状态  0:未付款  1:已付款
+     */
+    private String paymentStatus;
 }

+ 11 - 0
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/service/dto/SaveInfoDto.java

@@ -94,4 +94,15 @@ public class SaveInfoDto extends BaseEntity {
 
     private String reimbursementType; // 报销类型(0:普通报销;1:电子发票报销)
 
+    /**
+     * 付款时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date paymentTime;
+    /**
+     * 付款状态  0:未付款  1:已付款
+     */
+    private String paymentStatus;
+
 }

+ 12 - 0
jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/controller/CcpmReimbursementInfoController.java

@@ -268,4 +268,16 @@ public class CcpmReimbursementInfoController {
         return ResponseEntity.ok(list);
     }
 
+    /**
+     * 修改付款状态
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "修改付款状态")
+    @PostMapping("/updatePaymentStatus")
+    public String updatePaymentStatus(@RequestBody CcpmRetureListDto dto) {
+        String data=service.updatePaymentStatus(dto.getId(),dto.getPaymentStatus());
+        return data;
+    }
+
 }

+ 11 - 0
jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/domain/CcpmReimbursementInfo.java

@@ -81,4 +81,15 @@ public class CcpmReimbursementInfo extends BaseEntity {
     @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
     private Date approvalTime;
 
+    /**
+     * 付款时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date paymentTime;
+    /**
+     * 付款状态  0:未付款  1:已付款
+     */
+    private String paymentStatus;
+
 }

+ 2 - 0
jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/mapper/CcpmReimbursementInfoMapper.java

@@ -64,4 +64,6 @@ public interface CcpmReimbursementInfoMapper extends BaseMapper<CcpmReimbursemen
 
     @InterceptorIgnore(tenantLine = "true")
     List<CcpmReimbursementAmountInfoDTO> getInvoiceReimbursementAmountList(@Param("idList") List<String> idList);
+
+    void updatePaymentById(@Param("id") String id,@Param("paymentStatus") String paymentStatus);
 }

+ 12 - 0
jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/mapper/xml/CcpmReimbursementInfoMapper.xml

@@ -120,6 +120,8 @@
 			a.source_type,
 			a.purchase_id,
 			a.reimbursement_type,
+			a.payment_status,
+			a.payment_time,
 			pru.purchase_no,
                          a.update_time,
                          a.approval_time
@@ -683,4 +685,14 @@ WHERE
 	id = #{id}
 	AND del_flag = 0
 	</select>
+
+	<update id="updatePaymentById">
+		update
+			ccpm_reimbursement_info
+		set payment_status = #{paymentStatus},
+			payment_time = case
+			when #{paymentStatus} = '1' then NOW()
+			else null end
+		where id = #{id}
+	</update>
 </mapper>

+ 39 - 0
jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/service/CcpmReimbursementInfoService.java

@@ -14,6 +14,7 @@ import com.jeeplus.ccpm.approvalInfo.service.dto.*;
 import com.jeeplus.ccpm.approvalType.service.CcpmReimbursementTypeService;
 import com.jeeplus.common.TokenProvider;
 import com.jeeplus.core.query.QueryWrapperGenerator;
+import com.jeeplus.flowable.feign.IFlowableApi;
 import com.jeeplus.sys.domain.WorkAttachmentInfo;
 import com.jeeplus.sys.feign.IDictApi;
 import com.jeeplus.sys.feign.IOfficeApi;
@@ -198,6 +199,10 @@ public class CcpmReimbursementInfoService {
             queryWrapper.eq("a.reimbursement_type", dto.getReimbursementType());
         }
 
+        // 付款状态
+        if (com.jeeplus.utils.StringUtils.isNotEmpty(dto.getPaymentStatus())) {
+            queryWrapper.like("a.payment_status", dto.getPaymentStatus());
+        }
         /*//获取当前登录人信息
         UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken ( ));
         //获取当前登录人所属角色
@@ -397,6 +402,16 @@ public class CcpmReimbursementInfoService {
                 info.setApprovalTime(new Date());
             }
         }
+        //获取当前审核节点
+        String currentTaskName = SpringUtil.getBean(IFlowableApi.class).getCurrentTaskName(dto.getProcInsId());
+        //当前节点为财务审批且通过
+        if ("财务审批".equals(currentTaskName) && "2".equals(dto.getType())){
+            //判断付款时间存不存在,不存在则添加
+            if (null == ccpmReimbursementInfo.getPaymentTime()){
+                info.setPaymentStatus("1");
+                info.setPaymentTime(new Date());
+            }
+        }
         infoMapper.updateById(info);
         // 修改报销详情列表信息
         // 删除原有数据
@@ -844,4 +859,28 @@ public class CcpmReimbursementInfoService {
         return reimbursementInfoUpHi;
     }
 
+    /**
+     * 修改付款状态
+     * @param id
+     */
+    public String updatePaymentStatus(String id,String paymentStatus) {
+        //根据id查询报销信息
+        CcpmReimbursementInfo reimbursementInfo = infoMapper.selectById(id);
+        //判断当前付款状态是付款还是撤回付款
+        if ("1".equals(paymentStatus)){
+            //判断付款时间是否存在
+            if (null != reimbursementInfo.getPaymentTime()){
+                return "该报销已经付款,请勿重复付款";
+            }else {
+                infoMapper.updatePaymentById(id,paymentStatus);
+            }
+            return "付款成功";
+        }else if ("0".equals(paymentStatus)){
+            infoMapper.updatePaymentById(id,paymentStatus);
+            return "付款撤回成功";
+        }else {
+            return "付款失败,请确认后付款";
+        }
+    }
+
 }

+ 14 - 0
jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/service/dto/CcpmQueryListDto.java

@@ -1,7 +1,11 @@
 package com.jeeplus.ccpm.approvalInfo.service.dto;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.jeeplus.core.domain.BaseEntity;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
 
 @Data
 public class CcpmQueryListDto extends BaseEntity {
@@ -65,4 +69,14 @@ public class CcpmQueryListDto extends BaseEntity {
      * 报销编号
      */
     private String no;
+    /**
+     * 付款时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date paymentTime;
+    /**
+     * 付款状态  0:未付款  1:已付款
+     */
+    private String paymentStatus;
 }

+ 10 - 0
jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/service/dto/CcpmRetureListDto.java

@@ -131,4 +131,14 @@ public class CcpmRetureListDto {
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
     private Date approvalTime;
+    /**
+     * 付款时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date paymentTime;
+    /**
+     * 付款状态  0:未付款  1:已付款
+     */
+    private String paymentStatus;
 }

+ 10 - 0
jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/service/dto/CcpmSaveInfoDto.java

@@ -92,5 +92,15 @@ public class CcpmSaveInfoDto extends BaseEntity {
      * 报销类型
      */
     private String reimbursementType;
+    /**
+     * 付款时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date paymentTime;
+    /**
+     * 付款状态  0:未付款  1:已付款
+     */
+    private String paymentStatus;
 
 }

+ 12 - 0
jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/controller/ZsReimbursementInfoController.java

@@ -266,4 +266,16 @@ public class ZsReimbursementInfoController {
         return ResponseEntity.ok(list);
     }
 
+    /**
+     * 修改付款状态
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "修改付款状态")
+    @PostMapping("/updatePaymentStatus")
+    public String updatePaymentStatus(@RequestBody ZsRetureListDto dto) {
+        String data=service.updatePaymentStatus(dto.getId(),dto.getPaymentStatus());
+        return data;
+    }
+
 }

+ 9 - 0
jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/domain/ZsReimbursementInfo.java

@@ -81,4 +81,13 @@ public class ZsReimbursementInfo extends BaseEntity {
     @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
     private Date approvalTime;
 
+    /**
+     * 付款时间
+     */
+    private Date paymentTime;
+    /**
+     * 付款状态  0:未付款  1:已付款
+     */
+    private String paymentStatus;
+
 }

+ 2 - 0
jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/mapper/ZsReimbursementInfoMapper.java

@@ -64,4 +64,6 @@ public interface ZsReimbursementInfoMapper extends BaseMapper<ZsReimbursementInf
 
     @InterceptorIgnore(tenantLine = "true")
     List<ZsReimbursementAmountInfoDTO> getInvoiceReimbursementAmountList(@Param("idList") List<String> idList);
+
+    void updatePaymentById(@Param("id") String id,@Param("paymentStatus") String paymentStatus);
 }

+ 13 - 0
jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/mapper/xml/ZsReimbursementInfoMapper.xml

@@ -119,6 +119,8 @@
 			a.create_by_id AS create_id,
 			a.source_type,
 			a.purchase_id,
+			a.payment_status,
+			a.payment_time,
 			a.reimbursement_type,
 			pru.purchase_no,
                          a.update_time,
@@ -654,4 +656,15 @@
 			</foreach>
 		</where>
 	</select>
+
+	<update id="updatePaymentById">
+		update
+			zs_reimbursement_info
+		set payment_status = #{paymentStatus},
+		payment_time = case
+			when #{paymentStatus} = '1' then NOW()
+			else null end
+		where id = #{id}
+	</update>
+
 </mapper>

+ 39 - 1
jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/service/ZsReimbursementInfoService.java

@@ -16,6 +16,7 @@ import com.jeeplus.centrecareful.approvalInfo.service.dto.*;
 import com.jeeplus.core.query.QueryWrapperGenerator;
 //import com.jeeplus.finance.contractRegistration.service.ContractInfoService;
 //import com.jeeplus.finance.reimbursementApproval.approvalInfo.service.dto.QueryListDto;
+import com.jeeplus.flowable.feign.IFlowableApi;
 import com.jeeplus.sys.domain.Office;
 import com.jeeplus.sys.domain.WorkAttachmentInfo;
 import com.jeeplus.sys.feign.*;
@@ -193,7 +194,10 @@ public class ZsReimbursementInfoService {
         if (StringUtils.isNotEmpty(dto.getReimbursementType())) {
             queryWrapper.eq("a.reimbursement_type", dto.getReimbursementType());
         }
-
+        // 付款状态
+        if (com.jeeplus.utils.StringUtils.isNotEmpty(dto.getPaymentStatus())) {
+            queryWrapper.like("a.payment_status", dto.getPaymentStatus());
+        }
         /*//获取当前登录人信息
         UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken ( ));
         //获取当前登录人所属角色
@@ -393,6 +397,16 @@ public class ZsReimbursementInfoService {
                 info.setApprovalTime(new Date());
             }
         }
+        //获取当前审核节点
+        String currentTaskName = SpringUtil.getBean(IFlowableApi.class).getCurrentTaskName(dto.getProcInsId());
+        //当前节点为财务审批且通过
+        if ("财务审批".equals(currentTaskName) && "2".equals(dto.getType())){
+            //判断付款时间存不存在,不存在则添加
+            if (null == zsReimbursementInfo.getPaymentTime()){
+                info.setPaymentStatus("1");
+                info.setPaymentTime(new Date());
+            }
+        }
         infoMapper.updateById(info);
         // 修改报销详情列表信息
         // 删除原有数据
@@ -840,4 +854,28 @@ public class ZsReimbursementInfoService {
         return reimbursementInfoUpHi;
     }
 
+    /**
+     * 修改付款状态
+     * @param id
+     */
+    public String updatePaymentStatus(String id,String paymentStatus) {
+        //根据id查询报销信息
+        ZsReimbursementInfo reimbursementInfo = infoMapper.selectById(id);
+        //判断当前付款状态是付款还是撤回付款
+        if ("1".equals(paymentStatus)){
+            //判断付款时间是否存在
+            if (null != reimbursementInfo.getPaymentTime()){
+                return "该报销已经付款,请勿重复付款";
+            }else {
+                infoMapper.updatePaymentById(id,paymentStatus);
+            }
+            return "付款成功";
+        }else if ("0".equals(paymentStatus)){
+            infoMapper.updatePaymentById(id,paymentStatus);
+            return "付款撤回成功";
+        }else {
+            return "付款失败,请确认后付款";
+        }
+    }
+
 }

+ 4 - 0
jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/service/dto/ZsQueryListDto.java

@@ -64,4 +64,8 @@ public class ZsQueryListDto extends BaseEntity {
      * 报销编号
      */
     private String no;
+    /**
+     * 付款状态
+     */
+    private String paymentStatus;
 }

+ 11 - 0
jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/service/dto/ZsRetureListDto.java

@@ -132,4 +132,15 @@ public class ZsRetureListDto {
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
     private Date approvalTime;
+
+    /**
+     * 付款时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date paymentTime;
+    /**
+     * 付款状态  0:未付款  1:已付款
+     */
+    private String paymentStatus;
 }

+ 10 - 0
jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/service/dto/ZsSaveInfoDto.java

@@ -92,5 +92,15 @@ public class ZsSaveInfoDto extends BaseEntity {
      * 报销类型
      */
     private String reimbursementType;
+    /**
+     * 付款时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date paymentTime;
+    /**
+     * 付款状态  0:未付款  1:已付款
+     */
+    private String paymentStatus;
 
 }

+ 12 - 0
jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/controller/ConsultancyReimbursementInfoController.java

@@ -267,4 +267,16 @@ public class ConsultancyReimbursementInfoController {
         ConsultancySaveInfoDto list=service.findHiById(id);
         return ResponseEntity.ok(list);
     }
+
+    /**
+     * 修改付款状态
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "修改付款状态")
+    @PostMapping("/updatePaymentStatus")
+    public String updatePaymentStatus(@RequestBody ConsultancyRetureListDto dto) {
+        String data=service.updatePaymentStatus(dto.getId(),dto.getPaymentStatus());
+        return data;
+    }
 }

+ 11 - 0
jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/domain/ConsultancyReimbursementInfo.java

@@ -80,4 +80,15 @@ public class ConsultancyReimbursementInfo extends BaseEntity {
     @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
     private Date approvalTime;
 
+    /**
+     * 付款时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date paymentTime;
+    /**
+     * 付款状态  0:未付款  1:已付款
+     */
+    private String paymentStatus;
+
 }

+ 2 - 0
jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/mapper/ConsultancyReimbursementInfoMapper.java

@@ -64,4 +64,6 @@ public interface ConsultancyReimbursementInfoMapper extends BaseMapper<Consultan
 
     @InterceptorIgnore(tenantLine = "true")
     List<ConsultancyReimbursementAmountInfoDTO> getInvoiceReimbursementAmountList(@Param("idList") List<String> idList);
+
+    void updatePaymentById(@Param("id") String id,@Param("paymentStatus") String paymentStatus);
 }

+ 13 - 0
jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/mapper/xml/ConsultancyReimbursementInfoMapper.xml

@@ -120,6 +120,8 @@
 			a.source_type,
 			a.purchase_id,
 			a.reimbursement_type,
+			a.payment_status,
+			a.payment_time,
 			pru.purchase_no,
                          a.update_time,
                          a.approval_time
@@ -683,4 +685,15 @@ WHERE
 	id = #{id}
 	AND del_flag = 0
 	</select>
+
+	<update id="updatePaymentById">
+		update
+			consultancy_reimbursement_info
+		set payment_status = #{paymentStatus},
+			payment_time = case
+			when #{paymentStatus} = '1' then NOW()
+			else null end
+		where id = #{id}
+	</update>
+
 </mapper>

+ 39 - 0
jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/service/ConsultancyReimbursementInfoService.java

@@ -14,6 +14,7 @@ import com.jeeplus.consultancy.approvalInfo.mapper.*;
 import com.jeeplus.consultancy.approvalInfo.service.dto.*;
 import com.jeeplus.consultancy.approvalType.service.ConsultancyReimbursementTypeService;
 import com.jeeplus.core.query.QueryWrapperGenerator;
+import com.jeeplus.flowable.feign.IFlowableApi;
 import com.jeeplus.sys.domain.WorkAttachmentInfo;
 import com.jeeplus.sys.feign.IDictApi;
 import com.jeeplus.sys.feign.IOfficeApi;
@@ -197,6 +198,10 @@ public class ConsultancyReimbursementInfoService {
         if (StringUtils.isNotEmpty(dto.getReimbursementType())) {
             queryWrapper.eq("a.reimbursement_type", dto.getReimbursementType());
         }
+        // 付款状态
+        if (com.jeeplus.utils.StringUtils.isNotEmpty(dto.getPaymentStatus())) {
+            queryWrapper.like("a.payment_status", dto.getPaymentStatus());
+        }
 
         /*//获取当前登录人信息
         UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken ( ));
@@ -397,6 +402,16 @@ public class ConsultancyReimbursementInfoService {
                 info.setApprovalTime(new Date());
             }
         }
+        //获取当前审核节点
+        String currentTaskName = SpringUtil.getBean(IFlowableApi.class).getCurrentTaskName(dto.getProcInsId());
+        //当前节点为财务审批且通过
+        if ("财务审批".equals(currentTaskName) && "2".equals(dto.getType())){
+            //判断付款时间存不存在,不存在则添加
+            if (null == consultancyReimbursementInfo.getPaymentTime()){
+                info.setPaymentStatus("1");
+                info.setPaymentTime(new Date());
+            }
+        }
         infoMapper.updateById(info);
         // 修改报销详情列表信息
         // 删除原有数据
@@ -843,4 +858,28 @@ public class ConsultancyReimbursementInfoService {
         }
         return reimbursementInfoUpHi;
     }
+
+    /**
+     * 修改付款状态
+     * @param id
+     */
+    public String updatePaymentStatus(String id,String paymentStatus) {
+        //根据id查询报销信息
+        ConsultancyReimbursementInfo reimbursementInfo = infoMapper.selectById(id);
+        //判断当前付款状态是付款还是撤回付款
+        if ("1".equals(paymentStatus)){
+            //判断付款时间是否存在
+            if (null != reimbursementInfo.getPaymentTime()){
+                return "该报销已经付款,请勿重复付款";
+            }else {
+                infoMapper.updatePaymentById(id,paymentStatus);
+            }
+            return "付款成功";
+        }else if ("0".equals(paymentStatus)){
+            infoMapper.updatePaymentById(id,paymentStatus);
+            return "付款撤回成功";
+        }else {
+            return "付款失败,请确认后付款";
+        }
+    }
 }

+ 15 - 0
jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/service/dto/ConsultancyQueryListDto.java

@@ -1,7 +1,11 @@
 package com.jeeplus.consultancy.approvalInfo.service.dto;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.jeeplus.core.domain.BaseEntity;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
 
 @Data
 public class ConsultancyQueryListDto extends BaseEntity {
@@ -65,4 +69,15 @@ public class ConsultancyQueryListDto extends BaseEntity {
      * 报销编号
      */
     private String no;
+
+    /**
+     * 付款时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date paymentTime;
+    /**
+     * 付款状态  0:未付款  1:已付款
+     */
+    private String paymentStatus;
 }

+ 11 - 0
jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/service/dto/ConsultancyRetureListDto.java

@@ -131,4 +131,15 @@ public class ConsultancyRetureListDto {
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
     private Date approvalTime;
+
+    /**
+     * 付款时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date paymentTime;
+    /**
+     * 付款状态  0:未付款  1:已付款
+     */
+    private String paymentStatus;
 }

+ 11 - 0
jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/service/dto/ConsultancySaveInfoDto.java

@@ -93,4 +93,15 @@ public class ConsultancySaveInfoDto extends BaseEntity {
      */
     private String reimbursementType;
 
+    /**
+     * 付款时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date paymentTime;
+    /**
+     * 付款状态  0:未付款  1:已付款
+     */
+    private String paymentStatus;
+
 }

+ 12 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/controller/CwReimbursementInfoController.java

@@ -406,4 +406,16 @@ public class CwReimbursementInfoController {
         SaveInfoDto list=service.findHiById(id);
         return ResponseEntity.ok(list);
     }
+
+    /**
+     * 修改付款状态
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "修改付款状态")
+    @PostMapping("/updatePaymentStatus")
+    public String updatePaymentStatus(@RequestBody RetureListDto dto) {
+        String data=service.updatePaymentStatus(dto.getId(),dto.getPaymentStatus());
+        return data;
+    }
 }

+ 9 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/domain/CwReimbursementInfo.java

@@ -80,4 +80,13 @@ public class CwReimbursementInfo extends BaseEntity {
     private Date approvalTime;
 
     private String businessFlag;
+
+    /**
+     * 付款时间
+     */
+    private Date paymentTime;
+    /**
+     * 付款状态  0:未付款  1:已付款
+     */
+    private String paymentStatus;
 }

+ 2 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/mapper/CwReimbursementInfoMapper.java

@@ -73,4 +73,6 @@ public interface CwReimbursementInfoMapper extends BaseMapper<CwReimbursementInf
     String findUserById(@Param("projectUser") String projectUser);
     @InterceptorIgnore(tenantLine = "true")
     String findOfficeById(@Param("projectOffice")String projectOffice);
+
+    void updatePaymentById(@Param("id") String id,@Param("paymentStatus") String paymentStatus);
 }

+ 12 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/mapper/xml/CwReimbursementInfoMapper.xml

@@ -78,6 +78,8 @@
 			a.create_by_id as create_id,
 			a.source_type,
 			a.purchase_id,
+			a.payment_time,
+			a.payment_status,
 			b.user_id as projectUser,
 			b.dept_id as projectOffice,
 			b3.user_id as reportUser,
@@ -654,4 +656,14 @@ select
 	<select id="findOfficeById" resultType="string">
 		select name from sys_office where id = #{projectOffice}
 	</select>
+
+	<update id="updatePaymentById">
+		update
+			cw_reimbursement_info
+		set payment_status = #{paymentStatus},
+		payment_time = case
+			when #{paymentStatus} = '1' then NOW()
+			else null end
+		where id = #{id}
+	</update>
 </mapper>

+ 41 - 1
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/service/CwReimbursementInfoService.java

@@ -20,6 +20,7 @@ import com.jeeplus.finance.reimbursementApproval.approvalInfo.service.dto.*;
 //import com.jeeplus.pubmodules.oss.domain.WorkAttachment;
 //import com.jeeplus.pubmodules.oss.mapper.OssServiceMapper;
 //import com.jeeplus.pubmodules.serialNumTpl.service.SerialnumTplService;
+import com.jeeplus.flowable.feign.IFlowableApi;
 import com.jeeplus.sys.domain.Office;
 import com.jeeplus.sys.domain.WorkAttachmentInfo;
 import com.jeeplus.sys.feign.*;
@@ -202,7 +203,10 @@ public class CwReimbursementInfoService {
         if (com.jeeplus.utils.StringUtils.isNotEmpty(dto.getNo())) {
             queryWrapper.like("a.no", dto.getNo());
         }
-
+        // 付款状态
+        if (com.jeeplus.utils.StringUtils.isNotEmpty(dto.getPaymentStatus())) {
+            queryWrapper.like("a.payment_status", dto.getPaymentStatus());
+        }
         // 如果当前用户是部门主任,则可以查看部门所有的项目、自己创建的项目以及所属项目组的项目
         // 如果当前用户是员工,则可以查看自己创建的项目以及所属项目组的项目
         StringBuilder officeIds = new StringBuilder();
@@ -633,7 +637,19 @@ public class CwReimbursementInfoService {
                 info.setApprovalTime(new Date());
             }
         }
+        //获取当前审核节点
+        String currentTaskName = SpringUtil.getBean(IFlowableApi.class).getCurrentTaskName(dto.getProcInsId());
+        //当前节点为财务审批且通过
+        if ("财务审批".equals(currentTaskName) && "2".equals(dto.getType())){
+            //判断付款时间存不存在,不存在则添加
+            if (null == cwReimbursementInfo.getPaymentTime()){
+                info.setPaymentStatus("1");
+                info.setPaymentTime(new Date());
+            }
+        }
+
         infoMapper.updateById(info);
+
         // 修改报销详情列表信息
         // 删除原有数据
         LambdaQueryWrapper<CwReimbursementDetailInfo> detailWrapper = new LambdaQueryWrapper<>();
@@ -1148,4 +1164,28 @@ public class CwReimbursementInfoService {
         }
         return reimbursementInfoUpHi;
     }
+
+    /**
+     * 修改付款状态
+     * @param id
+     */
+    public String updatePaymentStatus(String id,String paymentStatus) {
+        //根据id查询报销信息
+        CwReimbursementInfo reimbursementInfo = infoMapper.getById(id);
+        //判断当前付款状态是付款还是撤回付款
+        if ("1".equals(paymentStatus)){
+            //判断付款时间是否存在
+            if (null != reimbursementInfo.getPaymentTime()){
+                return "该报销已经付款,请勿重复付款";
+            }else {
+                infoMapper.updatePaymentById(id,paymentStatus);
+            }
+            return "付款成功";
+        }else if ("0".equals(paymentStatus)){
+            infoMapper.updatePaymentById(id,paymentStatus);
+            return "付款撤回成功";
+        }else {
+            return "付款失败,请确认后付款";
+        }
+    }
 }

+ 4 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/service/dto/QueryListDto.java

@@ -62,4 +62,8 @@ public class QueryListDto extends BaseEntity {
      * 报销编号
      */
     private String no;
+    /**
+     * 付款状态
+     */
+    private String paymentStatus;
 }

+ 12 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/service/dto/RetureListDto.java

@@ -141,4 +141,16 @@ public class RetureListDto {
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
     private Date approvalTime;
+
+    /**
+     * 付款时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date paymentTime;
+    /**
+     * 付款状态  0:未付款  1:已付款
+     */
+    private String paymentStatus;
+
 }

+ 11 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/service/dto/SaveInfoDto.java

@@ -96,4 +96,15 @@ public class SaveInfoDto extends BaseEntity {
     //区分苏州报销和会计报销(0:苏州 1:会计)
     private String businessFlag;
 
+    /**
+     * 付款时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date paymentTime;
+    /**
+     * 付款状态  0:未付款  1:已付款
+     */
+    private String paymentStatus;
+
 }