Browse Source

web-企业服务管理bug处理

liao-sea 10 months ago
parent
commit
3f7bedf2a6

+ 13 - 1
doc/待更新脚本

@@ -106,4 +106,16 @@ insert sys_dictionary_item values(UUID(),'','NationType',56,'基诺族',56,1,1);
 
 -- 2024.4.17
 alter table pc_site_user add UserNo varchar(50) comment '工号';
-alter table pc_site_user add IDCard varchar(100) comment '身份证号';
+alter table pc_site_user add IDCard varchar(100) comment '身份证号';
+
+--2024.4.18
+insert into sys_dictionary values('CompanyType','企业类型',53,1);
+INSERT into sys_dictionary_item (`DictionaryItemID`, `Code`, `DictionaryCode`, `Value`, `Name`, `OrderNo`, `RecordStatus`, `IsEditable`)
+VALUES
+(UUID(), '', 'CompanyType', 1, '国有企业', 1, 1, 0),
+(UUID(), '', 'CompanyType', 2, '联营企业', 2, 1, 0),
+(UUID(), '', 'CompanyType', 3, '有限责任公司', 3, 1, 0),
+(UUID(), '', 'CompanyType', 4, '股份有限公司', 4, 1, 0),
+(UUID(), '', 'CompanyType', 5, '私营企业', 5, 1, 0),
+(UUID(), '', 'CompanyType', 6, '中外合资企业', 6, 1, 0),
+(UUID(), '', 'CompanyType', 7, '外资企业', 7, 1, 0)

+ 2 - 2
src/main/java/com/hz/employmentsite/controller/companyService/CompanyController.java

@@ -122,8 +122,8 @@ public class CompanyController {
                 row.add(item.streetName);
                 row.add(item.companyCode);
                 row.add(recordName);
-                row.add("");
-                row.add(item.companyModel);
+                row.add(item.insuredCount);
+                row.add(item.companyModelType);
                 row.add(item.postCount);
                 row.add(item.createUserName);
                 row.add(dateUtils.dateToStr(item.createTime));

+ 1 - 1
src/main/java/com/hz/employmentsite/controller/companyService/PostController.java

@@ -134,7 +134,7 @@ public class PostController {
                 List<Object> row = new ArrayList();
                 ++i;
                 row.add(i);
-                row.add(item.postName);
+                row.add(item.professionName);
                 row.add(item.recruitCount);
                 row.add(dateUtils.dateToStr(item.startTime));
                 row.add(dateUtils.dateToStr(item.endTime));

+ 26 - 0
src/main/java/com/hz/employmentsite/services/impl/companyService/CompanyServiceImpl.java

@@ -65,6 +65,19 @@ public class CompanyServiceImpl implements CompanyService {
         return pcCompanyMapper.selectByExample(exp);
     }
 
+    private int ifHadRepeatData(CompanyVo data){
+        var result = 0;
+        PcCompanyExample companyExp1 = new PcCompanyExample();
+        companyExp1.or().andCompanyNameEqualTo(data.getCompanyName()).andCompanyIDNotEqualTo(data.getCompanyID());
+        var ifRepeatName = pcCompanyMapper.selectByExample(companyExp1).size()>0;
+        PcCompanyExample companyExp2 = new PcCompanyExample();
+        companyExp2.or().andCompanyCodeEqualTo(data.getCompanyCode()).andCompanyIDNotEqualTo(data.getCompanyID());
+        var ifRepeatCode = pcCompanyMapper.selectByExample(companyExp2).size()>0;
+        result += ifRepeatName? 1:0;
+        result += ifRepeatCode? 2:0;
+        return result;
+    }
+
     @Override
     public Integer save(CompanyVo data, String userId) {
         Integer result = 0;
@@ -76,7 +89,20 @@ public class CompanyServiceImpl implements CompanyService {
             cro.andCompanyIDEqualTo(data.getCompanyID());
             dbData = pcCompanyMapper.selectByExampleWithBLOBs(exp).stream().findFirst().orElse(null);
         }
+        var repeatResult = ifHadRepeatData(data);
+        switch (repeatResult){
+            default:
+            case 0:
+                break;
+            case 1:
+                throw new  BaseException("1004","企业名称已存在!");
+            case 2:
+                throw new  BaseException("1004","统一社会信用代码已存在!");
+            case 3:
+                throw new  BaseException("1004","信用代码、企业名称重复!");
+        }
         if (dbData == null) {
+            exp = new PcCompanyExample();
             dbData = new PcCompanyWithBLOBs();
 //            dbData.setCompanyID(UUID.randomUUID().toString());
             dbData.setCompanyID(data.getCompanyID());

+ 5 - 5
src/main/resources/mapping/cquery/CompanyCQuery.xml

@@ -15,22 +15,22 @@
         left join pc_institution institution on inSites.institutionID = institution.InstitutionID
         where 1=1
         <if test="companyIDList!='' and companyIDList!=null">
-            and companyID in (${companyIDList})
+            and company.companyID in (${companyIDList})
         </if>
         <if test="companyName!='' and companyName!=null">
-            and companyName like Concat('%',#{companyName},'%')
+            and company.companyName like Concat('%',#{companyName},'%')
         </if>
         <if test="companyCode!='' and companyCode!=null">
-            and companyCode like Concat('%',#{companyCode},'%')
+            and company.companyCode like Concat('%',#{companyCode},'%')
         </if>
         <if test="recordStatus!='' and recordStatus!=null">
             and company.RecordStatus = #{recordStatus}
         </if>
         <if test="regionCode!='' and regionCode!=null">
-            and regionCode like Concat('%',#{regionCode},'%')
+            and company.regionCode like Concat('%',#{regionCode},'%')
         </if>
         <if test="streetCode!='' and regionCode!=null">
-            and streetCode like Concat('%',#{streetCode},'%')
+            and company.streetCode like Concat('%',#{streetCode},'%')
         </if>
         order by company.CreateTime desc,postCount desc
     </select>

+ 1 - 1
src/main/resources/mapping/cquery/PostCQuery.xml

@@ -32,7 +32,7 @@
                 and company.CompanyName like Concat('%',#{companyName},'%')
             </if>
             <if test="RecordStatus != null and RecordStatus != ''">
-                and pro.RecordStatus = #{RecordStatus}
+                and post.RecordStatus = #{RecordStatus}
             </if>
             <if test="WorkName != null and WorkName != ''">
                 and post.WorkName like Concat('%', #{WorkName},'%')

+ 15 - 8
vue/src/views/companyService/company/edit.vue

@@ -178,8 +178,8 @@
             <a-select
               ref="select"
               v-model:value="dataModel.companyType"
-              :options="companyCategoryList"
-              :field-names="{ label: 'name', value: 'value' }"
+              :options="companyTypeList"
+              :field-names="{ label: 'name', value: 'name' }"
             >
             </a-select>
           </a-form-item>
@@ -327,7 +327,7 @@ export default defineComponent(
 
       const regionList = ref<SelectProps['options']>();
       const streetList = ref<SelectProps['options']>();
-      const companyCategoryList = ref<SelectProps['options']>();
+      const companyTypeList = ref<SelectProps['options']>();
       const companyModelList = ref<SelectProps['options']>();
       const fullPath = router.currentRoute.value.fullPath;
 
@@ -360,6 +360,12 @@ export default defineComponent(
         // console.log("companyModelList", companyModelList.value);
       }
 
+      const getCompanyTypeList = async function () {
+        const data: any = await getSysDictionaryList("CompanyType");
+        companyTypeList.value = data;
+        // console.log("companyCategoryList", companyCategoryList.value);
+      }
+
       const siteChange = async function () {
         const curSiteData: any = await getSiteByID(formState.dataModel.siteID);
         formState.dataModel.regionCode = curSiteData.regionCode;
@@ -374,9 +380,7 @@ export default defineComponent(
       }
 
       const companyCodeValidate = ()=>{
-        isAllowCommit.value = true;
         const codeReg = /^[0-9A-Z]+$/;
-        console.log(formState.dataModel.companyCode);
         if(formState.dataModel.companyCode.length != 18 || !codeReg.test(formState.dataModel.companyCode)){
           message.error("输入的信用代码有误!");
           isAllowCommit.value = false;
@@ -415,7 +419,7 @@ export default defineComponent(
         }
         const emailReg = /^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/;
         // 这里由于邮箱非必填所以先判断是否填写了邮箱
-        if(formState.dataModel.companyEmail.trim()!==""){
+        if(formState.dataModel.companyEmail!=null&&formState.dataModel.companyEmail.trim()!=''){
           if(!emailReg.test(formState.dataModel.companyEmail)){
             message.error("输入的企业邮箱有误!");
             isAllowCommit.value = false;
@@ -424,7 +428,8 @@ export default defineComponent(
       };
 
       const onFinish = () => {
-        // console.log(showPicker.value);
+        isAllowCommit.value = true;
+        console.log(showPicker.value);
         if (showPicker.value === '1') {
           formState.dataModel.validDate = '2099-12-31T00:00:00.000+08:00';
         }
@@ -433,6 +438,7 @@ export default defineComponent(
         };
         companyCodeValidate();
         inputDataValidate();
+        console.log("isAllowCommit",isAllowCommit.value);
         if(isAllowCommit.value){
           save(formState.dataModel).then(result => {
             if (result) {
@@ -447,6 +453,7 @@ export default defineComponent(
         getAllSites();
         getRegionList();
         getCompanyModelList();
+        getCompanyTypeList();
         getCompanyById(id).then(result => {
           formState.dataModel = result;
           // console.log("curDataModel",formState.dataModel);
@@ -468,7 +475,7 @@ export default defineComponent(
         siteList,
         regionList,
         streetList,
-        companyCategoryList,
+        companyTypeList,
         companyModelList,
         companyStatusList,
         showDateTime,

+ 24 - 12
vue/src/views/companyService/post/edit.vue

@@ -183,7 +183,7 @@
 </template>
 
 <script lang="ts">
-import {defineComponent, reactive, ref, toRefs} from 'vue';
+import {defineComponent, reactive, ref, toRefs, watch} from 'vue';
 import {useRouter} from 'vue-router';
 import {savePost, getPostByID} from '@/api/companyService/post';
 import type {CascaderProps,SelectProps} from 'ant-design-vue';
@@ -243,7 +243,7 @@ export default defineComponent(
                 };
               });
             });
-            postCompany.dataModel.professionID = null;
+            postCompany.dataModel.hasProfession = false;
           } else if (targetOption.tag == "secondLevel") {
             get("profession/getListByParentProfessionID",{parentProfessionID:targetOption.value}).then(data => {
               targetOption.loading = false;
@@ -251,22 +251,34 @@ export default defineComponent(
                 return {
                   label: x.name,
                   value: x.code,
-                  isLeaf: false,
+                  isLeaf: true,
                   tag: 'thirdLevel'
                 };
               });
             });
-            postCompany.dataModel.professionID = null;
-          }else if (targetOption.tag == "thirdLevel") {
-            targetOption.loading = false;
-            targetOption.children = [];
-            postCompany.dataModel.professionID = targetOption.value;
-            postCompany.dataModel.postName = targetOption.label;
-            //console.log("xx",postCompany.dataModel);
+            postCompany.dataModel.hasProfession = false;
           }
+          // else if (targetOption.tag == "thirdLevel") {
+          //   targetOption.children = null;
+          //   postCompany.dataModel.professionID = targetOption.value;
+          //   postCompany.dataModel.postName = targetOption.label;
+          //   postCompany.dataModel.hasProfession = true;
+          //   //console.log("xx",postCompany.dataModel);
+          // }
         }
       };
 
+      watch(() => postCompany.dataModel.professionName, (selectedValues) => {
+        console.log("dd",selectedValues);
+        if (selectedValues && selectedValues.length == 3) {
+          postCompany.dataModel.professionID = selectedValues[2];
+          postCompany.dataModel.hasProfession = true;
+        } else {
+          postCompany.dataModel.professionID = '';
+          postCompany.dataModel.hasProfession = false;
+        }
+      });
+
       get('system/dictionary/getDictionaryItemByCodeList', {code: 'CultureLevel'}).then(result => {
         cultureLevelList.value = result;
       });
@@ -286,11 +298,11 @@ export default defineComponent(
       };
 
       const onFinish = () => {
-        if(postCompany.dataModel.professionID==null){
+        if(!postCompany.dataModel.hasProfession){
           message.error("请选择完整的岗位信息!")
         }else{
           postCompany.dataModel.professionName=null;
-          //console.log("当前岗位信息",postCompany.dataModel);
+          console.log("当前岗位信息",postCompany.dataModel);
           savePost(postCompany.dataModel).then((result) => {
             if (result) {
               tabsViewStore.closeCurrentTab(fullpath);

+ 3 - 3
vue/src/views/companyService/post/index.vue

@@ -94,7 +94,7 @@
                bordered>
         <template #bodyCell="{ column, text, record }">
           <template v-if="column.key === 'recommendNum'">
-            <div class="table-operation">
+            <div>
               <a-button type="link" size="small" @click='onRecommendInfo(record)'>{{record.recommendNum}}</a-button>
             </div>
           </template>
@@ -204,7 +204,7 @@ export default defineComponent({
           return item.record.recordStatus == 1 ? "启用" : "停用";
         }
       },
-      {title: '工种名称', dataIndex: 'workName', key: 'workName', align: "center"},
+      // {title: '工种名称', dataIndex: 'workName', key: 'workName', align: "center"},
       {title: '文化程度', dataIndex: 'cultureLevelName', key: 'cultureLevelName', width: 150, align: "center"},
       {
         title: '薪酬', dataIndex: 'postSalary', key: 'postSalary', align: "center", customRender: (item) => {
@@ -214,7 +214,7 @@ export default defineComponent({
       },
       {title: '联系人', dataIndex: 'userName', key: 'userName', align: "center"},
       {title: '联系电话', dataIndex: 'userMobile', key: 'userMobile', width: 200, align: "center"},
-      {title: '推荐数量', key: 'recommendNum', align: "center"},
+      {title: '推荐数量', dataIndex: 'recommendNum',key: 'recommendNum',width: 100, align: "center"},
       {title: '操作', key: 'operation', fixed: 'right', width: 200, align: "center"},
     ];
     const pagination = computed(() => ({