Explorar o código

1.发票管理新增条件搜索 合计 调整收入表

y %!s(int64=2) %!d(string=hai) anos
pai
achega
5068497985

+ 0 - 47
src/main/java/com/ydtech/constants/enums/inv/InsAccountOperateEnum.java

@@ -1,47 +0,0 @@
-package com.ydtech.constants.enums.inv;
-
-import com.ydtech.aop.request.DictEnum;
-import com.ydtech.utils.StringUtils;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- * @author jianlong
- * @date 2024-01-05 11:46
- */
-@Getter
-@AllArgsConstructor
-@DictEnum(key = "InvAccount", desc = "资金用途")
-public enum InsAccountOperateEnum {
-
-    FISCALPROFIT("0", "财税公司利润"),
-
-    INSURANCEPROFIT("1","保险公司回款"),
-
-
-    CLEARINGPROFIT("2","结算卡"),
-
-    EXTERIORPROFIT("3","外部过账金额"),
-
-    PARKPROFIT("4","园区利润"),
-
-    TIANQINGPROFIT("5","天勤利润"),
-
-    OTHERPROFIT("6","其他利润");
-
-    private final String code;
-
-    private final String desc;
-
-    public static String getNameByCode(String code) {
-        if (StringUtils.isEmpty(code)) {
-            return null;
-        }
-        for (InsAccountOperateEnum value : values()) {
-            if (value.getCode().equals(code)) {
-                return value.getDesc();
-            }
-        }
-        return code;
-    }
-}

+ 42 - 16
src/main/java/com/ydtech/modules/inv/controller/InvAccountIncoiceController.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.core.page.PageRequest;
 import com.ydtech.modules.inv.model.InvAccountIncoice;
+import com.ydtech.modules.inv.model.InvAccountIncoiceResult;
 import com.ydtech.modules.inv.model.vo.InvAccountIncoiceQueryVo;
 import com.ydtech.modules.inv.service.InvAccountIncoiceService;
 import com.ydtech.utils.StringUtils;
@@ -16,6 +17,9 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.stream.DoubleStream;
 
 /**
  * 发票管理表(InvAccountIncoice)表控制层
@@ -34,8 +38,6 @@ public class InvAccountIncoiceController {
     private InvAccountIncoiceService invAccountIncoiceService;
 
 
-
-
     /**
      * 分页查询所有数据
      *
@@ -44,26 +46,52 @@ public class InvAccountIncoiceController {
      */
     @PostMapping("page")
     @ApiOperation("分页查询")
-    public HttpResult<Page<InvAccountIncoice>> selectAll(@RequestBody InvAccountIncoiceQueryVo invAccountIncoice) {
+    public HttpResult selectAll(@RequestBody InvAccountIncoiceQueryVo invAccountIncoice) {
         PageRequest pageRequest = new PageRequest();
         pageRequest.setPageNum(invAccountIncoice.getPageNo());
         pageRequest.setPageSize(invAccountIncoice.getPageSize());
         Page<InvAccountIncoice> page = PageRequest.buildPageRequest(pageRequest);
         LambdaQueryWrapper<InvAccountIncoice> lambdaQuery = new LambdaQueryWrapper<>();
         lambdaQuery
-                .eq(!StringUtils.isEmpty(invAccountIncoice.getBiller()), InvAccountIncoice::getBiller, invAccountIncoice.getBiller())
-                .eq(!StringUtils.isEmpty(invAccountIncoice.getInvoiceBy()), InvAccountIncoice::getInvoiceBy,
+                .like(!StringUtils.isEmpty(invAccountIncoice.getBiller()), InvAccountIncoice::getBiller, invAccountIncoice.getBiller())
+                .like(!StringUtils.isEmpty(invAccountIncoice.getInvoiceBy()), InvAccountIncoice::getInvoiceBy,
                         invAccountIncoice.getInvoiceBy())
-                .eq( InvAccountIncoice::getDelFlag, "0")
+                .eq(InvAccountIncoice::getDelFlag, "0")
                 .eq(!StringUtils.isEmpty(invAccountIncoice.getInvoiceType()), InvAccountIncoice::getInvoiceType,
-                        invAccountIncoice.getInvoiceType());
+                        invAccountIncoice.getInvoiceType())
+                .like(!StringUtils.isEmpty(invAccountIncoice.getOtherUnit()), InvAccountIncoice::getOtherUnit,invAccountIncoice.getOtherUnit());
+
 
         if (!ObjectUtils.isEmpty(invAccountIncoice.getInvoiceTime())) {
             lambdaQuery.eq(InvAccountIncoice::getInvoiceTime, invAccountIncoice.getInvoiceTime().toString());
         }
 
         Page<InvAccountIncoice> invAccountIncoicePage = this.invAccountIncoiceService.page(page, lambdaQuery);
-        return HttpResult.ok(invAccountIncoicePage);
+
+        InvAccountIncoiceResult invAccountIncoiceResult = new InvAccountIncoiceResult();
+        invAccountIncoiceResult.setRecords(invAccountIncoicePage.getRecords());
+        invAccountIncoiceResult.setPages(invAccountIncoicePage.getPages());
+        invAccountIncoiceResult.setTotal(invAccountIncoicePage.getTotal());
+        invAccountIncoiceResult.setSize(invAccountIncoicePage.getSize());
+
+        List<InvAccountIncoice> records = invAccountIncoicePage.getRecords();
+        invAccountIncoiceResult.setNotPayoutMoneySum("0");
+        invAccountIncoiceResult.setInvoiceMoneySum("0");
+        invAccountIncoiceResult.setNoHasTaxSum("0");
+        invAccountIncoiceResult.setInvoiceNumSum("0");
+        invAccountIncoiceResult.setPayoutMoneySum("0");
+        invAccountIncoiceResult.setTaxSum("0");
+
+        records.forEach(inv -> {
+            invAccountIncoiceResult.setNotPayoutMoneySum(String.valueOf(new BigDecimal(inv.getInvoiceMoney()).add(new BigDecimal(invAccountIncoiceResult.getNotPayoutMoneySum()))));
+            invAccountIncoiceResult.setInvoiceMoneySum(String.valueOf(new BigDecimal(inv.getInvoiceMoney()).add(new BigDecimal(invAccountIncoiceResult.getInvoiceMoneySum()))));
+            invAccountIncoiceResult.setNoHasTaxSum(String.valueOf(new BigDecimal(inv.getNoHasTax()).add(new BigDecimal(invAccountIncoiceResult.getNoHasTaxSum()))));
+            invAccountIncoiceResult.setInvoiceNumSum(String.valueOf(new BigDecimal(inv.getInvoiceNum()).add(new BigDecimal(invAccountIncoiceResult.getInvoiceNumSum()))));
+            invAccountIncoiceResult.setPayoutMoneySum(String.valueOf(new BigDecimal(inv.getPayoutMoney()).add(new BigDecimal(invAccountIncoiceResult.getPayoutMoneySum()))));
+            invAccountIncoiceResult.setTaxSum(String.valueOf(new BigDecimal(inv.getTax()).add(new BigDecimal(invAccountIncoiceResult.getTaxSum()))));
+        });
+
+        return HttpResult.ok(invAccountIncoiceResult);
     }
 
     /**
@@ -91,17 +119,15 @@ public class InvAccountIncoiceController {
     }
 
     /**
-     * 修改数据
-     *
-     * @param invAccountIncoice 实体对象
-     * @return 修改结果
+     * 新增收入
      */
-    @PutMapping
-    @ApiOperation("修改")
-    public HttpResult update(@RequestBody InvAccountIncoice invAccountIncoice) {
-        return HttpResult.ok(this.invAccountIncoiceService.updateById(invAccountIncoice));
+    @PostMapping("update")
+    @ApiOperation("新增收入")
+    public HttpResult updateIncome(@RequestBody InvAccountIncoice invAccountIncoice) {
+        return this.invAccountIncoiceService.updateInvAccountIncoice(invAccountIncoice);
     }
 
+
     /**
      * 撤销
      */

+ 9 - 0
src/main/java/com/ydtech/modules/inv/model/InvAccountIncoice.java

@@ -156,6 +156,15 @@ public class InvAccountIncoice implements Serializable{
     private String company;
 
 
+    /**
+     * 资金用途
+     */
+    @ApiModelProperty(value = "资金用途")
+    @TableField(exist = false)
+    private String fundUse;
+
+
+
     @TableField(exist = false)
     private int pageNo;
 

+ 38 - 0
src/main/java/com/ydtech/modules/inv/model/InvAccountIncoiceResult.java

@@ -0,0 +1,38 @@
+package com.ydtech.modules.inv.model;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author jianlong
+ * @date 2024-01-26 08:55
+ */
+@Data
+public class InvAccountIncoiceResult {
+    private long size;
+    private long total;
+    private long pages;
+    private List<InvAccountIncoice> records;
+
+    @ApiModelProperty("开票金额总和")
+    private String invoiceMoneySum;
+
+    @ApiModelProperty("进账金额总和")
+    private String payoutMoneySum;
+
+    @ApiModelProperty("未进账金额总和")
+    private String notPayoutMoneySum;
+
+    @ApiModelProperty("开票数总和")
+    private String invoiceNumSum;
+
+    @ApiModelProperty("税额总和")
+    private String taxSum;
+
+    @ApiModelProperty("不含税金额总和")
+    private String noHasTaxSum;
+
+
+}

+ 3 - 0
src/main/java/com/ydtech/modules/inv/model/vo/InvAccountIncoiceQueryVo.java

@@ -20,6 +20,9 @@ public class InvAccountIncoiceQueryVo implements Serializable {
     @ApiModelProperty(value = "开票方")
     private String invoiceBy;
 
+    @ApiModelProperty(value = "对方单位")
+    private String otherUnit;
+
     @ApiModelProperty(value = "开票日期")
     @JsonFormat(pattern = "yyyy-MM-dd")
     private LocalDate invoiceTime;

+ 2 - 0
src/main/java/com/ydtech/modules/inv/service/InvAccountIncoiceService.java

@@ -15,6 +15,8 @@ public interface InvAccountIncoiceService extends IService<InvAccountIncoice> {
 
     HttpResult insertInvAccountIncoice(InvAccountIncoice invAccountIncoice);
 
+    HttpResult updateInvAccountIncoice(InvAccountIncoice invAccountIncoice);
+
     HttpResult delInvAccountIncoice(InvAccountIncoice invAccountIncoice);
 
 }

+ 8 - 0
src/main/java/com/ydtech/modules/inv/service/impl/InvAccountCardServiceImpl.java

@@ -78,6 +78,14 @@ public class InvAccountCardServiceImpl extends ServiceImpl<InvAccountCardMapper,
         invAccountCard.setPubYearExcess(null);
         invAccountCard.setPriDayLinesExcess(null);
         invAccountCard.setPriYearExcess(null);
+        invAccountCard.setOtherProfit(null);
+        invAccountCard.setTianqinProfit(null);
+        invAccountCard.setParkProfit(null);
+        invAccountCard.setExteriorProfit(null);
+        invAccountCard.setClearingProfit(null);
+        invAccountCard.setInsuranceProfit(null);
+        invAccountCard.setFiscalProfit(null);
+        invAccountCard.setSpend(null);
 
         InvAccountCard oldInvAccountCard = invAccountCardMapper.selectById(invAccountCard.getBankCardNum());
         //判断是否修改额度

+ 39 - 11
src/main/java/com/ydtech/modules/inv/service/impl/InvAccountIncoiceServiceImpl.java

@@ -40,35 +40,63 @@ public class InvAccountIncoiceServiceImpl extends ServiceImpl<InvAccountIncoiceM
     public HttpResult insertInvAccountIncoice(InvAccountIncoice invAccountIncoice) {
         BigDecimal tax = getBigDecimal(invAccountIncoice);
         //不含税金额
-        BigDecimal noHasTax = new BigDecimal(invAccountIncoice.getInvoiceMoney()).subtract(tax);
+        BigDecimal noHasTax  = new BigDecimal(invAccountIncoice.getInvoiceMoney()).subtract(tax);
+        invAccountIncoice.setNotPayoutMoney(invAccountIncoice.getInvoiceMoney());
 
         //税额
-        invAccountIncoice.setTax(tax.toString());
+        invAccountIncoice.setTax(noHasTax.toString());
         //不含税金额
-        invAccountIncoice.setNoHasTax(noHasTax.toString());
+        invAccountIncoice.setNoHasTax(tax.toString());
+
+
+
+
+
+        return  HttpResult.ok(invAccountIncoiceMapper.insert(invAccountIncoice));
+    }
+
+    /**
+     * 新增收入
+     * @param invAccountIncoice
+     * @return
+     */
+    @Override
+    public HttpResult updateInvAccountIncoice(InvAccountIncoice invAccountIncoice) {
+        InvAccountIncoice invAccountIncoice1 = invAccountIncoiceMapper.selectById(invAccountIncoice.getInvoiceId());
+
+        if(new BigDecimal(invAccountIncoice1.getInvoiceMoney()).subtract(new BigDecimal(invAccountIncoice1.getPayoutMoney()).add(new BigDecimal(invAccountIncoice.getPayoutMoney()))).compareTo(new BigDecimal("0")) < 0){
+            throw new SystemException("进账金额大于开票金额");
+        }
 
         //进账卡号
-        String bankCardNum = invAccountIncoice.getBankCardNum();
+        String bankCardNum = invAccountIncoice1.getBankCardNum();
         //进账金额
-        String payoutMoney = invAccountIncoice.getPayoutMoney();
+        String payoutMoney = new BigDecimal(invAccountIncoice.getPayoutMoney()).add(new BigDecimal(invAccountIncoice1.getPayoutMoney())).toString();
+        invAccountIncoice1.setPayoutMoney(payoutMoney);
+        invAccountIncoice1.setNotPayoutMoney(new BigDecimal(invAccountIncoice1.getInvoiceMoney()).subtract(new BigDecimal(payoutMoney)).toString());
+
+
 
-        //新增发票增加卡的收入
+        //修改发票增加卡的收入
         InvAccountOperate invAccountOperate = new InvAccountOperate();
         invAccountOperate.setEnterCardId(bankCardNum);
         invAccountOperate.setApplyAmount(payoutMoney);
-        invAccountOperate.setRemark(invAccountIncoice.getRemark());
+        invAccountOperate.setRemark(invAccountIncoice1.getRemark());
         invAccountOperate.setRevenueOutlay("0");
-        invAccountOperate.setBigApplyAmount(invAccountIncoice.getBigApplyAmount());
         invAccountOperate.setFundFlow(invAccountIncoice.getFundFlow());
         invAccountOperate.setPayMethod(invAccountIncoice.getPayMethod());
-        invAccountOperate.setCompany(invAccountIncoice.getCompany());
+        invAccountOperate.setCompany(invAccountIncoice1.getOtherUnit());
+        invAccountOperate.setFundUse(invAccountIncoice.getFundUse());
 
-        invAccountIncoiceMapper.insert(invAccountIncoice);
+        invAccountIncoiceMapper.updateById(invAccountIncoice1);
 
 
-        return  invAccountOperateService.insertIncoice(invAccountOperate,invAccountIncoice.getBankCardNum());
+        return  invAccountOperateService.insertIncoice(invAccountOperate,invAccountIncoice1.getBankCardNum());
     }
 
+
+
+
     private static BigDecimal getBigDecimal(InvAccountIncoice invAccountIncoice) {
         if (invAccountIncoice.getRate().isEmpty()){
             throw new SystemException("请填写税率");

+ 1 - 3
src/main/java/com/ydtech/modules/inv/utils/EasyExcelUtils.java

@@ -1,9 +1,7 @@
 package com.ydtech.modules.inv.utils;
 
 import com.alibaba.excel.EasyExcel;
-import com.alibaba.excel.read.listener.PageReadListener;
 import com.alibaba.excel.write.builder.ExcelWriterBuilder;
-import com.ydtech.constants.enums.inv.InsAccountOperateEnum;
 import com.ydtech.constants.enums.inv.InvPayMethodEnum;
 import com.ydtech.modules.inv.model.InvAccountExcel;
 import com.ydtech.modules.inv.model.excel.InvSettlementSourceExcel;
@@ -81,7 +79,7 @@ public class EasyExcelUtils {
                 String file = date.getTime() + ".xlsx";
                 String fileName = uploadFilePath + file;
                 excel.setExcelApplyTime(new SimpleDateFormat("yyyy-MM-dd").format(excel.getApplyTime()));
-                excel.setRemark(InsAccountOperateEnum.getNameByCode(excel.getRemark()));
+                excel.setRemark(excel.getRemark());
                 String payMethod = excel.getPayMethod();
                 String[] split = payMethod.split(",");
                 StringBuilder a = new StringBuilder();

+ 1 - 2
src/main/java/com/ydtech/modules/inv/utils/TransferUtils.java

@@ -1,6 +1,5 @@
 package com.ydtech.modules.inv.utils;
 
-import com.ydtech.constants.enums.inv.InsAccountOperateEnum;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.inv.model.*;
 
@@ -45,7 +44,7 @@ public class TransferUtils {
         invAccountOperate.setFundFlow(invAccountExcel.getFundFlow());
         invAccountOperate.setFundUse(invAccountExcel.getFundUse());
         invAccountOperate.setPayMethod(invAccountExcel.getPayMethod());
-        invAccountOperate.setRemark(InsAccountOperateEnum.getNameByCode(invAccountExcel.getRemark()));
+        invAccountOperate.setRemark(invAccountExcel.getRemark());
         invAccountOperate.setCompany(invAccountExcel.getCompany());
         invAccountOperate.setApplyAmount(invAccountExcel.getApplyAmount());
         invAccountOperate.setBigApplyAmount(invAccountExcel.getBigApplyAmount());

+ 9 - 12
src/main/resources/mapper/modules/inv/InvAccountOperateMapper.xml

@@ -34,28 +34,25 @@
             from inv_account_operate
         where 1=1
         <if test="insAccountOperate.accountOperateId != null and insAccountOperate.accountOperateId != ''">
-            and account_operate_id = #{insAccountOperate.accountOperateId}
+            and account_operate_id like concat('%',#{insAccountOperate.accountOperateId},'%')
         </if>
         <if test="insAccountOperate.applicant != null and insAccountOperate.applicant != ''">
-            and applicant = #{insAccountOperate.applicant}
+            and applicant like concat('%',#{insAccountOperate.applicant},'%')
         </if>
-        <if test="insAccountOperate.applySector != null and insAccountOperate.applySector != ''">
-            and apply_sector = #{insAccountOperate.applySector}
+        <if test="insAccountOperate.company != null and insAccountOperate.company != ''">
+            and company like concat('%',#{insAccountOperate.company},'%')
         </if>
-        <if test="insAccountOperate.applyTime != null">
-            and apply_time = #{insAccountOperate.applyTime}
-        </if>
-        <if test="insAccountOperate.collectionMessage != null and insAccountOperate.collectionMessage != ''">
-            and collection_message = #{insAccountOperate.collectionMessage}
+        <if test="insAccountOperate.fundUse != null and insAccountOperate.fundUse != ''">
+            and fund_use like concat('%',#{insAccountOperate.fundUse},'%')
         </if>
         <if test="insAccountOperate.fundFlow != null and insAccountOperate.fundFlow != ''">
-            and fund_flow = #{insAccountOperate.fundFlow}
+            and fund_flow like concat('%',#{insAccountOperate.fundFlow},'%')
         </if>
         <if test="insAccountOperate.revenueOutlay != null and insAccountOperate.revenueOutlay != ''">
-            and revenue_outlay = #{insAccountOperate.revenueOutlay}
+            and revenue_outlay like concat('%',#{insAccountOperate.revenueOutlay},'%')
         </if>
         <if test="insAccountOperate.invoiceId != null and insAccountOperate.invoiceId != ''">
-            and invoice_id = #{insAccountOperate.invoiceId}
+            and invoice_id like concat('%',#{insAccountOperate.invoiceId},'%')
         </if>
     </select>
 </mapper>