瀏覽代碼

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/main/resources/mapping/cquery/PostCQuery.xml
liao-sea 1 年之前
父節點
當前提交
808b455d5e
共有 36 個文件被更改,包括 1347 次插入110 次删除
  1. 1 1
      h5app/src/App.vue
  2. 6 2
      h5app/src/views/pages/work/log/list.vue
  3. 35 0
      src/main/java/com/hz/employmentsite/controller/jobUserManager/OccupationalController.java
  4. 13 6
      src/main/java/com/hz/employmentsite/controller/taskAndLog/DoWorkController.java
  5. 30 0
      src/main/java/com/hz/employmentsite/mapper/PcOccupationalMapper.java
  6. 9 3
      src/main/java/com/hz/employmentsite/mapper/cquery/DoWorkCQuery.java
  7. 3 3
      src/main/java/com/hz/employmentsite/model/PcJobuser.java
  8. 53 0
      src/main/java/com/hz/employmentsite/model/PcOccupational.java
  9. 529 0
      src/main/java/com/hz/employmentsite/model/PcOccupationalExample.java
  10. 3 3
      src/main/java/com/hz/employmentsite/model/PcSiteUser.java
  11. 71 5
      src/main/java/com/hz/employmentsite/services/impl/UserServiceImpl.java
  12. 13 4
      src/main/java/com/hz/employmentsite/services/impl/baseSettings/SiteUserImpl.java
  13. 1 1
      src/main/java/com/hz/employmentsite/services/impl/jobUserManager/JobUserServiceImpl.java
  14. 56 0
      src/main/java/com/hz/employmentsite/services/impl/jobUserManager/OccupationalServiceImpl.java
  15. 9 7
      src/main/java/com/hz/employmentsite/services/impl/taskAndLog/DoWorkImpl.java
  16. 2 0
      src/main/java/com/hz/employmentsite/services/service/UserService.java
  17. 13 0
      src/main/java/com/hz/employmentsite/services/service/jobUserManager/OccupationalService.java
  18. 4 1
      src/main/java/com/hz/employmentsite/services/service/taskAndLog/DoWorkService.java
  19. 1 1
      src/main/java/com/hz/employmentsite/vo/baseSettings/SiteUserVo.java
  20. 1 1
      src/main/java/com/hz/employmentsite/vo/jobUserManager/JobUserVo.java
  21. 2 0
      src/main/java/com/hz/employmentsite/vo/user/UserEditVo.java
  22. 2 0
      src/main/java/com/hz/employmentsite/vo/user/UserInfoModel.java
  23. 6 6
      src/main/resources/mapping/PcJobuserMapper.xml
  24. 213 0
      src/main/resources/mapping/PcOccupationalMapper.xml
  25. 6 6
      src/main/resources/mapping/PcSiteUserMapper.xml
  26. 3 0
      src/main/resources/mapping/cquery/DoWorkCQuery.xml
  27. 7 4
      src/main/resources/mapping/cquery/JobUserCQuery.xml
  28. 4 3
      src/main/resources/mapping/cquery/PostCQuery.xml
  29. 3 3
      src/main/resources/mapping/cquery/SiteUserCQuery.xml
  30. 6 0
      src/main/resources/mapping/cquery/SysUserCQuery.xml
  31. 46 8
      vue/src/views/baseSettings/siteUser/edit.vue
  32. 8 0
      vue/src/views/companyService/post/detail.vue
  33. 1 1
      vue/src/views/companyService/post/edit.vue
  34. 45 7
      vue/src/views/jobUserManager/jobuser/edit.vue
  35. 134 29
      vue/src/views/system/users/addUser.vue
  36. 8 5
      vue/src/views/system/users/index.vue

+ 1 - 1
h5app/src/App.vue

@@ -376,7 +376,7 @@ ion-grid {
 
     ion-item {
       --inner-border-width: 0;
-      --inner-padding-end: 0px;
+      //--inner-padding-end: 0px;
       margin: 0 10px;
       border-bottom: 1px solid #f1f5f7;
       border-radius: 0px;

+ 6 - 2
h5app/src/views/pages/work/log/list.vue

@@ -118,17 +118,21 @@ import {deleteWorkLog, getWorkLogList} from '@/api/workLog';
 import BEmpty from "@/components/empty.vue";
 import dayjs from "dayjs";
 import {chevronForwardOutline,buildOutline,trashOutline} from 'ionicons/icons';
+import {useUserStore} from "@/store/modules/user";
 
 export default defineComponent({
   name: 'WorkLogList',
   components: {IonIcon, BEmpty},
   setup() {
+    const userStore = useUserStore();
+    const userInfo = ref(userStore.getUserInfo);
     const searchParamsState = reactive({
       pageIndex: 1,
       pageSize: 10,
       total:0,
       workStartDate: '',
-      workEndDate: ''
+      workEndDate: '',
+      userId: undefined
     })
     const loading = ref(true);
     const dataList = ref<any>([]);
@@ -192,9 +196,9 @@ export default defineComponent({
 
     const loadData = async function () {
       loading.value = true;
+      searchParamsState.userId = userInfo.value.userID;
       const result: any = await getWorkLogList(searchParamsState);
       dataList.value = dataList.value.concat(result.list);
-      console.log("dataList",dataList.value);
       searchParamsState.total = result.total;
       loading.value = false;
     }

+ 35 - 0
src/main/java/com/hz/employmentsite/controller/jobUserManager/OccupationalController.java

@@ -0,0 +1,35 @@
+package com.hz.employmentsite.controller.jobUserManager;
+
+import com.hz.employmentsite.filter.exception.BaseResponse;
+import com.hz.employmentsite.filter.exception.RespGenerstor;
+import com.hz.employmentsite.model.SysDictionaryItem;
+import com.hz.employmentsite.services.service.jobUserManager.OccupationalService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/api/occupational")
+public class OccupationalController {
+    @Autowired
+    private OccupationalService occupationalService;
+
+    @ResponseBody
+    @GetMapping("/getFirstOccupationalList")
+    public BaseResponse<List<SysDictionaryItem>> getList() {
+        return RespGenerstor.success(occupationalService.getList());
+    }
+
+    @ResponseBody
+    @GetMapping("/getListByParentOccupationalID")
+    public BaseResponse<List<SysDictionaryItem>> getListByParentOccupationalID(@RequestParam("parentOccupationalID") String parentOccupationalID) {
+        return RespGenerstor.success(occupationalService.getListByParentOccupationalID(parentOccupationalID));
+    }
+
+    @ResponseBody
+    @GetMapping("/getParentOccupationalID")
+    public BaseResponse<String> getParentOccupationalID(@RequestParam("OccupationalID") String OccupationalID) {
+        return RespGenerstor.success(occupationalService.getParentOccupationalID(OccupationalID));
+    }
+}

+ 13 - 6
src/main/java/com/hz/employmentsite/controller/taskAndLog/DoWorkController.java

@@ -1,7 +1,6 @@
 package com.hz.employmentsite.controller.taskAndLog;
 
 import com.github.pagehelper.PageInfo;
-import com.hz.employmentsite.filter.exception.BaseErrorEnum;
 import com.hz.employmentsite.filter.exception.BaseResponse;
 import com.hz.employmentsite.filter.exception.RespGenerstor;
 import com.hz.employmentsite.mapper.PcSiteUserMapper;
@@ -13,6 +12,7 @@ import com.hz.employmentsite.vo.taskAndLog.DoWorkVo;
 import com.hz.employmentsite.vo.taskAndLog.RecordsCountVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+
 import javax.servlet.http.HttpServletResponse;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -36,10 +36,17 @@ public class DoWorkController {
 
     @ResponseBody
     @GetMapping("/getList")
-    public BaseResponse getList(@RequestParam("pageIndex") int pageIndex, @RequestParam("pageSize") int pageSize, @RequestParam(required = false) List<String> doWorkIDList,
-                                @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 = doWorkService.getList(pageIndex, pageSize,doWorkIDList, userName, workStartDate,workEndDate,doTypeID,regionCode,streetCode);
+    public BaseResponse getList(@RequestParam("pageIndex") int pageIndex,
+                                @RequestParam("pageSize") int pageSize,
+                                @RequestParam(required = false) List<String> doWorkIDList,
+                                @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,
+                                @RequestParam(required = false) String userId) {
+        PageInfo<DoWorkVo> result = doWorkService.getList(pageIndex, pageSize, doWorkIDList, userName, workStartDate, workEndDate, doTypeID, regionCode, streetCode, userId);
         return RespGenerstor.success(result);
     }
 
@@ -72,7 +79,7 @@ public class DoWorkController {
                                @RequestParam(required = false) List<String> doWorkIDList,
                                @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) throws Exception{
-        PageInfo<DoWorkVo> result = doWorkService.getList(pageIndex, pageSize,doWorkIDList, userName, workStartDate,workEndDate,doTypeID,regionCode,streetCode);
+        PageInfo<DoWorkVo> result = doWorkService.getList(pageIndex, pageSize, doWorkIDList, userName, workStartDate, workEndDate, doTypeID, regionCode, streetCode, null);
         ExcelHelper.ExcelData data = excelHelper.new ExcelData();
         data.setTitles(Arrays.asList(new String[]{"序号","姓名"," ", "日志类型", "工作情况","所属县区","所属街道"}));
         int i = 0;

+ 30 - 0
src/main/java/com/hz/employmentsite/mapper/PcOccupationalMapper.java

@@ -0,0 +1,30 @@
+package com.hz.employmentsite.mapper;
+
+import com.hz.employmentsite.model.PcOccupational;
+import com.hz.employmentsite.model.PcOccupationalExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface PcOccupationalMapper {
+    long countByExample(PcOccupationalExample example);
+
+    int deleteByExample(PcOccupationalExample example);
+
+    int deleteByPrimaryKey(String occupationalID);
+
+    int insert(PcOccupational row);
+
+    int insertSelective(PcOccupational row);
+
+    List<PcOccupational> selectByExample(PcOccupationalExample example);
+
+    PcOccupational selectByPrimaryKey(String occupationalID);
+
+    int updateByExampleSelective(@Param("row") PcOccupational row, @Param("example") PcOccupationalExample example);
+
+    int updateByExample(@Param("row") PcOccupational row, @Param("example") PcOccupationalExample example);
+
+    int updateByPrimaryKeySelective(PcOccupational row);
+
+    int updateByPrimaryKey(PcOccupational row);
+}

+ 9 - 3
src/main/java/com/hz/employmentsite/mapper/cquery/DoWorkCQuery.java

@@ -2,10 +2,16 @@ 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("doWorkIDList")String doWorkIDList, @Param("userName")String userName,
-                           @Param("workStartDate")String workStartDate, @Param("workEndDate")String workEndDate,
-                           @Param("doTypeID")Integer doTypeID, @Param("regionCode")String regionCode, @Param("streetCode")String streetCode);
+    List<DoWorkVo> getList(@Param("doWorkIDList") String doWorkIDList,
+                           @Param("userName") String userName,
+                           @Param("workStartDate") String workStartDate,
+                           @Param("workEndDate") String workEndDate,
+                           @Param("doTypeID") Integer doTypeID,
+                           @Param("regionCode") String regionCode,
+                           @Param("streetCode") String streetCode,
+                           @Param("userId") String userId);
 }

+ 3 - 3
src/main/java/com/hz/employmentsite/model/PcJobuser.java

@@ -87,7 +87,7 @@ public class PcJobuser {
 
     private Integer isFullTime;
 
-    private Integer occupationalCategory;
+    private String occupationalCategory;
 
     private Integer occupationalLevel;
 
@@ -427,11 +427,11 @@ public class PcJobuser {
         this.isFullTime = isFullTime;
     }
 
-    public Integer getOccupationalCategory() {
+    public String getOccupationalCategory() {
         return occupationalCategory;
     }
 
-    public void setOccupationalCategory(Integer occupationalCategory) {
+    public void setOccupationalCategory(String occupationalCategory) {
         this.occupationalCategory = occupationalCategory;
     }
 

+ 53 - 0
src/main/java/com/hz/employmentsite/model/PcOccupational.java

@@ -0,0 +1,53 @@
+package com.hz.employmentsite.model;
+
+public class PcOccupational {
+    private String occupationalID;
+
+    private String parentOccupationalID;
+
+    private String occupationalName;
+
+    private Integer orderNo;
+
+    private Integer status;
+
+    public String getOccupationalID() {
+        return occupationalID;
+    }
+
+    public void setOccupationalID(String occupationalID) {
+        this.occupationalID = occupationalID == null ? null : occupationalID.trim();
+    }
+
+    public String getParentOccupationalID() {
+        return parentOccupationalID;
+    }
+
+    public void setParentOccupationalID(String parentOccupationalID) {
+        this.parentOccupationalID = parentOccupationalID == null ? null : parentOccupationalID.trim();
+    }
+
+    public String getOccupationalName() {
+        return occupationalName;
+    }
+
+    public void setOccupationalName(String occupationalName) {
+        this.occupationalName = occupationalName == null ? null : occupationalName.trim();
+    }
+
+    public Integer getOrderNo() {
+        return orderNo;
+    }
+
+    public void setOrderNo(Integer orderNo) {
+        this.orderNo = orderNo;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+}

+ 529 - 0
src/main/java/com/hz/employmentsite/model/PcOccupationalExample.java

@@ -0,0 +1,529 @@
+package com.hz.employmentsite.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class PcOccupationalExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    public PcOccupationalExample() {
+        oredCriteria = new ArrayList<>();
+    }
+
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andOccupationalIDIsNull() {
+            addCriterion("OccupationalID is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andOccupationalIDIsNotNull() {
+            addCriterion("OccupationalID is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andOccupationalIDEqualTo(String value) {
+            addCriterion("OccupationalID =", value, "occupationalID");
+            return (Criteria) this;
+        }
+
+        public Criteria andOccupationalIDNotEqualTo(String value) {
+            addCriterion("OccupationalID <>", value, "occupationalID");
+            return (Criteria) this;
+        }
+
+        public Criteria andOccupationalIDGreaterThan(String value) {
+            addCriterion("OccupationalID >", value, "occupationalID");
+            return (Criteria) this;
+        }
+
+        public Criteria andOccupationalIDGreaterThanOrEqualTo(String value) {
+            addCriterion("OccupationalID >=", value, "occupationalID");
+            return (Criteria) this;
+        }
+
+        public Criteria andOccupationalIDLessThan(String value) {
+            addCriterion("OccupationalID <", value, "occupationalID");
+            return (Criteria) this;
+        }
+
+        public Criteria andOccupationalIDLessThanOrEqualTo(String value) {
+            addCriterion("OccupationalID <=", value, "occupationalID");
+            return (Criteria) this;
+        }
+
+        public Criteria andOccupationalIDLike(String value) {
+            addCriterion("OccupationalID like", value, "occupationalID");
+            return (Criteria) this;
+        }
+
+        public Criteria andOccupationalIDNotLike(String value) {
+            addCriterion("OccupationalID not like", value, "occupationalID");
+            return (Criteria) this;
+        }
+
+        public Criteria andOccupationalIDIn(List<String> values) {
+            addCriterion("OccupationalID in", values, "occupationalID");
+            return (Criteria) this;
+        }
+
+        public Criteria andOccupationalIDNotIn(List<String> values) {
+            addCriterion("OccupationalID not in", values, "occupationalID");
+            return (Criteria) this;
+        }
+
+        public Criteria andOccupationalIDBetween(String value1, String value2) {
+            addCriterion("OccupationalID between", value1, value2, "occupationalID");
+            return (Criteria) this;
+        }
+
+        public Criteria andOccupationalIDNotBetween(String value1, String value2) {
+            addCriterion("OccupationalID not between", value1, value2, "occupationalID");
+            return (Criteria) this;
+        }
+
+        public Criteria andParentOccupationalIDIsNull() {
+            addCriterion("ParentOccupationalID is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andParentOccupationalIDIsNotNull() {
+            addCriterion("ParentOccupationalID is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andParentOccupationalIDEqualTo(String value) {
+            addCriterion("ParentOccupationalID =", value, "parentOccupationalID");
+            return (Criteria) this;
+        }
+
+        public Criteria andParentOccupationalIDNotEqualTo(String value) {
+            addCriterion("ParentOccupationalID <>", value, "parentOccupationalID");
+            return (Criteria) this;
+        }
+
+        public Criteria andParentOccupationalIDGreaterThan(String value) {
+            addCriterion("ParentOccupationalID >", value, "parentOccupationalID");
+            return (Criteria) this;
+        }
+
+        public Criteria andParentOccupationalIDGreaterThanOrEqualTo(String value) {
+            addCriterion("ParentOccupationalID >=", value, "parentOccupationalID");
+            return (Criteria) this;
+        }
+
+        public Criteria andParentOccupationalIDLessThan(String value) {
+            addCriterion("ParentOccupationalID <", value, "parentOccupationalID");
+            return (Criteria) this;
+        }
+
+        public Criteria andParentOccupationalIDLessThanOrEqualTo(String value) {
+            addCriterion("ParentOccupationalID <=", value, "parentOccupationalID");
+            return (Criteria) this;
+        }
+
+        public Criteria andParentOccupationalIDLike(String value) {
+            addCriterion("ParentOccupationalID like", value, "parentOccupationalID");
+            return (Criteria) this;
+        }
+
+        public Criteria andParentOccupationalIDNotLike(String value) {
+            addCriterion("ParentOccupationalID not like", value, "parentOccupationalID");
+            return (Criteria) this;
+        }
+
+        public Criteria andParentOccupationalIDIn(List<String> values) {
+            addCriterion("ParentOccupationalID in", values, "parentOccupationalID");
+            return (Criteria) this;
+        }
+
+        public Criteria andParentOccupationalIDNotIn(List<String> values) {
+            addCriterion("ParentOccupationalID not in", values, "parentOccupationalID");
+            return (Criteria) this;
+        }
+
+        public Criteria andParentOccupationalIDBetween(String value1, String value2) {
+            addCriterion("ParentOccupationalID between", value1, value2, "parentOccupationalID");
+            return (Criteria) this;
+        }
+
+        public Criteria andParentOccupationalIDNotBetween(String value1, String value2) {
+            addCriterion("ParentOccupationalID not between", value1, value2, "parentOccupationalID");
+            return (Criteria) this;
+        }
+
+        public Criteria andOccupationalNameIsNull() {
+            addCriterion("OccupationalName is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andOccupationalNameIsNotNull() {
+            addCriterion("OccupationalName is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andOccupationalNameEqualTo(String value) {
+            addCriterion("OccupationalName =", value, "occupationalName");
+            return (Criteria) this;
+        }
+
+        public Criteria andOccupationalNameNotEqualTo(String value) {
+            addCriterion("OccupationalName <>", value, "occupationalName");
+            return (Criteria) this;
+        }
+
+        public Criteria andOccupationalNameGreaterThan(String value) {
+            addCriterion("OccupationalName >", value, "occupationalName");
+            return (Criteria) this;
+        }
+
+        public Criteria andOccupationalNameGreaterThanOrEqualTo(String value) {
+            addCriterion("OccupationalName >=", value, "occupationalName");
+            return (Criteria) this;
+        }
+
+        public Criteria andOccupationalNameLessThan(String value) {
+            addCriterion("OccupationalName <", value, "occupationalName");
+            return (Criteria) this;
+        }
+
+        public Criteria andOccupationalNameLessThanOrEqualTo(String value) {
+            addCriterion("OccupationalName <=", value, "occupationalName");
+            return (Criteria) this;
+        }
+
+        public Criteria andOccupationalNameLike(String value) {
+            addCriterion("OccupationalName like", value, "occupationalName");
+            return (Criteria) this;
+        }
+
+        public Criteria andOccupationalNameNotLike(String value) {
+            addCriterion("OccupationalName not like", value, "occupationalName");
+            return (Criteria) this;
+        }
+
+        public Criteria andOccupationalNameIn(List<String> values) {
+            addCriterion("OccupationalName in", values, "occupationalName");
+            return (Criteria) this;
+        }
+
+        public Criteria andOccupationalNameNotIn(List<String> values) {
+            addCriterion("OccupationalName not in", values, "occupationalName");
+            return (Criteria) this;
+        }
+
+        public Criteria andOccupationalNameBetween(String value1, String value2) {
+            addCriterion("OccupationalName between", value1, value2, "occupationalName");
+            return (Criteria) this;
+        }
+
+        public Criteria andOccupationalNameNotBetween(String value1, String value2) {
+            addCriterion("OccupationalName not between", value1, value2, "occupationalName");
+            return (Criteria) this;
+        }
+
+        public Criteria andOrderNoIsNull() {
+            addCriterion("OrderNo is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andOrderNoIsNotNull() {
+            addCriterion("OrderNo is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andOrderNoEqualTo(Integer value) {
+            addCriterion("OrderNo =", value, "orderNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andOrderNoNotEqualTo(Integer value) {
+            addCriterion("OrderNo <>", value, "orderNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andOrderNoGreaterThan(Integer value) {
+            addCriterion("OrderNo >", value, "orderNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andOrderNoGreaterThanOrEqualTo(Integer value) {
+            addCriterion("OrderNo >=", value, "orderNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andOrderNoLessThan(Integer value) {
+            addCriterion("OrderNo <", value, "orderNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andOrderNoLessThanOrEqualTo(Integer value) {
+            addCriterion("OrderNo <=", value, "orderNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andOrderNoIn(List<Integer> values) {
+            addCriterion("OrderNo in", values, "orderNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andOrderNoNotIn(List<Integer> values) {
+            addCriterion("OrderNo not in", values, "orderNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andOrderNoBetween(Integer value1, Integer value2) {
+            addCriterion("OrderNo between", value1, value2, "orderNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andOrderNoNotBetween(Integer value1, Integer value2) {
+            addCriterion("OrderNo not between", value1, value2, "orderNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusIsNull() {
+            addCriterion("Status is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusIsNotNull() {
+            addCriterion("Status is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusEqualTo(Integer value) {
+            addCriterion("Status =", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusNotEqualTo(Integer value) {
+            addCriterion("Status <>", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusGreaterThan(Integer value) {
+            addCriterion("Status >", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {
+            addCriterion("Status >=", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusLessThan(Integer value) {
+            addCriterion("Status <", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusLessThanOrEqualTo(Integer value) {
+            addCriterion("Status <=", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusIn(List<Integer> values) {
+            addCriterion("Status in", values, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusNotIn(List<Integer> values) {
+            addCriterion("Status not in", values, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusBetween(Integer value1, Integer value2) {
+            addCriterion("Status between", value1, value2, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusNotBetween(Integer value1, Integer value2) {
+            addCriterion("Status not between", value1, value2, "status");
+            return (Criteria) this;
+        }
+    }
+
+    public static class Criteria extends GeneratedCriteria {
+        protected Criteria() {
+            super();
+        }
+    }
+
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}

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

@@ -51,7 +51,7 @@ public class PcSiteUser {
 
     private Integer IsFullTime;
 
-    private Integer OccupationalCategory;
+    private String OccupationalCategory;
 
     private Integer OccupationalLevel;
 
@@ -223,11 +223,11 @@ public class PcSiteUser {
         IsFullTime = isFullTime;
     }
 
-    public Integer getOccupationalCategory() {
+    public String getOccupationalCategory() {
         return OccupationalCategory;
     }
 
-    public void setOccupationalCategory(Integer occupationalCategory) {
+    public void setOccupationalCategory(String occupationalCategory) {
         OccupationalCategory = occupationalCategory;
     }
 

+ 71 - 5
src/main/java/com/hz/employmentsite/services/impl/UserServiceImpl.java

@@ -5,6 +5,7 @@ import com.hz.employmentsite.mapper.*;
 import com.hz.employmentsite.mapper.cquery.SysUserCQuery;
 import com.hz.employmentsite.model.*;
 import com.hz.employmentsite.services.service.UserService;
+import com.hz.employmentsite.services.service.system.RoleService;
 import com.hz.employmentsite.util.DateUtils;
 import com.hz.employmentsite.util.StringUtils;
 import com.hz.employmentsite.vo.user.DataRange;
@@ -37,8 +38,16 @@ public class UserServiceImpl implements UserService {
     @Autowired
     private PcSiteUserMapper pcSiteUserMapper;
 
+    @Autowired
+    private SysUserSysRoleMapper sysUserSysRoleMapper;
+
+    @Autowired
+    private RoleService roleService;
+
     private String defaultPassword = "52653B706ADC444F6660FAB66D6DC210";//Hjy@2024
 
+    private String siteRoleId = "10a12f77-0958-4220-b9ce-07b9215046f2"; //驿站工作者
+
 
     @Override
     public List<SysRole> getUserRole(String userID) {
@@ -136,13 +145,14 @@ public class UserServiceImpl implements UserService {
     @Override
     public Integer save(UserEditVo data, String userId) throws Exception {
         AtomicInteger result = new AtomicInteger();
-        if (data.getUserTypeID().equals(3)) {//驿站工作者
+        if (data.getUserTypeID().equals(3) && data.isAdd) {//驿站工作者
             if (data.getSiteUserIdList() != null && data.getSiteUserIdList().size() > 0) {
                 PcSiteUserExample exp = new PcSiteUserExample();
                 PcSiteUserExample.Criteria cri = exp.or();
                 cri.andSiteUserIDIn(data.getSiteUserIdList());
 
                 List<PcSiteUser> pcSiteUserList = pcSiteUserMapper.selectByExample(exp);
+                List<String> userIdList = new ArrayList<>();
 
                 pcSiteUserList.forEach(siteUser -> {
                     SysUserExample uExp = new SysUserExample();
@@ -160,12 +170,16 @@ public class UserServiceImpl implements UserService {
                         dbUser.setCreateBy(userId);
                         dbUser.setCreateTime(new Date());
                         result.set(result.get() + sysUserMapper.insert(dbUser));
+
+                        userIdList.add(dbUser.getUserID());
                     }
 
                     siteUser.setUserID(dbUser.getUserID());
                     pcSiteUserMapper.updateByPrimaryKey(siteUser);
                 });
 
+                roleService.saveRoleUser(siteRoleId, userIdList);
+
             }
         } else {
             SysUserExample uExp = new SysUserExample();
@@ -199,13 +213,13 @@ public class UserServiceImpl implements UserService {
             } else {
                 //修改
                 dbData.setName(data.getName());
-                dbData.setLoginID(data.getLoginID());
-                if (data.getPassword() == null) {
+                /*dbData.setLoginID(data.getLoginID());*/
+                /*if (data.getPassword() == null) {
                     dbData.setPassword(defaultPassword);
                 } else {
                     dbData.setPassword(DigestUtils.md5DigestAsHex(data.getPassword().getBytes()).toUpperCase());
-                }
-                dbData.setUserTypeID(data.getUserTypeID());
+                }*/
+                /*dbData.setUserTypeID(data.getUserTypeID());*/
                 dbData.setRecordStatus(data.getRecordStatus());
                 dbData.setUpdateBy(userId);
                 dbData.setUpdateTime(new Date());
@@ -320,4 +334,56 @@ public class UserServiceImpl implements UserService {
         return sysUserMapper.selectByExample(exp).stream().findFirst().orElse(null);
     }
 
+    /*
+     * 添加驿站工作者
+     * @params loginId,name
+     */
+    @Override
+    public SysUser addSiteUser(String userId, String loginId, String name, String createUserId) {
+        if (stringUtils.IsNullOrEmpty(loginId))
+            return null;
+
+        SysUser dbUserByUserId = null;
+        SysUser dbUserByLoginId = null;
+        if (!stringUtils.IsNullOrEmpty(userId)) {
+            dbUserByUserId = sysUserMapper.selectByPrimaryKey(userId);
+        }
+        if (!stringUtils.IsNullOrEmpty(loginId)) {
+            SysUserExample uExp = new SysUserExample();
+            SysUserExample.Criteria uCri = uExp.or();
+            uCri.andLoginIDEqualTo(loginId);
+            dbUserByLoginId = sysUserMapper.selectByExample(uExp).stream().findFirst().orElse(null);
+        }
+
+        if (dbUserByUserId != null && dbUserByLoginId != null && !dbUserByUserId.getUserID().equals(dbUserByLoginId.getUserID())) {
+            return null;
+        }
+
+        SysUser dbData = dbUserByUserId != null ? dbUserByUserId : dbUserByLoginId;
+
+        if (dbData == null) {
+            dbData = new SysUser();
+            dbData.setUserID(UUID.randomUUID().toString());
+            dbData.setName(name);
+            dbData.setLoginID(loginId);
+            dbData.setPassword(defaultPassword);
+            dbData.setUserTypeID(3);
+            dbData.setRecordStatus(1);
+            dbData.setCreateBy(createUserId);
+            dbData.setCreateTime(new Date());
+            sysUserMapper.insert(dbData);
+        } else {
+            dbData.setName(name);
+            dbData.setLoginID(loginId);
+            dbData.setUpdateBy(createUserId);
+            dbData.setUpdateTime(new Date());
+
+            sysUserMapper.updateByPrimaryKey(dbData);
+        }
+
+        roleService.saveRoleUser(siteRoleId, Arrays.asList(dbData.getUserID()));
+
+        return dbData;
+    }
+
 }

+ 13 - 4
src/main/java/com/hz/employmentsite/services/impl/baseSettings/SiteUserImpl.java

@@ -6,6 +6,7 @@ import com.hz.employmentsite.filter.exception.BaseException;
 import com.hz.employmentsite.mapper.*;
 import com.hz.employmentsite.mapper.cquery.UserInfoCQuery;
 import com.hz.employmentsite.model.*;
+import com.hz.employmentsite.services.service.UserService;
 import com.hz.employmentsite.services.service.baseSettings.SiteUserService;
 import com.hz.employmentsite.services.service.system.DictionaryService;
 import com.hz.employmentsite.util.StringUtils;
@@ -17,7 +18,6 @@ import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
 import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.springframework.util.DigestUtils;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -53,6 +53,9 @@ public class SiteUserImpl implements SiteUserService {
     @Autowired
     private DictionaryService dictionaryService;
 
+    @Autowired
+    private UserService userService;
+
     private final String MOBILE_REGEX = "0?(13|14|15|18|17)[0-9]{9}";
 
     private final String ID_CARD_REGEX = "\\d{17}[\\d|x]|\\d{15}";
@@ -108,7 +111,7 @@ public class SiteUserImpl implements SiteUserService {
         List<String> byUserNoSiteId = pcSiteUserMapper.selectByUserNo(data.userNo);
         List<String> byIdCardSiteId = pcSiteUserMapper.selectByIdCard(data.idCard);
         List<String> bySocialSecurityCard = new ArrayList<>();
-        if (!data.getSocialSecurityCard().isEmpty() && !data.getSocialSecurityCard().isBlank()) {
+        if (data.getSocialSecurityCard() != null && !data.getSocialSecurityCard().isBlank()) {
             bySocialSecurityCard = pcSiteUserMapper.selectBySocialSecurityCard(data.socialSecurityCard);
         }
 
@@ -131,7 +134,7 @@ public class SiteUserImpl implements SiteUserService {
                 throw new BaseException("500", "该身份证已绑定其他驿站人员");
             }
             // 社保卡非必填
-            if (!data.getSocialSecurityCard().isEmpty() && !data.getSocialSecurityCard().isBlank()) {
+            if (data.getSocialSecurityCard() != null && !data.getSocialSecurityCard().isBlank()) {
                 if (!bySocialSecurityCard.isEmpty()) {
                     throw new BaseException("500", "该社保卡已绑定其他驿站人员");
                 }
@@ -190,7 +193,7 @@ public class SiteUserImpl implements SiteUserService {
                 throw new BaseException("500", "该身份证已绑定其他驿站人员");
             }
             // 社保卡非必填
-            if (!data.getSocialSecurityCard().isEmpty() && !data.getSocialSecurityCard().isBlank()) {
+            if (data.getSocialSecurityCard() != null && !data.getSocialSecurityCard().isBlank()) {
                 if (!bySocialSecurityCard.isEmpty() && !bySocialSecurityCard.contains(data.siteUserID)) {
                     throw new BaseException("500", "该社保卡已绑定其他驿站人员");
                 }
@@ -236,6 +239,12 @@ public class SiteUserImpl implements SiteUserService {
 
         }
 
+        SysUser sysUser = userService.addSiteUser(dbData.getUserID(), dbData.getUserNo(), dbData.getSiteUserName(), userId);
+        if (sysUser != null) {
+            dbData.setUserID(sysUser.getUserID());
+            pcSiteUserMapper.updateByPrimaryKey(dbData);
+        }
+
         return result;
     }
 

+ 1 - 1
src/main/java/com/hz/employmentsite/services/impl/jobUserManager/JobUserServiceImpl.java

@@ -184,7 +184,7 @@ public class JobUserServiceImpl implements JobUserService {
         }
 
         // 验证社保卡是否绑定
-        if (!data.getSocialSecurityCard().isEmpty()) {
+        if (data.getSocialSecurityCard() != null && !data.getSocialSecurityCard().isBlank()) {
             cir = emp.or();
             if (dbData != null) {
                 cir.andJobuserIDNotEqualTo(data.getJobUserID());

+ 56 - 0
src/main/java/com/hz/employmentsite/services/impl/jobUserManager/OccupationalServiceImpl.java

@@ -0,0 +1,56 @@
+package com.hz.employmentsite.services.impl.jobUserManager;
+
+import com.hz.employmentsite.mapper.PcOccupationalMapper;
+import com.hz.employmentsite.model.PcOccupational;
+import com.hz.employmentsite.model.PcOccupationalExample;
+import com.hz.employmentsite.model.SysDictionaryItem;
+import com.hz.employmentsite.services.service.jobUserManager.OccupationalService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Service("OccupationalService")
+public class OccupationalServiceImpl implements OccupationalService {
+    @Autowired
+    private PcOccupationalMapper pcOccupationalMapper;
+
+    @Override
+    public List<SysDictionaryItem> getList() {
+        List<SysDictionaryItem> list = new ArrayList<>();
+        PcOccupationalExample occupationalExample = new PcOccupationalExample();
+        occupationalExample.or().andParentOccupationalIDEqualTo("0");
+        var dataList = pcOccupationalMapper.selectByExample(occupationalExample);
+        for (PcOccupational occupational : dataList) {
+            SysDictionaryItem item = new SysDictionaryItem();
+            item.setCode(occupational.getOccupationalID());
+            item.setName(occupational.getOccupationalName());
+            list.add(item);
+        }
+        return list;
+    }
+
+    @Override
+    public List<SysDictionaryItem> getListByParentOccupationalID(String occupationalID) {
+        List<SysDictionaryItem> list = new ArrayList<>();
+        PcOccupationalExample occupationalExample = new PcOccupationalExample();
+        occupationalExample.or().andParentOccupationalIDEqualTo(occupationalID);
+        var dataList = pcOccupationalMapper.selectByExample(occupationalExample);
+        for (PcOccupational occupational : dataList) {
+            SysDictionaryItem item = new SysDictionaryItem();
+            item.setCode(occupational.getOccupationalID());
+            item.setName(occupational.getOccupationalName());
+            list.add(item);
+        }
+        return list;
+    }
+
+    @Override
+    public String getParentOccupationalID(String occupationalID) {
+        PcOccupationalExample occupationalExample = new PcOccupationalExample();
+        occupationalExample.or().andOccupationalIDEqualTo(occupationalID);
+        var curProfession = pcOccupationalMapper.selectByExample(occupationalExample).get(0);
+        return curProfession.getParentOccupationalID();
+    }
+}

+ 9 - 7
src/main/java/com/hz/employmentsite/services/impl/taskAndLog/DoWorkImpl.java

@@ -13,7 +13,9 @@ import com.hz.employmentsite.vo.taskAndLog.RecordsCountVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 
 @Service("DoWorkService")
 public class DoWorkImpl implements DoWorkService {
@@ -28,11 +30,11 @@ public class DoWorkImpl implements DoWorkService {
     private PcDoworkMapper pcDoworkMapper;
 
     @Override
-    public PageInfo<DoWorkVo> getList(int pageIndex, int pageSize, List<String> doWorkIDList, String userName, String workStartDate, String workEndDate, Integer doTypeID, String regionCode, String streetCode) {
-            PageHelper.startPage(pageIndex, pageSize);
-            List<DoWorkVo> list = doWorkCQuery.getList(stringUtils.ListToInSql(doWorkIDList), userName, workStartDate, workEndDate, doTypeID, regionCode, streetCode);
-            PageInfo<DoWorkVo> result = new PageInfo(list);
-            return result;
+    public PageInfo<DoWorkVo> getList(int pageIndex, int pageSize, List<String> doWorkIDList, String userName, String workStartDate, String workEndDate, Integer doTypeID, String regionCode, String streetCode, String userId) {
+        PageHelper.startPage(pageIndex, pageSize);
+        List<DoWorkVo> list = doWorkCQuery.getList(stringUtils.ListToInSql(doWorkIDList), userName, workStartDate, workEndDate, doTypeID, regionCode, streetCode, userId);
+        PageInfo<DoWorkVo> result = new PageInfo(list);
+        return result;
     }
 
     @Override
@@ -42,7 +44,7 @@ public class DoWorkImpl implements DoWorkService {
         }
         List<String> ids = new ArrayList<>();
         ids.add(doWorkID);
-        DoWorkVo model = doWorkCQuery.getList(stringUtils.ListToInSql(ids),null,null,null,null,null,null).stream().findFirst().orElse(null);
+        DoWorkVo model = doWorkCQuery.getList(stringUtils.ListToInSql(ids), null, null, null, null, null, null, null).stream().findFirst().orElse(null);
         return model;
     }
 

+ 2 - 0
src/main/java/com/hz/employmentsite/services/service/UserService.java

@@ -32,4 +32,6 @@ public interface UserService {
 
     SysUser getUserByLoginID(String loginID);
 
+    SysUser addSiteUser(String userId,String loginId, String name, String createUserId);
+
 }

+ 13 - 0
src/main/java/com/hz/employmentsite/services/service/jobUserManager/OccupationalService.java

@@ -0,0 +1,13 @@
+package com.hz.employmentsite.services.service.jobUserManager;
+
+import com.hz.employmentsite.model.SysDictionaryItem;
+
+import java.util.List;
+
+public interface OccupationalService {
+    List<SysDictionaryItem> getList();
+
+    List<SysDictionaryItem> getListByParentOccupationalID(String occupationalID);
+
+    String getParentOccupationalID(String occupationalID);
+}

+ 4 - 1
src/main/java/com/hz/employmentsite/services/service/taskAndLog/DoWorkService.java

@@ -7,7 +7,10 @@ import com.hz.employmentsite.vo.taskAndLog.RecordsCountVo;
 import java.util.List;
 
 public interface DoWorkService {
-    PageInfo<DoWorkVo> getList(int pageIndex, int pageSize, List<String> doWorkIDList, String userName, String workStartDate, String workEndDate, Integer doTypeID, String regionCode, String streetCode);
+    PageInfo<DoWorkVo> getList(int pageIndex, int pageSize, List<String> doWorkIDList,
+                               String userName, String workStartDate, String workEndDate,
+                               Integer doTypeID, String regionCode, String streetCode,
+                               String userId);
 
     DoWorkVo get(String doWorkID);
 

+ 1 - 1
src/main/java/com/hz/employmentsite/vo/baseSettings/SiteUserVo.java

@@ -41,7 +41,7 @@ public class SiteUserVo {
     public String cultureRankName;
     public Integer isFullTime;
     public String isFullTimeName;
-    public Integer occupationalCategory;
+    public String occupationalCategory;
     public String occupationalCategoryName;
     public Integer occupationalLevel;
     public String occupationalLevelName;

+ 1 - 1
src/main/java/com/hz/employmentsite/vo/jobUserManager/JobUserVo.java

@@ -115,7 +115,7 @@ public class JobUserVo {
 
     private Integer isFullTime;
     private String isFullTimeName;
-    private Integer occupationalCategory;
+    private String occupationalCategory;
     private String occupationalCategoryName;
     private Integer occupationalLevel;
     private String occupationalLevelName;

+ 2 - 0
src/main/java/com/hz/employmentsite/vo/user/UserEditVo.java

@@ -10,4 +10,6 @@ public class UserEditVo extends SysUser {
     public List<String> datarangeIdList;
 
     public List<String> siteUserIdList;
+
+    public boolean isAdd;
 }

+ 2 - 0
src/main/java/com/hz/employmentsite/vo/user/UserInfoModel.java

@@ -29,4 +29,6 @@ public class UserInfoModel {
     public String IDCard;
     public String siteName;
 
+    public String datarangeIds;
+
 }

+ 6 - 6
src/main/resources/mapping/PcJobuserMapper.xml

@@ -44,7 +44,7 @@
     <result column="Profession" jdbcType="VARCHAR" property="profession"/>
     <result column="NativePlace" jdbcType="VARCHAR" property="nativePlace"/>
     <result column="IsFullTime" jdbcType="INTEGER" property="isFullTime"/>
-    <result column="OccupationalCategory" jdbcType="INTEGER" property="occupationalCategory"/>
+    <result column="OccupationalCategory" jdbcType="VARCHAR" property="occupationalCategory"/>
     <result column="OccupationalLevel" jdbcType="INTEGER" property="occupationalLevel"/>
   </resultMap>
   <sql id="Example_Where_Clause">
@@ -441,7 +441,7 @@
         #{isFullTime,jdbcType=INTEGER},
       </if>
       <if test="occupationalCategory != null">
-        #{occupationalCategory,jdbcType=INTEGER},
+        #{occupationalCategory,jdbcType=VARCHAR},
       </if>
       <if test="occupationalLevel != null">
         #{occupationalLevel,jdbcType=INTEGER},
@@ -584,7 +584,7 @@
         IsFullTime = #{row.isFullTime,jdbcType=INTEGER},
       </if>
       <if test="row.occupationalCategory != null">
-        OccupationalCategory = #{row.occupationalCategory,jdbcType=INTEGER},
+        OccupationalCategory = #{row.occupationalCategory,jdbcType=VARCHAR},
       </if>
       <if test="row.occupationalLevel != null">
         OccupationalLevel = #{row.occupationalLevel,jdbcType=INTEGER},
@@ -638,7 +638,7 @@
     Profession = #{row.profession,jdbcType=VARCHAR},
     NativePlace = #{row.nativePlace,jdbcType=VARCHAR},
     IsFullTime = #{row.isFullTime,jdbcType=INTEGER},
-    OccupationalCategory = #{row.occupationalCategory,jdbcType=INTEGER},
+    OccupationalCategory = #{row.occupationalCategory,jdbcType=VARCHAR},
     OccupationalLevel = #{row.occupationalLevel,jdbcType=INTEGER}
     <if test="example != null">
       <include refid="Update_By_Example_Where_Clause" />
@@ -771,7 +771,7 @@
         IsFullTime = #{isFullTime,jdbcType=INTEGER},
       </if>
       <if test="occupationalCategory != null">
-        OccupationalCategory = #{occupationalCategory,jdbcType=INTEGER},
+        OccupationalCategory = #{occupationalCategory,jdbcType=VARCHAR},
       </if>
       <if test="occupationalLevel != null">
         OccupationalLevel = #{occupationalLevel,jdbcType=INTEGER},
@@ -822,7 +822,7 @@
         Profession           = #{profession,jdbcType=VARCHAR},
         NativePlace          = #{nativePlace,jdbcType=VARCHAR},
         IsFullTime           = #{isFullTime,jdbcType=INTEGER},
-        OccupationalCategory = #{occupationalCategory,jdbcType=INTEGER},
+        OccupationalCategory = #{occupationalCategory,jdbcType=VARCHAR},
         OccupationalLevel    = #{occupationalLevel,jdbcType=INTEGER}
     where JobuserID = #{jobuserID,jdbcType=VARCHAR}
   </update>

+ 213 - 0
src/main/resources/mapping/PcOccupationalMapper.xml

@@ -0,0 +1,213 @@
+<?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.PcOccupationalMapper">
+  <resultMap id="BaseResultMap" type="com.hz.employmentsite.model.PcOccupational">
+    <id column="OccupationalID" jdbcType="VARCHAR" property="occupationalID" />
+    <result column="ParentOccupationalID" jdbcType="VARCHAR" property="parentOccupationalID" />
+    <result column="OccupationalName" jdbcType="VARCHAR" property="occupationalName" />
+    <result column="OrderNo" jdbcType="INTEGER" property="orderNo" />
+    <result column="Status" jdbcType="INTEGER" property="status" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    OccupationalID, ParentOccupationalID, OccupationalName, OrderNo, Status
+  </sql>
+  <select id="selectByExample" parameterType="com.hz.employmentsite.model.PcOccupationalExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from pc_occupational
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
+    select 
+    <include refid="Base_Column_List" />
+    from pc_occupational
+    where OccupationalID = #{occupationalID,jdbcType=VARCHAR}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
+    delete from pc_occupational
+    where OccupationalID = #{occupationalID,jdbcType=VARCHAR}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.hz.employmentsite.model.PcOccupationalExample">
+    delete from pc_occupational
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.hz.employmentsite.model.PcOccupational">
+    insert into pc_occupational (OccupationalID, ParentOccupationalID, 
+      OccupationalName, OrderNo, Status
+      )
+    values (#{occupationalID,jdbcType=VARCHAR}, #{parentOccupationalID,jdbcType=VARCHAR}, 
+      #{occupationalName,jdbcType=VARCHAR}, #{orderNo,jdbcType=INTEGER}, #{status,jdbcType=INTEGER}
+      )
+  </insert>
+  <insert id="insertSelective" parameterType="com.hz.employmentsite.model.PcOccupational">
+    insert into pc_occupational
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="occupationalID != null">
+        OccupationalID,
+      </if>
+      <if test="parentOccupationalID != null">
+        ParentOccupationalID,
+      </if>
+      <if test="occupationalName != null">
+        OccupationalName,
+      </if>
+      <if test="orderNo != null">
+        OrderNo,
+      </if>
+      <if test="status != null">
+        Status,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="occupationalID != null">
+        #{occupationalID,jdbcType=VARCHAR},
+      </if>
+      <if test="parentOccupationalID != null">
+        #{parentOccupationalID,jdbcType=VARCHAR},
+      </if>
+      <if test="occupationalName != null">
+        #{occupationalName,jdbcType=VARCHAR},
+      </if>
+      <if test="orderNo != null">
+        #{orderNo,jdbcType=INTEGER},
+      </if>
+      <if test="status != null">
+        #{status,jdbcType=INTEGER},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.hz.employmentsite.model.PcOccupationalExample" resultType="java.lang.Long">
+    select count(*) from pc_occupational
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    update pc_occupational
+    <set>
+      <if test="row.occupationalID != null">
+        OccupationalID = #{row.occupationalID,jdbcType=VARCHAR},
+      </if>
+      <if test="row.parentOccupationalID != null">
+        ParentOccupationalID = #{row.parentOccupationalID,jdbcType=VARCHAR},
+      </if>
+      <if test="row.occupationalName != null">
+        OccupationalName = #{row.occupationalName,jdbcType=VARCHAR},
+      </if>
+      <if test="row.orderNo != null">
+        OrderNo = #{row.orderNo,jdbcType=INTEGER},
+      </if>
+      <if test="row.status != null">
+        Status = #{row.status,jdbcType=INTEGER},
+      </if>
+    </set>
+    <if test="example != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update pc_occupational
+    set OccupationalID = #{row.occupationalID,jdbcType=VARCHAR},
+      ParentOccupationalID = #{row.parentOccupationalID,jdbcType=VARCHAR},
+      OccupationalName = #{row.occupationalName,jdbcType=VARCHAR},
+      OrderNo = #{row.orderNo,jdbcType=INTEGER},
+      Status = #{row.status,jdbcType=INTEGER}
+    <if test="example != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.hz.employmentsite.model.PcOccupational">
+    update pc_occupational
+    <set>
+      <if test="parentOccupationalID != null">
+        ParentOccupationalID = #{parentOccupationalID,jdbcType=VARCHAR},
+      </if>
+      <if test="occupationalName != null">
+        OccupationalName = #{occupationalName,jdbcType=VARCHAR},
+      </if>
+      <if test="orderNo != null">
+        OrderNo = #{orderNo,jdbcType=INTEGER},
+      </if>
+      <if test="status != null">
+        Status = #{status,jdbcType=INTEGER},
+      </if>
+    </set>
+    where OccupationalID = #{occupationalID,jdbcType=VARCHAR}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.hz.employmentsite.model.PcOccupational">
+    update pc_occupational
+    set ParentOccupationalID = #{parentOccupationalID,jdbcType=VARCHAR},
+      OccupationalName = #{occupationalName,jdbcType=VARCHAR},
+      OrderNo = #{orderNo,jdbcType=INTEGER},
+      Status = #{status,jdbcType=INTEGER}
+    where OccupationalID = #{occupationalID,jdbcType=VARCHAR}
+  </update>
+</mapper>

+ 6 - 6
src/main/resources/mapping/PcSiteUserMapper.xml

@@ -125,7 +125,7 @@
             #{IDCard,jdbcType=VARCHAR}, #{SocialSecurityCard,jdbcType=VARCHAR}, #{Age,jdbcType=INTEGER},
             #{Nation,jdbcType=INTEGER}, #{PoliticsStatusID,jdbcType=INTEGER}, #{CultureRank,jdbcType=INTEGER},
             #{FinishSchool,jdbcType=VARCHAR}, #{Profession,jdbcType=VARCHAR}, #{IsFullTime,jdbcType=INTEGER},
-            #{OccupationalCategory,jdbcType=INTEGER}, #{OccupationalLevel,jdbcType=INTEGER},
+            #{OccupationalCategory,jdbcType=VARCHAR}, #{OccupationalLevel,jdbcType=INTEGER},
             #{NativePlace,jdbcType=VARCHAR}, #{Email,jdbcType=VARCHAR}, #{Address,jdbcType=VARCHAR})
   </insert>
   <insert id="insertSelective" parameterType="com.hz.employmentsite.model.PcSiteUser">
@@ -275,7 +275,7 @@
         #{IsFullTime,jdbcType=INTEGER},
       </if>
       <if test="OccupationalCategory != null">
-        #{OccupationalCategory,jdbcType=INTEGER},
+        #{OccupationalCategory,jdbcType=VARCHAR},
       </if>
       <if test="OccupationalLevel != null">
         #{OccupationalLevel,jdbcType=INTEGER},
@@ -364,7 +364,7 @@
         IsFullTime = #{row.IsFullTime,jdbcType=INTEGER},
       </if>
       <if test="row.OccupationalCategory != null">
-        OccupationalCategory = #{row.OccupationalCategory,jdbcType=INTEGER},
+        OccupationalCategory = #{row.OccupationalCategory,jdbcType=VARCHAR},
       </if>
       <if test="row.OccupationalLevel != null">
         OccupationalLevel = #{row.OccupationalLevel,jdbcType=INTEGER},
@@ -406,7 +406,7 @@
     FinishSchool = #{row.FinishSchool,jdbcType=VARCHAR},
     Profession = #{row.Profession,jdbcType=VARCHAR},
     IsFullTime = #{row.IsFullTime,jdbcType=VARCHAR},
-    OccupationalCategory = #{row.OccupationalCategory,jdbcType=INTEGER},
+    OccupationalCategory = #{row.OccupationalCategory,jdbcType=VARCHAR},
     OccupationalLevel = #{row.OccupationalLevel,jdbcType=INTEGER},
     NativePlace = #{row.NativePlace,jdbcType=VARCHAR},
     Email = #{row.Email,jdbcType=VARCHAR},
@@ -479,7 +479,7 @@
         IsFullTime = #{row.IsFullTime,jdbcType=INTEGER},
       </if>
       <if test="row.OccupationalCategory != null">
-        OccupationalCategory = #{row.OccupationalCategory,jdbcType=INTEGER},
+        OccupationalCategory = #{row.OccupationalCategory,jdbcType=VARCHAR},
       </if>
       <if test="row.OccupationalLevel != null">
         OccupationalLevel = #{row.OccupationalLevel,jdbcType=INTEGER},
@@ -518,7 +518,7 @@
         FinishSchool         = #{FinishSchool,jdbcType=VARCHAR},
         Profession           = #{Profession,jdbcType=VARCHAR},
         IsFullTime           = #{IsFullTime,jdbcType=VARCHAR},
-        OccupationalCategory = #{OccupationalCategory,jdbcType=INTEGER},
+        OccupationalCategory = #{OccupationalCategory,jdbcType=VARCHAR},
         OccupationalLevel    = #{OccupationalLevel,jdbcType=INTEGER},
         NativePlace          = #{NativePlace,jdbcType=VARCHAR},
         Email                = #{Email,jdbcType=VARCHAR},

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

@@ -41,5 +41,8 @@
         <if test="streetCode!='' and streetCode!=null">
             and street.code = #{streetCode}
         </if>
+        <if test="userId!='' and userId!=null">
+            and workLog.createUserID = #{userId}
+        </if>
     </select>
 </mapper>

+ 7 - 4
src/main/resources/mapping/cquery/JobUserCQuery.xml

@@ -4,8 +4,10 @@
     <select id="selectJobUserList" resultType="com.hz.employmentsite.vo.jobUserManager.JobUserVo">
         select jobuser.* ,gender.name as GenderName,culture.name as CultureName,site.SiteName,jobstatus.name as
         JobStatusName,keytype.name as KeyTypeName,sys_politics.name as politicsStatusName,sys_health.name as healthName,
-        sys_family.name as familyNatureName,sys_full_time.Name as isFullTimeName,sys_occ_category.Name as occupationalCategoryName,
-        sys_occ_level.Name as occupationalLevelName,sys_blood_type.Name as bloodTypeName,sys_marital_status.Name as MaritalStatusName,
+        sys_family.name as familyNatureName,sys_full_time.Name as isFullTimeName,occ_cat.OccupationalName as
+        occupationalCategoryName,
+        sys_occ_level.Name as occupationalLevelName,sys_blood_type.Name as bloodTypeName,sys_marital_status.Name as
+        MaritalStatusName,
         area_region.name as RegionName,area_street.name as StreetName,
         (select count(*) from pc_recommend recommend where jobuser.JobUserID = recommend.JobuserID and isRead = 1)as
         RecommendedCount
@@ -29,8 +31,9 @@
         jobuser.familyNatureID = sys_family.Value
         left join (select * from sys_dictionary_item where DictionaryCode ='IsFullTime') sys_full_time on
         jobuser.IsFullTime = sys_full_time.Value
-        left join (select * from sys_dictionary_item where DictionaryCode ='OccupationalCategory') sys_occ_category on
-        jobuser.OccupationalCategory = sys_occ_category.Value
+        left join pc_occupational occ_cat on
+        jobuser.OccupationalCategory =
+        occ_cat.OccupationalID
         left join (select * from sys_dictionary_item where DictionaryCode ='OccupationalLevel') sys_occ_level on
         jobuser.OccupationalLevel = sys_occ_level.Value
         left join (select * from sys_dictionary_item where DictionaryCode ='BloodType') sys_blood_type on

+ 4 - 3
src/main/resources/mapping/cquery/PostCQuery.xml

@@ -6,15 +6,16 @@
         post.postID,post.workCode,post.workName,post.recruitCount,post.companyID,post.postName,post.recordStatus,post.workNature,post.validDay,
         post.workYear,post.cultureRank,post.postDesc,post.maxSalary,post.minSalary,post.welfare,post.postEmail,post.workTime,post.isTrail,post.trailMonths,
         post.TrailMaxSalary,post.trailMinSalary,post.createUserID,post.createTime,post.modifyUserID,post.modifyTime,post.validTime,post.startTime,post.endTime,
+        post.contactName,post.contactMobile,post.contactEmail,
         post.jobPlace,post.contactName,post.contactMobile,post.contactEmail,post.workNatureID,post.tagID,company.userName,company.userMobile,company.companyEmail,
-        company.CompanyName,company.insuredCount,company.bonus,item.`Name` as cultureLevelName,job_hunt_type.Name as workNatureName,
+        company.CompanyName,company.insuredCount,company.bonus,item.`Name` as cultureLevelName,work_nature.Name as workNatureName,
         post.ProfessionID,pro.ProfessionName,pro.parentProfessionID
         , IFNULL(count(rmgt.RecommendMgtID),0) as recommendNum
         from pc_post post
         left join pc_company company on post.CompanyID = company.CompanyID
         left join sys_dictionary_item item on item.value=post.CultureRank and item.DictionaryCode='CultureLevel'
-        left join sys_dictionary_item job_hunt_type on job_hunt_type.value=post.WorkNatureID and
-        job_hunt_type.DictionaryCode='JobHuntType'
+        left join sys_dictionary_item work_nature on work_nature.value=post.WorkNatureID and
+        work_nature.DictionaryCode='WorkNature'
         left join pc_profession pro on post.ProfessionID = pro.ProfessionID
         left join pc_recommend_mgt rmgt on post.PostID = rmgt.PostID
         <where>

+ 3 - 3
src/main/resources/mapping/cquery/SiteUserCQuery.xml

@@ -4,7 +4,7 @@
     <select id="getList" resultType="com.hz.employmentsite.vo.baseSettings.SiteUserVo">
         select siteUser.*,dic_userRole.Name as RoleName,dic_gender.Name as GenderName,site.SiteName
         ,inSites.InstitutionID as institutionID,site.regionCode, dic_fullTime.Name as isFullTimeName
-        ,dic_occ_cat.Name as occupationalCategoryName, dic_occ_level.Name as occupationalLevelName
+        ,occ_cat.OccupationalName as occupationalCategoryName, dic_occ_level.Name as occupationalLevelName
         ,dic_nation.Name as nationName, dic_politicsStatus.Name as politicsStatusName
         ,dic_culture.Name as cultureRankName
         from pc_site_user siteUser
@@ -17,9 +17,9 @@
         siteUser.IsFullTime
         =
         dic_fullTime.Value
-        left join (select * from sys_dictionary_item where DictionaryCode ='OccupationalCategory' ) dic_occ_cat on
+        left join pc_occupational occ_cat on
         siteUser.OccupationalCategory =
-        dic_occ_cat.Value
+        occ_cat.OccupationalID
         left join (select * from sys_dictionary_item where DictionaryCode ='OccupationalLevel' ) dic_occ_level on
         siteUser.OccupationalLevel =
         dic_occ_level.Value

+ 6 - 0
src/main/resources/mapping/cquery/SysUserCQuery.xml

@@ -127,6 +127,7 @@
         select theUser.*,dic_userType.Name as UserTypeName,siteUser.SiteID,siteUser.SiteUserName,siteUser.Mobile as UserMobile,
                siteUser.Gender,dic_genderType.Name as GenderName
         ,siteUser.userNo,siteUser.IDCard,site.siteName
+        ,userDataRange.datarangeIds
         from sys_user theUser
         left join pc_site_user siteUser on theUser.UserID = siteUser.UserID
         left join pc_site site on siteUser.SiteID = site.SiteID
@@ -134,6 +135,11 @@
         on theUser.UserTypeID = dic_userType.value
         left join (select * from sys_dictionary_item where DictionaryCode ='Gender') dic_genderType
         on siteUser.Gender = dic_genderType.value
+        left join (
+            select d.userId,GROUP_CONCAT(d.datarangeId) as datarangeIds
+            from sys_user_datarange d
+            group by d.userId
+        )userDataRange on theUser.userId = userDataRange.userId
         where theUser.UserId = #{userId}
     </select>
 

+ 46 - 8
vue/src/views/baseSettings/siteUser/edit.vue

@@ -113,9 +113,11 @@
         </a-col>
         <a-col :span="8">
           <a-form-item label="职业资格类别" name="occupationalCategory" :label-col="{span:7}">
-            <label v-if="opCategory==3">{{ dataModel.occupationalCategory }}</label>
-            <a-select ref="select" v-model:value="dataModel.occupationalCategory" :options="occupationalCategoryList"
-                      :field-names="{ label: 'name', value: 'value' }" :allow-clear="false"></a-select>
+            <label v-if="opCategory==3">{{ dataModel.occupationalCategoryName }}</label>
+            <a-cascader :load-data="loadLevelOccupationalCategoryList"
+                        v-model:value="dataModel.occupationalCategoryName"
+                        :options="occupationalCategoryList" change-on-select @change="occupationalChange">
+            </a-cascader>
           </a-form-item>
         </a-col>
         <a-col :span="8">
@@ -165,6 +167,7 @@ import type {SelectProps} from "ant-design-vue";
 import {message} from "ant-design-vue";
 import {getSysDictionaryList} from "@/api/system/dictionary";
 import {getSiteList} from "@/api/baseSettings/siteInfo";
+import {get} from "@/api/common";
 
 interface siteUserModel {
   dataModel: any;
@@ -232,10 +235,6 @@ export default defineComponent({
       const result: any = await getSysDictionaryList("IsFullTime");
       isFullTimeList.value = result;
     }
-    const getOccupationalCategoryList = async function () {
-      const result: any = await getSysDictionaryList("OccupationalCategory");
-      occupationalCategoryList.value = result;
-    }
     const getOccupationalLevelList = async function () {
       const result: any = await getSysDictionaryList("OccupationalLevel");
       occupationalLevelList.value = result;
@@ -252,10 +251,10 @@ export default defineComponent({
       getNationList()
       getPoliticsStatusList()
       getIsFullTimeList()
-      getOccupationalCategoryList()
       getOccupationalLevelList()
       getCultureRankList()
       getRoleList(operateType);
+      getFirstOccupationalList()
       opCategory.value = operateType;
       getSiteUserByID(siteUserID).then((result: any) => {
         formData.dataModel = result;
@@ -319,6 +318,43 @@ export default defineComponent({
 
     };
 
+    const getFirstOccupationalList = () => {
+      get("occupational/getFirstOccupationalList", null).then(data => {
+        occupationalCategoryList.value = (data as any[]).map((x) => {
+          return {
+            label: x.name,
+            value: x.code,
+            isLeaf: false,
+            tag: 'firstLevel'
+          }
+        });
+      });
+    }
+    const loadLevelOccupationalCategoryList = (selectedOptions) => {
+      let targetOption = selectedOptions[selectedOptions.length - 1];
+      if (targetOption) {
+        get("occupational/getListByParentOccupationalID", {parentOccupationalID: targetOption.value}).then(data => {
+          targetOption.loading = false;
+          targetOption.children = (data as any[]).map((x) => {
+            return {
+              label: x.name,
+              value: x.code,
+              isLeaf: true,
+              tag: 'secondLevel'
+            };
+          });
+        });
+        formData.dataModel.hasOccupational = false;
+      }
+    };
+
+    // 岗位名称选择变更事件
+    function occupationalChange(value: any, selectedOptions: any) {
+      if (value.length >= 2) {
+        formData.dataModel.occupationalCategory = selectedOptions[1].value;
+        formData.dataModel.occupationalCategoryName = selectedOptions[1].label;
+      }
+    }
 
     return {
       ...toRefs(formData),
@@ -340,6 +376,8 @@ export default defineComponent({
       isFullTimeList,
       occupationalCategoryList,
       occupationalLevelList,
+      loadLevelOccupationalCategoryList,
+      occupationalChange
     };
   },
   created() {

+ 8 - 0
vue/src/views/companyService/post/detail.vue

@@ -11,6 +11,10 @@
         {{ postInfo.endTime ? dayjs(postInfo.endTime).format('YYYY-MM-DD') : '' }}
       </a-descriptions-item>
       <a-descriptions-item :span="3" label="招聘地点">{{ postInfo.jobPlace }}</a-descriptions-item>
+      <a-descriptions-item label="联系人姓名">{{ postInfo.contactName }}</a-descriptions-item>
+      <a-descriptions-item label="联系人电话">{{ postInfo.contactMobile }}</a-descriptions-item>
+      <a-descriptions-item label="联系人邮箱">{{ postInfo.contactEmail }}</a-descriptions-item>
+      <a-descriptions-item label="工作性质">{{ postInfo.workNatureName }}</a-descriptions-item>
     </a-descriptions>
     <a-divider orientation="left">其他信息</a-divider>
     <a-descriptions bordered>
@@ -58,6 +62,10 @@ const postInfo = reactive({
   cultureLevelName: "",
   welfare: "",
   postDesc: "",
+  contactName: "",
+  contactMobile: "",
+  contactEmail: "",
+  workNatureName: ""
 })
 // 工作年限数据
 const WorkYearTypeList = ref<Array<any>>([])

+ 1 - 1
vue/src/views/companyService/post/edit.vue

@@ -335,7 +335,7 @@ export default defineComponent(
         WorkYearTypeList.value = result;
       });
 
-      get('system/dictionary/getDictionaryItemByCodeList', {code: 'JobHuntType'}).then(result => {
+      get('system/dictionary/getDictionaryItemByCodeList', {code: 'WorkNature'}).then(result => {
         jobHuntList.value = result;
       });
 

+ 45 - 7
vue/src/views/jobUserManager/jobuser/edit.vue

@@ -140,8 +140,10 @@
         </a-col>
         <a-col :span="8">
           <a-form-item label="职业资格类别" :label-col="{span:6}" name="finishSchool">
-            <a-select ref="select" v-model:value="dataModel.occupationalCategory" :options="occupationalCategoryList"
-                      :field-names="{ label: 'name', value: 'value' }" :allow-clear="false"></a-select>
+            <a-cascader :load-data="loadLevelOccupationalCategoryList"
+                        v-model:value="dataModel.occupationalCategoryName"
+                        :options="occupationalCategoryList" change-on-select @change="occupationalChange">
+            </a-cascader>
           </a-form-item>
         </a-col>
         <a-col :span="8">
@@ -677,10 +679,6 @@ export default defineComponent(
         const result: any = await getSysDictionaryList("IsFullTime");
         isFullTimeList.value = result;
       }
-      const getOccupationalCategoryList = async function () {
-        const result: any = await getSysDictionaryList("OccupationalCategory");
-        occupationalCategoryList.value = result;
-      }
       const getOccupationalLevelList = async function () {
         const result: any = await getSysDictionaryList("OccupationalLevel");
         occupationalLevelList.value = result;
@@ -802,6 +800,44 @@ export default defineComponent(
         }
       }
 
+      const getFirstOccupationalList = () => {
+        get("occupational/getFirstOccupationalList", null).then(data => {
+          occupationalCategoryList.value = (data as any[]).map((x) => {
+            return {
+              label: x.name,
+              value: x.code,
+              isLeaf: false,
+              tag: 'firstLevel'
+            }
+          });
+        });
+      }
+      const loadLevelOccupationalCategoryList = (selectedOptions) => {
+        let targetOption = selectedOptions[selectedOptions.length - 1];
+        if (targetOption) {
+          get("occupational/getListByParentOccupationalID", {parentOccupationalID: targetOption.value}).then(data => {
+            targetOption.loading = false;
+            targetOption.children = (data as any[]).map((x) => {
+              return {
+                label: x.name,
+                value: x.code,
+                isLeaf: true,
+                tag: 'secondLevel'
+              };
+            });
+          });
+          formState.dataModel.hasOccupational = false;
+        }
+      };
+
+      // 岗位名称选择变更事件
+      function occupationalChange(value: any, selectedOptions: any) {
+        if (value.length >= 2) {
+          formState.dataModel.occupationalCategory = selectedOptions[1].value;
+          formState.dataModel.occupationalCategoryName = selectedOptions[1].label;
+        }
+      }
+
       const loadData = (id: any) => {
         getAllSites();
         getHealthList();
@@ -815,8 +851,8 @@ export default defineComponent(
         getMaritalStatusList();
         getPoliticsStatusList();
         getIsFullTimeList()
-        getOccupationalCategoryList()
         getOccupationalLevelList()
+        getFirstOccupationalList()
         getInfo().then((loginUserInfo:any)=>{
           getDataById(id,loginUserInfo.userID).then(data => {
             formState.dataModel = data;
@@ -866,6 +902,8 @@ export default defineComponent(
         isFullTimeList,
         occupationalCategoryList,
         occupationalLevelList,
+        loadLevelOccupationalCategoryList,
+        occupationalChange
       }
     },
     created() {

+ 134 - 29
vue/src/views/system/users/addUser.vue

@@ -14,6 +14,7 @@
   >
     <div class="modal-search">
       <a-form
+        v-if="isAdd"
         ref="formRef"
         name="advanced_search"
         class="ant-advanced-search-form"
@@ -144,6 +145,89 @@
           </a-table>
         </div>
       </a-form>
+      <a-form
+        v-if="!isAdd"
+        ref="formRef"
+        name="advanced_search"
+        class="ant-advanced-search-form"
+        :model="dataModel"
+        autocomplete="off"
+      >
+        <a-row type="flex" :gutter="24">
+          <a-col :span="12">
+            <a-form-item
+              label="用户类型"
+              :label-col="{ span: 6 }"
+              name="userTypeID"
+              :rules="[{ required: true, message: '请选择用户类型!' }]"
+            >
+              <a-select
+                ref="select"
+                v-model:value="dataModel.userTypeID"
+                :options="userTypeList"
+                :field-names="{ label: 'name', value: 'value' }"
+                :allow-clear="true"
+                :disabled="true"
+              ></a-select>
+            </a-form-item>
+          </a-col>
+          <a-col v-if="dataModel.userTypeID === 4" :span="12">
+            <a-form-item
+              label="所属机构"
+              name="datarangeIds"
+              :label-col="{ span: 6 }"
+              :rules="[{ required: true, message: '请选择所属机构!' }]"
+            >
+              <a-select
+                ref="select"
+                v-model:value="dataModel.datarangeIds"
+                :options="institutionList"
+                :field-names="{ label: 'text', value: 'value' }"
+                :allow-clear="true"
+              ></a-select>
+            </a-form-item>
+          </a-col>
+          <a-col v-if="dataModel.userTypeID === 5" :span="12">
+            <a-form-item
+              label="所属县区"
+              name="datarangeIds"
+              :label-col="{ span: 6 }"
+              :rules="[{ required: true, message: '请选择所属县区!' }]"
+            >
+              <a-select
+                ref="select"
+                v-model:value="dataModel.datarangeIds"
+                :options="regionList"
+                :field-names="{ label: 'name', value: 'code' }"
+                :allow-clear="true"
+              ></a-select>
+            </a-form-item>
+          </a-col>
+        </a-row>
+        <a-row type="flex" :gutter="24">
+          <a-col :span="12">
+            <a-form-item
+              label="用户名"
+              :label-col="{ span: 6 }"
+              name="name"
+              :rules="[{ required: true, message: '请输入用户名!' }]"
+            >
+              <a-input v-model:value="dataModel.name" placeholder="" />
+            </a-form-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-item
+              label="账号"
+              :label-col="{ span: 6 }"
+              name="loginID"
+              :rules="[{ required: true, message: '请输入用户账号!' }]"
+              :disabled="true"
+            >
+              {{ dataModel.loginID }}
+            </a-form-item>
+          </a-col>
+        </a-row>
+      </a-form>
     </div>
   </a-modal>
 </template>
@@ -202,58 +286,78 @@
         loading: false,
       });
       const institutionList = ref<SelectProps['options']>();
+      const isAdd = ref(false);
 
       const getUserTypeList = async function () {
         const userTypeResult = await getSysDictionaryList('UserType');
         userTypeList.value = userTypeResult;
       };
 
-      const show = async function () {
+      const show = function (userId) {
+        visible.value = true;
+        isAdd.value = false;
+        formData.dataModel.userTypeID = null;
+        if (userId === '' || userId == null) {
+          isAdd.value = true;
+        }
+
+        getData(userId);
+      };
+
+      const getData = async function (userId) {
         formState.loading = true;
         await getUserTypeList();
         await getRegionList();
         await getInstitutionList();
-        const reqData = await getUserByID('');
+        const reqData = await getUserByID(userId);
         formData.dataModel = reqData;
-        /*console.log('dataModel', formData.dataModel);*/
         formState.loading = false;
-        visible.value = true;
       };
 
       const onCommit = async function () {
         isAllowCommit.value = true;
-        if (
-          formData.dataModel.userTypeID != 3 &&
-          (formData.dataModel.name == null ||
-            formData.dataModel.loginID == null ||
-            formData.dataModel.password == null ||
-            formData.dataModel.userTypeID == null ||
-            formData.dataModel.recordStatus == null)
-        ) {
-          message.error('请填写完整的用户信息!');
-          isAllowCommit.value = false;
-        }
+        if (isAdd.value == true) {
+          if (
+            formData.dataModel.userTypeID != 3 &&
+            (formData.dataModel.name == null ||
+              formData.dataModel.loginID == null ||
+              formData.dataModel.password == null ||
+              formData.dataModel.userTypeID == null ||
+              formData.dataModel.recordStatus == null)
+          ) {
+            message.error('请填写完整的用户信息!');
+            isAllowCommit.value = false;
+          }
 
-        if (
-          formData.dataModel.userTypeID == 3 &&
-          (formData.dataModel.password == null ||
-            formData.dataModel.userTypeID == null ||
-            formData.dataModel.recordStatus == null)
-        ) {
-          message.error('请填写完整的用户信息!');
-          isAllowCommit.value = false;
-        }
+          if (
+            formData.dataModel.userTypeID == 3 &&
+            (formData.dataModel.password == null ||
+              formData.dataModel.userTypeID == null ||
+              formData.dataModel.recordStatus == null)
+          ) {
+            message.error('请填写完整的用户信息!');
+            isAllowCommit.value = false;
+          }
 
-        if (formData.dataModel.userTypeID == 3 && siteUserList.value.length == 0) {
-          message.error('请添加驿站工作人员!');
-          isAllowCommit.value = false;
+          if (formData.dataModel.userTypeID == 3 && siteUserList.value.length == 0) {
+            message.error('请添加驿站工作人员!');
+            isAllowCommit.value = false;
+          } else {
+            formData.dataModel.siteUserIdList = siteUserList.value.map((it: any) => it.siteUserID);
+          }
         } else {
-          formData.dataModel.siteUserIdList = siteUserList.value.map((it: any) => it.siteUserID);
+          if (formData.dataModel.name == null) {
+            message.error('请填写完整的用户信息!');
+            isAllowCommit.value = false;
+          }
         }
 
         if (isAllowCommit.value) {
           //多选时不需要转类型
-          formData.dataModel.datarangeIdList = [formData.dataModel.datarangeIds];
+          if (formData.dataModel.datarangeIds != null)
+            formData.dataModel.datarangeIdList = [formData.dataModel.datarangeIds];
+
+          formData.dataModel.isAdd = isAdd.value;
 
           saveSysUser(formData.dataModel).then((result) => {
             if (result) {
@@ -308,6 +412,7 @@
         tableState,
         onDel,
         institutionList,
+        isAdd,
       };
     },
     created() {},

+ 8 - 5
vue/src/views/system/users/index.vue

@@ -46,7 +46,7 @@
       </a-row>
       <a-row class="edit-operation">
         <a-col :span="24" style="text-align: right">
-          <a-button type="primary" html-type="submit" functioncode="T0199010105" @click="onAdd"
+          <a-button type="primary" html-type="submit" functioncode="T0199010105" @click="onAdd('')"
             >新增</a-button
           >
         </a-col>
@@ -67,6 +67,9 @@
         <template #bodyCell="{ column, text, record }">
           <template v-if="column.key === 'operation'">
             <div class="table-operation">
+              <a-button type="link" functioncode="T0199010105" @click="onAdd(record.UserID)"
+                >编辑</a-button
+              >
               <a-button
                 type="link"
                 functioncode="T0199010102"
@@ -88,7 +91,7 @@
       </a-table>
     </div>
     <UpdatePassword ref="updatePasswordRef"></UpdatePassword>
-    <UserAdd ref="userAddRef" :loadData="loadData"></UserAdd>
+    <UserAdd ref="userAddRef" :load-data="loadData"></UserAdd>
   </div>
 </template>
 
@@ -183,9 +186,9 @@
         loadData();
       };
 
-      const onAdd = () => {
-        userAddRef.value.show();
-        loadData();
+      const onAdd = (userId) => {
+        userAddRef.value.show(userId);
+        /*loadData();*/
       };
 
       const onUpdateUserStatus = async function (userID, status) {