Sfoglia il codice sorgente

h5表单只读状态下不更新业务数据,财务台账样式修改

chenjun 1 anno fa
parent
commit
1d93ec53f0

+ 2 - 2
client/src/views/OaSystem/financialManagement/financeCost/index.vue

@@ -49,9 +49,9 @@
       <div class="form" style="width: 380px">
         <span class="formSpan">类型:</span>
         <el-checkbox-group v-model="type" :min="1" :max="3">
-          <el-checkbox-button v-for="item in typeOptions" :key="item.value" :label="item.value">
+          <el-checkbox v-for="item in typeOptions" :key="item.value" :label="item.value">
             {{ item.label }}
-          </el-checkbox-button>
+          </el-checkbox>
         </el-checkbox-group>
       </div>
       <div class="from">

+ 18 - 5
client_h5/src/pages/attendanceNote/index.vue

@@ -55,7 +55,10 @@
         </button>
       </template>
       <template #default>
-        <div v-for="(item, index) in formData.attendanceNoteTimeCreateList" :key="index">
+        <div
+          v-for="(item, index) in formData.attendanceNoteTimeCreateList"
+          :key="index"
+        >
           <van-swipe-cell :disabled="formRead">
             <card-cell>
               <van-cell title="起始时间" :value="item.startTime" />
@@ -178,15 +181,24 @@ const activityData: FlowDTO = {
   flowOpinion: "",
 };
 
-const submitNextActivity = async (NextActivity: ()=>Promise<any>) => {
+const submitNextActivity = async (NextActivity: () => Promise<any>) => {
   form.value.validate().then(async () => {
     formData.value.attendanceNoteTimeCreateList.forEach((x: any) => {
       x.startTime = Date.parse(x.startTime);
       x.endTime = Date.parse(x.endTime);
     });
     //更新表单业务数据
-    const result = await reqest.post("/business/Leave/update", formData.value);
-    if (result.code === 200 || result.code === 0) {
+    if (!formRead.value) {
+      const result = await reqest.post(
+        "/business/AttendanceNote/update",
+        formData.value
+      );
+      if (result.code === 200 || result.code === 0) {
+        //工作流转件
+        NextActivity();
+      }
+    } else {
+      //工作流转件
       NextActivity();
     }
   });
@@ -218,7 +230,8 @@ const initFormData = async () => {
 const saveHandle = async () => {
   detailData.value.attendanceNoteId = formData.value.id;
   if (detailEdit.value) {
-    formData.value.attendanceNoteTimeCreateList[detailIndex.value] = detailData.value;
+    formData.value.attendanceNoteTimeCreateList[detailIndex.value] =
+      detailData.value;
   } else {
     formData.value.attendanceNoteTimeCreateList.push(detailData.value);
   }

+ 12 - 8
client_h5/src/pages/leave/index.vue

@@ -220,21 +220,25 @@ const onConfirm = ({ selectedOptions }) => {
   formData.value.leaveType = selectedOptions[0]?.value;
   showPicker.value = false;
 };
-const submitNextActivity = async (NextActivity: ()=>Promise<any>) => {
+const submitNextActivity = async (NextActivity: () => Promise<any>) => {
   form.value.validate().then(async () => {
     formData.value.leaveTimeCreateList.forEach((x: any) => {
       x.startTime = Date.parse(x.startTime);
       x.endTime = Date.parse(x.endTime);
     });
     //更新表单业务数据
-    const result = await reqest.post("/business/Leave/update", formData.value);
-    if (result.code === 200 || result.code === 0) {
+    if (!formRead.value) {
+      const result = await reqest.post(
+        "/business/Leave/update",
+        formData.value
+      );
+      if (result.code === 200 || result.code === 0) {
+        //工作流转件
+        NextActivity();
+      }
+    } else {
+      //工作流转件
       NextActivity();
-      // getNextActivity(activityData).then(result => {
-      //   console.log(result)
-      // }).catch((err) => {
-      //   console.error(err)
-      // })
     }
   });
 };

+ 17 - 8
client_h5/src/pages/travel/index.vue

@@ -80,7 +80,10 @@
         </button>
       </template>
       <template #default>
-        <div v-for="(item, index) in formData.travelTimeCreateList" :key="index">
+        <div
+          v-for="(item, index) in formData.travelTimeCreateList"
+          :key="index"
+        >
           <van-swipe-cell :disabled="formRead">
             <card-cell>
               <van-cell title="起始时间" :value="item.startTime" />
@@ -208,15 +211,23 @@ const activityData: FlowDTO = {
   flowOpinion: "",
 };
 
-const submitNextActivity = async (NextActivity: ()=>Promise<any>) => {
+const submitNextActivity = async (NextActivity: () => Promise<any>) => {
   form.value.validate().then(async () => {
     formData.value.travelTimeCreateList.forEach((x: any) => {
       x.startTime = Date.parse(x.startTime);
       x.endTime = Date.parse(x.endTime);
     });
     //更新表单业务数据
-    const result = await reqest.post("/business/BusinessTravel/update", formData.value);
-    if (result.code === 200 || result.code === 0) {
+    if (!formRead.value) {
+      const result = await reqest.post(
+        "/business/BusinessTravel/update",
+        formData.value
+      );
+      if (result.code === 200 || result.code === 0) {
+        //工作流转件
+        NextActivity();
+      }
+    } else {
       //工作流转件
       NextActivity();
     }
@@ -292,9 +303,7 @@ const endTimeChange = (value: string) => {
 };
 /** 获取项目列表 */
 const getProjectList = async () => {
-  const result = await reqest.get(
-    `/business/project/getListByUser`
-  );
+  const result = await reqest.get(`/business/project/getListByUser`);
   columns = result.data;
 };
 const customFieldName = {
@@ -310,7 +319,7 @@ const onConfirm = (value: any) => {
 /** 初始化 */
 onMounted(() => {
   initFormData();
-  getProjectList()
+  getProjectList();
   if (read === "1" || _o === "v") {
     formRead.value = true;
   }

+ 0 - 1
zjugis-business/src/main/java/com/zjugis/business/flow/commoncost/service/CommonCostServiceImpl.java

@@ -282,7 +282,6 @@ public class CommonCostServiceImpl implements CommonCostService {
                 ids = convertSet(detailList, CommonCostDetailDO::getCommonCostId);
             }
         }
-        PageResult<CommonCostDO> pageResult = commonCostDao.getCommonCostPage(pageReqVO, commonService.getDeptCondition(pageReqVO.getDeptId()), ids);
         List<CommonCostDO> commonCostList = commonCostDao.getCommonCostList(pageReqVO, commonService.getDeptCondition(pageReqVO.getDeptId()),ids);
         CommonCostOverviewVO result = new CommonCostOverviewVO();
         double totalAmount = commonCostList.stream().collect(Collectors.summarizingDouble(value -> value.getTotalAmount().doubleValue())).getSum();

+ 273 - 268
zjugis-business/src/main/java/com/zjugis/business/service/impl/FinanceCostServiceImpl.java

@@ -1,5 +1,6 @@
 package com.zjugis.business.service.impl;
 
+import cn.hutool.core.collection.CollectionUtil;
 import com.zjugis.business.bean.entity.FinanceCostView;
 import com.zjugis.business.bean.entity.Project;
 import com.zjugis.business.bean.request.FinanceCostRequest;
@@ -154,280 +155,27 @@ public class FinanceCostServiceImpl implements FinanceCostService {
         List<FinanceCostExcelResponse> excelList = new ArrayList<>();
         if (typeList.contains("差旅报销")) {
             List<TravelCostDO> travelCostList = travelCostService.getFinanceCostExcelList(pageReqVO);
-            Set<String> projectIds = convertSet(travelCostList, TravelCostDO::getProjectId);
-            Set<String> userIds = convertSet(travelCostList, TravelCostDO::getUserId);
-            List<Project> projects = projectService.selectByIds(projectIds);
-            Set<String> zrbmIds = convertSet(projects, Project::getZrbmId);
-            Map<String, DeptRespDTO> deptMap = deptApi.getDeptMap(zrbmIds);
-            Map<String, Project> projectMap = CollectionUtils.convertMap(projects, Project::getId);
-            Map<String, StaffRecordsDTO> userMap = staffApi.getUserMap(userIds);
-            for (TravelCostDO entity : travelCostList) {
-                FinanceCostExcelResponse obj = new FinanceCostExcelResponse();
-                obj.setNo(entity.getTravelCostNo());
-                obj.setDeptName(entity.getDeptName());
-                Project project = projectMap.get(entity.getProjectId());
-                obj.setProjectDeptName(deptMap.get(project.getZrbmId()).getName());
-                String digest = entity.getUserNickname() + "报差旅费";
-                obj.setDigest(digest);
-                obj.setProjectNo(project.getXmbh());
-                obj.setProjectName(project.getXmmc());
-                obj.setUserName(entity.getUserNickname());
-                obj.setTotalAmount(entity.getTotalAmount().toString());
-                obj.setClf(entity.getTotalAmount().toString());
-                StaffRecordsDTO recordsDTO = userMap.get(entity.getUserId());
-                obj.setBankName(recordsDTO.getKhyh());
-                obj.setBankCard(recordsDTO.getYhzh());
-                excelList.add(obj);
-            }
-        }
-        if (typeList.contains("普通报销")) {
-            List<DictDataRespDTO> costType = dictDataApi.getDictDataList("WF_COMMON_COST_TYPE").getCheckedData();
-            Map<String, DictDataRespDTO> costTypeMap = CollectionUtils.convertMap(costType, DictDataRespDTO::getValue);
-            List<CommonCostDO> commonCostList = commonCostService.getFinanceCostExcelList(pageReqVO);
-            Set<String> commonCostIds = convertSet(commonCostList, CommonCostDO::getId);
-            Set<String> userIds = convertSet(commonCostList, CommonCostDO::getUserId);
-            List<CommonCostDetailDO> detailList = commonCostDetailService.getListByCommonCostIds(commonCostIds);
-            Set<String> projectIds = convertSet(detailList, CommonCostDetailDO::getProjectId);
-            List<Project> projects = projectService.selectByIds(projectIds);
-            Set<String> zrbmIds = convertSet(projects, Project::getZrbmId);
-            Map<String, DeptRespDTO> deptMap = deptApi.getDeptMap(zrbmIds);
-            Map<String, Project> projectMap = CollectionUtils.convertMap(projects, Project::getId);
-            Map<String, StaffRecordsDTO> userMap = staffApi.getUserMap(userIds);
-            Map<String, List<CommonCostDetailDO>> detailListMap = detailList.stream().collect(Collectors.groupingBy(CommonCostDetailDO::getCommonCostId));
-            for (CommonCostDO entity : commonCostList) {
-                List<CommonCostDetailDO> detailDOS = detailListMap.get(entity.getId());
-                Map<String, List<CommonCostDetailDO>> detailProjectListMap = detailDOS.stream().collect(Collectors.groupingBy(CommonCostDetailDO::getProjectId));
-                for (Map.Entry<String, List<CommonCostDetailDO>> stringListEntry : detailProjectListMap.entrySet()) {
+            if(CollectionUtil.isNotEmpty(travelCostList)){
+                Set<String> projectIds = convertSet(travelCostList, TravelCostDO::getProjectId);
+                Set<String> userIds = convertSet(travelCostList, TravelCostDO::getUserId);
+                List<Project> projects = projectService.selectByIds(projectIds);
+                Set<String> zrbmIds = convertSet(projects, Project::getZrbmId);
+                Map<String, DeptRespDTO> deptMap = deptApi.getDeptMap(zrbmIds);
+                Map<String, Project> projectMap = CollectionUtils.convertMap(projects, Project::getId);
+                Map<String, StaffRecordsDTO> userMap = staffApi.getUserMap(userIds);
+                for (TravelCostDO entity : travelCostList) {
                     FinanceCostExcelResponse obj = new FinanceCostExcelResponse();
-                    BigDecimal rggz = BigDecimal.ZERO, rgjj = BigDecimal.ZERO, rglzbcj = BigDecimal.ZERO, sbylxgs = BigDecimal.ZERO,
-                            sbyilxgs = BigDecimal.ZERO, sbgsxgs = BigDecimal.ZERO, sbylxgr = BigDecimal.ZERO, sbsyxgr = BigDecimal.ZERO,
-                            sbyilxgr = BigDecimal.ZERO, gjjgs = BigDecimal.ZERO, gjjgr = BigDecimal.ZERO, fl = BigDecimal.ZERO,
-                            gkf = BigDecimal.ZERO, wbf = BigDecimal.ZERO, fbf = BigDecimal.ZERO, wxf = BigDecimal.ZERO,
-                            ryjcg = BigDecimal.ZERO, gdzc = BigDecimal.ZERO, wxzc = BigDecimal.ZERO, sbwxf = BigDecimal.ZERO,
-                            alyjsbzlf = BigDecimal.ZERO, ywzdf = BigDecimal.ZERO, lpcg = BigDecimal.ZERO, clf = BigDecimal.ZERO,
-                            clbxf = BigDecimal.ZERO, clwxjbyfy = BigDecimal.ZERO, dyf = BigDecimal.ZERO, cailiaof = BigDecimal.ZERO,
-                            jcf = BigDecimal.ZERO, zgjwjf = BigDecimal.ZERO, fzwyf = BigDecimal.ZERO, sdf = BigDecimal.ZERO,
-                            kdf = BigDecimal.ZERO, bgf = BigDecimal.ZERO, tbbmfjbsf = BigDecimal.ZERO, zbdlf = BigDecimal.ZERO,
-                            psf = BigDecimal.ZERO, pgsjf = BigDecimal.ZERO, hwf = BigDecimal.ZERO, zxf = BigDecimal.ZERO,
-                            ywxcf = BigDecimal.ZERO, ysf = BigDecimal.ZERO, lxzc = BigDecimal.ZERO, bzjzc = BigDecimal.ZERO,
-                            yjzc = BigDecimal.ZERO, total = BigDecimal.ZERO;
-                    Set<String> digestSet = new HashSet<>();
-                    obj.setNo(entity.getCommonCostNo());
+                    obj.setNo(entity.getTravelCostNo());
                     obj.setDeptName(entity.getDeptName());
-                    Project project = projectMap.get(stringListEntry.getKey());
+                    Project project = projectMap.get(entity.getProjectId());
                     obj.setProjectDeptName(deptMap.get(project.getZrbmId()).getName());
-                    List<CommonCostDetailDO> value = stringListEntry.getValue();
-                    for (CommonCostDetailDO commonCostDetailDO : value) {
-                        String exportType = costMap.get(commonCostDetailDO.getCostType());
-                        digestSet.add(costTypeMap.get(commonCostDetailDO.getCostType()).getLabel());
-                        switch (exportType) {
-                            case "分包费":
-                                fbf = fbf.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "外协费":
-                                wxf = wxf.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "软硬件采购":
-                                ryjcg = ryjcg.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "外包费":
-                                wbf = wbf.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "人工-工资":
-                                rggz = rggz.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "社保-养老险(公司)":
-                                sbylxgs = sbylxgs.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "福利":
-                                fl = fl.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "人工-离职补偿金":
-                                rglzbcj = rglzbcj.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "差旅费":
-                                clf = clf.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "固定资产":
-                                gdzc = gdzc.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "车辆保险费":
-                                clbxf = clbxf.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "车辆维修及保养费用":
-                                clwxjbyfy = clwxjbyfy.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "设备维修费":
-                                sbwxf = sbwxf.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "阿里云及设备租赁费":
-                                alyjsbzlf = alyjsbzlf.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "办公费":
-                                bgf = bgf.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "房租物业费":
-                                fzwyf = fzwyf.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "水电费":
-                                sdf = sdf.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "职工教育经费":
-                                zgjwjf = zgjwjf.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "咨询费":
-                                zxf = zxf.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "快递费":
-                                kdf = kdf.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "材料费":
-                                cailiaof = cailiaof.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "检测费":
-                                jcf = jcf.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "投标报名费及标书费":
-                                tbbmfjbsf = tbbmfjbsf.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "招标代理费":
-                                zbdlf = zbdlf.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "评估审计费":
-                                pgsjf = pgsjf.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "会务费":
-                                hwf = hwf.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "业务宣传费":
-                                ywxcf = ywxcf.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "验收费":
-                                ysf = ysf.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "业务招待费":
-                                ywzdf = ywzdf.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "礼品采购":
-                                lpcg = lpcg.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "打印费":
-                                dyf = dyf.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "评审费":
-                                psf = psf.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "利息支出":
-                                lxzc = lxzc.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "保证金支出":
-                                bzjzc = bzjzc.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "押金支出":
-                                yjzc = yjzc.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "无形资产":
-                                wxzc = wxzc.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            case "挂靠费":
-                                gkf = gkf.add(commonCostDetailDO.getAmount());
-                                total = total.add(commonCostDetailDO.getAmount());
-                                break;
-                            default:
-                                throw new IllegalStateException("Unexpected value: " + exportType);
-                        }
-                    }
-                    String digest = entity.getUserNickname() + "报";
-                    for (String s : digestSet) {
-                        digest += s;
-                        digest += "、";
-                    }
-                    obj.setDigest(digest.substring(0,digest.length()-1));
+                    String digest = entity.getUserNickname() + "报差旅费";
+                    obj.setDigest(digest);
                     obj.setProjectNo(project.getXmbh());
                     obj.setProjectName(project.getXmmc());
                     obj.setUserName(entity.getUserNickname());
-                    obj.setTotalAmount(total.toString());
-                    obj.setBzjzc(bzjzc.toString());
-                    obj.setYjzc(yjzc.toString());
-                    obj.setLxzc(lxzc.toString());
-                    obj.setRggz(rggz.toString());
-                    obj.setRgjj(rgjj.toString());
-                    obj.setRglzbcj(rglzbcj.toString());
-                    obj.setSbylxgs(sbylxgs.toString());
-                    obj.setSbyilxgs(sbyilxgs.toString());
-                    obj.setSbgsxgs(sbgsxgs.toString());
-                    obj.setSbylxgr(sbylxgr.toString());
-                    obj.setSbsyxgr(sbsyxgr.toString());
-                    obj.setSbyilxgr(sbyilxgr.toString());
-                    obj.setGjjgs(gjjgs.toString());
-                    obj.setGjjgr(gjjgr.toString());
-                    obj.setFl(fl.toString());
-                    obj.setGkf(gkf.toString());
-                    obj.setWbf(wbf.toString());
-                    obj.setFbf(fbf.toString());
-                    obj.setWxf(wxf.toString());
-                    obj.setRyjcg(ryjcg.toString());
-                    obj.setGdzc(gdzc.toString());
-                    obj.setWxzc(wxzc.toString());
-                    obj.setSbwxf(sbwxf.toString());
-                    obj.setAlyjsbzlf(alyjsbzlf.toString());
-                    obj.setYwzdf(ywzdf.toString());
-                    obj.setLpcg(lpcg.toString());
-                    obj.setClf(clf.toString());
-                    obj.setClbxf(clbxf.toString());
-                    obj.setClwxjbyfy(clwxjbyfy.toString());
-                    obj.setDyf(dyf.toString());
-                    obj.setCailiaof(cailiaof.toString());
-                    obj.setJcf(jcf.toString());
-                    obj.setZgjwjf(zgjwjf.toString());
-                    obj.setFzwyf(fzwyf.toString());
-                    obj.setSdf(sdf.toString());
-                    obj.setKdf(kdf.toString());
-                    obj.setBgf(bgf.toString());
-                    obj.setTbbmfjbsf(tbbmfjbsf.toString());
-                    obj.setZbdlf(zbdlf.toString());
-                    obj.setPsf(psf.toString());
-                    obj.setPgsjf(pgsjf.toString());
-                    obj.setHwf(hwf.toString());
-                    obj.setZxf(zxf.toString());
-                    obj.setYwxcf(ywxcf.toString());
-                    obj.setYsf(ysf.toString());
+                    obj.setTotalAmount(entity.getTotalAmount().toString());
+                    obj.setClf(entity.getTotalAmount().toString());
                     StaffRecordsDTO recordsDTO = userMap.get(entity.getUserId());
                     obj.setBankName(recordsDTO.getKhyh());
                     obj.setBankCard(recordsDTO.getYhzh());
@@ -435,6 +183,263 @@ public class FinanceCostServiceImpl implements FinanceCostService {
                 }
             }
         }
+        if (typeList.contains("普通报销")) {
+            List<DictDataRespDTO> costType = dictDataApi.getDictDataList("WF_COMMON_COST_TYPE").getCheckedData();
+            Map<String, DictDataRespDTO> costTypeMap = CollectionUtils.convertMap(costType, DictDataRespDTO::getValue);
+            List<CommonCostDO> commonCostList = commonCostService.getFinanceCostExcelList(pageReqVO);
+            if(CollectionUtil.isNotEmpty(commonCostList)){
+                Set<String> commonCostIds = convertSet(commonCostList, CommonCostDO::getId);
+                Set<String> userIds = convertSet(commonCostList, CommonCostDO::getUserId);
+                List<CommonCostDetailDO> detailList = commonCostDetailService.getListByCommonCostIds(commonCostIds);
+                Set<String> projectIds = convertSet(detailList, CommonCostDetailDO::getProjectId);
+                List<Project> projects = projectService.selectByIds(projectIds);
+                Set<String> zrbmIds = convertSet(projects, Project::getZrbmId);
+                Map<String, DeptRespDTO> deptMap = deptApi.getDeptMap(zrbmIds);
+                Map<String, Project> projectMap = CollectionUtils.convertMap(projects, Project::getId);
+                Map<String, StaffRecordsDTO> userMap = staffApi.getUserMap(userIds);
+                Map<String, List<CommonCostDetailDO>> detailListMap = detailList.stream().collect(Collectors.groupingBy(CommonCostDetailDO::getCommonCostId));
+                for (CommonCostDO entity : commonCostList) {
+                    List<CommonCostDetailDO> detailDOS = detailListMap.get(entity.getId());
+                    Map<String, List<CommonCostDetailDO>> detailProjectListMap = detailDOS.stream().collect(Collectors.groupingBy(CommonCostDetailDO::getProjectId));
+                    for (Map.Entry<String, List<CommonCostDetailDO>> stringListEntry : detailProjectListMap.entrySet()) {
+                        FinanceCostExcelResponse obj = new FinanceCostExcelResponse();
+                        BigDecimal rggz = BigDecimal.ZERO, rgjj = BigDecimal.ZERO, rglzbcj = BigDecimal.ZERO, sbylxgs = BigDecimal.ZERO,
+                                sbyilxgs = BigDecimal.ZERO, sbgsxgs = BigDecimal.ZERO, sbylxgr = BigDecimal.ZERO, sbsyxgr = BigDecimal.ZERO,
+                                sbyilxgr = BigDecimal.ZERO, gjjgs = BigDecimal.ZERO, gjjgr = BigDecimal.ZERO, fl = BigDecimal.ZERO,
+                                gkf = BigDecimal.ZERO, wbf = BigDecimal.ZERO, fbf = BigDecimal.ZERO, wxf = BigDecimal.ZERO,
+                                ryjcg = BigDecimal.ZERO, gdzc = BigDecimal.ZERO, wxzc = BigDecimal.ZERO, sbwxf = BigDecimal.ZERO,
+                                alyjsbzlf = BigDecimal.ZERO, ywzdf = BigDecimal.ZERO, lpcg = BigDecimal.ZERO, clf = BigDecimal.ZERO,
+                                clbxf = BigDecimal.ZERO, clwxjbyfy = BigDecimal.ZERO, dyf = BigDecimal.ZERO, cailiaof = BigDecimal.ZERO,
+                                jcf = BigDecimal.ZERO, zgjwjf = BigDecimal.ZERO, fzwyf = BigDecimal.ZERO, sdf = BigDecimal.ZERO,
+                                kdf = BigDecimal.ZERO, bgf = BigDecimal.ZERO, tbbmfjbsf = BigDecimal.ZERO, zbdlf = BigDecimal.ZERO,
+                                psf = BigDecimal.ZERO, pgsjf = BigDecimal.ZERO, hwf = BigDecimal.ZERO, zxf = BigDecimal.ZERO,
+                                ywxcf = BigDecimal.ZERO, ysf = BigDecimal.ZERO, lxzc = BigDecimal.ZERO, bzjzc = BigDecimal.ZERO,
+                                yjzc = BigDecimal.ZERO, total = BigDecimal.ZERO;
+                        Set<String> digestSet = new HashSet<>();
+                        obj.setNo(entity.getCommonCostNo());
+                        obj.setDeptName(entity.getDeptName());
+                        Project project = projectMap.get(stringListEntry.getKey());
+                        obj.setProjectDeptName(deptMap.get(project.getZrbmId()).getName());
+                        List<CommonCostDetailDO> value = stringListEntry.getValue();
+                        for (CommonCostDetailDO commonCostDetailDO : value) {
+                            String exportType = costMap.get(commonCostDetailDO.getCostType());
+                            digestSet.add(costTypeMap.get(commonCostDetailDO.getCostType()).getLabel());
+                            switch (exportType) {
+                                case "分包费":
+                                    fbf = fbf.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "外协费":
+                                    wxf = wxf.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "软硬件采购":
+                                    ryjcg = ryjcg.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "外包费":
+                                    wbf = wbf.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "人工-工资":
+                                    rggz = rggz.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "社保-养老险(公司)":
+                                    sbylxgs = sbylxgs.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "福利":
+                                    fl = fl.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "人工-离职补偿金":
+                                    rglzbcj = rglzbcj.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "差旅费":
+                                    clf = clf.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "固定资产":
+                                    gdzc = gdzc.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "车辆保险费":
+                                    clbxf = clbxf.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "车辆维修及保养费用":
+                                    clwxjbyfy = clwxjbyfy.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "设备维修费":
+                                    sbwxf = sbwxf.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "阿里云及设备租赁费":
+                                    alyjsbzlf = alyjsbzlf.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "办公费":
+                                    bgf = bgf.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "房租物业费":
+                                    fzwyf = fzwyf.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "水电费":
+                                    sdf = sdf.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "职工教育经费":
+                                    zgjwjf = zgjwjf.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "咨询费":
+                                    zxf = zxf.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "快递费":
+                                    kdf = kdf.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "材料费":
+                                    cailiaof = cailiaof.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "检测费":
+                                    jcf = jcf.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "投标报名费及标书费":
+                                    tbbmfjbsf = tbbmfjbsf.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "招标代理费":
+                                    zbdlf = zbdlf.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "评估审计费":
+                                    pgsjf = pgsjf.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "会务费":
+                                    hwf = hwf.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "业务宣传费":
+                                    ywxcf = ywxcf.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "验收费":
+                                    ysf = ysf.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "业务招待费":
+                                    ywzdf = ywzdf.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "礼品采购":
+                                    lpcg = lpcg.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "打印费":
+                                    dyf = dyf.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "评审费":
+                                    psf = psf.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "利息支出":
+                                    lxzc = lxzc.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "保证金支出":
+                                    bzjzc = bzjzc.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "押金支出":
+                                    yjzc = yjzc.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "无形资产":
+                                    wxzc = wxzc.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                case "挂靠费":
+                                    gkf = gkf.add(commonCostDetailDO.getAmount());
+                                    total = total.add(commonCostDetailDO.getAmount());
+                                    break;
+                                default:
+                                    throw new IllegalStateException("Unexpected value: " + exportType);
+                            }
+                        }
+                        String digest = entity.getUserNickname() + "报";
+                        for (String s : digestSet) {
+                            digest += s;
+                            digest += "、";
+                        }
+                        obj.setDigest(digest.substring(0,digest.length()-1));
+                        obj.setProjectNo(project.getXmbh());
+                        obj.setProjectName(project.getXmmc());
+                        obj.setUserName(entity.getUserNickname());
+                        obj.setTotalAmount(total.toString());
+                        obj.setBzjzc(bzjzc.toString());
+                        obj.setYjzc(yjzc.toString());
+                        obj.setLxzc(lxzc.toString());
+                        obj.setRggz(rggz.toString());
+                        obj.setRgjj(rgjj.toString());
+                        obj.setRglzbcj(rglzbcj.toString());
+                        obj.setSbylxgs(sbylxgs.toString());
+                        obj.setSbyilxgs(sbyilxgs.toString());
+                        obj.setSbgsxgs(sbgsxgs.toString());
+                        obj.setSbylxgr(sbylxgr.toString());
+                        obj.setSbsyxgr(sbsyxgr.toString());
+                        obj.setSbyilxgr(sbyilxgr.toString());
+                        obj.setGjjgs(gjjgs.toString());
+                        obj.setGjjgr(gjjgr.toString());
+                        obj.setFl(fl.toString());
+                        obj.setGkf(gkf.toString());
+                        obj.setWbf(wbf.toString());
+                        obj.setFbf(fbf.toString());
+                        obj.setWxf(wxf.toString());
+                        obj.setRyjcg(ryjcg.toString());
+                        obj.setGdzc(gdzc.toString());
+                        obj.setWxzc(wxzc.toString());
+                        obj.setSbwxf(sbwxf.toString());
+                        obj.setAlyjsbzlf(alyjsbzlf.toString());
+                        obj.setYwzdf(ywzdf.toString());
+                        obj.setLpcg(lpcg.toString());
+                        obj.setClf(clf.toString());
+                        obj.setClbxf(clbxf.toString());
+                        obj.setClwxjbyfy(clwxjbyfy.toString());
+                        obj.setDyf(dyf.toString());
+                        obj.setCailiaof(cailiaof.toString());
+                        obj.setJcf(jcf.toString());
+                        obj.setZgjwjf(zgjwjf.toString());
+                        obj.setFzwyf(fzwyf.toString());
+                        obj.setSdf(sdf.toString());
+                        obj.setKdf(kdf.toString());
+                        obj.setBgf(bgf.toString());
+                        obj.setTbbmfjbsf(tbbmfjbsf.toString());
+                        obj.setZbdlf(zbdlf.toString());
+                        obj.setPsf(psf.toString());
+                        obj.setPgsjf(pgsjf.toString());
+                        obj.setHwf(hwf.toString());
+                        obj.setZxf(zxf.toString());
+                        obj.setYwxcf(ywxcf.toString());
+                        obj.setYsf(ysf.toString());
+                        StaffRecordsDTO recordsDTO = userMap.get(entity.getUserId());
+                        obj.setBankName(recordsDTO.getKhyh());
+                        obj.setBankCard(recordsDTO.getYhzh());
+                        excelList.add(obj);
+                    }
+                }
+            }
+        }
         return excelList;
     }
 }

+ 1 - 1
zjugis-business/src/main/resources/templates/Travel/index.ftl

@@ -116,7 +116,7 @@
                 <div class="form-group">
                   <div class="form-item" style="margin: 10px 0;">
                     <div class="z-comp-textarea" name="createReqVO$travelReason">
-                      <textarea> ${formEntity.travelReason!} </textarea>
+                      <textarea>${formEntity.travelReason!}</textarea>
                     </div>
                   </div>
                 </div>