Forráskód Böngészése

回款登记问题处理

yzc 1 éve
szülő
commit
c33213793c

+ 2 - 0
hx-account/src/main/java/com/fjhx/account/entity/account/po/AccountRunningWater.java

@@ -152,4 +152,6 @@ public class AccountRunningWater extends BasePo {
      */
     private BigDecimal accountRemainder;
 
+    private Long claimId;
+
 }

+ 5 - 1
hx-common/src/main/java/com/fjhx/common/entity/claim/dto/ClaimSelectDto.java

@@ -7,11 +7,15 @@ import lombok.Setter;
 /**
  * 到账认领列表查询入参实体
  *
- * @author 
+ * @author
  * @since 2023-04-18
  */
 @Getter
 @Setter
 public class ClaimSelectDto extends BaseSelectDto {
 
+    private Integer isClaim;
+    private Integer confirmStatus;
+
+
 }

+ 19 - 3
hx-common/src/main/java/com/fjhx/common/entity/claim/po/Claim.java

@@ -2,7 +2,8 @@ package com.fjhx.common.entity.claim.po;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.fjhx.common.entity.claim.ClaimContract;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fjhx.common.entity.claim.vo.ClaimContractVo;
 import com.fjhx.file.entity.ObsFile;
 import com.ruoyi.common.core.domain.BasePo;
 import lombok.Getter;
@@ -17,7 +18,7 @@ import java.util.List;
  * 到账认领
  * </p>
  *
- * @author 
+ * @author
  * @since 2023-04-18
  */
 @Getter
@@ -69,13 +70,28 @@ public class Claim extends BasePo {
     private Date claimTime;
 
     private Integer confirmStatus;
+
+
+    private Long companyId;
+    private Long deptId;
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    private Date transactionTime;
+    private String serialNumber;
+    private String name;
+    private String openingBank;
+    private String accountOpening;
+    private String myAccountName;
+    private String myAccountOpening;
+    private String myOpeningBank;
+    private String confirmRemark;
+
     //=========================
 
     /**
      * 到账认领合同列表
      */
     @TableField(exist = false)
-    private List<ClaimContract> claimContractList;
+    private List<ClaimContractVo> claimContractList;
 
     /**
      * 附件列表

+ 6 - 0
hx-common/src/main/java/com/fjhx/common/entity/claim/vo/ClaimVo.java

@@ -21,4 +21,10 @@ public class ClaimVo extends Claim {
      * 认领合同列表
      */
     List<ClaimContract> claimContracts;
+
+    private String registerUserName;
+    private String createUserName;
+    private String companyName;
+    private String deptName;
+
 }

+ 4 - 7
hx-sale/src/main/java/com/fjhx/sale/controller/claim/ClaimController.java

@@ -1,9 +1,6 @@
 package com.fjhx.sale.controller.claim;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.account.entity.account.dto.AccountRunningWaterDto;
-import com.fjhx.account.entity.account.dto.AccountRunningWaterSelectDto;
-import com.fjhx.account.entity.account.vo.AccountRunningWaterVo;
 import com.fjhx.common.entity.claim.dto.ClaimDto;
 import com.fjhx.common.entity.claim.dto.ClaimSelectDto;
 import com.fjhx.common.entity.claim.po.Claim;
@@ -103,7 +100,7 @@ public class ClaimController {
      * 回款登记
      */
     @PostMapping("/addClaimInfo")
-    public void addClaimInfo(@RequestBody AccountRunningWaterDto dto) {
+    public void addClaimInfo(@RequestBody ClaimDto dto) {
         claimService.addClaimInfo(dto);
     }
 
@@ -111,7 +108,7 @@ public class ClaimController {
      * 回款登记 分页
      */
     @PostMapping("/claimInfoPage")
-    public Page<AccountRunningWaterVo> claimInfoPage(@RequestBody AccountRunningWaterSelectDto dto) {
+    public Page<ClaimVo> claimInfoPage(@RequestBody ClaimSelectDto dto) {
         return claimService.claimInfoPage(dto);
     }
 
@@ -119,7 +116,7 @@ public class ClaimController {
      * 回款确认 分页
      */
     @PostMapping("/claimInfoConfirmPage")
-    public Page<AccountRunningWaterVo> claimInfoConfirmPage(@RequestBody AccountRunningWaterSelectDto dto) {
+    public Page<ClaimVo> claimInfoConfirmPage(@RequestBody ClaimSelectDto dto) {
         return claimService.claimInfoConfirmPage(dto);
     }
 
@@ -127,7 +124,7 @@ public class ClaimController {
      * 回款确认
      */
     @PostMapping("/claimConfirm")
-    void claimConfirm(@RequestBody AccountRunningWaterDto dto) {
+    void claimConfirm(@RequestBody ClaimDto dto) {
         claimService.claimConfirm(dto);
     }
 

+ 1 - 3
hx-sale/src/main/java/com/fjhx/sale/mapper/claim/ClaimMapper.java

@@ -3,8 +3,6 @@ package com.fjhx.sale.mapper.claim;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.account.entity.account.po.AccountRunningWater;
-import com.fjhx.account.entity.account.vo.AccountRunningWaterVo;
 import com.fjhx.common.entity.claim.po.Claim;
 import com.fjhx.common.entity.claim.vo.ClaimContractVo;
 import com.fjhx.common.entity.claim.vo.ClaimVo;
@@ -34,5 +32,5 @@ public interface ClaimMapper extends BaseMapper<Claim> {
      */
     List<ClaimContractVo> claimRecord(@Param("ew") LambdaQueryWrapper<Claim> eq);
 
-    Page<AccountRunningWaterVo> claimInfoPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<AccountRunningWater> wrapper);
+    Page<ClaimVo> claimInfoPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<Claim> wrapper);
 }

+ 4 - 7
hx-sale/src/main/java/com/fjhx/sale/service/claim/ClaimService.java

@@ -1,9 +1,6 @@
 package com.fjhx.sale.service.claim;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.account.entity.account.dto.AccountRunningWaterDto;
-import com.fjhx.account.entity.account.dto.AccountRunningWaterSelectDto;
-import com.fjhx.account.entity.account.vo.AccountRunningWaterVo;
 import com.fjhx.common.entity.claim.dto.ClaimDto;
 import com.fjhx.common.entity.claim.dto.ClaimSelectDto;
 import com.fjhx.common.entity.claim.po.Claim;
@@ -70,20 +67,20 @@ public interface ClaimService extends BaseService<Claim> {
     /**
      * 回款登记(到账登记)
      */
-    void addClaimInfo(AccountRunningWaterDto accountRunningWaterDto);
+    void addClaimInfo(ClaimDto dto);
 
     /**
      * 回款登记分页
      */
-    Page<AccountRunningWaterVo> claimInfoPage(AccountRunningWaterSelectDto dto);
+    Page<ClaimVo> claimInfoPage(ClaimSelectDto dto);
 
     /**
      * 回款确认分页
      */
-    Page<AccountRunningWaterVo> claimInfoConfirmPage(AccountRunningWaterSelectDto dto);
+    Page<ClaimVo> claimInfoConfirmPage(ClaimSelectDto dto);
 
     /**
      * 回款确认
      */
-    void claimConfirm(AccountRunningWaterDto dto);
+    void claimConfirm(ClaimDto dto);
 }

+ 80 - 75
hx-sale/src/main/java/com/fjhx/sale/service/claim/impl/ClaimServiceImpl.java

@@ -8,10 +8,7 @@ import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.fjhx.account.entity.account.dto.AccountRunningWaterDto;
-import com.fjhx.account.entity.account.dto.AccountRunningWaterSelectDto;
 import com.fjhx.account.entity.account.po.AccountRunningWater;
-import com.fjhx.account.entity.account.vo.AccountRunningWaterVo;
 import com.fjhx.account.service.account.AccountRunningWaterService;
 import com.fjhx.common.entity.claim.ClaimContract;
 import com.fjhx.common.entity.claim.dto.ClaimDto;
@@ -101,7 +98,7 @@ public class ClaimServiceImpl extends ServiceImpl<ClaimMapper, Claim> implements
         claim.setClaimUserId(SecurityUtils.getUserId());
         claim.setClaimUserName(SecurityUtils.getUsername());
         this.save(claim);
-        List<ClaimContract> claimContractList = claim.getClaimContractList();
+        List<ClaimContractVo> claimContractList = claim.getClaimContractList();
         if (CollectionUtils.isNotEmpty(claim.getClaimContractList())) {
             for (ClaimContract c : claimContractList) {
                 c.setClaimId(claim.getId());
@@ -112,7 +109,7 @@ public class ClaimServiceImpl extends ServiceImpl<ClaimMapper, Claim> implements
                     c.setRate(water.getRate());
                 }
             }
-            claimContractService.saveBatch(claimContractList);
+            claimContractService.saveBatch(claimContractList.stream().collect(Collectors.toList()));
         }
         //更新流水数据已认领金额
         if (water.getClaimAmount().add(claim.getAmount()).compareTo(water.getAmount()) >= 0) {//如果认领金额=流水金额
@@ -205,80 +202,88 @@ public class ClaimServiceImpl extends ServiceImpl<ClaimMapper, Claim> implements
     /**
      * 回款登记
      */
+    @DSTransactional
     @Override
-    public synchronized void addClaimInfo(AccountRunningWaterDto accountRunningWaterDto) {
-        accountRunningWaterDto.setType("30");
-        accountRunningWaterDto.setStatus("10");
-        accountRunningWaterDto.setReceived("10");
-        accountRunningWaterService.save(accountRunningWaterDto);
-        //保存凭证附件
-        ObsFileUtil.saveFile(accountRunningWaterDto.getFileList(), accountRunningWaterDto.getBusinessId());
-
+    public synchronized void addClaimInfo(ClaimDto claim) {
         //保存到账信息
-        Claim claim = new Claim();
-        claim.setBusinessId(accountRunningWaterDto.getId());
-        claim.setAmount(accountRunningWaterDto.getAmount());
-        claim.setAccountManagementId(accountRunningWaterDto.getAccountManagementId());
-        claim.setRemark(accountRunningWaterDto.getRemarks());
         this.save(claim);
 
-        List<ClaimContract> claimContractList = accountRunningWaterDto.getClaimContractList();
+        //保存凭证附件
+        ObsFileUtil.saveFile(claim.getFileList(), claim.getId());
+
+        List<ClaimContractVo> claimContractList = claim.getClaimContractList();
         for (ClaimContract claimContract : claimContractList) {
             claimContract.setClaimId(claim.getId());
             claimContract.setContractMoney(claimContract.getMoney());
             claimContract.setMoneyCny(claimContract.getMoney());
         }
-        claimContractService.saveBatch(claimContractList);
+        claimContractService.saveBatch(claimContractList.stream().collect(Collectors.toList()));
     }
 
-
+    @DSTransactional
     @Override
-    public Page<AccountRunningWaterVo> claimInfoPage(AccountRunningWaterSelectDto dto) {
-        IWrapper<AccountRunningWater> wrapper = accountRunningWaterService.getWrapper();
-
-        wrapper.eq("arw", AccountRunningWater::getCreateUser, SecurityUtils.getUserId());
-
-        return connClaimInfoPage(dto, wrapper);
+    public void claimConfirm(ClaimDto dto) {
+        //创建流水
+        AccountRunningWater accountRunningWater = new AccountRunningWater();
+        accountRunningWater.setCompanyId(dto.getCompanyId());
+        accountRunningWater.setAccountManagementId(dto.getAccountManagementId());
+        accountRunningWater.setStatus("10");// 收入
+        accountRunningWater.setBusinessId(dto.getId());
+        accountRunningWater.setAmount(dto.getAmount());
+        accountRunningWater.setCurrency("CNY");
+        accountRunningWater.setReceived("10");// 合同到账(10:是,20:否)
+        accountRunningWater.setName(dto.getName());
+        accountRunningWater.setOpeningBank(dto.getOpeningBank());
+        accountRunningWater.setAccountOpening(dto.getAccountOpening());
+        accountRunningWater.setType("20"); // 添加流水类型 10 打款  20 到款登记
+        accountRunningWater.setTransactionTime(dto.getTransactionTime());
+
+        accountRunningWater.setIsClaim(1);
+        accountRunningWater.setClaimId(dto.getId());
+        accountRunningWater.setConfirmRemark(dto.getConfirmRemark());
+        //操作余额
+        accountRunningWaterService.changeRemainder(accountRunningWater);
+        //保存流水
+        accountRunningWaterService.save(accountRunningWater);
 
+        this.update(q -> q
+                .eq(Claim::getId, dto.getId())
+                .set(Claim::getBusinessId, accountRunningWater.getId())
+                .set(Claim::getConfirmStatus, 1)
+                .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
+                .set(BasePo::getUpdateTime, new Date())
+        );
+        ObsFileUtil.saveFile(dto.getFileList(), dto.getId(), 1);
     }
 
     @Override
-    public Page<AccountRunningWaterVo> claimInfoConfirmPage(AccountRunningWaterSelectDto dto) {
-        IWrapper<AccountRunningWater> wrapper = accountRunningWaterService.getWrapper();
+    public Page<ClaimVo> claimInfoPage(ClaimSelectDto dto) {
+        IWrapper<Claim> wrapper = getWrapper();
 
-        wrapper.orderByDesc("arw", AccountRunningWater::getTransactionTime);
+        wrapper.eq("cl", Claim::getCreateUser, SecurityUtils.getUserId());
 
         return connClaimInfoPage(dto, wrapper);
     }
 
-    @DSTransactional
     @Override
-    public void claimConfirm(AccountRunningWaterDto dto) {
-        accountRunningWaterService.update(q -> q
-                .eq(AccountRunningWater::getId, dto.getId())
-                .set(AccountRunningWater::getIsClaim, 1)
-                .set(AccountRunningWater::getConfirmRemark, dto.getConfirmRemark())
-                .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
-                .set(BasePo::getUpdateTime, new Date())
-        );
-        this.update(q -> q
-                .eq(Claim::getBusinessId, dto.getId())
-                .set(Claim::getConfirmStatus, 1)
-                .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
-                .set(BasePo::getUpdateTime, new Date())
-        );
-        ObsFileUtil.saveFile(dto.getFileList(), dto.getId(), 1);
+    public Page<ClaimVo> claimInfoConfirmPage(ClaimSelectDto dto) {
+        IWrapper<Claim> wrapper = getWrapper();
+
+        wrapper.orderByDesc("cl", Claim::getTransactionTime);
+
+        return connClaimInfoPage(dto, wrapper);
     }
 
-    private Page<AccountRunningWaterVo> connClaimInfoPage(AccountRunningWaterSelectDto dto, IWrapper<AccountRunningWater> wrapper) {
-        wrapper.eq("arw", AccountRunningWater::getType, 30);
-        wrapper.eq("arw", AccountRunningWater::getStatus, 10);
+    private Page<ClaimVo> connClaimInfoPage(ClaimSelectDto dto, IWrapper<Claim> wrapper) {
+//        wrapper.eq("cl", Claim::getType, 30);
+//        wrapper.eq("cl", Claim::getStatus, 10);
 
-        wrapper.eq("arw", AccountRunningWater::getIsClaim, dto.getIsClaim());
+        wrapper.eq("cl", Claim::getConfirmStatus, dto.getIsClaim());
+        wrapper.eq("cl", Claim::getConfirmStatus, dto.getConfirmStatus());
 
         //时间范围过滤
-        wrapper.ge("arw", AccountRunningWater::getTransactionTime, dto.getBeginTime());
-        wrapper.le("arw", AccountRunningWater::getTransactionTime, dto.getEndTime());
+        wrapper.ge("cl", Claim::getTransactionTime, dto.getBeginTime());
+        wrapper.le("cl", Claim::getTransactionTime, dto.getEndTime());
 
         if (ObjectUtils.isNotEmpty(dto.getKeyword())) {
             List<SysDept> deptList = deptService.list(IWrapper.<SysDept>getWrapper().keyword(dto.getKeyword(), new SqlField(SysDept::getDeptName)));
@@ -286,51 +291,51 @@ public class ClaimServiceImpl extends ServiceImpl<ClaimMapper, Claim> implements
             List<SysUser> userList = userService.list(IWrapper.<SysUser>getWrapper().keyword(dto.getKeyword(), new SqlField(SysUser::getNickName)));
             List<Long> userIds = userList.stream().map(SysUser::getUserId).collect(Collectors.toList());
             wrapper.and(q -> q
-                    .like("arw", AccountRunningWater::getAmount, dto.getKeyword())
-                    .or().like("arw", AccountRunningWater::getTransactionTime, dto.getKeyword())
-                    .or().like("arw", AccountRunningWater::getSerialNumber, dto.getKeyword())
-                    .or().like("arw", AccountRunningWater::getRemarks, dto.getKeyword())
-                    .or().like("arw", AccountRunningWater::getName, dto.getKeyword())
-                    .or().like("arw", AccountRunningWater::getAccountOpening, dto.getKeyword())
-                    .or().like("arw", AccountRunningWater::getOpeningBank, dto.getKeyword())
-                    .or().like("arw", AccountRunningWater::getMyAccountName, dto.getKeyword())
-                    .or().like("arw", AccountRunningWater::getMyAccountOpening, dto.getKeyword())
-                    .or().like("arw", AccountRunningWater::getMyOpeningBank, dto.getKeyword())
-                    .or(ObjectUtils.isNotEmpty(deptIds)).in(ObjectUtils.isNotEmpty(deptIds), "arw.company_id", deptIds)
-                    .or(ObjectUtils.isNotEmpty(deptIds)).in(ObjectUtils.isNotEmpty(deptIds), "arw.dept_id", deptIds)
-                    .or(ObjectUtils.isNotEmpty(userIds)).in(ObjectUtils.isNotEmpty(userIds), "arw.create_user", userIds)
-                    .or(ObjectUtils.isNotEmpty(userIds)).in(ObjectUtils.isNotEmpty(userIds), "arw.register_user_id", userIds)
+                            .like("cl", Claim::getAmount, dto.getKeyword())
+                            .or().like("cl", Claim::getTransactionTime, dto.getKeyword())
+                            .or().like("cl", Claim::getSerialNumber, dto.getKeyword())
+                            .or().like("cl", Claim::getRemark, dto.getKeyword())
+                            .or().like("cl", Claim::getName, dto.getKeyword())
+                            .or().like("cl", Claim::getAccountOpening, dto.getKeyword())
+                            .or().like("cl", Claim::getOpeningBank, dto.getKeyword())
+                            .or().like("cl", Claim::getMyAccountName, dto.getKeyword())
+                            .or().like("cl", Claim::getMyAccountOpening, dto.getKeyword())
+                            .or().like("cl", Claim::getMyOpeningBank, dto.getKeyword())
+                            .or(ObjectUtils.isNotEmpty(deptIds)).in(ObjectUtils.isNotEmpty(deptIds), "cl.company_id", deptIds)
+                            .or(ObjectUtils.isNotEmpty(deptIds)).in(ObjectUtils.isNotEmpty(deptIds), "cl.dept_id", deptIds)
+                            .or(ObjectUtils.isNotEmpty(userIds)).in(ObjectUtils.isNotEmpty(userIds), "cl.create_user", userIds)
+//                    .or(ObjectUtils.isNotEmpty(userIds)).in(ObjectUtils.isNotEmpty(userIds), "cl.register_user_id", userIds)
             );
         }
 
-        Page<AccountRunningWaterVo> page = baseMapper.claimInfoPage(dto.getPage(), wrapper);
-        List<AccountRunningWaterVo> records = page.getRecords();
+        Page<ClaimVo> page = baseMapper.claimInfoPage(dto.getPage(), wrapper);
+        List<ClaimVo> records = page.getRecords();
         if (ObjectUtils.isEmpty(records)) {
             return page;
         }
-        List<Long> arwIds = records.stream().map(AccountRunningWater::getId).collect(Collectors.toList());
+        List<Long> arwIds = records.stream().map(Claim::getId).collect(Collectors.toList());
 
         Map<Long, List<ClaimContractVo>> collect = new HashMap<>();
-        List<ClaimContractVo> claimContractVoList = claimContractService.getList(IWrapper.<ClaimContract>getWrapper().in("cl", ClaimContract::getBusinessId, arwIds));
+        List<ClaimContractVo> claimContractVoList = claimContractService.getList(IWrapper.<ClaimContract>getWrapper().in("cc", ClaimContract::getClaimId, arwIds));
         if (ObjectUtils.isNotEmpty(claimContractVoList)) {
-            collect = claimContractVoList.stream().collect(Collectors.groupingBy(ClaimContract::getBusinessId));
+            collect = claimContractVoList.stream().collect(Collectors.groupingBy(ClaimContract::getClaimId));
         }
 
         //赋值登记人
-        UserUtil.assignmentNickName(records, AccountRunningWaterVo::getRegisterUserId, AccountRunningWaterVo::setRegisterUserName);
-        UserUtil.assignmentNickName(records, AccountRunningWaterVo::getCreateUser, AccountRunningWaterVo::setCreateUserName);
+        UserUtil.assignmentNickName(records, Claim::getCreateUser, ClaimVo::setRegisterUserName);
+        UserUtil.assignmentNickName(records, Claim::getCreateUser, ClaimVo::setCreateUserName);
 
         List<SysDept> deptList = deptService.list();
         Map<Long, String> deptMap = deptList.stream().collect(Collectors.toMap(SysDept::getDeptId, SysDept::getDeptName));
 
-        for (AccountRunningWaterVo record : records) {
+        for (ClaimVo record : records) {
             //业务公司
             record.setCompanyName(deptMap.get(record.getCompanyId()));
             //业务部门
             record.setDeptName(deptMap.get(record.getDeptId()));
         }
 
-        for (AccountRunningWaterVo record : records) {
+        for (ClaimVo record : records) {
             record.setClaimContractList(collect.get(record.getId()));
         }
         return page;

+ 1 - 0
hx-sale/src/main/resources/mapper/claim/ClaimContractMapper.xml

@@ -4,6 +4,7 @@
 
     <sql id="list">
         SELECT cc.id,
+               cc.claim_id,
                cc.contract_id,
                cc.money,
                cc.contract_code,

+ 2 - 2
hx-sale/src/main/resources/mapper/claim/ClaimMapper.xml

@@ -24,9 +24,9 @@
                  LEFT JOIN claim_contract cc ON cl.id = cc.claim_id
             ${ew.customSqlSegment}
     </select>
-    <select id="claimInfoPage" resultType="com.fjhx.account.entity.account.vo.AccountRunningWaterVo">
+    <select id="claimInfoPage" resultType="com.fjhx.common.entity.claim.vo.ClaimVo">
         SELECT *
-        FROM account_running_water arw
+        FROM claim cl
             ${ew.customSqlSegment}
     </select>