Explorar o código

费用申请间接费模块bug修改

ly hai 10 meses
pai
achega
43b238a3a7

+ 45 - 5
src/main/java/com/liang/controller/StaIndirectCostsController.java

@@ -1,10 +1,14 @@
1 1
 package com.liang.controller;
2 2
 
3
+import com.fasterxml.jackson.databind.ObjectMapper;
4
+import com.github.pagehelper.PageHelper;
3 5
 import com.github.pagehelper.PageInfo;
4 6
 import com.liang.common.JsonTool;
5 7
 import com.liang.common.base.BaseController;
6 8
 import com.liang.common.base.BaseResult;
7 9
 import com.liang.entity.StaIndirectCosts;
10
+import com.liang.entity.baobiao.UtilEntity;
11
+import com.liang.service.PrjAnnualbudgetService;
8 12
 import com.liang.service.StaIndirectCostsService;
9 13
 import org.springframework.data.domain.Page;
10 14
 import org.springframework.data.domain.PageRequest;
@@ -105,14 +109,13 @@ public class StaIndirectCostsController extends BaseController {
105 109
     @ResponseBody
106 110
     @RequestMapping(value = "/batchInsert/{zb}", method = RequestMethod.POST)
107 111
     public BaseResult batchInsert(@RequestBody String data, @PathVariable Integer zb) {
108
-        //删除间接费
109
-        staIndirectCostsService.deleteByZb(zb);
110
-
111 112
         List<StaIndirectCosts> expenseList = JsonTool.parseArray(data, StaIndirectCosts.class);
112 113
         for (int i = 0; i < expenseList.size(); i++) {
113 114
             expenseList.get(i).setZb(zb);
114 115
         }
115 116
         if (expenseList.size() > 0) {
117
+            //删除间接费
118
+            staIndirectCostsService.deleteByZb(zb);
116 119
             int num = staIndirectCostsService.insertBatch(expenseList);
117 120
             if (num == expenseList.size()) {
118 121
                 return BaseResult.success("间接费保存成功!");
@@ -144,17 +147,38 @@ public class StaIndirectCostsController extends BaseController {
144 147
         return "staindirectcosts/view";
145 148
     }
146 149
 
150
+    @Resource
151
+    private PrjAnnualbudgetService prjAnnualbudgetService;
147 152
     //项目报表(间接费用)页面
148 153
     @RequestMapping("/search")
149 154
     public String search(Model model) {
155
+        List<String> yearList = prjAnnualbudgetService.getYearList();
156
+        model.addAttribute("yearList", yearList);
157
+
150 158
         return "statistical/indirectCosts";
151 159
     }
152 160
 
153 161
     //间接费用全部及条件查询
154 162
     @ResponseBody
155 163
     @RequestMapping(value = "/searchData", method = RequestMethod.POST)
156
-    public BaseResult searchData(@RequestParam(required = false, defaultValue = "", value = "XMMC") String xmmc, @RequestParam(required = false, defaultValue = "", value = "QSRQ") String qsrq, @RequestParam(required = false, defaultValue = "", value = "JZRQ") String jzrq) {
157
-        List<HashMap<String, Object>> staFeasibilityreport = staIndirectCostsService.searchIndirectCost(xmmc, qsrq, jzrq);
164
+    public BaseResult searchData(
165
+            @RequestParam(required = false, defaultValue = "", value = "XMMC") String xmmc,
166
+            @RequestParam(required = false, defaultValue = "", value = "QSRQ") String qsrq,
167
+            @RequestParam(required = false, defaultValue = "", value = "JSRQ") String jsrq,
168
+            @RequestParam(required = false, defaultValue = "", value = "FYSQBH") String fysqbh,
169
+            @RequestParam(required = false, defaultValue = "", value = "NF")String nf,
170
+            @RequestParam(required = false, defaultValue = "", value = "ERPBH")String erpbh,
171
+            @RequestParam("page")Integer pageNum,
172
+            @RequestParam("limit")Integer pageSize) {
173
+        PageHelper.startPage(pageNum,pageSize);
174
+        Map<String, String> map = new HashMap<>();
175
+        map.put("xmmc",xmmc);
176
+        map.put("qsrq",qsrq);
177
+        map.put("jsrq",jsrq);
178
+        map.put("fysqbh",fysqbh);
179
+        map.put("nf",nf);
180
+        map.put("erpbh",erpbh);
181
+        List<HashMap<String, Object>> staFeasibilityreport = staIndirectCostsService.searchIndirectCost(map);
158 182
         PageInfo<HashMap<String, Object>> pageinfo = new PageInfo<>(staFeasibilityreport);
159 183
         List<HashMap<String, Object>> rows = pageinfo.getList();
160 184
         int total = (int) pageinfo.getTotal();
@@ -163,5 +187,21 @@ public class StaIndirectCostsController extends BaseController {
163 187
         result.put(RESULT_TOTAL, total);
164 188
         return BaseResult.success(result);
165 189
     }
190
+    @ResponseBody
191
+    @RequestMapping(value = "/getAll/{fromDate}",method = RequestMethod.POST)
192
+    public BaseResult getAll(@PathVariable(required = false) String fromDate)throws Exception{
193
+        ObjectMapper objectMapper = new ObjectMapper();
194
+       UtilEntity util =  objectMapper.readValue(fromDate, UtilEntity.class);
195
+
196
+        Map<String, String> map = new HashMap<>();
197
+        map.put("xmmc",util.getXmmc());
198
+        map.put("qsrq",util.getQsrq());
199
+        map.put("jsrq",util.getJsrq());
200
+        map.put("fysqbh",util.getFysqbh());
201
+        map.put("nf",util.getNf());
202
+        map.put("erpbh",util.getErpbh());
203
+        List<HashMap<String, Object>> staFeasibilityreport = staIndirectCostsService.searchIndirectCost(map);
204
+       return BaseResult.success(staFeasibilityreport);
205
+    }
166 206
 
167 207
 }

+ 2 - 1
src/main/java/com/liang/dao/StaIndirectCostsDao.java

@@ -6,6 +6,7 @@ import org.springframework.data.domain.Pageable;
6 6
 
7 7
 import java.util.HashMap;
8 8
 import java.util.List;
9
+import java.util.Map;
9 10
 
10 11
 /**
11 12
  * 间接费(StaIndirectCosts)表数据库访问层
@@ -108,6 +109,6 @@ public interface StaIndirectCostsDao {
108 109
      * @param JZRQ 创建结束日期
109 110
      * @return
110 111
      */
111
-    List<HashMap<String, Object>> searchIndirectCost(String XMMC, String QSRQ, String JZRQ);
112
+    List<HashMap<String, Object>> searchIndirectCost(Map map);
112 113
 
113 114
 }

+ 53 - 22
src/main/java/com/liang/entity/StaIndirectCosts.java

@@ -1,5 +1,7 @@
1 1
 package com.liang.entity;
2 2
 
3
+import com.fasterxml.jackson.annotation.JsonProperty;
4
+
3 5
 import java.io.Serializable;
4 6
 
5 7
 /**
@@ -10,54 +12,68 @@ public class StaIndirectCosts implements Serializable {
10 12
     /**
11 13
      * 表ID
12 14
      */
15
+
13 16
     private int id;
14 17
     /**
15 18
      * 主表id
16 19
      */
20
+    @JsonProperty("zb")
17 21
     private int zb;
18 22
     /**
19 23
      * 申请金额
20 24
      */
25
+    @JsonProperty("sqje")
21 26
     private Double sqje;
22 27
     /**
23 28
      * 费用用途
24 29
      */
30
+    @JsonProperty("fyyt")
25 31
     private String fyyt;
26 32
     /**
27 33
      * 报账金额(含税)
28 34
      */
29
-    private Double bzjehs;
35
+    @JsonProperty("bzje")
36
+    private Double bzje;
30 37
     /**
31 38
      * 报账金额(不含税)
32 39
      */
33
-    private Double bzjebhs;
40
+    @JsonProperty("bhsje")
41
+    private Double bhsje;
34 42
     /**
35 43
      * 备注
36 44
      */
45
+    @JsonProperty("bz")
37 46
     private String bz;
38 47
 
39
-    public Double getSqje() {
40
-        return sqje;
48
+    @JsonProperty("sl")
49
+    private String sl;
50
+
51
+    @JsonProperty("xh")
52
+    private String xh;
53
+    private String fysq;
54
+
55
+    public String getFysq() {
56
+        return fysq;
41 57
     }
42 58
 
43
-    public void setSqje(Double sqje) {
44
-        this.sqje = sqje;
59
+    public void setFysq(String fysq) {
60
+        this.fysq = fysq;
45 61
     }
46 62
 
47
-    public int getId() {
48
-        return id;
63
+    public String getXh() {
64
+        return xh;
49 65
     }
50 66
 
51
-    public void setId(int id) {
52
-        this.id = id;
67
+    public void setXh(String xh) {
68
+        this.xh = xh;
53 69
     }
54 70
 
55
-    public void setBzjehs(Double bzjehs) {
56
-        this.bzjehs = bzjehs;
71
+    public int getId() {
72
+        return id;
57 73
     }
58 74
 
59
-    public void setBzjebhs(Double bzjebhs) {
60
-        this.bzjebhs = bzjebhs;
75
+    public void setId(int id) {
76
+        this.id = id;
61 77
     }
62 78
 
63 79
     public int getZb() {
@@ -68,6 +84,13 @@ public class StaIndirectCosts implements Serializable {
68 84
         this.zb = zb;
69 85
     }
70 86
 
87
+    public Double getSqje() {
88
+        return sqje;
89
+    }
90
+
91
+    public void setSqje(Double sqje) {
92
+        this.sqje = sqje;
93
+    }
71 94
 
72 95
     public String getFyyt() {
73 96
         return fyyt;
@@ -77,20 +100,20 @@ public class StaIndirectCosts implements Serializable {
77 100
         this.fyyt = fyyt;
78 101
     }
79 102
 
80
-    public double getBzjehs() {
81
-        return bzjehs;
103
+    public Double getBzje() {
104
+        return bzje;
82 105
     }
83 106
 
84
-    public void setBzjehs(double bzjehs) {
85
-        this.bzjehs = bzjehs;
107
+    public void setBzje(Double bzje) {
108
+        this.bzje = bzje;
86 109
     }
87 110
 
88
-    public double getBzjebhs() {
89
-        return bzjebhs;
111
+    public Double getBhsje() {
112
+        return bhsje;
90 113
     }
91 114
 
92
-    public void setBzjebhs(double bzjebhs) {
93
-        this.bzjebhs = bzjebhs;
115
+    public void setBhsje(Double bhsje) {
116
+        this.bhsje = bhsje;
94 117
     }
95 118
 
96 119
     public String getBz() {
@@ -100,4 +123,12 @@ public class StaIndirectCosts implements Serializable {
100 123
     public void setBz(String bz) {
101 124
         this.bz = bz;
102 125
     }
126
+
127
+    public String getSl() {
128
+        return sl;
129
+    }
130
+
131
+    public void setSl(String sl) {
132
+        this.sl = sl;
133
+    }
103 134
 }

+ 2 - 1
src/main/java/com/liang/service/StaIndirectCostsService.java

@@ -6,6 +6,7 @@ import org.springframework.data.domain.PageRequest;
6 6
 
7 7
 import java.util.HashMap;
8 8
 import java.util.List;
9
+import java.util.Map;
9 10
 
10 11
 /**
11 12
  * 间接费(StaIndirectCosts)表服务接口
@@ -91,6 +92,6 @@ public interface StaIndirectCostsService {
91 92
      * @param jsrq 创建结束日期
92 93
      * @return
93 94
      */
94
-    List<HashMap<String, Object>> searchIndirectCost(String xmmc, String sqrq, String jsrq);
95
+    List<HashMap<String, Object>> searchIndirectCost(Map map);
95 96
 
96 97
 }

+ 3 - 2
src/main/java/com/liang/service/impl/StaIndirectCostsServiceImpl.java

@@ -11,6 +11,7 @@ import org.springframework.stereotype.Service;
11 11
 import javax.annotation.Resource;
12 12
 import java.util.HashMap;
13 13
 import java.util.List;
14
+import java.util.Map;
14 15
 
15 16
 /**
16 17
  * 间接费(StaIndirectCosts)表服务实现类
@@ -98,7 +99,7 @@ public class StaIndirectCostsServiceImpl implements StaIndirectCostsService {
98 99
     }
99 100
 
100 101
     @Override
101
-    public List<HashMap<String, Object>> searchIndirectCost(String xmmc, String qsrq, String jzrq) {
102
-        return this.staIndirectCostsDao.searchIndirectCost(xmmc, qsrq, jzrq);
102
+    public List<HashMap<String, Object>> searchIndirectCost(Map map) {
103
+        return this.staIndirectCostsDao.searchIndirectCost(map);
103 104
     }
104 105
 }

+ 49 - 29
src/main/resources/mapper/StaIndirectCostsDao.xml

@@ -91,27 +91,38 @@
91 91
     </insert>
92 92
 
93 93
     <!--批量插入间接费-->
94
-    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
95
-        insert into sta_IndirectCosts(ZB, sqje, FYYT, BZJEHS, BZJEBHS, BZ)
94
+       <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
95
+        insert into sta_IndirectCosts(ZB, SQJE, FYYT, BZJE, BHSJE, BZ,XH,SL,FYSQ)
96 96
         values
97 97
         <foreach collection="entities" item="entity" separator=",">
98
-            (#{entity.zb}, #{entity.sqje}, #{entity.fyyt}, #{entity.bzjehs}, #{entity.bzjebhs}, #{entity.bz})
98
+            (
99
+             #{entity.zb},
100
+             #{entity.sqje},
101
+             #{entity.fyyt},
102
+             #{entity.bzje},
103
+             #{entity.bhsje},
104
+             #{entity.bz},
105
+             #{entity.xh},
106
+             #{entity.sl},
107
+             #{entity.fysq}
108
+             )
99 109
         </foreach>
100 110
     </insert>
101 111
 
102 112
     <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
103
-        insert into sta_IndirectCosts(ZB, sqje, FYYT, BZJEHS, BZJEBHS, BZ)
113
+        insert into sta_IndirectCosts(ZB, sqje, FYYT, BZJE, BHSJE, BZ,SL)
104 114
         values
105 115
         <foreach collection="entities" item="entity" separator=",">
106
-            (#{entity.zb}, #{entity.sqje}, #{entity.fyyt}, #{entity.bzjehs}, #{entity.bzjebhs}, #{entity.bz})
116
+            (#{entity.zb}, #{entity.sqje}, #{entity.fyyt}, #{entity.bzje}, #{entity.bhsje}, #{entity.bz},#{entity.sl})
107 117
         </foreach>
108 118
         on duplicate key update
109 119
         ZB = values(ZB),
110 120
         sqje = values(sqje),
111 121
         FYYT = values(FYYT),
112
-        BZJEHS = values(BZJEHS),
113
-        BZJEBHS = values(BZJEBHS),
114
-        BZ = values(BZ)
122
+        BZJE = values(BZJE),
123
+        BHSJE = values(BHSJE),
124
+        BZ = values(BZ),
125
+SL = values(SL)
115 126
     </insert>
116 127
 
117 128
     <!--通过主键修改数据-->
@@ -171,40 +182,49 @@
171 182
     </select>
172 183
 
173 184
     <!--统计报表(间接费)查询 -->
174
-    <select id="searchIndirectCost" resultType="Map">
175
-        SELECT sta_IndirectCosts.ID,
185
+    <select id="searchIndirectCost" resultType="HashMap">
186
+        SELECT
187
+        sta_IndirectCosts.ID,
176 188
         sys_dept_info.dept_name AS BM,
177 189
         prj_Project.BM AS XMBH,
178 190
         sta_BudgetApproval.XMMC,
179 191
         base_ProjectType.XMLXMC,
180
-        sta_IndirectCosts.SQJE,
192
+        sta_BudgetApproval.SQJE,
193
+        sta_IndirectCosts.FYYT,
181 194
         sta_IndirectCosts.FYYT,
182
-        CASE
183
-        WHEN sta_BudgetApproval.SFBYJ = 0 THEN '否'
184
-        WHEN sta_BudgetApproval.SFBYJ = 1 THEN '是'
195
+        CASE sta_BudgetApproval.SFBYJ
196
+        WHEN 0 THEN '否'
197
+        WHEN 1 THEN '是'
185 198
         ELSE CAST(sta_BudgetApproval.SFBYJ AS varchar(11))
186 199
         END AS SFBYJ,
187 200
         sta_IndirectCosts.BZJEHS,
188 201
         sta_IndirectCosts.BZJEBHS,
189 202
         sta_IndirectCosts.BZ,
190 203
         CAST(sta_BudgetApproval.SQSJ AS date) AS SQSJ
191
-        FROM sta_IndirectCosts,
192
-        sta_BudgetApproval,
193
-        prj_Project,
194
-        sys_dept_info,
195
-        base_ProjectType
196
-        WHERE sta_IndirectCosts.ZB = sta_BudgetApproval.ID
197
-        AND sta_BudgetApproval.XMID = prj_Project.ID
198
-        AND sta_BudgetApproval.SSBM = sys_dept_info.dept_id
199
-        AND sta_BudgetApproval.XMLX = base_ProjectType.XMLX
200
-        <if test="XMMC != null and XMMC != ''">
201
-            AND sta_BudgetApproval.XMMC LIKE '%${XMMC}%'
204
+        FROM
205
+        sta_IndirectCosts
206
+        INNER JOIN sta_BudgetApproval ON sta_IndirectCosts.ZB = sta_BudgetApproval.ID
207
+        INNER JOIN prj_Project ON sta_BudgetApproval.XMID = prj_Project.ID
208
+        INNER JOIN sys_dept_info ON sta_BudgetApproval.SSBM = sys_dept_info.dept_id
209
+        INNER JOIN base_ProjectType ON sta_BudgetApproval.XMLX = base_ProjectType.XMLX
210
+        where  1= 1
211
+        <if test="xmmc != null and xmmc != ''">
212
+            AND sta_BudgetApproval.XMMC LIKE '%'+#{xmmc}+'%'
213
+        </if>
214
+        <if test="sqrq != null and sqrq != ''">
215
+            AND sta_BudgetApproval.SQSJ  <![CDATA[>= ]]> #{sqrq}
216
+        </if>
217
+        <if test="jsrq != null and jsrq != ''">
218
+            AND sta_BudgetApproval.SQSJ  <![CDATA[<= ]]> #{jsrq}
219
+        </if>
220
+        <if test="erpbh != null and erpbh != ''">
221
+        AND sta_BudgetApproval.ERPBH like '%'+#{erpbh}+'%'
202 222
         </if>
203
-        <if test="QSRQ != null and QSRQ != ''">
204
-            AND sta_BudgetApproval.SQSJ  <![CDATA[>= ]]> #{QSRQ}
223
+        <if test="bh != null and bh != ''">
224
+            AND sta_BudgetApproval.BH like '%'+#{bh}+'%'
205 225
         </if>
206
-        <if test="JZRQ != null and JZRQ != ''">
207
-            AND sta_BudgetApproval.SQSJ  <![CDATA[<= ]]> #{JZRQ}
226
+        <if test="nf != null and nf != ''">
227
+            AND  sta_BudgetApproval.NF = #{nf}
208 228
         </if>
209 229
     </select>
210 230
 

+ 23 - 16
src/main/resources/templates/stabudgetapproval/update_apply.html

@@ -1404,12 +1404,13 @@
1404 1404
             cols: [
1405 1405
                 [
1406 1406
                     {type: "checkbox", align: 'center'},
1407
-                    {type: 'numbers', align: 'center'},
1407
+                    {type: 'numbers', align: 'center',title: '😊'},
1408 1408
                     {field: 'xh', title: '序号', width: '10%'},
1409
-                    {field: 'sqje', title: '申请金额', width: '10%'},
1409
+                    {field: 'sqje', title: '申请金额', width: '15%'},
1410 1410
                     {field: 'fyyt', title: '费用用途', width: '20%'},
1411
-                    {field: 'bzjehs', title: '报账金额(含税)', width: '14%'},
1412
-                    {field: 'bzjebhs', title: '报账金额(不含税))', width: '14%'},
1411
+                    {field: 'bzje', title: '报账金额(含税)', width: '20%'},
1412
+                    {field: 'bhsje', title: '报账金额(不含税)', width: '20%'},
1413
+                    {field: 'sl', title: '税率', width: '14%'},
1413 1414
                     {field: 'bz', title: '备注', width: '11%'},
1414 1415
                 ]
1415 1416
             ],
@@ -1465,9 +1466,10 @@
1465 1466
                     "xh": data[0].xh,
1466 1467
                     "sqje": data[0].sqje,
1467 1468
                     "fyyt": data[0].fyyt,
1468
-                    "bzjehs": data[0].bzjehs,
1469
-                    "bzjebhs": data[0].bzjebhs,
1470
-                    "bz": data[0].bz
1469
+                    "bzje": data[0].bzje,
1470
+                    "bhsje": data[0].bhsje,
1471
+                    "bz": data[0].bz,
1472
+                    "sl": data[0].sl
1471 1473
                 };
1472 1474
                 layer.open({
1473 1475
                     title: '编辑间接费',
@@ -1516,9 +1518,11 @@
1516 1518
                     "xh": data[0].xh,
1517 1519
                     "sqje": data[0].sqje,
1518 1520
                     "fyyt": data[0].fyyt,
1519
-                    "bzjehs": data[0].bzjehs,
1520
-                    "bzjebhs": data[0].bzjebhs,
1521
-                    "bz": data[0].bz
1521
+                    "bzje": data[0].bzje,
1522
+                    "bhsje": data[0].bhsje,
1523
+                    "bz": data[0].bz,
1524
+                    "xh": data[0].xh,
1525
+                    "sl": data[0].sl
1522 1526
                 };
1523 1527
                 layer.open({
1524 1528
                     title: '浏览间接费',
@@ -1567,9 +1571,10 @@
1567 1571
                 "xh": data.xh,
1568 1572
                 "sqje": data.sqje,
1569 1573
                 "fyyt": data.fyyt,
1570
-                "bzjehs": data.bzjehs,
1571
-                "bzjebhs": data.bzjebhs,
1572
-                "bz": data.bz
1574
+                "bzje": data.bzje,
1575
+                "bhsje": data.bhsje,
1576
+                "bz": data.bz,
1577
+                "sl":data.sl
1573 1578
             };
1574 1579
             layer.open({
1575 1580
                 title: '浏览间接费',
@@ -3818,9 +3823,11 @@
3818 3823
                                         "zb": fyId,
3819 3824
                                         "sqje": item.sqje,
3820 3825
                                         "fyyt": item.fyyt,
3821
-                                        "bzjehs": item.bzjehs,
3822
-                                        "bzjebhs": item.bzjebhs,
3823
-                                        "bz": item.bz
3826
+                                        "bzje": item.bzje,
3827
+                                        "bhsje": item.bhsje,
3828
+                                        "bz": item.bz,
3829
+                                        "sl": item.sl,
3830
+                                        "xh" :item.xh
3824 3831
                                     };
3825 3832
                                     indirectCosts.push(cost);
3826 3833
                                 }

+ 63 - 14
src/main/resources/templates/staindirectcosts/add.html

@@ -15,23 +15,50 @@
15 15
 <body>
16 16
 <form class="layui-form" action="" lay-filter="formDemo">
17 17
     <div class="layui-form layuimini-form">
18
-        <div class="layui-form-item layui-inline" style="width: 100%">
19
-            <label class="layui-form-label" style="width: 70px">序号</label>
20
-            <div class="layui-input-inline" style="width: 270px">
21
-                <input type="text" id="xh" name="xh" autocomplete="off" class="layui-input">
18
+        <div class="layui-form-item" style="width: 100%; display: flex; flex-wrap: wrap;">
19
+            <div class="layui-form-item layui-inline" style="width: calc(50% - 35px); display: flex; align-items: center;">
20
+                <label class="layui-form-label required" style="width: 70px; margin-right: 10px;">序号</label>
21
+                <div class="layui-input-inline" style="width: calc(100% - 80px);">
22
+                    <input type="text" id="xh" name="xh" autocomplete="off" class="layui-input" lay-verify="序号不能为空">
23
+                </div>
22 24
             </div>
23
-        </div>
24
-        <div class="layui-form-item layui-inline" style="width: 100%">
25
-            <label class="layui-form-label required" style="width: 70px">费用用途</label>
26
-            <div class="layui-input-inline" style="width: 270px">
27
-                <input type="text" id="fyyt" name="fyyt" lay-verify="required" lay-reqtext="费用用途不能为空" autocomplete="off"
28
-                       class="layui-input">
25
+            <div class="layui-form-item layui-inline" style="width: calc(50% - 35px); display: flex; align-items: center;">
26
+                <label class="layui-form-label required" style="width: 70px; margin-right: 10px;">费用用途</label>
27
+                <div class="layui-input-inline" style="width: calc(100% - 80px);">
28
+                    <input type="text" id="fyyt" name="fyyt" lay-verify="required" lay-reqtext="费用用途不能为空" autocomplete="off" class="layui-input">
29
+                </div>
30
+            </div>
31
+            <div class="layui-form-item layui-inline" style="width: calc(50% - 35px); display: flex; align-items: center;">
32
+                <label class="layui-form-label required" style="width: 70px; margin-right: 10px;">申请金额</label>
33
+                <div class="layui-input-inline" style="width: calc(100% - 80px);">
34
+                    <input type="text" id="sqje" name="sqje" lay-verify="required" lay-reqtext="申请金额不能为空" autocomplete="off" class="layui-input">
35
+                </div>
36
+            </div>
37
+            <div class="layui-form-item layui-inline" style="width: calc(50% - 35px); display: flex; align-items: center;">
38
+                <label class="layui-form-label required" style="width: 70px; margin-right: 10px;">税率</label>
39
+                <div class="layui-input-inline" style="width: calc(100% - 80px);">
40
+                    <input type="text" id="sl" name="sl" lay-verify="required" lay-reqtext="税率不能为空" autocomplete="off" class="layui-input" oninput="calculateBzje()">
41
+                </div>
42
+            </div>
43
+            <div class="layui-form-item layui-inline" style="width: calc(50% - 35px); display: flex; align-items: center;">
44
+                <label class="layui-form-label required" style="width: 70px; margin-right: 10px;">报账金额(含税)</label>
45
+                <div class="layui-input-inline" style="width: calc(100% - 80px);">
46
+                    <input type="text" id="bzje" name="bzje" lay-verify="required" lay-reqtext="报账金额(含税)不能为空" autocomplete="off" class="layui-input" oninput="calculateBhsje()">
47
+                </div>
29 48
             </div>
49
+            <div class="layui-form-item layui-inline" style="width: calc(50% - 35px); display: flex; align-items: center;">
50
+                <label class="layui-form-label required" style="width: 70px; margin-right: 10px;">报账金额(不含税)</label>
51
+                <div class="layui-input-inline" style="width: calc(100% - 80px);">
52
+                    <input type="text" id="bhsje" name="bhsje" lay-verify="required" lay-reqtext="报账金额(不含税)不能为空" autocomplete="off" class="layui-input" oninput="calculateBzje()">
53
+                </div>
54
+            </div>
55
+
56
+
30 57
         </div>
31
-        <div class="layui-form-item layui-inline" style="width: 100%">
32
-            <label class="layui-form-label" style="width: 70px">备注</label>
33
-            <div class="layui-input-inline" style="width: 270px">
34
-                <input type="text" id="bz" name="bz" autocomplete="off" class="layui-input">
58
+        <div class="layui-form-item layui-inline" style="width: calc(50% - 35px); display: flex; align-items: center;">
59
+            <label class="layui-form-label" style="width: 70px; margin-right: 10px;">备注</label>
60
+            <div class="layui-input-inline" style="width: calc(100% - 80px);">
61
+                <textarea  type="text" id="bz" name="bz" autocomplete="off" class="layui-input"></textarea>
35 62
             </div>
36 63
         </div>
37 64
 
@@ -45,6 +72,28 @@
45 72
             </button>
46 73
         </div>
47 74
     </div>
75
+    <script>
76
+        function calculateBzje() {
77
+            var bhsje = parseFloat(document.getElementById('bhsje').value);
78
+            var sl = parseFloat(document.getElementById('sl').value) / 100; // assuming sl is input as percentage
79
+
80
+            if (!isNaN(bhsje) && !isNaN(sl)) {
81
+                var bzje = bhsje * (1 + sl);
82
+                document.getElementById('bzje').value = bzje.toFixed(2); // Round to 2 decimal places
83
+            }
84
+        }
85
+
86
+        function calculateBhsje() {
87
+            var bzje = parseFloat(document.getElementById('bzje').value);
88
+            var sl = parseFloat(document.getElementById('sl').value) / 100; // assuming sl is input as percentage
89
+
90
+            if (!isNaN(bzje) && !isNaN(sl)) {
91
+                var bhsje = bzje / (1 + sl);
92
+                document.getElementById('bhsje').value = bhsje.toFixed(2); // Round to 2 decimal places
93
+            }
94
+        }
95
+    </script>
96
+
48 97
 </form>
49 98
 
50 99
 <script th:src="@{/lib/jquery-3.4.1/jquery-3.4.1.min.js}" charset="utf-8"></script>

+ 65 - 16
src/main/resources/templates/staindirectcosts/update.html

@@ -15,23 +15,50 @@
15 15
 <body>
16 16
 <form class="layui-form" action="" lay-filter="formDemo">
17 17
     <div class="layui-form layuimini-form">
18
-        <div class="layui-form-item layui-inline" style="width: 100%">
19
-            <label class="layui-form-label" style="width: 70px">序号</label>
20
-            <div class="layui-input-inline" style="width: 270px">
21
-                <input type="text" id="xh" name="xh" autocomplete="off" class="layui-input">
18
+        <div class="layui-form-item" style="width: 100%; display: flex; flex-wrap: wrap;">
19
+            <div class="layui-form-item layui-inline" style="width: calc(50% - 35px); display: flex; align-items: center;">
20
+                <label class="layui-form-label required" style="width: 70px; margin-right: 10px;">序号</label>
21
+                <div class="layui-input-inline" style="width: calc(100% - 80px);">
22
+                    <input type="text" id="xh" name="xh" autocomplete="off" class="layui-input" lay-verify="序号不能为空">
23
+                </div>
22 24
             </div>
23
-        </div>
24
-        <div class="layui-form-item layui-inline" style="width: 100%">
25
-            <label class="layui-form-label required" style="width: 70px">费用用途</label>
26
-            <div class="layui-input-inline" style="width: 270px">
27
-                <input type="text" id="fyyt" name="fyyt" lay-verify="required" lay-reqtext="费用用途不能为空" autocomplete="off"
28
-                       class="layui-input">
25
+            <div class="layui-form-item layui-inline" style="width: calc(50% - 35px); display: flex; align-items: center;">
26
+                <label class="layui-form-label required" style="width: 70px; margin-right: 10px;">费用用途</label>
27
+                <div class="layui-input-inline" style="width: calc(100% - 80px);">
28
+                    <input type="text" id="fyyt" name="fyyt" lay-verify="required" lay-reqtext="费用用途不能为空" autocomplete="off" class="layui-input">
29
+                </div>
30
+            </div>
31
+            <div class="layui-form-item layui-inline" style="width: calc(50% - 35px); display: flex; align-items: center;">
32
+                <label class="layui-form-label required" style="width: 70px; margin-right: 10px;">申请金额</label>
33
+                <div class="layui-input-inline" style="width: calc(100% - 80px);">
34
+                    <input type="text" id="sqje" name="sqje" lay-verify="required" lay-reqtext="申请金额不能为空" autocomplete="off" class="layui-input">
35
+                </div>
36
+            </div>
37
+            <div class="layui-form-item layui-inline" style="width: calc(50% - 35px); display: flex; align-items: center;">
38
+                <label class="layui-form-label required" style="width: 70px; margin-right: 10px;">税率</label>
39
+                <div class="layui-input-inline" style="width: calc(100% - 80px);">
40
+                    <input type="text" id="sl" name="sl" lay-verify="required" lay-reqtext="税率不能为空" autocomplete="off" class="layui-input" oninput="calculateBzje()">
41
+                </div>
42
+            </div>
43
+            <div class="layui-form-item layui-inline" style="width: calc(50% - 35px); display: flex; align-items: center;">
44
+                <label class="layui-form-label required" style="width: 70px; margin-right: 10px;">报账金额(含税)</label>
45
+                <div class="layui-input-inline" style="width: calc(100% - 80px);">
46
+                    <input type="text" id="bzje" name="bzje" lay-verify="required" lay-reqtext="报账金额(含税)不能为空" autocomplete="off" class="layui-input" oninput="calculateBhsje()">
47
+                </div>
48
+            </div>
49
+            <div class="layui-form-item layui-inline" style="width: calc(50% - 35px); display: flex; align-items: center;">
50
+                <label class="layui-form-label required" style="width: 70px; margin-right: 10px;">报账金额(不含税)</label>
51
+                <div class="layui-input-inline" style="width: calc(100% - 80px);">
52
+                    <input type="text" id="bhsje" name="bhsje" lay-verify="required" lay-reqtext="报账金额(不含税)不能为空" autocomplete="off" class="layui-input" oninput="calculateBzje()">
53
+                </div>
29 54
             </div>
55
+
56
+
30 57
         </div>
31
-        <div class="layui-form-item layui-inline" style="width: 100%">
32
-            <label class="layui-form-label" style="width: 70px">备注</label>
33
-            <div class="layui-input-inline" style="width: 270px">
34
-                <input type="text" id="bz" name="bz" autocomplete="off" class="layui-input">
58
+        <div class="layui-form-item layui-inline" style="width: calc(50% - 35px); display: flex; align-items: center;">
59
+            <label class="layui-form-label" style="width: 70px; margin-right: 10px;">备注</label>
60
+            <div class="layui-input-inline" style="width: calc(100% - 80px);">
61
+                <textarea  type="text" id="bz" name="bz" autocomplete="off" class="layui-input"></textarea>
35 62
             </div>
36 63
         </div>
37 64
 
@@ -44,6 +71,27 @@
44 71
                 <i class="layui-icon layui-icon-close"></i>取消
45 72
             </button>
46 73
         </div>
74
+        <script>
75
+            function calculateBzje() {
76
+                var bhsje = parseFloat(document.getElementById('bhsje').value);
77
+                var sl = parseFloat(document.getElementById('sl').value) / 100; // assuming sl is input as percentage
78
+
79
+                if (!isNaN(bhsje) && !isNaN(sl)) {
80
+                    var bzje = bhsje * (1 + sl);
81
+                    document.getElementById('bzje').value = bzje.toFixed(2); // Round to 2 decimal places
82
+                }
83
+            }
84
+
85
+            function calculateBhsje() {
86
+                var bzje = parseFloat(document.getElementById('bzje').value);
87
+                var sl = parseFloat(document.getElementById('sl').value) / 100; // assuming sl is input as percentage
88
+
89
+                if (!isNaN(bzje) && !isNaN(sl)) {
90
+                    var bhsje = bzje / (1 + sl);
91
+                    document.getElementById('bhsje').value = bhsje.toFixed(2); // Round to 2 decimal places
92
+                }
93
+            }
94
+        </script>
47 95
     </div>
48 96
 </form>
49 97
 <script th:src="@{/lib/jquery-3.4.1/jquery-3.4.1.min.js}" charset="utf-8"></script>
@@ -61,9 +109,10 @@
61 109
         $("#xh").val(cost.xh);
62 110
         $("#sqje").val(cost.sqje);
63 111
         $("#fyyt").val(cost.fyyt);
64
-        $("#bzjehs").val(cost.bzjehs);
65
-        $("#bzjebhs").val(cost.bzjebhs);
112
+        $("#bzje").val(cost.bzje);
113
+        $("#bhsje").val(cost.bhsje);
66 114
         $("#bz").val(cost.bz);
115
+        $("#sl").val(cost.sl);
67 116
         form.render();
68 117
 
69 118
         // var sqje = $("#sqje").val();

+ 44 - 17
src/main/resources/templates/staindirectcosts/view.html

@@ -15,26 +15,52 @@
15 15
 <body>
16 16
 <form class="layui-form" action="" lay-filter="formDemo">
17 17
     <div class="layui-form layuimini-form">
18
-        <div class="layui-form-item layui-inline" style="width: 100%">
19
-            <label class="layui-form-label" style="width: 70px">序号</label>
20
-            <div class="layui-input-inline" style="width: 270px">
21
-                <input type="text" id="xh" name="xh" autocomplete="off" class="layui-input">
18
+        <div class="layui-form-item" style="width: 100%; display: flex; flex-wrap: wrap;">
19
+            <div class="layui-form-item layui-inline" style="width: calc(50% - 35px); display: flex; align-items: center;">
20
+                <label class="layui-form-label required" style="width: 70px; margin-right: 10px;">序号</label>
21
+                <div class="layui-input-inline" style="width: calc(100% - 80px);">
22
+                    <input type="text" id="xh" name="xh" autocomplete="off" class="layui-input" lay-verify="序号不能为空">
23
+                </div>
22 24
             </div>
23
-        </div>
24
-        <div class="layui-form-item layui-inline" style="width: 100%">
25
-            <label class="layui-form-label required" style="width: 70px">费用用途</label>
26
-            <div class="layui-input-inline" style="width: 270px">
27
-                <input type="text" id="fyyt" name="fyyt" lay-verify="required" lay-reqtext="费用用途不能为空" autocomplete="off"
28
-                       class="layui-input">
25
+            <div class="layui-form-item layui-inline" style="width: calc(50% - 35px); display: flex; align-items: center;">
26
+                <label class="layui-form-label required" style="width: 70px; margin-right: 10px;">费用用途</label>
27
+                <div class="layui-input-inline" style="width: calc(100% - 80px);">
28
+                    <input type="text" id="fyyt" name="fyyt" lay-verify="required" lay-reqtext="费用用途不能为空" autocomplete="off" class="layui-input">
29
+                </div>
30
+            </div>
31
+            <div class="layui-form-item layui-inline" style="width: calc(50% - 35px); display: flex; align-items: center;">
32
+                <label class="layui-form-label required" style="width: 70px; margin-right: 10px;">申请金额</label>
33
+                <div class="layui-input-inline" style="width: calc(100% - 80px);">
34
+                    <input type="text" id="sqje" name="sqje" lay-verify="required" lay-reqtext="申请金额不能为空" autocomplete="off" class="layui-input">
35
+                </div>
36
+            </div>
37
+            <div class="layui-form-item layui-inline" style="width: calc(50% - 35px); display: flex; align-items: center;">
38
+                <label class="layui-form-label required" style="width: 70px; margin-right: 10px;">税率</label>
39
+                <div class="layui-input-inline" style="width: calc(100% - 80px);">
40
+                    <input type="text" id="sl" name="sl" lay-verify="required" lay-reqtext="税率不能为空" autocomplete="off" class="layui-input" oninput="calculateBzje()">
41
+                </div>
42
+            </div>
43
+            <div class="layui-form-item layui-inline" style="width: calc(50% - 35px); display: flex; align-items: center;">
44
+                <label class="layui-form-label required" style="width: 70px; margin-right: 10px;">报账金额(含税)</label>
45
+                <div class="layui-input-inline" style="width: calc(100% - 80px);">
46
+                    <input type="text" id="bzje" name="bzje" lay-verify="required" lay-reqtext="报账金额(含税)不能为空" autocomplete="off" class="layui-input" oninput="calculateBhsje()">
47
+                </div>
29 48
             </div>
49
+            <div class="layui-form-item layui-inline" style="width: calc(50% - 35px); display: flex; align-items: center;">
50
+                <label class="layui-form-label required" style="width: 70px; margin-right: 10px;">报账金额(不含税)</label>
51
+                <div class="layui-input-inline" style="width: calc(100% - 80px);">
52
+                    <input type="text" id="bhsje" name="bhsje" lay-verify="required" lay-reqtext="报账金额(不含税)不能为空" autocomplete="off" class="layui-input" oninput="calculateBzje()">
53
+                </div>
54
+            </div>
55
+
56
+
30 57
         </div>
31
-        <div class="layui-form-item layui-inline" style="width: 100%">
32
-            <label class="layui-form-label" style="width: 70px">备注</label>
33
-            <div class="layui-input-inline" style="width: 270px">
34
-                <input type="text" id="bz" name="bz" autocomplete="off" class="layui-input">
58
+        <div class="layui-form-item layui-inline" style="width: calc(50% - 35px); display: flex; align-items: center;">
59
+            <label class="layui-form-label" style="width: 70px; margin-right: 10px;">备注</label>
60
+            <div class="layui-input-inline" style="width: calc(100% - 80px);">
61
+                <textarea  type="text" id="bz" name="bz" autocomplete="off" class="layui-input"></textarea>
35 62
             </div>
36 63
         </div>
37
-
38 64
         <!-- 右侧悬浮按钮 -->
39 65
         <div class="right-bottom-btn">
40 66
             <button class="layui-btn" lay-filter="cancleBtn">
@@ -59,9 +85,10 @@
59 85
         $("#xh").val(cost.xh);
60 86
         $("#sqje").val(cost.sqje);
61 87
         $("#fyyt").val(cost.fyyt);
62
-        $("#bzjehs").val(cost.bzjehs);
63
-        $("#bzjebhs").val(cost.bzjebhs);
88
+        $("#bzje").val(cost.bzje);
89
+        $("#bhsje").val(cost.bhsje);
64 90
         $("#bz").val(cost.bz);
91
+        $("#sl").val(cost.sl);
65 92
         form.render();
66 93
 
67 94
         // var sqje = $("#sqje").val();