LAPTOP-FO2T5SIU\35838 8 miesięcy temu
rodzic
commit
cf399c4e92

+ 50 - 4
pro-base/src/main/java/com/idea/customerManagement/service/IntentionalDepositService.java

@@ -20,6 +20,9 @@ import com.idea.customerManagement.mapper.IntentionalDepositExtendMapper;
 import com.idea.customerManagement.mapper.IntentionalDepositMapper;
 import com.idea.customerManagement.mapper.RoomSelectionInfoMapper;
 import com.idea.customerManagement.model.*;
+import com.idea.invoice.model.ReceiptManage;
+import com.idea.invoice.model.ReceiptManageExample;
+import com.idea.invoice.service.ReceiptManageService;
 import com.idea.paymentManagement.mapper.PayLogMapper;
 import com.idea.paymentManagement.model.PayLog;
 import com.rockstar.common.base.BaseService;
@@ -62,6 +65,8 @@ public class IntentionalDepositService implements BaseService<IntentionalDeposit
     private ContractManageService contractManageService;
     @Autowired
     private PayLogMapper payLogMapper;
+    @Autowired
+    private ReceiptManageService receiptManageService;
 
 
     @Override
@@ -176,13 +181,28 @@ public class IntentionalDepositService implements BaseService<IntentionalDeposit
     public int add(IntentionalDeposit model){
 
         CustomerManagement customerManagement = customerManagementMapper.selectByPrimaryKey(model.getCustomerManagementId());
+        String id = IdUtil.simpleUUID();
         // 已收取
         model.setStatus(1);
         model.setGroupId(customerManagement.getGroupId());
         model.setDiscId(customerManagement.getDiscId());
         model.setCreatedAt(new Date());
         model.setCreatedId(ShiroUtils.getUserId());
-        return insertSelective(model);
+        model.setId(id);
+        int result = insertWithoutId(model);
+        // 票据管理 新增一条记录
+        ReceiptManage receiptManage = new ReceiptManage();
+        receiptManage.setBatchNumber(customerManagement.getBatchNumber());
+        receiptManage.setRoomSelectionNumber(customerManagement.getRoomSelectionNumber());
+        receiptManage.setBuyerName(customerManagement.getBuyerName());
+        receiptManage.setCustomerManagementId(model.getCustomerManagementId());
+        receiptManage.setBusinessId(id);
+        // 票据类型 意向金
+        receiptManage.setReceiptType("1");
+        receiptManage.setReceiptMoney(model.getReceivedAmount());
+        receiptManage.setReceiptNumber(model.getSerialNumber());
+        receiptManageService.add(receiptManage);
+        return result;
     }
 
     /**
@@ -264,6 +284,7 @@ public class IntentionalDepositService implements BaseService<IntentionalDeposit
         customerManagementMapper.updateByPrimaryKeySelective(customerManagement);
 
         // 新增选房信息
+        String roomSelectionInfoId = IdUtil.simpleUUID();
         RoomSelectionInfo roomSelectionInfo = new RoomSelectionInfo();
         roomSelectionInfo.setCustomerManagementId(customerManagementId);
         roomSelectionInfo.setHouseId(response.getId());
@@ -275,7 +296,7 @@ public class IntentionalDepositService implements BaseService<IntentionalDeposit
         roomSelectionInfo.setReceivableMoney(response.getSubscriptionFunds());
         // 收取状态 意向金转入
         roomSelectionInfo.setStatus(3);
-        roomSelectionInfo.setId(IdUtil.simpleUUID());
+        roomSelectionInfo.setId(roomSelectionInfoId);
         roomSelectionInfo.setDepositNumber(model.getDepositSerialNumber());
         roomSelectionInfoMapper.insertSelective(roomSelectionInfo);
 
@@ -307,14 +328,39 @@ public class IntentionalDepositService implements BaseService<IntentionalDeposit
         parkRoom.setIsChoose(1);
         parkRoomMapper.updateByPrimaryKeySelective(parkRoom);
 
+        // 票据管理 新增一条记录
+        ReceiptManage receiptManage = new ReceiptManage();
+        receiptManage.setBatchNumber(customerManagement.getBatchNumber());
+        receiptManage.setRoomSelectionNumber(customerManagement.getRoomSelectionNumber());
+        receiptManage.setBuyerName(customerManagement.getBuyerName());
+        receiptManage.setCustomerManagementId(model.getCustomerManagementId());
+        receiptManage.setBusinessId(roomSelectionInfoId);
+        // 票据类型 定金
+        receiptManage.setReceiptType("2");
+        receiptManage.setReceiptMoney(model.getReceivedAmount());
+        receiptManage.setReceiptNumber(model.getSerialNumber());
+        // 已换票
+        receiptManage.setReceiptStatus(2);
+        receiptManageService.add(receiptManage);
+        // 更新关联的意向金数据 更新意向金票据关联票号
+        ReceiptManageExample receiptManageExample = new ReceiptManageExample();
+        receiptManageExample.createCriteria().andBusinessIdEqualTo(model.getId());
+        List<ReceiptManage> receiptManages = receiptManageService.selectByExample(receiptManageExample);
+        if(CollectionUtils.isNotEmpty(receiptManages)){
+            ReceiptManage manage = receiptManages.get(0);
+            manage.setAssociationNumber(model.getDepositSerialNumber());
+            // 已换票
+            manage.setReceiptStatus(2);
+            receiptManageService.updateByPrimaryKeySelective(manage);
+        }
 
         // 转定金
         model.setStatus(2);
         model.setHandleId(ShiroUtils.getUserId());
         model.setHandleDate(new Date());
-        modelMapper.updateByPrimaryKeySelective(model);
+        int result = modelMapper.updateByPrimaryKeySelective(model);
 
-        return 1;
+        return result;
 
     }
 

+ 17 - 0
pro-base/src/main/java/com/idea/customerManagement/service/RoomSelectionInfoService.java

@@ -14,6 +14,8 @@ import com.idea.customerManagement.mapper.CustomerManagementMapper;
 import com.idea.customerManagement.mapper.RoomSelectionInfoExtendMapper;
 import com.idea.customerManagement.mapper.RoomSelectionInfoMapper;
 import com.idea.customerManagement.model.*;
+import com.idea.invoice.model.ReceiptManage;
+import com.idea.invoice.service.ReceiptManageService;
 import com.idea.paymentManagement.mapper.PayLogMapper;
 import com.idea.paymentManagement.model.PayLog;
 import com.idea.util.DateUtils;
@@ -49,6 +51,8 @@ public class RoomSelectionInfoService implements BaseService<RoomSelectionInfo,
     private ParkRoomMapper parkRoomMapper;
     @Autowired
     private PayLogMapper payLogMapper;
+    @Autowired
+    private ReceiptManageService receiptManageService;
 
 
     @Override
@@ -233,6 +237,19 @@ public class RoomSelectionInfoService implements BaseService<RoomSelectionInfo,
         payLog.setCreatedAt(new Date());
         payLog.setCreatedBy(ShiroUtils.getUserId());
         payLogMapper.insertSelective(payLog);
+        // 票据管理 新增一条记录
+        CustomerManagement customerManagement = customerManagementMapper.selectByPrimaryKey(model.getCustomerManagementId());
+        ReceiptManage receiptManage = new ReceiptManage();
+        receiptManage.setBatchNumber(customerManagement.getBatchNumber());
+        receiptManage.setRoomSelectionNumber(customerManagement.getRoomSelectionNumber());
+        receiptManage.setBuyerName(customerManagement.getBuyerName());
+        receiptManage.setCustomerManagementId(model.getCustomerManagementId());
+        receiptManage.setBusinessId(model.getId());
+        // 票据类型 定金
+        receiptManage.setReceiptType("2");
+        receiptManage.setReceiptMoney(model.getReceivedAmount());
+        receiptManage.setReceiptNumber(model.getSerialNumber());
+        receiptManageService.add(receiptManage);
         return result;
     }
 

+ 28 - 0
pro-base/src/main/java/com/idea/invoice/controller/ReceiptManageController.java

@@ -1,12 +1,40 @@
 package com.idea.invoice.controller;
 
+import com.github.pagehelper.PageInfo;
+import com.idea.invoice.model.ReceiptManage;
+import com.idea.invoice.service.ReceiptManageService;
 import com.rockstar.common.base.BaseController;
+import com.rockstar.frame.model.extend.TableSplitResult;
+import com.rockstar.frame.model.extend.Tablepar;
 import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
 
 @Controller
 @RequestMapping(value = "ReceiptManageController")
 @Api(value="票据管理")
 public class ReceiptManageController extends BaseController {
+
+    @Autowired
+    private ReceiptManageService modelService;
+
+    @PostMapping(value = "listByModel",produces = {"application/json;charset=UTF-8"})
+    @ResponseBody
+    public Object listByModel(Tablepar tablepar, ReceiptManage model){
+        PageInfo page = modelService.listByModel(tablepar, model);
+        return new TableSplitResult<>(page.getPageNum(),page.getTotal(),page.getList());
+    }
+
+
+
+
+
+
+
+
+
+
 }

+ 41 - 8
pro-base/src/main/java/com/idea/invoice/service/InvoiceManageService.java

@@ -11,18 +11,17 @@ import com.idea.buildManage.model.ParkFloorDisc;
 import com.idea.buildManage.model.ParkRoom;
 import com.idea.buildManage.response.ParkRoomResponse;
 import com.idea.customerManagement.dto.ContractManageDto;
+import com.idea.customerManagement.mapper.CustomerManagementMapper;
 import com.idea.customerManagement.model.Buyer;
 import com.idea.customerManagement.model.BuyerExample;
 import com.idea.customerManagement.model.ContractManage;
+import com.idea.customerManagement.model.CustomerManagement;
 import com.idea.customerManagement.service.BuyerService;
 import com.idea.customerManagement.service.ContractManageService;
 import com.idea.invoice.dto.InvoiceManageDto;
 import com.idea.invoice.mapper.InvoiceManageExtendMapper;
 import com.idea.invoice.mapper.InvoiceManageMapper;
-import com.idea.invoice.model.InvoiceBank;
-import com.idea.invoice.model.InvoiceBankExample;
-import com.idea.invoice.model.InvoiceManage;
-import com.idea.invoice.model.InvoiceManageExample;
+import com.idea.invoice.model.*;
 import com.idea.invoice.util.InvoiceConstant;
 import com.idea.paymentManagement.service.PayLogService;
 import com.rockstar.common.base.BaseService;
@@ -64,9 +63,13 @@ public class InvoiceManageService implements BaseService<InvoiceManage, InvoiceM
     private InvoiceBankService invoiceBankService;
     @Autowired
     private SysDictService sysDictService;
-    // 注入自身 防止食物不生效
+    // 注入自身 防止事务不生效
     @Autowired
     private InvoiceManageService invoiceManageService;
+    @Autowired
+    private CustomerManagementMapper customerManagementMapper;
+    @Autowired
+    private ReceiptManageService receiptManageService;
 
     @Override
     public int deleteByPrimaryKey(String s) {
@@ -148,12 +151,13 @@ public class InvoiceManageService implements BaseService<InvoiceManage, InvoiceM
      */
     public int add(InvoiceManageDto model) {
 
-        model.setId(IdUtil.simpleUUID());
+        String id = IdUtil.simpleUUID();
+        model.setId(id);
         model.setInvoiceStatus("0");
         model.setCreateTime(new Date());
         model.setCreateUser(ShiroUtils.getUserId());
         int result = insertWithoutId(model);
-        // 预收款发票 新增后 推送
+        // 预收款发票 新增后 推送用友
         if(model.getType().equals("1")){
             sendInvoice(model);
         }
@@ -316,7 +320,7 @@ public class InvoiceManageService implements BaseService<InvoiceManage, InvoiceM
     }
 
     /**
-     * 批量生效
+     * 批量推送
      * @param list
      * @return
      */
@@ -354,4 +358,33 @@ public class InvoiceManageService implements BaseService<InvoiceManage, InvoiceM
         return result > 0 ? AjaxResult.success() : AjaxResult.error();
     }
 
+    /**
+     * 票据管理 新增记录 开票后调用
+     * @param model
+     * @return
+     */
+    public int addReceiptManage(InvoiceManage model){
+        // 票据管理 新增一条记录
+        ContractManage contractManage = contractManageService.selectByPrimaryKey(model.getContractId());
+        CustomerManagement customerManagement = customerManagementMapper.selectByPrimaryKey(contractManage.getCustomerManagementId());
+        ReceiptManage receiptManage = new ReceiptManage();
+        receiptManage.setBatchNumber(customerManagement.getBatchNumber());
+        receiptManage.setRoomSelectionNumber(customerManagement.getRoomSelectionNumber());
+        receiptManage.setBuyerName(customerManagement.getBuyerName());
+        receiptManage.setCustomerManagementId(model.getCustomerManagementId());
+        // 票据类型
+        // 预收款发票
+        if(model.getType().equals("1")){
+            receiptManage.setReceiptType("5");
+        }
+        // 正式发票
+        if(model.getType().equals("2")){
+            receiptManage.setReceiptType("6");
+        }
+        receiptManage.setReceiptMoney(model.getInvoiceAmount());
+        receiptManage.setReceiptNumber(model.getInvoiceNo());
+        int result = receiptManageService.add(receiptManage);
+        return result;
+    }
+
 }

+ 31 - 0
pro-base/src/main/java/com/idea/invoice/service/ReceiptManageService.java

@@ -1,14 +1,20 @@
 package com.idea.invoice.service;
 
 import cn.hutool.core.util.IdUtil;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
 import com.idea.invoice.mapper.ReceiptManageMapper;
+import com.idea.invoice.model.InvoiceManage;
 import com.idea.invoice.model.ReceiptManage;
 import com.idea.invoice.model.ReceiptManageExample;
 import com.rockstar.common.base.BaseService;
+import com.rockstar.frame.model.extend.Tablepar;
+import com.rockstar.shiro.util.ShiroUtils;
 import com.rockstar.util.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
 import java.util.List;
 
 @Service
@@ -74,7 +80,32 @@ public class ReceiptManageService implements BaseService<ReceiptManage, ReceiptM
         return example;
     }
 
+    public PageInfo listByModel(Tablepar tablepar,ReceiptManage model){
 
+        ReceiptManageExample example = this.getCondition(model);
+        PageHelper.startPage(tablepar.getPageNum(),tablepar.getPageSize());
+        List<ReceiptManage> receiptManages = modelMapper.selectByExample(example);
+        return new PageInfo<ReceiptManage>(receiptManages);
+    }
+
+
+
+    /**
+     * 新增票据 其他业务调用
+     * @param model
+     * @return
+     */
+    public int add(ReceiptManage model){
+
+        if(model.getReceiptStatus() == null){
+            // 默认 已开
+            model.setReceiptStatus(1);
+        }
+        model.setCreatedAt(new Date());
+        model.setCreatedId(ShiroUtils.getUserId());
+        int result = insertSelective(model);
+        return result;
+    }
 
 
 }

+ 26 - 11
pro-base/src/main/java/com/idea/paymentManagement/service/MaintenanceFundsManagementService.java

@@ -12,6 +12,7 @@ import com.idea.customerManagement.model.ContractManage;
 import com.idea.invoice.model.InvoiceBank;
 import com.idea.invoice.model.InvoiceBankExample;
 import com.idea.invoice.model.InvoiceManage;
+import com.idea.invoice.model.InvoiceManageExample;
 import com.idea.invoice.service.InvoiceBankService;
 import com.idea.invoice.service.InvoiceManageService;
 import com.idea.paymentManagement.mapper.MaintenanceFundsManagementExtendMapper;
@@ -25,6 +26,7 @@ import com.rockstar.frame.model.extend.DateTrans;
 import com.rockstar.frame.model.extend.Tablepar;
 import com.rockstar.shiro.util.ShiroUtils;
 import com.rockstar.util.StringUtils;
+import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -139,17 +141,30 @@ public class MaintenanceFundsManagementService implements BaseService<Maintenanc
         payLog.setCreatedBy(ShiroUtils.getUserId());
         payLogMapper.insertSelective(payLog);
 
-        // 生成一条待推送的开票信息
-        InvoiceManage invoiceManage = invoiceManageService.getInfoByContract(model.getContractId());
-        // 正式发票
-        invoiceManage.setType("1");
-        // 专项维修资金
-        invoiceManage.setPaymentType("2");
-        invoiceManage.setSendStatus("0");
-        invoiceManage.setInvoiceStatus("0");
-        invoiceManage.setInvoiceTax(null);
-        invoiceManage.setRemark(null);
-        invoiceManageService.insertSelective(invoiceManage);
+        // 查询合同的房款收款情况
+        Integer collectionStatus = contractManage.getCollectionStatus();
+        // 完全收款
+        if(collectionStatus == 2){
+            // 查询该合同是否已生成 正式发票
+            InvoiceManageExample invoiceManageExample = new InvoiceManageExample();
+            invoiceManageExample.createCriteria().andTypeEqualTo("1").andContractIdEqualTo(model.getContractId());
+            List<InvoiceManage> invoiceManages = invoiceManageService.selectByExample(invoiceManageExample);
+            if(CollectionUtils.isEmpty(invoiceManages)){
+                // 生成一条待推送的开票信息
+                InvoiceManage invoiceManage = invoiceManageService.getInfoByContract(model.getContractId());
+                // 正式发票
+                invoiceManage.setType("1");
+                // 专项维修资金
+                invoiceManage.setPaymentType("2");
+                invoiceManage.setSendStatus("0");
+                invoiceManage.setInvoiceStatus("0");
+                invoiceManage.setInvoiceTax(null);
+                invoiceManage.setRemark(null);
+                invoiceManageService.insertSelective(invoiceManage);
+            }
+        }
+
+
 
         return result;
     }

+ 66 - 14
pro-base/src/main/java/com/idea/paymentManagement/service/PayLogService.java

@@ -10,9 +10,15 @@ import com.idea.buildManage.model.ParkInfoExample;
 import com.idea.buildManage.model.ParkRoom;
 import com.idea.customerManagement.dto.ContractManageDto;
 import com.idea.customerManagement.mapper.ContractManageMapper;
+import com.idea.customerManagement.mapper.CustomerManagementMapper;
 import com.idea.customerManagement.model.ContractManage;
+import com.idea.customerManagement.model.CustomerManagement;
 import com.idea.invoice.dto.InvoiceManageDto;
+import com.idea.invoice.model.InvoiceManage;
+import com.idea.invoice.model.InvoiceManageExample;
+import com.idea.invoice.model.ReceiptManage;
 import com.idea.invoice.service.InvoiceManageService;
+import com.idea.invoice.service.ReceiptManageService;
 import com.idea.paymentManagement.dto.PayLogDto;
 import com.idea.paymentManagement.mapper.PayLogExtendMapper;
 import com.idea.paymentManagement.mapper.PayLogMapper;
@@ -26,6 +32,7 @@ import com.rockstar.frame.model.extend.Tablepar;
 import com.rockstar.frame.service.FrameUserService;
 import com.rockstar.shiro.util.ShiroUtils;
 import com.rockstar.util.StringUtils;
+import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -46,6 +53,10 @@ public class PayLogService implements BaseService<PayLog, PayLogExample> {
     private FrameUserService frameUserService;
     @Autowired
     private InvoiceManageService invoiceManageService;
+    @Autowired
+    private CustomerManagementMapper customerManagementMapper;
+    @Autowired
+    private ReceiptManageService receiptManageService;
 
 
     @Override
@@ -115,10 +126,12 @@ public class PayLogService implements BaseService<PayLog, PayLogExample> {
      */
     public int add(PayLog model) {
 
+        String id = IdUtil.simpleUUID();
         model.setCreatedBy(ShiroUtils.getUserId());
         model.setCreatedAt(new Date());
         model.setStatus(0);
-        int result = insertSelective(model);
+        model.setId(id);
+        int result = insertWithoutId(model);
         // 更新合同 预收款 收款状态
         ContractManage contractManage = contractManageMapper.selectByPrimaryKey(model.getContractId());
         if (model.getPayType() == 1) {
@@ -131,22 +144,61 @@ public class PayLogService implements BaseService<PayLog, PayLogExample> {
             } else {
                 // 全部收款
                 contractManage.setCollectionStatus(2);
-                // 新增待推送的开票信息
-                InvoiceManageDto invoiceManage = invoiceManageService.getInfoByContract(model.getContractId());
-                // 正式发票
-                invoiceManage.setType("2");
-                // 房款
-                invoiceManage.setPaymentType("1");
-                invoiceManage.setSendStatus("0");
-                invoiceManage.setInvoiceStatus("0");
-                invoiceManage.setInvoiceTax(null);
-                invoiceManage.setRemark(null);
-                invoiceManage.setCreateUser(ShiroUtils.getUserId());
-                invoiceManage.setCreateTime(new Date());
-                invoiceManageService.insertSelective(invoiceManage);
+
+                // 查询合同的专项维修基础 收款情况
+                Integer fundCollectionStatus = contractManage.getFundCollectionStatus();
+                // 完全收款
+                if(fundCollectionStatus == 2){
+                    // 查询该合同是否已生成 正式发票
+                    InvoiceManageExample invoiceManageExample = new InvoiceManageExample();
+                    invoiceManageExample.createCriteria().andTypeEqualTo("1").andContractIdEqualTo(model.getContractId());
+                    List<InvoiceManage> invoiceManages = invoiceManageService.selectByExample(invoiceManageExample);
+                    if(CollectionUtils.isEmpty(invoiceManages)){
+                        // 新增待推送的开票信息
+                        InvoiceManageDto invoiceManage = invoiceManageService.getInfoByContract(model.getContractId());
+                        // 正式发票
+                        invoiceManage.setType("2");
+                        // 房款
+                        invoiceManage.setPaymentType("1");
+                        invoiceManage.setSendStatus("0");
+                        invoiceManage.setInvoiceStatus("0");
+                        invoiceManage.setInvoiceTax(null);
+                        invoiceManage.setRemark(null);
+                        invoiceManage.setCreateUser(ShiroUtils.getUserId());
+                        invoiceManage.setCreateTime(new Date());
+                        invoiceManageService.insertSelective(invoiceManage);
+                    }
+                }
             }
         }
         contractManageMapper.updateByPrimaryKeySelective(contractManage);
+        // 票据管理 新增一条记录
+        CustomerManagement customerManagement = customerManagementMapper.selectByPrimaryKey(contractManage.getCustomerManagementId());
+        ReceiptManage receiptManage = new ReceiptManage();
+        receiptManage.setBatchNumber(customerManagement.getBatchNumber());
+        receiptManage.setRoomSelectionNumber(customerManagement.getRoomSelectionNumber());
+        receiptManage.setBuyerName(customerManagement.getBuyerName());
+        receiptManage.setCustomerManagementId(model.getCustomerManagementId());
+        receiptManage.setBusinessId(id);
+        // 票据类型
+        String receiptType = "";
+        switch (model.getContentType()){
+            case 1: // 定金
+                receiptType = "2";
+                break;
+            case 2: // 首付
+                receiptType = "3";
+                break;
+            case 3: // 银行按揭
+                receiptType = "4";
+                break;
+        }
+        receiptManage.setReceiptType(receiptType);
+        receiptManage.setReceiptMoney(model.getPayMoney());
+        // TODO: 2024/10/21 预收款登记暂无 流水号
+//        receiptManage.setReceiptNumber();
+        receiptManageService.add(receiptManage);
+
         return result;
     }