Przeglądaj źródła

合同额统计

lamphua 6 miesięcy temu
rodzic
commit
7073383ce8

+ 69
- 10
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcContractController.java Wyświetl plik

@@ -1,10 +1,10 @@
1 1
 package com.ruoyi.web.controller.oa;
2 2
 
3
+import java.math.BigDecimal;
3 4
 import java.text.ParseException;
4 5
 import java.text.SimpleDateFormat;
5
-import java.util.Calendar;
6
-import java.util.Date;
7
-import java.util.List;
6
+import java.util.*;
7
+import java.util.stream.Collectors;
8 8
 import javax.servlet.http.HttpServletResponse;
9 9
 
10 10
 import com.alibaba.fastjson2.JSONArray;
@@ -12,6 +12,7 @@ import com.alibaba.fastjson2.JSONObject;
12 12
 import com.ruoyi.oa.domain.CmcPartyA;
13 13
 import com.ruoyi.oa.domain.CmcProject;
14 14
 import com.ruoyi.oa.service.ICmcPartyAService;
15
+import org.apache.poi.hpsf.Decimal;
15 16
 import org.springframework.beans.factory.annotation.Autowired;
16 17
 import org.springframework.web.bind.annotation.GetMapping;
17 18
 import org.springframework.web.bind.annotation.PostMapping;
@@ -43,9 +44,6 @@ public class CmcContractController extends BaseController
43 44
     @Autowired
44 45
     private ICmcContractService cmcContractService;
45 46
 
46
-    @Autowired
47
-    private ICmcPartyAService cmcPartyAService;
48
-
49 47
     /**
50 48
      * 查询cmc合同评审列表
51 49
      */
@@ -65,14 +63,75 @@ public class CmcContractController extends BaseController
65 63
         JSONObject jsonObject = new JSONObject();
66 64
         JSONArray yearArray = new JSONArray();
67 65
         JSONObject yearObject = new JSONObject();
68
-        //每年合同数量
69
-        for (int i = 2019; i <= Calendar.getInstance().get(Calendar.YEAR); i++) {
70
-            cmcContract.setSignDate(new SimpleDateFormat("yyyy").parse(String.valueOf(i)));
66
+        JSONArray sourceArray = new JSONArray();
67
+        JSONObject sourceObject = new JSONObject();
68
+        JSONArray amountArray = new JSONArray();
69
+        JSONObject amountObject = new JSONObject();
70
+        JSONArray cwAmountArray = new JSONArray();
71
+        JSONObject cwAmountObject = new JSONObject();
72
+        //每年合同数量及金额
73
+        if (cmcContract.getSignDate() == null) {
74
+            for (int i = 2019; i <= Calendar.getInstance().get(Calendar.YEAR); i++) {
75
+                cmcContract.setSignDate(new SimpleDateFormat("yyyy").parse(String.valueOf(i)));
76
+                List<CmcContract> yearList = cmcContractService.selectCmcContractList(cmcContract);
77
+                yearObject.put(String.valueOf(i), yearList.size());
78
+                BigDecimal amount = new BigDecimal(0);
79
+                for (CmcContract contract : yearList) {
80
+                    amount = amount.add(contract.getAmount());
81
+                }
82
+                amountObject.put(String.valueOf(i), amount);
83
+            }
84
+            cmcContract.setSignDate(null);
85
+            cmcContract.setProjectSource("1");
86
+            List<CmcContract> sourceList = cmcContractService.selectCmcContractList(cmcContract);
87
+            BigDecimal cAmount = new BigDecimal(0);
88
+            BigDecimal wAmount = new BigDecimal(0);
89
+            for (CmcContract contract : sourceList) {
90
+                wAmount = wAmount.add(contract.getAmount());
91
+            }
92
+            sourceObject.put("市场", sourceList.size());
93
+            cwAmountObject.put("市场", wAmount);
94
+            cmcContract.setProjectSource("0");
95
+            sourceList = cmcContractService.selectCmcContractList(cmcContract);
96
+            for (CmcContract contract : sourceList) {
97
+                cAmount = cAmount.add(contract.getAmount());
98
+            }
99
+            sourceObject.put("院内", sourceList.size());
100
+            cwAmountObject.put("院内", cAmount);
101
+        }
102
+        else {
71 103
             List<CmcContract> yearList = cmcContractService.selectCmcContractList(cmcContract);
72
-            yearObject.put(String.valueOf(i), yearList.size());
104
+            yearObject.put(new SimpleDateFormat("yyyy").format(cmcContract.getSignDate()), yearList.size());
105
+            BigDecimal amount = new BigDecimal(0);
106
+            for (CmcContract contract : yearList) {
107
+                amount = amount.add(contract.getAmount());
108
+            }
109
+            amountObject.put(new SimpleDateFormat("yyyy").format(cmcContract.getSignDate()), amount);
110
+            cmcContract.setProjectSource("1");
111
+            List<CmcContract> sourceList = cmcContractService.selectCmcContractList(cmcContract);
112
+            BigDecimal cAmount = new BigDecimal(0);
113
+            BigDecimal wAmount = new BigDecimal(0);
114
+            for (CmcContract contract : sourceList) {
115
+                wAmount = wAmount.add(contract.getAmount());
116
+            }
117
+            sourceObject.put("市场", sourceList.size());
118
+            cwAmountObject.put("市场", wAmount);
119
+            cmcContract.setProjectSource("0");
120
+            sourceList = cmcContractService.selectCmcContractList(cmcContract);
121
+            for (CmcContract contract : sourceList) {
122
+                cAmount = cAmount.add(contract.getAmount());
123
+            }
124
+            sourceObject.put("院内", sourceList.size());
125
+            cwAmountObject.put("院内", cAmount);
73 126
         }
74 127
         yearArray.add(yearObject);
128
+        sourceArray.add(sourceObject);
129
+        amountArray.add(amountObject);
130
+        cwAmountArray.add(cwAmountObject);
75 131
         jsonObject.put("year", yearArray);
132
+        jsonObject.put("source", sourceArray);
133
+        jsonObject.put("amount", amountArray);
134
+        jsonObject.put("cwAmount", cwAmountArray);
76 135
         return success(jsonObject);
77 136
     }
78 137
 

+ 29
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/domain/CmcContract.java Wyświetl plik

@@ -39,6 +39,13 @@ public class CmcContract extends BaseEntity
39 39
     private String tenderName;
40 40
     private Integer tenderId;
41 41
 
42
+    /** 项目id */
43
+    @Excel(name = "项目编号")
44
+    private String projectNumber;
45
+    @Excel(name = "项目名称")
46
+    private String projectName;
47
+    private String projectSource;
48
+
42 49
     /** 甲方单位 */
43 50
     @Excel(name = "甲方单位")
44 51
     private String partyAName;
@@ -121,6 +128,8 @@ public class CmcContract extends BaseEntity
121 128
 
122 129
     private CmcPartyA partyA;
123 130
 
131
+    private CmcProject project;
132
+
124 133
     public void setContractId(String contractId)
125 134
     {
126 135
         this.contractId = contractId;
@@ -176,6 +185,26 @@ public class CmcContract extends BaseEntity
176 185
     {
177 186
         return tender;
178 187
     }
188
+    public void setProject(CmcProject project)
189
+    {
190
+        this.project = project;
191
+        this.projectNumber = project == null ? "" : project.getProjectNumber();
192
+        this.projectName = project == null ? "" : project.getProjectName();
193
+    }
194
+
195
+    public CmcProject getProject()
196
+    {
197
+        return project;
198
+    }
199
+    public void setProjectSource(String projectSource)
200
+    {
201
+        this.projectSource = projectSource;
202
+    }
203
+
204
+    public String getProjectSource()
205
+    {
206
+        return projectSource;
207
+    }
179 208
     public void setPartyAId(String partyAId)
180 209
     {
181 210
         this.partyAId = partyAId;

+ 16
- 11
oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcContractMapper.xml Wyświetl plik

@@ -27,22 +27,18 @@
27 27
         <result property="gmUserId"    column="gm_user_id"    />
28 28
         <result property="gmTime"    column="gm_time"    />
29 29
         <result property="gmComment"    column="gm_comment"    />
30
+        <result property="projectSource"    column="project_source"    />
30 31
         <association property="draftUser"    javaType="SysUser"         resultMap="DraftUserResult" />
31 32
         <association property="managerUser"    javaType="SysUser"         resultMap="ManagerUserResult" />
32 33
         <association property="gmUser"    javaType="SysUser"         resultMap="GmUserResult" />
33 34
         <association property="tender"    javaType="CmcTender"         resultMap="CmcTenderResult" />
34 35
         <association property="partyA"    javaType="CmcPartyA"         resultMap="CmcPartyAResult" />
36
+        <association property="project"    javaType="CmcProject"         resultMap="CmcProjectResult" />
35 37
     </resultMap>
36 38
 
37 39
     <resultMap type="CmcTender" id="CmcTenderResult">
38 40
         <result property="tenderId"    column="tender_id"    />
39
-        <result property="projectName"    column="project_name"    />
40
-        <result property="partyAName"    column="party_a_name"    />
41
-        <result property="aPerson"    column="a_person"    />
42
-        <result property="aPhone"    column="a_phone"    />
43
-        <result property="agent"    column="agent"    />
44
-        <result property="agentPerson"    column="agent_person"    />
45
-        <result property="agentPhone"    column="agent_phone"    />
41
+        <result property="projectName"    column="t_project_name"    />
46 42
     </resultMap>
47 43
 
48 44
     <resultMap type="SysUser" id="DraftUserResult">
@@ -65,16 +61,24 @@
65 61
         <result property="partyAName"    column="party_a_name"    />
66 62
     </resultMap>
67 63
 
64
+    <resultMap type="CmcProject" id="CmcProjectResult">
65
+        <result property="projectId"    column="project_id"    />
66
+        <result property="projectNumber"    column="project_number"    />
67
+        <result property="projectName"    column="project_name"    />
68
+    </resultMap>
69
+
68 70
     <sql id="selectCmcContractVo">
69
-        select c.contract_id, c.contract_code, c.contract_name, c.contract_number, c.tender_id, c.party_a_id, pa.party_a_name, t.project_name as project_name, t.a_person as a_person,
70
-               t.a_phone as a_phone, t.agent as agent, t.agent_person as agent_person, t.agent_phone as agent_phone, c.amount, c.deposit, c.contract_document,
71
-               c.drafter, u.nick_name as draft_nick_name, c.draft_time, c.remark, c.sign_date, c.sign_remark, c.sign_scan, c.comment_type, c.manager_comment, c.manager_user_id, u1.nick_name as manager_nick_name,
72
-               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
71
+        select 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 as project_name,
72
+               p.project_source, c.party_a_id, pa.party_a_name, t.project_name as project_name, t.a_person as a_person, t.a_phone as a_phone, t.agent as agent, t.agent_person as agent_person,
73
+               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,
74
+               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
73 75
         left join sys_user as u on u.user_id = c.drafter
74 76
         left join sys_user as u1 on u1.user_id = c.manager_user_id
75 77
         left join sys_user as u2 on u2.user_id = c.gm_user_id
76 78
         left join cmc_tender as t on t.tender_id = c.tender_id
77 79
         left join cmc_party_a as pa on pa.party_a_id = c.party_a_id
80
+        left join cmc_project_contract as pc on pc.contract_id = c.contract_id
81
+        left join cmc_project as p on pc.project_id = p.project_id
78 82
     </sql>
79 83
 
80 84
     <select id="selectCmcContractList" parameterType="CmcContract" resultMap="CmcContractResult">
@@ -95,6 +99,7 @@
95 99
             <if test="signRemark != null  and signRemark != ''"> and c.sign_remark = #{signRemark}</if>
96 100
             <if test="signScan != null  and signScan != ''"> and c.sign_scan = #{signScan}</if>
97 101
             <if test="commentType != null  and commentType != ''"> and c.comment_type = #{commentType}</if>
102
+            <if test="projectSource != null  and projectSource != ''"> and p.project_source = #{projectSource}</if>
98 103
         </where>
99 104
         order by c.draft_time desc
100 105
     </select>

+ 9
- 1
oa-ui/src/views/flowable/form/components/print/planPrint.vue Wyświetl plik

@@ -1,7 +1,7 @@
1 1
 <template>
2 2
   <div>
3 3
     <div id="printPlan">
4
-      <h2 class="text-center title">技术交底记录表</h2>
4
+      <h2 class="text-center title">技术方案记录表</h2>
5 5
       <table border="1">
6 6
         <tr>
7 7
           <td :colspan="1" class="fontbold">项目名称</td>
@@ -50,6 +50,14 @@
50 50
             签名:<span class="auditor">{{ getUserName(form.technicalAuditor) }}</span>
51 51
           </td>
52 52
           <td :colspan="2" style="text-align:left;width:240px;">日期:{{ form.techApprovalTime }}</td>
53
+        </tr>        
54
+        <tr>
55
+          <td :colspan="1" class="fontbold">技术质量与安全部审核意见</td>
56
+          <td :colspan="4">{{ form.techDeptComment }}</td>
57
+          <td :colspan="2" style="text-align:left;min-width:120px;">
58
+            签名:<span class="auditor">{{ getUserName(form.techDeptLeader) }}</span>
59
+          </td>
60
+          <td :colspan="2" style="text-align:left;width:240px;">日期:{{ form.techDeptTime }}</td>
53 61
         </tr>
54 62
         <tr>
55 63
           <td :colspan="1" class="fontbold">总工程师审核意见</td>

+ 26
- 0
oa-ui/src/views/flowable/form/projectProcess/planTab.vue Wyświetl plik

@@ -105,6 +105,32 @@
105 105
             </el-form-item>
106 106
           </el-col>
107 107
         </el-row>
108
+        <el-form-item label="修改技术方案" prop="reviseDocument">
109
+          <div v-if="form.reviseDocument">
110
+            <el-link type="primary" @click="reviewWord(`${baseUrl}${'/profile/upload' + form.reviseDocument}`)">
111
+              {{ getFileName(form.reviseDocument) }}
112
+            </el-link>
113
+            <el-link class="ml20" type="warning" :href="`${baseUrl}${'/profile/upload' + form.reviseDocument}`"
114
+              :underline="false" target="_blank">
115
+              <span class="el-icon-download">下载文件</span>
116
+            </el-link>
117
+          </div>
118
+        </el-form-item>
119
+        <el-form-item label="技术质量与安全部审核意见" prop="techDeptComment">
120
+          <el-input type="textarea" v-model="form.techDeptComment" placeholder="请输入技术质量与安全部审核意见" />
121
+        </el-form-item>
122
+        <el-row>
123
+          <el-col :span="6" :xs="24" :offset="12">
124
+            <el-form-item label="签名" prop="technicalAuditor">
125
+              <span class="auditor"> {{ form.techDeptLeader ? form.techDeptLeader.nickName : '' }} </span>
126
+            </el-form-item>
127
+          </el-col>
128
+          <el-col :span="6">
129
+            <el-form-item label="日期:" label-width="120px">
130
+              <span> {{ form.techDeptTime }} </span>
131
+            </el-form-item>
132
+          </el-col>
133
+        </el-row>
108 134
         <el-form-item label="最终技术方案" prop="finalDocument">
109 135
           <div v-if="form.finalDocument">
110 136
             <el-link type="primary" @click="reviewWord(`${baseUrl}${'/profile/upload' + form.finalDocument}`)">

+ 3
- 3
oa-ui/src/views/flowable/form/technicalPlan.vue Wyświetl plik

@@ -162,7 +162,7 @@
162 162
             </el-col>
163 163
             <el-col :span="6">
164 164
               <el-form-item label="日期:" label-width="120px">
165
-                <span> {{ form.techDeptTime ? form.techDeptTime : techApprovalTime }} </span>
165
+                <span> {{ form.techDeptTime ? form.techDeptTime : techDeptTime }} </span>
166 166
               </el-form-item>
167 167
             </el-col>
168 168
           </el-row>
@@ -280,7 +280,7 @@ export default {
280 280
       technicalUploadTime: undefined,
281 281
       techApprovalTime: undefined,
282 282
       manageApprovalTime: undefined,
283
-      techApprovalTime:undefined,
283
+      techDeptTime:undefined,
284 284
       // 遮罩层
285 285
       loading: true,
286 286
       // 选中数组
@@ -362,7 +362,7 @@ export default {
362 362
     }
363 363
     if(this.taskName == '技术质量与安全部审核'){
364 364
       this.techUser = this.$store.getters.name;
365
-      this.techApprovalTime = parseTime(new Date(), '{y}-{m}-{d}')
365
+      this.techDeptTime = parseTime(new Date(), '{y}-{m}-{d}')
366 366
     }
367 367
     this.getProjectById();
368 368
     this.getUserList();

Ładowanie…
Anuluj
Zapisz