Jelajahi Sumber

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	doc/待更新脚本
liao-sea 10 bulan lalu
induk
melakukan
07e6e7235a
30 mengubah file dengan 2951 tambahan dan 1395 penghapusan
  1. 655 467
      doc/就业驿站管理系统.pdb
  2. 641 483
      doc/就业驿站管理系统.pdm
  3. 11 1
      doc/待更新脚本
  4. 1 1
      h5app/src/views/pages/jobUserInfo/companyEdit.vue
  5. 8 2
      h5app/src/views/pages/jobUserInfo/index.vue
  6. 1 1
      h5app/src/views/pages/jobUserInfo/userEdit.vue
  7. 2 1
      src/main/java/com/hz/employmentsite/controller/UserController.java
  8. 24 0
      src/main/java/com/hz/employmentsite/mapper/SysUserDatarangeMapper.java
  9. 30 0
      src/main/java/com/hz/employmentsite/model/PcInstitution.java
  10. 70 0
      src/main/java/com/hz/employmentsite/model/PcJobuser.java
  11. 339 0
      src/main/java/com/hz/employmentsite/model/SysUserDatarangeExample.java
  12. 23 0
      src/main/java/com/hz/employmentsite/model/SysUserDatarangeKey.java
  13. 29 7
      src/main/java/com/hz/employmentsite/services/impl/UserServiceImpl.java
  14. 6 0
      src/main/java/com/hz/employmentsite/services/impl/baseSettings/InstitutionImpl.java
  15. 32 7
      src/main/java/com/hz/employmentsite/services/impl/jobUserManager/JobUserServiceImpl.java
  16. 2 1
      src/main/java/com/hz/employmentsite/services/service/UserService.java
  17. 8 1
      src/main/java/com/hz/employmentsite/vo/baseSettings/InstitutionVo.java
  18. 14 2
      src/main/java/com/hz/employmentsite/vo/jobUserManager/JobUserVo.java
  19. 11 0
      src/main/java/com/hz/employmentsite/vo/user/UserEditVo.java
  20. 100 52
      src/main/resources/mapping/PcInstitutionMapper.xml
  21. 233 121
      src/main/resources/mapping/PcJobuserMapper.xml
  22. 145 0
      src/main/resources/mapping/SysUserDatarangeMapper.xml
  23. 4 1
      src/main/resources/mapping/cquery/InstitutionCQuery.xml
  24. 6 1
      src/main/resources/mapping/cquery/JobUserCQuery.xml
  25. 29 3
      src/main/resources/mapping/cquery/SysUserCQuery.xml
  26. 9 0
      vue/src/views/baseSettings/institution/detail.vue
  27. 77 5
      vue/src/views/baseSettings/institution/edit.vue
  28. 74 3
      vue/src/views/jobUserManager/jobuser/edit.vue
  29. 183 97
      vue/src/views/system/users/addUser.vue
  30. 184 138
      vue/src/views/system/users/index.vue

File diff ditekan karena terlalu besar
+ 655 - 467
doc/就业驿站管理系统.pdb


File diff ditekan karena terlalu besar
+ 641 - 483
doc/就业驿站管理系统.pdm


+ 11 - 1
doc/待更新脚本

@@ -149,4 +149,14 @@ values('toUser','thing5','companyname'),('toUser','thing4','postName'),('toUser'
 
 --2024-04-23
  alter table pc_profession modify ProfessionName varchar(50)
- alter table pc_company alter column  companyType int
+ alter table pc_company alter column  companyType int
+
+ -- 2023.4.24
+ create table sys_user_datarange
+ (
+     userId               varchar(50) not null comment '用户ID',
+     datarangeId          varchar(50) not null comment '结合用户类型区分区ID或驿站ID',
+     primary key (userId, datarangeId)
+ );
+
+ alter table sys_user_datarange comment '用户数据权限表,结合用户类型区分区ID或驿站ID';

+ 1 - 1
h5app/src/views/pages/jobUserInfo/companyEdit.vue

@@ -424,7 +424,7 @@ export default defineComponent({
 
 
     const onBack = () => {
-      router.push('/jobUserInfo/index');
+      router.push({path:'/jobUserInfo/index', query: {userId: curStepData.value.loginUserID,openId: curStepData.value.openID}});
     }
 
     const onNext = async () => {

+ 8 - 2
h5app/src/views/pages/jobUserInfo/index.vue

@@ -81,11 +81,17 @@ export default defineComponent({
     };
 
     const onCompany = function () {
-      router.push({path: '/jobUserInfo/companyEdit', query: {reload: 1, openId: openId.value, loginUserId: userId}});
+      router.push({
+        path: '/jobUserInfo/companyEdit',
+        query: {reload: 1, openId: openId.value, loginUserId: userId, userId: userId}
+      });
     };
 
     const onJobUser = function () {
-      router.push({path: '/jobUserInfo/userEdit', query: {reload: 1, openId: openId.value,status:1, loginUserId: userId}});
+      router.push({
+        path: '/jobUserInfo/userEdit',
+        query: {reload: 1, openId: openId.value, status: 1, loginUserId: userId, userId: userId}
+      });
     };
 
 

+ 1 - 1
h5app/src/views/pages/jobUserInfo/userEdit.vue

@@ -584,7 +584,7 @@ export default defineComponent({
       if(curStepData.value.statusVal > 0){
         router.push({path:"/jobUserInfo/userEdit", query: {reload:0,educationID:null,jobHuntID:null,jobUserID: baseInfoData.baseData.jobUserID,status:curStepData.value.statusVal,loginUserId:curStepData.value.loginUserID}});
       }else{
-        router.push('/jobUserInfo/index');
+        router.push({path:'/jobUserInfo/index', query: {userId: route.query.loginUserId,openId: route.query.openId}});
       }
     }
 

+ 2 - 1
src/main/java/com/hz/employmentsite/controller/UserController.java

@@ -12,6 +12,7 @@ import com.hz.employmentsite.util.DesUtils;
 import com.hz.employmentsite.util.JsonMapper;
 import com.hz.employmentsite.vo.DesModel;
 import com.github.pagehelper.PageInfo;
+import com.hz.employmentsite.vo.user.UserEditVo;
 import com.hz.employmentsite.vo.user.UserInfoModel;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -60,7 +61,7 @@ public class UserController {
     }
 
     @PostMapping("save")
-    public BaseResponse<Integer> save(@RequestBody SysUser data) {
+    public BaseResponse<Integer> save(@RequestBody UserEditVo data) {
         return RespGenerstor.success(userService.save(data,accountService.getLoginUserID()));
     }
 

+ 24 - 0
src/main/java/com/hz/employmentsite/mapper/SysUserDatarangeMapper.java

@@ -0,0 +1,24 @@
+package com.hz.employmentsite.mapper;
+
+import com.hz.employmentsite.model.SysUserDatarangeExample;
+import com.hz.employmentsite.model.SysUserDatarangeKey;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface SysUserDatarangeMapper {
+    long countByExample(SysUserDatarangeExample example);
+
+    int deleteByExample(SysUserDatarangeExample example);
+
+    int deleteByPrimaryKey(SysUserDatarangeKey key);
+
+    int insert(SysUserDatarangeKey row);
+
+    int insertSelective(SysUserDatarangeKey row);
+
+    List<SysUserDatarangeKey> selectByExample(SysUserDatarangeExample example);
+
+    int updateByExampleSelective(@Param("row") SysUserDatarangeKey row, @Param("example") SysUserDatarangeExample example);
+
+    int updateByExample(@Param("row") SysUserDatarangeKey row, @Param("example") SysUserDatarangeExample example);
+}

+ 30 - 0
src/main/java/com/hz/employmentsite/model/PcInstitution.java

@@ -31,6 +31,12 @@ public class PcInstitution {
 
     private Date modifyTime;
 
+    private String signInPoliticalArea;
+
+    private Date validDate;
+
+    private Integer economicTypeID;
+
     public String getInstitutionID() {
         return institutionID;
     }
@@ -142,4 +148,28 @@ public class PcInstitution {
     public void setModifyTime(Date modifyTime) {
         this.modifyTime = modifyTime;
     }
+
+    public String getSignInPoliticalArea() {
+        return signInPoliticalArea;
+    }
+
+    public void setSignInPoliticalArea(String signInPoliticalArea) {
+        this.signInPoliticalArea = signInPoliticalArea;
+    }
+
+    public Date getValidDate() {
+        return validDate;
+    }
+
+    public void setValidDate(Date validDate) {
+        this.validDate = validDate;
+    }
+
+    public Integer getEconomicTypeID() {
+        return economicTypeID;
+    }
+
+    public void setEconomicTypeID(Integer economicTypeID) {
+        this.economicTypeID = economicTypeID;
+    }
 }

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

@@ -77,6 +77,20 @@ public class PcJobuser {
 
     private String openId;
 
+    private String socialSecurityCard;
+
+    private String finishSchool;
+
+    private String profession;
+
+    private String nativePlace;
+
+    private Integer isFullTime;
+
+    private Integer occupationalCategory;
+
+    private Integer occupationalLevel;
+
     public String getJobuserID() {
         return jobuserID;
     }
@@ -372,4 +386,60 @@ public class PcJobuser {
     public void setOpenId(String openId) {
         this.openId = openId == null ? null : openId.trim();
     }
+
+    public String getSocialSecurityCard() {
+        return socialSecurityCard;
+    }
+
+    public void setSocialSecurityCard(String socialSecurityCard) {
+        this.socialSecurityCard = socialSecurityCard;
+    }
+
+    public String getFinishSchool() {
+        return finishSchool;
+    }
+
+    public void setFinishSchool(String finishSchool) {
+        this.finishSchool = finishSchool;
+    }
+
+    public String getProfession() {
+        return profession;
+    }
+
+    public void setProfession(String profession) {
+        this.profession = profession;
+    }
+
+    public String getNativePlace() {
+        return nativePlace;
+    }
+
+    public void setNativePlace(String nativePlace) {
+        this.nativePlace = nativePlace;
+    }
+
+    public Integer getIsFullTime() {
+        return isFullTime;
+    }
+
+    public void setIsFullTime(Integer isFullTime) {
+        this.isFullTime = isFullTime;
+    }
+
+    public Integer getOccupationalCategory() {
+        return occupationalCategory;
+    }
+
+    public void setOccupationalCategory(Integer occupationalCategory) {
+        this.occupationalCategory = occupationalCategory;
+    }
+
+    public Integer getOccupationalLevel() {
+        return occupationalLevel;
+    }
+
+    public void setOccupationalLevel(Integer occupationalLevel) {
+        this.occupationalLevel = occupationalLevel;
+    }
 }

+ 339 - 0
src/main/java/com/hz/employmentsite/model/SysUserDatarangeExample.java

@@ -0,0 +1,339 @@
+package com.hz.employmentsite.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class SysUserDatarangeExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    public SysUserDatarangeExample() {
+        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 andUserIdIsNull() {
+            addCriterion("userId is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdIsNotNull() {
+            addCriterion("userId is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdEqualTo(String value) {
+            addCriterion("userId =", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdNotEqualTo(String value) {
+            addCriterion("userId <>", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdGreaterThan(String value) {
+            addCriterion("userId >", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdGreaterThanOrEqualTo(String value) {
+            addCriterion("userId >=", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdLessThan(String value) {
+            addCriterion("userId <", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdLessThanOrEqualTo(String value) {
+            addCriterion("userId <=", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdLike(String value) {
+            addCriterion("userId like", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdNotLike(String value) {
+            addCriterion("userId not like", value, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdIn(List<String> values) {
+            addCriterion("userId in", values, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdNotIn(List<String> values) {
+            addCriterion("userId not in", values, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdBetween(String value1, String value2) {
+            addCriterion("userId between", value1, value2, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIdNotBetween(String value1, String value2) {
+            addCriterion("userId not between", value1, value2, "userId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDatarangeIdIsNull() {
+            addCriterion("datarangeId is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andDatarangeIdIsNotNull() {
+            addCriterion("datarangeId is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andDatarangeIdEqualTo(String value) {
+            addCriterion("datarangeId =", value, "datarangeId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDatarangeIdNotEqualTo(String value) {
+            addCriterion("datarangeId <>", value, "datarangeId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDatarangeIdGreaterThan(String value) {
+            addCriterion("datarangeId >", value, "datarangeId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDatarangeIdGreaterThanOrEqualTo(String value) {
+            addCriterion("datarangeId >=", value, "datarangeId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDatarangeIdLessThan(String value) {
+            addCriterion("datarangeId <", value, "datarangeId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDatarangeIdLessThanOrEqualTo(String value) {
+            addCriterion("datarangeId <=", value, "datarangeId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDatarangeIdLike(String value) {
+            addCriterion("datarangeId like", value, "datarangeId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDatarangeIdNotLike(String value) {
+            addCriterion("datarangeId not like", value, "datarangeId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDatarangeIdIn(List<String> values) {
+            addCriterion("datarangeId in", values, "datarangeId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDatarangeIdNotIn(List<String> values) {
+            addCriterion("datarangeId not in", values, "datarangeId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDatarangeIdBetween(String value1, String value2) {
+            addCriterion("datarangeId between", value1, value2, "datarangeId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDatarangeIdNotBetween(String value1, String value2) {
+            addCriterion("datarangeId not between", value1, value2, "datarangeId");
+            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);
+        }
+    }
+}

+ 23 - 0
src/main/java/com/hz/employmentsite/model/SysUserDatarangeKey.java

@@ -0,0 +1,23 @@
+package com.hz.employmentsite.model;
+
+public class SysUserDatarangeKey {
+    private String userId;
+
+    private String datarangeId;
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId == null ? null : userId.trim();
+    }
+
+    public String getDatarangeId() {
+        return datarangeId;
+    }
+
+    public void setDatarangeId(String datarangeId) {
+        this.datarangeId = datarangeId == null ? null : datarangeId.trim();
+    }
+}

+ 29 - 7
src/main/java/com/hz/employmentsite/services/impl/UserServiceImpl.java

@@ -8,6 +8,7 @@ import com.hz.employmentsite.services.service.UserService;
 import com.hz.employmentsite.util.DateUtils;
 import com.hz.employmentsite.util.StringUtils;
 import com.hz.employmentsite.vo.user.DataRange;
+import com.hz.employmentsite.vo.user.UserEditVo;
 import com.hz.employmentsite.vo.user.UserInfoModel;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
@@ -29,8 +30,10 @@ public class UserServiceImpl implements UserService {
     @Autowired
     private StringUtils stringUtils;
 
-    private String defaultPassword = "52653B706ADC444F6660FAB66D6DC210";//Hjy@2024
+    @Autowired
+    private SysUserDatarangeMapper sysUserDatarangeMapper;
 
+    private String defaultPassword = "52653B706ADC444F6660FAB66D6DC210";//Hjy@2024
 
 
     @Override
@@ -121,13 +124,13 @@ public class UserServiceImpl implements UserService {
     public UserInfoModel getUserInfo(String userId) {
         if (stringUtils.IsNullOrEmpty(userId)) {
             return null;
-        }else{
+        } else {
             return sysUserCQuery.selectUserInfo(userId);
         }
     }
 
     @Override
-    public Integer save(SysUser data, String userId) {
+    public Integer save(UserEditVo data, String userId) {
         int result = 0;
         UserInfoModel record = getUserInfo(data.getUserID());
         SysUser dbData = record == null ? null : sysUserMapper.selectByPrimaryKey(record.userID);
@@ -138,9 +141,9 @@ public class UserServiceImpl implements UserService {
             dbData.setUserID(data.getUserID());
             dbData.setName(data.getName());
             dbData.setLoginID(data.getLoginID());
-            if(data.getPassword()==null){
+            if (data.getPassword() == null) {
                 dbData.setPassword(defaultPassword);
-            }else{
+            } else {
                 dbData.setPassword(DigestUtils.md5DigestAsHex(data.getPassword().getBytes()).toUpperCase());
             }
             dbData.setUserTypeID(data.getUserTypeID());
@@ -152,9 +155,9 @@ public class UserServiceImpl implements UserService {
             //修改
             dbData.setName(data.getName());
             dbData.setLoginID(data.getLoginID());
-            if(data.getPassword()==null){
+            if (data.getPassword() == null) {
                 dbData.setPassword(defaultPassword);
-            }else{
+            } else {
                 dbData.setPassword(DigestUtils.md5DigestAsHex(data.getPassword().getBytes()).toUpperCase());
             }
             dbData.setUserTypeID(data.getUserTypeID());
@@ -163,6 +166,24 @@ public class UserServiceImpl implements UserService {
             dbData.setUpdateTime(new Date());
             result = sysUserMapper.updateByPrimaryKey(dbData);
         }
+
+        SysUserDatarangeExample udExp = new SysUserDatarangeExample();
+        SysUserDatarangeExample.Criteria udCri = udExp.or();
+        udCri.andUserIdEqualTo(data.getUserID());
+        sysUserDatarangeMapper.deleteByExample(udExp);
+
+        if (data.datarangeIdList!=null) {
+
+            data.datarangeIdList.forEach(datarangeId -> {
+                SysUserDatarangeKey sysUserDatarange = new SysUserDatarangeKey();
+                sysUserDatarange.setUserId(data.getUserID());
+                sysUserDatarange.setDatarangeId(datarangeId);
+
+                sysUserDatarangeMapper.insert(sysUserDatarange);
+            });
+
+        }
+
         return result;
     }
 
@@ -244,6 +265,7 @@ public class UserServiceImpl implements UserService {
     public List<SysMenu> getUserShortcutMenuList(String userID) {
         return sysUserCQuery.selectUserShortcutMenuList(userID);
     }
+
     public SysUser getUserByLoginID(String loginID) {
         SysUserExample exp = new SysUserExample();
         SysUserExample.Criteria criteria = exp.or();

+ 6 - 0
src/main/java/com/hz/employmentsite/services/impl/baseSettings/InstitutionImpl.java

@@ -95,6 +95,9 @@ public class InstitutionImpl implements InstitutionService {
             dbData.setRemark(data.getRemark());
             dbData.setCreateUserID(userId);
             dbData.setCreateTime(new Date());
+            dbData.setSignInPoliticalArea(data.getSignInPoliticalArea());
+            dbData.setValidDate(data.getValidDate());
+            dbData.setEconomicTypeID(data.getEconomicTypeID());
             result = pcInstitutionMapper.insert(dbData);
         } else {
             //修改
@@ -109,6 +112,9 @@ public class InstitutionImpl implements InstitutionService {
             dbData.setRemark(data.remark);
             dbData.setModifyUserID(userId);
             dbData.setModifyTime(new Date());
+            dbData.setSignInPoliticalArea(data.signInPoliticalArea);
+            dbData.setValidDate(data.getValidDate());
+            dbData.setEconomicTypeID(data.getEconomicTypeID());
             result = pcInstitutionMapper.updateByPrimaryKey(dbData);
         }
         /*先删除所有关联数据,再添加*/

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

@@ -8,7 +8,6 @@ import com.hz.employmentsite.mapper.cquery.JobUserCQuery;
 import com.hz.employmentsite.model.*;
 import com.hz.employmentsite.services.service.jobUserManager.JobUserService;
 import com.hz.employmentsite.util.StringUtils;
-import com.hz.employmentsite.vo.companyService.CompanyVo;
 import com.hz.employmentsite.vo.jobUserManager.JobUserVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -166,22 +165,34 @@ public class JobUserServiceImpl implements JobUserService {
         PcJobuserExample emp = new PcJobuserExample();
         PcJobuserExample.Criteria cir = emp.or();
         //验证身份证是否已经录入
-        if (dbData != null){
+        if (dbData != null) {
             cir.andJobuserIDNotEqualTo(data.getJobUserID());
         }
         cir.andIdentityNumberEqualTo(data.getIdentityNumber());
-        if(pcJobuserMapper.selectByExample(emp).size()>0){
-            throw new BaseException("500","该身份证号已绑定其他人员");
+        if (pcJobuserMapper.selectByExample(emp).size() > 0) {
+            throw new BaseException("500", "该身份证号已绑定其他人员");
         }
 
         //验证联系电话是否已经录入
         cir = emp.or();
-        if (dbData != null){
+        if (dbData != null) {
             cir.andJobuserIDNotEqualTo(data.getJobUserID());
         }
         cir.andUserMobileEqualTo(data.getUserMobile());
-        if(pcJobuserMapper.selectByExample(emp).size()>0){
-            throw new BaseException("500","该联系电话已绑定其他人员");
+        if (pcJobuserMapper.selectByExample(emp).size() > 0) {
+            throw new BaseException("500", "该联系电话已绑定其他人员");
+        }
+
+        // 验证社保卡是否绑定
+        if (!data.getSocialSecurityCard().isEmpty()) {
+            cir = emp.or();
+            if (dbData != null) {
+                cir.andJobuserIDNotEqualTo(data.getJobUserID());
+            }
+            cir.andUserMobileEqualTo(data.getSocialSecurityCard());
+            if (pcJobuserMapper.selectByExample(emp).size() > 0) {
+                throw new BaseException("500", "该社保卡已绑定其他人员");
+            }
         }
 
         if (dbData == null) {
@@ -218,6 +229,13 @@ public class JobUserServiceImpl implements JobUserService {
             dbData.setHobby(data.getHobby());
             dbData.setKeyPersonTypeID(data.getKeyPersonTypeID());
             dbData.setPersonalSkills(data.getPersonalSkills());
+            dbData.setSocialSecurityCard(data.getSocialSecurityCard());
+            dbData.setFinishSchool(data.getFinishSchool());
+            dbData.setProfession(data.getProfession());
+            dbData.setNativePlace(data.getNativePlace());
+            dbData.setIsFullTime(data.getIsFullTime());
+            dbData.setOccupationalCategory(data.getOccupationalCategory());
+            dbData.setOccupationalLevel(data.getOccupationalLevel());
             dbData.setCreateTime(new Date());
             dbData.setCreateUserID(userId);
             result = pcJobuserMapper.insert(dbData);
@@ -255,6 +273,13 @@ public class JobUserServiceImpl implements JobUserService {
             dbData.setHobby(data.getHobby());
             dbData.setKeyPersonTypeID(data.getKeyPersonTypeID());
             dbData.setPersonalSkills(data.getPersonalSkills());
+            dbData.setSocialSecurityCard(data.getSocialSecurityCard());
+            dbData.setFinishSchool(data.getFinishSchool());
+            dbData.setProfession(data.getProfession());
+            dbData.setNativePlace(data.getNativePlace());
+            dbData.setIsFullTime(data.getIsFullTime());
+            dbData.setOccupationalCategory(data.getOccupationalCategory());
+            dbData.setOccupationalLevel(data.getOccupationalLevel());
             dbData.setModifyTime(new Date());
             dbData.setModifyUserID(userId);
             result = pcJobuserMapper.updateByPrimaryKeySelective(dbData);

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

@@ -5,6 +5,7 @@ import com.hz.employmentsite.model.SysRole;
 import com.hz.employmentsite.model.SysUser;
 import com.hz.employmentsite.vo.baseSettings.InstitutionVo;
 import com.hz.employmentsite.vo.user.DataRange;
+import com.hz.employmentsite.vo.user.UserEditVo;
 import com.hz.employmentsite.vo.user.UserInfoModel;
 import com.github.pagehelper.PageInfo;
 
@@ -16,7 +17,7 @@ public interface UserService {
     List<DataRange> getUserDataRange(String userID);
     int updateUserStatus(String userId, Integer status);
     UserInfoModel getUserInfo(String userId);
-    Integer save(SysUser data, String userId);
+    Integer save(UserEditVo data, String userId);
     PageInfo<HashMap<String, Object>> getUserList(int page, int rows, String name,String loginID, Integer sex, Integer recordStatus, Integer userType);
     SysUser getIsCacheUserInfoByID(String userId);
 

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

@@ -1,9 +1,10 @@
 package com.hz.employmentsite.vo.baseSettings;
 
+import com.hz.employmentsite.util.datarange.annotations.InstitutionID;
 import lombok.Data;
+
 import java.sql.Date;
 import java.util.List;
-import com.hz.employmentsite.util.datarange.annotations.InstitutionID;
 
 @Data
 public class InstitutionVo {
@@ -31,4 +32,10 @@ public class InstitutionVo {
     public String modifyUserID;
     public Date modifyTime;
 
+    public String signInPoliticalArea;
+    public java.util.Date validDate;
+
+    public Integer economicTypeID;
+    public String economicTypeName;
+
 }

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

@@ -95,10 +95,22 @@ public class JobUserVo {
     public String siteName;
     public String jobStatusName;
     public String keyTypeName;
-    public List<HashMap<String,Object>> jobEducation;
-    public List<HashMap<String,Object>> jobExperience;
+    public List<HashMap<String, Object>> jobEducation;
+    public List<HashMap<String, Object>> jobExperience;
     /*已推荐岗位个数*/
     public Integer recommendedCount;
 
+    private String socialSecurityCard;
+    private String finishSchool;
+    private String profession;
+    private String nativePlace;
+
+    private Integer isFullTime;
+    private String isFullTimeName;
+    private Integer occupationalCategory;
+    private String occupationalCategoryName;
+    private Integer occupationalLevel;
+    private String occupationalLevelName;
+
 
 }

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

@@ -0,0 +1,11 @@
+package com.hz.employmentsite.vo.user;
+
+import com.hz.employmentsite.model.SysUser;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class UserEditVo extends SysUser {
+    public List<String> datarangeIdList;
+}

+ 100 - 52
src/main/resources/mapping/PcInstitutionMapper.xml

@@ -2,20 +2,23 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.hz.employmentsite.mapper.PcInstitutionMapper">
   <resultMap id="BaseResultMap" type="com.hz.employmentsite.model.PcInstitution">
-    <id column="InstitutionID" jdbcType="VARCHAR" property="institutionID" />
-    <result column="CompanyName" jdbcType="VARCHAR" property="companyName" />
-    <result column="CompanyAddress" jdbcType="VARCHAR" property="companyAddress" />
-    <result column="FzrName" jdbcType="VARCHAR" property="fzrName" />
-    <result column="FzrMobile" jdbcType="VARCHAR" property="fzrMobile" />
-    <result column="FrName" jdbcType="VARCHAR" property="frName" />
-    <result column="FrMobile" jdbcType="VARCHAR" property="frMobile" />
-    <result column="CompanyCode" jdbcType="VARCHAR" property="companyCode" />
-    <result column="CompanyDesc" jdbcType="VARCHAR" property="companyDesc" />
-    <result column="Remark" jdbcType="VARCHAR" property="remark" />
-    <result column="CreateUserID" jdbcType="VARCHAR" property="createUserID" />
-    <result column="CreateTime" jdbcType="TIMESTAMP" property="createTime" />
-    <result column="ModifyUserID" jdbcType="VARCHAR" property="modifyUserID" />
-    <result column="ModifyTime" jdbcType="TIMESTAMP" property="modifyTime" />
+    <id column="InstitutionID" jdbcType="VARCHAR" property="institutionID"/>
+    <result column="CompanyName" jdbcType="VARCHAR" property="companyName"/>
+    <result column="CompanyAddress" jdbcType="VARCHAR" property="companyAddress"/>
+    <result column="FzrName" jdbcType="VARCHAR" property="fzrName"/>
+    <result column="FzrMobile" jdbcType="VARCHAR" property="fzrMobile"/>
+    <result column="FrName" jdbcType="VARCHAR" property="frName"/>
+    <result column="FrMobile" jdbcType="VARCHAR" property="frMobile"/>
+    <result column="CompanyCode" jdbcType="VARCHAR" property="companyCode"/>
+    <result column="CompanyDesc" jdbcType="VARCHAR" property="companyDesc"/>
+    <result column="Remark" jdbcType="VARCHAR" property="remark"/>
+    <result column="CreateUserID" jdbcType="VARCHAR" property="createUserID"/>
+    <result column="CreateTime" jdbcType="TIMESTAMP" property="createTime"/>
+    <result column="ModifyUserID" jdbcType="VARCHAR" property="modifyUserID"/>
+    <result column="ModifyTime" jdbcType="TIMESTAMP" property="modifyTime"/>
+    <result column="SignInPoliticalArea" jdbcType="VARCHAR" property="signInPoliticalArea"/>
+    <result column="EconomicTypeID" jdbcType="TIMESTAMP" property="economicTypeID"/>
+    <result column="ValidDate" jdbcType="INTEGER" property="validDate"/>
   </resultMap>
   <sql id="Example_Where_Clause">
     <where>
@@ -76,8 +79,10 @@
     </where>
   </sql>
   <sql id="Base_Column_List">
-    InstitutionID, CompanyName, CompanyAddress, FzrName, FzrMobile, FrName, FrMobile, 
-    CompanyCode, CompanyDesc, Remark, CreateUserID, CreateTime, ModifyUserID, ModifyTime
+    InstitutionID
+    , CompanyName, CompanyAddress, FzrName, FzrMobile, FrName, FrMobile,
+    CompanyCode, CompanyDesc, Remark, CreateUserID, CreateTime, ModifyUserID,
+    ModifyTime,SignInPoliticalArea,EconomicTypeID,ValidDate
   </sql>
   <select id="selectByExample" parameterType="com.hz.employmentsite.model.PcInstitutionExample" resultMap="BaseResultMap">
     select
@@ -110,16 +115,17 @@
     </if>
   </delete>
   <insert id="insert" parameterType="com.hz.employmentsite.model.PcInstitution">
-    insert into pc_institution (InstitutionID, CompanyName, CompanyAddress, 
-      FzrName, FzrMobile, FrName, 
-      FrMobile, CompanyCode, CompanyDesc, 
-      Remark, CreateUserID, CreateTime, 
-      ModifyUserID, ModifyTime)
-    values (#{institutionID,jdbcType=VARCHAR}, #{companyName,jdbcType=VARCHAR}, #{companyAddress,jdbcType=VARCHAR}, 
-      #{fzrName,jdbcType=VARCHAR}, #{fzrMobile,jdbcType=VARCHAR}, #{frName,jdbcType=VARCHAR}, 
-      #{frMobile,jdbcType=VARCHAR}, #{companyCode,jdbcType=VARCHAR}, #{companyDesc,jdbcType=VARCHAR}, 
-      #{remark,jdbcType=VARCHAR}, #{createUserID,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, 
-      #{modifyUserID,jdbcType=VARCHAR}, #{modifyTime,jdbcType=TIMESTAMP})
+    insert into pc_institution (InstitutionID, CompanyName, CompanyAddress,
+                                FzrName, FzrMobile, FrName,
+                                FrMobile, CompanyCode, CompanyDesc,
+                                Remark, CreateUserID, CreateTime,
+                                ModifyUserID, ModifyTime, SignInPoliticalArea, EconomicTypeID, ValidDate)
+    values (#{institutionID,jdbcType=VARCHAR}, #{companyName,jdbcType=VARCHAR}, #{companyAddress,jdbcType=VARCHAR},
+            #{fzrName,jdbcType=VARCHAR}, #{fzrMobile,jdbcType=VARCHAR}, #{frName,jdbcType=VARCHAR},
+            #{frMobile,jdbcType=VARCHAR}, #{companyCode,jdbcType=VARCHAR}, #{companyDesc,jdbcType=VARCHAR},
+            #{remark,jdbcType=VARCHAR}, #{createUserID,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP},
+            #{modifyUserID,jdbcType=VARCHAR}, #{modifyTime,jdbcType=TIMESTAMP}, #{signInPoliticalArea,jdbcType=VARCHAR},
+            #{economicTypeID,jdbcType=INTEGER}, #{validDate,jdbcType=TIMESTAMP})
   </insert>
   <insert id="insertSelective" parameterType="com.hz.employmentsite.model.PcInstitution">
     insert into pc_institution
@@ -166,6 +172,15 @@
       <if test="modifyTime != null">
         ModifyTime,
       </if>
+      <if test="signInPoliticalArea != null">
+        SignInPoliticalArea,
+      </if>
+      <if test="validDate != null">
+        ValidDate,
+      </if>
+      <if test="economicTypeID != null">
+        EconomicTypeID,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="institutionID != null">
@@ -210,6 +225,15 @@
       <if test="modifyTime != null">
         #{modifyTime,jdbcType=TIMESTAMP},
       </if>
+      <if test="signInPoliticalArea != null">
+        #{signInPoliticalArea,jdbcType=VARCHAR},
+      </if>
+      <if test="validDate != null">
+        #{validDate,jdbcType=TIMESTAMP},
+      </if>
+      <if test="economicTypeID != null">
+        #{economicTypeID,jdbcType=INTEGER},
+      </if>
     </trim>
   </insert>
   <select id="countByExample" parameterType="com.hz.employmentsite.model.PcInstitutionExample" resultType="java.lang.Long">
@@ -263,6 +287,15 @@
       <if test="row.modifyTime != null">
         ModifyTime = #{row.modifyTime,jdbcType=TIMESTAMP},
       </if>
+      <if test="row.signInPoliticalArea != null">
+        SignInPoliticalArea = #{row.signInPoliticalArea,jdbcType=VARCHAR},
+      </if>
+      <if test="row.validDate != null">
+        ValidDate = #{row.validDate,jdbcType=TIMESTAMP},
+      </if>
+      <if test="row.economicTypeID != null">
+        EconomicTypeID = #{row.economicTypeID,jdbcType=INTEGER},
+      </if>
     </set>
     <if test="example != null">
       <include refid="Update_By_Example_Where_Clause" />
@@ -271,19 +304,22 @@
   <update id="updateByExample" parameterType="map">
     update pc_institution
     set InstitutionID = #{row.institutionID,jdbcType=VARCHAR},
-      CompanyName = #{row.companyName,jdbcType=VARCHAR},
-      CompanyAddress = #{row.companyAddress,jdbcType=VARCHAR},
-      FzrName = #{row.fzrName,jdbcType=VARCHAR},
-      FzrMobile = #{row.fzrMobile,jdbcType=VARCHAR},
-      FrName = #{row.frName,jdbcType=VARCHAR},
-      FrMobile = #{row.frMobile,jdbcType=VARCHAR},
-      CompanyCode = #{row.companyCode,jdbcType=VARCHAR},
-      CompanyDesc = #{row.companyDesc,jdbcType=VARCHAR},
-      Remark = #{row.remark,jdbcType=VARCHAR},
-      CreateUserID = #{row.createUserID,jdbcType=VARCHAR},
-      CreateTime = #{row.createTime,jdbcType=TIMESTAMP},
-      ModifyUserID = #{row.modifyUserID,jdbcType=VARCHAR},
-      ModifyTime = #{row.modifyTime,jdbcType=TIMESTAMP}
+    CompanyName = #{row.companyName,jdbcType=VARCHAR},
+    CompanyAddress = #{row.companyAddress,jdbcType=VARCHAR},
+    FzrName = #{row.fzrName,jdbcType=VARCHAR},
+    FzrMobile = #{row.fzrMobile,jdbcType=VARCHAR},
+    FrName = #{row.frName,jdbcType=VARCHAR},
+    FrMobile = #{row.frMobile,jdbcType=VARCHAR},
+    CompanyCode = #{row.companyCode,jdbcType=VARCHAR},
+    CompanyDesc = #{row.companyDesc,jdbcType=VARCHAR},
+    Remark = #{row.remark,jdbcType=VARCHAR},
+    CreateUserID = #{row.createUserID,jdbcType=VARCHAR},
+    CreateTime = #{row.createTime,jdbcType=TIMESTAMP},
+    ModifyUserID = #{row.modifyUserID,jdbcType=VARCHAR},
+    ModifyTime = #{row.modifyTime,jdbcType=TIMESTAMP},
+    SignInPoliticalArea = #{row.signInPoliticalArea,jdbcType=VARCHAR},
+    ValidDate = #{row.validDate,jdbcType=TIMESTAMP},
+    EconomicTypeID = #{row.economicTypeID,jdbcType=INTEGER}
     <if test="example != null">
       <include refid="Update_By_Example_Where_Clause" />
     </if>
@@ -330,24 +366,36 @@
       <if test="modifyTime != null">
         ModifyTime = #{modifyTime,jdbcType=TIMESTAMP},
       </if>
+      <if test="signInPoliticalArea != null">
+        SignInPoliticalArea = #{signInPoliticalArea,jdbcType=VARCHAR},
+      </if>
+      <if test="validDate != null">
+        ValidDate = #{validDate,jdbcType=TIMESTAMP},
+      </if>
+      <if test="economicTypeID != null">
+        EconomicTypeID = #{economicTypeID,jdbcType=INTEGER},
+      </if>
     </set>
     where InstitutionID = #{institutionID,jdbcType=VARCHAR}
   </update>
   <update id="updateByPrimaryKey" parameterType="com.hz.employmentsite.model.PcInstitution">
     update pc_institution
-    set CompanyName = #{companyName,jdbcType=VARCHAR},
-      CompanyAddress = #{companyAddress,jdbcType=VARCHAR},
-      FzrName = #{fzrName,jdbcType=VARCHAR},
-      FzrMobile = #{fzrMobile,jdbcType=VARCHAR},
-      FrName = #{frName,jdbcType=VARCHAR},
-      FrMobile = #{frMobile,jdbcType=VARCHAR},
-      CompanyCode = #{companyCode,jdbcType=VARCHAR},
-      CompanyDesc = #{companyDesc,jdbcType=VARCHAR},
-      Remark = #{remark,jdbcType=VARCHAR},
-      CreateUserID = #{createUserID,jdbcType=VARCHAR},
-      CreateTime = #{createTime,jdbcType=TIMESTAMP},
-      ModifyUserID = #{modifyUserID,jdbcType=VARCHAR},
-      ModifyTime = #{modifyTime,jdbcType=TIMESTAMP}
+    set CompanyName         = #{companyName,jdbcType=VARCHAR},
+        CompanyAddress      = #{companyAddress,jdbcType=VARCHAR},
+        FzrName             = #{fzrName,jdbcType=VARCHAR},
+        FzrMobile           = #{fzrMobile,jdbcType=VARCHAR},
+        FrName              = #{frName,jdbcType=VARCHAR},
+        FrMobile            = #{frMobile,jdbcType=VARCHAR},
+        CompanyCode         = #{companyCode,jdbcType=VARCHAR},
+        CompanyDesc         = #{companyDesc,jdbcType=VARCHAR},
+        Remark              = #{remark,jdbcType=VARCHAR},
+        CreateUserID        = #{createUserID,jdbcType=VARCHAR},
+        CreateTime          = #{createTime,jdbcType=TIMESTAMP},
+        ModifyUserID        = #{modifyUserID,jdbcType=VARCHAR},
+        ModifyTime          = #{modifyTime,jdbcType=TIMESTAMP},
+        signInPoliticalArea = #{signInPoliticalArea,jdbcType=VARCHAR},
+        validDate           = #{validDate,jdbcType=TIMESTAMP},
+        economicTypeID      = #{economicTypeID,jdbcType=INTEGER}
     where InstitutionID = #{institutionID,jdbcType=VARCHAR}
   </update>
 </mapper>

+ 233 - 121
src/main/resources/mapping/PcJobuserMapper.xml

@@ -2,43 +2,50 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.hz.employmentsite.mapper.PcJobuserMapper">
   <resultMap id="BaseResultMap" type="com.hz.employmentsite.model.PcJobuser">
-    <id column="JobuserID" jdbcType="VARCHAR" property="jobuserID" />
-    <result column="SiteID" jdbcType="VARCHAR" property="siteID" />
-    <result column="IdentityNumber" jdbcType="VARCHAR" property="identityNumber" />
-    <result column="Name" jdbcType="VARCHAR" property="name" />
-    <result column="PyName" jdbcType="VARCHAR" property="pyName" />
-    <result column="EngName" jdbcType="VARCHAR" property="engName" />
-    <result column="Sex" jdbcType="INTEGER" property="sex" />
-    <result column="Nation" jdbcType="VARCHAR" property="nation" />
-    <result column="PoliticsStatusID" jdbcType="INTEGER" property="politicsStatusID" />
-    <result column="Birthplace" jdbcType="VARCHAR" property="birthplace" />
-    <result column="BirthDay" jdbcType="TIMESTAMP" property="birthDay" />
-    <result column="FamilyNatureID" jdbcType="INTEGER" property="familyNatureID" />
-    <result column="CultureRank" jdbcType="INTEGER" property="cultureRank" />
-    <result column="HealthID" jdbcType="INTEGER" property="healthID" />
-    <result column="BloodTypeID" jdbcType="INTEGER" property="bloodTypeID" />
-    <result column="Height" jdbcType="VARCHAR" property="height" />
-    <result column="Vision" jdbcType="VARCHAR" property="vision" />
-    <result column="Weight" jdbcType="VARCHAR" property="weight" />
-    <result column="MaritalStatusID" jdbcType="INTEGER" property="maritalStatusID" />
-    <result column="ProvinceCode" jdbcType="VARCHAR" property="provinceCode" />
-    <result column="RegionCode" jdbcType="VARCHAR" property="regionCode" />
-    <result column="StreetCode" jdbcType="VARCHAR" property="streetCode" />
-    <result column="UserName" jdbcType="VARCHAR" property="userName" />
-    <result column="UserMobile" jdbcType="VARCHAR" property="userMobile" />
-    <result column="Address" jdbcType="VARCHAR" property="address" />
-    <result column="FamilyAddress" jdbcType="VARCHAR" property="familyAddress" />
-    <result column="PostalCode" jdbcType="VARCHAR" property="postalCode" />
-    <result column="Email" jdbcType="VARCHAR" property="email" />
-    <result column="Hobby" jdbcType="VARCHAR" property="hobby" />
-    <result column="JobStatusID" jdbcType="INTEGER" property="jobStatusID" />
-    <result column="KeyPersonTypeID" jdbcType="INTEGER" property="keyPersonTypeID" />
-    <result column="PersonalSkills" jdbcType="VARCHAR" property="personalSkills" />
-    <result column="CreateUserID" jdbcType="VARCHAR" property="createUserID" />
-    <result column="CreateTime" jdbcType="TIMESTAMP" property="createTime" />
-    <result column="ModifyUserID" jdbcType="VARCHAR" property="modifyUserID" />
-    <result column="ModifyTime" jdbcType="TIMESTAMP" property="modifyTime" />
-    <result column="openId" jdbcType="VARCHAR" property="openId" />
+    <id column="JobuserID" jdbcType="VARCHAR" property="jobuserID"/>
+    <result column="SiteID" jdbcType="VARCHAR" property="siteID"/>
+    <result column="IdentityNumber" jdbcType="VARCHAR" property="identityNumber"/>
+    <result column="Name" jdbcType="VARCHAR" property="name"/>
+    <result column="PyName" jdbcType="VARCHAR" property="pyName"/>
+    <result column="EngName" jdbcType="VARCHAR" property="engName"/>
+    <result column="Sex" jdbcType="INTEGER" property="sex"/>
+    <result column="Nation" jdbcType="VARCHAR" property="nation"/>
+    <result column="PoliticsStatusID" jdbcType="INTEGER" property="politicsStatusID"/>
+    <result column="Birthplace" jdbcType="VARCHAR" property="birthplace"/>
+    <result column="BirthDay" jdbcType="TIMESTAMP" property="birthDay"/>
+    <result column="FamilyNatureID" jdbcType="INTEGER" property="familyNatureID"/>
+    <result column="CultureRank" jdbcType="INTEGER" property="cultureRank"/>
+    <result column="HealthID" jdbcType="INTEGER" property="healthID"/>
+    <result column="BloodTypeID" jdbcType="INTEGER" property="bloodTypeID"/>
+    <result column="Height" jdbcType="VARCHAR" property="height"/>
+    <result column="Vision" jdbcType="VARCHAR" property="vision"/>
+    <result column="Weight" jdbcType="VARCHAR" property="weight"/>
+    <result column="MaritalStatusID" jdbcType="INTEGER" property="maritalStatusID"/>
+    <result column="ProvinceCode" jdbcType="VARCHAR" property="provinceCode"/>
+    <result column="RegionCode" jdbcType="VARCHAR" property="regionCode"/>
+    <result column="StreetCode" jdbcType="VARCHAR" property="streetCode"/>
+    <result column="UserName" jdbcType="VARCHAR" property="userName"/>
+    <result column="UserMobile" jdbcType="VARCHAR" property="userMobile"/>
+    <result column="Address" jdbcType="VARCHAR" property="address"/>
+    <result column="FamilyAddress" jdbcType="VARCHAR" property="familyAddress"/>
+    <result column="PostalCode" jdbcType="VARCHAR" property="postalCode"/>
+    <result column="Email" jdbcType="VARCHAR" property="email"/>
+    <result column="Hobby" jdbcType="VARCHAR" property="hobby"/>
+    <result column="JobStatusID" jdbcType="INTEGER" property="jobStatusID"/>
+    <result column="KeyPersonTypeID" jdbcType="INTEGER" property="keyPersonTypeID"/>
+    <result column="PersonalSkills" jdbcType="VARCHAR" property="personalSkills"/>
+    <result column="CreateUserID" jdbcType="VARCHAR" property="createUserID"/>
+    <result column="CreateTime" jdbcType="TIMESTAMP" property="createTime"/>
+    <result column="ModifyUserID" jdbcType="VARCHAR" property="modifyUserID"/>
+    <result column="ModifyTime" jdbcType="TIMESTAMP" property="modifyTime"/>
+    <result column="openId" jdbcType="VARCHAR" property="openId"/>
+    <result column="SocialSecurityCard" jdbcType="VARCHAR" property="socialSecurityCard"/>
+    <result column="FinishSchool" jdbcType="VARCHAR" property="finishSchool"/>
+    <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="OccupationalLevel" jdbcType="INTEGER" property="occupationalLevel"/>
   </resultMap>
   <sql id="Example_Where_Clause">
     <where>
@@ -99,11 +106,14 @@
     </where>
   </sql>
   <sql id="Base_Column_List">
-    JobuserID, SiteID, IdentityNumber, Name, PyName, EngName, Sex, Nation, PoliticsStatusID, 
+    JobuserID
+    , SiteID, IdentityNumber, Name, PyName, EngName, Sex, Nation, PoliticsStatusID,
     Birthplace, BirthDay, FamilyNatureID, CultureRank, HealthID, BloodTypeID, Height, 
     Vision, Weight, MaritalStatusID, ProvinceCode, RegionCode, StreetCode, UserName, 
     UserMobile, Address, FamilyAddress, PostalCode, Email, Hobby, JobStatusID, KeyPersonTypeID, 
-    PersonalSkills, CreateUserID, CreateTime, ModifyUserID, ModifyTime, openId
+    PersonalSkills, CreateUserID, CreateTime, ModifyUserID, ModifyTime, openId,
+    SocialSecurityCard,FinishSchool,Profession,NativePlace,
+    IsFullTime,OccupationalCategory,OccupationalLevel
   </sql>
   <select id="selectByExample" parameterType="com.hz.employmentsite.model.PcJobuserExample" resultMap="BaseResultMap">
     select
@@ -136,32 +146,36 @@
     </if>
   </delete>
   <insert id="insert" parameterType="com.hz.employmentsite.model.PcJobuser">
-    insert into pc_jobuser (JobuserID, SiteID, IdentityNumber, 
-      Name, PyName, EngName, 
-      Sex, Nation, PoliticsStatusID, 
-      Birthplace, BirthDay, FamilyNatureID, 
-      CultureRank, HealthID, BloodTypeID, 
-      Height, Vision, Weight, 
-      MaritalStatusID, ProvinceCode, RegionCode, 
-      StreetCode, UserName, UserMobile, 
-      Address, FamilyAddress, PostalCode, 
-      Email, Hobby, JobStatusID, 
-      KeyPersonTypeID, PersonalSkills, CreateUserID, 
-      CreateTime, ModifyUserID, ModifyTime, 
-      openId)
-    values (#{jobuserID,jdbcType=VARCHAR}, #{siteID,jdbcType=VARCHAR}, #{identityNumber,jdbcType=VARCHAR}, 
-      #{name,jdbcType=VARCHAR}, #{pyName,jdbcType=VARCHAR}, #{engName,jdbcType=VARCHAR}, 
-      #{sex,jdbcType=INTEGER}, #{nation,jdbcType=VARCHAR}, #{politicsStatusID,jdbcType=INTEGER}, 
-      #{birthplace,jdbcType=VARCHAR}, #{birthDay,jdbcType=TIMESTAMP}, #{familyNatureID,jdbcType=INTEGER}, 
-      #{cultureRank,jdbcType=INTEGER}, #{healthID,jdbcType=INTEGER}, #{bloodTypeID,jdbcType=INTEGER}, 
-      #{height,jdbcType=VARCHAR}, #{vision,jdbcType=VARCHAR}, #{weight,jdbcType=VARCHAR}, 
-      #{maritalStatusID,jdbcType=INTEGER}, #{provinceCode,jdbcType=VARCHAR}, #{regionCode,jdbcType=VARCHAR}, 
-      #{streetCode,jdbcType=VARCHAR}, #{userName,jdbcType=VARCHAR}, #{userMobile,jdbcType=VARCHAR}, 
-      #{address,jdbcType=VARCHAR}, #{familyAddress,jdbcType=VARCHAR}, #{postalCode,jdbcType=VARCHAR}, 
-      #{email,jdbcType=VARCHAR}, #{hobby,jdbcType=VARCHAR}, #{jobStatusID,jdbcType=INTEGER}, 
-      #{keyPersonTypeID,jdbcType=INTEGER}, #{personalSkills,jdbcType=VARCHAR}, #{createUserID,jdbcType=VARCHAR}, 
-      #{createTime,jdbcType=TIMESTAMP}, #{modifyUserID,jdbcType=VARCHAR}, #{modifyTime,jdbcType=TIMESTAMP}, 
-      #{openId,jdbcType=VARCHAR})
+    insert into pc_jobuser (JobuserID, SiteID, IdentityNumber,
+                            Name, PyName, EngName,
+                            Sex, Nation, PoliticsStatusID,
+                            Birthplace, BirthDay, FamilyNatureID,
+                            CultureRank, HealthID, BloodTypeID,
+                            Height, Vision, Weight,
+                            MaritalStatusID, ProvinceCode, RegionCode,
+                            StreetCode, UserName, UserMobile,
+                            Address, FamilyAddress, PostalCode,
+                            Email, Hobby, JobStatusID,
+                            KeyPersonTypeID, PersonalSkills, CreateUserID,
+                            CreateTime, ModifyUserID, ModifyTime,
+                            openId, SocialSecurityCard, FinishSchool,
+                            Profession, NativePlace, IsFullTime,
+                            OccupationalCategory, OccupationalLevel)
+    values (#{jobuserID,jdbcType=VARCHAR}, #{siteID,jdbcType=VARCHAR}, #{identityNumber,jdbcType=VARCHAR},
+            #{name,jdbcType=VARCHAR}, #{pyName,jdbcType=VARCHAR}, #{engName,jdbcType=VARCHAR},
+            #{sex,jdbcType=INTEGER}, #{nation,jdbcType=VARCHAR}, #{politicsStatusID,jdbcType=INTEGER},
+            #{birthplace,jdbcType=VARCHAR}, #{birthDay,jdbcType=TIMESTAMP}, #{familyNatureID,jdbcType=INTEGER},
+            #{cultureRank,jdbcType=INTEGER}, #{healthID,jdbcType=INTEGER}, #{bloodTypeID,jdbcType=INTEGER},
+            #{height,jdbcType=VARCHAR}, #{vision,jdbcType=VARCHAR}, #{weight,jdbcType=VARCHAR},
+            #{maritalStatusID,jdbcType=INTEGER}, #{provinceCode,jdbcType=VARCHAR}, #{regionCode,jdbcType=VARCHAR},
+            #{streetCode,jdbcType=VARCHAR}, #{userName,jdbcType=VARCHAR}, #{userMobile,jdbcType=VARCHAR},
+            #{address,jdbcType=VARCHAR}, #{familyAddress,jdbcType=VARCHAR}, #{postalCode,jdbcType=VARCHAR},
+            #{email,jdbcType=VARCHAR}, #{hobby,jdbcType=VARCHAR}, #{jobStatusID,jdbcType=INTEGER},
+            #{keyPersonTypeID,jdbcType=INTEGER}, #{personalSkills,jdbcType=VARCHAR}, #{createUserID,jdbcType=VARCHAR},
+            #{createTime,jdbcType=TIMESTAMP}, #{modifyUserID,jdbcType=VARCHAR}, #{modifyTime,jdbcType=TIMESTAMP},
+            #{openId,jdbcType=VARCHAR}, #{socialSecurityCard,jdbcType=VARCHAR}, #{finishSchool,jdbcType=VARCHAR},
+            #{profession,jdbcType=VARCHAR}, #{nativePlace,jdbcType=VARCHAR}, #{isFullTime,jdbcType=VARCHAR},
+            #{occupationalCategory,jdbcType=VARCHAR}, #{occupationalLevel,jdbcType=VARCHAR})
   </insert>
   <insert id="insertSelective" parameterType="com.hz.employmentsite.model.PcJobuser">
     insert into pc_jobuser
@@ -277,6 +291,27 @@
       <if test="openId != null">
         openId,
       </if>
+      <if test="socialSecurityCard != null">
+        SocialSecurityCard,
+      </if>
+      <if test="finishSchool != null">
+        FinishSchool,
+      </if>
+      <if test="profession != null">
+        Profession,
+      </if>
+      <if test="nativePlace != null">
+        NativePlace,
+      </if>
+      <if test="isFullTime != null">
+        IsFullTime,
+      </if>
+      <if test="occupationalCategory != null">
+        OccupationalCategory,
+      </if>
+      <if test="occupationalLevel != null">
+        OccupationalLevel,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="jobuserID != null">
@@ -390,6 +425,27 @@
       <if test="openId != null">
         #{openId,jdbcType=VARCHAR},
       </if>
+      <if test="socialSecurityCard != null">
+        #{socialSecurityCard,jdbcType=VARCHAR},
+      </if>
+      <if test="finishSchool != null">
+        #{finishSchool,jdbcType=VARCHAR},
+      </if>
+      <if test="profession != null">
+        #{profession,jdbcType=VARCHAR},
+      </if>
+      <if test="nativePlace != null">
+        #{nativePlace,jdbcType=VARCHAR},
+      </if>
+      <if test="isFullTime != null">
+        #{isFullTime,jdbcType=INTEGER},
+      </if>
+      <if test="occupationalCategory != null">
+        #{occupationalCategory,jdbcType=INTEGER},
+      </if>
+      <if test="occupationalLevel != null">
+        #{occupationalLevel,jdbcType=INTEGER},
+      </if>
     </trim>
   </insert>
   <select id="countByExample" parameterType="com.hz.employmentsite.model.PcJobuserExample" resultType="java.lang.Long">
@@ -512,6 +568,27 @@
       <if test="row.openId != null">
         openId = #{row.openId,jdbcType=VARCHAR},
       </if>
+      <if test="row.socialSecurityCard != null">
+        SocialSecurityCard = #{row.socialSecurityCard,jdbcType=VARCHAR},
+      </if>
+      <if test="row.finishSchool != null">
+        FinishSchool = #{row.finishSchool,jdbcType=VARCHAR},
+      </if>
+      <if test="row.profession != null">
+        Profession = #{row.profession,jdbcType=VARCHAR},
+      </if>
+      <if test="row.nativePlace != null">
+        NativePlace = #{row.nativePlace,jdbcType=VARCHAR},
+      </if>
+      <if test="row.isFullTime != null">
+        IsFullTime = #{row.isFullTime,jdbcType=INTEGER},
+      </if>
+      <if test="row.occupationalCategory != null">
+        OccupationalCategory = #{row.occupationalCategory,jdbcType=INTEGER},
+      </if>
+      <if test="row.occupationalLevel != null">
+        OccupationalLevel = #{row.occupationalLevel,jdbcType=INTEGER},
+      </if>
     </set>
     <if test="example != null">
       <include refid="Update_By_Example_Where_Clause" />
@@ -535,27 +612,34 @@
       HealthID = #{row.healthID,jdbcType=INTEGER},
       BloodTypeID = #{row.bloodTypeID,jdbcType=INTEGER},
       Height = #{row.height,jdbcType=VARCHAR},
-      Vision = #{row.vision,jdbcType=VARCHAR},
-      Weight = #{row.weight,jdbcType=VARCHAR},
-      MaritalStatusID = #{row.maritalStatusID,jdbcType=INTEGER},
-      ProvinceCode = #{row.provinceCode,jdbcType=VARCHAR},
-      RegionCode = #{row.regionCode,jdbcType=VARCHAR},
-      StreetCode = #{row.streetCode,jdbcType=VARCHAR},
-      UserName = #{row.userName,jdbcType=VARCHAR},
-      UserMobile = #{row.userMobile,jdbcType=VARCHAR},
-      Address = #{row.address,jdbcType=VARCHAR},
-      FamilyAddress = #{row.familyAddress,jdbcType=VARCHAR},
-      PostalCode = #{row.postalCode,jdbcType=VARCHAR},
-      Email = #{row.email,jdbcType=VARCHAR},
-      Hobby = #{row.hobby,jdbcType=VARCHAR},
-      JobStatusID = #{row.jobStatusID,jdbcType=INTEGER},
-      KeyPersonTypeID = #{row.keyPersonTypeID,jdbcType=INTEGER},
-      PersonalSkills = #{row.personalSkills,jdbcType=VARCHAR},
-      CreateUserID = #{row.createUserID,jdbcType=VARCHAR},
-      CreateTime = #{row.createTime,jdbcType=TIMESTAMP},
-      ModifyUserID = #{row.modifyUserID,jdbcType=VARCHAR},
-      ModifyTime = #{row.modifyTime,jdbcType=TIMESTAMP},
-      openId = #{row.openId,jdbcType=VARCHAR}
+    Vision = #{row.vision,jdbcType=VARCHAR},
+    Weight = #{row.weight,jdbcType=VARCHAR},
+    MaritalStatusID = #{row.maritalStatusID,jdbcType=INTEGER},
+    ProvinceCode = #{row.provinceCode,jdbcType=VARCHAR},
+    RegionCode = #{row.regionCode,jdbcType=VARCHAR},
+    StreetCode = #{row.streetCode,jdbcType=VARCHAR},
+    UserName = #{row.userName,jdbcType=VARCHAR},
+    UserMobile = #{row.userMobile,jdbcType=VARCHAR},
+    Address = #{row.address,jdbcType=VARCHAR},
+    FamilyAddress = #{row.familyAddress,jdbcType=VARCHAR},
+    PostalCode = #{row.postalCode,jdbcType=VARCHAR},
+    Email = #{row.email,jdbcType=VARCHAR},
+    Hobby = #{row.hobby,jdbcType=VARCHAR},
+    JobStatusID = #{row.jobStatusID,jdbcType=INTEGER},
+    KeyPersonTypeID = #{row.keyPersonTypeID,jdbcType=INTEGER},
+    PersonalSkills = #{row.personalSkills,jdbcType=VARCHAR},
+    CreateUserID = #{row.createUserID,jdbcType=VARCHAR},
+    CreateTime = #{row.createTime,jdbcType=TIMESTAMP},
+    ModifyUserID = #{row.modifyUserID,jdbcType=VARCHAR},
+    ModifyTime = #{row.modifyTime,jdbcType=TIMESTAMP},
+    openId = #{row.openId,jdbcType=VARCHAR},
+    SocialSecurityCard = #{row.socialSecurityCard,jdbcType=VARCHAR},
+    FinishSchool = #{row.finishSchool,jdbcType=VARCHAR},
+    Profession = #{row.profession,jdbcType=VARCHAR},
+    NativePlace = #{row.nativePlace,jdbcType=VARCHAR},
+    IsFullTime = #{row.isFullTime,jdbcType=INTEGER},
+    OccupationalCategory = #{row.occupationalCategory,jdbcType=INTEGER},
+    OccupationalLevel = #{row.occupationalLevel,jdbcType=INTEGER}
     <if test="example != null">
       <include refid="Update_By_Example_Where_Clause" />
     </if>
@@ -671,47 +755,75 @@
       <if test="openId != null">
         openId = #{openId,jdbcType=VARCHAR},
       </if>
+      <if test="socialSecurityCard != null">
+        SocialSecurityCard = #{socialSecurityCard,jdbcType=VARCHAR},
+      </if>
+      <if test="finishSchool != null">
+        FinishSchool = #{finishSchool,jdbcType=VARCHAR},
+      </if>
+      <if test="profession != null">
+        Profession = #{profession,jdbcType=VARCHAR},
+      </if>
+      <if test="nativePlace != null">
+        NativePlace = #{nativePlace,jdbcType=VARCHAR},
+      </if>
+      <if test="isFullTime != null">
+        IsFullTime = #{isFullTime,jdbcType=INTEGER},
+      </if>
+      <if test="occupationalCategory != null">
+        OccupationalCategory = #{occupationalCategory,jdbcType=INTEGER},
+      </if>
+      <if test="occupationalLevel != null">
+        OccupationalLevel = #{occupationalLevel,jdbcType=INTEGER},
+      </if>
     </set>
     where JobuserID = #{jobuserID,jdbcType=VARCHAR}
   </update>
   <update id="updateByPrimaryKey" parameterType="com.hz.employmentsite.model.PcJobuser">
     update pc_jobuser
     set SiteID = #{siteID,jdbcType=VARCHAR},
-      IdentityNumber = #{identityNumber,jdbcType=VARCHAR},
-      Name = #{name,jdbcType=VARCHAR},
-      PyName = #{pyName,jdbcType=VARCHAR},
-      EngName = #{engName,jdbcType=VARCHAR},
-      Sex = #{sex,jdbcType=INTEGER},
-      Nation = #{nation,jdbcType=VARCHAR},
-      PoliticsStatusID = #{politicsStatusID,jdbcType=INTEGER},
-      Birthplace = #{birthplace,jdbcType=VARCHAR},
-      BirthDay = #{birthDay,jdbcType=TIMESTAMP},
-      FamilyNatureID = #{familyNatureID,jdbcType=INTEGER},
-      CultureRank = #{cultureRank,jdbcType=INTEGER},
-      HealthID = #{healthID,jdbcType=INTEGER},
-      BloodTypeID = #{bloodTypeID,jdbcType=INTEGER},
-      Height = #{height,jdbcType=VARCHAR},
-      Vision = #{vision,jdbcType=VARCHAR},
-      Weight = #{weight,jdbcType=VARCHAR},
-      MaritalStatusID = #{maritalStatusID,jdbcType=INTEGER},
-      ProvinceCode = #{provinceCode,jdbcType=VARCHAR},
-      RegionCode = #{regionCode,jdbcType=VARCHAR},
-      StreetCode = #{streetCode,jdbcType=VARCHAR},
-      UserName = #{userName,jdbcType=VARCHAR},
-      UserMobile = #{userMobile,jdbcType=VARCHAR},
-      Address = #{address,jdbcType=VARCHAR},
-      FamilyAddress = #{familyAddress,jdbcType=VARCHAR},
-      PostalCode = #{postalCode,jdbcType=VARCHAR},
-      Email = #{email,jdbcType=VARCHAR},
-      Hobby = #{hobby,jdbcType=VARCHAR},
-      JobStatusID = #{jobStatusID,jdbcType=INTEGER},
-      KeyPersonTypeID = #{keyPersonTypeID,jdbcType=INTEGER},
-      PersonalSkills = #{personalSkills,jdbcType=VARCHAR},
-      CreateUserID = #{createUserID,jdbcType=VARCHAR},
-      CreateTime = #{createTime,jdbcType=TIMESTAMP},
-      ModifyUserID = #{modifyUserID,jdbcType=VARCHAR},
-      ModifyTime = #{modifyTime,jdbcType=TIMESTAMP},
-      openId = #{openId,jdbcType=VARCHAR}
+        IdentityNumber = #{identityNumber,jdbcType=VARCHAR},
+        Name = #{name,jdbcType=VARCHAR},
+        PyName = #{pyName,jdbcType=VARCHAR},
+        EngName = #{engName,jdbcType=VARCHAR},
+        Sex = #{sex,jdbcType=INTEGER},
+        Nation = #{nation,jdbcType=VARCHAR},
+        PoliticsStatusID = #{politicsStatusID,jdbcType=INTEGER},
+        Birthplace = #{birthplace,jdbcType=VARCHAR},
+        BirthDay = #{birthDay,jdbcType=TIMESTAMP},
+        FamilyNatureID = #{familyNatureID,jdbcType=INTEGER},
+        CultureRank = #{cultureRank,jdbcType=INTEGER},
+        HealthID = #{healthID,jdbcType=INTEGER},
+        BloodTypeID = #{bloodTypeID,jdbcType=INTEGER},
+        Height = #{height,jdbcType=VARCHAR},
+        Vision               = #{vision,jdbcType=VARCHAR},
+        Weight               = #{weight,jdbcType=VARCHAR},
+        MaritalStatusID      = #{maritalStatusID,jdbcType=INTEGER},
+        ProvinceCode         = #{provinceCode,jdbcType=VARCHAR},
+        RegionCode           = #{regionCode,jdbcType=VARCHAR},
+        StreetCode           = #{streetCode,jdbcType=VARCHAR},
+        UserName             = #{userName,jdbcType=VARCHAR},
+        UserMobile           = #{userMobile,jdbcType=VARCHAR},
+        Address              = #{address,jdbcType=VARCHAR},
+        FamilyAddress        = #{familyAddress,jdbcType=VARCHAR},
+        PostalCode           = #{postalCode,jdbcType=VARCHAR},
+        Email                = #{email,jdbcType=VARCHAR},
+        Hobby                = #{hobby,jdbcType=VARCHAR},
+        JobStatusID          = #{jobStatusID,jdbcType=INTEGER},
+        KeyPersonTypeID      = #{keyPersonTypeID,jdbcType=INTEGER},
+        PersonalSkills       = #{personalSkills,jdbcType=VARCHAR},
+        CreateUserID         = #{createUserID,jdbcType=VARCHAR},
+        CreateTime           = #{createTime,jdbcType=TIMESTAMP},
+        ModifyUserID         = #{modifyUserID,jdbcType=VARCHAR},
+        ModifyTime           = #{modifyTime,jdbcType=TIMESTAMP},
+        openId               = #{openId,jdbcType=VARCHAR},
+        SocialSecurityCard   = #{socialSecurityCard,jdbcType=VARCHAR},
+        FinishSchool         = #{finishSchool,jdbcType=VARCHAR},
+        Profession           = #{profession,jdbcType=VARCHAR},
+        NativePlace          = #{nativePlace,jdbcType=VARCHAR},
+        IsFullTime           = #{isFullTime,jdbcType=INTEGER},
+        OccupationalCategory = #{occupationalCategory,jdbcType=INTEGER},
+        OccupationalLevel    = #{occupationalLevel,jdbcType=INTEGER}
     where JobuserID = #{jobuserID,jdbcType=VARCHAR}
   </update>
 </mapper>

+ 145 - 0
src/main/resources/mapping/SysUserDatarangeMapper.xml

@@ -0,0 +1,145 @@
+<?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.SysUserDatarangeMapper">
+  <resultMap id="BaseResultMap" type="com.hz.employmentsite.model.SysUserDatarangeKey">
+    <id column="userId" jdbcType="VARCHAR" property="userId" />
+    <id column="datarangeId" jdbcType="VARCHAR" property="datarangeId" />
+  </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">
+    userId, datarangeId
+  </sql>
+  <select id="selectByExample" parameterType="com.hz.employmentsite.model.SysUserDatarangeExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from sys_user_datarange
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="com.hz.employmentsite.model.SysUserDatarangeKey">
+    delete from sys_user_datarange
+    where userId = #{userId,jdbcType=VARCHAR}
+      and datarangeId = #{datarangeId,jdbcType=VARCHAR}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.hz.employmentsite.model.SysUserDatarangeExample">
+    delete from sys_user_datarange
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.hz.employmentsite.model.SysUserDatarangeKey">
+    insert into sys_user_datarange (userId, datarangeId)
+    values (#{userId,jdbcType=VARCHAR}, #{datarangeId,jdbcType=VARCHAR})
+  </insert>
+  <insert id="insertSelective" parameterType="com.hz.employmentsite.model.SysUserDatarangeKey">
+    insert into sys_user_datarange
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="userId != null">
+        userId,
+      </if>
+      <if test="datarangeId != null">
+        datarangeId,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="userId != null">
+        #{userId,jdbcType=VARCHAR},
+      </if>
+      <if test="datarangeId != null">
+        #{datarangeId,jdbcType=VARCHAR},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.hz.employmentsite.model.SysUserDatarangeExample" resultType="java.lang.Long">
+    select count(*) from sys_user_datarange
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    update sys_user_datarange
+    <set>
+      <if test="row.userId != null">
+        userId = #{row.userId,jdbcType=VARCHAR},
+      </if>
+      <if test="row.datarangeId != null">
+        datarangeId = #{row.datarangeId,jdbcType=VARCHAR},
+      </if>
+    </set>
+    <if test="example != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update sys_user_datarange
+    set userId = #{row.userId,jdbcType=VARCHAR},
+      datarangeId = #{row.datarangeId,jdbcType=VARCHAR}
+    <if test="example != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+</mapper>

+ 4 - 1
src/main/resources/mapping/cquery/InstitutionCQuery.xml

@@ -2,8 +2,11 @@
 <!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.InstitutionCQuery">
     <select id="getList" resultType="com.hz.employmentsite.vo.baseSettings.InstitutionVo">
-        select institution.*,COUNT(inSites.siteInstitutionID)as siteCount from  pc_institution  institution
+        select institution.*,COUNT(inSites.siteInstitutionID)as siteCount, com_type.Name as economicTypeName
+        from pc_institution institution
         left join pc_site_institution inSites on institution.institutionID = inSites.institutionID
+        left join (select * from sys_dictionary_item where DictionaryCode ='CompanyType') com_type on
+        institution.EconomicTypeID = com_type.Value
         where 1 = 1
         <if test="institutionIDList!='' and institutionIDList!=null">
             and institution.institutionID in (${institutionIDList})

+ 6 - 1
src/main/resources/mapping/cquery/JobUserCQuery.xml

@@ -4,7 +4,8 @@
     <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_family.name as familyNatureName,sys_full_time.Name as isFullTimeName, sys_occ_level.Name as
+        occupationalLevelName,
         (select count(*) from pc_recommend recommend where jobuser.JobUserID = recommend.JobuserID and isRead = 1)as
         RecommendedCount
         ,case when jobuser.IdentityNumber is not null and jobuser.IdentityNumber <![CDATA[ <> ]]>'' then
@@ -25,6 +26,10 @@
         jobuser.healthID = sys_health.Value
         left join (select * from sys_dictionary_item where DictionaryCode ='FamilyNature') sys_family on
         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 ='OccupationalLevel') sys_occ_level on
+        jobuser.OccupationalLevel = sys_family.Value
         where 1=1
         <if test="jobUserIDList != '' and jobUserIDList != null">
             and jobuser.jobuserID in (${jobUserIDList})

+ 29 - 3
src/main/resources/mapping/cquery/SysUserCQuery.xml

@@ -12,13 +12,33 @@
     </select>
 
     <select id="selectUserList" resultType="java.util.HashMap">
-        select us.*,dic.Name as UserTypeName ,urole.roleName from sys_user us
-         left join sys_dictionary_item dic on dic.Value = us.UserTypeID and dic.DictionaryCode='UserType'
+        select us.*,dic.Name as UserTypeName ,urole.roleName
+        ,case when us.UserTypeID=3 then userDataRange_Site.dataRangeNames
+              when us.UserTypeID=5 then userDataRange_Region.dataRangeNames
+              else '' end as dataRangeNames
+        ,case when us.UserTypeID=3 then userDataRange_Site.dataRangeIds
+              when us.UserTypeID=5 then userDataRange_Region.dataRangeIds
+              else '' end as dataRangeIds
+        from sys_user us
+        left join sys_dictionary_item dic on dic.Value = us.UserTypeID and dic.DictionaryCode='UserType'
         left join (
             select usr.UserID, group_concat(sr.Name) roleName from sys_user_sys_role usr
             inner join sys_role sr on usr.RoleID = sr.RoleID
             group by usr.UserID
         ) urole on us.UserID=urole.UserID
+        left join (
+            select d.userId,GROUP_CONCAT(a.code) as dataRangeIds,GROUP_CONCAT(a.name) as dataRangeNames
+            from sys_user_datarange d
+            inner join area_code a on d.datarangeId = a.code
+            group by d.userId
+        )userDataRange_Region on us.UserTypeID=5 and us.userId = userDataRange_Region.userId -- 区管理员
+        left join (
+             select su.userId,GROUP_CONCAT(s.SiteID) as dataRangeIds,GROUP_CONCAT(s.SiteName) as dataRangeNames
+             from pc_site s
+             inner join pc_site_user su on s.SiteID = su.SiteID
+             where su.userId is not null
+             group by su.userId
+        )userDataRange_Site on us.UserTypeID=3 and us.userId = userDataRange_Site.userId -- 驿站工作者
         where 1=1
         <if test="name != null and name != ''">
             and us.Name like Concat('%',#{name},'%')
@@ -70,12 +90,18 @@
         select sysUser.UserID from sys_user sysUser where UserID=#{userID})))
     </select>
 
-    <select id="selectUserRegion" resultType="java.lang.String">
+    <!--<select id="selectUserRegion" resultType="java.lang.String">
         select distinct a.code from area_code a
         inner join pc_site s on a.code = s.RegionCode
         inner join pc_site_user su on s.SiteID = su.SiteID
         inner join sys_user us on su.UserID = us.UserID
         where us.UserID = #{userID}
+    </select>-->
+    <select id="selectUserRegion" resultType="java.lang.String">
+        select distinct a.code from sys_user us
+        inner join sys_user_datarange usd on us.UserID = usd.UserID
+        inner join area_code a on usd.datarangeId = a.code
+        where us.UserID = #{userID}
     </select>
 
     <select id="selectUserCity" resultType="java.lang.String">

+ 9 - 0
vue/src/views/baseSettings/institution/detail.vue

@@ -9,6 +9,11 @@
       <a-descriptions-item label="法人姓名">{{ institutionInfo.frName }}</a-descriptions-item>
       <a-descriptions-item label="法人电话">{{ institutionInfo.frMobile }}</a-descriptions-item>
       <a-descriptions-item label="企业机构代码">{{ institutionInfo.companyCode }}</a-descriptions-item>
+      <a-descriptions-item label="注册地行政区划">{{ institutionInfo.signInPoliticalArea }}</a-descriptions-item>
+      <a-descriptions-item label="经济类型">{{ institutionInfo.economicTypeName }}</a-descriptions-item>
+      <a-descriptions-item label="营业执照有效期">
+        {{ institutionInfo.validDate ? dayjs(institutionInfo.validDate).format('YYYY-MM-DD') : '' }}
+      </a-descriptions-item>
     </a-descriptions>
     <a-divider orientation="left">管理驿站 共计:{{ manageSiteList.length }}</a-divider>
     <a-table :columns="manageSitesTabColumns" :data-source="manageSiteList" :scroll="{ x:'100%', y: 200 }"
@@ -26,6 +31,7 @@
 import {onMounted, reactive, ref} from "vue";
 import {getInstitutionByID} from "@/api/baseSettings/institution";
 import {getListByInstitutionID} from "@/api/baseSettings/siteInfo";
+import dayjs from "dayjs";
 
 // 运营机构数据
 const institutionInfo = reactive({
@@ -38,6 +44,9 @@ const institutionInfo = reactive({
   companyCode: "",
   companyDesc: "",
   remark: "",
+  signInPoliticalArea: "",
+  validDate: "",
+  economicTypeName: ""
 })
 
 // 关联驿站表格定义

+ 77 - 5
vue/src/views/baseSettings/institution/edit.vue

@@ -49,8 +49,56 @@
             <a-input v-model:value="dataModel.companyCode" placeholder=""/>
           </a-form-item>
         </a-col>
-        <a-col :span="7"></a-col>
-        <a-col :span="10"></a-col>
+        <a-col :span="7">
+          <a-form-item
+            label="经济类型"
+            :label-col="{ span: 7 }"
+            name="economicTypeID"
+          >
+            <a-select
+              ref="select"
+              style="width: 100%"
+              v-model:value="dataModel.economicTypeID"
+              :options="companyTypeList"
+              :field-names="{ label: 'name', value: 'value' }"
+            >
+            </a-select>
+          </a-form-item>
+        </a-col>
+        <a-col :span="8">
+          <a-form-item
+            label="注册地址行政区划"
+            :label-col="{ span: 8 }"
+            name="signInPoliticalArea"
+          >
+            <a-input v-model:value="dataModel.signInPoliticalArea"></a-input>
+          </a-form-item>
+        </a-col>
+      </a-row>
+      <a-row type="flex">
+        <a-col :span="8">
+          <a-form-item
+            label="营业执照有效期"
+            :label-col="{ span: 8 }"
+            name="validDate"
+          >
+            <a-radio-group v-model:value="showPicker" name="showPicker">
+              <a-radio value="1">至长期</a-radio>
+              <a-radio value="2">
+                <a-date-picker
+                  v-model:value="showDateTime"
+                  picker="date"
+                  value-format="YYYY-MM-DD"
+                  :disabled="showPicker === '1'"
+                />
+              </a-radio>
+            </a-radio-group>
+          </a-form-item>
+        </a-col>
+        <a-col :span="7">
+        </a-col>
+        <a-col :span="8">
+        </a-col>
       </a-row>
       <a-divider orientation="left" v-if="opCategory==2">管理驿站 共计:{{manageSites.length}}</a-divider>
       <!--      <a-row>
@@ -119,8 +167,10 @@ import {useTabsViewStore} from "@/store/modules/tabsView";
 import {getInstitutionByID, saveInstitution} from "@/api/baseSettings/institution";
 import {getSiteList,getListByInstitutionID,getSiteByID} from "@/api/baseSettings/siteInfo";
 import BUploadFile from "@/components/file/uploadFile.vue";
-import {message, TableColumnsType, TableProps} from "ant-design-vue";
+import {message, type SelectProps, TableColumnsType, TableProps} from "ant-design-vue";
 import {getPaginationTotalTitle} from "@/utils/common";
+import {getSysDictionaryList} from "@/api/system/dictionary";
+import dayjs from "dayjs";
 
 interface InstitutionModel {
   dataModel: any;
@@ -173,14 +223,29 @@ export default defineComponent({
 
     const allSites = ref<any>([]);
     const manageSites = ref<any>([]);
+    const showPicker = ref('1');
+    const showDateTime = ref<any>();
+
+    const companyTypeList = ref<SelectProps['options']>();
+
+    const getCompanyTypeList = async function () {
+      const data: any = await getSysDictionaryList("CompanyType");
+      companyTypeList.value = data;
+    }
 
     const loadData = (institutionID: any,operateType:any) => {
       getAllSites();
+      getCompanyTypeList();
       opCategory.value = operateType;
       getInstitutionByID(institutionID).then((result: any) => {
         formData.dataModel = result;
-        //console.log('dataModel',formData.dataModel);
         GetManageSites(formData.dataModel.institutionID);
+        showPicker.value = formData.dataModel.validDate == '2099-12-31T00:00:00.000+08:00' ? '1' : '2';
+        if (showPicker.value === '1') {
+          showDateTime.value = dayjs(new Date().toLocaleDateString().replaceAll("/", "-"));
+        } else {
+          showDateTime.value = formData.dataModel.validDate;
+        }
       });
     }
 
@@ -253,7 +318,11 @@ export default defineComponent({
 
     const onFinish = () => {
       mobileValidate();
-      /*validateSameSite();*/
+      if (showPicker.value === '1') {
+        formData.dataModel.validDate = '2099-12-31T00:00:00.000+08:00';
+      } else {
+        formData.dataModel.validDate = showDateTime.value;
+      }
       if (isAllowCommit.value){
         formData.dataModel.manageSites = manageSites.value;
         saveInstitution(formData.dataModel).then(result => {
@@ -279,6 +348,9 @@ export default defineComponent({
       allSites,
       manageSites,
       isAllowCommit,
+      companyTypeList,
+      showPicker,
+      showDateTime,
       getAllSites,
       GetManageSites,
       /*addSite,

+ 74 - 3
vue/src/views/jobUserManager/jobuser/edit.vue

@@ -98,12 +98,62 @@
           </a-form-item>
         </a-col>
       </a-row>
+      <a-row :gutter="24">
+        <a-col :span="8">
+          <a-form-item
+            label="籍贯"
+            :label-col="{ span: 6 }"
+            name="nativePlace">
+            <a-input v-model:value="dataModel.nativePlace" placeholder=""/>
+          </a-form-item>
+        </a-col>
+        <a-col :span="8">
+        </a-col>
+        <a-col :span="8">
+        </a-col>
+      </a-row>
 
       <a-divider orientation="left">其它信息</a-divider>
+      <a-row :gutter="24">
+        <a-col :span="8">
+          <a-form-item label="社会保障卡号" :label-col="{ span: 6 }" name="socialSecurityCard">
+            <a-input v-model:value="dataModel.socialSecurityCard" placeholder=""/>
+          </a-form-item>
+        </a-col>
+        <a-col :span="8">
+          <a-form-item label="毕业院校" :label-col="{span:6}" name="finishSchool">
+            <a-input v-model:value="dataModel.finishSchool" placeholder=""/>
+          </a-form-item>
+        </a-col>
+        <a-col :span="8">
+          <a-form-item label="专业" :label-col="{ span: 6 }" name="profession">
+            <a-input v-model:value="dataModel.profession" placeholder=""/>
+          </a-form-item>
+        </a-col>
+      </a-row>
+      <a-row :gutter="24">
+        <a-col :span="8">
+          <a-form-item label="是否全日制" :label-col="{ span: 6 }" name="socialSecurityCard">
+            <a-select ref="select" v-model:value="dataModel.isFullTime" :options="isFullTimeList"
+                      :field-names="{ label: 'name', value: 'value' }" :allow-clear="false"></a-select>
+          </a-form-item>
+        </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-form-item>
+        </a-col>
+        <a-col :span="8">
+          <a-form-item label="职业资格等级" :label-col="{ span: 6 }" name="profession">
+            <a-select ref="select" v-model:value="dataModel.occupationalLevel" :options="occupationalLevelList"
+                      :field-names="{ label: 'name', value: 'value' }" :allow-clear="false"></a-select>
+          </a-form-item>
+        </a-col>
+      </a-row>
       <a-row :gutter="24">
         <a-col :span="8">
           <a-form-item label="民族" :label-col="{ span: 6 }"  name="nation">
-            <!--            <a-input v-model:value="dataModel.nation" placeholder=""/>-->
             <a-select
               ref="select"
               v-model:value="dataModel.nation"
@@ -154,7 +204,7 @@
           </a-form-item>
         </a-col>
         <a-col :span="8">
-          <a-form-item label="文化程度" :label-col="{span:6}" name="cultureRank">
+          <a-form-item label="最高学历" :label-col="{span:6}" name="cultureRank">
             <a-select
               ref="select"
               v-model:value="dataModel.cultureRank"
@@ -486,6 +536,9 @@ export default defineComponent(
       const streetList = ref<SelectProps['options']>();
       const familyNatureList = ref<SelectProps['options']>();
       const nationList = ref<SelectProps['options']>();
+      const isFullTimeList = ref<SelectProps["options"]>();
+      const occupationalCategoryList = ref<SelectProps["options"]>();
+      const occupationalLevelList = ref<SelectProps["options"]>();
 
       const educationData = ref([]);
       const educationColumns: TableColumnsType = [
@@ -620,6 +673,18 @@ export default defineComponent(
           politicsStatusList.value = data;
         });
       };
+      const getIsFullTimeList = async function () {
+        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;
+      }
 
 
       get('system/area/getCityList', {}).then(data => {
@@ -749,6 +814,9 @@ export default defineComponent(
         getKeyPersonTypeList();
         getMaritalStatusList();
         getPoliticsStatusList();
+        getIsFullTimeList()
+        getOccupationalCategoryList()
+        getOccupationalLevelList()
         getInfo().then((loginUserInfo:any)=>{
           getDataById(id,loginUserInfo.userID).then(data => {
             formState.dataModel = data;
@@ -794,7 +862,10 @@ export default defineComponent(
         addExperience,
         experienceColumns,
         educationColumns,
-        nationList
+        nationList,
+        isFullTimeList,
+        occupationalCategoryList,
+        occupationalLevelList,
       }
     },
     created() {

+ 183 - 97
vue/src/views/system/users/addUser.vue

@@ -2,127 +2,213 @@
   <!--
       cancel-text="取消"
       :ok-button-props="{ style: { display: 'none' } }"-->
-  <a-modal :width="1000" v-model:visible="visible"
-            title="新增用户" :closable="false" :keyboard="false"
-            :mask-closable="false" ok-text="提交" @ok="onCommit">
+  <a-modal
+    v-model:visible="visible"
+    :width="800"
+    title="新增用户"
+    :closable="false"
+    :keyboard="false"
+    :mask-closable="false"
+    ok-text="提交"
+    @ok="onCommit"
+  >
     <div class="modal-search">
-      <a-form ref="formRef" name="advanced_search" class="ant-advanced-search-form" :model="dataModel" autocomplete="off">
+      <a-form
+        ref="formRef"
+        name="advanced_search"
+        class="ant-advanced-search-form"
+        :model="dataModel"
+        autocomplete="off"
+      >
         <a-row type="flex" :gutter="24">
-          <a-col :span="8">
-            <a-form-item label="用户名" :label-col="{ span: 6 }" name="name" :rules="[{ required: true, message: '请输入用户名!' }]" >
-              <a-input v-model:value="dataModel.name" placeholder=""/>
+          <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"
+                @change="userTypeChange"
+              ></a-select>
             </a-form-item>
           </a-col>
-          <a-col :span="8">
-            <a-form-item label="账号" :label-col="{ span: 6 }" name="loginID" :rules="[{ required: true, message: '请输入用户账号!' }]" >
-              <a-input v-model:value="dataModel.loginID" placeholder="" ></a-input>
+          <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-col :span="8">
-            <a-form-item label="密码" :label-col="{span:6}" name="password" :rules="[{ required: true, message: '请输入密码!' }]">
-<!--              type="password"-->
-              <a-input  v-model:value="dataModel.password" placeholder="" ></a-input>
+        </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: '请输入用户账号!' }]"
+            >
+              <a-input v-model:value="dataModel.loginID" placeholder=""></a-input>
             </a-form-item>
           </a-col>
         </a-row>
         <a-row :gutter="24">
-          <a-col :span="8">
-            <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" ></a-select>
+          <a-col :span="12">
+            <a-form-item
+              label="密码"
+              :label-col="{ span: 6 }"
+              name="password"
+              :rules="[{ required: true, message: '请输入密码!' }]"
+            >
+              <!--              type="password"-->
+              <a-input v-model:value="dataModel.password" placeholder=""></a-input>
             </a-form-item>
           </a-col>
-          <a-col :span="8">
-            <a-form-item label="状态" :label-col="{ span: 6 }" name="recordStatus"  :rules="[{ required: true, message: '请选择状态!' }]" >
-              <a-select ref="select" v-model:value="dataModel.recordStatus"
-                        :options="statusList" :field-names="{ label: 'name', value: 'value' }"
-                        :allow-clear="true" ></a-select>
+          <a-col :span="12">
+            <a-form-item
+              label="状态"
+              :label-col="{ span: 6 }"
+              name="recordStatus"
+              :rules="[{ required: true, message: '请选择状态!' }]"
+            >
+              <a-select
+                ref="select"
+                v-model:value="dataModel.recordStatus"
+                :options="statusList"
+                :field-names="{ label: 'name', value: 'value' }"
+                :allow-clear="true"
+              ></a-select>
             </a-form-item>
           </a-col>
-          <a-col :span="8">
-
-          </a-col>
         </a-row>
       </a-form>
     </div>
   </a-modal>
 </template>
 <script lang="ts">
-import {defineComponent, reactive, ref, toRefs} from "vue";
-import type {FormInstance, SelectProps} from 'ant-design-vue';
-import {getUserByID,saveSysUser} from '@/api/system/user';
-import {getSysDictionaryList} from "@/api/system/dictionary"
-import {message} from "ant-design-vue";
+  import { defineComponent, reactive, ref, toRefs } from 'vue';
+  import { message } from 'ant-design-vue';
+  import type { FormInstance, SelectProps } from 'ant-design-vue';
+  import { getUserByID, saveSysUser } from '@/api/system/user';
+  import { getSysDictionaryList } from '@/api/system/dictionary';
+  import { getRegionCodeList } from '@/api/system/area/index';
 
-interface userModel {
-  dataModel: any;
-}
-export default defineComponent({
-  props: {
-    loadData: {
-      type: Function,
-      default: null
-    }
-  },
-  setup() {
-    const visible = ref<boolean>(false);
-    const isAllowCommit = ref<boolean>(true);
-    const modalFormRef = ref<FormInstance>();
-    const userTypeList = ref<SelectProps['options']>();
-    const statusList = ref([{name:"启用",value:1},{name:"禁用",value:0}]);
-    const formData = reactive<userModel>({dataModel: {}});
-    const formState = reactive({
-      total: 0,
-      selectedRowKeys: [],
-      loading: false
-    });
+  interface userModel {
+    dataModel: any;
+  }
 
-    const getUserTypeList = async function (){
-      const userTypeResult = await getSysDictionaryList("UserType");
-      userTypeList.value = userTypeResult;
-    }
+  export default defineComponent({
+    props: {
+      loadData: {
+        type: Function,
+        default: null,
+      },
+    },
+    setup() {
+      const visible = ref<boolean>(false);
+      const isAllowCommit = ref<boolean>(true);
+      const modalFormRef = ref<FormInstance>();
+      const userTypeList = ref<SelectProps['options']>();
+      const statusList = ref([
+        { name: '启用', value: 1 },
+        { name: '禁用', value: 0 },
+      ]);
+      const formData = reactive<userModel>({ dataModel: {} });
+      const formState = reactive({
+        total: 0,
+        selectedRowKeys: [],
+        loading: false,
+      });
+      const regionList = ref<SelectProps['options']>();
 
-    const show = async function () {
-      formState.loading = true;
-      await getUserTypeList();
-      const reqData = await getUserByID("");
-      formData.dataModel = reqData;
-      console.log("dataModel",formData.dataModel);
-      formState.loading = false;
-      visible.value = true;
-    };
+      const getUserTypeList = async function () {
+        const userTypeResult = await getSysDictionaryList('UserType');
+        userTypeList.value = userTypeResult;
+      };
 
-    const onCommit = async function (){
-      isAllowCommit.value = true;
-      if(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 (isAllowCommit.value){
-        saveSysUser(formData.dataModel).then(result => {
-          if (result) {
-            visible.value = false;
-          }
-        });
-      }
-    };
+      const show = async function () {
+        formState.loading = true;
+        await getUserTypeList();
+        await getRegionList();
+        const reqData = await getUserByID('');
+        formData.dataModel = reqData;
+        console.log('dataModel', formData.dataModel);
+        formState.loading = false;
+        visible.value = true;
+      };
 
-    return {
-      ...toRefs(formData),
-      visible,
-      modalFormRef,
-      show,
-      onCommit,
-      formState,
-      statusList,
-      userTypeList,
-    };
-  },
-  created() {
+      const onCommit = async function () {
+        isAllowCommit.value = true;
+        if (
+          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 (isAllowCommit.value) {
+          //多选时不需要转类型
+          formData.dataModel.datarangeIdList = [formData.dataModel.datarangeIds];
 
-  },
-})
-</script>
+          saveSysUser(formData.dataModel).then((result) => {
+            if (result) {
+              visible.value = false;
+            }
+          });
+        }
+      };
+
+      const getRegionList = async function () {
+        const regionResult: any = await getRegionCodeList();
+        regionList.value = regionResult;
+      };
 
+      const userTypeChange = () => {
+        formData.dataModel.datarangeIds = null;
+        formData.dataModel.datarangeIdList = null;
+      };
+
+      return {
+        ...toRefs(formData),
+        visible,
+        modalFormRef,
+        show,
+        onCommit,
+        formState,
+        statusList,
+        userTypeList,
+        regionList,
+        userTypeChange,
+      };
+    },
+    created() {},
+  });
+</script>

+ 184 - 138
vue/src/views/system/users/index.vue

@@ -8,52 +8,80 @@
     >
       <a-row :gutter="24">
         <a-col :span="6">
-          <a-form-item label="用户名" :label-col="{span:8}" name="name">
-            <a-input v-model:value="searchParamsState.name" placeholder=""/>
+          <a-form-item label="用户名" :label-col="{ span: 8 }" name="name">
+            <a-input v-model:value="searchParamsState.name" placeholder="" />
           </a-form-item>
         </a-col>
         <a-col :span="6">
-          <a-form-item label="帐号" :label-col="{span:8}" name="loginID">
-            <a-input v-model:value="searchParamsState.loginID" placeholder=""/>
+          <a-form-item label="帐号" :label-col="{ span: 8 }" name="loginID">
+            <a-input v-model:value="searchParamsState.loginID" placeholder="" />
           </a-form-item>
         </a-col>
         <a-col :span="6">
-          <a-form-item label="用户类型" :label-col="{span:8}" name="userType">
+          <a-form-item label="用户类型" :label-col="{ span: 8 }" name="userType">
             <a-select
               ref="select"
               v-model:value="searchParamsState.userType"
               :options="userTypeList"
-              :field-names="{label:'name',value:'value'}"
-              @change="loadData"
+              :field-names="{ label: 'name', value: 'value' }"
               :allow-clear="true"
+              @change="loadData"
             >
             </a-select>
           </a-form-item>
         </a-col>
         <a-col :span="6" style="text-align: left">
           <a-button type="primary" html-type="submit" @click="onFinish">查询</a-button>
-          <a-button style="margin: 0 8px" @click="() => {formRef.resetFields();loadData()}">重置</a-button>
+          <a-button
+            style="margin: 0 8px"
+            @click="
+              () => {
+                formRef.resetFields();
+                loadData();
+              }
+            "
+            >重置</a-button
+          >
         </a-col>
       </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>
+          <a-button type="primary" html-type="submit" functioncode="T0199010105" @click="onAdd"
+            >新增</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.UserID"
-               bordered>
+      <a-table
+        :columns="columns"
+        :data-source="dataList"
+        :scroll="{ x: '100%', y: 500 }"
+        :pagination="pagination"
+        :loading="formState.loading"
+        :row-selection="{ selectedRowKeys: formState.selectedRowKeys, onChange: onSelectChange }"
+        :row-key="(record) => record.UserID"
+        bordered
+        @change="handleTableChange"
+      >
         <template #bodyCell="{ column, text, record }">
           <template v-if="column.key === 'operation'">
             <div class="table-operation">
-              <a-button type="link" @click="onUpdateUserStatus(record.UserID,1)" functioncode="T0199010102">启用</a-button>
-              <a-button type="link" @click="onUpdateUserStatus(record.UserID,0)" functioncode="T0199010103">禁用</a-button>
-              <a-button type="link" @click="onUpdatePassword(record)" functioncode="T0199010104">修改密码</a-button>
+              <a-button
+                type="link"
+                functioncode="T0199010102"
+                @click="onUpdateUserStatus(record.UserID, 1)"
+                >启用</a-button
+              >
+              <a-button
+                type="link"
+                functioncode="T0199010103"
+                @click="onUpdateUserStatus(record.UserID, 0)"
+                >禁用</a-button
+              >
+              <a-button type="link" functioncode="T0199010104" @click="onUpdatePassword(record)"
+                >修改密码</a-button
+              >
             </div>
           </template>
         </template>
@@ -65,137 +93,155 @@
 </template>
 
 <script lang="ts">
-import {reactive, ref, computed, defineComponent} from 'vue';
-import type {FormInstance} from 'ant-design-vue';
-import type {TableColumnsType, TableProps, SelectProps} from 'ant-design-vue';
-import {getUserListPage, updateUserStatus} from '@/api/system/user'
-import {getSysDictionaryList} from "@/api/system/dictionary";
-import UpdatePassword from '@/views/system/users/updatePassword.vue';
-import UserAdd from '@/views/system/users/addUser.vue';
-import {getPaginationTotalTitle} from "@/utils/common";
+  import { reactive, ref, computed, defineComponent } from 'vue';
+  import type { FormInstance, TableColumnsType, TableProps, SelectProps } from 'ant-design-vue';
+  import { getUserListPage, updateUserStatus } from '@/api/system/user';
+  import { getSysDictionaryList } from '@/api/system/dictionary';
+  import UpdatePassword from '@/views/system/users/updatePassword.vue';
+  import UserAdd from '@/views/system/users/addUser.vue';
+  import { getPaginationTotalTitle } from '@/utils/common';
 
-export default defineComponent({
-  name: 'UserList',
-  components: { UpdatePassword,UserAdd},
-  setup() {
-    const modalRoleUserRef = ref();
-    const modalRoleEditRef = ref();
-    const formRef = ref<FormInstance>();
-    const searchParamsState = reactive({page: 1, limit: 20, name: '',loginID:'', userType: ''});
-    const formState = reactive({
-      total: 0,
-      selectedRowKeys: [],
-      loading: false
-    });
-    const columns: TableColumnsType = [
-      {
-        title: '序号',
-        align: 'center',
-        width: 80,
-        key: 'roleID',
-        customRender: item => `${searchParamsState.limit * (searchParamsState.page - 1) + item.index + 1}`
-      },
-      {title: '用户名', dataIndex: 'Name', key: 'Name', width: 150},
-      {title: '帐号', dataIndex: 'LoginID', key: 'LoginID', width: 150},
-      {title: '用户类型', dataIndex: 'UserTypeName', key: 'UserTypeName', width: 150},
-      {title: '角色', dataIndex: 'roleName', key: 'roleName',},
-      {
-        title: '账号状态', dataIndex: 'RecordStatus', key: 'RecordStatus', width: 150, customRender: ({record}) => (
-          record.RecordStatus == 1 ? "正常" : "禁用"
-        )
-      },
-      {title: '操作', key: 'operation', width: 250, align: "center"},
-    ];
-    const pagination = computed(() => ({
-      total: formState.total,
-      current: searchParamsState.page,
-      pageSize: searchParamsState.limit,
-      showSizeChanger: true,
-      showTotal: total => getPaginationTotalTitle(total)
-    }));
+  export default defineComponent({
+    name: 'UserList',
+    components: { UpdatePassword, UserAdd },
+    setup() {
+      const modalRoleUserRef = ref();
+      const modalRoleEditRef = ref();
+      const formRef = ref<FormInstance>();
+      const searchParamsState = reactive({
+        page: 1,
+        limit: 20,
+        name: '',
+        loginID: '',
+        userType: '',
+      });
+      const formState = reactive({
+        total: 0,
+        selectedRowKeys: [],
+        loading: false,
+      });
+      const columns: TableColumnsType = [
+        {
+          title: '序号',
+          align: 'center',
+          width: 80,
+          key: 'roleID',
+          customRender: (item) =>
+            `${searchParamsState.limit * (searchParamsState.page - 1) + item.index + 1}`,
+        },
+        { title: '用户名', dataIndex: 'Name', key: 'Name', width: 150 },
+        { title: '帐号', dataIndex: 'LoginID', key: 'LoginID', width: 150 },
+        {
+          title: '用户类型',
+          dataIndex: 'UserTypeName',
+          key: 'UserTypeName',
+          width: 150,
+        },
+        {
+          title: '所属区县/驿站',
+          dataIndex: 'dataRangeNames',
+          key: 'dataRangeNames',
+          width: 150,
+        },
+        { title: '角色', dataIndex: 'roleName', key: 'roleName' },
+        {
+          title: '账号状态',
+          dataIndex: 'RecordStatus',
+          key: 'RecordStatus',
+          width: 150,
+          customRender: ({ record }) => (record.RecordStatus == 1 ? '正常' : '禁用'),
+        },
+        { title: '操作', key: 'operation', width: 250, align: 'center' },
+      ];
+      const pagination = computed(() => ({
+        total: formState.total,
+        current: searchParamsState.page,
+        pageSize: searchParamsState.limit,
+        showSizeChanger: true,
+        showTotal: (total) => getPaginationTotalTitle(total),
+      }));
 
-    const dataList = ref([]);
-    const userTypeList = ref<SelectProps['options']>();
-    const updatePasswordRef = ref();
-    const userAddRef = ref();
+      const dataList = ref([]);
+      const userTypeList = ref<SelectProps['options']>();
+      const updatePasswordRef = ref();
+      const userAddRef = ref();
 
-    const onSelectChange = (selectedRowKeys: any) => {
-      formState.selectedRowKeys = selectedRowKeys;
-    };
+      const onSelectChange = (selectedRowKeys: any) => {
+        formState.selectedRowKeys = selectedRowKeys;
+      };
 
-    const handleTableChange: TableProps['onChange'] = (
-      pag: { pageSize: number; current: number }
-    ) => {
-      searchParamsState.page = pag.current;
-      searchParamsState.limit = pag.pageSize;
-      loadData();
-    };
+      const handleTableChange: TableProps['onChange'] = (pag: {
+        pageSize: number;
+        current: number;
+      }) => {
+        searchParamsState.page = pag.current;
+        searchParamsState.limit = pag.pageSize;
+        loadData();
+      };
 
-    const onFinish = () => {
-      loadData();
-    }
+      const onFinish = () => {
+        loadData();
+      };
 
-    const onAdd = ()=>{
-      userAddRef.value.show();
-      loadData();
-    }
+      const onAdd = () => {
+        userAddRef.value.show();
+        loadData();
+      };
 
-    const onUpdateUserStatus = async function (userID, status) {
-      await updateUserStatus({userId: userID, status: status});
-      await loadData();
-    }
+      const onUpdateUserStatus = async function (userID, status) {
+        await updateUserStatus({ userId: userID, status });
+        await loadData();
+      };
 
-    const onUpdatePassword = (item) => {
-      updatePasswordRef.value.show(item.UserID,item.Name,item.LoginID);
-    };
+      const onUpdatePassword = (item) => {
+        updatePasswordRef.value.show(item.UserID, item.Name, item.LoginID);
+      };
 
-    const loadData = async function () {
-      formState.loading = true;
-      const result: any = await getUserListPage(searchParamsState);
-      dataList.value = result.list;
-      console.log("dataList",dataList.value);
-      formState.total = result.total;
-      formState.loading = false;
-    }
+      const loadData = async function () {
+        formState.loading = true;
+        const result: any = await getUserListPage(searchParamsState);
+        dataList.value = result.list;
+        console.log('dataList', dataList.value);
+        formState.total = result.total;
+        formState.loading = false;
+      };
 
-    const loadUserTypeList = () => {
-      getSysDictionaryList("UserType").then(data => {
-        userTypeList.value = data;
-      });
-    }
+      const loadUserTypeList = () => {
+        getSysDictionaryList('UserType').then((data) => {
+          userTypeList.value = data;
+        });
+      };
 
-    return {
-      modalRoleUserRef,
-      modalRoleEditRef,
-      formRef,
-      loadData,
-      loadUserTypeList,
-      searchParamsState,
-      formState,
-      columns,
-      pagination,
-      dataList,
-      userTypeList,
-      onSelectChange,
-      handleTableChange,
-      onAdd,
-      onFinish,
-      onUpdateUserStatus,
-      onUpdatePassword,
-      updatePasswordRef,
-      userAddRef
-    };
-  },
-  created() {
-    this.loadData();
-    this.loadUserTypeList();
-  },
-  activated() {
-    if (history.state.params?.reload)
+      return {
+        modalRoleUserRef,
+        modalRoleEditRef,
+        formRef,
+        loadData,
+        loadUserTypeList,
+        searchParamsState,
+        formState,
+        columns,
+        pagination,
+        dataList,
+        userTypeList,
+        onSelectChange,
+        handleTableChange,
+        onAdd,
+        onFinish,
+        onUpdateUserStatus,
+        onUpdatePassword,
+        updatePasswordRef,
+        userAddRef,
+      };
+    },
+    created() {
       this.loadData();
-  }
-});
+      this.loadUserTypeList();
+    },
+    activated() {
+      if (history.state.params?.reload) this.loadData();
+    },
+  });
 </script>
 
-<style lang="less" scoped>
-</style>
+<style lang="less" scoped></style>