liao-sea 1 год назад
Родитель
Сommit
4821e849eb

+ 28 - 0
src/main/java/com/hz/employmentsite/controller/taskAndLog/DoWorkController.java

@@ -0,0 +1,28 @@
+package com.hz.employmentsite.controller.taskAndLog;
+
+import com.github.pagehelper.PageInfo;
+import com.hz.employmentsite.filter.exception.BaseResponse;
+import com.hz.employmentsite.filter.exception.RespGenerstor;
+import com.hz.employmentsite.services.service.taskAndLog.DoWorkService;
+import com.hz.employmentsite.vo.taskAndLog.DoWorkVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping(value = "/api/taskAndLog/doWork")
+public class DoWorkController {
+    @Autowired
+    private DoWorkService workLogService;
+
+    @ResponseBody
+    @GetMapping("/getList")
+    public BaseResponse getList(@RequestParam("pageIndex") int pageIndex, @RequestParam("pageSize") int pageSize, @RequestParam(required = false) String primaryKey,
+                                @RequestParam(required = false) String userName,@RequestParam(required = false) String workStartDate,  @RequestParam(required = false) String workEndDate,
+                                @RequestParam(required = false) Integer doTypeID, @RequestParam(required = false) String regionCode,@RequestParam(required = false) String streetCode){
+        PageInfo<DoWorkVo> result = workLogService.getList(pageIndex, pageSize,primaryKey, userName, workStartDate,workEndDate,doTypeID,regionCode,streetCode);
+        return RespGenerstor.success(result);
+    }
+
+
+
+}

+ 12 - 0
src/main/java/com/hz/employmentsite/mapper/cquery/DoWorkCQuery.java

@@ -0,0 +1,12 @@
+package com.hz.employmentsite.mapper.cquery;
+
+import com.hz.employmentsite.vo.taskAndLog.DoWorkVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface DoWorkCQuery {
+    List<DoWorkVo> getList(@Param("primaryKey")String primaryKey, @Param("userName")String userName,
+                           @Param("workStartDate")String workStartDate, @Param("workEndDate")String workEndDate,
+                           @Param("doTypeID")Integer doTypeID, @Param("regionCode")String regionCode, @Param("streetCode")String streetCode);
+}

+ 28 - 0
src/main/java/com/hz/employmentsite/services/impl/taskAndLog/DoWorkImpl.java

@@ -0,0 +1,28 @@
+package com.hz.employmentsite.services.impl.taskAndLog;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.hz.employmentsite.mapper.cquery.DoWorkCQuery;
+import com.hz.employmentsite.services.service.taskAndLog.DoWorkService;
+import com.hz.employmentsite.vo.taskAndLog.DoWorkVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service("DoWorkService")
+public class DoWorkImpl implements DoWorkService {
+
+    @Autowired
+    private DoWorkCQuery workLogCQuery;
+
+    @Override
+    public PageInfo<DoWorkVo> getList(int pageIndex, int pageSize, String primaryKey, String userName, String workStartDate, String workEndDate, Integer doTypeID, String regionCode, String streetCode) {
+            PageHelper.startPage(pageIndex, pageSize);
+            List<DoWorkVo> list = workLogCQuery.getList(primaryKey, userName, workStartDate, workEndDate, doTypeID, regionCode, streetCode);
+            PageInfo<DoWorkVo> result = new PageInfo(list);
+            return result;
+    }
+
+
+}

+ 9 - 0
src/main/java/com/hz/employmentsite/services/service/taskAndLog/DoWorkService.java

@@ -0,0 +1,9 @@
+package com.hz.employmentsite.services.service.taskAndLog;
+
+import com.github.pagehelper.PageInfo;
+import com.hz.employmentsite.vo.taskAndLog.DoWorkVo;
+
+public interface DoWorkService {
+    PageInfo<DoWorkVo> getList(int pageIndex, int pageSize, String primaryKey, String userName, String workStartDate, String workEndDate, Integer doTypeID, String regionCode, String streetCode);
+
+}

+ 29 - 0
src/main/java/com/hz/employmentsite/vo/taskAndLog/DoWorkVo.java

@@ -0,0 +1,29 @@
+package com.hz.employmentsite.vo.taskAndLog;
+
+import lombok.Data;
+import java.sql.Time;
+
+@Data
+public class DoWorkVo {
+
+    public String doWorkID;
+
+    public String userID;
+
+    public String userName;
+
+    public String siteID;
+
+    public Integer doTypeID;
+
+    public String workContent;
+
+    public String createUserID;
+    public Time createTime;
+    public String modifyUserID;
+    public Time modifyTime;
+
+    public String regionCode;
+
+    public String streetCode;
+}

+ 28 - 0
src/main/resources/mapping/cquery/DoWorkCQuery.xml

@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.hz.employmentsite.mapper.cquery.DoWorkCQuery">
+    <select id="getList" resultType="com.hz.employmentsite.vo.taskAndLog.DoWorkVo">
+        select * from pc_dowork A,pc_site B,pc_site_user C where A.SiteID = B.SiteID and  A.UserID = C.SiteUserID and 1=1
+        <if test="primaryKey!='' and primaryKey!=null">
+            and doworkID in (${primaryKey})
+        </if>
+        <if test="userName!='' and userName!=null">
+            and Name like Concat('%',#{userName},'%')
+        </if>
+        <if test="workStartDate!='' and workStartDate!=null">
+            and A.CreateTime  <![CDATA[ >= ]]> #{workStartDate}
+        </if>
+        <if test="workEndDate!='' and workEndDate!=null">
+            and A.CreateTime   <![CDATA[ <= ]]>  #{workEndDate}
+        </if>
+        <if test="doTypeID!='' and doTypeID!=null">
+            and doTypeID like Concat('%',#{doTypeID},'%')
+        </if>
+        <if test="regionCode!='' and regionCode!=null">
+            and regionCode like Concat('%',#{regionCode},'%')
+        </if>
+        <if test="streetCode!='' and streetCode!=null">
+            and streetCode like Concat('%',#{streetCode},'%')
+        </if>
+    </select>
+</mapper>

+ 16 - 0
vue/src/api/taskAndLog/dowork.ts

@@ -0,0 +1,16 @@
+import {request} from "@/utils/request";
+
+
+export function getList(params: any) {
+  return request<object>(
+    {
+      url: "taskAndLog/doWork/getList",
+      method: 'get',
+      params: params,
+    },
+    {
+      isNew: true,
+    },
+  );
+}
+

+ 2 - 1
vue/src/router/asyncModules/taskAndLog.ts

@@ -1,5 +1,6 @@
 export default {
   'taskAndLog/dotask/index': () => import('@/views/taskAndLog/dotask/index.vue'),
   'taskAndLog/dotask/add': () => import('@/views/taskAndLog/dotask/edit.vue'),
-  'taskAndLog/dotask/edit': () => import('@/views/taskAndLog/dotask/edit.vue')
+  'taskAndLog/dotask/edit': () => import('@/views/taskAndLog/dotask/edit.vue'),
+  'taskAndLog/workLog/index': () => import('@/views/taskAndLog/dowork/index.vue'),
 };

+ 233 - 0
vue/src/views/taskAndLog/dowork/index.vue

@@ -0,0 +1,233 @@
+<template>
+  <div class="card-search">
+    <a-form ref="formRef" name="advanced_search" class="ant-advanced-search-form" :model="searchParams">
+      <a-row :gutter="24">
+        <a-col :span="6">
+          <a-form-item label="姓名" :label-col="{span:6}" name="name">
+            <a-input v-model:value="searchParams.name" placeholder=""/>
+          </a-form-item>
+        </a-col>
+        <a-col  :span="6">
+          <a-form-item label="工作日期" :label-col="{span:6}" name="name">
+            <a-range-picker format="YYYY-MM-DD" :placeholder="['开始日期', '结束日期']" @change="onRangeChange"/>
+          </a-form-item>
+        </a-col>
+        <a-col  :span="6">
+          <a-form-item label="日志类型" :label-col="{span:6}" name="name">
+            <a-input v-model:value="searchParams.name" placeholder=""  />
+          </a-form-item>
+        </a-col>
+        <a-col :span="5" style="text-align: right">
+          <a-button type="primary" html-type="submit" @click="onSearch">查询</a-button>
+        </a-col>
+      </a-row>
+      <a-row>
+        <a-col :span="6">
+          <a-form-item label="所属县区" :label-col="{span:6}" name="regionCode">
+            <a-select
+              ref="select"
+              v-model:value="searchParams.regionCode"
+              :options="regionList"
+              :field-names="{ label: 'name', value: 'code' }"
+              :allow-clear="true"
+              @change="loadData"
+            >
+            </a-select>
+          </a-form-item>
+        </a-col>
+        <a-col :span="6">
+          <a-form-item label="所属街道" :label-col="{span:6}" name="streetCode">
+            <a-select
+              ref="select"
+              v-model:value="searchParams.streetCode"
+              :options="streetList"
+              :field-names="{ label: 'name', value: 'code' }"
+              :allow-clear="true"
+              @change="loadData"
+            >
+            </a-select>
+          </a-form-item>
+        </a-col>
+        <a-col :span="6">
+        </a-col>
+      </a-row>
+      <a-row class="edit-operation">
+        <a-col :span="24" style="text-align: right">
+          <a-button type="primary" html-type="submit" @click='onOperates(null,"新增",false)'>新增</a-button>
+          <a-button type="primary" html-type="submit" @click='exportPost()'>导出</a-button>
+        </a-col>
+      </a-row>
+    </a-form>
+    <div class="search-result-list">
+      <a-table :columns="columns" :data-source="dataList" :scroll="{ x:'100%', y: 500 }" :pagination="pagination"
+               :loading="formState.loading"
+               @change="handleTableChange"
+               :row-selection="{ selectedRowKeys: formState.selectedRowKeys, onChange: onSelectChange}"
+               :row-key="record=>record.institutionID"
+               bordered>
+        <template #bodyCell="{ column, text, record }">
+          <template v-if="column.key === 'operation'">
+            <div class="table-operation">
+              <a-button type="link" size="small" @click='onOperates(record.institutionID,"修改",false)'>编辑</a-button>
+              <a-button type="link" size="small" @click="onDel(record)">删除</a-button>
+            </div>
+          </template>
+        </template>
+      </a-table>
+    </div>
+  </div>
+</template>
+
+<script lang="ts">
+import {get} from '@/api/common';
+import {reactive, ref, computed, defineComponent} from 'vue';
+import {DownOutlined, UpOutlined} from '@ant-design/icons-vue';
+import type {FormInstance,SelectProps} from 'ant-design-vue';
+import type {TableColumnsType, TableProps} from 'ant-design-vue';
+import {getList} from '@/api/taskAndLog/dowork';
+import BExportExcel from "@/components/basic/excel/exportExcel/exportExcel.vue";
+import {getPaginationTotalTitle} from "@/utils/common";
+import {message} from "ant-design-vue";
+import dayjs from 'dayjs';
+export default defineComponent({
+  name: 'doTaskList',
+  components: { DownOutlined, UpOutlined, BExportExcel},
+  setup() {
+    const formRef = ref<FormInstance>();
+    const searchParams = reactive({
+      pageIndex: 1,
+      pageSize: 20,
+      primaryKey: '',
+      userName:'',
+      workStartDate:null,
+      workEndDate:null,
+      doTypeID:1,
+      regionCode:'',
+      streetCode:''
+    });
+    const formState = reactive({
+      total: 0,
+      selectedRowKeys: [],
+      loading: false
+    });
+    const columns: TableColumnsType = [
+      {
+        title: '序号',
+        align: "center",
+        key: 'LogId',
+        customRender: item => `${searchParams.pageSize * (searchParams.pageIndex - 1) + item.index + 1}`
+      },
+      {title: '姓名', dataIndex: 'pageName', key: 'pageName', align: "center"},
+      {title: '工作日期', dataIndex: 'logTime', key: 'logTime', width: 120, align: "center"},
+      {
+        title: '日志类型', dataIndex: 'actionName', key: 'actionName', align: "center", customRender: (item) => {
+          return item.record.finishTime==null?"": (dayjs(item.record.finishTime).format('YYYY-MM-DD'))
+        }
+      },
+      {title: '工作情况', dataIndex: 'workName', key: 'workName', align: "center"},
+      {title: '所属县区', dataIndex: 'regionName', key: 'regionName', align: "center"},
+      {title: '所属街道', dataIndex: 'streetName', key: 'streetName', align: "center"},
+      {title: '操作', key: 'operation', fixed: 'right', width: 170, align: "center"},
+    ];
+    const pagination = computed(() => ({
+      total: formState.total,
+      current: searchParams.pageIndex,
+      pageSize: searchParams.pageSize,
+      showSizeChanger: true,
+      showTotal: total => getPaginationTotalTitle(total)
+    }));
+
+    const regionList = ref<SelectProps['options']>();
+    const streetList = ref<SelectProps['options']>();
+    const taskTypeList = ref<SelectProps['options']>();
+    const dataList = ref([]);
+
+    get('system/area/getCityList',{}).then(data=>{
+      console.log(data);
+      regionList.value=data;
+      console.log(regionList.value);
+    });
+
+    const loadData = async function () {
+      formState.loading = true;
+      const result: any = await getList(searchParams);
+      dataList.value = result.list;
+      console.log(dataList.value);
+      formState.total = result.total;
+      formState.loading = false;
+    }
+
+    const handleTableChange: TableProps['onChange'] = (pag: { pageSize: number; current: number },) => {
+      searchParams.pageIndex = pag.current;
+      searchParams.pageSize = pag.pageSize;
+      loadData();
+    };
+
+    const onSelectChange = (selectedRowKeys: any) => {
+      formState.selectedRowKeys = selectedRowKeys;
+    };
+
+    const onRangeChange=(dateString)=>{
+      searchParams.workStartDate = dateString ? dateString[0].format("YYYY-MM-DD") : '';
+      searchParams.workEndDate = dateString ? dateString[1].format("YYYY-MM-DD") : '';
+      loadData();
+    }
+
+
+    const onSearch = () => {
+      loadData();
+    }
+
+    const onDel = (item: any) => {
+      if (item) {
+        formState.selectedRowKeys.push(item.InstitutionID as never)
+      }
+
+      if (formState.selectedRowKeys.length <= 0) {
+        message.warning('请选择需要删除的数据!');
+        return false;
+      }
+
+    };
+
+    const importPost = () => {
+      console.log('导入');
+    }
+    const exportPost = () => {
+      console.log('导出');
+    }
+    const onOperates = () => {
+      console.log('新增');
+    };
+
+    return {
+      regionList,
+      streetList,
+      taskTypeList,
+      formRef,
+      searchParams,
+      formState,
+      columns,
+      pagination,
+      dataList,
+      handleTableChange,
+      onSelectChange,
+      onSearch,
+      onOperates,
+      importPost,
+      exportPost,
+      onDel,
+      onRangeChange,
+      loadData
+    };
+  },
+  created() {
+    this.loadData();
+  },
+  activated() {
+    if (history.state.params?.reload)
+      this.loadData();
+  }
+});
+</script>
+<style lang="less" scoped></style>