diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/controller/EmployJobTypeController.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/controller/EmployJobTypeController.java index 69c3200..e71c12d 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/controller/EmployJobTypeController.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/controller/EmployJobTypeController.java @@ -39,14 +39,14 @@ import org.jeecg.common.aspect.annotation.AutoLog; /** * @Description: 工种类型表 * @Author: jeecg-boot - * @Date: 2024-10-16 + * @Date: 2025-08-12 * @Version: V1.0 */ @Api(tags="工种类型表") @RestController @RequestMapping("/employJobType/employJobType") @Slf4j -public class EmployJobTypeController extends JeecgController { +public class EmployJobTypeController extends JeecgController{ @Autowired private IEmployJobTypeService employJobTypeService; @@ -61,16 +61,74 @@ public class EmployJobTypeController extends JeecgController> queryPageList(EmployJobType employJobType, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { + String hasQuery = req.getParameter("hasQuery"); + if(hasQuery != null && "true".equals(hasQuery)){ + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(employJobType, req.getParameterMap()); + List list = employJobTypeService.queryTreeListNoPage(queryWrapper); + IPage pageList = new Page<>(1, 10, list.size()); + pageList.setRecords(list); + return Result.OK(pageList); + }else{ + String parentId = employJobType.getPid(); + if (oConvertUtils.isEmpty(parentId)) { + parentId = "0"; + } + employJobType.setPid(null); + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(employJobType, req.getParameterMap()); + // 使用 eq 防止模糊查询 + queryWrapper.eq("pid", parentId); + Page page = new Page(pageNo, pageSize); + IPage pageList = employJobTypeService.page(page, queryWrapper); + return Result.OK(pageList); + } + } + + /** + * 获取子数据 + * @param employJobType + * @param req + * @return + */ + //@AutoLog(value = "工种类型表-获取子数据") + @ApiOperation(value="工种类型表-获取子数据", notes="工种类型表-获取子数据") + @GetMapping(value = "/childList") + public Result> queryPageList(EmployJobType employJobType,HttpServletRequest req) { QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(employJobType, req.getParameterMap()); - Page page = new Page(pageNo, pageSize); - IPage pageList = employJobTypeService.page(page, queryWrapper); + List list = employJobTypeService.list(queryWrapper); + IPage pageList = new Page<>(1, 10, list.size()); + pageList.setRecords(list); return Result.OK(pageList); } + + /** + * 批量查询子节点 + * @param parentIds 父ID(多个采用半角逗号分割) + * @return 返回 IPage + * @param parentIds + * @return + */ + //@AutoLog(value = "工种类型表-批量获取子数据") + @ApiOperation(value="工种类型表-批量获取子数据", notes="工种类型表-批量获取子数据") + @GetMapping("/getChildListBatch") + public Result getChildListBatch(@RequestParam("parentIds") String parentIds) { + try { + QueryWrapper queryWrapper = new QueryWrapper<>(); + List parentIdList = Arrays.asList(parentIds.split(",")); + queryWrapper.in("pid", parentIdList); + List list = employJobTypeService.list(queryWrapper); + IPage pageList = new Page<>(1, 10, list.size()); + pageList.setRecords(list); + return Result.OK(pageList); + } catch (Exception e) { + log.error(e.getMessage(), e); + return Result.error("批量查询子节点失败:" + e.getMessage()); + } + } /** * 添加 @@ -82,7 +140,7 @@ public class EmployJobTypeController extends JeecgController add(@RequestBody EmployJobType employJobType) { - employJobTypeService.save(employJobType); + employJobTypeService.addEmployJobType(employJobType); return Result.OK("添加成功!"); } @@ -96,7 +154,7 @@ public class EmployJobTypeController extends JeecgController edit(@RequestBody EmployJobType employJobType) { - employJobTypeService.updateById(employJobType); + employJobTypeService.updateEmployJobType(employJobType); return Result.OK("编辑成功!"); } @@ -110,7 +168,7 @@ public class EmployJobTypeController extends JeecgController delete(@RequestParam(name="id",required=true) String id) { - employJobTypeService.removeById(id); + employJobTypeService.deleteEmployJobType(id); return Result.OK("删除成功!"); } @@ -125,7 +183,7 @@ public class EmployJobTypeController extends JeecgController deleteBatch(@RequestParam(name="ids",required=true) String ids) { this.employJobTypeService.removeByIds(Arrays.asList(ids.split(","))); - return Result.OK("批量删除成功!"); + return Result.OK("批量删除成功!"); } /** @@ -153,7 +211,7 @@ public class EmployJobTypeController extends JeecgController importExcel(HttpServletRequest request, HttpServletResponse response) { - return super.importExcel(request, response, EmployJobType.class); + return super.importExcel(request, response, EmployJobType.class); } } diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/entity/EmployJobType.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/entity/EmployJobType.java index eba8d77..a6cf68e 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/entity/EmployJobType.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/entity/EmployJobType.java @@ -1,7 +1,6 @@ package org.jeecg.modules.employJobType.entity; import java.io.Serializable; -import java.io.UnsupportedEncodingException; import java.util.Date; import java.math.BigDecimal; import com.baomidou.mybatisplus.annotation.IdType; @@ -14,19 +13,16 @@ import org.jeecgframework.poi.excel.annotation.Excel; import org.jeecg.common.aspect.annotation.Dict; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; +import java.io.UnsupportedEncodingException; /** * @Description: 工种类型表 * @Author: jeecg-boot - * @Date: 2024-10-16 + * @Date: 2025-08-12 * @Version: V1.0 */ @Data @TableName("employ_job_type") -@Accessors(chain = true) -@EqualsAndHashCode(callSuper = false) @ApiModel(value="employ_job_type对象", description="工种类型表") public class EmployJobType implements Serializable { private static final long serialVersionUID = 1L; @@ -59,4 +55,13 @@ public class EmployJobType implements Serializable { @Excel(name = "排序字段", width = 15) @ApiModelProperty(value = "排序字段") private java.lang.Integer typeOrder; + /**父级节点*/ + @Excel(name = "父级节点", width = 15) + @ApiModelProperty(value = "父级节点") + private java.lang.String pid; + /**是否有子节点*/ + @Excel(name = "是否有子节点", width = 15, dicCode = "yn") + @Dict(dicCode = "yn") + @ApiModelProperty(value = "是否有子节点") + private java.lang.String hasChild; } diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/mapper/EmployJobTypeMapper.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/mapper/EmployJobTypeMapper.java index 1cdec10..00fa9a9 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/mapper/EmployJobTypeMapper.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/mapper/EmployJobTypeMapper.java @@ -1,7 +1,5 @@ package org.jeecg.modules.employJobType.mapper; -import java.util.List; - import org.apache.ibatis.annotations.Param; import org.jeecg.modules.employJobType.entity.EmployJobType; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -9,9 +7,16 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * @Description: 工种类型表 * @Author: jeecg-boot - * @Date: 2024-10-16 + * @Date: 2025-08-12 * @Version: V1.0 */ public interface EmployJobTypeMapper extends BaseMapper { + /** + * 编辑节点状态 + * @param id + * @param status + */ + void updateTreeNodeStatus(@Param("id") String id,@Param("status") String status); + } diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/mapper/xml/EmployJobTypeMapper.xml b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/mapper/xml/EmployJobTypeMapper.xml index 0d7fb4a..0f92d65 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/mapper/xml/EmployJobTypeMapper.xml +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/mapper/xml/EmployJobTypeMapper.xml @@ -2,4 +2,8 @@ + + update employ_job_type set has_child = #{status} where id = #{id} + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/service/IEmployJobTypeService.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/service/IEmployJobTypeService.java index fe4a867..cd792b5 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/service/IEmployJobTypeService.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/service/IEmployJobTypeService.java @@ -2,13 +2,37 @@ package org.jeecg.modules.employJobType.service; import org.jeecg.modules.employJobType.entity.EmployJobType; import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.common.exception.JeecgBootException; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import java.util.List; /** * @Description: 工种类型表 * @Author: jeecg-boot - * @Date: 2024-10-16 + * @Date: 2025-08-12 * @Version: V1.0 */ public interface IEmployJobTypeService extends IService { + /**根节点父ID的值*/ + public static final String ROOT_PID_VALUE = "0"; + + /**树节点有子节点状态值*/ + public static final String HASCHILD = "1"; + + /**树节点无子节点状态值*/ + public static final String NOCHILD = "0"; + + /**新增节点*/ + void addEmployJobType(EmployJobType employJobType); + + /**修改节点*/ + void updateEmployJobType(EmployJobType employJobType) throws JeecgBootException; + + /**删除节点*/ + void deleteEmployJobType(String id) throws JeecgBootException; + + /**查询所有数据,无分页*/ + List queryTreeListNoPage(QueryWrapper queryWrapper); + } diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/service/impl/EmployJobTypeServiceImpl.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/service/impl/EmployJobTypeServiceImpl.java index 9f064ea..71819ee 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/service/impl/EmployJobTypeServiceImpl.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/service/impl/EmployJobTypeServiceImpl.java @@ -1,19 +1,191 @@ package org.jeecg.modules.employJobType.service.impl; +import org.jeecg.common.exception.JeecgBootException; +import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.employJobType.entity.EmployJobType; import org.jeecg.modules.employJobType.mapper.EmployJobTypeMapper; import org.jeecg.modules.employJobType.service.IEmployJobTypeService; import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; /** * @Description: 工种类型表 * @Author: jeecg-boot - * @Date: 2024-10-16 + * @Date: 2025-08-12 * @Version: V1.0 */ @Service public class EmployJobTypeServiceImpl extends ServiceImpl implements IEmployJobTypeService { + @Override + public void addEmployJobType(EmployJobType employJobType) { + //新增时设置hasChild为0 + employJobType.setHasChild(IEmployJobTypeService.NOCHILD); + if(oConvertUtils.isEmpty(employJobType.getPid())){ + employJobType.setPid(IEmployJobTypeService.ROOT_PID_VALUE); + }else{ + //如果当前节点父ID不为空 则设置父节点的hasChildren 为1 + EmployJobType parent = baseMapper.selectById(employJobType.getPid()); + if(parent!=null && !"1".equals(parent.getHasChild())){ + parent.setHasChild("1"); + baseMapper.updateById(parent); + } + } + baseMapper.insert(employJobType); + } + + @Override + public void updateEmployJobType(EmployJobType employJobType) { + EmployJobType entity = this.getById(employJobType.getId()); + if(entity==null) { + throw new JeecgBootException("未找到对应实体"); + } + String old_pid = entity.getPid(); + String new_pid = employJobType.getPid(); + if(!old_pid.equals(new_pid)) { + updateOldParentNode(old_pid); + if(oConvertUtils.isEmpty(new_pid)){ + employJobType.setPid(IEmployJobTypeService.ROOT_PID_VALUE); + } + if(!IEmployJobTypeService.ROOT_PID_VALUE.equals(employJobType.getPid())) { + baseMapper.updateTreeNodeStatus(employJobType.getPid(), IEmployJobTypeService.HASCHILD); + } + } + baseMapper.updateById(employJobType); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteEmployJobType(String id) throws JeecgBootException { + //查询选中节点下所有子节点一并删除 + id = this.queryTreeChildIds(id); + if(id.indexOf(",")>0) { + StringBuffer sb = new StringBuffer(); + String[] idArr = id.split(","); + for (String idVal : idArr) { + if(idVal != null){ + EmployJobType employJobType = this.getById(idVal); + String pidVal = employJobType.getPid(); + //查询此节点上一级是否还有其他子节点 + List dataList = baseMapper.selectList(new QueryWrapper().eq("pid", pidVal).notIn("id",Arrays.asList(idArr))); + if((dataList == null || dataList.size()==0) && !Arrays.asList(idArr).contains(pidVal) + && !sb.toString().contains(pidVal)){ + //如果当前节点原本有子节点 现在木有了,更新状态 + sb.append(pidVal).append(","); + } + } + } + //批量删除节点 + baseMapper.deleteBatchIds(Arrays.asList(idArr)); + //修改已无子节点的标识 + String[] pidArr = sb.toString().split(","); + for(String pid : pidArr){ + this.updateOldParentNode(pid); + } + }else{ + EmployJobType employJobType = this.getById(id); + if(employJobType==null) { + throw new JeecgBootException("未找到对应实体"); + } + updateOldParentNode(employJobType.getPid()); + baseMapper.deleteById(id); + } + } + + @Override + public List queryTreeListNoPage(QueryWrapper queryWrapper) { + List dataList = baseMapper.selectList(queryWrapper); + List mapList = new ArrayList<>(); + for(EmployJobType data : dataList){ + String pidVal = data.getPid(); + //递归查询子节点的根节点 + if(pidVal != null && !"0".equals(pidVal)){ + EmployJobType rootVal = this.getTreeRoot(pidVal); + if(rootVal != null && !mapList.contains(rootVal)){ + mapList.add(rootVal); + } + }else{ + if(!mapList.contains(data)){ + mapList.add(data); + } + } + } + return mapList; + } + + /** + * 根据所传pid查询旧的父级节点的子节点并修改相应状态值 + * @param pid + */ + private void updateOldParentNode(String pid) { + if(!IEmployJobTypeService.ROOT_PID_VALUE.equals(pid)) { + Integer count = Math.toIntExact(baseMapper.selectCount(new QueryWrapper().eq("pid", pid))); + if(count==null || count<=1) { + baseMapper.updateTreeNodeStatus(pid, IEmployJobTypeService.NOCHILD); + } + } + } + + /** + * 递归查询节点的根节点 + * @param pidVal + * @return + */ + private EmployJobType getTreeRoot(String pidVal){ + EmployJobType data = baseMapper.selectById(pidVal); + if(data != null && !"0".equals(data.getPid())){ + return this.getTreeRoot(data.getPid()); + }else{ + return data; + } + } + + /** + * 根据id查询所有子节点id + * @param ids + * @return + */ + private String queryTreeChildIds(String ids) { + //获取id数组 + String[] idArr = ids.split(","); + StringBuffer sb = new StringBuffer(); + for (String pidVal : idArr) { + if(pidVal != null){ + if(!sb.toString().contains(pidVal)){ + if(sb.toString().length() > 0){ + sb.append(","); + } + sb.append(pidVal); + this.getTreeChildIds(pidVal,sb); + } + } + } + return sb.toString(); + } + + /** + * 递归查询所有子节点 + * @param pidVal + * @param sb + * @return + */ + private StringBuffer getTreeChildIds(String pidVal,StringBuffer sb){ + List dataList = baseMapper.selectList(new QueryWrapper().eq("pid", pidVal)); + if(dataList != null && dataList.size()>0){ + for(EmployJobType tree : dataList) { + if(!sb.toString().contains(tree.getId())){ + sb.append(",").append(tree.getId()); + } + this.getTreeChildIds(tree.getId(),sb); + } + } + return sb; + } + } diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/vue/EmployJobTypeList.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/vue/EmployJobTypeList.vue index 49256b5..9541563 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/vue/EmployJobTypeList.vue +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/vue/EmployJobTypeList.vue @@ -4,6 +4,21 @@
+ + + + + + + + 查询 + 重置 + + {{ toggleSearchStatus ? '收起' : '展开' }} + + + +
@@ -36,20 +51,18 @@ + :expandedRowKeys="expandedRowKeys" + @change="handleTableChange" + @expand="handleExpand" + v-bind="tableProps"> - \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/vue3/EmployJobType.api.ts b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/vue3/EmployJobType.api.ts index 1acc539..e124967 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/vue3/EmployJobType.api.ts +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/vue3/EmployJobType.api.ts @@ -1,14 +1,17 @@ -import {defHttp} from '/@/utils/http/axios'; +import {defHttp} from "/@/utils/http/axios"; import {Modal} from 'ant-design-vue'; enum Api { - list = '/employJobType/employJobType/list', + list = '/employJobType/employJobType/rootList', save='/employJobType/employJobType/add', edit='/employJobType/employJobType/edit', - deleteOne = '/employJobType/employJobType/delete', + deleteEmployJobType = '/sys/employJobType/delete', deleteBatch = '/employJobType/employJobType/deleteBatch', importExcel = '/employJobType/employJobType/importExcel', exportXls = '/employJobType/employJobType/exportXls', + loadTreeData = '/employJobType/employJobType/loadTreeRoot', + getChildList = '/employJobType/employJobType/childList', + getChildListBatch = '/employJobType/employJobType/getChildListBatch', } /** * 导出api @@ -17,6 +20,7 @@ enum Api { export const getExportUrl = Api.exportXls; /** * 导入api + * @param params */ export const getImportUrl = Api.importExcel; /** @@ -25,12 +29,11 @@ export const getImportUrl = Api.importExcel; */ export const list = (params) => defHttp.get({url: Api.list, params}); - /** - * 删除单个 + * 删除 */ -export const deleteOne = (params,handleSuccess) => { - return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => { +export const deleteEmployJobType = (params,handleSuccess) => { + return defHttp.delete({url: Api.deleteEmployJobType, params}, {joinParamsToUrl: true}).then(() => { handleSuccess(); }); } @@ -38,7 +41,7 @@ export const deleteOne = (params,handleSuccess) => { * 批量删除 * @param params */ -export const batchDelete = (params, handleSuccess) => { +export const batchDeleteEmployJobType = (params, handleSuccess) => { Modal.confirm({ title: '确认删除', content: '是否删除选中数据', @@ -55,7 +58,25 @@ export const batchDelete = (params, handleSuccess) => { * 保存或者更新 * @param params */ -export const saveOrUpdate = (params, isUpdate) => { +export const saveOrUpdateDict = (params, isUpdate) => { let url = isUpdate ? Api.edit : Api.save; return defHttp.post({url: url, params}); } +/** + * 查询全部树形节点数据 + * @param params + */ +export const loadTreeData = (params) => + defHttp.get({url: Api.loadTreeData,params}); +/** + * 查询子节点数据 + * @param params + */ +export const getChildList = (params) => + defHttp.get({url: Api.getChildList, params}); +/** + * 批量查询子节点数据 + * @param params + */ +export const getChildListBatch = (params) => + defHttp.get({url: Api.getChildListBatch, params},{isTransformResponse:false}); diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/vue3/EmployJobType.data.ts b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/vue3/EmployJobType.data.ts index 57ed0a4..23d5bf8 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/vue3/EmployJobType.data.ts +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/vue3/EmployJobType.data.ts @@ -23,6 +23,12 @@ export const columns: BasicColumn[] = [ ]; //查询数据 export const searchFormSchema: FormSchema[] = [ + { + label: "工种名称", + field: "name", + component: 'Input', + colProps: {span: 6}, + }, ]; //表单数据 export const formSchema: FormSchema[] = [ @@ -43,4 +49,9 @@ export const formSchema: FormSchema[] = [ field: 'typeOrder', component: 'InputNumber', }, + { + label: '父级节点', + field: 'pid', + component: 'Input', + }, ]; diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/vue3/EmployJobTypeList.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/vue3/EmployJobTypeList.vue index 23aac2b..c0fcaff 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/vue3/EmployJobTypeList.vue +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/vue3/EmployJobTypeList.vue @@ -1,162 +1,272 @@ \ No newline at end of file + diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/vue3/components/EmployJobTypeModal.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/vue3/components/EmployJobTypeModal.vue index d4e2a3f..bad0119 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/vue3/components/EmployJobTypeModal.vue +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/employJobType/vue3/components/EmployJobTypeModal.vue @@ -1,58 +1,87 @@ - - - \ No newline at end of file diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/controller2/ConfigController.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/controller2/ConfigController.java index d4e2967..9bf037e 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/controller2/ConfigController.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/controller2/ConfigController.java @@ -46,8 +46,8 @@ public class ConfigController { //获取工种列表 @ApiOperation(value="首页-获取工种列表", notes="首页-获取工种列表") @RequestMapping(value = "/queryJobTypeList", method = {RequestMethod.GET}) - public Result queryJobTypeList(PageBean pageBean){ - return configService.queryJobTypeList(pageBean); + public Result queryJobTypeList(String pid, PageBean pageBean){ + return configService.queryJobTypeList(pid, pageBean); } //获取工作性质列表 diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/ConfigService.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/ConfigService.java index c4dd141..0527410 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/ConfigService.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/ConfigService.java @@ -31,7 +31,7 @@ public interface ConfigService { * @param pageBean * @return */ - public Result queryJobTypeList(PageBean pageBean); + public Result queryJobTypeList(String pid, PageBean pageBean); /** * 获取工作性质列表 diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/AuthenticationServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/AuthenticationServiceImpl.java index 66c852b..ea6b7d4 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/AuthenticationServiceImpl.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/AuthenticationServiceImpl.java @@ -8,7 +8,10 @@ import org.jeecg.modules.employAhthenticationCompany.entity.EmployAhthentication import org.jeecg.modules.employAhthenticationCompany.service.IEmployAhthenticationCompanyService; import org.jeecg.modules.employAuthenticationPerson.entity.EmployAuthenticationPerson; import org.jeecg.modules.employAuthenticationPerson.service.IEmployAuthenticationPersonService; +import org.jeecg.modules.employCompany.entity.EmployCompany; +import org.jeecg.modules.employCompany.service.IEmployCompanyService; import org.jeecg.modules.hanHaiMember.entity.HanHaiMember; +import org.jeecg.modules.hanHaiMember.service.IHanHaiMemberService; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -21,6 +24,11 @@ public class AuthenticationServiceImpl implements AuthenticationService { //权限验证 @Resource private ShiroRealm shiroRealm; + + //个人实名认证表 + @Resource + private IHanHaiMemberService hanHaiMemberService; + //个人实名认证表 @Resource private IEmployAuthenticationPersonService employAuthenticationPersonService; @@ -29,6 +37,10 @@ public class AuthenticationServiceImpl implements AuthenticationService { @Resource private IEmployAhthenticationCompanyService employAhthenticationCompanyService; + //公司信息表 + @Resource + private IEmployCompanyService employCompanyService; + /******************************************************************************************************************/ //会员中心-个人实名认证 @@ -103,6 +115,7 @@ public class AuthenticationServiceImpl implements AuthenticationService { String message = "企业实名认证操作失败"; //权限验证 HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); + //HanHaiMember hanHaiMember = hanHaiMemberService.getById(token); try{ EmployAhthenticationCompany one = employAhthenticationCompanyService.lambdaQuery() @@ -125,6 +138,24 @@ public class AuthenticationServiceImpl implements AuthenticationService { boolean result = employAhthenticationCompanyService.save(employAhthenticationCompany); message = "企业实名添加成功!"; } + + //企业实名认证时添加公司信息 + EmployCompany company = new EmployCompany(); + company.setCompanyName(employAhthenticationCompany.getCompanyName()); + company.setAddress(employAhthenticationCompany.getCompanyAddress()); + company.setLicense(employAhthenticationCompany.getBusinessLicense()); + company.setLegalPerson(employAhthenticationCompany.getLegalPerson()); + company.setSocialCode(employAhthenticationCompany.getSocialCode()); + + //判断该公司信息是否已存在, 如果不存在,则添加公司信息 + EmployCompany company1 = employCompanyService + .lambdaQuery() + .eq(EmployCompany::getSocialCode, company.getSocialCode()) + .one(); + if(null == company1){ + employCompanyService.save(company); + } + return Result.OK(message); }catch (Exception e){ e.printStackTrace(); diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/ConfigServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/ConfigServiceImpl.java index 4c0dc52..455789d 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/ConfigServiceImpl.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/ConfigServiceImpl.java @@ -97,11 +97,16 @@ public class ConfigServiceImpl implements ConfigService { //获取工种列表带分页 @Override - public Result queryJobTypeList(PageBean pageBean) { + public Result queryJobTypeList(String pid, PageBean pageBean) { try{ + if(StringUtils.isEmpty(pid)){ + pid = "0"; + } + Page page = new Page(pageBean.getPageNo(), pageBean.getPageSize()); Page pageList = employJobTypeService .lambdaQuery() + .eq(EmployJobType::getPid, pid) .orderByAsc(EmployJobType::getTypeOrder) .page(page); diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/JobServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/JobServiceImpl.java index 4ca9580..18acbe1 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/JobServiceImpl.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/JobServiceImpl.java @@ -21,6 +21,8 @@ import org.jeecg.modules.employCompany.entity.EmployCompany; import org.jeecg.modules.employCompany.service.IEmployCompanyService; import org.jeecg.modules.employJob.entity.EmployJob; import org.jeecg.modules.employJob.service.IEmployJobService; +import org.jeecg.modules.employJobType.entity.EmployJobType; +import org.jeecg.modules.employJobType.service.IEmployJobTypeService; import org.jeecg.modules.employResume.entity.EmployResume; import org.jeecg.modules.hanHaiMember.entity.HanHaiMember; import org.jeecg.modules.hanHaiMember.service.IHanHaiMemberService; @@ -40,7 +42,7 @@ public class JobServiceImpl implements JobService { @Resource private ShiroRealm shiroRealm; - //工作信息表 + //用户信息表 @Resource private IHanHaiMemberService hanHaiMemberService; @@ -48,6 +50,10 @@ public class JobServiceImpl implements JobService { @Resource private IEmployJobService employJobService; + //工种信息表 + @Resource + private IEmployJobTypeService employJobTypeService; + //工作收藏表 @Resource private IEmployCollectionJobService employCollectionJobService; @@ -124,7 +130,9 @@ public class JobServiceImpl implements JobService { } if(null != employJob.getTypeId()){ //工作类型 - query.eq(EmployJob::getTypeId, employJob.getTypeId()); + //query.eq(EmployJob::getTypeId, employJob.getTypeId()); + List list = getTypeList(employJob.getTypeId()); + query.in(EmployJob::getTypeId, list); } if(null != employJob.getNatureId()){ //工作性质 @@ -272,6 +280,7 @@ public class JobServiceImpl implements JobService { public Result addJob(String token, EmployJob employJob) { //权限验证 HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); + //HanHaiMember hanHaiMember = hanHaiMemberService.getById(token); employJob.setUserId(hanHaiMember.getId()); //返回信息 String message = "工作信息添加失败"; @@ -414,7 +423,7 @@ public class JobServiceImpl implements JobService { } } - //获取二级分类 + //获取地址二级分类 public List getCategoryList(String categoryId){ List list = new ArrayList<>(); @@ -443,4 +452,32 @@ public class JobServiceImpl implements JobService { return list; } + //获取工种二级分类 + public List getTypeList(String typeId){ + List list = new ArrayList<>(); + + //如果地址多选,则只查询子地址;如果地址单选,查询是否有子级地址 + String[] split = typeId.split(","); + if(split.length > 1){ + for (String s : split) { + list.add(s); + } + }else { + list.add(typeId); + //查询分类是否有子集 + EmployJobType jobType = employJobTypeService.getById(typeId); + if(null != jobType && jobType.getHasChild().equals("1")){ + List employJobTypeList = employJobTypeService + .lambdaQuery() + .eq(EmployJobType::getPid, typeId) + .list(); + for (EmployJobType employJobType : employJobTypeList) { + list.add(employJobType.getId()); + } + } + } + + return list; + } + } diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/ResumeServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/ResumeServiceImpl.java index dba2102..6d23252 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/ResumeServiceImpl.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/ResumeServiceImpl.java @@ -15,6 +15,9 @@ import org.jeecg.modules.employCheckResume.entity.EmployCheckResume; import org.jeecg.modules.employCheckResume.service.IEmployCheckResumeService; import org.jeecg.modules.employCollectionResume.entity.EmployCollectionResume; import org.jeecg.modules.employCollectionResume.service.IEmployCollectionResumeService; +import org.jeecg.modules.employJob.entity.EmployJob; +import org.jeecg.modules.employJobType.entity.EmployJobType; +import org.jeecg.modules.employJobType.service.IEmployJobTypeService; import org.jeecg.modules.employResume.entity.EmployResume; import org.jeecg.modules.employResume.service.IEmployResumeService; import org.jeecg.modules.hanHaiMember.entity.HanHaiMember; @@ -38,6 +41,10 @@ public class ResumeServiceImpl implements ResumeService { @Resource private IEmployAddressService employAddressService; + //简历查看表 + @Resource + private IEmployJobTypeService employJobTypeService; + //用户信息表 @Resource private IHanHaiMemberService hanHaiMemberService; @@ -77,7 +84,9 @@ public class ResumeServiceImpl implements ResumeService { //组装查询条件 if(null != employResume.getTypeId()){ //工作类型 - query.eq(EmployResume::getTypeId, employResume.getTypeId()); + //query.eq(EmployResume::getTypeId, employResume.getTypeId()); + List list = getTypeList(employResume.getTypeId()); + query.in(EmployResume::getTypeId, list); } if(null != employResume.getNatureId()){ //工作性质 @@ -350,4 +359,32 @@ public class ResumeServiceImpl implements ResumeService { return list; } + //获取工种二级分类 + public List getTypeList(String typeId){ + List list = new ArrayList<>(); + + //如果地址多选,则只查询子地址;如果地址单选,查询是否有子级地址 + String[] split = typeId.split(","); + if(split.length > 1){ + for (String s : split) { + list.add(s); + } + }else { + list.add(typeId); + //查询分类是否有子集 + EmployJobType jobType = employJobTypeService.getById(typeId); + if(null != jobType && jobType.getHasChild().equals("1")){ + List employJobTypeList = employJobTypeService + .lambdaQuery() + .eq(EmployJobType::getPid, typeId) + .list(); + for (EmployJobType employJobType : employJobTypeList) { + list.add(employJobType.getId()); + } + } + } + + return list; + } + }