Procházet zdrojové kódy

1.新增土规项目开票接口
2.土规我的项目返回orderFundId

GouGengquan před 5 měsíci
rodič
revize
650d45a227

+ 9 - 0
biz-base/src/main/java/com/dayou/controller/FinanceInvoiceController.java

@@ -1,6 +1,7 @@
 package com.dayou.controller;
 
 import cn.hutool.core.bean.BeanUtil;
+import com.dayou.dto.ItemAddFinanceInvoiceDTO;
 import com.dayou.dto.MajorProductionSimpleDTO;
 import com.dayou.vo.FinanceInvoiceApplyExportVo;
 import com.dayou.vo.FinanceInvoiceDestroyExportVo;
@@ -97,6 +98,14 @@ public class FinanceInvoiceController extends BaseController {
     }
 
     /**
+     * 土规项目财务开票新增
+     */
+    @PostMapping("item/add")
+    public RestResponse<Long> save(@RequestBody ItemAddFinanceInvoiceDTO dto) {
+        return RestResponse.data(financeInvoiceService.itemAdd(dto));
+    }
+
+    /**
      * 财务开票更新
      */
     @PutMapping("")

+ 3 - 1
dao/src/main/resources/mapper/ItemMapper.xml

@@ -100,10 +100,12 @@
         '未开始'
         ELSE ''
         END
-        ) AS itemStatus
+        ) AS itemStatus,
+        order_fund.id AS orderFundId
         FROM
         item i left join department d on i.department_id = d.id  left join dict_data dd1 on i.cate = dd1.id and dd1.deleted =0
         left join dict_data dd2 on i.business_source = dd2.id and dd2.deleted = 0 left join user u on u.id = i.user_id left join customer c on c.id = i.customer_id
+        LEFT JOIN order_fund ON order_fund.business_id = i.id AND order_fund.order_id = business_no AND order_fund.business_type = 'ITEM_BUSINESS' AND order_fund.deleted = 0
         where i.deleted = 0
     </sql>
 

+ 139 - 0
domain/src/main/java/com/dayou/dto/ItemAddFinanceInvoiceDTO.java

@@ -0,0 +1,139 @@
+package com.dayou.dto;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+/**
+ * 土规新增开票DTO
+ */
+@Data
+public class ItemAddFinanceInvoiceDTO {
+
+    /**
+     * 实收款id
+     */
+    private Long realFundId;
+
+    /**
+     * 订单收款id
+     */
+    private Long orderFundId;
+
+    /**
+     * 产品收款id
+     */
+    private Long productionFundId;
+
+    /**
+     * 发票抬头
+     */
+    private String title;
+
+    /**
+     * 发票类型
+     */
+    private String type;
+
+    /**
+     * 税号
+     */
+    private String taxNo;
+
+    /**
+     * 计划开票金额
+     */
+    private BigDecimal planAmount;
+
+    /**
+     * 实际开票金额
+     */
+    private BigDecimal realAmount;
+
+    /**
+     * 计划开票日期
+     */
+    private LocalDate planMakeDate;
+
+    /**
+     * 实际开票时间
+     */
+    private LocalDate realMakeDate;
+
+    /**
+     * 开票状态(审核中,驳回,作废,待开票,已开票)
+     */
+    private String state;
+
+    /**
+     * 驳回/作废原因
+     */
+    private String reason;
+
+    /**
+     * 申请人id
+     */
+    private Long applyId;
+
+    /**
+     * 审核人id
+     */
+    private Long checkerId;
+
+    /**
+     * 开票人id
+     */
+    private Long makerId;
+
+    /**
+     * 开户银行
+     */
+    private String bankName;
+
+    /**
+     * 银行账号
+     */
+    private String bankAccount;
+
+    /**
+     * 银行地址
+     */
+    private String bankAddress;
+
+    /**
+     * 银行电话
+     */
+    private String bankTel;
+
+    /**
+     * 开票项目
+     */
+    private String makeItem;
+
+    /**
+     * 项目数量
+     */
+    private Integer itemQuantity;
+
+    /**
+     * 计量单位
+     */
+    private String itemUnit;
+
+    /**
+     * 税点(%)
+     */
+    private BigDecimal taxRate;
+
+    /**
+     * 税额
+     */
+    private BigDecimal taxAmount;
+
+    /**
+     * 土规项目id
+     */
+    private Long itemId;
+
+}

+ 5 - 0
domain/src/main/java/com/dayou/vo/ItemVO.java

@@ -57,6 +57,11 @@ public class ItemVO extends Item {
      */
     private Long stageId;
 
+    /**
+     * 项目收款id
+     */
+    private Long orderFundId;
+
 
 
 

+ 8 - 0
service/src/main/java/com/dayou/service/IFinanceInvoiceService.java

@@ -1,5 +1,6 @@
 package com.dayou.service;
 
+import com.dayou.dto.ItemAddFinanceInvoiceDTO;
 import com.dayou.dto.MajorProductionSimpleDTO;
 import com.dayou.entity.FinanceInvoice;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -35,6 +36,13 @@ public interface IFinanceInvoiceService extends IService<FinanceInvoice> {
 
     Boolean add(FinanceInvoice financeInvoice);
 
+    /**
+     * 土规开票
+     * @param dto 开票信息
+     * @return Boolean
+     */
+    Long itemAdd(ItemAddFinanceInvoiceDTO dto);
+
     Boolean update(FinanceInvoice financeInvoice);
 
     Boolean invoiceCheck(FinanceInvoice financeInvoice);

+ 45 - 0
service/src/main/java/com/dayou/service/impl/FinanceInvoiceServiceImpl.java

@@ -1,12 +1,16 @@
 package com.dayou.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.dayou.common.BaseEntity;
+import com.dayou.dto.ItemAddFinanceInvoiceDTO;
 import com.dayou.dto.MajorProductionSimpleDTO;
 import com.dayou.entity.FinanceInvoice;
+import com.dayou.entity.Item;
 import com.dayou.entity.MajorProduction;
+import com.dayou.entity.OrderFund;
 import com.dayou.enums.FinanceInvoiceState;
 import com.dayou.enums.ReportStatus;
 import com.dayou.exception.ErrorCode;
@@ -14,6 +18,8 @@ import com.dayou.mapper.FinanceInvoiceMapper;
 import com.dayou.mapper.MajorProductionMapper;
 import com.dayou.service.IFinanceInvoiceService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dayou.service.IItemService;
+import com.dayou.service.IOrderFundService;
 import com.dayou.utils.LoginContext;
 import com.dayou.vo.FinanceInvoiceVo;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -41,6 +47,8 @@ import java.util.stream.Collectors;
 import org.springframework.transaction.annotation.Transactional;
 import com.dayou.enums.BatchTaskTypeEnum;
 
+import static com.dayou.enums.MainBusinessEnum.ITEM_BUSINESS;
+
 /**
  * <p>
  * 财务开票 服务实现类
@@ -59,6 +67,12 @@ public class FinanceInvoiceServiceImpl extends ServiceImpl<FinanceInvoiceMapper,
     @Autowired
     private MajorProductionMapper majorProductionMapper;
 
+    @Autowired
+    private IItemService iItemService;
+
+    @Autowired
+    private IOrderFundService orderFundService;
+
     @Override
     @SuppressWarnings("unchecked")
     public Page<FinanceInvoiceVo> selectPage(Page page,FinanceInvoice financeInvoice,String keyword){
@@ -89,6 +103,37 @@ public class FinanceInvoiceServiceImpl extends ServiceImpl<FinanceInvoiceMapper,
         return  this.save(financeInvoice);
     }
 
+    /**
+     * 新增土规项目开票申请
+     * @param dto 开票信息
+     * @return orderFundId
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Long itemAdd(ItemAddFinanceInvoiceDTO dto) {
+        //检查是否有订单收款记录
+        Item item = iItemService.getById(dto.getItemId());
+
+        // orderFundId为null的话就新增一条
+        if (ObjectUtil.isNull(dto.getOrderFundId())) {
+            //创建订单收款记录
+            OrderFund orderFund = new OrderFund();
+            orderFund.setShouldAmount(item.getAmount());
+            orderFund.setOrderName(item.getName());
+            orderFund.setOrderId(item.getBusinessNo());
+            orderFund.setBusinessId(item.getId());
+            orderFund.setBusinessType(ITEM_BUSINESS.name());
+            orderFundService.add(orderFund);
+            dto.setOrderFundId(orderFund.getId());
+        }
+
+        // 新增开票记录
+        FinanceInvoice financeInvoice = BeanUtil.toBean(dto, FinanceInvoice.class);
+        financeInvoice.setOrderFundId(dto.getOrderFundId());
+        add(financeInvoice);
+        return dto.getOrderFundId();
+    }
+
     @Override
     public Boolean update(FinanceInvoice financeInvoice){
 //        financeInvoice.setCheckerId(LoginContext.getCurrentUserId());