Sfoglia il codice sorgente

用款bug修改,台账查询修改

yewc 1 anno fa
parent
commit
7e7bee0a53

+ 99 - 9
client/src/views/OaSystem/financialManagement/bzjglDeptPage/index.vue

@@ -11,25 +11,41 @@
       </div>
       <div class="form">
         <span class="formSpan">申请人:</span>
-        <el-input v-model="queryParams.userId" placeholder="请输入申请人" style="width: 160px" />
+        <el-tree-select
+          v-model="queryParams.userId"
+          :data="userList"
+          :props="defaultProps"
+          check-strictly
+          clearable
+          filterable
+          default-expand-all
+          node-key="id"
+          placeholder="请选择人员"
+        />
       </div>
-      <div class="form">
+      <div class="form form-time-range">
         <span class="formSpan">申请时间:</span>
         <el-date-picker
-          v-model="queryParams.applyTime"
+          v-model="applyDate"
           type="daterange"
           unlink-panels
           range-separator="到"
           start-placeholder="开始日期"
           end-placeholder="结束日期"
+          @change="changeApplyDate"
         />
       </div>
       <div class="form">
         <span class="formSpan">项目部门:</span>
-        <el-input
+        <el-tree-select
           v-model="queryParams.projectDeptId"
-          placeholder="请输入项目部门"
-          style="width: 160px"
+          :data="deptList"
+          :props="defaultProps"
+          check-strictly
+          default-expand-all
+          node-key="id"
+          placeholder="请选择部门"
+          clearable
         />
       </div>
       <div class="form">
@@ -142,7 +158,11 @@ import { dateFormatter2 } from '@/utils/formatTime'
 import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
 import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
 import TableLayout from '../../oaViews/layout/TableLayout.vue'
-
+import { useRouter } from 'vue-router'
+import * as DeptApi from '@/api/system/dept'
+import { defaultProps, handleTree } from '@/utils/tree'
+import { arrFlatten } from '../../attendanceCenter/attendAuth'
+import moment from 'moment'
 defineOptions({ name: 'UseMoneyEarnestDept' })
 const { wsCache } = useCache()
 const user = wsCache.get(CACHE_KEY.USER)
@@ -157,7 +177,9 @@ const queryParams = reactive({
   projectDeptId: undefined,
   costType: undefined,
   status: undefined,
-  totalAmount: undefined
+  totalAmount: undefined,
+  applyOn: '',
+  applyOff: ''
 })
 const infoList: any = ref([
   {
@@ -176,11 +198,37 @@ const infoList: any = ref([
 const loading = ref(true) // 列表的加载中
 const total = ref(0) // 列表的总页数
 const list = ref([]) // 列表的数
+const deptList = ref<Tree[]>([]) // 树形结构
+const userList = ref<Tree[]>([]) // 树形结构
+const deptSort: any = ref([])
+const initTreeDeps = async () => {
+  DeptApi.getSimpleDeptList().then((res) => {
+    deptList.value = handleTree(res)
+    deptSort.value = arrFlatten(res, 'children')
+  })
+}
+/** 用户列表 */
+const initTreeUsers = async () => {
+  DeptApi.getSimpleDeptUserAllList().then((res) => {
+    userList.value = handleTree(res)
+  })
+}
+const changeApplyDate = (value, data) => {
+  if (!value) {
+    queryParams.applyOn = ''
+    queryParams.applyOff = ''
+  }
+}
+const applyDate = ref()
 
 /** 查询列表 */
 const getList = async () => {
   loading.value = true
   try {
+    if (applyDate.value && applyDate.value.length > 0) {
+      queryParams.applyOn = moment(applyDate.value[0]).format('YYYY-MM-DD')
+      queryParams.applyOff = moment(applyDate.value[1]).format('YYYY-MM-DD')
+    }
     const data = await UseMoneyApi.getUseMoneyEarnestDeptPage(queryParams)
     list.value = data.list
     total.value = data.total
@@ -188,11 +236,38 @@ const getList = async () => {
     loading.value = false
   }
 }
-
+/** 查询概况 */
+const getOverview = async () => {
+  if (applyDate.value && applyDate.value.length > 0) {
+    queryParams.applyOn = moment(applyDate.value[0]).format('YYYY-MM-DD')
+    queryParams.applyOff = moment(applyDate.value[1]).format('YYYY-MM-DD')
+  }
+  const data = await UseMoneyApi.getUseMoneyOverviewHx(queryParams)
+  if (data.totalAmount > 100000) {
+    infoList.value[0].num = data.totalAmount / 10000
+    infoList.value[1].num = data.totalUseAmount / 10000
+    infoList.value[2].num = data.totalApplyAmount / 10000
+    infoList.value[0].name = '保证金总金额(万元)'
+    infoList.value[1].name = '已核销总金额(万元)'
+    infoList.value[2].name = '未核销总金额(万元)'
+  } else {
+    infoList.value[0].num = data.totalAmount
+    infoList.value[1].num = data.totalUseAmount
+    infoList.value[2].num = data.totalApplyAmount
+    infoList.value[0].name = '保证金总金额(元)'
+    infoList.value[1].name = '已核销总金额(元)'
+    infoList.value[2].name = '未核销总金额(元)'
+  }
+}
+const formRef = ref()
+const openForm = (row: object) => {
+  formRef.value.open(row)
+}
 /** 搜索按钮操作 */
 const handleQuery = () => {
   queryParams.pageNo = 1
   getList()
+  getOverview()
 }
 
 /** 分页操作 */
@@ -203,6 +278,21 @@ const handleCurrentChange = (pageNo: number) => {
 
 /** 初始化 */
 onMounted(() => {
+  initTreeDeps()
+  initTreeUsers()
   getList()
+  getOverview()
 })
+const router = useRouter()
+const operateClick = (row: any) => {
+  router.push({
+    path: '/processLook',
+    query: {
+      url:
+        `${
+          import.meta.env.VITE_PROCESS_DETAIL_URI
+        }/IFlowInstance/redirectFlowPage?flowInstanceId=` + row.instanceId
+    }
+  })
+}
 </script>

+ 9 - 2
client/src/views/OaSystem/financialManagement/loan/deptLoan.vue

@@ -34,6 +34,7 @@
           range-separator="To"
           start-placeholder="开始日期"
           end-placeholder="结束日期"
+          @change="changeApplyDate"
         />
       </div>
       <div class="from">
@@ -213,6 +214,12 @@ queryLoanListAjax()
 const filterNodeMethod = (value, data) => {
   return data.name.includes(value)
 }
+const changeApplyDate = (value, data) => {
+  if (!value) {
+    queryParams.applyOn = ''
+    queryParams.applyOff = ''
+  }
+}
 const getOverview = async () => {
   const urlApi = `/loan/overview`
   if (applyDate.value && applyDate.value.length > 0) {
@@ -233,8 +240,8 @@ const getOverview = async () => {
       infoList.value[1].name = '已核销总金额(万元)'
       infoList.value[2].name = '借款总余额(万元)'
     } else {
-      infoList.value[0].num = data.totalAmount / 10000
-      infoList.value[1].num = data.hexiaoAmount / 10000
+      infoList.value[0].num = data.totalAmount
+      infoList.value[1].num = data.hexiaoAmount
       infoList.value[2].num = data.totalAmount - data.hexiaoAmount
       infoList.value[0].name = '已借款总金额(元)'
       infoList.value[1].name = '已核销总金额(元)'

+ 2 - 2
client/src/views/OaSystem/financialManagement/loan/loan.vue

@@ -253,8 +253,8 @@ const getOverview = async () => {
       infoList.value[1].name = '已核销总金额(万元)'
       infoList.value[2].name = '借款总余额(万元)'
     } else {
-      infoList.value[0].num = data.totalAmount / 10000
-      infoList.value[1].num = data.hexiaoAmount / 10000
+      infoList.value[0].num = data.totalAmount
+      infoList.value[1].num = data.hexiaoAmount
       infoList.value[2].num = data.totalAmount - data.hexiaoAmount
       infoList.value[0].name = '已借款总金额(元)'
       infoList.value[1].name = '已核销总金额(元)'

+ 9 - 2
client/src/views/OaSystem/financialManagement/loan/myLoan.vue

@@ -46,6 +46,7 @@
           range-separator="To"
           start-placeholder="开始日期"
           end-placeholder="结束日期"
+          @change="changeApplyDate"
         />
       </div>
       <div class="from">
@@ -220,6 +221,12 @@ queryLoanListAjax()
 const filterNodeMethod = (value, data) => {
   return data.name.includes(value)
 }
+const changeApplyDate = (value, data) => {
+  if (!value) {
+    queryParams.applyOn = ''
+    queryParams.applyOff = ''
+  }
+}
 const getOverview = async () => {
   const urlApi = `/loan/overview`
   if (applyDate.value && applyDate.value.length > 0) {
@@ -240,8 +247,8 @@ const getOverview = async () => {
       infoList.value[1].name = '已核销总金额(万元)'
       infoList.value[2].name = '借款总余额(万元)'
     } else {
-      infoList.value[0].num = data.totalAmount / 10000
-      infoList.value[1].num = data.hexiaoAmount / 10000
+      infoList.value[0].num = data.totalAmount
+      infoList.value[1].num = data.hexiaoAmount
       infoList.value[2].num = data.totalAmount - data.hexiaoAmount
       infoList.value[0].name = '已借款总金额(元)'
       infoList.value[1].name = '已核销总金额(元)'

+ 2 - 2
client/src/views/OaSystem/mineCenter/rightChild/myLoan.vue

@@ -236,8 +236,8 @@ const getOverview = async () => {
       infoList.value[1].name = '已核销总金额(万元)'
       infoList.value[2].name = '借款总余额(万元)'
     } else {
-      infoList.value[0].num = data.totalAmount / 10000
-      infoList.value[1].num = data.hexiaoAmount / 10000
+      infoList.value[0].num = data.totalAmount
+      infoList.value[1].num = data.hexiaoAmount
       infoList.value[2].num = data.totalAmount - data.hexiaoAmount
       infoList.value[0].name = '已借款总金额(元)'
       infoList.value[1].name = '已核销总金额(元)'

+ 7 - 0
zjugis-business/src/main/java/com/zjugis/business/flow/usemoney/dao/UseMoneyDao.java

@@ -41,7 +41,14 @@ public interface UseMoneyDao extends BaseMapperX<UseMoneyDO> {
     default List<UseMoneyDO> getUseMoneyList(UseMoneyPageReqVO pageReqVO) {
         return selectList(new LambdaQueryWrapperX<UseMoneyDO>()
                 .eqIfPresent(UseMoneyDO::getUserId, pageReqVO.getUserId())
+                .eqIfPresent(UseMoneyDO::getTotalAmount, pageReqVO.getTotalAmount())
+                .eqIfPresent(UseMoneyDO::getDeptId, pageReqVO.getDeptId())
+                .likeIfPresent(UseMoneyDO::getUseMoneyNo, pageReqVO.getUseMoneyNo())
+                .inIfPresent(UseMoneyDO::getProjectId, pageReqVO.getProjectId())
+                .inIfPresent(UseMoneyDO::getUserId, pageReqVO.getUserList())
                 .in(UseMoneyDO::getFlowStatus, FLOW_FINISHED, FLOW_PAYMENT)
+                .gt(pageReqVO.getApplyOn()!=null,UseMoneyDO::getApplyTime, pageReqVO.getApplyOn())
+                .lt(pageReqVO.getApplyOff()!=null,UseMoneyDO::getApplyTime, pageReqVO.getApplyOff())
                 .orderByDesc(UseMoneyDO::getApplyTime));
     }
 

+ 35 - 0
zjugis-business/src/main/java/com/zjugis/business/flow/usemoney/service/UseMoneyServiceImpl.java

@@ -225,6 +225,27 @@ public class UseMoneyServiceImpl implements UseMoneyService {
 
     @Override
     public UseMoneyOverviewVO getUseMoneyOverview(UseMoneyPageReqVO pageReqVO) {
+        if(pageReqVO.getProjectDeptId()!=null){
+            Set<String> dept=commonService.getDeptCondition(pageReqVO.getProjectDeptId());
+            List<String> projectId=new ArrayList<>();
+            for(String deptId:dept){
+                List<Project> deptList=projectService.selectByDeptId(deptId);
+                for(Project project:deptList){
+                    projectId.add(project.getId());
+                }
+            }
+            pageReqVO.setProjectId(projectId);
+        }
+        if(pageReqVO.getDeptId()!=null){
+            Set<String> dept=commonService.getDeptCondition(pageReqVO.getDeptId());
+            List<String> projectId=new ArrayList<>();
+            CommonResult<List<AdminUserRespDTO>> userList=adminUserApi.getUserListByDeptIds(dept);
+            for(AdminUserRespDTO user:userList.getData()){
+                projectId.add(user.getId());
+            }
+            pageReqVO.setUserList(projectId);
+            pageReqVO.setDeptId(null);
+        }
         List<UseMoneyDO> useMoneyList = useMoneyDao.getUseMoneyList(pageReqVO);
         UseMoneyOverviewVO result = new UseMoneyOverviewVO();
         double totalAmount = useMoneyList.stream().collect(Collectors.summarizingDouble(value -> value.getTotalAmount().doubleValue())).getSum();
@@ -237,6 +258,15 @@ public class UseMoneyServiceImpl implements UseMoneyService {
     }
     @Override
     public UseMoneyOverviewVO getUseMoneyOverviewHx(UseMoneyPageReqVO pageReqVO) {
+        if(pageReqVO.getProjectDeptId()!=null){
+            Set<String> dept=commonService.getDeptCondition(pageReqVO.getProjectDeptId());
+            pageReqVO.setDeptList(dept);
+        }
+        if(pageReqVO.getDeptId()!=null){
+            Set<String> dept=commonService.getDeptCondition(pageReqVO.getDeptId());
+            pageReqVO.setUserDeptList(dept);
+            pageReqVO.setDeptId(null);
+        }
         return useMoneyDao.getUseMoneyOverviewHx(pageReqVO);
     }
     @Override
@@ -378,6 +408,11 @@ public class UseMoneyServiceImpl implements UseMoneyService {
         }
         List<zTree> zTrees = getCostTypezTrees();
         map.put("costTypeJSON", JSON.toJSONString(zTrees));
+        if(entity.getContractId()==null){
+            map.put("contractId", "contract");
+        }else{
+            map.put("contractId", "notContract");
+        }
         return map;
     }
 

+ 29 - 2
zjugis-business/src/main/resources/mapper/oracle/UseMoneyMapper.xml

@@ -114,8 +114,35 @@
         LEFT JOIN	WF_USE_MONEY T2 ON T1.USE_MONEY_ID = T2.ID
         <where>
             T1.ISVALID = 1 and T2.FLOW_STATUS=90  AND T2.ISVALID = 1 and T1.COST_TYPE LIKE '14%'
-            <if test="params != null and params.userId != null and params.userId != ''">
-                AND USER_ID = #{params.userId}
+            <if test="params != null and params.costType != null">
+                AND T1.COST_TYPE = #{params.costType}
+            </if>
+            <if test="params != null and params.useMoneyNo != null">
+                AND T2.USE_MONEY_NO = #{params.useMoneyNo}
+            </if>
+            <if test="params != null and params.totalAmount != null">
+                AND T2.TOTAL_AMOUNT = #{params.totalAmount}
+            </if>
+            <if test="params != null and params.userId != null">
+                AND T2.USER_ID = #{params.userId}
+            </if>
+            <if test="params != null and params.applyOn != null">
+                AND T2.APPLY_TIME &gt;= #{params.applyOn}
+            </if>
+            <if test="params != null and params.applyOff != null">
+                AND T2.APPLY_TIME &lt;= #{params.applyOff}
+            </if>
+            <if test="params != null and params.DeptList != null and params.DeptList.size > 0">
+                AND T3.ZRBM_ID in
+                <foreach collection="params.DeptList" item="item" open="(" close=")" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="params != null and params.UserDeptList != null and params.UserDeptList.size > 0">
+                AND T2.DEPT_ID in
+                <foreach collection="params.UserDeptList" item="item" open="(" close=")" separator=",">
+                    #{item}
+                </foreach>
             </if>
         </where>
     </select>

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

@@ -122,7 +122,7 @@
               </div>
             </td>
           </tr>
-          <#if (formEntity.contractId!0)==''>
+          <#if (contractId!0)=='notContract'>
             <tr >
               <td class="th">
                 <div class="form-label">合同号:</div>

+ 4 - 0
zjugis-module-infra/zjugis-module-infra-biz/src/main/resources/application-local.yaml

@@ -173,3 +173,7 @@ zjugis:
   error-code: # 错误码相关配置项
     enable: false
   demo: false # 关闭演示模式
+  ding:
+    agentid: 2755233050
+    appkey: dingk0ggukejc4xacgku
+    appsecret: 1Irqm3obWLCWTokhrCgbrcMIX7klSI3s_ljiBZrAzMfnpttJTUJHIBCi8C-2rD2O