Kaynağa Gözat

修改了打款的列表

wxf 2 yıl önce
ebeveyn
işleme
a3b1b770df

+ 1 - 0
hx-account/src/main/java/com/fjhx/account/entity/account/enums/AccountRequestFundsStatusEnum.java

@@ -5,6 +5,7 @@ import org.apache.commons.collections4.MapUtils;
 import java.util.LinkedHashMap;
 import java.util.Map;
 
+//请款审批状态
 public enum AccountRequestFundsStatusEnum {
     UNDER_REVIEW("10", "审批中"),
     REJECT("20", "驳回"),

+ 47 - 0
hx-account/src/main/java/com/fjhx/account/entity/account/enums/PaymentStatusEnum.java

@@ -0,0 +1,47 @@
+package com.fjhx.account.entity.account.enums;
+
+import org.apache.commons.collections4.MapUtils;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+//打款状态
+public enum PaymentStatusEnum {
+    UNDER_REVIEW("10", "未打款"),
+    REJECT("20", "已打款"),
+
+    ;
+    private String key;
+
+    private String value;
+
+    private static Map<String, String> map = new LinkedHashMap<>();
+
+    PaymentStatusEnum(String key, String value) {
+        this.key = key;
+        this.value = value;
+    }
+
+    /**
+     * 获取枚举map
+     *
+     * @return
+     */
+    public static Map<String, String> getMap() {
+        if (MapUtils.isNotEmpty(map)) {
+            return map;
+        }
+        for (PaymentStatusEnum ms : values()) {
+            map.put(ms.key, ms.value);
+        }
+        return map;
+    }
+
+    public String getKey() {
+        return key;
+    }
+
+    public String getValue() {
+        return value;
+    }
+}

+ 47 - 0
hx-account/src/main/java/com/fjhx/account/entity/account/enums/PaymentTypeEnum.java

@@ -0,0 +1,47 @@
+package com.fjhx.account.entity.account.enums;
+
+import org.apache.commons.collections4.MapUtils;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+//打款类型
+public enum PaymentTypeEnum {
+    UNDER_REVIEW("10", "请款"),
+    REJECT("20", "采购付款"),
+
+    ;
+    private String key;
+
+    private String value;
+
+    private static Map<String, String> map = new LinkedHashMap<>();
+
+    PaymentTypeEnum(String key, String value) {
+        this.key = key;
+        this.value = value;
+    }
+
+    /**
+     * 获取枚举map
+     *
+     * @return
+     */
+    public static Map<String, String> getMap() {
+        if (MapUtils.isNotEmpty(map)) {
+            return map;
+        }
+        for (PaymentTypeEnum ms : values()) {
+            map.put(ms.key, ms.value);
+        }
+        return map;
+    }
+
+    public String getKey() {
+        return key;
+    }
+
+    public String getValue() {
+        return value;
+    }
+}

+ 27 - 2
hx-account/src/main/java/com/fjhx/account/entity/account/po/AccountPayment.java

@@ -26,9 +26,19 @@ public class AccountPayment extends BasePo {
     private Long accountManagementId;
 
     /**
-     * 请款表ID
+     * 业务表ID
      */
-    private Long accountRequestFundsId;
+    private Long businessId;
+
+    /**
+     * 归属部门ID
+     */
+    private Long departmentId;
+
+    /**
+     * 归属公司ID
+     */
+    private Long corporationId;
 
     /**
      * 打款时间
@@ -36,6 +46,11 @@ public class AccountPayment extends BasePo {
     private Date expensesTime;
 
     /**
+     * 用款时间
+     */
+    private Date paymentTime;
+
+    /**
      * 币种(字典account_currency)
      */
     private String currency;
@@ -51,8 +66,18 @@ public class AccountPayment extends BasePo {
     private String status;
 
     /**
+     * 付款类型(10:请款  20 采购付款) 字典payment_type
+     */
+    private String type;
+
+    /**
      * 摘要
      */
     private String remark;
 
+    /**
+     * 款项说明
+     */
+    private String paymentRemark;
+
 }

+ 36 - 1
hx-account/src/main/java/com/fjhx/account/flow/AccountRequestFundsFlow.java

@@ -1,35 +1,48 @@
 package com.fjhx.account.flow;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.fjhx.account.entity.account.dto.AccountPaymentDto;
 import com.fjhx.account.entity.account.dto.AccountRequestFundsDto;
 import com.fjhx.account.entity.account.enums.AccountRequestFundsStatusEnum;
+import com.fjhx.account.entity.account.enums.PaymentStatusEnum;
+import com.fjhx.account.entity.account.enums.PaymentTypeEnum;
+import com.fjhx.account.entity.account.po.AccountPayment;
 import com.fjhx.account.entity.account.po.AccountRequestFunds;
 import com.fjhx.account.entity.account.po.AccountRequestFundsDetail;
+import com.fjhx.account.entity.account.vo.AccountPaymentVo;
+import com.fjhx.account.service.account.AccountPaymentService;
 import com.fjhx.account.service.account.AccountRequestFundsDetailService;
 import com.fjhx.account.service.account.AccountRequestFundsService;
 import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.file.utils.ObsFileUtil;
 import com.fjhx.flow.core.FlowDelegate;
 import com.obs.services.internal.ServiceException;
+import org.checkerframework.checker.units.qual.A;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
 import oshi.util.FileUtil;
 
 import java.util.Date;
 import java.util.List;
 
 /**
- * 采购流程
+ *  请款流程
  * @Author:caozj
  * @DATE:2023/4/3 17:38
  */
 @DS(SourceConstant.ACCOUNT)
 @Component
 public class AccountRequestFundsFlow extends FlowDelegate {
+    @Autowired
+    private AccountPaymentService accountPaymentService;
 
     @Override
     public String getFlowKey() {
@@ -45,12 +58,14 @@ public class AccountRequestFundsFlow extends FlowDelegate {
      */
     @Override
     public Long start(Long flowId, JSONObject submitData) {
+//        DynamicDataSourceContextHolder.push(SourceConstant.ACCOUNT);
         AccountRequestFundsService accountRequestFundsService = SpringUtil.getBean(AccountRequestFundsService.class);
         AccountRequestFundsDetailService accountRequestFundsDetailService = SpringUtil.getBean(AccountRequestFundsDetailService.class);
         AccountRequestFundsDto accountRequestFundsDto = submitData.toJavaObject( AccountRequestFundsDto.class);
         accountRequestFundsDto.setStatus(AccountRequestFundsStatusEnum.UNDER_REVIEW.getKey());
         //添加请款表的信息
         accountRequestFundsService.save(accountRequestFundsDto);
+
         //获取请款详情表的详细信息
         List<AccountRequestFundsDetail> accountRequestFundsDetailList = accountRequestFundsDto.getAccountRequestFundsDetailList();
         if(CollectionUtils.isNotEmpty(accountRequestFundsDetailList)){
@@ -59,9 +74,14 @@ public class AccountRequestFundsFlow extends FlowDelegate {
             //添加请款详情表的信息
             accountRequestFundsDetailService.saveBatch(accountRequestFundsDetailList);
         }
+        //删除流程
+        ObsFileUtil.removeFile(accountRequestFundsDto.getId());
         //添加附件信息
         ObsFileUtil.saveFile(accountRequestFundsDto.getFileList(),accountRequestFundsDto.getId());
 
+
+        //添加打款的数据
+        addPayment(accountRequestFundsDto);
         return accountRequestFundsDto.getId();
     }
 
@@ -83,4 +103,19 @@ public class AccountRequestFundsFlow extends FlowDelegate {
         accountRequestFunds.setStatus(AccountRequestFundsStatusEnum.PASS.getKey());
         accountRequestFundsService.updateById(accountRequestFunds);
     }
+
+    /**
+     * 添加打款表的数据
+     */
+    private void addPayment(AccountRequestFundsDto accountRequestFundsDto){
+        AccountPaymentDto accountPayment = new AccountPaymentDto();
+        accountPayment.setBusinessId(accountRequestFundsDto.getId());
+        accountPayment.setType(PaymentTypeEnum.UNDER_REVIEW.getKey());
+        accountPayment.setStatus(PaymentStatusEnum.UNDER_REVIEW.getKey());
+        accountPayment.setPaymentTime(accountPayment.getPaymentTime());
+        accountPayment.setPaymentRemark(accountRequestFundsDto.getPaymentRemarks());
+        accountPayment.setDepartmentId(accountRequestFundsDto.getDepartmentId());
+        accountPayment.setCorporationId(accountRequestFundsDto.getCorporationId());
+        accountPaymentService.save(accountPayment);
+    }
 }

+ 2 - 2
hx-account/src/main/java/com/fjhx/account/service/account/AccountRemainderService.java

@@ -13,7 +13,7 @@ import com.fjhx.account.entity.account.dto.AccountRemainderDto;
  * 账户-余额表 服务类
  * </p>
  *
- * @author 
+ * @author
  * @since 2023-04-06
  */
 public interface AccountRemainderService extends BaseService<AccountRemainder> {
@@ -31,7 +31,7 @@ public interface AccountRemainderService extends BaseService<AccountRemainder> {
     /**
      * 账户-余额表新增
      */
-    void add(AccountRemainderDto accountRemainderDto);
+    void add(AccountRemainder accountRemainderDto);
 
     /**
      * 账户-余额表编辑

+ 2 - 2
hx-account/src/main/java/com/fjhx/account/service/account/AccountRunningWaterService.java

@@ -13,7 +13,7 @@ import com.fjhx.account.entity.account.dto.AccountRunningWaterDto;
  * 账户资金流水表 服务类
  * </p>
  *
- * @author 
+ * @author
  * @since 2023-04-06
  */
 public interface AccountRunningWaterService extends BaseService<AccountRunningWater> {
@@ -36,7 +36,7 @@ public interface AccountRunningWaterService extends BaseService<AccountRunningWa
     /**
      * 账户资金流水表编辑
      */
-    void edit(AccountRunningWaterDto accountRunningWaterDto);
+    void edit(AccountRunningWater accountRunningWater);
 
     /**
      * 账户资金流水表删除

+ 10 - 1
hx-account/src/main/java/com/fjhx/account/service/account/impl/AccountManagementServiceImpl.java

@@ -84,6 +84,7 @@ public class AccountManagementServiceImpl extends ServiceImpl<AccountManagementM
         }
         //添加账户管理表的信息
         this.save(accountManagementDto);
+        //添加账户-余额表的信息
         saveAccountRemainder(accountManagementDto);
     }
 
@@ -92,6 +93,13 @@ public class AccountManagementServiceImpl extends ServiceImpl<AccountManagementM
      */
     @Override
     public void edit(AccountManagementDto accountManagementDto) {
+        //判断账户的别名是否已存在
+        List<AccountManagement> accountManagements = this.list(Wrappers.<AccountManagement>lambdaQuery()
+                .eq(AccountManagement::getAlias, accountManagementDto.getAlias()));
+        if (accountManagements.size()>0){
+            throw new ServiceException("数据错误:账户别名已存在请重新创建");
+        }
+
         this.updateById(accountManagementDto);
         //删除账户-余额表的信息
         accountRemainderService.remove(Wrappers.<AccountRemainder>lambdaQuery()
@@ -120,7 +128,8 @@ public class AccountManagementServiceImpl extends ServiceImpl<AccountManagementM
         List<AccountRemainder> accountRemainderList = accountManagementDto.getAccountRemainderList();
         accountRemainderList.forEach(accountRemainder -> {
             accountRemainder.setAccountManagementId(accountManagementDto.getId());
+            accountRemainderService.add(accountRemainder);
         });
-        accountRemainderService.saveBatch(accountRemainderList);
+
     }
 }

+ 11 - 5
hx-account/src/main/java/com/fjhx/account/service/account/impl/AccountPaymentServiceImpl.java

@@ -62,11 +62,9 @@ public class AccountPaymentServiceImpl extends ServiceImpl<AccountPaymentMapper,
     @Override
     public Page<AccountRequestFundsVo> getPage(AccountRequestFundsSelectDto dto) {
         QueryWrapper<Object> wrapper = Wrappers.query();
-        wrapper.eq(ObjectUtil.isNotEmpty(dto.getType()),"arf.type",dto.getType());
-        wrapper.eq(ObjectUtil.isNotEmpty(dto.getStatus()),"arf.status",dto.getStatus());
         wrapper.eq(ObjectUtil.isNotEmpty(dto.getPaymentStatus()),"ap.status",dto.getPaymentStatus());
-        wrapper.like(ObjectUtil.isNotEmpty(dto.getKeyword()),"arf.payment_remarks",dto.getKeyword());
-        wrapper.orderByDesc("ap.status","arf.payment_time","arf.create_time");
+        wrapper.like(ObjectUtil.isNotEmpty(dto.getKeyword()),"ap.payment_remarks",dto.getKeyword());
+        wrapper.orderByDesc("ap.status","ap.payment_time","ap.create_time");
         Page<AccountRequestFundsVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
 
         //切换数据源
@@ -132,7 +130,15 @@ public class AccountPaymentServiceImpl extends ServiceImpl<AccountPaymentMapper,
         if (accountRemainder.getRemainder().compareTo(accountPaymentDto.getAmount()) == -1){
             throw new ServiceException("账户余额不足");
         }
-        this.save(accountPaymentDto);
+
+        if (ObjectUtil.isNotEmpty(accountPaymentDto.getId())){
+            this.save(accountPaymentDto);
+        }else {
+            this.updateById(accountPaymentDto);
+        }
+
+        //删除附件
+        ObsFileUtil.removeFile(accountPaymentDto.getId());
 
         //添加附件信息
         ObsFileUtil.saveFile(accountPaymentDto.getFileList(),accountPaymentDto.getId());

+ 11 - 3
hx-account/src/main/java/com/fjhx/account/service/account/impl/AccountRemainderServiceImpl.java

@@ -1,5 +1,6 @@
 package com.fjhx.account.service.account.impl;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.fjhx.account.entity.account.po.AccountRemainder;
 import com.fjhx.account.mapper.account.AccountRemainderMapper;
 import com.fjhx.account.service.account.AccountRemainderService;
@@ -18,7 +19,7 @@ import cn.hutool.core.bean.BeanUtil;
  * 账户-余额表 服务实现类
  * </p>
  *
- * @author 
+ * @author
  * @since 2023-04-06
  */
 @Service
@@ -40,8 +41,15 @@ public class AccountRemainderServiceImpl extends ServiceImpl<AccountRemainderMap
     }
 
     @Override
-    public void add(AccountRemainderDto accountRemainderDto) {
-        this.save(accountRemainderDto);
+    public void add(AccountRemainder accountRemainderDto) {
+        synchronized (this){
+            if (ObjectUtil.isNotEmpty(accountRemainderDto.getId())){
+                this.updateById(accountRemainderDto);
+            }else {
+                this.save(accountRemainderDto);
+            }
+        }
+
     }
 
     @Override

+ 11 - 6
hx-account/src/main/java/com/fjhx/account/service/account/impl/AccountRunningWaterServiceImpl.java

@@ -31,11 +31,11 @@ public class AccountRunningWaterServiceImpl extends ServiceImpl<AccountRunningWa
     @Override
     public Page<AccountRunningWaterVo> getPage(AccountRunningWaterSelectDto dto) {
         QueryWrapper<Object> wrapper = Wrappers.query();
-        wrapper.eq(ObjectUtil.isNotEmpty(dto.getAccountManagementId()),"arw.account_management_id",dto.getAccountManagementId());
-        wrapper.eq(ObjectUtil.isNotEmpty(dto.getStatus()),"arw.status",dto.getStatus());
-        wrapper.eq(ObjectUtil.isNotEmpty(dto.getCurrency()),"arw.currency",dto.getCurrency());
-        if (StringUtils.isNotEmpty(dto.getKeyword())){
-            wrapper.and(wrapper1 -> wrapper1.like("arw.remarks",dto.getKeyword()).or().like("am.name",dto.getKeyword()));
+        wrapper.eq(ObjectUtil.isNotEmpty(dto.getAccountManagementId()), "arw.account_management_id", dto.getAccountManagementId());
+        wrapper.eq(ObjectUtil.isNotEmpty(dto.getStatus()), "arw.status", dto.getStatus());
+        wrapper.eq(ObjectUtil.isNotEmpty(dto.getCurrency()), "arw.currency", dto.getCurrency());
+        if (StringUtils.isNotEmpty(dto.getKeyword())) {
+            wrapper.and(wrapper1 -> wrapper1.like("arw.remarks", dto.getKeyword()).or().like("am.name", dto.getKeyword()));
         }
         Page<AccountRunningWaterVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         return page;
@@ -52,8 +52,13 @@ public class AccountRunningWaterServiceImpl extends ServiceImpl<AccountRunningWa
         this.save(accountRunningWaterDto);
     }
 
+    /**
+     * 修改余额表的信息
+     *
+     * @param accountRunningWaterDto
+     */
     @Override
-    public void edit(AccountRunningWaterDto accountRunningWaterDto) {
+    public void edit(AccountRunningWater accountRunningWaterDto) {
         this.updateById(accountRunningWaterDto);
     }
 

+ 27 - 25
hx-account/src/main/resources/mapper/account/AccountPaymentMapper.xml

@@ -3,47 +3,49 @@
 <mapper namespace="com.fjhx.account.mapper.account.AccountPaymentMapper">
     <select id="getPage" resultType="com.fjhx.account.entity.account.vo.AccountRequestFundsVo">
         select
-            arf.id,
-            arf.department_id,
-            arf.corporation_id,
-            arf.account_management_id,
-            arf.payment_time,
-            arf.payment_remarks,
-            arf.currency,
-            arf.status,
-            arf.type,
-            arf.total,
-            arf.quantity,
-            arf.payment_method,
-            arf.name,
-            arf.opening_bank,
-            arf.account_opening,
-            arf.interbank_number,
-            arf.remarks,
-            arf.create_user,
-            arf.create_time,
-            arf.update_user,
-            arf.update_time,
-            ap.`status` accountPaymentStatus,
-            ap.amount accountPaymentAmount
-        from account_request_funds arf
-                 left join account_payment ap on arf.id = ap.account_request_funds_id
+            ap.id,
+            ap.tenant_id,
+            ap.payment_remark,
+            ap.account_management_id,
+            ap.department_id,
+            ap.corporation_id,
+            ap.business_id,
+            ap.expenses_time,
+            ap.payment_time,
+            ap.currency,
+            ap.amount,
+            ap.status,
+            ap.type,
+            ap.remark,
+            ap.create_user,
+            ap.create_time,
+            ap.update_user,
+            ap.update_time
+        from account_payment ap
             ${ew.customSqlSegment}
     </select>
     <select id="detail" resultType="com.fjhx.account.entity.account.po.AccountPayment">
         select
             ap.id,
+            ap.tenant_id,
             ap.account_management_id,
+            ap.department_id,
+            ap.corporation_id,
+            ap.business_id,
             ap.expenses_time,
             ap.currency,
+            ap.payment_time,
             ap.amount,
             ap.status,
+            ap.type,
             ap.remark,
             ap.create_user,
             ap.create_time,
             ap.update_user,
+            ap.payment_remark,
             ap.update_time
         from account_payment ap
+           ap.id = #{id}
     </select>
 
 </mapper>

+ 1 - 1
hx-account/src/main/resources/mapper/account/AccountRequestFundsMapper.xml

@@ -26,7 +26,7 @@
             arf.update_time,
             ap.`status` accountPaymentStatus
         from account_request_funds arf
-                 left join account_payment ap on arf.id = ap.account_request_funds_id
+                 left join account_payment ap on arf.id = ap.business_id
             ${ew.customSqlSegment}
     </select>