Bläddra i källkod

回付款比例在sql中计算

lamphua 1 månad sedan
förälder
incheckning
c503da6e0d

+ 0
- 19
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcContractController.java Visa fil

272
     public void export(HttpServletResponse response, CmcContract cmcContract, String selectFields)
272
     public void export(HttpServletResponse response, CmcContract cmcContract, String selectFields)
273
     {
273
     {
274
         List<CmcContract> list = cmcContractService.selectCmcContractList(cmcContract);
274
         List<CmcContract> list = cmcContractService.selectCmcContractList(cmcContract);
275
-        for (CmcContract contract : list) {
276
-            CmcContractPaid cmcContractPaid = new CmcContractPaid();
277
-            cmcContractPaid.setContractId(contract.getContractId());
278
-            List<CmcContractPaid> cmcContractPaidList = cmcContractPaidService.selectCmcContractPaidList(cmcContractPaid);
279
-            BigDecimal paidAmount = new BigDecimal("0.00");
280
-            String paidPercentage = "";
281
-            for (CmcContractPaid contractPaid : cmcContractPaidList) {
282
-                paidAmount = paidAmount.add(contractPaid.getPaidAmount());
283
-            }
284
-            contract.setPaidAmount(paidAmount);
285
-            if (contract.getAmount().equals(new BigDecimal("0.00")) || paidAmount.equals(new BigDecimal("0.00"))) {
286
-                paidPercentage = "0%";
287
-            }
288
-            else {
289
-                paidPercentage = paidAmount.divide(contract.getAmount(), RoundingMode.HALF_UP).multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%";
290
-            }
291
-            contract.setPaidAmount(paidAmount);
292
-            contract.setPaidPercentage(paidPercentage);
293
-        }
294
         List<String> selectFieldList = Arrays.asList(selectFields.split(","));
275
         List<String> selectFieldList = Arrays.asList(selectFields.split(","));
295
         ExcelUtil<CmcContract> util = new ExcelUtil<CmcContract>(CmcContract.class);
276
         ExcelUtil<CmcContract> util = new ExcelUtil<CmcContract>(CmcContract.class);
296
         util.exportExcel(response, selectFieldList, list, "cmc合同评审数据", StringUtils.EMPTY);
277
         util.exportExcel(response, selectFieldList, list, "cmc合同评审数据", StringUtils.EMPTY);

+ 14
- 0
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcSubContractController.java Visa fil

10
 import com.alibaba.fastjson2.JSONObject;
10
 import com.alibaba.fastjson2.JSONObject;
11
 import com.ruoyi.common.utils.DateUtils;
11
 import com.ruoyi.common.utils.DateUtils;
12
 import com.ruoyi.common.utils.SnowFlake;
12
 import com.ruoyi.common.utils.SnowFlake;
13
+import com.ruoyi.common.utils.StringUtils;
13
 import com.ruoyi.oa.domain.*;
14
 import com.ruoyi.oa.domain.*;
14
 import com.ruoyi.oa.domain.CmcSubContract;
15
 import com.ruoyi.oa.domain.CmcSubContract;
15
 import com.ruoyi.oa.service.ICmcPartnerService;
16
 import com.ruoyi.oa.service.ICmcPartnerService;
67
         util.exportExcel(response, list, "cmc分包合同评审数据");
68
         util.exportExcel(response, list, "cmc分包合同评审数据");
68
     }
69
     }
69
 
70
 
71
+    /**
72
+     * 导出选择字段cmc分包合同评审列表
73
+     */
74
+    @Log(title = "cmc分包合同评审", businessType = BusinessType.EXPORT)
75
+    @PostMapping("/exportSelectFields")
76
+    public void export(HttpServletResponse response, CmcSubContract cmcSubContract, String selectFields)
77
+    {
78
+        List<CmcSubContract> list = cmcSubContractService.selectCmcSubContractList(cmcSubContract);
79
+        List<String> selectFieldList = Arrays.asList(selectFields.split(","));
80
+        ExcelUtil<CmcSubContract> util = new ExcelUtil<CmcSubContract>(CmcSubContract.class);
81
+        util.exportExcel(response, selectFieldList, list, "cmc分包合同评审数据", StringUtils.EMPTY);
82
+    }
83
+
70
     /**
84
     /**
71
      * 获取cmc分包合同评审详细信息
85
      * 获取cmc分包合同评审详细信息
72
      */
86
      */

+ 30
- 4
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/domain/CmcContract.java Visa fil

56
     @Excel(name = "合同金额")
56
     @Excel(name = "合同金额")
57
     private BigDecimal amount;
57
     private BigDecimal amount;
58
 
58
 
59
-    /** 实际回款金额 */
60
-    @Excel(name = "实际回款金额")
59
+    /** 开票金额 */
60
+    @Excel(name = "开票金额")
61
+    private BigDecimal invoiceAmount;
62
+
63
+    /** 开票比例 */
64
+    @Excel(name = "开票比例")
65
+    private String invoicePercentage;
66
+
67
+    /** 回款金额 */
68
+    @Excel(name = "回款金额")
61
     private BigDecimal paidAmount;
69
     private BigDecimal paidAmount;
62
 
70
 
63
-    /** 实际回款比例 */
64
-    @Excel(name = "实际回款比例")
71
+    /** 回款比例 */
72
+    @Excel(name = "回款比例")
65
     private String paidPercentage;
73
     private String paidPercentage;
66
 
74
 
67
     /** 履约保证金 */
75
     /** 履约保证金 */
294
     {
302
     {
295
         return paidPercentage;
303
         return paidPercentage;
296
     }
304
     }
305
+    public void setInvoiceAmount(BigDecimal invoiceAmount)
306
+    {
307
+        this.invoiceAmount = invoiceAmount;
308
+    }
309
+
310
+    public BigDecimal getInvoiceAmount()
311
+    {
312
+        return invoiceAmount;
313
+    }
314
+    public void setInvoicePercentage(String invoicePercentage)
315
+    {
316
+        this.invoicePercentage = invoicePercentage;
317
+    }
318
+
319
+    public String getInvoicePercentage()
320
+    {
321
+        return invoicePercentage;
322
+    }
297
     public void setDeposit(BigDecimal deposit)
323
     public void setDeposit(BigDecimal deposit)
298
     {
324
     {
299
         this.deposit = deposit;
325
         this.deposit = deposit;

+ 41
- 2
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/domain/CmcSubContract.java Visa fil

30
     @Excel(name = "分包合同金额")
30
     @Excel(name = "分包合同金额")
31
     private BigDecimal subAmount;
31
     private BigDecimal subAmount;
32
 
32
 
33
-    /** 实际付款金额 */
34
-    @Excel(name = "实际付款金额")
33
+    /** 收票金额 */
34
+    @Excel(name = "收票金额")
35
+    private BigDecimal invoiceAmount;
36
+
37
+    /** 收票比例 */
38
+    @Excel(name = "收票比例")
39
+    private String invoicePercentage;
40
+
41
+    /** 付款金额 */
42
+    @Excel(name = "付款金额")
35
     private BigDecimal paidAmount;
43
     private BigDecimal paidAmount;
36
 
44
 
45
+    /** 付款比例 */
46
+    @Excel(name = "付款比例")
47
+    private String paidPercentage;
48
+
37
     /** 项目id */
49
     /** 项目id */
38
     @Excel(name = "项目编号")
50
     @Excel(name = "项目编号")
39
     private String projectNumber;
51
     private String projectNumber;
179
     {
191
     {
180
         return paidAmount;
192
         return paidAmount;
181
     }
193
     }
194
+    public void setPaidPercentage(String paidPercentage)
195
+    {
196
+        this.paidPercentage = paidPercentage;
197
+    }
198
+
199
+    public String getPaidPercentage()
200
+    {
201
+        return paidPercentage;
202
+    }
203
+    public void setInvoiceAmount(BigDecimal invoiceAmount)
204
+    {
205
+        this.invoiceAmount = invoiceAmount;
206
+    }
207
+
208
+    public BigDecimal getInvoiceAmount()
209
+    {
210
+        return invoiceAmount;
211
+    }
212
+    public void setInvoicePercentage(String invoicePercentage)
213
+    {
214
+        this.invoicePercentage = invoicePercentage;
215
+    }
216
+
217
+    public String getInvoicePercentage()
218
+    {
219
+        return invoicePercentage;
220
+    }
182
     public void setPartnerId(String partnerId)
221
     public void setPartnerId(String partnerId)
183
     {
222
     {
184
         this.partnerId = partnerId;
223
         this.partnerId = partnerId;

+ 12
- 4
oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcContractMapper.xml Visa fil

17
         <result property="borrowAmount"    column="borrow_amount"    />
17
         <result property="borrowAmount"    column="borrow_amount"    />
18
         <result property="settleAmount"    column="settle_amount"    />
18
         <result property="settleAmount"    column="settle_amount"    />
19
         <result property="paidAmount"    column="paid_amount"    />
19
         <result property="paidAmount"    column="paid_amount"    />
20
+        <result property="paidPercentage"    column="paid_percentage"    />
21
+        <result property="invoiceAmount"    column="invoice_amount"    />
22
+        <result property="invoicePercentage"    column="invoice_percentage"    />
20
         <result property="deposit"    column="deposit"    />
23
         <result property="deposit"    column="deposit"    />
21
         <result property="contractDocument"    column="contract_document"    />
24
         <result property="contractDocument"    column="contract_document"    />
22
         <result property="drafter"    column="drafter"    />
25
         <result property="drafter"    column="drafter"    />
75
 
78
 
76
     <sql id="selectCmcContractVo">
79
     <sql id="selectCmcContractVo">
77
         select distinct c.contract_id, c.contract_code, c.contract_name, c.contract_number, c.tender_id, t.project_name as t_project_name, p.project_number, p.project_name,
80
         select distinct c.contract_id, c.contract_code, c.contract_name, c.contract_number, c.tender_id, t.project_name as t_project_name, p.project_number, p.project_name,
78
-               p.project_source, c.party_a_id, pa.party_a_name, t.a_person as a_person, t.a_phone as a_phone, t.agent as agent, t.agent_person as agent_person, sum(cp.paid_amount) as paid_amount,
79
-               t.agent_phone as agent_phone, c.amount, c.deposit, c.contract_document, c.drafter, u.nick_name as draft_nick_name, c.draft_time, c.remark, c.sign_date, c.sign_remark, c.sign_scan,
80
-               c.comment_type, c.manager_comment, c.manager_user_id, u1.nick_name as manager_nick_name, c.manager_time, c.gm_user_id, u2.nick_name as gm_nick_name, c.gm_time, c.gm_comment from cmc_contract as c
81
+        p.project_source, c.party_a_id, pa.party_a_name, t.a_person as a_person, t.a_phone as a_phone, t.agent as agent, t.agent_person as agent_person,
82
+        sum(cp.paid_amount) as paid_amount, case c.amount when 0 then '0.00%' else concat(convert(round(sum(cp.paid_amount) / c.amount * 100, 2), CHAR), '%') end as paid_percentage,
83
+        sum(ci.invoice_amount) as invoice_amount, case c.amount when 0 then '0.00%' else concat(convert(round(sum(ci.invoice_amount) / c.amount * 100, 2), CHAR), '%') end as invoice_percentage,
84
+        t.agent_phone as agent_phone, c.amount, c.deposit, c.contract_document, c.drafter, u.nick_name as draft_nick_name, c.draft_time, c.remark, c.sign_date, c.sign_remark, c.sign_scan,
85
+        c.comment_type, c.manager_comment, c.manager_user_id, u1.nick_name as manager_nick_name, c.manager_time, c.gm_user_id, u2.nick_name as gm_nick_name, c.gm_time, c.gm_comment from cmc_contract as c
81
         left join sys_user as u on u.user_id = c.drafter
86
         left join sys_user as u on u.user_id = c.drafter
82
         left join sys_user as u1 on u1.user_id = c.manager_user_id
87
         left join sys_user as u1 on u1.user_id = c.manager_user_id
83
         left join sys_user as u2 on u2.user_id = c.gm_user_id
88
         left join sys_user as u2 on u2.user_id = c.gm_user_id
86
         left join cmc_project_contract as pc on pc.contract_id = c.contract_id
91
         left join cmc_project_contract as pc on pc.contract_id = c.contract_id
87
         left join cmc_project as p on pc.project_id = p.project_id
92
         left join cmc_project as p on pc.project_id = p.project_id
88
         left join cmc_contract_paid as cp on cp.contract_id = c.contract_id
93
         left join cmc_contract_paid as cp on cp.contract_id = c.contract_id
94
+        left join cmc_contract_invoice as ci on ci.contract_id = c.contract_id
89
     </sql>
95
     </sql>
90
 
96
 
91
     <select id="selectCmcContractList" parameterType="CmcContract" resultMap="CmcContractResult">
97
     <select id="selectCmcContractList" parameterType="CmcContract" resultMap="CmcContractResult">
116
 
122
 
117
     <select id="selectCmcContractListFuzzy" parameterType="CmcContract" resultMap="CmcContractResult">
123
     <select id="selectCmcContractListFuzzy" parameterType="CmcContract" resultMap="CmcContractResult">
118
         select distinct c.contract_id, c.contract_code, c.contract_name, c.contract_number, c.tender_id, t.project_name as t_project_name, p.project_number, p.project_name,
124
         select distinct c.contract_id, c.contract_code, c.contract_name, c.contract_number, c.tender_id, t.project_name as t_project_name, p.project_number, p.project_name,
119
-        p.project_source, c.party_a_id, pa.party_a_name, t.a_person as a_person, t.a_phone as a_phone, t.agent as agent, t.agent_person as agent_person, sum(cp.paid_amount) as paid_amount,
125
+        p.project_source, c.party_a_id, pa.party_a_name, t.a_person as a_person, t.a_phone as a_phone, t.agent as agent, t.agent_person as agent_person,
126
+        sum(cp.paid_amount) as paid_amount, case c.amount when 0 then '0.00%' else concat(convert(round(sum(cp.paid_amount) / c.amount * 100, 2), CHAR), '%') end as paid_percentage,
127
+        sum(ci.invoice_amount) as invoice_amount, case c.amount when 0 then '0.00%' else concat(convert(round(sum(ci.invoice_amount) / c.amount * 100, 2), CHAR), '%') end as invoice_percentage,
120
         t.agent_phone as agent_phone, c.amount, c.deposit, c.contract_document, c.drafter, u.nick_name as draft_nick_name, c.draft_time, c.remark, c.sign_date, c.sign_remark, c.sign_scan,
128
         t.agent_phone as agent_phone, c.amount, c.deposit, c.contract_document, c.drafter, u.nick_name as draft_nick_name, c.draft_time, c.remark, c.sign_date, c.sign_remark, c.sign_scan,
121
         c.comment_type, c.manager_comment, c.manager_user_id, u1.nick_name as manager_nick_name, c.manager_time, c.gm_user_id, u2.nick_name as gm_nick_name, c.gm_time, c.gm_comment from cmc_contract as c
129
         c.comment_type, c.manager_comment, c.manager_user_id, u1.nick_name as manager_nick_name, c.manager_time, c.gm_user_id, u2.nick_name as gm_nick_name, c.gm_time, c.gm_comment from cmc_contract as c
122
         left join sys_user as u on u.user_id = c.drafter
130
         left join sys_user as u on u.user_id = c.drafter

+ 9
- 3
oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcSubContractMapper.xml Visa fil

9
         <result property="subContractName"    column="sub_contract_name"    />
9
         <result property="subContractName"    column="sub_contract_name"    />
10
         <result property="subAmount"    column="sub_amount"    />
10
         <result property="subAmount"    column="sub_amount"    />
11
         <result property="paidAmount"    column="paid_amount"    />
11
         <result property="paidAmount"    column="paid_amount"    />
12
+        <result property="paidPercentage"    column="paid_percentage"    />
13
+        <result property="invoiceAmount"    column="invoice_amount"    />
14
+        <result property="invoicePercentage"    column="invoice_percentage"    />
12
         <result property="partnerId"    column="partner_id"    />
15
         <result property="partnerId"    column="partner_id"    />
13
         <result property="contactPerson"    column="contact_person"    />
16
         <result property="contactPerson"    column="contact_person"    />
14
         <result property="telephone"    column="telephone"    />
17
         <result property="telephone"    column="telephone"    />
61
     </resultMap>
64
     </resultMap>
62
 
65
 
63
     <sql id="selectCmcSubContractVo">
66
     <sql id="selectCmcSubContractVo">
64
-        select distinct sc.sub_contract_id, sc.sub_contract_name, sc.sub_amount, sc.partner_id, pa.partner_name, sc.contact_person, sc.telephone, sc.contract_document, sc.drafter, sum(cp.paid_amount) as paid_amount,
65
-               p.project_number, p.project_name, p.project_source,u.nick_name as draft_nick_name, sc.draft_time, sc.remark, sc.sign_date, sc.sign_remark, sc.sign_scan, sc.comment_type, sc.manager_comment,
66
-               sc.manager_user_id, u1.nick_name as manager_nick_name, sc.manager_time, sc.gm_user_id, u2.nick_name as gm_nick_name, sc.gm_time, sc.gm_comment from cmc_sub_contract as sc
67
+        select distinct sc.sub_contract_id, sc.sub_contract_name, sc.sub_amount, sc.partner_id, pa.partner_name, sc.contact_person, sc.telephone, sc.contract_document, sc.drafter,
68
+        sum(cp.paid_amount) as paid_amount, case sc.amount when 0 then '0.00%' else concat(convert(round(sum(cp.paid_amount) / sc.amount * 100, 2), CHAR), '%') end as paid_percentage,
69
+        sum(ci.invoice_amount) as invoice_amount, case sc.amount when 0 then '0.00%' else concat(convert(round(sum(ci.invoice_amount) / sc.amount * 100, 2), CHAR), '%') end as invoice_percentage,
70
+        p.project_number, p.project_name, p.project_source,u.nick_name as draft_nick_name, sc.draft_time, sc.remark, sc.sign_date, sc.sign_remark, sc.sign_scan, sc.comment_type, sc.manager_comment,
71
+        sc.manager_user_id, u1.nick_name as manager_nick_name, sc.manager_time, sc.gm_user_id, u2.nick_name as gm_nick_name, sc.gm_time, sc.gm_comment from cmc_sub_contract as sc
67
         left join sys_user as u on u.user_id = sc.drafter
72
         left join sys_user as u on u.user_id = sc.drafter
68
         left join sys_user as u1 on u1.user_id = sc.manager_user_id
73
         left join sys_user as u1 on u1.user_id = sc.manager_user_id
69
         left join sys_user as u2 on u2.user_id = sc.gm_user_id
74
         left join sys_user as u2 on u2.user_id = sc.gm_user_id
71
         left join cmc_project_sub_contract as psc on psc.sub_contract_id = sc.sub_contract_id
76
         left join cmc_project_sub_contract as psc on psc.sub_contract_id = sc.sub_contract_id
72
         left join cmc_project as p on psc.project_id = p.project_id
77
         left join cmc_project as p on psc.project_id = p.project_id
73
         left join cmc_contract_paid as cp on cp.contract_id = sc.sub_contract_id
78
         left join cmc_contract_paid as cp on cp.contract_id = sc.sub_contract_id
79
+        left join cmc_contract_invoice as ci on ci.contract_id = sc.sub_contract_id
74
     </sql>
80
     </sql>
75
 
81
 
76
     <select id="selectCmcSubContractList" parameterType="CmcSubContract" resultMap="CmcSubContractResult">
82
     <select id="selectCmcSubContractList" parameterType="CmcSubContract" resultMap="CmcSubContractResult">

Loading…
Avbryt
Spara