于继渤 1 год назад
Родитель
Сommit
0a67769545

+ 12 - 0
src/main/java/com/dk/mdm/controller/mac/ReceiptController.java

@@ -167,4 +167,16 @@ public class ReceiptController {
     public ResponseResultVO<PageList<RecPayResponse>> getRpSupList(@RequestBody RecPayQuery recPayQuery) {
         return receiptService.getRpSupList(recPayQuery);
     }
+
+
+    /**
+     * @desc : 新建供应商收款
+     * @author : 于继渤
+     * @date : 2024/7/5 10:48
+     */
+    @ApiOperation(value = "新建客户收款", notes = "新建客户收款")
+    @PostMapping({"insert_sup_receipt"})
+    public ResponseResultVO<?> insertSupReceipt(@RequestBody RecPayVO recPayVO) {
+        return receiptService.insertSupReceipt(recPayVO);
+    }
 }

+ 77 - 1
src/main/java/com/dk/mdm/service/mac/ReceiptService.java

@@ -733,7 +733,11 @@ public class ReceiptService extends BaseService<RecPay> {
     }
 
 
-
+    /**
+     * @desc : 供应商收退款查询
+     * @author : 于继渤
+     * @date : 2024/7/5 10:36
+     */
     @Pagination
     public ResponseResultVO<PageList<RecPayResponse>> getRpSupList(RecPayQuery recPayQuery) {
         return super.mergeListWithCount(recPayQuery, recPayMapper.getRpSupList(recPayQuery),
@@ -741,4 +745,76 @@ public class ReceiptService extends BaseService<RecPay> {
 
     }
 
+    /**
+     * @desc : 新建供应商收款
+     * @author : 于继渤
+     * @date : 2024/7/5 10:48
+     */
+    @Transactional(
+            rollbackFor = {Exception.class}
+    )
+    public ResponseResultVO<?> insertSupReceipt(RecPayVO recPayVO) {
+
+        // 获取单号
+        Map<String, Object> codeMap = commonService.getUniqueNoteCode(Constant.docNameConstant.RECPAY.getName(), false);
+        recPayVO.setRpId(codeMap.get("outId").toString()).setRpNo(codeMap.get("outNote").toString());
+        // 转化实体
+        RecPay recPay = recPayConvert.convertToPo(recPayVO);
+        // 总单保存
+        super.insert(recPay);
+
+        // 明细保存
+        if (recPayVO.getItemList() != null && recPayVO.getItemList().size() > 0) {
+            for (RecPayItemVO recPayItemVO : recPayVO.getItemList()) {
+                RecPayItem recPayItem = recPayItemConvert.convertToPo(recPayItemVO);
+                recPayItem.setRpId(recPay.getRpId()).setCpId(recPay.getCpId()).setMakeStaff(recPay.getMakeStaff()).setAccDate(recPay.getAccDate());
+                recPayItemMapper.insert(recPayItem);
+
+                // 插入账款明细
+                AccountItem accountItem = new AccountItem();
+                accountItem.setAccItemType(Constant.accItemType.SHOU_KUAN.getName())
+                        .setObjectId(recPayVO.getObjectId())
+                        .setOrgId(recPayVO.getOrgId())
+                        .setStaffId(recPayVO.getStaffId())
+                        .setAccDate(recPayVO.getAccDate())
+                        .setRecStatus(Constant.recStatuse.QUE_DING.getName())
+                        .setAmtPay(recPayItem.getAmtRec())
+                        .setBiznisType("t_mac_rec_pay_item")
+                        .setBiznisId(recPayItem.getRpId())
+                        .setBiznisNo(recPayVO.getRpNo())
+                        .setMakeStaff(recPayVO.getMakeStaff()).setCpId(recPayVO.getCpId());
+                accountItemMapper.insert(accountItem);
+
+                // 更新收款单上的账款明细Id
+                RecPayItem recPayItemUpdate = new RecPayItem();
+                recPayItemUpdate.setAccItemId(accountItem.getItemId()).setItemId(recPayItem.getItemId());
+                recPayItemService.updateByUuid(recPayItemUpdate);
+
+                // 插入资金流水
+                MoneyAccountItem moneyAccountItem = new MoneyAccountItem();
+                moneyAccountItem.setMacId(recPayItem.getMacId()).setFlowType(Constant.FlowType.SHOU_FU_KUAN.getName())
+                        .setInvoiceId(recPayItem.getItemId()).setAmtInflow(recPayItem.getAmtPay()).setAccDate(recPayVO.getAccDate())
+                        .setMakeStaff(recPayItem.getMakeStaff()).setCpId(recPayItem.getCpId());
+                moneyAccountItemMapper.insert(moneyAccountItem);
+
+                // 更新资金账户
+                MoneyAccount moneyAccountForUpdate = moneyAccountMapper.selectByIdForUpdate(recPayItem.getMacId());
+                MoneyAccount moneyAccountUpdate = new MoneyAccount();
+                moneyAccountUpdate.setBalance(moneyAccountForUpdate.getBalance().add(recPayItem.getAmtPay()))
+                        .setMacId(moneyAccountForUpdate.getMacId());
+                moneyAccountService.updateByUuid(moneyAccountUpdate);
+            }
+        }
+
+        // 插入账款总表
+        Account accountForUpdate = accountService.getCusAccountForUpdate(recPayVO.getObjectId());
+        // 更新账款总表上收款的相关字段
+        Account accountUpdate = new Account();
+        accountUpdate.setReceipt(accountForUpdate.getReceipt().add(recPayVO.getSumAmtPay()))// 总收款金额
+                .setReceiptResidue(accountForUpdate.getReceiptResidue().add(recPayVO.getSumAmtPay()))//  可退金额
+                .setObjectId(accountForUpdate.getObjectId());
+        accountService.updateByUuid(accountUpdate);
+        return ResponseResultUtil.success();
+    }
+
 }