소스 검색

任务和日志-任务后台页面创建-显示待修改

Liudijing 1 년 전
부모
커밋
52d9f5576e

+ 1 - 0
src/main/java/com/hz/employmentsite/controller/CommonController.java

@@ -61,4 +61,5 @@ public class CommonController {
         public List<HashMap<String, String>> dataList;
     }
 
+
 }

+ 30 - 0
src/main/java/com/hz/employmentsite/controller/taskAndLog/DotaskController.java

@@ -0,0 +1,30 @@
+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.companyService.PostService;
+import com.hz.employmentsite.services.service.taskAndLog.DotaskService;
+import com.hz.employmentsite.vo.taskAndLog.DotaskVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping(value = "/api/taskAndLog/dotask")
+public class DotaskController {
+    @Autowired
+    private DotaskService dotaskService;
+
+    @ResponseBody
+    @GetMapping("/getList")
+    public BaseResponse getList(@RequestParam("pageIndex") int pageIndex, @RequestParam("pageSize") int pageSize,
+                                @RequestParam(required = false) String name,  @RequestParam(required = false) String startTime,
+                                @RequestParam(required = false) String endTime,  @RequestParam(required = false) String finishStartTime,
+                                @RequestParam(required = false) String finishEndTime,  @RequestParam(required = false) String regionCode,
+                                @RequestParam(required = false) String streetCode,  @RequestParam(required = false) Integer workTypeId
+                                ){
+        PageInfo<DotaskVo> result = dotaskService.getList(pageIndex, pageSize,name, startTime, endTime,finishStartTime,finishEndTime,regionCode,streetCode,workTypeId);
+        return RespGenerstor.success(result);
+    }
+
+}

+ 13 - 0
src/main/java/com/hz/employmentsite/mapper/cquery/DotaskCQuery.java

@@ -0,0 +1,13 @@
+package com.hz.employmentsite.mapper.cquery;
+
+import com.hz.employmentsite.vo.taskAndLog.DotaskVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Date;
+
+public interface DotaskCQuery {
+    List<DotaskVo> selectDotaskList(@Param("name")String name, @Param("startTime")String startTime, @Param("endTime")String endTime,
+                                    @Param("startTime")String finishStartTime, @Param("endTime")String finishEndTime,
+                           @Param("regionCode")String regionCode, @Param("streetCode")String streetCode, @Param("workTypeId")int workTypeId);
+}

+ 19 - 10
src/main/java/com/hz/employmentsite/model/PcDotask.java

@@ -13,10 +13,12 @@ public class PcDotask {
 
     private String content;
 
-    private String userID;
-
     private String siteID;
 
+    private String dotaskName;
+
+    private Date finishTime;
+
     private String createUserID;
 
     private Date createTime;
@@ -65,14 +67,6 @@ public class PcDotask {
         this.content = content == null ? null : content.trim();
     }
 
-    public String getUserID() {
-        return userID;
-    }
-
-    public void setUserID(String userID) {
-        this.userID = userID == null ? null : userID.trim();
-    }
-
     public String getSiteID() {
         return siteID;
     }
@@ -112,4 +106,19 @@ public class PcDotask {
     public void setModifyTime(Date modifyTime) {
         this.modifyTime = modifyTime;
     }
+    public Date getFnishTime() {
+        return finishTime;
+    }
+
+    public void setFnishTime(Date fnishTime) {
+        this.finishTime = fnishTime;
+    }
+
+    public String getDotaskName() {
+        return dotaskName;
+    }
+
+    public void setDotaskName(String dotaskName) {
+        this.dotaskName = dotaskName;
+    }
 }

+ 33 - 0
src/main/java/com/hz/employmentsite/model/PcDotaskUser.java

@@ -0,0 +1,33 @@
+package com.hz.employmentsite.model;
+
+public class PcDotaskUser {
+    private String dotaskUserID;
+    private String dotaskID;
+    private String siteUserID;
+
+    public String getDotaskUserID() {
+        return dotaskUserID;
+    }
+
+    public void setDotaskUserID(String dotaskUserID) {
+        this.dotaskUserID = dotaskUserID;
+    }
+
+    public String getDotaskID() {
+        return dotaskID;
+    }
+
+    public void setDotaskID(String dotaskID) {
+        this.dotaskID = dotaskID;
+    }
+
+    public String getSiteUserID() {
+        return siteUserID;
+    }
+
+    public void setSiteUserID(String siteUserID) {
+        this.siteUserID = siteUserID;
+    }
+
+
+}

+ 89 - 0
src/main/java/com/hz/employmentsite/model/PcSiteUser.java

@@ -0,0 +1,89 @@
+package com.hz.employmentsite.model;
+
+import java.util.Date;
+
+public class PcSiteUser {
+    private String siteUserID;
+    private String name;
+
+    public String getSiteUserID() {
+        return siteUserID;
+    }
+
+    public void setSiteUserID(String siteUserID) {
+        this.siteUserID = siteUserID;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public int getGender() {
+        return gender;
+    }
+
+    public void setGender(int gender) {
+        this.gender = gender;
+    }
+
+    public String getMobile() {
+        return mobile;
+    }
+
+    public void setMobile(String mobile) {
+        this.mobile = mobile;
+    }
+
+    public int getRoleID() {
+        return roleID;
+    }
+
+    public void setRoleID(int roleID) {
+        this.roleID = roleID;
+    }
+
+    public String getCreateUserID() {
+        return createUserID;
+    }
+
+    public void setCreateUserID(String createUserID) {
+        this.createUserID = createUserID;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getModifyUserID() {
+        return modifyUserID;
+    }
+
+    public void setModifyUserID(String modifyUserID) {
+        this.modifyUserID = modifyUserID;
+    }
+
+    public Date getModifyTime() {
+        return modifyTime;
+    }
+
+    public void setModifyTime(Date modifyTime) {
+        this.modifyTime = modifyTime;
+    }
+
+    private  int gender;
+    private  String mobile;
+    private  int roleID;
+    private String createUserID;
+    private Date createTime;
+    private String modifyUserID;
+    private Date modifyTime;
+
+}

+ 29 - 0
src/main/java/com/hz/employmentsite/services/impl/taskAndLog/DotaskImpl.java

@@ -0,0 +1,29 @@
+package com.hz.employmentsite.services.impl.taskAndLog;
+
+import com.github.pagehelper.PageInfo;
+import com.hz.employmentsite.mapper.cquery.DotaskCQuery;
+import com.hz.employmentsite.mapper.cquery.PostCQuery;
+import com.hz.employmentsite.services.service.taskAndLog.DotaskService;
+import com.hz.employmentsite.vo.companyService.PostVo;
+import com.hz.employmentsite.vo.taskAndLog.DotaskVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+@Service("DotaskService")
+public class DotaskImpl implements DotaskService {
+
+    @Autowired
+    private DotaskCQuery dotaskCQuery;
+
+    @Override
+    public PageInfo<DotaskVo> getList(Integer page, Integer rows, String name, String startTime, String endTime,String finishStartTime, String finishEndTime, String regionCode, String streetCode, int workTypeId) {
+       List<DotaskVo> list=dotaskCQuery.selectDotaskList(name,startTime,endTime,finishStartTime,finishEndTime,regionCode,streetCode,workTypeId);
+        PageInfo<DotaskVo> result = new PageInfo(list);
+        return result;
+    }
+
+
+}

+ 12 - 0
src/main/java/com/hz/employmentsite/services/service/taskAndLog/DotaskService.java

@@ -0,0 +1,12 @@
+package com.hz.employmentsite.services.service.taskAndLog;
+
+import com.github.pagehelper.PageInfo;
+import com.hz.employmentsite.vo.taskAndLog.DotaskVo;
+
+import java.util.Date;
+
+public interface DotaskService {
+    PageInfo<DotaskVo> getList(Integer page, Integer rows, String name, String startTime, String endTime,String finishStartTime, String finishEndTime,
+                               String regionCode,String streetCode, int workTypeId);
+
+}

+ 3 - 1
src/main/java/com/hz/employmentsite/vo/companyService/PostVo.java

@@ -1,8 +1,10 @@
 package com.hz.employmentsite.vo.companyService;
 
+import lombok.Data;
+
 import java.math.BigDecimal;
 import java.util.Date;
-
+@Data
 public class PostVo {
     public String postID;
 

+ 42 - 0
src/main/java/com/hz/employmentsite/vo/taskAndLog/DotaskVo.java

@@ -0,0 +1,42 @@
+package com.hz.employmentsite.vo.taskAndLog;
+
+import lombok.Data;
+
+import java.util.Date;
+@Data
+public class DotaskVo {
+
+    public String dotaskID;
+
+    public Integer workTypeID;
+
+    public String regionCode;
+
+    public String streetCode;
+
+    public String content;
+
+    public String siteID;
+
+    public String dotaskName;
+
+    public Date finishTime;
+
+    public String createUserID;
+
+    public Date createTime;
+
+    public String modifyUserID;
+
+    public Date modifyTime;
+
+    public  String createName;
+
+    public  int userCount;
+
+    public String workTypeName;
+    
+    public String regionName;
+    
+    public String streetName;
+}

+ 0 - 1
src/main/resources/generatorConfig.xml

@@ -96,6 +96,5 @@
         -->
 
 
-
     </context>
 </generatorConfiguration>

+ 34 - 0
src/main/resources/mapping/cquery/DotaskCQuery.xml

@@ -0,0 +1,34 @@
+<?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.DotaskCQuery">
+    <select id="selectDotaskList" resultType="com.hz.employmentsite.vo.taskAndLog.DotaskVo">
+        select task.*,u.`Name`,
+        (select count(*) from pc_dotask_user du where du.DotaskID = task.DotaskID)as userCount,
+        city.`name` as regionName,area.`name` as streetName
+        from pc_dotask task
+        left join sys_user u
+        on u.UserID = task.CreateUserID
+        left join area_code city
+        on city.`code` = task.RegionCode
+        join area_code area
+        on area.`code` = task.StreetCode
+        <where>
+            <if test="DotaskName != '' and DotaskName != null">
+                and task.dotaskName like Concat('%',#{postName},'%')
+            </if>
+            <if test="startTime != null and startTime != ''">
+                and task.createTime <![CDATA[ >= ]]> STR_TO_DATE(#{beiginDate},'%Y-%m-%d')
+            </if>
+            <if test="endTime != null and endTime != ''">
+                and task.createTime <![CDATA[ <= ]]> STR_TO_DATE(#{endTime},'%Y-%m-%d')
+            </if>
+            <if test="finishStartTime != null and finishStartTime != ''">
+                and task.finishTime <![CDATA[ >= ]]> STR_TO_DATE(#{finishStartTime},'%Y-%m-%d')
+            </if>
+            <if test="finishEndTime != null and finishEndTime != ''">
+                and task.finishTime <![CDATA[ <= ]]> STR_TO_DATE(#{finishEndTime},'%Y-%m-%d')
+            </if>
+
+        </where>
+    </select>
+</mapper>

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

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

+ 3 - 0
vue/src/router/asyncModules/taskAndLog.ts

@@ -0,0 +1,3 @@
+export default {
+  'taskAndLog/dotask/index': () => import('@/views/taskAndLog/dotask/index.vue'),
+};

+ 247 - 0
vue/src/views/taskAndLog/dotask/index.vue

@@ -0,0 +1,247 @@
+<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-range-picker format="YYYY-MM-DD" :placeholder="['开始日期', '结束日期']" @change="onFinishChange"/>
+          </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: 'value' }"
+              :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: 'value' }"
+              :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="WorkTypeID">
+            <a-select
+              ref="select"
+              v-model:value="searchParams.WorkTypeID"
+              :options="taskTypeList"
+              :field-names="{ label: 'name', value: 'value' }"
+              :allow-clear="true"
+              @change="loadData"
+            >
+            </a-select>
+          </a-form-item>
+        </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='importPost()'>导入</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 {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/dotask';
+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: '',
+      minCount:0,
+      maxCount:0,
+      recordStatus:1,
+      startTime:null,
+      endTime:null,
+      finishStartTime:null,
+      finishEndTime:null,
+      workTypeId:0
+    });
+    const formState = reactive({
+      total: 0,
+      selectedRowKeys: [],
+      loading: false
+    });
+    const columns: TableColumnsType = [
+      {
+        title: '序号',
+        align: "center",
+        key: 'institutionID',
+        customRender: item => `${searchParams.pageSize * (searchParams.pageIndex - 1) + item.index + 1}`
+      },
+      {title: '任务名称', dataIndex: 'dotaskName', key: 'dotaskName', align: "center"},
+      {title: '任务类型', dataIndex: 'workTypeName', key: 'workTypeName', width: 120, align: "center"},
+      {
+        title: '任务完成时间', dataIndex: 'finishTime', key: 'finishTime', align: "center", customRender: (item) => {
+          return item.record.finishTime==null?"": (dayjs(item.record.finishTime).format('YYYY-MM-DD'))
+        }
+      },
+      {title: '所属县区', dataIndex: 'regionName', key: 'regionName', align: "center"},
+      {title: '所属街道', dataIndex: 'streetName', key: 'streetName', align: "center"},
+      {title: '执行用户数', dataIndex: 'userCount', key: 'userCount', align: "center"},
+      {title: '下达时间', dataIndex: 'createTime', key: 'createTime', align: "center"},
+      {title: '下达人', dataIndex: 'createName', key: 'createName', 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([]);
+    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.startTime = dateString ? dateString[0].format("YYYY-MM-DD") : '';
+      searchParams.endTime = dateString ? dateString[1].format("YYYY-MM-DD") : '';
+      loadData();
+    }
+
+    const onFinishChange=(dateString)=>{
+      searchParams.finishStartTime = dateString ? dateString[0].format("YYYY-MM-DD") : '';
+      searchParams.finishEndTime = 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,
+      onFinishChange,
+      loadData
+    };
+  },
+  created() {
+    this.loadData();
+  },
+  activated() {
+    if (history.state.params?.reload)
+      this.loadData();
+  }
+});
+</script>
+<style lang="less" scoped></style>