From b212122007c925196e87d19a131bfc058f11685c Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 25 May 2022 16:37:44 +0800 Subject: [PATCH 01/26] =?UTF-8?q?=E5=85=AC=E5=8F=B8/=E5=88=86=E9=83=A8BUG?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20=E7=BC=96=E5=88=B6=E6=96=B9=E6=A1=88?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/表结构SQL/MySQL.sql | 2 +- docs/表结构SQL/Oracle.sql | 2 +- docs/表结构SQL/SqlServer.sql | 2 +- .../organization/web/StaffPlanController.java | 13 + .../entity/staff/bo/StaffPlanBO.java | 35 +++ .../staff/param/StaffPlanSearchParam.java | 57 +++++ .../entity/staff/po/StaffPlanPO.java | 4 +- .../entity/staff/vo/StaffPlanTableVO.java | 70 ++++++ .../organization/mapper/comp/CompMapper.java | 10 + .../organization/mapper/comp/CompMapper.xml | 12 + .../mapper/staff/StaffPlanMapper.java | 63 +++++ .../mapper/staff/StaffPlanMapper.xml | 163 ++++++++++++ .../service/StaffPlanService.java | 74 ++++++ .../service/impl/CompServiceImpl.java | 16 +- .../service/impl/ExtServiceImpl.java | 22 +- .../service/impl/StaffPlanServiceImpl.java | 235 ++++++++++++++++++ .../organization/web/StaffPlanController.java | 196 +++++++++++++++ .../wrapper/StaffPlanWrapper.java | 102 ++++++++ 18 files changed, 1051 insertions(+), 27 deletions(-) create mode 100644 src/com/api/organization/web/StaffPlanController.java create mode 100644 src/com/engine/organization/entity/staff/bo/StaffPlanBO.java create mode 100644 src/com/engine/organization/entity/staff/param/StaffPlanSearchParam.java create mode 100644 src/com/engine/organization/entity/staff/vo/StaffPlanTableVO.java create mode 100644 src/com/engine/organization/mapper/staff/StaffPlanMapper.java create mode 100644 src/com/engine/organization/mapper/staff/StaffPlanMapper.xml create mode 100644 src/com/engine/organization/service/StaffPlanService.java create mode 100644 src/com/engine/organization/service/impl/StaffPlanServiceImpl.java create mode 100644 src/com/engine/organization/web/StaffPlanController.java create mode 100644 src/com/engine/organization/wrapper/StaffPlanWrapper.java diff --git a/docs/表结构SQL/MySQL.sql b/docs/表结构SQL/MySQL.sql index 3f4162b0..f9c04cb3 100644 --- a/docs/表结构SQL/MySQL.sql +++ b/docs/表结构SQL/MySQL.sql @@ -346,7 +346,7 @@ CREATE TABLE JCL_ORG_STAFFPLAN ( time_end date NULL, company_id varchar(100) NULL, description text NULL, - status int NULL, + forbidden_tag int NULL, creator int null, delete_type int null, create_time date null, diff --git a/docs/表结构SQL/Oracle.sql b/docs/表结构SQL/Oracle.sql index e8718031..54ada457 100644 --- a/docs/表结构SQL/Oracle.sql +++ b/docs/表结构SQL/Oracle.sql @@ -347,7 +347,7 @@ CREATE TABLE JCL_ORG_STAFFPLAN ( TIME_END DATE NULL, COMPANY_ID NVARCHAR2(100) NULL, DESCRIPTION NVARCHAR2(1000) NULL, - STATUS NUMBER NULL, + FORBIDDEN_TAG NUMBER NULL, CREATOR NUMBER NULL, DELETE_TYPE NUMBER NULL, CREATE_TIME DATE NULL, diff --git a/docs/表结构SQL/SqlServer.sql b/docs/表结构SQL/SqlServer.sql index 6b740ca7..58113d9e 100644 --- a/docs/表结构SQL/SqlServer.sql +++ b/docs/表结构SQL/SqlServer.sql @@ -346,7 +346,7 @@ CREATE TABLE JCL_ORG_STAFFPLAN ( time_end date NULL, company_id varchar(100) COLLATE Chinese_PRC_CI_AS NULL, description text NULL, - status int NULL, + forbidden_tag int NULL, creator int null, delete_type int null, create_time date null, diff --git a/src/com/api/organization/web/StaffPlanController.java b/src/com/api/organization/web/StaffPlanController.java new file mode 100644 index 00000000..2eb02710 --- /dev/null +++ b/src/com/api/organization/web/StaffPlanController.java @@ -0,0 +1,13 @@ +package com.api.organization.web; + +import javax.ws.rs.Path; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +@Path("/bs/hrmorganization/staffplan") +public class StaffPlanController extends com.engine.organization.web.StaffPlanController { +} diff --git a/src/com/engine/organization/entity/staff/bo/StaffPlanBO.java b/src/com/engine/organization/entity/staff/bo/StaffPlanBO.java new file mode 100644 index 00000000..83efcb56 --- /dev/null +++ b/src/com/engine/organization/entity/staff/bo/StaffPlanBO.java @@ -0,0 +1,35 @@ +package com.engine.organization.entity.staff.bo; + +import com.engine.organization.entity.staff.param.StaffPlanSearchParam; +import com.engine.organization.entity.staff.po.StaffPlanPO; + +import java.util.Date; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +public class StaffPlanBO { + public static StaffPlanPO convertParamToPO(StaffPlanSearchParam param, Long employeeId) { + if (param == null) { + return null; + } + return StaffPlanPO.builder() + .id(param.getId()) + .planNo(param.getPlanNo()) + .planName(param.getPlanName()) + .planYear(param.getPlanYear()) + .timeStart(param.getTimeStart()) + .timeEnd(param.getTimeEnd()) + .companyId(param.getCompanyId()) + .description(param.getDescription()) + .forbiddenTag(param.getForbiddenTag() == null ? 0 : param.getForbiddenTag() ? 0 : 1) + .deleteType(0) + .createTime(new Date()) + .updateTime(new Date()) + .creator(employeeId) + .build(); + } +} diff --git a/src/com/engine/organization/entity/staff/param/StaffPlanSearchParam.java b/src/com/engine/organization/entity/staff/param/StaffPlanSearchParam.java new file mode 100644 index 00000000..fd55a60e --- /dev/null +++ b/src/com/engine/organization/entity/staff/param/StaffPlanSearchParam.java @@ -0,0 +1,57 @@ +package com.engine.organization.entity.staff.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class StaffPlanSearchParam { + /** + * 主键 + */ + private Long id; + /** + * 编号 + */ + private String planNo; + /** + * 名称 + */ + private String planName; + /** + * 年度 + */ + private Integer planYear; + /** + * 时间开始 + */ + private Date timeStart; + /** + * 时间结束 + */ + private Date timeEnd; + /** + * 适用公司 + */ + private String companyId; + /** + * 说明 + */ + private String description; + /** + * 状态 + */ + private Boolean forbiddenTag; +} diff --git a/src/com/engine/organization/entity/staff/po/StaffPlanPO.java b/src/com/engine/organization/entity/staff/po/StaffPlanPO.java index a396cf57..7092df4a 100644 --- a/src/com/engine/organization/entity/staff/po/StaffPlanPO.java +++ b/src/com/engine/organization/entity/staff/po/StaffPlanPO.java @@ -37,11 +37,11 @@ public class StaffPlanPO { /** * 时间开始 */ - private Date time_start; + private Date timeStart; /** * 时间结束 */ - private Date time_end; + private Date timeEnd; /** * 适用公司 */ diff --git a/src/com/engine/organization/entity/staff/vo/StaffPlanTableVO.java b/src/com/engine/organization/entity/staff/vo/StaffPlanTableVO.java new file mode 100644 index 00000000..f4456353 --- /dev/null +++ b/src/com/engine/organization/entity/staff/vo/StaffPlanTableVO.java @@ -0,0 +1,70 @@ +package com.engine.organization.entity.staff.vo; + +import com.engine.organization.annotation.OrganizationTable; +import com.engine.organization.annotation.OrganizationTableColumn; +import com.engine.organization.annotation.OrganizationTableOperate; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@OrganizationTable(pageId = "e04abd72-dbd6-11ec-b69e-00ffcbed7508", + fields = "t.id, t.plan_no, t.plan_name, t.plan_year, t.time_start, t.time_end, t.forbidden_tag", + fromSql = "FROM jcl_org_staffplan t ", + orderby = "id desc", + primarykey = "id", + operates = { + @OrganizationTableOperate(index = "0", text = "编辑"), + @OrganizationTableOperate(index = "1", text = "删除") + } +) +public class StaffPlanTableVO { + + /** + * 主键 + */ + private Long id; + /** + * 编号 + */ + @OrganizationTableColumn(text = "编号", width = "16%", column = "planNo") + private String planNo; + /** + * 名称 + */ + @OrganizationTableColumn(text = "名称", width = "16%", column = "planName") + private String planName; + /** + * 年度 + */ + @OrganizationTableColumn(text = "年度", width = "16%", column = "planYear") + private Integer planYear; + /** + * 时间开始 + */ + @OrganizationTableColumn(text = "时间开始", width = "16%", column = "timeStart") + private Date timeStart; + /** + * 时间结束 + */ + @OrganizationTableColumn(text = "时间结束", width = "16%", column = "timeEnd") + private Date timeEnd; + /** + * 状态 + */ + @OrganizationTableColumn(text = "状态", width = "16%", column = "forbiddenTag") + private Integer forbiddenTag; + +} diff --git a/src/com/engine/organization/mapper/comp/CompMapper.java b/src/com/engine/organization/mapper/comp/CompMapper.java index addd2c09..8b4cf21f 100644 --- a/src/com/engine/organization/mapper/comp/CompMapper.java +++ b/src/com/engine/organization/mapper/comp/CompMapper.java @@ -5,6 +5,7 @@ import org.apache.ibatis.annotations.Param; import java.util.Collection; import java.util.List; +import java.util.Map; /** * @description: TODO @@ -60,6 +61,15 @@ public interface CompMapper { List listByNo(@Param("compNo") String compNo); + /** + * 浏览按钮展示数据查询 + * + * @param ids + * @return + */ + List> listCompsByIds(@Param("ids") Collection ids); + + /** * 保存公司/分部基础信息 * diff --git a/src/com/engine/organization/mapper/comp/CompMapper.xml b/src/com/engine/organization/mapper/comp/CompMapper.xml index 38296611..f828deb0 100644 --- a/src/com/engine/organization/mapper/comp/CompMapper.xml +++ b/src/com/engine/organization/mapper/comp/CompMapper.xml @@ -197,6 +197,18 @@ + + update jcl_org_comp diff --git a/src/com/engine/organization/mapper/staff/StaffPlanMapper.java b/src/com/engine/organization/mapper/staff/StaffPlanMapper.java new file mode 100644 index 00000000..ed4b0bac --- /dev/null +++ b/src/com/engine/organization/mapper/staff/StaffPlanMapper.java @@ -0,0 +1,63 @@ +package com.engine.organization.mapper.staff; + + +import com.engine.organization.entity.staff.po.StaffPlanPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +/** + * @Author dxfeng + * @Description: TODO + * @Date 2022/5/25 + * @Version V1.0 + **/ +public interface StaffPlanMapper { + + /** + * 根据No查询编制方案 + * + * @param planNo + * @return + */ + List listByNo(@Param("planNo") String planNo); + + /** + * 根据ID查询编制方案 + * @param id + * @return + */ + StaffPlanPO getStaffPlanByID(@Param("id") long id); + + /** + * 插入编制方案 + * @param staffPlanPO + * @return + */ + int insertIgnoreNull(StaffPlanPO staffPlanPO); + + /** + * 修改,修改所有字段 + * + * @param staffPlanPO + * @return + */ + int updateStaffPlan(StaffPlanPO staffPlanPO); + + /** + * 更新禁用标记 + * + * @param staffPlanPO + * @return + */ + int updateForbiddenTagById(StaffPlanPO staffPlanPO); + + /** + * 批量删除 + * + * @param ids + */ + int deleteByIds(@Param("ids") Collection ids); + +} diff --git a/src/com/engine/organization/mapper/staff/StaffPlanMapper.xml b/src/com/engine/organization/mapper/staff/StaffPlanMapper.xml new file mode 100644 index 00000000..bf90602d --- /dev/null +++ b/src/com/engine/organization/mapper/staff/StaffPlanMapper.xml @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + + + + + + + + + t + . + id + , t.plan_no + , t.plan_name + , t.plan_year + , t.time_start + , t.time_end + , t.company_id + , t.description + , t.forbidden_tag + , t.creator + , t.delete_type + , t.create_time + , t.update_time + + + + + + + update jcl_org_staffplan + + creator=#{creator}, + update_time=#{updateTime}, + plan_no=#{planNo}, + plan_name=#{planName}, + plan_year=#{planYear}, + time_start=#{timeStart}, + time_end=#{timeEnd}, + company_id=#{companyId}, + description=#{description}, + + WHERE id = #{id} AND delete_type = 0 + + + + INSERT INTO jcl_org_staffplan + + + creator, + + + delete_type, + + + create_time, + + + update_time, + + + plan_no, + + + plan_name, + + + plan_year, + + + time_start, + + + time_end, + + + company_id, + + + description, + + forbidden_tag, + + + + #{creator}, + + + #{deleteType}, + + + #{createTime}, + + + #{updateTime}, + + + #{planNo}, + + + #{planName}, + + + #{planYear}, + + + #{timeStart}, + + + #{timeEnd}, + + + #{companyId}, + + + #{description}, + + 0, + + + + + update jcl_org_staffplan + + forbidden_tag=#{forbiddenTag}, + + WHERE id = #{id} AND delete_type = 0 + + + + UPDATE jcl_org_staffplan + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + \ No newline at end of file diff --git a/src/com/engine/organization/service/StaffPlanService.java b/src/com/engine/organization/service/StaffPlanService.java new file mode 100644 index 00000000..2935e1ef --- /dev/null +++ b/src/com/engine/organization/service/StaffPlanService.java @@ -0,0 +1,74 @@ +package com.engine.organization.service; + +import com.engine.organization.entity.staff.param.StaffPlanSearchParam; + +import java.util.Collection; +import java.util.Map; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +public interface StaffPlanService { + /** + * 编制方案列表 + * + * @param params + * @return + */ + Map listPage(StaffPlanSearchParam params); + + /** + * 新增编制方案 + * @param param + * @return + */ + int saveStaffPlan(StaffPlanSearchParam param); + + /** + * 更新编制方案信息 + * + * @param param + * @return + */ + int updateStaffPlan(StaffPlanSearchParam param); + + /** + * 更新禁用标记 + * + * @param params + */ + int updateForbiddenTagById(StaffPlanSearchParam params); + + /** + * 根据ID批量删除编制方案 + * + * @param ids + */ + int deleteByIds(Collection ids); + + /** + * 获取搜索条件 + * + * @param params + * @return + */ + Map getSearchCondition(Map params); + + + /** + * 获取新增、编辑表单 + * + * @param params + * @return + */ + Map getForm(Map params); + + /** + * 获取列表页面按钮信息 + * @return + */ + Map getHasRight(); +} diff --git a/src/com/engine/organization/service/impl/CompServiceImpl.java b/src/com/engine/organization/service/impl/CompServiceImpl.java index 53b08975..c2ed9090 100644 --- a/src/com/engine/organization/service/impl/CompServiceImpl.java +++ b/src/com/engine/organization/service/impl/CompServiceImpl.java @@ -131,20 +131,16 @@ public class CompServiceImpl extends Service implements CompService { public int updateComp(Map params) { CompSearchParam searchParam = JSONObject.parseObject(JSONObject.toJSONString(params), CompSearchParam.class); String groupId = (String) params.get("viewCondition"); - int updateBaseComp = 0; CompPO compPO = CompBO.convertParamToPO(searchParam, (long) user.getUID()); - if (StringUtil.isEmpty(groupId) || "0".equals(groupId)) { - // 更新主表数据 - updateBaseComp = getCompMapper().updateBaseComp(compPO); - } else { - // 更新主表拓展表 - updateBaseComp = getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_COMPEXT, params, groupId, compPO.getId()); - } - + int updateCount = 0; + // 更新主表数据 + updateCount += getCompMapper().updateBaseComp(compPO); + // 更新主表拓展表 + updateCount += getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_COMPEXT, params, groupId, compPO.getId()); //更新明细表 getExtService(user).updateExtDT(user, EXTEND_TYPE, JCL_ORG_COMPEXT_DT1, params, compPO.getId()); - return updateBaseComp; + return updateCount; } @Override diff --git a/src/com/engine/organization/service/impl/ExtServiceImpl.java b/src/com/engine/organization/service/impl/ExtServiceImpl.java index 0b49db23..27183143 100644 --- a/src/com/engine/organization/service/impl/ExtServiceImpl.java +++ b/src/com/engine/organization/service/impl/ExtServiceImpl.java @@ -58,9 +58,9 @@ public class ExtServiceImpl extends Service implements ExtService { Map compExtMap = getExtMapper().listCompExt(tableName, fields, id); // 组装拓展页内容 for (ExtendInfoPO extendInfoPO : infoPOList) { - SearchConditionItem item = ExtendInfoBO.getSearchConditionItem(user, viewAttr, extendInfoPO, compExtMap.get(extendInfoPO.getFieldName())); + SearchConditionItem item = ExtendInfoBO.getSearchConditionItem(user, viewAttr, extendInfoPO, null == compExtMap ? null : compExtMap.get(extendInfoPO.getFieldName())); item.setFieldcol(16); - if (null != item && 2 == viewAttr && 1 == extendInfoPO.getIsrequired()) { + if ( 2 == viewAttr && 1 == extendInfoPO.getIsrequired()) { item.setViewAttr(3); item.setRules("required|string"); } @@ -150,19 +150,17 @@ public class ExtServiceImpl extends Service implements ExtService { @Override public void updateExtDT(User user, String extendType, String tableName, Map params, Long id) { - List dtInfoPOList = getExtendInfoMapper().listFields(extendType, "", ""); - Map groups = dtInfoPOList.stream().collect(Collectors.toMap(ExtendInfoPO::getExtendGroupId, ExtendInfoPO::getTableName, (k1, k2) -> k1)); + List dtInfoPOList = getExtendInfoMapper().listFields(extendType, "", tableName); + List groupIds = dtInfoPOList.stream().map(ExtendInfoPO::getExtendGroupId).distinct().collect(Collectors.toList()); + Map> poMaps = dtInfoPOList.stream().collect(Collectors.groupingBy(ExtendInfoPO::getExtendGroupId)); // 删除原有明细表数据 - groups.forEach((k, v) -> { - if (v.toLowerCase().contains("_dt")) getExtDTMapper().deleteByMainID(v, id); - }); + getExtDTMapper().deleteByMainID(tableName, id); - for (Map.Entry entry : groups.entrySet()) { - int rowNum = Util.getIntValue((String) params.get("rownum" + entry.getKey())); - List filterS = dtInfoPOList.stream().filter(item -> entry.getKey().equals(item.getExtendGroupId())).collect(Collectors.toList()); + for (Long groupId : groupIds) { + int rowNum = Util.getIntValue((String) params.get("rownum" + groupId)); + List filterS = poMaps.get(groupId); for (int i = 0; i < rowNum; i++) { Map map = new HashMap<>(); - for (ExtendInfoPO extendInfoPO : filterS) { if (BROWSER_TYPE == extendInfoPO.getControlType()) { map.put(extendInfoPO.getFieldName() + "span", params.get(extendInfoPO.getFieldName() + "span_" + i)); @@ -174,7 +172,7 @@ public class ExtServiceImpl extends Service implements ExtService { map.put("delete_type", 0); map.put("create_time", new Date()); map.put("update_time", new Date()); - getExtDTMapper().insertCompExtDT(entry.getValue(), map); + getExtDTMapper().insertCompExtDT(tableName, map); } } } diff --git a/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java b/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java new file mode 100644 index 00000000..fa7f278b --- /dev/null +++ b/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java @@ -0,0 +1,235 @@ +package com.engine.organization.service.impl; + +import com.api.browser.bean.BrowserBean; +import com.api.browser.bean.SearchConditionGroup; +import com.api.browser.bean.SearchConditionItem; +import com.api.browser.bean.SearchConditionOption; +import com.cloudstore.eccom.result.WeaResultMsg; +import com.engine.core.impl.Service; +import com.engine.organization.component.OrganizationWeaTable; +import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.staff.bo.StaffPlanBO; +import com.engine.organization.entity.staff.param.StaffPlanSearchParam; +import com.engine.organization.entity.staff.po.StaffPlanPO; +import com.engine.organization.entity.staff.vo.StaffPlanTableVO; +import com.engine.organization.mapper.comp.CompMapper; +import com.engine.organization.mapper.staff.StaffPlanMapper; +import com.engine.organization.service.StaffPlanService; +import com.engine.organization.util.MenuBtn; +import com.engine.organization.util.OrganizationAssert; +import com.engine.organization.util.OrganizationFormItemUtil; +import com.engine.organization.util.db.DBType; +import com.engine.organization.util.db.MapperProxyFactory; +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; +import weaver.general.StringUtil; +import weaver.general.Util; + +import java.util.*; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +public class StaffPlanServiceImpl extends Service implements StaffPlanService { + + private StaffPlanMapper getStaffPlanMapper() { + return MapperProxyFactory.getProxy(StaffPlanMapper.class); + } + + private CompMapper getCompMapper() { + return MapperProxyFactory.getProxy(CompMapper.class); + } + + @Override + public Map listPage(StaffPlanSearchParam params) { + OrganizationWeaTable table = new OrganizationWeaTable<>(user, StaffPlanTableVO.class); + StaffPlanPO staffPlanPO = StaffPlanBO.convertParamToPO(params, (long) user.getUID()); + String sqlWhere = buildSqlWhere(staffPlanPO); + table.setSqlwhere(sqlWhere); + WeaResultMsg result = new WeaResultMsg(false); + result.putAll(table.makeDataResult()); + result.success(); + return result.getResultMap(); + } + + @Override + public int saveStaffPlan(StaffPlanSearchParam param) { + List list = getStaffPlanMapper().listByNo(Util.null2String(param.getPlanNo())); + OrganizationAssert.isEmpty(list, "编号不允许重复"); + StaffPlanPO staffPlanPO = StaffPlanBO.convertParamToPO(param, (long) user.getUID()); + return getStaffPlanMapper().insertIgnoreNull(staffPlanPO); + } + + @Override + public int updateStaffPlan(StaffPlanSearchParam param) { + StaffPlanPO staffPlanPO = StaffPlanBO.convertParamToPO(param, (long) user.getUID()); + return getStaffPlanMapper().updateStaffPlan(staffPlanPO); + } + + @Override + public int updateForbiddenTagById(StaffPlanSearchParam params) { + StaffPlanPO staffPlanPO = StaffPlanPO.builder().id(params.getId()).forbiddenTag(params.getForbiddenTag() ? 0 : 1).build(); + return getStaffPlanMapper().updateForbiddenTagById(staffPlanPO); + } + + @Override + public int deleteByIds(Collection ids) { + OrganizationAssert.notEmpty(ids, "请选择要删除的数据"); + return getStaffPlanMapper().deleteByIds(ids); + } + + @Override + public Map getSearchCondition(Map params) { + Map apiDatas = new HashMap<>(); + List addGroups = new ArrayList<>(); + List conditionItems = new ArrayList<>(); + // 编号 + SearchConditionItem planNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "编号", "planNo"); + // 名称 + SearchConditionItem planNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "名称", "planName"); + // 年度 + SearchConditionItem planYearItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "年度", "179", "planYear", ""); + // 时间开始 + SearchConditionItem timeStartItem = OrganizationFormItemUtil.datePickerItem(user, 2, 16, false, 2, "时间开始", "timeStart"); + // 时间结束 + SearchConditionItem timeEndItem = OrganizationFormItemUtil.datePickerItem(user, 2, 16, false, 2, "时间结束", "timeEnd"); + // 适用公司 + SearchConditionItem companyIdtItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "companyId", "162", "planYear", "compBrowser"); + // 说明 + SearchConditionItem descriptionItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "说明", "description"); + // 状态 + List selectOptions = new ArrayList<>(); + SearchConditionOption enableOption = new SearchConditionOption("true", "启用"); + SearchConditionOption disableOption = new SearchConditionOption("false", "禁用"); + selectOptions.add(enableOption); + selectOptions.add(disableOption); + SearchConditionItem forbiddenTagItem = OrganizationFormItemUtil.selectItem(user, selectOptions, 2, 16, 6, false, "禁用标记", "forbiddenTag"); + + + conditionItems.add(planNoItem); + conditionItems.add(planNameItem); + conditionItems.add(planYearItem); + conditionItems.add(timeStartItem); + conditionItems.add(timeEndItem); + conditionItems.add(companyIdtItem); + conditionItems.add(descriptionItem); + conditionItems.add(forbiddenTagItem); + addGroups.add(new SearchConditionGroup("高级搜索条件", true, conditionItems)); + apiDatas.put("conditions", addGroups); + return apiDatas; + } + + @Override + public Map getForm(Map params) { + Map apiDatas = new HashMap<>(); + List selectItems = new ArrayList<>(); + List addGroups = new ArrayList<>(); + // 编号 + SearchConditionItem planNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "编号", "planNo"); + planNoItem.setRules("required|string"); + // 名称 + SearchConditionItem planNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "名称", "planName"); + planNameItem.setRules("required|string"); + // 年度 + SearchConditionItem planYearItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "年度", "178", "planYear", ""); + planYearItem.setRules("required|string"); + // 时间开始 + SearchConditionItem timeStartItem = OrganizationFormItemUtil.datePickerItem(user, 2, 16, false, 3, "时间开始", "timeStart"); + timeStartItem.setRules("required|string"); + // 时间结束 + SearchConditionItem timeEndItem = OrganizationFormItemUtil.datePickerItem(user, 2, 16, false, 3, "时间结束", "timeEnd"); + timeEndItem.setRules("required|string"); + // 适用公司 + SearchConditionItem companyIdtItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "companyId", "162", "planYear", "compBrowser"); + companyIdtItem.setRules("required|string"); + // 说明 + SearchConditionItem descriptionItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "说明", "description"); + + // 编辑状态下赋值操作 + String id = Util.null2String(params.get("id")); + if (!StringUtil.isEmpty(id)) { + StaffPlanPO staffPlanPO = getStaffPlanMapper().getStaffPlanByID(Integer.parseInt(id)); + OrganizationAssert.notNull(staffPlanPO, "选择的数据不存在,或数据已删除"); + planNoItem.setValue(staffPlanPO.getPlanNo()); + planNameItem.setValue(staffPlanPO.getPlanName()); + planYearItem.setValue(staffPlanPO.getPlanYear()); + timeStartItem.setValue(staffPlanPO.getTimeStart()); + timeEndItem.setValue(staffPlanPO.getTimeEnd()); + + BrowserBean browserBean = companyIdtItem.getBrowserConditionParam(); + List> maps = getCompMapper().listCompsByIds(QueryParam.builder().ids(staffPlanPO.getCompanyId().toString()).build().getIds()); + browserBean.setReplaceDatas(maps); + companyIdtItem.setBrowserConditionParam(browserBean); + + descriptionItem.setValue(staffPlanPO.getDescription()); + + // 编辑状态下,编号只读 + planNoItem.setViewAttr(1); + } + + selectItems.add(planNoItem); + selectItems.add(planNameItem); + selectItems.add(planYearItem); + selectItems.add(timeStartItem); + selectItems.add(timeEndItem); + selectItems.add(companyIdtItem); + selectItems.add(descriptionItem); + addGroups.add(new SearchConditionGroup("基本信息", true, selectItems)); + apiDatas.put("condition", addGroups); + return apiDatas; + } + + @Override + public Map getHasRight() { + return MenuBtn.getCommonBtnDatas(); + } + + + /** + * 查询条件 + * + * @param staffPlanPO + * @return + */ + private String buildSqlWhere(StaffPlanPO staffPlanPO) { + DBType dbType = DBType.get(new RecordSet().getDBType()); + String sqlWhere = " where t.delete_type ='0' "; + String planNo = staffPlanPO.getPlanNo(); + if (StringUtils.isNotBlank(planNo)) { + sqlWhere += " AND t.plan_no " + dbType.like(planNo); + } + String planName = staffPlanPO.getPlanName(); + if (StringUtils.isNotBlank(planName)) { + sqlWhere += " AND t.plan_name " + dbType.like(planName); + } + Integer planYear = staffPlanPO.getPlanYear(); + if (null != planYear) { + sqlWhere += " AND t.plan_year = '" + planYear + "'"; + } + Date timeStart = staffPlanPO.getTimeStart(); + if (null != timeStart) { + sqlWhere += " AND t.time_start = '" + timeStart + "'"; + } + Date timeEnd = staffPlanPO.getTimeEnd(); + if (null != timeEnd) { + sqlWhere += " AND t.time_end = '" + timeEnd + "'"; + } + String companyId = staffPlanPO.getDescription(); + if (StringUtils.isNotBlank(companyId)) { + sqlWhere += " AND t.companyId = '" + companyId + "'"; + } + + String description = staffPlanPO.getDescription(); + if (StringUtils.isNotBlank(description)) { + sqlWhere += " AND t.description " + dbType.like(description); + } + Integer forbiddenTag = staffPlanPO.getForbiddenTag(); + if (null != forbiddenTag) { + sqlWhere += " AND t.forbidden_tag = '" + forbiddenTag + "'"; + } + return sqlWhere; + } +} diff --git a/src/com/engine/organization/web/StaffPlanController.java b/src/com/engine/organization/web/StaffPlanController.java new file mode 100644 index 00000000..d857c804 --- /dev/null +++ b/src/com/engine/organization/web/StaffPlanController.java @@ -0,0 +1,196 @@ +package com.engine.organization.web; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.engine.common.util.ParamUtil; +import com.engine.common.util.ServiceUtil; +import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.staff.param.StaffPlanSearchParam; +import com.engine.organization.util.response.ReturnResult; +import com.engine.organization.wrapper.StaffPlanWrapper; +import io.swagger.v3.oas.annotations.parameters.RequestBody; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.Map; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +public class StaffPlanController { + public StaffPlanWrapper getStaffPlanWrapper(User user) { + return ServiceUtil.getService(StaffPlanWrapper.class, user); + } + + /** + * 获取list列表 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getTable") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult listStaffPlan(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + StaffPlanSearchParam param = JSONObject.toJavaObject((JSON) JSON.toJSON(map), StaffPlanSearchParam.class); + return ReturnResult.successed(getStaffPlanWrapper(user).listPage(param)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 添加岗位 + * + * @param request + * @param response + * @return + */ + @POST + @Path("/saveStaffPlan") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult saveStaffPlan(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody StaffPlanSearchParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getStaffPlanWrapper(user).saveStaffPlan(param)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 更新岗位,修改所有字段 + * + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/updateStaffPlan") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult updateStaffPlan(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody StaffPlanSearchParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getStaffPlanWrapper(user).updateStaffPlan(param)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 更新禁用标记 + * + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/updateForbiddenTagById") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult updateForbiddenTagById(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody StaffPlanSearchParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getStaffPlanWrapper(user).updateForbiddenTagById(param)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + + /** + * 根据ID批量删除数据 + * + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/deleteByIds") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody QueryParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getStaffPlanWrapper(user).deleteByIds(param.getIds())); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 高级搜索条件 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getSearchCondition") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getSearchCondition(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + return ReturnResult.successed(getStaffPlanWrapper(user).getSearchCondition(map)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + + /** + * 新增、编辑表单 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getForm") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getForm(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + return ReturnResult.successed(getStaffPlanWrapper(user).getForm(map)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 列表页顶部按钮 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getHasRight") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getHasRight(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getStaffPlanWrapper(user).getHasRight()); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } +} diff --git a/src/com/engine/organization/wrapper/StaffPlanWrapper.java b/src/com/engine/organization/wrapper/StaffPlanWrapper.java new file mode 100644 index 00000000..8881ea1c --- /dev/null +++ b/src/com/engine/organization/wrapper/StaffPlanWrapper.java @@ -0,0 +1,102 @@ +package com.engine.organization.wrapper; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.organization.entity.staff.param.StaffPlanSearchParam; +import com.engine.organization.service.StaffPlanService; +import com.engine.organization.service.impl.StaffPlanServiceImpl; +import org.apache.ibatis.annotations.Param; +import weaver.hrm.User; + +import java.util.Collection; +import java.util.Map; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +public class StaffPlanWrapper extends Service { + private StaffPlanService getStaffPlanService(User user) { + return ServiceUtil.getService(StaffPlanServiceImpl.class, user); + } + + /** + * 编制方案列表 + * + * @param params + * @return + */ + public Map listPage(StaffPlanSearchParam params) { + return getStaffPlanService(user).listPage(params); + } + + /** + * 新增编制方案 + * + * @param param + * @return + */ + public int saveStaffPlan(StaffPlanSearchParam param) { + return getStaffPlanService(user).saveStaffPlan(param); + } + + /** + * 更新编制方案 + * + * @param param + * @return + */ + public int updateStaffPlan(StaffPlanSearchParam param) { + return getStaffPlanService(user).updateStaffPlan(param); + } + + /** + * 更新禁用标记 + * + * @param params + */ + public int updateForbiddenTagById(StaffPlanSearchParam params) { + return getStaffPlanService(user).updateForbiddenTagById(params); + } + + /** + * 根据ID批量删除 + * + * @param ids + */ + public int deleteByIds(@Param("ids") Collection ids) { + return getStaffPlanService(user).deleteByIds(ids); + } + + /** + * 获取搜索条件 + * + * @param params + * @return + */ + public Map getSearchCondition(Map params) { + return getStaffPlanService(user).getSearchCondition(params); + } + + + /** + * 获取新增表单 + * + * @param params + * @return + */ + public Map getForm(Map params) { + return getStaffPlanService(user).getForm(params); + } + + /** + * 获取列表页面按钮信息 + * + * @return + */ + public Map getHasRight() { + return getStaffPlanService(user).getHasRight(); + } +} From b18133f7908b1588d2e606d8b6be67e6268371fb Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 26 May 2022 10:11:02 +0800 Subject: [PATCH 02/26] =?UTF-8?q?=E7=BC=96=E5=88=B6=E8=A1=A8=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=20=E8=A1=A8=E7=BB=93=E6=9E=84=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/表结构SQL/MySQL.sql | 6 +- docs/表结构SQL/Oracle.sql | 6 +- docs/表结构SQL/SqlServer.sql | 6 +- .../api/organization/web/StaffController.java | 13 + .../organization/entity/staff/bo/StaffBO.java | 38 +++ .../entity/staff/param/StaffSearchParam.java | 68 +++++ .../organization/entity/staff/po/StaffPO.java | 75 ++++++ .../entity/staff/vo/StaffPlanTableVO.java | 12 +- .../entity/staff/vo/StaffTableVO.java | 83 ++++++ .../mapper/department/DepartmentMapper.java | 3 + .../mapper/department/DepartmentMapper.xml | 11 + .../mapper/staff/StaffMapper.java | 47 ++++ .../organization/mapper/staff/StaffMapper.xml | 177 +++++++++++++ .../mapper/staff/StaffPlanMapper.java | 4 + .../mapper/staff/StaffPlanMapper.xml | 11 + .../organization/service/StaffService.java | 67 +++++ .../service/impl/StaffPlanServiceImpl.java | 2 +- .../service/impl/StaffServiceImpl.java | 249 ++++++++++++++++++ .../transmethod/CompTransMethod.java | 25 ++ .../transmethod/DepartmentTransMethod.java | 25 ++ .../transmethod/JobTransMethod.java | 18 ++ .../transmethod/StaffPlanTransMethod.java | 25 ++ .../organization/web/StaffController.java | 176 +++++++++++++ .../organization/web/StaffPlanController.java | 4 +- .../organization/wrapper/StaffWrapper.java | 93 +++++++ 25 files changed, 1226 insertions(+), 18 deletions(-) create mode 100644 src/com/api/organization/web/StaffController.java create mode 100644 src/com/engine/organization/entity/staff/bo/StaffBO.java create mode 100644 src/com/engine/organization/entity/staff/param/StaffSearchParam.java create mode 100644 src/com/engine/organization/entity/staff/po/StaffPO.java create mode 100644 src/com/engine/organization/entity/staff/vo/StaffTableVO.java create mode 100644 src/com/engine/organization/mapper/staff/StaffMapper.java create mode 100644 src/com/engine/organization/mapper/staff/StaffMapper.xml create mode 100644 src/com/engine/organization/service/StaffService.java create mode 100644 src/com/engine/organization/service/impl/StaffServiceImpl.java create mode 100644 src/com/engine/organization/transmethod/CompTransMethod.java create mode 100644 src/com/engine/organization/transmethod/DepartmentTransMethod.java create mode 100644 src/com/engine/organization/transmethod/JobTransMethod.java create mode 100644 src/com/engine/organization/transmethod/StaffPlanTransMethod.java create mode 100644 src/com/engine/organization/web/StaffController.java create mode 100644 src/com/engine/organization/wrapper/StaffWrapper.java diff --git a/docs/表结构SQL/MySQL.sql b/docs/表结构SQL/MySQL.sql index f9c04cb3..a54c30ec 100644 --- a/docs/表结构SQL/MySQL.sql +++ b/docs/表结构SQL/MySQL.sql @@ -363,10 +363,10 @@ CREATE TABLE JCL_ORG_STAFF ( job_id int null, staff_num int null, control_policy int null, - staff_permanent_num int null, + permanent_num int null, freeze_num int null, lack_status int null, - staff_description varchar(100) NULL, + staff_desc varchar(100) NULL, description text null, creator int null, delete_type int null, @@ -380,7 +380,7 @@ CREATE TABLE JCL_ORG_STAFFS ( id int auto_increment NOT NULL, staff_id int null, business_type int null, - business_change_num int null, + change_num int null, business_source int null, requestid int null, creator int null, diff --git a/docs/表结构SQL/Oracle.sql b/docs/表结构SQL/Oracle.sql index 54ada457..9814fbba 100644 --- a/docs/表结构SQL/Oracle.sql +++ b/docs/表结构SQL/Oracle.sql @@ -364,10 +364,10 @@ CREATE TABLE JCL_ORG_STAFF ( JOB_ID NUMBER NULL, STAFF_NUM NUMBER NULL, CONTROL_POLICY NUMBER NULL, - STAFF_PERMANENT_NUM NUMBER NULL, + PERMANENT_NUM NUMBER NULL, FREEZE_NUM NUMBER NULL, LACK_STATUS NUMBER NULL, - STAFF_DESCRIPTION NVARCHAR2(100) NULL, + STAFF_DESC NVARCHAR2(100) NULL, DESCRIPTION NVARCHAR2(1000) NULL, CREATOR NUMBER NULL, DELETE_TYPE NUMBER NULL, @@ -381,7 +381,7 @@ CREATE TABLE JCL_ORG_STAFFS ( ID NUMBER NOT NULL, STAFF_ID NUMBER NULL, BUSINESS_TYPE NUMBER NULL, - BUSINESS_CHANGE_NUM NUMBER NULL, + CHANGE_NUM NUMBER NULL, BUSINESS_SOURCE NUMBER NULL, REQUESTID NUMBER NULL, CREATOR NUMBER NULL, diff --git a/docs/表结构SQL/SqlServer.sql b/docs/表结构SQL/SqlServer.sql index 58113d9e..643e1dec 100644 --- a/docs/表结构SQL/SqlServer.sql +++ b/docs/表结构SQL/SqlServer.sql @@ -363,10 +363,10 @@ CREATE TABLE JCL_ORG_STAFF ( job_id int null, staff_num int null, control_policy int null, - staff_permanent_num int null, + permanent_num int null, freeze_num int null, lack_status int null, - staff_description varchar(100) COLLATE Chinese_PRC_CI_AS NULL, + staff_desc varchar(100) COLLATE Chinese_PRC_CI_AS NULL, description text null, creator int null, delete_type int null, @@ -380,7 +380,7 @@ CREATE TABLE JCL_ORG_STAFFS ( id int IDENTITY(1,1) NOT NULL, staff_id int null, business_type int null, - business_change_num int null, + change_num int null, business_source int null, requestid int null, creator int null, diff --git a/src/com/api/organization/web/StaffController.java b/src/com/api/organization/web/StaffController.java new file mode 100644 index 00000000..1377ab14 --- /dev/null +++ b/src/com/api/organization/web/StaffController.java @@ -0,0 +1,13 @@ +package com.api.organization.web; + +import javax.ws.rs.Path; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +@Path("/bs/hrmorganization/staff") +public class StaffController extends com.engine.organization.web.StaffController { +} diff --git a/src/com/engine/organization/entity/staff/bo/StaffBO.java b/src/com/engine/organization/entity/staff/bo/StaffBO.java new file mode 100644 index 00000000..aa8a3b56 --- /dev/null +++ b/src/com/engine/organization/entity/staff/bo/StaffBO.java @@ -0,0 +1,38 @@ +package com.engine.organization.entity.staff.bo; + +import com.engine.organization.entity.staff.param.StaffSearchParam; +import com.engine.organization.entity.staff.po.StaffPO; + +import java.util.Date; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +public class StaffBO { + public static StaffPO convertParamToPO(StaffSearchParam param, Long employeeId) { + if (param == null) { + return null; + } + return StaffPO.builder() + .id(param.getId()) + .planId(param.getPlanId()) + .compId(param.getCompId()) + .deptId(param.getDeptId()) + .jobId(param.getJobId()) + .staffNum(param.getStaffNum()) + .controlPolicy(param.getControlPolicy()) + .permanentNum(param.getPermanentNum()) + .freezeNum(param.getFreezeNum()) + .lackStatus(param.getLackStatus()) + .staffDesc(param.getStaffDesc()) + .description(param.getDescription()) + .deleteType(0) + .createTime(new Date()) + .updateTime(new Date()) + .creator(employeeId) + .build(); + } +} diff --git a/src/com/engine/organization/entity/staff/param/StaffSearchParam.java b/src/com/engine/organization/entity/staff/param/StaffSearchParam.java new file mode 100644 index 00000000..711ea22e --- /dev/null +++ b/src/com/engine/organization/entity/staff/param/StaffSearchParam.java @@ -0,0 +1,68 @@ +package com.engine.organization.entity.staff.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class StaffSearchParam { + /** + * 主键 + */ + private Long id; + /** + * 方案id + */ + private Long planId; + /** + * 分部 + */ + private Long compId; + /** + * 部门 + */ + private Long deptId; + /** + * 岗位 + */ + private Long jobId; + /** + * 编制数 + */ + private Integer staffNum; + /** + * 控制策略 + */ + private Integer controlPolicy; + /** + * 在编 + */ + private Integer permanentNum; + /** + * 冻结数 + */ + private Integer freezeNum; + /** + * 缺编状态 + */ + private Integer lackStatus; + /** + * 编制描述 + */ + private String staffDesc; + + /** + * 说明 + */ + private String description; +} diff --git a/src/com/engine/organization/entity/staff/po/StaffPO.java b/src/com/engine/organization/entity/staff/po/StaffPO.java new file mode 100644 index 00000000..3a813954 --- /dev/null +++ b/src/com/engine/organization/entity/staff/po/StaffPO.java @@ -0,0 +1,75 @@ +package com.engine.organization.entity.staff.po; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class StaffPO { + /** + * 主键 + */ + private Long id; + /** + * 方案id + */ + private Long planId; + /** + * 分部 + */ + private Long compId; + /** + * 部门 + */ + private Long deptId; + /** + * 岗位 + */ + private Long jobId; + /** + * 编制数 + */ + private Integer staffNum; + /** + * 控制策略 + */ + private Integer controlPolicy; + /** + * 在编 + */ + private Integer permanentNum; + /** + * 冻结数 + */ + private Integer freezeNum; + /** + * 缺编状态 + */ + private Integer lackStatus; + /** + * 编制描述 + */ + private String staffDesc; + /** + * 说明 + */ + private String description; + + private Long creator; + private int deleteType; + private Date createTime; + private Date updateTime; + +} diff --git a/src/com/engine/organization/entity/staff/vo/StaffPlanTableVO.java b/src/com/engine/organization/entity/staff/vo/StaffPlanTableVO.java index f4456353..a826cfb3 100644 --- a/src/com/engine/organization/entity/staff/vo/StaffPlanTableVO.java +++ b/src/com/engine/organization/entity/staff/vo/StaffPlanTableVO.java @@ -39,32 +39,32 @@ public class StaffPlanTableVO { /** * 编号 */ - @OrganizationTableColumn(text = "编号", width = "16%", column = "planNo") + @OrganizationTableColumn(text = "编号", width = "16%", column = "plan_no") private String planNo; /** * 名称 */ - @OrganizationTableColumn(text = "名称", width = "16%", column = "planName") + @OrganizationTableColumn(text = "名称", width = "16%", column = "plan_name") private String planName; /** * 年度 */ - @OrganizationTableColumn(text = "年度", width = "16%", column = "planYear") + @OrganizationTableColumn(text = "年度", width = "16%", column = "plan_year") private Integer planYear; /** * 时间开始 */ - @OrganizationTableColumn(text = "时间开始", width = "16%", column = "timeStart") + @OrganizationTableColumn(text = "时间开始", width = "16%", column = "time_start") private Date timeStart; /** * 时间结束 */ - @OrganizationTableColumn(text = "时间结束", width = "16%", column = "timeEnd") + @OrganizationTableColumn(text = "时间结束", width = "16%", column = "time_end") private Date timeEnd; /** * 状态 */ - @OrganizationTableColumn(text = "状态", width = "16%", column = "forbiddenTag") + @OrganizationTableColumn(text = "状态", width = "16%", column = "forbidden_tag") private Integer forbiddenTag; } diff --git a/src/com/engine/organization/entity/staff/vo/StaffTableVO.java b/src/com/engine/organization/entity/staff/vo/StaffTableVO.java new file mode 100644 index 00000000..731c5df7 --- /dev/null +++ b/src/com/engine/organization/entity/staff/vo/StaffTableVO.java @@ -0,0 +1,83 @@ +package com.engine.organization.entity.staff.vo; + +import com.engine.organization.annotation.OrganizationTable; +import com.engine.organization.annotation.OrganizationTableColumn; +import com.engine.organization.annotation.OrganizationTableOperate; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@OrganizationTable(pageId = "0cdfd5bb-dc09-11ec-b69e-00ffcbed7508", + fields = "id,plan_id,comp_id,dept_id,job_id,staff_num,permanent_num,freeze_num,lack_status,staff_desc", + fromSql = "FROM jcl_org_staff t ", + orderby = "id desc", + primarykey = "id", + operates = { + @OrganizationTableOperate(index = "0", text = "编辑"), + @OrganizationTableOperate(index = "1", text = "删除"), + @OrganizationTableOperate(index = "2", text = "变更") + } +) +public class StaffTableVO { + /** + * 主键 + */ + private Long id; + /** + * 方案id + */ + @OrganizationTableColumn(text = "方案", width = "10%", column = "plan_id", transmethod = "com.engine.organization.transmethod.StaffPlanTransMethod.getSpanById") + private String planId; + /** + * 分部 + */ + @OrganizationTableColumn(text = "分部", width = "10%", column = "comp_id", transmethod = "com.engine.organization.transmethod.CompTransMethod.getSpanById") + private String compId; + /** + * 部门 + */ + @OrganizationTableColumn(text = "部门", width = "10%", column = "dept_id", transmethod = "com.engine.organization.transmethod.DepartmentTransMethod.getSpanById") + private String deptId; + /** + * 岗位 + */ + @OrganizationTableColumn(text = "岗位", width = "10%", column = "job_id", transmethod = "com.engine.organization.transmethod.JobTransMethod.getSpanById") + private String jobId; + /** + * 编制数 + */ + @OrganizationTableColumn(text = "编制数", width = "10%", column = "staff_num") + private Integer staffNum; + /** + * 在编 + */ + @OrganizationTableColumn(text = "在编", width = "10%", column = "permanent_num") + private Integer permanentNum; + /** + * 冻结数 + */ + @OrganizationTableColumn(text = "冻结数", width = "10%", column = "freeze_num") + private Integer freezeNum; + /** + * 缺编状态 + */ + @OrganizationTableColumn(text = "缺编状态", width = "10%", column = "lack_status") + private Integer lackStatus; + /** + * 编制描述 + */ + @OrganizationTableColumn(text = "编制描述", width = "10%", column = "staff_desc") + private String staffDesc; + +} diff --git a/src/com/engine/organization/mapper/department/DepartmentMapper.java b/src/com/engine/organization/mapper/department/DepartmentMapper.java index f11d7f57..0a29efa8 100644 --- a/src/com/engine/organization/mapper/department/DepartmentMapper.java +++ b/src/com/engine/organization/mapper/department/DepartmentMapper.java @@ -5,6 +5,7 @@ import org.apache.ibatis.annotations.Param; import java.util.Collection; import java.util.List; +import java.util.Map; /** * @Author weaver_cl @@ -27,6 +28,8 @@ public interface DepartmentMapper { */ List listParent(); + List> listDeptsByIds(@Param("ids") Collection ids); + /** * 获取子层级数据 * diff --git a/src/com/engine/organization/mapper/department/DepartmentMapper.xml b/src/com/engine/organization/mapper/department/DepartmentMapper.xml index d8804f61..c77f78ed 100644 --- a/src/com/engine/organization/mapper/department/DepartmentMapper.xml +++ b/src/com/engine/organization/mapper/department/DepartmentMapper.xml @@ -119,6 +119,17 @@ #{id} + diff --git a/src/com/engine/organization/mapper/staff/StaffMapper.java b/src/com/engine/organization/mapper/staff/StaffMapper.java new file mode 100644 index 00000000..0eaf7f07 --- /dev/null +++ b/src/com/engine/organization/mapper/staff/StaffMapper.java @@ -0,0 +1,47 @@ +package com.engine.organization.mapper.staff; + + +import com.engine.organization.entity.staff.po.StaffPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; + +/** + * @Author dxfeng + * @Description: TODO + * @Date 2022/5/25 + * @Version V1.0 + **/ +public interface StaffMapper { + + /** + * 根据ID查询编制方案 + * @param id + * @return + */ + StaffPO getStaffByID(@Param("id") long id); + + /** + * 插入编制方案 + * @param staffPO + * @return + */ + int insertIgnoreNull(StaffPO staffPO); + + /** + * 修改,修改所有字段 + * + * @param staffPO + * @return + */ + int updateStaff(StaffPO staffPO); + + + /** + * 批量删除 + * + * @param ids + */ + int deleteByIds(@Param("ids") Collection ids); + +} diff --git a/src/com/engine/organization/mapper/staff/StaffMapper.xml b/src/com/engine/organization/mapper/staff/StaffMapper.xml new file mode 100644 index 00000000..a069bcd7 --- /dev/null +++ b/src/com/engine/organization/mapper/staff/StaffMapper.xml @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + + + + + t + . + id + , t.plan_id + , t.comp_id + , t.dept_id + , t.job_id + , t.staff_num + , t.control_policy + , t.permanent_num + , t.freeze_num + , t.lack_status + , t.staff_desc + , t.description + + + + + update jcl_org_staff + + creator=#{creator}, + update_time=#{updateTime}, + plan_id=#{planId}, + comp_id=#{compId}, + dept_id=#{deptId}, + job_id=#{jobId}, + staff_num=#{staffNum}, + control_policy=#{controlPolicy}, + permanent_num=#{permanentNum}, + freeze_num=#{freezeNum}, + lack_status=#{lackStatus}, + staff_desc=#{staffDesc}, + description=#{description}, + + WHERE id = #{id} AND delete_type = 0 + + + + INSERT INTO jcl_org_staff + + + creator, + + + delete_type, + + + create_time, + + + update_time, + + + plan_id, + + + comp_id, + + + dept_id, + + + job_id, + + + staff_num, + + + control_policy, + + + permanent_num, + + + freeze_num, + + + lack_status, + + + staff_desc, + + + description, + + + + + #{creator}, + + + #{deleteType}, + + + #{createTime}, + + + #{updateTime}, + + + + #{planId}, + + + #{compId}, + + + #{deptId}, + + + #{jobId}, + + + #{staffNum}, + + + #{controlPolicy}, + + + #{permanentNum}, + + + #{freezeNum}, + + + #{lackStatus}, + + + #{staffDesc}, + + + #{description}, + + + + + + UPDATE jcl_org_staff + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + \ No newline at end of file diff --git a/src/com/engine/organization/mapper/staff/StaffPlanMapper.java b/src/com/engine/organization/mapper/staff/StaffPlanMapper.java index ed4b0bac..cb754135 100644 --- a/src/com/engine/organization/mapper/staff/StaffPlanMapper.java +++ b/src/com/engine/organization/mapper/staff/StaffPlanMapper.java @@ -6,6 +6,7 @@ import org.apache.ibatis.annotations.Param; import java.util.Collection; import java.util.List; +import java.util.Map; /** * @Author dxfeng @@ -23,6 +24,9 @@ public interface StaffPlanMapper { */ List listByNo(@Param("planNo") String planNo); + + List> listPlansByIds(@Param("ids") Collection ids); + /** * 根据ID查询编制方案 * @param id diff --git a/src/com/engine/organization/mapper/staff/StaffPlanMapper.xml b/src/com/engine/organization/mapper/staff/StaffPlanMapper.xml index bf90602d..c99f3685 100644 --- a/src/com/engine/organization/mapper/staff/StaffPlanMapper.xml +++ b/src/com/engine/organization/mapper/staff/StaffPlanMapper.xml @@ -48,6 +48,17 @@ from jcl_org_staffplan t where plan_no = #{planNo} AND delete_type = 0 + update jcl_org_staffplan diff --git a/src/com/engine/organization/service/StaffService.java b/src/com/engine/organization/service/StaffService.java new file mode 100644 index 00000000..f38a16f6 --- /dev/null +++ b/src/com/engine/organization/service/StaffService.java @@ -0,0 +1,67 @@ +package com.engine.organization.service; + +import com.engine.organization.entity.staff.param.StaffSearchParam; + +import java.util.Collection; +import java.util.Map; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +public interface StaffService { + /** + * 编制列表 + * + * @param params + * @return + */ + Map listPage(StaffSearchParam params); + + /** + * 新增编制 + * @param param + * @return + */ + int saveStaff(StaffSearchParam param); + + /** + * 更新编制信息 + * + * @param param + * @return + */ + int updateStaff(StaffSearchParam param); + + /** + * 根据ID批量删除编制 + * + * @param ids + */ + int deleteByIds(Collection ids); + + /** + * 获取搜索条件 + * + * @param params + * @return + */ + Map getSearchCondition(Map params); + + + /** + * 获取新增、编辑表单 + * + * @param params + * @return + */ + Map getForm(Map params); + + /** + * 获取列表页面按钮信息 + * @return + */ + Map getHasRight(); +} diff --git a/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java b/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java index fa7f278b..05048ac3 100644 --- a/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java +++ b/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java @@ -97,7 +97,7 @@ public class StaffPlanServiceImpl extends Service implements StaffPlanService { // 时间结束 SearchConditionItem timeEndItem = OrganizationFormItemUtil.datePickerItem(user, 2, 16, false, 2, "时间结束", "timeEnd"); // 适用公司 - SearchConditionItem companyIdtItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "companyId", "162", "planYear", "compBrowser"); + SearchConditionItem companyIdtItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "适用公司", "162", "companyId", "compBrowser"); // 说明 SearchConditionItem descriptionItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "说明", "description"); // 状态 diff --git a/src/com/engine/organization/service/impl/StaffServiceImpl.java b/src/com/engine/organization/service/impl/StaffServiceImpl.java new file mode 100644 index 00000000..26e35693 --- /dev/null +++ b/src/com/engine/organization/service/impl/StaffServiceImpl.java @@ -0,0 +1,249 @@ +package com.engine.organization.service.impl; + +import com.api.browser.bean.BrowserBean; +import com.api.browser.bean.SearchConditionGroup; +import com.api.browser.bean.SearchConditionItem; +import com.api.browser.bean.SearchConditionOption; +import com.cloudstore.eccom.result.WeaResultMsg; +import com.engine.core.impl.Service; +import com.engine.organization.component.OrganizationWeaTable; +import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.staff.bo.StaffBO; +import com.engine.organization.entity.staff.param.StaffSearchParam; +import com.engine.organization.entity.staff.po.StaffPO; +import com.engine.organization.entity.staff.vo.StaffTableVO; +import com.engine.organization.mapper.comp.CompMapper; +import com.engine.organization.mapper.department.DepartmentMapper; +import com.engine.organization.mapper.staff.StaffMapper; +import com.engine.organization.mapper.staff.StaffPlanMapper; +import com.engine.organization.service.StaffService; +import com.engine.organization.util.MenuBtn; +import com.engine.organization.util.OrganizationAssert; +import com.engine.organization.util.OrganizationFormItemUtil; +import com.engine.organization.util.db.DBType; +import com.engine.organization.util.db.MapperProxyFactory; +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; +import weaver.general.StringUtil; +import weaver.general.Util; + +import java.util.*; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +public class StaffServiceImpl extends Service implements StaffService { + private StaffMapper getStaffMapper() { + return MapperProxyFactory.getProxy(StaffMapper.class); + } + + private StaffPlanMapper getStaffPlanMapper() { + return MapperProxyFactory.getProxy(StaffPlanMapper.class); + } + + private CompMapper getCompMapper() { + return MapperProxyFactory.getProxy(CompMapper.class); + } + + private DepartmentMapper getDepartmentMapper() { + return MapperProxyFactory.getProxy(DepartmentMapper.class); + } + + + @Override + public Map listPage(StaffSearchParam params) { + OrganizationWeaTable table = new OrganizationWeaTable<>(user, StaffTableVO.class); + StaffPO staffPO = StaffBO.convertParamToPO(params, (long) user.getUID()); + String sqlWhere = buildSqlWhere(staffPO); + table.setSqlwhere(sqlWhere); + WeaResultMsg result = new WeaResultMsg(false); + result.putAll(table.makeDataResult()); + result.success(); + return result.getResultMap(); + } + + @Override + public int saveStaff(StaffSearchParam param) { + StaffPO staffPO = StaffBO.convertParamToPO(param, (long) user.getUID()); + return getStaffMapper().insertIgnoreNull(staffPO); + } + + @Override + public int updateStaff(StaffSearchParam param) { + StaffPO staffPlanPO = StaffBO.convertParamToPO(param, (long) user.getUID()); + return getStaffMapper().updateStaff(staffPlanPO); + } + + + @Override + public int deleteByIds(Collection ids) { + OrganizationAssert.notEmpty(ids, "请选择要删除的数据"); + return getStaffMapper().deleteByIds(ids); + } + + @Override + public Map getSearchCondition(Map params) { + Map apiDatas = new HashMap<>(); + List addGroups = new ArrayList<>(); + List conditionItems = new ArrayList<>(); + + // 方案 + SearchConditionItem planIdtItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "方案", "161", "planId", "staffPlanBrowser"); + // 分部 + SearchConditionItem compIdtItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "分部", "161", "compId", "compBrowser"); + // 部门 + SearchConditionItem deptIdtItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "部门", "161", "deptId", "deptBrowser"); + // 岗位 + SearchConditionItem jobIdtItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位", "161", "jobId", "jobBrowser"); + // 编制数 + SearchConditionItem staffNumItem = OrganizationFormItemUtil.inputNumberItem(user, 2, 16, 2, "编制数", "staffNum"); + // 在编 + SearchConditionItem permanentNumItem = OrganizationFormItemUtil.inputNumberItem(user, 2, 16, 2, "在编", "permanentNum"); + // 冻结数 + SearchConditionItem freezeNumItem = OrganizationFormItemUtil.inputNumberItem(user, 2, 16, 2, "冻结数", "freezeNum"); + // 缺编状态 + List selectOptions = new ArrayList<>(); + SearchConditionOption lackOption = new SearchConditionOption("1", "缺编"); + SearchConditionOption fullOption = new SearchConditionOption("2", "满员"); + SearchConditionOption overOption = new SearchConditionOption("3", "超编"); + selectOptions.add(lackOption); + selectOptions.add(fullOption); + selectOptions.add(overOption); + SearchConditionItem lackStatusItem = OrganizationFormItemUtil.selectItem(user, selectOptions, 2, 16, 6, false, "缺编状态", "lackStatus"); + // 编制描述 + SearchConditionItem staffDescItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "编制描述", "staffDesc"); + // 说明 + SearchConditionItem descriptionItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "说明", "description"); + conditionItems.add(planIdtItem); + conditionItems.add(compIdtItem); + conditionItems.add(deptIdtItem); + conditionItems.add(jobIdtItem); + conditionItems.add(staffNumItem); + conditionItems.add(permanentNumItem); + conditionItems.add(freezeNumItem); + conditionItems.add(lackStatusItem); + conditionItems.add(staffDescItem); + conditionItems.add(descriptionItem); + + addGroups.add(new SearchConditionGroup("高级搜索条件", true, conditionItems)); + apiDatas.put("conditions", addGroups); + return apiDatas; + } + + @Override + public Map getForm(Map params) { + Map apiDatas = new HashMap<>(); + List selectItems = new ArrayList<>(); + List addGroups = new ArrayList<>(); + // 方案 + SearchConditionItem planIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "方案", "161", "planId", "staffPlanBrowser"); + planIdItem.setRules("required|string"); + // 分部 + SearchConditionItem compIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "分部", "161", "compId", "compBrowser"); + compIdItem.setRules("required|string"); + // 部门 + SearchConditionItem deptIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "部门", "161", "deptId", "deptBrowser"); + deptIdItem.setRules("required|string"); + // 岗位 + SearchConditionItem jobIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "岗位", "161", "jobId", "jobBrowser"); + jobIdItem.setRules("required|string"); + // 编制数 + SearchConditionItem staffNumItem = OrganizationFormItemUtil.inputNumberItem(user, 2, 16, 3, "编制数", "staffNum"); + staffNumItem.setRules("required|string"); + // 控制策略 + List selectOptions = new ArrayList<>(); + SearchConditionOption option1 = new SearchConditionOption("1", "弱控"); + SearchConditionOption option2 = new SearchConditionOption("2", "强控"); + SearchConditionOption option3 = new SearchConditionOption("3", "不控"); + selectOptions.add(option1); + selectOptions.add(option2); + selectOptions.add(option3); + SearchConditionItem controlPolicyItem = OrganizationFormItemUtil.selectItem(user, selectOptions, 2, 16, 6, false, "控制策略", "controlPolicy"); + controlPolicyItem.setViewAttr(3); + controlPolicyItem.setRules("required|string"); + + // 编辑状态下赋值操作 + String id = Util.null2String(params.get("id")); + if (!StringUtil.isEmpty(id)) { + StaffPO staffPO = getStaffMapper().getStaffByID(Integer.parseInt(id)); + OrganizationAssert.notNull(staffPO, "选择的数据不存在,或数据已删除"); + + BrowserBean planIdItemBean = planIdItem.getBrowserConditionParam(); + List> maps = getStaffPlanMapper().listPlansByIds(QueryParam.builder().ids(staffPO.getPlanId().toString()).build().getIds()); + planIdItemBean.setReplaceDatas(maps); + planIdItem.setBrowserConditionParam(planIdItemBean); + + + } + + addGroups.add(new SearchConditionGroup("基本信息", true, selectItems)); + apiDatas.put("condition", addGroups); + return apiDatas; + } + + @Override + public Map getHasRight() { + return MenuBtn.getCommonBtnDatas(); + } + + /** + * 查询条件 + * + * @param staffPO + * @return + */ + private String buildSqlWhere(StaffPO staffPO) { + DBType dbType = DBType.get(new RecordSet().getDBType()); + String sqlWhere = " where t.delete_type ='0' "; + + Long planId = staffPO.getPlanId(); + if (null != planId) { + sqlWhere += " AND t.plan_id = '" + planId + "'"; + } + Long compId = staffPO.getCompId(); + if (null != compId) { + sqlWhere += " AND t.comp_id = '" + compId + "'"; + } + Long deptId = staffPO.getDeptId(); + if (null != deptId) { + sqlWhere += " AND t.dept_id = '" + deptId + "'"; + } + Long jobId = staffPO.getJobId(); + if (null != jobId) { + sqlWhere += " AND t.job_id = '" + jobId + "'"; + } + Integer staffNum = staffPO.getStaffNum(); + if (null != staffNum) { + sqlWhere += " AND t.staff_num = '" + staffNum + "'"; + } + Integer controlPolicy = staffPO.getControlPolicy(); + if (null != controlPolicy) { + sqlWhere += " AND t.control_policy = '" + controlPolicy + "'"; + } + Integer permanentNum = staffPO.getPermanentNum(); + if (null != permanentNum) { + sqlWhere += " AND t.permanent_num = '" + permanentNum + "'"; + } + Integer freezeNum = staffPO.getFreezeNum(); + if (null != freezeNum) { + sqlWhere += " AND t.freeze_num = '" + freezeNum + "'"; + } + Integer lackStatus = staffPO.getLackStatus(); + if (null != lackStatus) { + sqlWhere += " AND t.lack_status = '" + lackStatus + "'"; + } + String staffDesc = staffPO.getStaffDesc(); + if (StringUtils.isNotBlank(staffDesc)) { + sqlWhere += " AND t.staff_desc " + dbType.like(staffDesc); + } + String description = staffPO.getDescription(); + if (StringUtils.isNotBlank(description)) { + sqlWhere += " AND t.description " + dbType.like(description); + } + + return sqlWhere; + } +} diff --git a/src/com/engine/organization/transmethod/CompTransMethod.java b/src/com/engine/organization/transmethod/CompTransMethod.java new file mode 100644 index 00000000..63f637f2 --- /dev/null +++ b/src/com/engine/organization/transmethod/CompTransMethod.java @@ -0,0 +1,25 @@ +package com.engine.organization.transmethod; + +import com.engine.organization.entity.QueryParam; +import com.engine.organization.mapper.comp.CompMapper; +import com.engine.organization.util.db.MapperProxyFactory; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +public class CompTransMethod { + + public static String getSpanById(String planId) { + CompMapper compMapper = MapperProxyFactory.getProxy(CompMapper.class); + List> maps = compMapper.listCompsByIds(QueryParam.builder().ids(planId).build().getIds()); + String names = maps.stream().map(item -> (String) item.get("name")).collect(Collectors.joining(",")); + return names; + } +} diff --git a/src/com/engine/organization/transmethod/DepartmentTransMethod.java b/src/com/engine/organization/transmethod/DepartmentTransMethod.java new file mode 100644 index 00000000..72bc5867 --- /dev/null +++ b/src/com/engine/organization/transmethod/DepartmentTransMethod.java @@ -0,0 +1,25 @@ +package com.engine.organization.transmethod; + +import com.engine.organization.entity.QueryParam; +import com.engine.organization.mapper.department.DepartmentMapper; +import com.engine.organization.util.db.MapperProxyFactory; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +public class DepartmentTransMethod { + + public static String getSpanById(String planId) { + DepartmentMapper departmentMapper = MapperProxyFactory.getProxy(DepartmentMapper.class); + List> maps = departmentMapper.listDeptsByIds(QueryParam.builder().ids(planId).build().getIds()); + String names = maps.stream().map(item -> (String) item.get("name")).collect(Collectors.joining(",")); + return names; + } +} diff --git a/src/com/engine/organization/transmethod/JobTransMethod.java b/src/com/engine/organization/transmethod/JobTransMethod.java new file mode 100644 index 00000000..2af3cb41 --- /dev/null +++ b/src/com/engine/organization/transmethod/JobTransMethod.java @@ -0,0 +1,18 @@ +package com.engine.organization.transmethod; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +public class JobTransMethod { + + public static String getSpanById(String planId) { + //JobMapper compMapper = MapperProxyFactory.getProxy(CompMapper.class); + //List> maps = compMapper.listCompsByIds(QueryParam.builder().ids(planId).build().getIds()); + //String names = maps.stream().map(item -> (String) item.get("name")).collect(Collectors.joining(",")); + //return names; + return ""; + } +} diff --git a/src/com/engine/organization/transmethod/StaffPlanTransMethod.java b/src/com/engine/organization/transmethod/StaffPlanTransMethod.java new file mode 100644 index 00000000..8ea7dd78 --- /dev/null +++ b/src/com/engine/organization/transmethod/StaffPlanTransMethod.java @@ -0,0 +1,25 @@ +package com.engine.organization.transmethod; + +import com.engine.organization.entity.QueryParam; +import com.engine.organization.mapper.staff.StaffPlanMapper; +import com.engine.organization.util.db.MapperProxyFactory; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +public class StaffPlanTransMethod { + + public static String getSpanById(String planId) { + StaffPlanMapper planMapper = MapperProxyFactory.getProxy(StaffPlanMapper.class); + List> maps = planMapper.listPlansByIds(QueryParam.builder().ids(planId).build().getIds()); + String names = maps.stream().map(item -> (String) item.get("name")).collect(Collectors.joining(",")); + return names; + } +} diff --git a/src/com/engine/organization/web/StaffController.java b/src/com/engine/organization/web/StaffController.java new file mode 100644 index 00000000..821bc299 --- /dev/null +++ b/src/com/engine/organization/web/StaffController.java @@ -0,0 +1,176 @@ +package com.engine.organization.web; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.engine.common.util.ParamUtil; +import com.engine.common.util.ServiceUtil; +import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.staff.param.StaffSearchParam; +import com.engine.organization.util.response.ReturnResult; +import com.engine.organization.wrapper.StaffWrapper; +import io.swagger.v3.oas.annotations.parameters.RequestBody; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.Map; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +public class StaffController { + public StaffWrapper getStaffWrapper(User user) { + return ServiceUtil.getService(StaffWrapper.class, user); + } + + /** + * 获取list列表 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getTable") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult listStaff(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + StaffSearchParam param = JSONObject.toJavaObject((JSON) JSON.toJSON(map), StaffSearchParam.class); + return ReturnResult.successed(getStaffWrapper(user).listPage(param)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 添加编制 + * + * @param request + * @param response + * @return + */ + @POST + @Path("/saveStaff") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult saveStaff(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody StaffSearchParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getStaffWrapper(user).saveStaff(param)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 更新编制,修改所有字段 + * + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/updateStaff") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult updateStaff(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody StaffSearchParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getStaffWrapper(user).updateStaff(param)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + + /** + * 根据ID批量删除数据 + * + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/deleteByIds") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody QueryParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getStaffWrapper(user).deleteByIds(param.getIds())); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 高级搜索条件 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getSearchCondition") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getSearchCondition(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + return ReturnResult.successed(getStaffWrapper(user).getSearchCondition(map)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + + /** + * 新增、编辑表单 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getForm") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getForm(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + return ReturnResult.successed(getStaffWrapper(user).getForm(map)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 列表页顶部按钮 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getHasRight") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getHasRight(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getStaffWrapper(user).getHasRight()); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } +} diff --git a/src/com/engine/organization/web/StaffPlanController.java b/src/com/engine/organization/web/StaffPlanController.java index d857c804..7576b433 100644 --- a/src/com/engine/organization/web/StaffPlanController.java +++ b/src/com/engine/organization/web/StaffPlanController.java @@ -55,7 +55,7 @@ public class StaffPlanController { } /** - * 添加岗位 + * 添加编制方案 * * @param request * @param response @@ -74,7 +74,7 @@ public class StaffPlanController { } /** - * 更新岗位,修改所有字段 + * 更新编制方案,修改所有字段 * * @param request * @param response diff --git a/src/com/engine/organization/wrapper/StaffWrapper.java b/src/com/engine/organization/wrapper/StaffWrapper.java new file mode 100644 index 00000000..dec481eb --- /dev/null +++ b/src/com/engine/organization/wrapper/StaffWrapper.java @@ -0,0 +1,93 @@ +package com.engine.organization.wrapper; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.organization.entity.staff.param.StaffSearchParam; +import com.engine.organization.service.StaffService; +import com.engine.organization.service.impl.StaffServiceImpl; +import weaver.hrm.User; + +import java.util.Collection; +import java.util.Map; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/25 + * @version: 1.0 + */ +public class StaffWrapper extends Service { + private StaffService getStaffService(User user) { + return ServiceUtil.getService(StaffServiceImpl.class, user); + } + + /** + * 编制列表 + * + * @param params + * @return + */ + public Map listPage(StaffSearchParam params) { + return getStaffService(user).listPage(params); + } + + /** + * 新增编制 + * + * @param param + * @return + */ + public int saveStaff(StaffSearchParam param) { + return getStaffService(user).saveStaff(param); + } + + /** + * 更新编制 + * + * @param param + * @return + */ + public int updateStaff(StaffSearchParam param) { + return getStaffService(user).updateStaff(param); + } + + + /** + * 根据ID批量删除 + * + * @param ids + */ + public int deleteByIds(Collection ids) { + return getStaffService(user).deleteByIds(ids); + } + + /** + * 获取搜索条件 + * + * @param params + * @return + */ + public Map getSearchCondition(Map params) { + return getStaffService(user).getSearchCondition(params); + } + + + /** + * 获取新增表单 + * + * @param params + * @return + */ + public Map getForm(Map params) { + return getStaffService(user).getForm(params); + } + + /** + * 获取列表页面按钮信息 + * + * @return + */ + public Map getHasRight() { + return getStaffService(user).getHasRight(); + } +} From 51ae24ea44ca970a216e77069dee3aaff4219921 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 26 May 2022 11:03:04 +0800 Subject: [PATCH 03/26] =?UTF-8?q?=E7=BC=96=E5=88=B6=E8=A1=A8=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/staff/vo/StaffPlanTableVO.java | 3 +- .../service/impl/StaffPlanServiceImpl.java | 6 +-- .../service/impl/StaffServiceImpl.java | 46 +++++++++++++++---- 3 files changed, 41 insertions(+), 14 deletions(-) diff --git a/src/com/engine/organization/entity/staff/vo/StaffPlanTableVO.java b/src/com/engine/organization/entity/staff/vo/StaffPlanTableVO.java index a826cfb3..fad3c891 100644 --- a/src/com/engine/organization/entity/staff/vo/StaffPlanTableVO.java +++ b/src/com/engine/organization/entity/staff/vo/StaffPlanTableVO.java @@ -27,7 +27,8 @@ import java.util.Date; primarykey = "id", operates = { @OrganizationTableOperate(index = "0", text = "编辑"), - @OrganizationTableOperate(index = "1", text = "删除") + @OrganizationTableOperate(index = "1", text = "删除"), + @OrganizationTableOperate(index = "2", text = "发起编制流程") } ) public class StaffPlanTableVO { diff --git a/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java b/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java index 05048ac3..ee1bfbd6 100644 --- a/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java +++ b/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java @@ -91,7 +91,7 @@ public class StaffPlanServiceImpl extends Service implements StaffPlanService { // 名称 SearchConditionItem planNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "名称", "planName"); // 年度 - SearchConditionItem planYearItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "年度", "179", "planYear", ""); + SearchConditionItem planYearItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "年度", "402", "planYear", ""); // 时间开始 SearchConditionItem timeStartItem = OrganizationFormItemUtil.datePickerItem(user, 2, 16, false, 2, "时间开始", "timeStart"); // 时间结束 @@ -134,7 +134,7 @@ public class StaffPlanServiceImpl extends Service implements StaffPlanService { SearchConditionItem planNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "名称", "planName"); planNameItem.setRules("required|string"); // 年度 - SearchConditionItem planYearItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "年度", "178", "planYear", ""); + SearchConditionItem planYearItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "年度", "402", "planYear", ""); planYearItem.setRules("required|string"); // 时间开始 SearchConditionItem timeStartItem = OrganizationFormItemUtil.datePickerItem(user, 2, 16, false, 3, "时间开始", "timeStart"); @@ -143,7 +143,7 @@ public class StaffPlanServiceImpl extends Service implements StaffPlanService { SearchConditionItem timeEndItem = OrganizationFormItemUtil.datePickerItem(user, 2, 16, false, 3, "时间结束", "timeEnd"); timeEndItem.setRules("required|string"); // 适用公司 - SearchConditionItem companyIdtItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "companyId", "162", "planYear", "compBrowser"); + SearchConditionItem companyIdtItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "适用公司", "162", "companyId", "compBrowser"); companyIdtItem.setRules("required|string"); // 说明 SearchConditionItem descriptionItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "说明", "description"); diff --git a/src/com/engine/organization/service/impl/StaffServiceImpl.java b/src/com/engine/organization/service/impl/StaffServiceImpl.java index 26e35693..ef35a844 100644 --- a/src/com/engine/organization/service/impl/StaffServiceImpl.java +++ b/src/com/engine/organization/service/impl/StaffServiceImpl.java @@ -51,6 +51,9 @@ public class StaffServiceImpl extends Service implements StaffService { private DepartmentMapper getDepartmentMapper() { return MapperProxyFactory.getProxy(DepartmentMapper.class); } + //private JobMapper getJobMapper() { + // return MapperProxyFactory.getProxy(JobMapper.class); + //} @Override @@ -91,13 +94,13 @@ public class StaffServiceImpl extends Service implements StaffService { List conditionItems = new ArrayList<>(); // 方案 - SearchConditionItem planIdtItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "方案", "161", "planId", "staffPlanBrowser"); + SearchConditionItem planIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "方案", "161", "planId", "staffPlanBrowser"); // 分部 - SearchConditionItem compIdtItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "分部", "161", "compId", "compBrowser"); + SearchConditionItem compIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "分部", "161", "compId", "compBrowser"); // 部门 - SearchConditionItem deptIdtItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "部门", "161", "deptId", "deptBrowser"); + SearchConditionItem deptIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "部门", "161", "deptId", "deptBrowser"); // 岗位 - SearchConditionItem jobIdtItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位", "161", "jobId", "jobBrowser"); + SearchConditionItem jobIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位", "161", "jobId", "jobBrowser"); // 编制数 SearchConditionItem staffNumItem = OrganizationFormItemUtil.inputNumberItem(user, 2, 16, 2, "编制数", "staffNum"); // 在编 @@ -117,10 +120,11 @@ public class StaffServiceImpl extends Service implements StaffService { SearchConditionItem staffDescItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "编制描述", "staffDesc"); // 说明 SearchConditionItem descriptionItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "说明", "description"); - conditionItems.add(planIdtItem); - conditionItems.add(compIdtItem); - conditionItems.add(deptIdtItem); - conditionItems.add(jobIdtItem); + + conditionItems.add(planIdItem); + conditionItems.add(compIdItem); + conditionItems.add(deptIdItem); + conditionItems.add(jobIdItem); conditionItems.add(staffNumItem); conditionItems.add(permanentNumItem); conditionItems.add(freezeNumItem); @@ -172,12 +176,34 @@ public class StaffServiceImpl extends Service implements StaffService { OrganizationAssert.notNull(staffPO, "选择的数据不存在,或数据已删除"); BrowserBean planIdItemBean = planIdItem.getBrowserConditionParam(); - List> maps = getStaffPlanMapper().listPlansByIds(QueryParam.builder().ids(staffPO.getPlanId().toString()).build().getIds()); - planIdItemBean.setReplaceDatas(maps); + List> planIdMaps = getStaffPlanMapper().listPlansByIds(QueryParam.builder().ids(staffPO.getPlanId().toString()).build().getIds()); + planIdItemBean.setReplaceDatas(planIdMaps); planIdItem.setBrowserConditionParam(planIdItemBean); + BrowserBean compIdItemBean = compIdItem.getBrowserConditionParam(); + List> compIdMaps = getCompMapper().listCompsByIds(QueryParam.builder().ids(staffPO.getPlanId().toString()).build().getIds()); + compIdItemBean.setReplaceDatas(compIdMaps); + compIdItem.setBrowserConditionParam(compIdItemBean); + + BrowserBean deptIdItemBean = deptIdItem.getBrowserConditionParam(); + List> deptIdMaps = getDepartmentMapper().listDeptsByIds(QueryParam.builder().ids(staffPO.getPlanId().toString()).build().getIds()); + deptIdItemBean.setReplaceDatas(deptIdMaps); + deptIdItem.setBrowserConditionParam(deptIdItemBean); + // TODO + //BrowserBean jobIdItemBean = jobIdItem.getBrowserConditionParam(); + //List> jobIdMaps = getJobMapper().listJobsByIds(QueryParam.builder().ids(staffPO.getPlanId().toString()).build().getIds()); + //jobIdItemBean.setReplaceDatas(jobIdMaps); + //jobIdItem.setBrowserConditionParam(jobIdItemBean); + staffNumItem.setValue(staffPO.getStaffNum()); + controlPolicyItem.setValue(staffPO.getControlPolicy()); } + selectItems.add(planIdItem); + selectItems.add(compIdItem); + selectItems.add(deptIdItem); + selectItems.add(jobIdItem); + selectItems.add(staffNumItem); + selectItems.add(controlPolicyItem); addGroups.add(new SearchConditionGroup("基本信息", true, selectItems)); apiDatas.put("condition", addGroups); From 4abede91709a9f62d5eae095afaba51c36c78750 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 26 May 2022 11:06:39 +0800 Subject: [PATCH 04/26] =?UTF-8?q?=E7=BC=96=E5=88=B6=E8=A1=A8=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/organization/entity/staff/vo/StaffPlanTableVO.java | 1 + src/com/engine/organization/entity/staff/vo/StaffTableVO.java | 1 + 2 files changed, 2 insertions(+) diff --git a/src/com/engine/organization/entity/staff/vo/StaffPlanTableVO.java b/src/com/engine/organization/entity/staff/vo/StaffPlanTableVO.java index fad3c891..bd8a9a7a 100644 --- a/src/com/engine/organization/entity/staff/vo/StaffPlanTableVO.java +++ b/src/com/engine/organization/entity/staff/vo/StaffPlanTableVO.java @@ -36,6 +36,7 @@ public class StaffPlanTableVO { /** * 主键 */ + @OrganizationTableColumn(column = "id", display = false) private Long id; /** * 编号 diff --git a/src/com/engine/organization/entity/staff/vo/StaffTableVO.java b/src/com/engine/organization/entity/staff/vo/StaffTableVO.java index 731c5df7..41780e8d 100644 --- a/src/com/engine/organization/entity/staff/vo/StaffTableVO.java +++ b/src/com/engine/organization/entity/staff/vo/StaffTableVO.java @@ -33,6 +33,7 @@ public class StaffTableVO { /** * 主键 */ + @OrganizationTableColumn(column = "id", display = false) private Long id; /** * 方案id From 30ef0c2d840e6c4c448e96be1a0692a583017353 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 26 May 2022 13:55:04 +0800 Subject: [PATCH 05/26] =?UTF-8?q?=E7=BC=96=E5=88=B6=E6=96=B9=E6=A1=88=20?= =?UTF-8?q?=E5=B9=B4=E5=BA=A6=E5=AD=97=E6=AE=B5=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/service/impl/StaffPlanServiceImpl.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java b/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java index ee1bfbd6..92f081c2 100644 --- a/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java +++ b/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java @@ -91,7 +91,8 @@ public class StaffPlanServiceImpl extends Service implements StaffPlanService { // 名称 SearchConditionItem planNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "名称", "planName"); // 年度 - SearchConditionItem planYearItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "年度", "402", "planYear", ""); + SearchConditionItem planYearItem = OrganizationFormItemUtil.datePickerItem(user, 2, 16, false, 2, "年度", "planYear"); + planYearItem.setFormat("YYYY"); // 时间开始 SearchConditionItem timeStartItem = OrganizationFormItemUtil.datePickerItem(user, 2, 16, false, 2, "时间开始", "timeStart"); // 时间结束 @@ -134,7 +135,8 @@ public class StaffPlanServiceImpl extends Service implements StaffPlanService { SearchConditionItem planNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "名称", "planName"); planNameItem.setRules("required|string"); // 年度 - SearchConditionItem planYearItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "年度", "402", "planYear", ""); + SearchConditionItem planYearItem = OrganizationFormItemUtil.datePickerItem(user, 2, 16, false, 3, "年度", "planYear"); + planYearItem.setFormat("YYYY"); planYearItem.setRules("required|string"); // 时间开始 SearchConditionItem timeStartItem = OrganizationFormItemUtil.datePickerItem(user, 2, 16, false, 3, "时间开始", "timeStart"); @@ -160,7 +162,7 @@ public class StaffPlanServiceImpl extends Service implements StaffPlanService { timeEndItem.setValue(staffPlanPO.getTimeEnd()); BrowserBean browserBean = companyIdtItem.getBrowserConditionParam(); - List> maps = getCompMapper().listCompsByIds(QueryParam.builder().ids(staffPlanPO.getCompanyId().toString()).build().getIds()); + List> maps = getCompMapper().listCompsByIds(QueryParam.builder().ids(staffPlanPO.getCompanyId()).build().getIds()); browserBean.setReplaceDatas(maps); companyIdtItem.setBrowserConditionParam(browserBean); From 5eabc87fb3d9da2b2665b7840d18d84fae1ba8a8 Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Fri, 27 May 2022 17:04:35 +0800 Subject: [PATCH 06/26] =?UTF-8?q?checkbox=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SchemeServiceImpl.java | 6 ++++++ .../engine/organization/util/ConfigTrans.java | 17 +++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 src/com/engine/organization/util/ConfigTrans.java diff --git a/src/com/engine/organization/service/impl/SchemeServiceImpl.java b/src/com/engine/organization/service/impl/SchemeServiceImpl.java index 3eac99ef..1927ab41 100644 --- a/src/com/engine/organization/service/impl/SchemeServiceImpl.java +++ b/src/com/engine/organization/service/impl/SchemeServiceImpl.java @@ -2,6 +2,8 @@ package com.engine.organization.service.impl; import com.api.browser.bean.SearchConditionGroup; import com.api.browser.bean.SearchConditionItem; +import com.cloudstore.eccom.pc.table.WeaTableCheckboxpopedom; +import com.cloudstore.eccom.pc.table.WeaTablePopedom; import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.core.impl.Service; import com.engine.organization.component.OrganizationWeaTable; @@ -42,6 +44,10 @@ public class SchemeServiceImpl extends Service implements SchemeService { String sqlWhere = buildSqlWhere(params); table.setSqlwhere(sqlWhere); + WeaTableCheckboxpopedom checkboxpopedom = new WeaTableCheckboxpopedom(); + checkboxpopedom.setShowmethod("com.engine.organization.util.ConfigTrans.getCheckBoxPopedom"); + checkboxpopedom.setPopedompara("column:forbidden_tag"); + table.setCheckboxpopedom(checkboxpopedom); WeaResultMsg result = new WeaResultMsg(false); result.putAll(table.makeDataResult()); result.success(); diff --git a/src/com/engine/organization/util/ConfigTrans.java b/src/com/engine/organization/util/ConfigTrans.java new file mode 100644 index 00000000..e1152be0 --- /dev/null +++ b/src/com/engine/organization/util/ConfigTrans.java @@ -0,0 +1,17 @@ +package com.engine.organization.util; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/27 + * @Version V1.0 + **/ +public class ConfigTrans { + + public static String getCheckBoxPopedom(String status) { + if ("0".equals(status)) + return "true"; + else + return "false"; + } +} From 1ae3dcdec0ed474b2ef94eabb3b1cbcdcb3b0671 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Fri, 27 May 2022 18:05:15 +0800 Subject: [PATCH 07/26] 11 --- .../api/organization/web/JobController.java | 13 + .../organization/entity/comp/bo/CompBO.java | 85 +++-- .../entity/comp/dto/CompListDTO.java | 2 +- .../entity/department/bo/DepartmentBO.java | 84 ++++- .../department/param/DeptSearchParam.java | 4 +- .../entity/department/po/DepartmentPO.java | 2 +- .../entity/searchtree/SearchTree.java | 21 ++ .../entity/searchtree/SearchTreeParams.java | 30 ++ .../organization/mapper/comp/CompMapper.java | 19 +- .../organization/mapper/comp/CompMapper.xml | 14 + .../mapper/department/DepartmentMapper.java | 71 +++- .../mapper/department/DepartmentMapper.xml | 217 +++++++++--- .../service/DepartmentService.java | 50 ++- .../organization/service/JobService.java | 20 ++ .../service/impl/DepartmentServiceImpl.java | 334 +++++++++++++++--- .../service/impl/GroupServiceImpl.java | 1 - .../service/impl/JobServiceImpl.java | 300 ++++++++++++++++ .../organization/web/CompController.java | 2 +- .../web/DepartmentController.java | 145 +++++++- .../organization/web/JobController.java | 42 +++ .../wrapper/DepartmentWrapper.java | 73 +++- .../organization/wrapper/JobWrapper.java | 27 ++ 22 files changed, 1371 insertions(+), 185 deletions(-) create mode 100644 src/com/api/organization/web/JobController.java create mode 100644 src/com/engine/organization/entity/searchtree/SearchTree.java create mode 100644 src/com/engine/organization/entity/searchtree/SearchTreeParams.java create mode 100644 src/com/engine/organization/service/JobService.java create mode 100644 src/com/engine/organization/service/impl/JobServiceImpl.java create mode 100644 src/com/engine/organization/web/JobController.java create mode 100644 src/com/engine/organization/wrapper/JobWrapper.java diff --git a/src/com/api/organization/web/JobController.java b/src/com/api/organization/web/JobController.java new file mode 100644 index 00000000..7ac87cfc --- /dev/null +++ b/src/com/api/organization/web/JobController.java @@ -0,0 +1,13 @@ +package com.api.organization.web; + +import javax.ws.rs.Path; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/27 + * @version: 1.0 + */ +@Path("/bs/hrmorganization/job") +public class JobController extends com.engine.organization.web.JobController{ +} diff --git a/src/com/engine/organization/entity/comp/bo/CompBO.java b/src/com/engine/organization/entity/comp/bo/CompBO.java index 4b70dbf7..e9133ee4 100644 --- a/src/com/engine/organization/entity/comp/bo/CompBO.java +++ b/src/com/engine/organization/entity/comp/bo/CompBO.java @@ -1,8 +1,12 @@ package com.engine.organization.entity.comp.bo; +import com.api.hrm.bean.TreeNode; import com.engine.organization.entity.comp.dto.CompListDTO; import com.engine.organization.entity.comp.param.CompSearchParam; import com.engine.organization.entity.comp.po.CompPO; +import com.engine.organization.entity.searchtree.SearchTree; +import com.engine.organization.mapper.comp.CompMapper; +import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.collections.CollectionUtils; import weaver.crm.Maint.SectorInfoComInfo; import weaver.general.StringUtil; @@ -21,23 +25,9 @@ public class CompBO { public static List buildCompDTOList(Collection list) { - // 递归添加父级数据 Map poMaps = list.stream().collect(Collectors.toMap(item -> item.getId(), item -> item)); - - List dtoList = list.stream().map(e -> CompListDTO.builder() - .id(e.getId()) - .compNo(e.getCompNo()) - .compName(e.getCompName()) - .compNameShort(e.getCompNameShort()) - .parentCompany(e.getParentCompany()) - .parentCompName(null == poMaps.get(e.getParentCompany()) ? "" : poMaps.get(e.getParentCompany()).getCompName()) - .orgCode(e.getOrgCode()) - .industry(new SectorInfoComInfo().getSectorInfoname(e.getIndustry() + "")) - .compPrincipal(getUserNameById(e.getCompPrincipal() + "")) - .forbiddenTag(e.getForbiddenTag()) - .build() - ).collect(Collectors.toList()); + List dtoList = list.stream().map(e -> CompListDTO.builder().id(e.getId()).compNo(e.getCompNo()).compName(e.getCompName()).compNameShort(e.getCompNameShort()).parentCompany(e.getParentCompany()).parentCompName(null == poMaps.get(e.getParentCompany()) ? "" : poMaps.get(e.getParentCompany()).getCompName()).orgCode(e.getOrgCode()).industry(new SectorInfoComInfo().getSectorInfoname(e.getIndustry() + "")).compPrincipal(getUserNameById(e.getCompPrincipal() + "")).forbiddenTag(e.getForbiddenTag()).build()).collect(Collectors.toList()); Map> collects = dtoList.stream().filter(item -> null != item.getParentCompany() && 0 != item.getParentCompany()).collect(Collectors.groupingBy(CompListDTO::getParentCompany)); return dtoList.stream().map(e -> { e.setChildren(collects.get(e.getId())); @@ -57,19 +47,7 @@ public class CompBO { dealParentData(addedList, po, poMaps); } - List dtoList = addedList.stream().map(e -> CompListDTO.builder() - .id(e.getId()) - .compNo(e.getCompNo()) - .compName(e.getCompName()) - .compNameShort(e.getCompNameShort()) - .parentCompany(e.getParentCompany()) - .parentCompName(null == poMaps.get(e.getParentCompany()) ? "" : poMaps.get(e.getParentCompany()).getCompName()) - .orgCode(e.getOrgCode()) - .industry(new SectorInfoComInfo().getSectorInfoname(e.getIndustry() + "")) - .compPrincipal(getUserNameById(e.getCompPrincipal() + "")) - .forbiddenTag(e.getForbiddenTag()) - .build() - ).collect(Collectors.toList()); + List dtoList = addedList.stream().map(e -> CompListDTO.builder().id(e.getId()).compNo(e.getCompNo()).compName(e.getCompName()).compNameShort(e.getCompNameShort()).parentCompany(e.getParentCompany()).parentCompName(null == poMaps.get(e.getParentCompany()) ? "" : poMaps.get(e.getParentCompany()).getCompName()).orgCode(e.getOrgCode()).industry(new SectorInfoComInfo().getSectorInfoname(e.getIndustry() + "")).compPrincipal(getUserNameById(e.getCompPrincipal() + "")).forbiddenTag(e.getForbiddenTag()).build()).collect(Collectors.toList()); Map> collects = dtoList.stream().filter(item -> null != item.getParentCompany() && 0 != item.getParentCompany()).collect(Collectors.groupingBy(CompListDTO::getParentCompany)); return dtoList.stream().map(e -> { e.setChildren(collects.get(e.getId())); @@ -81,23 +59,42 @@ public class CompBO { if (null == param) { return null; } - return CompPO.builder() - .id(param.getId() == null ? 0 : param.getId()) - .compNo(param.getCompNo()) - .compName(param.getCompName()) - .compNameShort(param.getCompNameShort()) - .parentCompany(param.getParentCompany()) - .orgCode(param.getOrgCode()) - .industry(param.getIndustry()) - .compPrincipal(param.getCompPrincipal()) - .description(param.getDescription()) - .forbiddenTag(param.getForbiddenTag() == null ? null : param.getForbiddenTag() ? 0 : 1) - .deleteType(0) - .createTime(new Date()) - .updateTime(new Date()) - .creator(employeeId) - .build(); + return CompPO.builder().id(param.getId() == null ? 0 : param.getId()).compNo(param.getCompNo()).compName(param.getCompName()).compNameShort(param.getCompNameShort()).parentCompany(param.getParentCompany()).orgCode(param.getOrgCode()).industry(param.getIndustry()).compPrincipal(param.getCompPrincipal()).description(param.getDescription()).forbiddenTag(param.getForbiddenTag() == null ? null : param.getForbiddenTag() ? 0 : 1).deleteType(0).createTime(new Date()).updateTime(new Date()).creator(employeeId).build(); + + } + + public static List buildListToSearchTree(List comps) { + return comps.stream().map(item -> { + SearchTree tree = new SearchTree(); + tree.setCanClick(true); + tree.setCanceled(false); + tree.setIcon("icon-coms-LargeArea"); + tree.setId(item.getId().toString()); + tree.setIsParent(MapperProxyFactory.getProxy(CompMapper.class).countChildByPID(item.getId()) > 0); + tree.setIsVirtual("0"); + tree.setName(item.getCompName()); + tree.setPid(null == item.getParentCompany() ? "0" : item.getParentCompany().toString()); + tree.setSelected(false); + tree.setType("1"); + return tree; + }).collect(Collectors.toList()); + } + public static List buildSetToSearchTree(Set comps) { + return comps.stream().map(item -> { + SearchTree tree = new SearchTree(); + tree.setCanClick(true); + tree.setCanceled(false); + tree.setIcon("icon-coms-LargeArea"); + tree.setId(item.getId().toString()); + tree.setIsParent(false); + tree.setIsVirtual("0"); + tree.setName(item.getCompName()); + tree.setPid(null == item.getParentCompany() ? "0" : item.getParentCompany().toString()); + tree.setSelected(false); + tree.setType("1"); + return tree; + }).collect(Collectors.toList()); } /** diff --git a/src/com/engine/organization/entity/comp/dto/CompListDTO.java b/src/com/engine/organization/entity/comp/dto/CompListDTO.java index 1c1892b0..963085aa 100644 --- a/src/com/engine/organization/entity/comp/dto/CompListDTO.java +++ b/src/com/engine/organization/entity/comp/dto/CompListDTO.java @@ -88,7 +88,7 @@ public class CompListDTO { /** * 操作列 */ - @TableTitle(title = "操作", dataIndex = "operate", key = "operate") + @TableTitle(title = "", dataIndex = "operate", key = "operate") private String operate; /** diff --git a/src/com/engine/organization/entity/department/bo/DepartmentBO.java b/src/com/engine/organization/entity/department/bo/DepartmentBO.java index d07d15ab..8fdb7ee3 100644 --- a/src/com/engine/organization/entity/department/bo/DepartmentBO.java +++ b/src/com/engine/organization/entity/department/bo/DepartmentBO.java @@ -4,10 +4,12 @@ import com.engine.organization.entity.department.dto.DepartmentListDTO; import com.engine.organization.entity.department.param.DeptSearchParam; import com.engine.organization.entity.department.po.DepartmentPO; import com.engine.organization.entity.department.vo.SingleDeptTreeVO; +import com.engine.organization.entity.searchtree.SearchTree; import com.engine.organization.mapper.department.DepartmentMapper; import com.engine.organization.mapper.employee.EmployeeMapper; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.collections.CollectionUtils; +import weaver.general.StringUtil; import java.util.*; import java.util.stream.Collectors; @@ -20,13 +22,35 @@ import java.util.stream.Collectors; **/ public class DepartmentBO { + public static List buildDeptDTOList(Collection list) { + + // 递归添加父级数据 + Map poMaps = list.stream().collect(Collectors.toMap(DepartmentPO::getId, item -> item)); + + List dtoList = list.stream().map(e -> DepartmentListDTO.builder() + .id(e.getId()) + .deptNo(e.getDeptNo()) + .deptName(e.getDeptName()) + .deptNameShort(e.getDeptNameShort()) + .parentComp(e.getParentComp() + "")// 命名 + .parentDept(e.getParentDept()) + .parentDeptName(null == poMaps.get(e.getParentDept()) ? "" : poMaps.get(e.getParentDept()).getDeptName()) + .deptPrincipal(getEmployeeNameById(e.getDeptPrincipal())) + .showOrder(e.getShowOrder()) + .forbiddenTag(e.getForbiddenTag()) + .build() + ).collect(Collectors.toList()); + Map> collects = dtoList.stream().filter(item -> null != item.getParentDept() && 0 != item.getParentDept()).collect(Collectors.groupingBy(DepartmentListDTO::getParentDept)); + return dtoList.stream().peek(e -> e.setChildren(collects.get(e.getId()))).filter(item -> null == item.getParentDept() || 0 == item.getParentDept()).collect(Collectors.toList()); + } + public static List buildDeptDTOList(Collection list, List filterList) { // 搜索结果为空,直接返回空 if (CollectionUtils.isEmpty(filterList)) { return Collections.emptyList(); } // 递归添加父级数据 - Map poMaps = list.stream().collect(Collectors.toMap(item -> item.getId(), item -> item)); + Map poMaps = list.stream().collect(Collectors.toMap(DepartmentPO::getId, item -> item)); List addedList = new ArrayList<>(); for (DepartmentPO po : filterList) { dealParentData(addedList, po, poMaps); @@ -40,16 +64,13 @@ public class DepartmentBO { .parentComp(e.getParentComp() + "")// 命名 .parentDept(e.getParentDept()) .parentDeptName(null == poMaps.get(e.getParentDept()) ? "" : poMaps.get(e.getParentDept()).getDeptName()) - .deptPrincipal(getEmployeeNameById((long) e.getDeptPrincipal())) + .deptPrincipal(getEmployeeNameById(e.getDeptPrincipal())) .showOrder(e.getShowOrder()) .forbiddenTag(e.getForbiddenTag()) .build() ).collect(Collectors.toList()); Map> collects = dtoList.stream().filter(item -> null != item.getParentDept() && 0 != item.getParentDept()).collect(Collectors.groupingBy(DepartmentListDTO::getParentDept)); - return dtoList.stream().map(e -> { - e.setChildren(collects.get(e.getId())); - return e; - }).filter(item -> null == item.getParentDept() || 0 == item.getParentDept()).collect(Collectors.toList()); + return dtoList.stream().peek(e -> e.setChildren(collects.get(e.getId()))).filter(item -> null == item.getParentDept() || 0 == item.getParentDept()).collect(Collectors.toList()); } public static DepartmentPO convertParamsToPO(DeptSearchParam param, Long employeeId) { @@ -66,6 +87,7 @@ public class DepartmentBO { .deptPrincipal(param.getDeptPrincipal()) .showOrder(param.getShowOrder()) .forbiddenTag(param.getForbiddenTag() == null ? null : param.getForbiddenTag() ? 0 : 1) + .description(param.getDescription()) .deleteType(0) .createTime(new Date()) .updateTime(new Date()) @@ -78,18 +100,50 @@ public class DepartmentBO { return Collections.emptyList(); } - - List singleDeptTreeVOS = departmentPOs.stream().map(e -> SingleDeptTreeVO.builder() + return departmentPOs.stream().map(e -> SingleDeptTreeVO.builder() .id(e.getId()) .deptName(e.getDeptName()) - .parentDeptName(getDeptNameById(e.getParentDept().intValue())) - .deptPrincipalName(getEmployeeNameById((long) e.getDeptPrincipal())) + .parentDeptName(null == e.getParentDept() ? null : getDeptNameById(e.getParentDept().intValue())) + .deptPrincipalName(getEmployeeNameById(e.getDeptPrincipal())) .children(recursiveData(e.getId())) .build() - ).collect(Collectors.toList()); + ).filter(item -> StringUtil.isEmpty(item.getParentDeptName())).collect(Collectors.toList()); + + } - return singleDeptTreeVOS; + public static List buildListToSearchTree(List departmentPOS) { + return departmentPOS.stream().map(item -> { + SearchTree tree = new SearchTree(); + tree.setCanClick(true); + tree.setCanceled(false); + tree.setIcon("icon-coms-Branch"); + tree.setId(item.getId().toString()); + tree.setIsParent(MapperProxyFactory.getProxy(DepartmentMapper.class).countChildByPID(item.getId()) > 0); + tree.setIsVirtual("0"); + tree.setName(item.getDeptName()); + tree.setPid(null == item.getParentDept() ? (null == item.getParentComp() ? "0" : item.getParentComp().toString()) : item.getParentDept().toString()); + tree.setSelected(false); + tree.setType("2"); + return tree; + }).collect(Collectors.toList()); + } + public static List buildSetToSearchTree(Set departmentPOS) { + return departmentPOS.stream().map(item -> { + SearchTree tree = new SearchTree(); + tree.setCanClick(true); + tree.setCanceled(false); + tree.setIcon("icon-coms-Branch"); + tree.setId(item.getId().toString()); + tree.setIsParent(MapperProxyFactory.getProxy(DepartmentMapper.class).countChildByPID(item.getId()) > 0); + tree.setIsVirtual("0"); + tree.setName(item.getDeptName()); + tree.setPid(null == item.getParentDept() ? "0" : item.getParentDept().toString()); + tree.setSelected(false); + tree.setType("2"); + tree.setParentComp(null == item.getParentComp() ? "0" : item.getParentComp().toString()); + return tree; + }).collect(Collectors.toList()); } @@ -131,16 +185,14 @@ public class DepartmentBO { return Collections.emptyList(); } - List singleDeptTreeVOS = departmentPOS.stream().map(e -> SingleDeptTreeVO.builder() + return departmentPOS.stream().map(e -> SingleDeptTreeVO.builder() .id(e.getId()) .deptName(e.getDeptName()) .parentDeptName(getDeptNameById(e.getParentDept().intValue())) - .deptPrincipalName(getEmployeeNameById((long) e.getDeptPrincipal())) + .deptPrincipalName(getEmployeeNameById(e.getDeptPrincipal())) .children(recursiveData(e.getId())) .build() ).collect(Collectors.toList()); - - return singleDeptTreeVOS; } diff --git a/src/com/engine/organization/entity/department/param/DeptSearchParam.java b/src/com/engine/organization/entity/department/param/DeptSearchParam.java index 75004134..619b9ec1 100644 --- a/src/com/engine/organization/entity/department/param/DeptSearchParam.java +++ b/src/com/engine/organization/entity/department/param/DeptSearchParam.java @@ -29,9 +29,11 @@ public class DeptSearchParam extends BaseQueryParam { private Long parentDept; - private Integer deptPrincipal; + private Long deptPrincipal; private Integer showOrder; + private String description; + private Boolean forbiddenTag; } diff --git a/src/com/engine/organization/entity/department/po/DepartmentPO.java b/src/com/engine/organization/entity/department/po/DepartmentPO.java index 512b0367..c93a2ae3 100644 --- a/src/com/engine/organization/entity/department/po/DepartmentPO.java +++ b/src/com/engine/organization/entity/department/po/DepartmentPO.java @@ -31,7 +31,7 @@ public class DepartmentPO { private Long parentDept; - private Integer deptPrincipal; //部门负责人 + private Long deptPrincipal; //部门负责人 private Integer showOrder; diff --git a/src/com/engine/organization/entity/searchtree/SearchTree.java b/src/com/engine/organization/entity/searchtree/SearchTree.java new file mode 100644 index 00000000..d15d125c --- /dev/null +++ b/src/com/engine/organization/entity/searchtree/SearchTree.java @@ -0,0 +1,21 @@ +package com.engine.organization.entity.searchtree; + +import com.api.hrm.bean.TreeNode; +import lombok.Data; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/26 + * @version: 1.0 + */ +@Data +public class SearchTree extends TreeNode { + private String companyid; + private String isVirtual; + private String psubcompanyid; + private String displayType; + private boolean isCanceled; + private String requestParams; + private String parentComp; +} \ No newline at end of file diff --git a/src/com/engine/organization/entity/searchtree/SearchTreeParams.java b/src/com/engine/organization/entity/searchtree/SearchTreeParams.java new file mode 100644 index 00000000..46d9959f --- /dev/null +++ b/src/com/engine/organization/entity/searchtree/SearchTreeParams.java @@ -0,0 +1,30 @@ +package com.engine.organization.entity.searchtree; + +import lombok.Data; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/26 + * @version: 1.0 + */ +@Data +public class SearchTreeParams { + /** + * 数据类型 + *

+ * 0:集团 + * 1:分部 + * 2:部门 + * 3:岗位 + */ + private String type; + private String id; + private String isVirtual; + // 树搜索条件 + private String keyword; + private String virtualCompanyid; + private String isLoadSubDepartment; + + +} diff --git a/src/com/engine/organization/mapper/comp/CompMapper.java b/src/com/engine/organization/mapper/comp/CompMapper.java index 8b4cf21f..38dd7109 100644 --- a/src/com/engine/organization/mapper/comp/CompMapper.java +++ b/src/com/engine/organization/mapper/comp/CompMapper.java @@ -43,6 +43,23 @@ public interface CompMapper { */ List listChild(@Param("ids") Collection ids); + /** + * 获取当前ID的子元素 + * + * @param pid + * @return + */ + List listChildByPID(@Param("pid") String pid); + + + /** + * 获取当前ID的子元素个数 + * + * @param pid + * @return + */ + int countChildByPID(@Param("pid") long pid); + /** * 根据ID查询数据 * @@ -96,7 +113,7 @@ public interface CompMapper { int updateForbiddenTagById(CompPO compPO); /** - * 批量删除职务信息方案 + * 批量删除 * * @param ids */ diff --git a/src/com/engine/organization/mapper/comp/CompMapper.xml b/src/com/engine/organization/mapper/comp/CompMapper.xml index f828deb0..ce41d4fd 100644 --- a/src/com/engine/organization/mapper/comp/CompMapper.xml +++ b/src/com/engine/organization/mapper/comp/CompMapper.xml @@ -208,6 +208,20 @@ #{id} + + update jcl_org_comp diff --git a/src/com/engine/organization/mapper/department/DepartmentMapper.java b/src/com/engine/organization/mapper/department/DepartmentMapper.java index 0a29efa8..c564d0b1 100644 --- a/src/com/engine/organization/mapper/department/DepartmentMapper.java +++ b/src/com/engine/organization/mapper/department/DepartmentMapper.java @@ -19,26 +19,83 @@ public interface DepartmentMapper { List getDeptListByPId(@Param("PId") Long PId); - List getDeptList(DepartmentPO departmentPO); + int countChildByPID(@Param("pid") Long pid); + + + /** + * 查询所有数据 + * + * @return + */ + List list(); /** - * 获取顶级数据 + * 根据No查询数据 * + * @param deptNo * @return */ - List listParent(); + List listByNo(@Param("deptNo") String deptNo); - List> listDeptsByIds(@Param("ids") Collection ids); + /** + * 根据搜索条件查询数据 + * + * @return + */ + List listByFilter(DepartmentPO departmentPO); /** - * 获取子层级数据 + * 浏览按钮展示数据用 * * @param ids * @return */ - List listChild(@Param("ids") Collection ids); + List> listDeptsByIds(@Param("ids") Collection ids); - DepartmentPO getDeptById(@Param("id") int id); + /** + * 根据ID查询数据 + * + * @param id + * @return + */ + DepartmentPO getDeptById(@Param("id") long id); + /** + * 根据ID查询名称 + * + * @param id + * @return + */ String getDeptNameById(@Param("id") int id); + + /** + * 添加数据 + * + * @param departmentPO + * @return + */ + int insertIgnoreNull(DepartmentPO departmentPO); + + /** + * 更新主表内容 + * + * @param departmentPO + * @return + */ + int updateBaseDept(DepartmentPO departmentPO); + + /** + * 更新禁用标记 + * + * @param departmentPO + * @return + */ + int updateForbiddenTagById(DepartmentPO departmentPO); + + /** + * 批量删除 + * + * @param ids + */ + int deleteByIds(@Param("ids") Collection ids); } diff --git a/src/com/engine/organization/mapper/department/DepartmentMapper.xml b/src/com/engine/organization/mapper/department/DepartmentMapper.xml index c77f78ed..69686a3d 100644 --- a/src/com/engine/organization/mapper/department/DepartmentMapper.xml +++ b/src/com/engine/organization/mapper/department/DepartmentMapper.xml @@ -18,6 +18,22 @@ + + + t + . + id + , + t.dept_no, + t.dept_name, + t.dept_name_short, + t.parent_comp, + t.parent_dept, + t.dept_principal, + t.show_order, + t.forbidden_tag + + - - - + + + + + + INSERT INTO jcl_org_dept + + + creator, + + + delete_type, + + + create_time, + + + update_time, + + + + dept_no, + + + dept_name, + + + dept_name_short, + + + parent_comp, + + + parent_dept, + + + dept_principal, + + + show_order, + + + description, + + forbidden_tag, + + + + #{creator}, + + + #{deleteType}, + + + #{createTime}, + + + #{updateTime}, + + + #{deptNo}, + + + #{deptName}, + + + #{deptNameShort}, + + + #{parentComp}, + + + #{parentDept}, + + + #{deptPrincipal}, + + + #{showOrder}, + + + #{description}, + + 0, + + + + + update jcl_org_dept + + creator=#{creator}, + update_time=#{updateTime}, + dept_name=#{deptName}, + dept_name_short=#{deptNameShort}, + parent_comp=#{parentComp}, + parent_dept=#{parentDept}, + dept_principal=#{deptPrincipal}, + show_order=#{showOrder}, + description=#{description}, + + WHERE id = #{id} AND delete_type = 0 + + + + update jcl_org_dept + + forbidden_tag=#{forbiddenTag}, + + WHERE id = #{id} AND delete_type = 0 + + + + UPDATE jcl_org_dept + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + @@ -142,6 +246,9 @@ and t.dept_name_short like CONCAT('%',#{deptNameShort},'%') + + and t.dept_name_short like CONCAT('%',#{deptNameShort},'%') + diff --git a/src/com/engine/organization/service/DepartmentService.java b/src/com/engine/organization/service/DepartmentService.java index 79ae4d39..bd69c703 100644 --- a/src/com/engine/organization/service/DepartmentService.java +++ b/src/com/engine/organization/service/DepartmentService.java @@ -5,6 +5,7 @@ import com.engine.organization.entity.department.param.QuerySingleDeptListParam; import com.engine.organization.entity.department.vo.SingleDeptTreeVO; import com.engine.organization.util.page.PageInfo; +import java.util.Collection; import java.util.Map; /** @@ -38,7 +39,53 @@ public interface DepartmentService { * @param params * @return */ - int saveBaseComp(DeptSearchParam params); + int saveBaseForm(DeptSearchParam params); + /** + * 更新禁用标记 + * + * @param params + */ + int updateForbiddenTagById(DeptSearchParam params); + + + /** + * 更新分部主表、拓展表、明细表 + * + * @param params + * @return + */ + int updateForm(Map params); + + + /** + * 根据ID批量删除 + * + * @param ids + */ + int deleteByIds(Collection ids); + + /** + * 获取搜索条件 + * + * @param params + * @return + */ + Map getSearchCondition(Map params); + + /** + * 获取列表页面按钮信息 + * + * @return + */ + Map getHasRight(); + + /** + * 获取基本信息表单 + * + * @param params + * @return + */ + Map getDeptBaseForm(Map params); /** @@ -48,5 +95,4 @@ public interface DepartmentService { */ Map getSaveForm(); - } diff --git a/src/com/engine/organization/service/JobService.java b/src/com/engine/organization/service/JobService.java new file mode 100644 index 00000000..7fd0c6d8 --- /dev/null +++ b/src/com/engine/organization/service/JobService.java @@ -0,0 +1,20 @@ +package com.engine.organization.service; + +import com.engine.organization.entity.searchtree.SearchTreeParams; + +import java.util.Map; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/26 + * @version: 1.0 + */ +public interface JobService { + /** + * 列表左侧树 + * + * @return + */ + Map getSearchTree(SearchTreeParams params); +} diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index 68016ffa..15de4c74 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -1,9 +1,13 @@ package com.engine.organization.service.impl; +import com.alibaba.fastjson.JSONObject; +import com.api.browser.bean.BrowserBean; import com.api.browser.bean.SearchConditionGroup; import com.api.browser.bean.SearchConditionItem; +import com.api.browser.bean.SearchConditionOption; import com.cloudstore.eccom.pc.table.WeaTableColumn; import com.cloudstore.eccom.result.WeaResultMsg; +import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.organization.component.OrganizationWeaTable; import com.engine.organization.entity.department.bo.DepartmentBO; @@ -12,15 +16,21 @@ import com.engine.organization.entity.department.param.DeptSearchParam; import com.engine.organization.entity.department.param.QuerySingleDeptListParam; import com.engine.organization.entity.department.po.DepartmentPO; import com.engine.organization.entity.department.vo.SingleDeptTreeVO; +import com.engine.organization.mapper.comp.CompMapper; import com.engine.organization.mapper.department.DepartmentMapper; +import com.engine.organization.mapper.extend.ExtendGroupMapper; import com.engine.organization.service.DepartmentService; +import com.engine.organization.service.ExtService; +import com.engine.organization.util.MenuBtn; +import com.engine.organization.util.OrganizationAssert; import com.engine.organization.util.OrganizationFormItemUtil; import com.engine.organization.util.db.MapperProxyFactory; import com.engine.organization.util.page.Column; import com.engine.organization.util.page.PageInfo; import com.engine.organization.util.page.PageUtil; -import org.apache.commons.collections4.CollectionUtils; import weaver.general.StringUtil; +import weaver.general.Util; +import weaver.hrm.User; import java.util.*; import java.util.stream.Collectors; @@ -33,10 +43,39 @@ import java.util.stream.Collectors; **/ public class DepartmentServiceImpl extends Service implements DepartmentService { + /** + * 分组类型 + * 1:分部 + * 2:部门 + * 3:岗位 + */ + private static final String EXTEND_TYPE = "w"; + /** + * 主表拓展表 + */ + private static final String JCL_ORG_DEPTEXT = "JCL_ORG_DEPTEXT"; + /** + * 明细表拓展表 + */ + private static final String JCL_ORG_DEPTEXT_DT1 = "JCL_ORG_DEPTEXT_DT1"; + private DepartmentMapper getDepartmentMapper() { return MapperProxyFactory.getProxy(DepartmentMapper.class); } + private CompMapper getCompMapper() { + return MapperProxyFactory.getProxy(CompMapper.class); + } + + private ExtendGroupMapper getExtendGroupMapper() { + return MapperProxyFactory.getProxy(ExtendGroupMapper.class); + } + + private ExtService getExtService(User user) { + return ServiceUtil.getService(ExtServiceImpl.class, user); + } + + @Override public PageInfo getDeptListByPid(QuerySingleDeptListParam param) { @@ -56,24 +95,27 @@ public class DepartmentServiceImpl extends Service implements DepartmentService @Override public Map listPage(DeptSearchParam param) { Map datas = new HashMap<>(); - PageUtil.start(param.getCurrent(), param.getPageSize()); - List parentList = getDepartmentMapper().listParent(); - List list = new ArrayList<>(); - list.addAll(parentList); - - if (CollectionUtils.isNotEmpty(parentList)) { - // 递归查询子数据 - getChildPOs(parentList, list); - } DepartmentPO departmentPO = DepartmentBO.convertParamsToPO(param, (long) user.getUID()); - // 搜索条件过滤数据 - List filterList = filterListByParams(list, departmentPO); - - List departmentListDTOS = DepartmentBO.buildDeptDTOList(list, filterList); - PageInfo pageInfo = new PageInfo<>(departmentListDTOS); + boolean filter = isFilter(departmentPO); + PageInfo pageInfos; + List alltList = getDepartmentMapper().list(); + // 通过子级遍历父级元素 + if (filter) { + // 根据条件获取元素 + List filteDeptPOs = getDepartmentMapper().listByFilter(departmentPO); + // 添加父级元素 + List compListDTOS = DepartmentBO.buildDeptDTOList(alltList, filteDeptPOs); + List subList = PageUtil.subList(param.getCurrent(), param.getPageSize(), compListDTOS); + pageInfos = new PageInfo<>(subList, DepartmentListDTO.class); + pageInfos.setTotal(compListDTOS.size()); + } else { + // 组合list + List compListDTOS = DepartmentBO.buildDeptDTOList(alltList); + List subList = PageUtil.subList(param.getCurrent(), param.getPageSize(), compListDTOS); + pageInfos = new PageInfo<>(subList, DepartmentListDTO.class); + pageInfos.setTotal(compListDTOS.size()); + } - PageInfo pageInfos = new PageInfo<>(departmentListDTOS, DepartmentListDTO.class); - pageInfos.setTotal(pageInfo.getTotal()); pageInfos.setPageNum(param.getCurrent()); pageInfos.setPageSize(param.getPageSize()); @@ -81,22 +123,146 @@ public class DepartmentServiceImpl extends Service implements DepartmentService List columns = pageInfos.getColumns(); List weaTableColumn = columns.stream().map(v -> new WeaTableColumn("100", v.getTitle(), v.getKey())).collect(Collectors.toList()); - table.setColumns(weaTableColumn); WeaResultMsg result = new WeaResultMsg(false); result.putAll(table.makeDataResult()); result.success(); - datas.put("pageInfo", pageInfos); datas.put("dataKey", result.getResultMap()); return datas; } @Override - public int saveBaseComp(DeptSearchParam params) { - return 0; + public int saveBaseForm(DeptSearchParam params) { + List list = getDepartmentMapper().listByNo(Util.null2String(params.getDeptNo())); + OrganizationAssert.isEmpty(list, "编号不允许重复"); + DepartmentPO departmentPO = DepartmentBO.convertParamsToPO(params, (long) user.getUID()); + return getDepartmentMapper().insertIgnoreNull(departmentPO); + } + + @Override + public int updateForbiddenTagById(DeptSearchParam params) { + DepartmentPO departmentPO = DepartmentPO.builder().id(params.getId()).forbiddenTag(params.getForbiddenTag() ? 0 : 1).build(); + return getDepartmentMapper().updateForbiddenTagById(departmentPO); + } + + @Override + public int updateForm(Map params) { + DeptSearchParam searchParam = JSONObject.parseObject(JSONObject.toJSONString(params), DeptSearchParam.class); + String groupId = (String) params.get("viewCondition"); + DepartmentPO departmentPO = DepartmentBO.convertParamsToPO(searchParam, (long) user.getUID()); + int updateCount = 0; + // 更新主表数据 + updateCount += getDepartmentMapper().updateBaseDept(departmentPO); + // 更新主表拓展表 + updateCount += getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_DEPTEXT, params, groupId, departmentPO.getId()); + //更新明细表 + getExtService(user).updateExtDT(user, EXTEND_TYPE, JCL_ORG_DEPTEXT_DT1, params, departmentPO.getId()); + + return updateCount; + } + + @Override + public int deleteByIds(Collection ids) { + OrganizationAssert.notEmpty(ids, "请选择要删除的数据"); + return getDepartmentMapper().deleteByIds(ids); + } + + @Override + public Map getSearchCondition(Map params) { + Map apiDatas = new HashMap<>(); + List addGroups = new ArrayList<>(); + List conditionItems = new ArrayList<>(); + // 编号 + SearchConditionItem deptNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "编号", "deptNo"); + // 名称 + SearchConditionItem deptNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "名称", "deptName"); + // 简称 + SearchConditionItem deptNameShortItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "简称", "deptNameShort"); + // TODO + // 所属分部 + SearchConditionItem parentCompBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属分部", "161", "parentComp", "compBrowser"); + // 上级部门 + SearchConditionItem parentDeptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "上级部门", "161", "parentDept", "deptBrowser"); + // 部门负责人 + SearchConditionItem deptPrincipalBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "部门负责人", "1", "deptPrincipal", ""); + // 显示顺序 + SearchConditionItem showOrderItem = OrganizationFormItemUtil.inputNumberItem(user, 2, 16, 2, "显示顺序", "showOrder"); + // 禁用标记 + List selectOptions = new ArrayList<>(); + SearchConditionOption enableOption = new SearchConditionOption("true", "启用"); + SearchConditionOption disableOption = new SearchConditionOption("false", "禁用"); + selectOptions.add(enableOption); + selectOptions.add(disableOption); + SearchConditionItem forbiddenTagItem = OrganizationFormItemUtil.selectItem(user, selectOptions, 2, 16, 6, false, "禁用标记", "forbiddenTag"); + + conditionItems.add(deptNoItem); + conditionItems.add(deptNameItem); + conditionItems.add(deptNameShortItem); + conditionItems.add(parentCompBrowserItem); + conditionItems.add(parentDeptBrowserItem); + conditionItems.add(deptPrincipalBrowserItem); + conditionItems.add(showOrderItem); + conditionItems.add(forbiddenTagItem); + + addGroups.add(new SearchConditionGroup("高级搜索条件", true, conditionItems)); + apiDatas.put("conditions", addGroups); + return apiDatas; + } + + @Override + public Map getHasRight() { + Map btnDatas = new HashMap<>(); + ArrayList topMenuList = new ArrayList<>(); + ArrayList rightMenuList = new ArrayList<>(); + // 新增 + topMenuList.add(MenuBtn.topMenu_addNew()); + // 批量删除 + topMenuList.add(MenuBtn.topMenu_batchDelete()); + btnDatas.put("topMenu", topMenuList); + // 新增 + rightMenuList.add(MenuBtn.rightMenu_addNew()); + // 日志 + rightMenuList.add(MenuBtn.rightMenu_btnLog()); + btnDatas.put("rightMenu", rightMenuList); + return btnDatas; + } + + @Override + public Map getDeptBaseForm(Map params) { + OrganizationAssert.notNull(params.get("viewAttr"), "请标识操作类型"); + + // 2编辑 1查看 + int viewAttr = Integer.parseInt((String) params.get("viewAttr")); + long id = Long.parseLong((String) params.get("id")); + String groupId = (String) params.get("viewCondition"); + + HashMap buttonsMap = new HashMap<>(); + buttonsMap.put("hasEdit", true); + buttonsMap.put("hasSave", true); + + List addGroups = new ArrayList<>(); + if (StringUtil.isEmpty(groupId) || "0".equals(groupId)) { + addGroups.add(new SearchConditionGroup("基本信息", true, getBaseForm(viewAttr, id))); + } else { + addGroups.add(new SearchConditionGroup(getExtendGroupMapper().getGroupNameById(groupId), true, getExtService(user).getExtForm(user, EXTEND_TYPE, JCL_ORG_DEPTEXT, viewAttr, id, groupId))); + } + + HashMap resultMap = new HashMap<>(); + resultMap.put("buttons", buttonsMap); + resultMap.put("conditions", addGroups); + resultMap.put("id", id); + // 拓展页面分组 + resultMap.put("tabInfo", getExtService(user).getTabInfo(EXTEND_TYPE, JCL_ORG_DEPTEXT)); + // 处理明细表 + resultMap.put("tables", getExtService(user).getExtendTables(user, EXTEND_TYPE, JCL_ORG_DEPTEXT_DT1, id, viewAttr, false)); + Map apiDatas = new HashMap<>(); + + apiDatas.put("result", resultMap); + + return apiDatas; } @Override @@ -113,7 +279,6 @@ public class DepartmentServiceImpl extends Service implements DepartmentService // 简称 SearchConditionItem deptNameShortItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "简称", "deptNameShort"); deptNameShortItem.setRules("required|string"); - // TODO 自定义按钮 // 所属分部 SearchConditionItem compBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属分部", "161", "parentComp", "compBrowser"); //上级部门 @@ -142,47 +307,110 @@ public class DepartmentServiceImpl extends Service implements DepartmentService } /** - * 通过搜索条件过滤list数据 + * 是否为搜索查询 * - * @param departmentPOS * @param departmentPO * @return */ - private List filterListByParams(Collection departmentPOS, DepartmentPO departmentPO) { - // 搜索后的数据 - List filterList = new ArrayList<>(); - // 筛选数据 - for (Iterator iterator = departmentPOS.iterator(); iterator.hasNext(); ) { - DepartmentPO next = iterator.next(); - boolean isAdd = (StringUtil.isEmpty(departmentPO.getDeptName()) || next.getDeptName().contains(departmentPO.getDeptName())) // 名称 - && (StringUtil.isEmpty(departmentPO.getDeptNo()) || next.getDeptNo().contains(departmentPO.getDeptNo()))//编号 - && (StringUtil.isEmpty(departmentPO.getDeptNameShort()) || next.getDeptNameShort().contains(departmentPO.getDeptNameShort()))//简称 - && (null == departmentPO.getParentComp() || next.getParentComp().equals(departmentPO.getParentComp()))//所属分部 - && (null == departmentPO.getParentDept() || next.getParentDept().equals(departmentPO.getParentDept()))//上级部门 - && (null == departmentPO.getDeptPrincipal() || next.getDeptPrincipal().equals(departmentPO.getDeptPrincipal()))//部门负责人 - && (null == departmentPO.getShowOrder() || next.getShowOrder().equals(departmentPO.getShowOrder()))//显示顺序 - && (null == departmentPO.getForbiddenTag() || next.getForbiddenTag().equals(departmentPO.getForbiddenTag()));//禁用标记 - - if (isAdd) { - filterList.add(next); - } + private boolean isFilter(DepartmentPO departmentPO) { + return !(StringUtil.isEmpty(departmentPO.getDeptNo()) && StringUtil.isEmpty(departmentPO.getDeptName()) && StringUtil.isEmpty(departmentPO.getDeptNameShort()) && null == departmentPO.getParentComp() && null == departmentPO.getParentDept() && null == departmentPO.getDeptPrincipal() && null == departmentPO.getShowOrder() && null == departmentPO.getForbiddenTag()); + } + /** + * 基本信息基础表单 + * + * @param viewAttr + * @param id + * @return + */ + private List getBaseForm(int viewAttr, long id) { + List conditionItems = new ArrayList<>(); + // 编号 + SearchConditionItem deptNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "编号", "deptNo"); + deptNoItem.setRules("required|string"); + // 名称 + SearchConditionItem deptNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "名称", "deptName"); + deptNameItem.setRules("required|string"); + // 简称 + SearchConditionItem deptNameShortItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "简称", "deptNameShort"); + deptNameShortItem.setRules("required|string"); + // 所属分部 + SearchConditionItem parentCompBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属分部", "161", "parentComp", "compBrowser"); + // 上级部门 + SearchConditionItem parentDeptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "上级部门", "161", "parentDept", "deptBrowser"); + // 部门负责人 + SearchConditionItem deptPrincipalBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "部门负责人", "1", "deptPrincipal", ""); + // 显示顺序 + SearchConditionItem showOrderItem = OrganizationFormItemUtil.inputNumberItem(user, 2, 16, 2, "显示顺序", "showOrder"); + // 说明 + SearchConditionItem descriptionItem = OrganizationFormItemUtil.textareaItem(user, 2, 16, true, 2, 60, "说明", "description"); + + + conditionItems.add(deptNoItem); + conditionItems.add(deptNameItem); + conditionItems.add(deptNameShortItem); + conditionItems.add(parentCompBrowserItem); + conditionItems.add(parentDeptBrowserItem); + conditionItems.add(deptPrincipalBrowserItem); + conditionItems.add(showOrderItem); + conditionItems.add(descriptionItem); + + + // 编辑、查看状态赋值,设置只读状态 + + // 赋值 + DepartmentPO departmentPO = getDepartmentMapper().getDeptById(id); + OrganizationAssert.notNull(departmentPO, "数据不存在或数据已删除"); + deptNoItem.setValue(departmentPO.getDeptNo()); + deptNameItem.setValue(departmentPO.getDeptName()); + deptNameShortItem.setValue(departmentPO.getDeptNameShort()); + + // parentCompBrowserItem + if (null != departmentPO.getParentComp()) { + BrowserBean browserBean = parentCompBrowserItem.getBrowserConditionParam(); + browserBean.setReplaceDatas(creatReplaceDatas(departmentPO.getParentComp(), getCompMapper().listById(departmentPO.getParentComp()).getCompName())); + parentCompBrowserItem.setBrowserConditionParam(browserBean); + } + // parentDeptBrowserItem + if (null != departmentPO.getParentDept()) { + BrowserBean browserBean = parentDeptBrowserItem.getBrowserConditionParam(); + browserBean.setReplaceDatas(creatReplaceDatas(departmentPO.getParentDept(), getDepartmentMapper().getDeptById(departmentPO.getParentDept()).getDeptName())); + parentDeptBrowserItem.setBrowserConditionParam(browserBean); + } + // deptPrincipalBrowserItem + if (null != departmentPO.getDeptPrincipal()) { + BrowserBean browserBean = deptPrincipalBrowserItem.getBrowserConditionParam(); + browserBean.setReplaceDatas(creatReplaceDatas(departmentPO.getDeptPrincipal(), DepartmentBO.getEmployeeNameById(departmentPO.getDeptPrincipal()))); + deptPrincipalBrowserItem.setBrowserConditionParam(browserBean); + } + showOrderItem.setValue(departmentPO.getShowOrder()); + descriptionItem.setValue(departmentPO.getDescription()); + + // 查看,全部置位只读 + if (1 == viewAttr) { + for (SearchConditionItem item : conditionItems) { + item.setViewAttr(viewAttr); + } } - return filterList; + return conditionItems; } /** - * 递归获取子级数据 + * 浏览按钮类型赋值转换 * - * @param parentList - * @param list + * @param id + * @param name + * @return */ - private void getChildPOs(List parentList, List list) { - List ids = parentList.stream().map(DepartmentPO::getId).collect(Collectors.toList()); - List listChild = getDepartmentMapper().listChild(ids); - if (CollectionUtils.isNotEmpty(listChild)) { - list.addAll(listChild); - getChildPOs(listChild, list); - } + private List> creatReplaceDatas(Object id, Object name) { + List> datas = new ArrayList<>(); + Map map = new HashMap<>(); + map.put("id", id); + map.put("name", name); + datas.add(map); + return datas; + } + + } diff --git a/src/com/engine/organization/service/impl/GroupServiceImpl.java b/src/com/engine/organization/service/impl/GroupServiceImpl.java index d2f6d85b..47bb3e61 100644 --- a/src/com/engine/organization/service/impl/GroupServiceImpl.java +++ b/src/com/engine/organization/service/impl/GroupServiceImpl.java @@ -40,7 +40,6 @@ public class GroupServiceImpl extends Service implements GroupService { RecordSet rs = new RecordSet(); String sql = "select * from HrmCompany where id in(" + id + ")"; rs.executeQuery(sql); - rs.executeQuery(sql); int colcount = rs.getColCounts(); while (rs.next()) { Map row = new HashMap(); diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java new file mode 100644 index 00000000..e1a2bb04 --- /dev/null +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -0,0 +1,300 @@ +package com.engine.organization.service.impl; + +import com.api.hrm.bean.TreeNode; +import com.engine.core.impl.Service; +import com.engine.organization.entity.comp.bo.CompBO; +import com.engine.organization.entity.comp.po.CompPO; +import com.engine.organization.entity.department.bo.DepartmentBO; +import com.engine.organization.entity.department.po.DepartmentPO; +import com.engine.organization.entity.searchtree.SearchTree; +import com.engine.organization.entity.searchtree.SearchTreeParams; +import com.engine.organization.mapper.comp.CompMapper; +import com.engine.organization.mapper.department.DepartmentMapper; +import com.engine.organization.service.JobService; +import com.engine.organization.util.db.MapperProxyFactory; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; +import weaver.general.StringUtil; +import weaver.general.Util; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/26 + * @version: 1.0 + */ +public class JobServiceImpl extends Service implements JobService { + + private static final String TYPE_GROUP = "0"; + private static final String TYPE_COMP = "1"; + private static final String TYPE_DEPT = "2"; + + private CompMapper getCompMapper() { + return MapperProxyFactory.getProxy(CompMapper.class); + } + + private DepartmentMapper getDepartmentMapper() { + return MapperProxyFactory.getProxy(DepartmentMapper.class); + } + + @Override + public Map getSearchTree(SearchTreeParams params) { + Map dataMap = new HashMap<>(); + SearchTree topGroup = getTopGroup(); + // 集团 + List companyList = new ArrayList<>(); + companyList.add(topGroup); + String keyword = params.getKeyword(); + String type = Util.null2String(params.getType()); + String id = params.getId(); + // 没有搜索条件查询 + if (StringUtil.isEmpty(keyword)) { + // 无条件,初始化树结构 + if (StringUtil.isEmpty(type)) { + dataMap.put("companys", companyList); + SearchTree rootCompany = getTopGroup(); + rootCompany.setSubs(getCompany("", "")); + rootCompany.setIsParent(CollectionUtils.isNotEmpty(rootCompany.getSubs())); + Map rootCompanyMap = new HashMap<>(); + rootCompanyMap.put("rootCompany", rootCompany); + dataMap.put("datas", rootCompanyMap); + } else { + // 根据ID查询 + dataMap.put("datas", getCompany(id, type)); + } + } else { + if (StringUtil.isEmpty(type)) { + List collect = getFilterCompany(id, type, keyword); + + SearchTree rootCompany = getTopGroup(); + rootCompany.setSubs(collect); + rootCompany.setIsParent(CollectionUtils.isNotEmpty(rootCompany.getSubs())); + Map rootCompanyMap = new HashMap<>(); + rootCompanyMap.put("rootCompany", rootCompany); + dataMap.put("datas", rootCompanyMap); + + dataMap.put("companys", companyList); + } else { + dataMap.put("datas", getFilterCompany(id, type, keyword)); + } + + } + + return dataMap; + } + + /** + * 添加查询元素的父级元素 + * + * @param departmentPO + * @param builderDeparts + */ + private void buildParentDepts(DepartmentPO departmentPO, Set builderDeparts) { + builderDeparts.add(departmentPO); + if (isTop(departmentPO.getParentDept())) { + return; + } + DepartmentPO parentDept = getDepartmentMapper().getDeptById(departmentPO.getParentDept()); + if (null != parentDept) { + buildParentDepts(parentDept, builderDeparts); + } + } + + /** + * 添加查询元素的父级元素 + * + * @param compPO + * @param builderComps + */ + private void buildParentComps(CompPO compPO, Set builderComps) { + builderComps.add(compPO); + if (isTop(compPO.getParentCompany())) { + return; + } + CompPO parentComp = getCompMapper().listById(compPO.getParentCompany()); + if (null != parentComp) { + buildParentComps(parentComp, builderComps); + } + } + + /** + * 获取集团 + * + * @return + */ + private SearchTree getTopGroup() { + RecordSet rs = new RecordSet(); + String sql = "select * from HrmCompany "; + rs.executeQuery(sql); + SearchTree groupTree = new SearchTree(); + groupTree.setCanClick(false); + groupTree.setCanceled(false); + groupTree.setCompanyid("1"); + groupTree.setIcon("icon-coms-LargeArea"); + groupTree.setId("0"); + groupTree.setIsVirtual("0"); + while (rs.next()) { + groupTree.setName(rs.getString("COMPANYNAME")); + } + groupTree.setSelected(false); + groupTree.setType(TYPE_GROUP); + return groupTree; + } + + /** + * 获取分部数据 + * + * @param id + * @return + */ + private List getCompany(String id, String type) { + List compSearchTree = new ArrayList<>(); + List compPOS; + if (StringUtils.isAllEmpty(id, type)) { + compPOS = getCompMapper().listParent(); + compSearchTree.addAll(CompBO.buildListToSearchTree(compPOS)); + } else { + if (TYPE_COMP.equals(type)) { + compPOS = getCompMapper().listChildByPID(id); + // 获取该分部下的部门 + List deptListByCompId = getDepartmentMapper().getDeptListByCompId(Integer.parseInt(id)).stream().filter(item -> null == item.getParentDept()).collect(Collectors.toList()); + compSearchTree.addAll(CompBO.buildListToSearchTree(compPOS)); + compSearchTree.addAll(DepartmentBO.buildListToSearchTree(deptListByCompId)); + } else if (TYPE_DEPT.equals(type)) { + List deptListByCompId = getDepartmentMapper().getDeptListByPId(Long.parseLong(id)); + compSearchTree.addAll(DepartmentBO.buildListToSearchTree(deptListByCompId)); + } + } + return compSearchTree; + } + + private List getFilterCompany(String id, String type, String keyword) { + List compSearchTree = new ArrayList<>(); + if (StringUtils.isAllEmpty(id, type)) { + // 查询部门信息 + List filterDeparts = getDepartmentMapper().listByFilter(DepartmentPO.builder().deptName(keyword).build()); + Set builderDeparts = new HashSet<>(); + for (DepartmentPO departmentPO : filterDeparts) { + buildParentDepts(departmentPO, builderDeparts); + } + List deptTrees = builderTreeMode(DepartmentBO.buildSetToSearchTree(builderDeparts)); + + // 查询分部信息 + List filterComps = getCompMapper().listByFilter(CompPO.builder().compName(keyword).build()); + Set builderComps = new HashSet<>(); + for (CompPO compPO : filterComps) { + buildParentComps(compPO, builderComps); + } + List compTrees = builderTreeMode(CompBO.buildSetToSearchTree(builderComps), deptTrees); + + // 排序,设置是否为叶子节点 + List collect = compTrees.stream().peek(item -> + item.setIsParent(CollectionUtils.isNotEmpty(item.getSubs())) + ).sorted(Comparator.comparing(item -> Integer.parseInt(item.getId()))).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(collect)) { + compSearchTree.addAll(collect); + } + } else { + if (TYPE_COMP.equals(type)) { // 查询部门信息 + List filterDeparts = getDepartmentMapper().listByFilter(DepartmentPO.builder().deptName(keyword).parentComp(Long.parseLong(id)).build()); + Set builderDeparts = new HashSet<>(); + for (DepartmentPO departmentPO : filterDeparts) { + buildParentDepts(departmentPO, builderDeparts); + } + List deptTrees = builderTreeMode(DepartmentBO.buildSetToSearchTree(builderDeparts)); + + // 查询分部信息 + List filterComps = getCompMapper().listByFilter(CompPO.builder().compName(keyword).parentCompany(Long.parseLong(id)).build()); + Set builderComps = new HashSet<>(); + for (CompPO compPO : filterComps) { + buildParentComps(compPO, builderComps); + } + List compTrees = builderTreeMode(CompBO.buildSetToSearchTree(builderComps), deptTrees); + + // 排序,设置是否为叶子节点 + List collect = compTrees.stream().peek(item -> + item.setIsParent(CollectionUtils.isNotEmpty(item.getSubs())) + ).sorted(Comparator.comparing(item -> Integer.parseInt(item.getId()))).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(collect)) { + compSearchTree.addAll(collect); + } + } else if (TYPE_DEPT.equals(type)) { + List filterDeparts = getDepartmentMapper().listByFilter(DepartmentPO.builder().deptName(keyword).parentDept(Long.parseLong(id)).build()); + Set builderDeparts = new HashSet<>(); + for (DepartmentPO departmentPO : filterDeparts) { + buildParentDepts(departmentPO, builderDeparts); + } + List deptTrees = builderTreeMode(DepartmentBO.buildSetToSearchTree(builderDeparts)); + // 排序,设置是否为叶子节点 + List collect = deptTrees.stream().peek(item -> + item.setIsParent(CollectionUtils.isNotEmpty(item.getSubs())) + ).sorted(Comparator.comparing(item -> Integer.parseInt(item.getId()))).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(collect)) { + compSearchTree.addAll(collect); + } + } + } + return compSearchTree; + } + + /** + * 判断是为顶层数据 + * + * @param pid + * @return + */ + private boolean isTop(Long pid) { + return null == pid; + } + + /** + * 判断是为顶层数据 + * + * @param pid + * @return + */ + private boolean isTop(String pid) { + return StringUtil.isEmpty(pid) || "0".equals(pid); + } + + + /** + * 处理树层级 + * + * @param treeList + * @return + */ + private List builderTreeMode(List treeList) { + Map> collects = treeList.stream().collect(Collectors.groupingBy(TreeNode::getPid)); + return treeList.stream().peek(e -> e.setSubs(collects.get(e.getId()))).filter(item -> isTop(item.getPid())).collect(Collectors.toList()); + } + + /** + * 组合分部、部门层级关系 + * + * @param treeList + * @param deptTrees + * @return + */ + private List builderTreeMode(List treeList, List deptTrees) { + Map> parentMap = treeList.stream().collect(Collectors.groupingBy(TreeNode::getPid)); + Map> childMap = deptTrees.stream().collect(Collectors.groupingBy(SearchTree::getParentComp)); + boolean isAdd = !childMap.isEmpty(); + return treeList.stream().peek(e -> { + List treeNodes = new ArrayList<>(); + List nodes = parentMap.get(e.getId()); + if (CollectionUtils.isNotEmpty(nodes)) { + treeNodes.addAll(nodes); + } + if (isAdd && CollectionUtils.isNotEmpty(childMap.get(e.getId()))) { + treeNodes.addAll(childMap.get(e.getId())); + } + e.setSubs(treeNodes); + }).filter(item -> isTop(item.getPid())).collect(Collectors.toList()); + } + +} diff --git a/src/com/engine/organization/web/CompController.java b/src/com/engine/organization/web/CompController.java index a5938a37..7e92cd59 100644 --- a/src/com/engine/organization/web/CompController.java +++ b/src/com/engine/organization/web/CompController.java @@ -93,7 +93,7 @@ public class CompController { } /** - * 更新禁用标记 + * 更新表单 * * @param request * @param response diff --git a/src/com/engine/organization/web/DepartmentController.java b/src/com/engine/organization/web/DepartmentController.java index e191dc0d..3a6a6738 100644 --- a/src/com/engine/organization/web/DepartmentController.java +++ b/src/com/engine/organization/web/DepartmentController.java @@ -1,6 +1,8 @@ package com.engine.organization.web; +import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; +import com.engine.organization.entity.QueryParam; import com.engine.organization.entity.department.param.DeptSearchParam; import com.engine.organization.entity.department.param.QuerySingleDeptListParam; import com.engine.organization.util.response.ReturnResult; @@ -17,6 +19,7 @@ import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; +import java.util.Map; /** * @Author weaver_cl @@ -52,7 +55,7 @@ public class DepartmentController { * @return */ @POST - @Path("/listDept") + @Path("/listPage") @Produces(MediaType.APPLICATION_JSON) public ReturnResult listDept(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeptSearchParam params) { try { @@ -63,6 +66,146 @@ public class DepartmentController { } } + /** + * 保存公司/分部基础信息 + * + * @param request + * @param response + * @param params + * @return + */ + @POST + @Path("/saveBaseForm") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult saveBaseComp(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeptSearchParam params) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getDepartmentWrapper(user).saveBaseForm(params)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 更新禁用标记 + * + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/updateForbiddenTagById") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult updateForbiddenTagById(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeptSearchParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getDepartmentWrapper(user).updateForbiddenTagById(param)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 更新表单 + * + * @param request + * @param response + * @return + */ + @POST + @Path("/updateForm") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult updateForm(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + return ReturnResult.successed(getDepartmentWrapper(user).updateForm(map)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + + /** + * 根据ID批量删除数据 + * + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/deleteByIds") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody QueryParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getDepartmentWrapper(user).deleteByIds(param.getIds())); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 高级搜索条件 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getSearchCondition") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getSearchCondition(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + return ReturnResult.successed(getDepartmentWrapper(user).getSearchCondition(map)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 列表页顶部按钮 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getHasRight") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getHasRight(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getDepartmentWrapper(user).getHasRight()); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 获取基础表单 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getDeptBaseForm") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getCompBaseForm(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + return ReturnResult.successed(getDepartmentWrapper(user).getDeptBaseForm(map)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + /** * 新增保存表单 * diff --git a/src/com/engine/organization/web/JobController.java b/src/com/engine/organization/web/JobController.java new file mode 100644 index 00000000..ef405ec4 --- /dev/null +++ b/src/com/engine/organization/web/JobController.java @@ -0,0 +1,42 @@ +package com.engine.organization.web; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.engine.common.util.ParamUtil; +import com.engine.common.util.ServiceUtil; +import com.engine.organization.entity.searchtree.SearchTreeParams; +import com.engine.organization.wrapper.JobWrapper; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.Map; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/27 + * @version: 1.0 + */ +public class JobController { + public JobWrapper getJobWrapper(User user) { + return ServiceUtil.getService(JobWrapper.class, user); + } + + @GET + @Path("/getSearchTree") + @Produces(MediaType.APPLICATION_JSON) + public Map getSearchTree(@Context HttpServletRequest request, @Context HttpServletResponse response) { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + SearchTreeParams params = JSONObject.toJavaObject((JSON) JSONObject.toJSON(map), SearchTreeParams.class); + return getJobWrapper(user).getSearchTree(params); + + } +} diff --git a/src/com/engine/organization/wrapper/DepartmentWrapper.java b/src/com/engine/organization/wrapper/DepartmentWrapper.java index 8e90b9fc..363ae0f4 100644 --- a/src/com/engine/organization/wrapper/DepartmentWrapper.java +++ b/src/com/engine/organization/wrapper/DepartmentWrapper.java @@ -4,13 +4,14 @@ import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.organization.entity.department.param.DeptSearchParam; import com.engine.organization.entity.department.param.QuerySingleDeptListParam; +import com.engine.organization.entity.department.vo.SingleDeptTreeVO; import com.engine.organization.service.DepartmentService; import com.engine.organization.service.impl.DepartmentServiceImpl; import com.engine.organization.util.page.PageInfo; import com.engine.organization.util.response.ReturnResult; -import com.engine.organization.entity.department.vo.SingleDeptTreeVO; import weaver.hrm.User; +import java.util.Collection; import java.util.Map; /** @@ -48,4 +49,74 @@ public class DepartmentWrapper extends Service { public Map getSaveForm() { return getDepartmentService(user).getSaveForm(); } + + /** + * 保存部门基础信息 + * + * @param params + * @return + */ + public int saveBaseForm(DeptSearchParam params) { + return getDepartmentService(user).saveBaseForm(params); + } + + + /** + * 更新禁用标记 + * + * @param params + */ + public int updateForbiddenTagById(DeptSearchParam params) { + return getDepartmentService(user).updateForbiddenTagById(params); + } + + /** + * 更新分部主表、拓展表、明细表 + * + * @param params + * @return + */ + public int updateForm(Map params) { + return getDepartmentService(user).updateForm(params); + } + + /** + * 根据ID批量删除 + * + * @param ids + */ + public int deleteByIds(Collection ids) { + return getDepartmentService(user).deleteByIds(ids); + } + + /** + * 获取搜索条件 + * + * @param params + * @return + */ + public Map getSearchCondition(Map params) { + return getDepartmentService(user).getSearchCondition(params); + } + + /** + * 获取列表页面按钮信息 + * + * @return + */ + public Map getHasRight() { + return getDepartmentService(user).getHasRight(); + } + + /** + * 获取基本信息表单 + * + * @param params + * @return + */ + public Map getDeptBaseForm(Map params) { + return getDepartmentService(user).getDeptBaseForm(params); + } + + } diff --git a/src/com/engine/organization/wrapper/JobWrapper.java b/src/com/engine/organization/wrapper/JobWrapper.java new file mode 100644 index 00000000..a833d728 --- /dev/null +++ b/src/com/engine/organization/wrapper/JobWrapper.java @@ -0,0 +1,27 @@ +package com.engine.organization.wrapper; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.organization.entity.searchtree.SearchTreeParams; +import com.engine.organization.service.JobService; +import com.engine.organization.service.impl.JobServiceImpl; +import weaver.hrm.User; + +import java.util.Map; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/27 + * @version: 1.0 + */ +public class JobWrapper extends Service { + private JobService getJobService(User user) { + return ServiceUtil.getService(JobServiceImpl.class, user); + } + + public Map getSearchTree(SearchTreeParams params) { + return getJobService(user).getSearchTree(params); + } + +} From 92953661ffdf8c2ea6d13ee7d1951eb2e0b50bd1 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Sun, 29 May 2022 21:41:20 +0800 Subject: [PATCH 08/26] =?UTF-8?q?=E9=83=A8=E9=97=A8=E3=80=81=E5=B2=97?= =?UTF-8?q?=E4=BD=8D=E6=8E=A5=E5=8F=A3=E5=BC=80=E5=8F=91=EF=BC=9B=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E5=90=88=E5=B9=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/entity/comp/bo/CompBO.java | 19 -- .../entity/department/bo/DepartmentBO.java | 20 +- .../organization/mapper/comp/CompMapper.java | 8 + .../organization/mapper/comp/CompMapper.xml | 11 ++ .../mapper/department/DepartmentMapper.java | 2 +- .../mapper/department/DepartmentMapper.xml | 3 +- .../service/impl/DepartmentServiceImpl.java | 2 +- .../service/impl/JobServiceImpl.java | 186 +++++++----------- 8 files changed, 101 insertions(+), 150 deletions(-) diff --git a/src/com/engine/organization/entity/comp/bo/CompBO.java b/src/com/engine/organization/entity/comp/bo/CompBO.java index e9133ee4..a5a12f76 100644 --- a/src/com/engine/organization/entity/comp/bo/CompBO.java +++ b/src/com/engine/organization/entity/comp/bo/CompBO.java @@ -5,8 +5,6 @@ import com.engine.organization.entity.comp.dto.CompListDTO; import com.engine.organization.entity.comp.param.CompSearchParam; import com.engine.organization.entity.comp.po.CompPO; import com.engine.organization.entity.searchtree.SearchTree; -import com.engine.organization.mapper.comp.CompMapper; -import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.collections.CollectionUtils; import weaver.crm.Maint.SectorInfoComInfo; import weaver.general.StringUtil; @@ -63,23 +61,6 @@ public class CompBO { } - public static List buildListToSearchTree(List comps) { - return comps.stream().map(item -> { - SearchTree tree = new SearchTree(); - tree.setCanClick(true); - tree.setCanceled(false); - tree.setIcon("icon-coms-LargeArea"); - tree.setId(item.getId().toString()); - tree.setIsParent(MapperProxyFactory.getProxy(CompMapper.class).countChildByPID(item.getId()) > 0); - tree.setIsVirtual("0"); - tree.setName(item.getCompName()); - tree.setPid(null == item.getParentCompany() ? "0" : item.getParentCompany().toString()); - tree.setSelected(false); - tree.setType("1"); - return tree; - }).collect(Collectors.toList()); - } - public static List buildSetToSearchTree(Set comps) { return comps.stream().map(item -> { SearchTree tree = new SearchTree(); diff --git a/src/com/engine/organization/entity/department/bo/DepartmentBO.java b/src/com/engine/organization/entity/department/bo/DepartmentBO.java index 03595eb3..4937f452 100644 --- a/src/com/engine/organization/entity/department/bo/DepartmentBO.java +++ b/src/com/engine/organization/entity/department/bo/DepartmentBO.java @@ -63,7 +63,7 @@ public class DepartmentBO { return Collections.emptyList(); } - List singleDeptTreeVOS = departmentPOs.stream().map(e -> SingleDeptTreeVO.builder().id(e.getId()).deptName(e.getDeptName()).parentComp(e.getParentComp()).parentDept(e.getParentDept()).parentDeptName(e.getParentDept() == null ? "" : getDeptNameById(e.getParentDept().intValue())).deptPrincipalName(getEmployeeNameById((long) e.getDeptPrincipal())).build()).collect(Collectors.toList()); + List singleDeptTreeVOS = departmentPOs.stream().map(e -> SingleDeptTreeVO.builder().id(e.getId()).deptName(e.getDeptName()).parentComp(e.getParentComp()).parentDept(e.getParentDept()).parentDeptName(e.getParentDept() == null ? "" : getDeptNameById(e.getParentDept().intValue())).deptPrincipalName(getEmployeeNameById(e.getDeptPrincipal())).build()).collect(Collectors.toList()); //获取非一级部门 Map> collects = singleDeptTreeVOS.stream().filter(item -> !parentComp.equals(item.getParentComp()) && null != item.getParentDept()).collect(Collectors.groupingBy(SingleDeptTreeVO::getParentDept)); @@ -73,22 +73,6 @@ public class DepartmentBO { }).filter(item -> parentComp.equals(item.getParentComp())).collect(Collectors.toList()); } - public static List buildListToSearchTree(List departmentPOS) { - return departmentPOS.stream().map(item -> { - SearchTree tree = new SearchTree(); - tree.setCanClick(true); - tree.setCanceled(false); - tree.setIcon("icon-coms-Branch"); - tree.setId(item.getId().toString()); - tree.setIsParent(MapperProxyFactory.getProxy(DepartmentMapper.class).countChildByPID(item.getId()) > 0); - tree.setIsVirtual("0"); - tree.setName(item.getDeptName()); - tree.setPid(null == item.getParentDept() ? (null == item.getParentComp() ? "0" : item.getParentComp().toString()) : item.getParentDept().toString()); - tree.setSelected(false); - tree.setType("2"); - return tree; - }).collect(Collectors.toList()); - } public static List buildSetToSearchTree(Set departmentPOS) { return departmentPOS.stream().map(item -> { @@ -97,7 +81,7 @@ public class DepartmentBO { tree.setCanceled(false); tree.setIcon("icon-coms-Branch"); tree.setId(item.getId().toString()); - tree.setIsParent(MapperProxyFactory.getProxy(DepartmentMapper.class).countChildByPID(item.getId()) > 0); + tree.setIsParent(false); tree.setIsVirtual("0"); tree.setName(item.getDeptName()); tree.setPid(null == item.getParentDept() ? "0" : item.getParentDept().toString()); diff --git a/src/com/engine/organization/mapper/comp/CompMapper.java b/src/com/engine/organization/mapper/comp/CompMapper.java index 38dd7109..48145ffe 100644 --- a/src/com/engine/organization/mapper/comp/CompMapper.java +++ b/src/com/engine/organization/mapper/comp/CompMapper.java @@ -86,6 +86,14 @@ public interface CompMapper { */ List> listCompsByIds(@Param("ids") Collection ids); + /** + * 根据ID批量查询数据 + * @param ids + * @return + */ + List getCompsByIds(@Param("ids") Collection ids); + + /** * 保存公司/分部基础信息 diff --git a/src/com/engine/organization/mapper/comp/CompMapper.xml b/src/com/engine/organization/mapper/comp/CompMapper.xml index ce41d4fd..b5082822 100644 --- a/src/com/engine/organization/mapper/comp/CompMapper.xml +++ b/src/com/engine/organization/mapper/comp/CompMapper.xml @@ -208,6 +208,7 @@ #{id} + + update jcl_org_comp diff --git a/src/com/engine/organization/mapper/department/DepartmentMapper.java b/src/com/engine/organization/mapper/department/DepartmentMapper.java index 91158f9c..0f3fa4e1 100644 --- a/src/com/engine/organization/mapper/department/DepartmentMapper.java +++ b/src/com/engine/organization/mapper/department/DepartmentMapper.java @@ -15,7 +15,7 @@ import java.util.Map; **/ public interface DepartmentMapper { - List getDeptListByCompId(); + List getDeptListByCompId(@Param("parentComp") Integer parentComp); List getDeptListByPId(@Param("PId") Long PId); diff --git a/src/com/engine/organization/mapper/department/DepartmentMapper.xml b/src/com/engine/organization/mapper/department/DepartmentMapper.xml index cf065921..b1a22c78 100644 --- a/src/com/engine/organization/mapper/department/DepartmentMapper.xml +++ b/src/com/engine/organization/mapper/department/DepartmentMapper.xml @@ -35,9 +35,10 @@ + SELECT + a.comp_name , + b.dept_name , + c.sequence_name, + d.scheme_name, + + FROM jcl_org_job t + inner join jcl_org_comp a on + t.parent_comp = a.id + inner join jcl_org_dept b on + t.parent_dept = b.id + left join jcl_org_sequence c on + t.sequence_id = c.id + left join jcl_org_scheme d on + t.scheme_id = d.id + WHERE t.delete_type = 0 + + + and t.parent_comp = #{parentComp} + + + and t.parent_dept = #{parentDept} + + + and t.sequence_id = #{sequenceId} + + + and t.scheme_id = #{schemeId} + + + and t.is_key = #{isKey} + + + and t.forbidden_tag = #{forbiddenTag} + + + + + + + + + + + + + + and t.job_no like CONCAT('%',#{jobNo},'%') + + + and t.job_name like CONCAT('%',#{jobName},'%') + + + and t.workplace like CONCAT('%',#{workplace},'%') + + + and t.description like CONCAT('%',#{description},'%') + + + and t.work_duty like CONCAT('%',#{workDuty},'%') + + + and t.work_authority like CONCAT('%',#{workAuthority},'%') + + + + + + and t.job_no like '%'||#{jobNo}||'%' + + + and t.job_name like '%'||#{jobName}||'%' + + + and t.workplace like '%'||#{workplace}||'%' + + + and t.description like '%'||#{description}||'%' + + + and t.work_duty like '%'||#{workDuty}||'%' + + + and t.work_authority like '%'||#{workAuthority}||'%' + + + + + + and t.job_no like '%'+#{jobNo}+'%' + + + and t.job_name like '%'+#{jobName}+'%' + + + and t.workplace like '%'+#{workplace}+'%' + + + and t.description like '%'+#{description}+'%' + + + and t.work_duty like '%'+#{workDuty}+'%' + + + and t.work_authority like '%'+#{workAuthority}+'%' + + + \ No newline at end of file diff --git a/src/com/engine/organization/service/JobService.java b/src/com/engine/organization/service/JobService.java index 7fd0c6d8..3b516618 100644 --- a/src/com/engine/organization/service/JobService.java +++ b/src/com/engine/organization/service/JobService.java @@ -1,7 +1,9 @@ package com.engine.organization.service; +import com.engine.organization.entity.job.param.JobSearchParam; import com.engine.organization.entity.searchtree.SearchTreeParams; +import java.util.Collection; import java.util.Map; /** @@ -17,4 +19,73 @@ public interface JobService { * @return */ Map getSearchTree(SearchTreeParams params); + + /** + * 列表数据展示 + * + * @param param + * @return + */ + Map listPage(JobSearchParam param); + + /** + * 获取列表页面按钮信息 + * + * @return + */ + Map getHasRight(); + + /** + * 获取搜索条件 + * + * @return + */ + Map getSearchCondition(); + + /** + * 获取新增表单 + * + * @return + */ + Map getSaveForm(); + + /** + * 获取详细表单 + * + * @param params + * @return + */ + Map getJobBaseForm(Map params); + + /** + * 保存基础信息 + * + * @param params + * @return + */ + int saveBaseForm(JobSearchParam params); + + /** + * 更新主表、拓展表、明细表 + * + * @param params + * @return + */ + int updateForm(Map params); + + /** + * 更新禁用标记 + * + * @param params + * @return + */ + int updateForbiddenTagById(JobSearchParam params); + + /** + * 根据ID批量删除 + * + * @param ids + */ + int deleteByIds(Collection ids); + } diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index eb71723b..1819cf7d 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -49,7 +49,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService * 2:部门 * 3:岗位 */ - private static final String EXTEND_TYPE = "w"; + private static final String EXTEND_TYPE = "2"; /** * 主表拓展表 */ @@ -152,7 +152,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService public int updateForm(Map params) { DeptSearchParam searchParam = JSONObject.parseObject(JSONObject.toJSONString(params), DeptSearchParam.class); String groupId = (String) params.get("viewCondition"); - DepartmentPO departmentPO = DepartmentBO.convertParamsToPO(searchParam, (long) user.getUID()); + DepartmentPO departmentPO = DepartmentBO.convertParamsToPO(searchParam,user.getUID()); int updateCount = 0; // 更新主表数据 updateCount += getDepartmentMapper().updateBaseDept(departmentPO); @@ -326,8 +326,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService private List getBaseForm(int viewAttr, long id) { List conditionItems = new ArrayList<>(); // 编号 - SearchConditionItem deptNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "编号", "deptNo"); - deptNoItem.setRules("required|string"); + SearchConditionItem deptNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 1, 50, "编号", "deptNo"); // 名称 SearchConditionItem deptNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "名称", "deptName"); deptNameItem.setRules("required|string"); diff --git a/src/com/engine/organization/service/impl/ExtServiceImpl.java b/src/com/engine/organization/service/impl/ExtServiceImpl.java index 27183143..9c84c69e 100644 --- a/src/com/engine/organization/service/impl/ExtServiceImpl.java +++ b/src/com/engine/organization/service/impl/ExtServiceImpl.java @@ -28,6 +28,13 @@ import java.util.stream.Collectors; public class ExtServiceImpl extends Service implements ExtService { private static final Integer BROWSER_TYPE = 3; + /** + * 分组类型 + * 1:分部 + * 2:部门 + * 3:岗位 + */ + private static final String TYPE_JOB = "3"; private ExtendInfoMapper getExtendInfoMapper() { return MapperProxyFactory.getProxy(ExtendInfoMapper.class); @@ -60,7 +67,7 @@ public class ExtServiceImpl extends Service implements ExtService { for (ExtendInfoPO extendInfoPO : infoPOList) { SearchConditionItem item = ExtendInfoBO.getSearchConditionItem(user, viewAttr, extendInfoPO, null == compExtMap ? null : compExtMap.get(extendInfoPO.getFieldName())); item.setFieldcol(16); - if ( 2 == viewAttr && 1 == extendInfoPO.getIsrequired()) { + if (2 == viewAttr && 1 == extendInfoPO.getIsrequired()) { item.setViewAttr(3); item.setRules("required|string"); } @@ -91,6 +98,9 @@ public class ExtServiceImpl extends Service implements ExtService { } return item.getFieldName(); }).collect(Collectors.joining(",")); + //if (TYPE_JOB.equals(extendType)) { + // fields += ""; + //} // 去除null 元素 List> maps = getExtDTMapper().listCompExtDT(tableName, id, fields); maps.removeIf(Objects::isNull); @@ -167,6 +177,13 @@ public class ExtServiceImpl extends Service implements ExtService { } map.put(extendInfoPO.getFieldName(), params.get(extendInfoPO.getFieldName() + "_" + i)); } + //// 岗位管理,添加特殊字段 + //if (TYPE_JOB.equals(extendType)) { + // map.put("level_id", params.get("level_id_" + i)); + // map.put("level_id_span", params.get("level_id_span_" + i)); + // map.put("grade_id", params.get("grade_id_" + i)); + // map.put("grade_id_span", params.get("grade_id_span_" + i)); + //} map.put("mainid", id); map.put("creator", user.getUID()); map.put("delete_type", 0); diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index 012f324e..6970730a 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -1,22 +1,48 @@ package com.engine.organization.service.impl; +import com.alibaba.fastjson.JSONObject; +import com.api.browser.bean.BrowserBean; +import com.api.browser.bean.SearchConditionGroup; +import com.api.browser.bean.SearchConditionItem; +import com.api.browser.bean.SearchConditionOption; import com.api.hrm.bean.TreeNode; +import com.cloudstore.eccom.pc.table.WeaTableColumn; +import com.cloudstore.eccom.result.WeaResultMsg; +import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.organization.component.OrganizationWeaTable; import com.engine.organization.entity.QueryParam; import com.engine.organization.entity.comp.bo.CompBO; import com.engine.organization.entity.comp.po.CompPO; import com.engine.organization.entity.department.bo.DepartmentBO; +import com.engine.organization.entity.department.dto.DepartmentListDTO; import com.engine.organization.entity.department.po.DepartmentPO; +import com.engine.organization.entity.job.bo.JobBO; +import com.engine.organization.entity.job.dto.JobListDTO; +import com.engine.organization.entity.job.param.JobSearchParam; +import com.engine.organization.entity.job.po.JobPO; import com.engine.organization.entity.searchtree.SearchTree; import com.engine.organization.entity.searchtree.SearchTreeParams; import com.engine.organization.mapper.comp.CompMapper; import com.engine.organization.mapper.department.DepartmentMapper; +import com.engine.organization.mapper.extend.ExtendGroupMapper; +import com.engine.organization.mapper.job.JobMapper; +import com.engine.organization.mapper.scheme.SchemeMapper; +import com.engine.organization.mapper.sequence.SequenceMapper; +import com.engine.organization.service.ExtService; import com.engine.organization.service.JobService; +import com.engine.organization.util.MenuBtn; +import com.engine.organization.util.OrganizationAssert; +import com.engine.organization.util.OrganizationFormItemUtil; import com.engine.organization.util.db.MapperProxyFactory; +import com.engine.organization.util.page.Column; +import com.engine.organization.util.page.PageInfo; +import com.engine.organization.util.page.PageUtil; import org.apache.commons.collections4.CollectionUtils; import weaver.conn.RecordSet; import weaver.general.StringUtil; import weaver.general.Util; +import weaver.hrm.User; import java.util.*; import java.util.stream.Collectors; @@ -29,10 +55,37 @@ import java.util.stream.Collectors; */ public class JobServiceImpl extends Service implements JobService { + /** + * 左侧树 类型表示 + *

+ * 0:集团 + * 1:分部 + * 2:部门 + */ private static final String TYPE_GROUP = "0"; private static final String TYPE_COMP = "1"; private static final String TYPE_DEPT = "2"; + /** + * 分组类型 + * 1:分部 + * 2:部门 + * 3:岗位 + */ + private static final String EXTEND_TYPE = "3"; + /** + * 主表拓展表 + */ + private static final String JCL_ORG_JOBEXT = "JCL_ORG_JOBEXT"; + /** + * 明细表拓展表 + */ + private static final String JCL_ORG_JOBEXT_DT1 = "JCL_ORG_JOBEXT_DT1"; + + private JobMapper getJobMapper() { + return MapperProxyFactory.getProxy(JobMapper.class); + } + private CompMapper getCompMapper() { return MapperProxyFactory.getProxy(CompMapper.class); } @@ -41,6 +94,23 @@ public class JobServiceImpl extends Service implements JobService { return MapperProxyFactory.getProxy(DepartmentMapper.class); } + private SequenceMapper getSequenceMapper() { + return MapperProxyFactory.getProxy(SequenceMapper.class); + } + + private SchemeMapper getSchemeMapper() { + return MapperProxyFactory.getProxy(SchemeMapper.class); + } + + private ExtendGroupMapper getExtendGroupMapper() { + return MapperProxyFactory.getProxy(ExtendGroupMapper.class); + } + + private ExtService getExtService(User user) { + return ServiceUtil.getService(ExtServiceImpl.class, user); + } + + @Override public Map getSearchTree(SearchTreeParams params) { Map dataMap = new HashMap<>(); @@ -70,6 +140,249 @@ public class JobServiceImpl extends Service implements JobService { return dataMap; } + @Override + public Map listPage(JobSearchParam param) { + Map datas = new HashMap<>(); + JobPO jobPO = JobBO.convertParamsToPO(param, (long) user.getUID()); + boolean filter = isFilter(jobPO); + PageInfo pageInfos; + List allList = getJobMapper().listNoFilter(); + // 通过子级遍历父级元素 + if (filter) { + // 根据条件获取元素 + List filterJobPOs = getJobMapper().listByFilter(jobPO); + // 添加父级元素 + List compListDTOS = JobBO.buildJobDTOList(allList, filterJobPOs); + List subList = PageUtil.subList(param.getCurrent(), param.getPageSize(), compListDTOS); + pageInfos = new PageInfo<>(subList, JobListDTO.class); + pageInfos.setTotal(compListDTOS.size()); + } else { + // 组合list + List compListDTOS = JobBO.buildDTOList(allList); + List subList = PageUtil.subList(param.getCurrent(), param.getPageSize(), compListDTOS); + pageInfos = new PageInfo<>(subList, JobListDTO.class); + pageInfos.setTotal(compListDTOS.size()); + } + + pageInfos.setPageNum(param.getCurrent()); + pageInfos.setPageSize(param.getPageSize()); + + OrganizationWeaTable table = new OrganizationWeaTable<>(user, DepartmentListDTO.class); + List columns = pageInfos.getColumns(); + List weaTableColumn = columns.stream().map(v -> new WeaTableColumn("100", v.getTitle(), v.getKey())).collect(Collectors.toList()); + + table.setColumns(weaTableColumn); + + WeaResultMsg result = new WeaResultMsg(false); + result.putAll(table.makeDataResult()); + result.success(); + + datas.put("pageInfo", pageInfos); + datas.put("dataKey", result.getResultMap()); + return datas; + } + + @Override + public Map getHasRight() { + Map btnDatas = new HashMap<>(); + ArrayList topMenuList = new ArrayList<>(); + ArrayList rightMenuList = new ArrayList<>(); + // 新增 + topMenuList.add(MenuBtn.topMenu_addNew()); + // 批量删除 + topMenuList.add(MenuBtn.topMenu_batchDelete()); + // 复制 + topMenuList.add(MenuBtn.topMenu_copy()); + btnDatas.put("topMenu", topMenuList); + // 新增 + rightMenuList.add(MenuBtn.rightMenu_addNew()); + // 复制 + rightMenuList.add(MenuBtn.rightMenu_copy()); + // 日志 + rightMenuList.add(MenuBtn.rightMenu_btnLog()); + btnDatas.put("rightMenu", rightMenuList); + return btnDatas; + } + + @Override + public Map getSearchCondition() { + Map apiDatas = new HashMap<>(); + List addGroups = new ArrayList<>(); + List conditionItems = new ArrayList<>(); + // 编号 + SearchConditionItem jobNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "编号", "jobNo"); + // 名称 + SearchConditionItem jobNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "名称", "jobName"); + // 所属分部 + SearchConditionItem parentCompBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属分部", "161", "parentComp", "compBrowser"); + // 所属部门 + SearchConditionItem parentDeptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属部门", "161", "parentDept", "deptBrowser"); + // 岗位序列 + SearchConditionItem sequenceBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位序列", "161", "sequenceId", "sequenceBrowser"); + // 等级方案 + SearchConditionItem schemeBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位序列", "161", "schemeId", "schemeBrowser"); + // 上级岗位 + SearchConditionItem parentJobBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "上级岗位", "161", "parentJob", "jobBrowser"); + // 是否关键岗 + List isKeyOptions = new ArrayList<>(); + SearchConditionOption yesOption = new SearchConditionOption("0", "否"); + SearchConditionOption noOption = new SearchConditionOption("1", "是"); + isKeyOptions.add(yesOption); + isKeyOptions.add(noOption); + SearchConditionItem isKeyItem = OrganizationFormItemUtil.selectItem(user, isKeyOptions, 2, 16, 6, false, "禁用标记", "forbiddenTag"); + // 工作地点 + SearchConditionItem workplaceItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "工作地点", "workplace"); + // 工作概述 + SearchConditionItem descriptionItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "工作概述", "description"); + // 任职职责 + SearchConditionItem workDutyItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "任职职责", "workDuty"); + // 工作权限 + SearchConditionItem workAuthorityItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "工作权限", "workAuthority"); + // 禁用标记 + List selectOptions = new ArrayList<>(); + SearchConditionOption enableOption = new SearchConditionOption("true", "启用"); + SearchConditionOption disableOption = new SearchConditionOption("false", "禁用"); + selectOptions.add(enableOption); + selectOptions.add(disableOption); + SearchConditionItem forbiddenTagItem = OrganizationFormItemUtil.selectItem(user, selectOptions, 2, 16, 6, false, "禁用标记", "forbiddenTag"); + + conditionItems.add(jobNoItem); + conditionItems.add(jobNameItem); + conditionItems.add(parentCompBrowserItem); + conditionItems.add(parentDeptBrowserItem); + conditionItems.add(sequenceBrowserItem); + conditionItems.add(schemeBrowserItem); + conditionItems.add(parentJobBrowserItem); + conditionItems.add(isKeyItem); + conditionItems.add(workplaceItem); + conditionItems.add(descriptionItem); + conditionItems.add(workDutyItem); + conditionItems.add(workAuthorityItem); + conditionItems.add(forbiddenTagItem); + + addGroups.add(new SearchConditionGroup("高级搜索条件", true, conditionItems)); + apiDatas.put("conditions", addGroups); + return apiDatas; + } + + @Override + public Map getSaveForm() { + Map apiDatas = new HashMap<>(); + List addGroups = new ArrayList<>(); + List conditionItems = new ArrayList<>(); + // 编号 + SearchConditionItem jobNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "编号", "jobNo"); + jobNoItem.setRules("required|string"); + // 名称 + SearchConditionItem jobNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "名称", "jobName"); + jobNoItem.setRules("required|string"); + // 所属分部 + SearchConditionItem parentCompBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属分部", "161", "parentComp", "compBrowser"); + parentCompBrowserItem.setRules("required|string"); + // 所属部门 + SearchConditionItem parentDeptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属部门", "161", "parentDept", "deptBrowser"); + parentDeptBrowserItem.setRules("required|string"); + // 岗位序列 + SearchConditionItem sequenceBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位序列", "161", "sequenceId", "sequenceBrowser"); + // 等级方案 + SearchConditionItem schemeBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位序列", "161", "schemeId", "schemeBrowser"); + // 上级岗位 + SearchConditionItem parentJobBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "上级岗位", "161", "parentJob", "jobBrowser"); + // 是否关键岗 + List isKeyOptions = new ArrayList<>(); + SearchConditionOption yesOption = new SearchConditionOption("0", "否"); + SearchConditionOption noOption = new SearchConditionOption("1", "是"); + isKeyOptions.add(yesOption); + isKeyOptions.add(noOption); + SearchConditionItem isKeyItem = OrganizationFormItemUtil.selectItem(user, isKeyOptions, 2, 16, 6, false, "禁用标记", "forbiddenTag"); + + conditionItems.add(jobNoItem); + conditionItems.add(jobNameItem); + conditionItems.add(parentCompBrowserItem); + conditionItems.add(parentDeptBrowserItem); + conditionItems.add(sequenceBrowserItem); + conditionItems.add(schemeBrowserItem); + conditionItems.add(parentJobBrowserItem); + conditionItems.add(isKeyItem); + + addGroups.add(new SearchConditionGroup("基本信息", true, conditionItems)); + apiDatas.put("condition", addGroups); + return apiDatas; + } + + @Override + public Map getJobBaseForm(Map params) { + OrganizationAssert.notNull(params.get("viewAttr"), "请标识操作类型"); + + // 2编辑 1查看 + int viewAttr = Integer.parseInt((String) params.get("viewAttr")); + long id = Long.parseLong((String) params.get("id")); + String groupId = (String) params.get("viewCondition"); + + HashMap buttonsMap = new HashMap<>(); + buttonsMap.put("hasEdit", true); + buttonsMap.put("hasSave", true); + + List addGroups = new ArrayList<>(); + if (StringUtil.isEmpty(groupId) || "0".equals(groupId)) { + addGroups.add(new SearchConditionGroup("基本信息", true, getBaseForm(viewAttr, id))); + } else { + addGroups.add(new SearchConditionGroup(getExtendGroupMapper().getGroupNameById(groupId), true, getExtService(user).getExtForm(user, EXTEND_TYPE, JCL_ORG_JOBEXT, viewAttr, id, groupId))); + } + + HashMap resultMap = new HashMap<>(); + resultMap.put("buttons", buttonsMap); + resultMap.put("conditions", addGroups); + resultMap.put("id", id); + // 拓展页面分组 + resultMap.put("tabInfo", getExtService(user).getTabInfo(EXTEND_TYPE, JCL_ORG_JOBEXT)); + // 处理明细表 + resultMap.put("tables", getExtService(user).getExtendTables(user, EXTEND_TYPE, JCL_ORG_JOBEXT_DT1, id, viewAttr, false)); + Map apiDatas = new HashMap<>(); + + apiDatas.put("result", resultMap); + + return apiDatas; + } + + @Override + public int saveBaseForm(JobSearchParam params) { + List list = getJobMapper().listByNo(Util.null2String(params.getJobNo())); + OrganizationAssert.isEmpty(list, "编号不允许重复"); + JobPO jobPO = JobBO.convertParamsToPO(params, (long) user.getUID()); + return getJobMapper().insertIgnoreNull(jobPO); + } + + @Override + public int updateForm(Map params) { + JobSearchParam searchParam = JSONObject.parseObject(JSONObject.toJSONString(params), JobSearchParam.class); + String groupId = (String) params.get("viewCondition"); + JobPO jobPO = JobBO.convertParamsToPO(searchParam, user.getUID()); + int updateCount = 0; + // 更新主表数据 + updateCount += getJobMapper().updateBaseJob(jobPO); + // 更新主表拓展表 + updateCount += getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_JOBEXT, params, groupId, jobPO.getId()); + //更新明细表 + getExtService(user).updateExtDT(user, EXTEND_TYPE, JCL_ORG_JOBEXT_DT1, params, jobPO.getId()); + return updateCount; + } + + @Override + public int updateForbiddenTagById(JobSearchParam params) { + JobPO jobPO = JobPO.builder().id(params.getId()).forbiddenTag(params.getForbiddenTag() ? 0 : 1).build(); + return getJobMapper().updateForbiddenTagById(jobPO.getId(), jobPO.getForbiddenTag()); + } + + @Override + public int deleteByIds(Collection ids) { + OrganizationAssert.notEmpty(ids, "请选择要删除的数据"); + Collection deleteIds = new ArrayList<>(); + // 递归删除子节点 + getChildIds(ids, deleteIds); + return getJobMapper().deleteByIds(deleteIds); + } + /** * 添加查询元素的父级元素 * @@ -263,4 +576,145 @@ public class JobServiceImpl extends Service implements JobService { }).filter(item -> isTop(item.getPid())).collect(Collectors.toList()); } + /** + * 是否有搜索查询 + * + * @param jobPO + * @return + */ + private boolean isFilter(JobPO jobPO) { + return !(StringUtil.isEmpty(jobPO.getJobNo()) + && StringUtil.isEmpty(jobPO.getJobName()) + && StringUtil.isEmpty(jobPO.getWorkplace()) + && StringUtil.isEmpty(jobPO.getDescription()) + && StringUtil.isEmpty(jobPO.getWorkDuty()) + && StringUtil.isEmpty(jobPO.getWorkAuthority()) + && null == jobPO.getParentComp() + && null == jobPO.getParentDept() + && null == jobPO.getSequenceId() + && null == jobPO.getSchemeId() + && null == jobPO.getIsKey()) + && null == jobPO.getForbiddenTag(); + } + + /** + * 基本信息基础表单 + * + * @param viewAttr + * @param id + * @return + */ + private List getBaseForm(int viewAttr, long id) { + List conditionItems = new ArrayList<>(); + // 编号 + SearchConditionItem jobNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 1, 50, "编号", "jobNo"); + // 名称 + SearchConditionItem jobNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "名称", "jobName"); + jobNoItem.setRules("required|string"); + // 所属分部 + SearchConditionItem parentCompBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属分部", "161", "parentComp", "compBrowser"); + parentCompBrowserItem.setRules("required|string"); + // 所属部门 + SearchConditionItem parentDeptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属部门", "161", "parentDept", "deptBrowser"); + parentDeptBrowserItem.setRules("required|string"); + // 岗位序列 + SearchConditionItem sequenceBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位序列", "161", "sequenceId", "sequenceBrowser"); + // 等级方案 + SearchConditionItem schemeBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位序列", "161", "schemeId", "schemeBrowser"); + // 上级岗位 + SearchConditionItem parentJobBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "上级岗位", "161", "parentJob", "jobBrowser"); + // 是否关键岗 + List isKeyOptions = new ArrayList<>(); + SearchConditionOption yesOption = new SearchConditionOption("0", "否"); + SearchConditionOption noOption = new SearchConditionOption("1", "是"); + isKeyOptions.add(yesOption); + isKeyOptions.add(noOption); + SearchConditionItem isKeyItem = OrganizationFormItemUtil.selectItem(user, isKeyOptions, 2, 16, 6, false, "禁用标记", "forbiddenTag"); + // 工作地点 + SearchConditionItem workplaceItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "工作地点", "workplace"); + // 工作概述 + SearchConditionItem descriptionItem = OrganizationFormItemUtil.textareaItem(user, 2, 16, false, 2, 50, "工作概述", "description"); + // 任职职责 + SearchConditionItem workDutyItem = OrganizationFormItemUtil.textareaItem(user, 2, 16, false, 2, 50, "任职职责", "workDuty"); + // 工作权限 + SearchConditionItem workAuthorityItem = OrganizationFormItemUtil.textareaItem(user, 2, 16, false, 2, 50, "工作权限", "workAuthority"); + + conditionItems.add(jobNoItem); + conditionItems.add(jobNameItem); + conditionItems.add(parentCompBrowserItem); + conditionItems.add(parentDeptBrowserItem); + conditionItems.add(sequenceBrowserItem); + conditionItems.add(schemeBrowserItem); + conditionItems.add(parentJobBrowserItem); + conditionItems.add(isKeyItem); + conditionItems.add(workplaceItem); + conditionItems.add(descriptionItem); + conditionItems.add(workDutyItem); + conditionItems.add(workAuthorityItem); + + + // 编辑、查看状态赋值,设置只读状态 + JobPO jobPO = getJobMapper().getJobById(id); + OrganizationAssert.notNull(jobPO, "数据不存在或数据已删除"); + jobNoItem.setValue(jobPO.getJobNo()); + jobNameItem.setValue(jobPO.getJobName()); + isKeyItem.setValue(jobPO.getIsKey()); + workplaceItem.setValue(jobPO.getWorkplace()); + descriptionItem.setValue(jobPO.getDescription()); + workDutyItem.setValue(jobPO.getWorkDuty()); + workAuthorityItem.setValue(jobPO.getWorkAuthority()); + + if (null != jobPO.getParentComp()) { + BrowserBean browserBean = parentCompBrowserItem.getBrowserConditionParam(); + List> compMaps = getCompMapper().listCompsByIds(QueryParam.builder().ids(jobPO.getParentComp().toString()).build().getIds()); + browserBean.setReplaceDatas(compMaps); + parentCompBrowserItem.setBrowserConditionParam(browserBean); + } + if (null != jobPO.getParentDept()) { + BrowserBean browserBean = parentDeptBrowserItem.getBrowserConditionParam(); + List> deptMaps = getDepartmentMapper().listDeptsByIds(QueryParam.builder().ids(jobPO.getParentDept().toString()).build().getIds()); + browserBean.setReplaceDatas(deptMaps); + parentDeptBrowserItem.setBrowserConditionParam(browserBean); + } + if (null != jobPO.getSequenceId()) { + BrowserBean browserBean = sequenceBrowserItem.getBrowserConditionParam(); + List> deptMaps = getSequenceMapper().listSequencesByIds(QueryParam.builder().ids(jobPO.getSequenceId().toString()).build().getIds()); + browserBean.setReplaceDatas(deptMaps); + sequenceBrowserItem.setBrowserConditionParam(browserBean); + } + if (null != jobPO.getSchemeId()) { + BrowserBean browserBean = schemeBrowserItem.getBrowserConditionParam(); + List> deptMaps = getSchemeMapper().listSchemesByIds(QueryParam.builder().ids(jobPO.getSchemeId().toString()).build().getIds()); + browserBean.setReplaceDatas(deptMaps); + schemeBrowserItem.setBrowserConditionParam(browserBean); + } + if (null != jobPO.getParentJob()) { + BrowserBean browserBean = parentJobBrowserItem.getBrowserConditionParam(); + List> deptMaps = getJobMapper().listJobsByIds(QueryParam.builder().ids(jobPO.getParentJob().toString()).build().getIds()); + browserBean.setReplaceDatas(deptMaps); + schemeBrowserItem.setBrowserConditionParam(browserBean); + } + + // 查看,全部置为只读 + if (1 == viewAttr) { + for (SearchConditionItem item : conditionItems) { + item.setViewAttr(viewAttr); + } + } + return conditionItems; + } + + /** + * 获取待删除数据的子级元素 + * + * @param ids + * @param deleteIds + */ + private void getChildIds(Collection ids, Collection deleteIds) { + for (Long id : ids) { + deleteIds.add(id); + Collection childIds = getJobMapper().getJobsByPid(id).stream().map(JobPO::getId).collect(Collectors.toList()); + getChildIds(childIds, deleteIds); + } + } } diff --git a/src/com/engine/organization/service/impl/StaffServiceImpl.java b/src/com/engine/organization/service/impl/StaffServiceImpl.java index ef35a844..5c092374 100644 --- a/src/com/engine/organization/service/impl/StaffServiceImpl.java +++ b/src/com/engine/organization/service/impl/StaffServiceImpl.java @@ -14,6 +14,7 @@ import com.engine.organization.entity.staff.po.StaffPO; import com.engine.organization.entity.staff.vo.StaffTableVO; import com.engine.organization.mapper.comp.CompMapper; import com.engine.organization.mapper.department.DepartmentMapper; +import com.engine.organization.mapper.job.JobMapper; import com.engine.organization.mapper.staff.StaffMapper; import com.engine.organization.mapper.staff.StaffPlanMapper; import com.engine.organization.service.StaffService; @@ -51,9 +52,10 @@ public class StaffServiceImpl extends Service implements StaffService { private DepartmentMapper getDepartmentMapper() { return MapperProxyFactory.getProxy(DepartmentMapper.class); } - //private JobMapper getJobMapper() { - // return MapperProxyFactory.getProxy(JobMapper.class); - //} + + private JobMapper getJobMapper() { + return MapperProxyFactory.getProxy(JobMapper.class); + } @Override @@ -189,11 +191,11 @@ public class StaffServiceImpl extends Service implements StaffService { List> deptIdMaps = getDepartmentMapper().listDeptsByIds(QueryParam.builder().ids(staffPO.getPlanId().toString()).build().getIds()); deptIdItemBean.setReplaceDatas(deptIdMaps); deptIdItem.setBrowserConditionParam(deptIdItemBean); - // TODO - //BrowserBean jobIdItemBean = jobIdItem.getBrowserConditionParam(); - //List> jobIdMaps = getJobMapper().listJobsByIds(QueryParam.builder().ids(staffPO.getPlanId().toString()).build().getIds()); - //jobIdItemBean.setReplaceDatas(jobIdMaps); - //jobIdItem.setBrowserConditionParam(jobIdItemBean); + + BrowserBean jobIdItemBean = jobIdItem.getBrowserConditionParam(); + List> jobIdMaps = getJobMapper().listJobsByIds(QueryParam.builder().ids(staffPO.getPlanId().toString()).build().getIds()); + jobIdItemBean.setReplaceDatas(jobIdMaps); + jobIdItem.setBrowserConditionParam(jobIdItemBean); staffNumItem.setValue(staffPO.getStaffNum()); controlPolicyItem.setValue(staffPO.getControlPolicy()); diff --git a/src/com/engine/organization/transmethod/JobTransMethod.java b/src/com/engine/organization/transmethod/JobTransMethod.java index 2af3cb41..8242bfdd 100644 --- a/src/com/engine/organization/transmethod/JobTransMethod.java +++ b/src/com/engine/organization/transmethod/JobTransMethod.java @@ -15,4 +15,12 @@ public class JobTransMethod { //return names; return ""; } + + public static String getIsKeySpan(String isKey) { + if ("0".equals(isKey)) + return "是"; + else + return "否"; + } + } diff --git a/src/com/engine/organization/util/MenuBtn.java b/src/com/engine/organization/util/MenuBtn.java index b8870502..cad98205 100644 --- a/src/com/engine/organization/util/MenuBtn.java +++ b/src/com/engine/organization/util/MenuBtn.java @@ -45,6 +45,15 @@ public class MenuBtn { return MenuBtn.builder().isBatch("1").isTop("1").menuFun("batchDelete").menuIcon("icon-coms-Batch-delete").menuName("批量删除").type( "BTN_BatchDelete").build(); } + /** + * topMenu批量删除 + * + * @return + */ + public static MenuBtn topMenu_copy() { + return MenuBtn.builder().isBatch("1").isTop("1").menuFun("copy").menuIcon("icon-coms-form-copy").menuName("复制").type( "BTN_Copy").build(); + } + /** * rightMenu新增 * @@ -63,6 +72,15 @@ public class MenuBtn { return MenuBtn.builder().isBatch("0").isTop("0").menuFun("log").menuIcon("icon-coms-Print-log").menuName("日志").type("BTN_log").build(); } + /** + * topMenu批量删除 + * + * @return + */ + public static MenuBtn rightMenu_copy() { + return MenuBtn.builder().isBatch("0").isTop("0").menuFun("copy").menuIcon("icon-coms-form-copy").menuName("复制").type( "BTN_Copy").build(); + } + /** * rightMenu显示列定制 * diff --git a/src/com/engine/organization/web/JobController.java b/src/com/engine/organization/web/JobController.java index ef405ec4..089154dd 100644 --- a/src/com/engine/organization/web/JobController.java +++ b/src/com/engine/organization/web/JobController.java @@ -4,14 +4,19 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; +import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.job.param.JobSearchParam; import com.engine.organization.entity.searchtree.SearchTreeParams; +import com.engine.organization.util.response.ReturnResult; import com.engine.organization.wrapper.JobWrapper; +import io.swagger.v3.oas.annotations.parameters.RequestBody; import weaver.hrm.HrmUserVarify; import weaver.hrm.User; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.ws.rs.GET; +import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.Context; @@ -29,6 +34,13 @@ public class JobController { return ServiceUtil.getService(JobWrapper.class, user); } + /** + * 左侧树接口 + * + * @param request + * @param response + * @return + */ @GET @Path("/getSearchTree") @Produces(MediaType.APPLICATION_JSON) @@ -39,4 +51,183 @@ public class JobController { return getJobWrapper(user).getSearchTree(params); } + + /** + * 获取list列表 + * + * @param request + * @param response + * @param params + * @return + */ + @POST + @Path("/listPage") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult listDept(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody JobSearchParam params) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getJobWrapper(user).listPage(params)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 新增保存表单 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getSaveForm") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getSaveForm(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getJobWrapper(user).getSaveForm()); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 获取基础表单 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getJobBaseForm") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getJobBaseForm(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + return ReturnResult.successed(getJobWrapper(user).getJobBaseForm(map)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 保存基础信息 + * + * @param request + * @param response + * @param params + * @return + */ + @POST + @Path("/saveBaseForm") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult saveBaseComp(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody JobSearchParam params) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getJobWrapper(user).saveBaseForm(params)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 更新禁用标记 + * + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/updateForbiddenTagById") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult updateForbiddenTagById(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody JobSearchParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getJobWrapper(user).updateForbiddenTagById(param)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 更新表单 + * + * @param request + * @param response + * @return + */ + @POST + @Path("/updateForm") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult updateForm(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + return ReturnResult.successed(getJobWrapper(user).updateForm(map)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 根据ID批量删除数据 + * + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/deleteByIds") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody QueryParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getJobWrapper(user).deleteByIds(param.getIds())); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 列表页顶部按钮 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getHasRight") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getHasRight(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getJobWrapper(user).getHasRight()); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + /** + * 高级搜索条件 + * + * @param request + * @param response + * @return + */ + @GET + @Path("/getSearchCondition") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getSearchCondition(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getJobWrapper(user).getSearchCondition()); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + } diff --git a/src/com/engine/organization/wrapper/JobWrapper.java b/src/com/engine/organization/wrapper/JobWrapper.java index a833d728..dcb673e6 100644 --- a/src/com/engine/organization/wrapper/JobWrapper.java +++ b/src/com/engine/organization/wrapper/JobWrapper.java @@ -2,11 +2,13 @@ package com.engine.organization.wrapper; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.organization.entity.job.param.JobSearchParam; import com.engine.organization.entity.searchtree.SearchTreeParams; import com.engine.organization.service.JobService; import com.engine.organization.service.impl.JobServiceImpl; import weaver.hrm.User; +import java.util.Collection; import java.util.Map; /** @@ -20,8 +22,101 @@ public class JobWrapper extends Service { return ServiceUtil.getService(JobServiceImpl.class, user); } + /** + * 左侧树 + * + * @param params + * @return + */ public Map getSearchTree(SearchTreeParams params) { return getJobService(user).getSearchTree(params); } + /** + * 列表 + * + * @param param + * @return + */ + public Map listPage(JobSearchParam param) { + return getJobService(user).listPage(param); + } + + /** + * 顶部按钮 + * + * @return + */ + public Map getHasRight() { + return getJobService(user).getHasRight(); + } + + /** + * 搜索条件 + * + * @return + */ + public Map getSearchCondition() { + return getJobService(user).getSearchCondition(); + } + + /** + * 获取新增表单 + * + * @return + */ + public Map getSaveForm() { + return getJobService(user).getSaveForm(); + } + + /** + * 获取详细表单 + * + * @param params + * @return + */ + public Map getJobBaseForm(Map params) { + return getJobService(user).getJobBaseForm(params); + + } + + /** + * 保存基础信息 + * + * @param params + * @return + */ + public int saveBaseForm(JobSearchParam params) { + return getJobService(user).saveBaseForm(params); + } + + /** + * 更新主表、拓展表、明细表 + * + * @param params + * @return + */ + public int updateForm(Map params) { + return getJobService(user).updateForm(params); + } + + /** + * @param params + * @return + */ + public int updateForbiddenTagById(JobSearchParam params) { + return getJobService(user).updateForbiddenTagById(params); + } + + /** + * 根据ID批量删除 + * + * @param ids + * @return + */ + public int deleteByIds(Collection ids) { + return getJobService(user).deleteByIds(ids); + } + + } From b4de9ae2871fefdb5ae315ced74fe11b37da832d Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Tue, 31 May 2022 09:19:04 +0800 Subject: [PATCH 11/26] =?UTF-8?q?=E7=BC=96=E5=8F=B7=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/表结构SQL/MySQL.sql | 30 +++++++++++++++++++ .../web/CodeSettingController.java | 10 +++++++ .../entity/codesetting/po/CodeRule.java | 10 +++++++ .../entity/codesetting/po/CodeRuleDetail.java | 10 +++++++ .../service/CodeSettingService.java | 10 +++++++ .../service/impl/CodeSettingServiceImpl.java | 13 ++++++++ .../web/CodeSettingController.java | 12 ++++++++ .../wrapper/CodeSettingWrapper.java | 12 ++++++++ 8 files changed, 107 insertions(+) create mode 100644 src/com/api/organization/web/CodeSettingController.java create mode 100644 src/com/engine/organization/entity/codesetting/po/CodeRule.java create mode 100644 src/com/engine/organization/entity/codesetting/po/CodeRuleDetail.java create mode 100644 src/com/engine/organization/service/CodeSettingService.java create mode 100644 src/com/engine/organization/service/impl/CodeSettingServiceImpl.java create mode 100644 src/com/engine/organization/web/CodeSettingController.java create mode 100644 src/com/engine/organization/wrapper/CodeSettingWrapper.java diff --git a/docs/表结构SQL/MySQL.sql b/docs/表结构SQL/MySQL.sql index a54c30ec..c4dbe871 100644 --- a/docs/表结构SQL/MySQL.sql +++ b/docs/表结构SQL/MySQL.sql @@ -391,6 +391,36 @@ CREATE TABLE JCL_ORG_STAFFS ( ); +--JCL_CODERULE +CREATE TABLE JCL_CODERULE ( + id int auto_increment NOT NULL, + serial_type varchar(50) null, + serial_enable char(1) null, + oneself_type varchar(50) null, + creator int null, + delete_type int null, + create_time date null, + update_time date null, + CONSTRAINT JCL_CODERULE PRIMARY KEY (id) +); + +--JCL_CODERULE_DETAIL +CREATE TABLE JCL_CODERULE_DETAIL ( + id int auto_increment NOT NULL, + coderule_id int(11) null, + rule_type varchar(50) null, + rule_value varchar(255) null, + show_order int(11) null, + creator int null, + delete_type int null, + create_time date null, + update_time date null, + CONSTRAINT JCL_CODERULE_DETAIL PRIMARY KEY (id) +); + + + + diff --git a/src/com/api/organization/web/CodeSettingController.java b/src/com/api/organization/web/CodeSettingController.java new file mode 100644 index 00000000..db8b9d88 --- /dev/null +++ b/src/com/api/organization/web/CodeSettingController.java @@ -0,0 +1,10 @@ +package com.api.organization.web; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/30 + * @Version V1.0 + **/ +public class CodeSettingController { +} diff --git a/src/com/engine/organization/entity/codesetting/po/CodeRule.java b/src/com/engine/organization/entity/codesetting/po/CodeRule.java new file mode 100644 index 00000000..0b8e484c --- /dev/null +++ b/src/com/engine/organization/entity/codesetting/po/CodeRule.java @@ -0,0 +1,10 @@ +package com.engine.organization.entity.codesetting.po; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/30 + * @Version V1.0 + **/ +public class CodeRule { +} diff --git a/src/com/engine/organization/entity/codesetting/po/CodeRuleDetail.java b/src/com/engine/organization/entity/codesetting/po/CodeRuleDetail.java new file mode 100644 index 00000000..46d60886 --- /dev/null +++ b/src/com/engine/organization/entity/codesetting/po/CodeRuleDetail.java @@ -0,0 +1,10 @@ +package com.engine.organization.entity.codesetting.po; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/30 + * @Version V1.0 + **/ +public class CodeRuleDetail { +} diff --git a/src/com/engine/organization/service/CodeSettingService.java b/src/com/engine/organization/service/CodeSettingService.java new file mode 100644 index 00000000..95dec56d --- /dev/null +++ b/src/com/engine/organization/service/CodeSettingService.java @@ -0,0 +1,10 @@ +package com.engine.organization.service; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/30 + * @Version V1.0 + **/ +public interface CodeSettingService { +} diff --git a/src/com/engine/organization/service/impl/CodeSettingServiceImpl.java b/src/com/engine/organization/service/impl/CodeSettingServiceImpl.java new file mode 100644 index 00000000..f54a5b7c --- /dev/null +++ b/src/com/engine/organization/service/impl/CodeSettingServiceImpl.java @@ -0,0 +1,13 @@ +package com.engine.organization.service.impl; + +import com.engine.core.impl.Service; +import com.engine.organization.service.CodeSettingService; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/30 + * @Version V1.0 + **/ +public class CodeSettingServiceImpl extends Service implements CodeSettingService { +} diff --git a/src/com/engine/organization/web/CodeSettingController.java b/src/com/engine/organization/web/CodeSettingController.java new file mode 100644 index 00000000..8aeeab7f --- /dev/null +++ b/src/com/engine/organization/web/CodeSettingController.java @@ -0,0 +1,12 @@ +package com.engine.organization.web; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/30 + * @Version V1.0 + **/ +public class CodeSettingController { + + +} diff --git a/src/com/engine/organization/wrapper/CodeSettingWrapper.java b/src/com/engine/organization/wrapper/CodeSettingWrapper.java new file mode 100644 index 00000000..aec4f20d --- /dev/null +++ b/src/com/engine/organization/wrapper/CodeSettingWrapper.java @@ -0,0 +1,12 @@ +package com.engine.organization.wrapper; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/30 + * @Version V1.0 + **/ +public class CodeSettingWrapper { + + +} From 090c2659dfdaaac2d9a81e0c7b557e8b8e715c22 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 31 May 2022 09:56:50 +0800 Subject: [PATCH 12/26] =?UTF-8?q?=E5=B2=97=E4=BD=8D=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/service/impl/JobServiceImpl.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index 837eda83..2cb5eeca 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -220,7 +220,7 @@ public class JobServiceImpl extends Service implements JobService { // 岗位序列 SearchConditionItem sequenceBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位序列", "161", "sequenceId", "sequenceBrowser"); // 等级方案 - SearchConditionItem schemeBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位序列", "161", "schemeId", "schemeBrowser"); + SearchConditionItem schemeBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "等级方案", "161", "schemeId", "schemeBrowser"); // 上级岗位 SearchConditionItem parentJobBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "上级岗位", "161", "parentJob", "jobBrowser"); // 是否关键岗 @@ -277,15 +277,15 @@ public class JobServiceImpl extends Service implements JobService { SearchConditionItem jobNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "名称", "jobName"); jobNoItem.setRules("required|string"); // 所属分部 - SearchConditionItem parentCompBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属分部", "161", "parentComp", "compBrowser"); + SearchConditionItem parentCompBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "所属分部", "161", "parentComp", "compBrowser"); parentCompBrowserItem.setRules("required|string"); // 所属部门 - SearchConditionItem parentDeptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属部门", "161", "parentDept", "deptBrowser"); + SearchConditionItem parentDeptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "所属部门", "161", "parentDept", "deptBrowser"); parentDeptBrowserItem.setRules("required|string"); // 岗位序列 SearchConditionItem sequenceBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位序列", "161", "sequenceId", "sequenceBrowser"); // 等级方案 - SearchConditionItem schemeBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位序列", "161", "schemeId", "schemeBrowser"); + SearchConditionItem schemeBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "等级方案", "161", "schemeId", "schemeBrowser"); // 上级岗位 SearchConditionItem parentJobBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "上级岗位", "161", "parentJob", "jobBrowser"); // 是否关键岗 @@ -612,10 +612,10 @@ public class JobServiceImpl extends Service implements JobService { SearchConditionItem jobNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "名称", "jobName"); jobNoItem.setRules("required|string"); // 所属分部 - SearchConditionItem parentCompBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属分部", "161", "parentComp", "compBrowser"); + SearchConditionItem parentCompBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "所属分部", "161", "parentComp", "compBrowser"); parentCompBrowserItem.setRules("required|string"); // 所属部门 - SearchConditionItem parentDeptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属部门", "161", "parentDept", "deptBrowser"); + SearchConditionItem parentDeptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "所属部门", "161", "parentDept", "deptBrowser"); parentDeptBrowserItem.setRules("required|string"); // 岗位序列 SearchConditionItem sequenceBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位序列", "161", "sequenceId", "sequenceBrowser"); From 8f0da9a7a710bd2b1b664f4b947cda6f14b2e6f8 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 31 May 2022 10:01:33 +0800 Subject: [PATCH 13/26] =?UTF-8?q?=E5=B2=97=E4=BD=8D=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/service/impl/JobServiceImpl.java | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index 2cb5eeca..75b034d0 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -277,11 +277,9 @@ public class JobServiceImpl extends Service implements JobService { SearchConditionItem jobNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "名称", "jobName"); jobNoItem.setRules("required|string"); // 所属分部 - SearchConditionItem parentCompBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "所属分部", "161", "parentComp", "compBrowser"); - parentCompBrowserItem.setRules("required|string"); + SearchConditionItem parentCompBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属分部", "161", "parentComp", "compBrowser"); // 所属部门 - SearchConditionItem parentDeptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "所属部门", "161", "parentDept", "deptBrowser"); - parentDeptBrowserItem.setRules("required|string"); + SearchConditionItem parentDeptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属部门", "161", "parentDept", "deptBrowser"); // 岗位序列 SearchConditionItem sequenceBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位序列", "161", "sequenceId", "sequenceBrowser"); // 等级方案 @@ -612,11 +610,9 @@ public class JobServiceImpl extends Service implements JobService { SearchConditionItem jobNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "名称", "jobName"); jobNoItem.setRules("required|string"); // 所属分部 - SearchConditionItem parentCompBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "所属分部", "161", "parentComp", "compBrowser"); - parentCompBrowserItem.setRules("required|string"); + SearchConditionItem parentCompBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属分部", "161", "parentComp", "compBrowser"); // 所属部门 - SearchConditionItem parentDeptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "所属部门", "161", "parentDept", "deptBrowser"); - parentDeptBrowserItem.setRules("required|string"); + SearchConditionItem parentDeptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属部门", "161", "parentDept", "deptBrowser"); // 岗位序列 SearchConditionItem sequenceBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位序列", "161", "sequenceId", "sequenceBrowser"); // 等级方案 From bdb7e4d7b62c3e793a77a1bd908263f012f87fc8 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 31 May 2022 10:02:48 +0800 Subject: [PATCH 14/26] =?UTF-8?q?=E5=B2=97=E4=BD=8D=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/organization/service/impl/JobServiceImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index 75b034d0..0ac20e8d 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -292,7 +292,8 @@ public class JobServiceImpl extends Service implements JobService { SearchConditionOption noOption = new SearchConditionOption("1", "是"); isKeyOptions.add(yesOption); isKeyOptions.add(noOption); - SearchConditionItem isKeyItem = OrganizationFormItemUtil.selectItem(user, isKeyOptions, 2, 16, 6, false, "禁用标记", "forbiddenTag"); + SearchConditionItem isKeyItem = OrganizationFormItemUtil.selectItem(user, isKeyOptions, 2, 16, 6, false, "是否关键岗", "forbiddenTag"); + isKeyItem.setDetailtype(2); conditionItems.add(jobNoItem); conditionItems.add(jobNameItem); From 04c7ec175f271f5ae67bf687590096dd8a4d5a19 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 31 May 2022 10:33:19 +0800 Subject: [PATCH 15/26] =?UTF-8?q?=E5=B2=97=E4=BD=8D=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/表结构SQL/MySQL.sql | 87 +++---------------- .../service/impl/JobServiceImpl.java | 6 +- 2 files changed, 15 insertions(+), 78 deletions(-) diff --git a/docs/表结构SQL/MySQL.sql b/docs/表结构SQL/MySQL.sql index b953bb95..18ba1981 100644 --- a/docs/表结构SQL/MySQL.sql +++ b/docs/表结构SQL/MySQL.sql @@ -5,6 +5,7 @@ CREATE TABLE JCL_ORG_SCHEME ( scheme_name varchar(100) NULL, scheme_description text NULL, forbidden_tag int NULL, + is_used int not null, creator int null, delete_type int null, create_time date null, @@ -19,6 +20,7 @@ CREATE TABLE JCL_ORG_LEVEL ( description text NULL, scheme_id int null, forbidden_tag int NULL, + is_used int not null, creator int null, delete_type int null, create_time date null, @@ -34,6 +36,7 @@ CREATE TABLE JCL_ORG_GRADE ( scheme_id int null, level_id varchar(100) null, forbidden_tag int NULL, + is_used int not null, creator int null, delete_type int null, create_time date null, @@ -49,6 +52,7 @@ CREATE TABLE JCL_ORG_SEQUENCE ( description text NULL, scheme_id int null, forbidden_tag int NULL, + is_used int not null, creator int null, delete_type int null, create_time date null, @@ -62,6 +66,7 @@ CREATE TABLE JCL_ORG_POST ( post_no varchar(100) null, post_name varchar(100) NULL, description text NULL, + is_used int not null, creator int null, delete_type int null, create_time date null, @@ -80,6 +85,7 @@ CREATE TABLE JCL_ORG_POST_INFO ( post_id int null, description text NULL, forbidden_tag int NULL, + is_used int not null, creator int null, delete_type int null, create_time date null, @@ -99,6 +105,7 @@ CREATE TABLE JCL_ORG_COMP ( comp_principal int null, description text NULL, forbidden_tag int NULL, + is_used int not null, creator int null, delete_type int null, create_time date null, @@ -176,6 +183,7 @@ CREATE TABLE JCL_ORG_DEPT ( show_order int null, description text NULL, forbidden_tag int NULL, + is_used int not null, creator int null, delete_type int null, create_time date null, @@ -183,43 +191,6 @@ CREATE TABLE JCL_ORG_DEPT ( CONSTRAINT JCL_ORG_DEPT_PK PRIMARY KEY (id) ); --- JCL_FIELD_EXTENDGROUP_DEPT -CREATE TABLE JCL_FIELD_EXTENDGROUP_DEPT ( - id int auto_increment NOT NULL, - extend_type int null, - group_name varchar(100) NULL, - creator int null, - delete_type int null, - create_time date null, - update_time date null, - CONSTRAINT JCL_FIELD_EXTENDGROUP_DEPT_PK PRIMARY KEY (id) -); - --- JCL_FIELD_EXTENDINFO_DEPT -CREATE TABLE JCL_FIELD_EXTENDINFO_DEPT ( - id int auto_increment NOT NULL, - extend_type int null, - table_name varchar(100) NULL, - field_name varchar(100) NULL, - field_name_desc varchar(100) NULL, - field_type varchar(1000) NULL, - control_type int null, - extend_group int null, - isenable int null, - isrequired int null, - list_show int null, - search_show int null, - edit_show int null, - add_show int null, - button_show int null, - show_order int null, - creator int null, - delete_type int null, - create_time date null, - update_time date null, - CONSTRAINT JCL_FIELD_EXTENDINFO_DEPT_PK PRIMARY KEY (id) -); - -- JCL_ORG_DEPTPEXT CREATE TABLE JCL_ORG_DEPTPEXT ( id int auto_increment NOT NULL, @@ -257,6 +228,7 @@ CREATE TABLE JCL_ORG_JOB ( work_duty text null, work_authority text null, forbidden_tag int NULL, + is_used int not null, creator int null, delete_type int null, create_time date null, @@ -274,44 +246,7 @@ CREATE TABLE JCL_ORG_JOBDT ( delete_type int null, create_time date null, update_time date null, - CONSTRAINT CL_ORG_DEPTPEXT_PK PRIMARY KEY (id) -); - --- JCL_FIELD_EXTENDGROUP_JOB -CREATE TABLE JCL_FIELD_EXTENDGROUP_JOB ( - id int auto_increment NOT NULL, - extend_type int null, - group_name varchar(100) NULL, - creator int null, - delete_type int null, - create_time date null, - update_time date null, - CONSTRAINT JCL_FIELD_EXTENDGROUP_JOB_PK PRIMARY KEY (id) -); - --- JCL_FIELD_EXTENDINFO_JOB -CREATE TABLE JCL_FIELD_EXTENDINFO_JOB ( - id int auto_increment NOT NULL, - extend_type int null, - table_name varchar(100) NULL, - field_name varchar(100) NULL, - field_name_desc varchar(100) NULL, - field_type varchar(1000) NULL, - control_type int null, - extend_group int null, - isenable int null, - isrequired int null, - list_show int null, - search_show int null, - edit_show int null, - add_show int null, - button_show int null, - show_order int null, - creator int null, - delete_type int null, - create_time date null, - update_time date null, - CONSTRAINT JCL_FIELD_EXTENDINFO_JOB_PK PRIMARY KEY (id) + CONSTRAINT JCL_ORG_JOBDT_PK PRIMARY KEY (id) ); -- JCL_ORG_JOBPEXT @@ -347,6 +282,7 @@ CREATE TABLE JCL_ORG_STAFFPLAN ( company_id varchar(100) NULL, description text NULL, forbidden_tag int NULL, + is_used int not null, creator int null, delete_type int null, create_time date null, @@ -368,6 +304,7 @@ CREATE TABLE JCL_ORG_STAFF ( lack_status int null, staff_desc varchar(100) NULL, description text null, + is_used int not null, creator int null, delete_type int null, create_time date null, diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index 0ac20e8d..0fd7efbd 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -275,7 +275,7 @@ public class JobServiceImpl extends Service implements JobService { jobNoItem.setRules("required|string"); // 名称 SearchConditionItem jobNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "名称", "jobName"); - jobNoItem.setRules("required|string"); + jobNameItem.setRules("required|string"); // 所属分部 SearchConditionItem parentCompBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属分部", "161", "parentComp", "compBrowser"); // 所属部门 @@ -609,7 +609,7 @@ public class JobServiceImpl extends Service implements JobService { SearchConditionItem jobNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 1, 50, "编号", "jobNo"); // 名称 SearchConditionItem jobNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "名称", "jobName"); - jobNoItem.setRules("required|string"); + jobNameItem.setRules("required|string"); // 所属分部 SearchConditionItem parentCompBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属分部", "161", "parentComp", "compBrowser"); // 所属部门 @@ -617,7 +617,7 @@ public class JobServiceImpl extends Service implements JobService { // 岗位序列 SearchConditionItem sequenceBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位序列", "161", "sequenceId", "sequenceBrowser"); // 等级方案 - SearchConditionItem schemeBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位序列", "161", "schemeId", "schemeBrowser"); + SearchConditionItem schemeBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "等级方案", "161", "schemeId", "schemeBrowser"); // 上级岗位 SearchConditionItem parentJobBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "上级岗位", "161", "parentJob", "jobBrowser"); // 是否关键岗 From 7c950e86268e6e83e1b59da83982ff07cd7eab83 Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Tue, 31 May 2022 10:39:07 +0800 Subject: [PATCH 16/26] =?UTF-8?q?=E7=BC=96=E5=8F=B7=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/CodeSettingController.java | 5 ++- .../service/CodeSettingService.java | 4 ++ .../service/impl/CodeSettingServiceImpl.java | 28 ++++++++++++++ .../web/CodeSettingController.java | 38 +++++++++++++++++++ .../wrapper/CodeSettingWrapper.java | 15 +++++++- 5 files changed, 88 insertions(+), 2 deletions(-) diff --git a/src/com/api/organization/web/CodeSettingController.java b/src/com/api/organization/web/CodeSettingController.java index db8b9d88..cf313578 100644 --- a/src/com/api/organization/web/CodeSettingController.java +++ b/src/com/api/organization/web/CodeSettingController.java @@ -1,10 +1,13 @@ package com.api.organization.web; +import javax.ws.rs.Path; + /** * @Author weaver_cl * @Description: TODO * @Date 2022/5/30 * @Version V1.0 **/ -public class CodeSettingController { +@Path("/bs/hrmorganization/codeSetting") +public class CodeSettingController extends com.engine.organization.web.CodeSettingController { } diff --git a/src/com/engine/organization/service/CodeSettingService.java b/src/com/engine/organization/service/CodeSettingService.java index 95dec56d..ee3ac6c6 100644 --- a/src/com/engine/organization/service/CodeSettingService.java +++ b/src/com/engine/organization/service/CodeSettingService.java @@ -1,5 +1,7 @@ package com.engine.organization.service; +import com.engine.organization.util.response.ReturnResult; + /** * @Author weaver_cl * @Description: TODO @@ -7,4 +9,6 @@ package com.engine.organization.service; * @Version V1.0 **/ public interface CodeSettingService { + + ReturnResult getHasRight(String serialtype); } diff --git a/src/com/engine/organization/service/impl/CodeSettingServiceImpl.java b/src/com/engine/organization/service/impl/CodeSettingServiceImpl.java index f54a5b7c..e64cc20e 100644 --- a/src/com/engine/organization/service/impl/CodeSettingServiceImpl.java +++ b/src/com/engine/organization/service/impl/CodeSettingServiceImpl.java @@ -1,7 +1,13 @@ package com.engine.organization.service.impl; import com.engine.core.impl.Service; +import com.engine.hrm.entity.RuleCodeType; import com.engine.organization.service.CodeSettingService; +import com.engine.organization.util.response.ReturnResult; +import weaver.hrm.HrmUserVarify; + +import java.util.HashMap; +import java.util.Map; /** * @Author weaver_cl @@ -10,4 +16,26 @@ import com.engine.organization.service.CodeSettingService; * @Version V1.0 **/ public class CodeSettingServiceImpl extends Service implements CodeSettingService { + + @Override + public ReturnResult getHasRight(String serialtype) { + boolean hasRight = false; + Map retmap = new HashMap<>(); + switch (RuleCodeType.getByValue(serialtype)) { + case SUBCOMPANY: + hasRight = HrmUserVarify.checkUserRight("HrmCodeRuleSubcompany:All", user); + break; + case DEPARTMENT: + hasRight = HrmUserVarify.checkUserRight("HrmCodeRuleDepartment:All", user); + break; + case JOBTITLES: + hasRight = HrmUserVarify.checkUserRight("HrmCodeRuleJobtitles:All", user); + break; + case USER: + hasRight = HrmUserVarify.checkUserRight("HrmCodeRuleUser:All", user); + break; + } + retmap.put("hasRight", hasRight); + return ReturnResult.successed(retmap); + } } diff --git a/src/com/engine/organization/web/CodeSettingController.java b/src/com/engine/organization/web/CodeSettingController.java index 8aeeab7f..2a8ba13b 100644 --- a/src/com/engine/organization/web/CodeSettingController.java +++ b/src/com/engine/organization/web/CodeSettingController.java @@ -1,5 +1,20 @@ package com.engine.organization.web; +import com.engine.common.util.ServiceUtil; +import com.engine.organization.util.response.ReturnResult; +import com.engine.organization.wrapper.CodeSettingWrapper; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; + /** * @Author weaver_cl * @Description: TODO @@ -8,5 +23,28 @@ package com.engine.organization.web; **/ public class CodeSettingController { + public CodeSettingWrapper getCodeSettingWrapper(User user) { + return ServiceUtil.getService(CodeSettingWrapper.class,user); + } + + + /** + * 是否有权限 + * @param request + * @param response + * @return + */ + @GET + @Path("/getHasRight") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getHasRight(@Context HttpServletRequest request, @Context HttpServletResponse response, + @QueryParam("serialtype") String serialtype) { + try { + User user = HrmUserVarify.getUser(request, response); + return getCodeSettingWrapper(user).getHasRight(serialtype); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } } diff --git a/src/com/engine/organization/wrapper/CodeSettingWrapper.java b/src/com/engine/organization/wrapper/CodeSettingWrapper.java index aec4f20d..f8610c6d 100644 --- a/src/com/engine/organization/wrapper/CodeSettingWrapper.java +++ b/src/com/engine/organization/wrapper/CodeSettingWrapper.java @@ -1,12 +1,25 @@ package com.engine.organization.wrapper; +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.organization.service.CodeSettingService; +import com.engine.organization.service.impl.CodeSettingServiceImpl; +import com.engine.organization.util.response.ReturnResult; +import weaver.hrm.User; + /** * @Author weaver_cl * @Description: TODO * @Date 2022/5/30 * @Version V1.0 **/ -public class CodeSettingWrapper { +public class CodeSettingWrapper extends Service { + public CodeSettingService getCodeSettingService(User user) { + return ServiceUtil.getService(CodeSettingServiceImpl.class,user); + } + public ReturnResult getHasRight(String serialtype) { + return getCodeSettingService(user).getHasRight(serialtype); + } } From 8da146b4489f092a63f8ce6a02c82daa0402974d Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 31 May 2022 11:17:03 +0800 Subject: [PATCH 17/26] =?UTF-8?q?=E5=B2=97=E4=BD=8D=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/entity/company/dto/CompListDTO.java | 6 ------ .../entity/department/dto/DepartmentListDTO.java | 6 +++++- .../organization/service/impl/JobServiceImpl.java | 10 ++++++---- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/com/engine/organization/entity/company/dto/CompListDTO.java b/src/com/engine/organization/entity/company/dto/CompListDTO.java index 73e9e464..ab102b77 100644 --- a/src/com/engine/organization/entity/company/dto/CompListDTO.java +++ b/src/com/engine/organization/entity/company/dto/CompListDTO.java @@ -9,7 +9,6 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.util.Date; import java.util.List; /** @@ -95,9 +94,4 @@ public class CompListDTO { * 子节点 */ private List children; - - private Long creator; - private int deleteType; - private Date createTime; - private Date updateTime; } diff --git a/src/com/engine/organization/entity/department/dto/DepartmentListDTO.java b/src/com/engine/organization/entity/department/dto/DepartmentListDTO.java index 1731a5da..27f4ad5a 100644 --- a/src/com/engine/organization/entity/department/dto/DepartmentListDTO.java +++ b/src/com/engine/organization/entity/department/dto/DepartmentListDTO.java @@ -90,7 +90,11 @@ public class DepartmentListDTO { */ @TableTitle(title = "禁用标记", dataIndex = "forbiddenTag", key = "forbiddenTag") private int forbiddenTag; - + /** + * 操作列 + */ + @TableTitle(title = "", dataIndex = "operate", key = "operate") + private String operate; /** * 子节点 */ diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index 0fd7efbd..4520d072 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -283,7 +283,7 @@ public class JobServiceImpl extends Service implements JobService { // 岗位序列 SearchConditionItem sequenceBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位序列", "161", "sequenceId", "sequenceBrowser"); // 等级方案 - SearchConditionItem schemeBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "等级方案", "161", "schemeId", "schemeBrowser"); + //SearchConditionItem schemeBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "等级方案", "161", "schemeId", "schemeBrowser"); // 上级岗位 SearchConditionItem parentJobBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "上级岗位", "161", "parentJob", "jobBrowser"); // 是否关键岗 @@ -300,7 +300,7 @@ public class JobServiceImpl extends Service implements JobService { conditionItems.add(parentCompBrowserItem); conditionItems.add(parentDeptBrowserItem); conditionItems.add(sequenceBrowserItem); - conditionItems.add(schemeBrowserItem); + // conditionItems.add(schemeBrowserItem); conditionItems.add(parentJobBrowserItem); conditionItems.add(isKeyItem); @@ -349,6 +349,7 @@ public class JobServiceImpl extends Service implements JobService { List list = getJobMapper().listByNo(Util.null2String(params.getJobNo())); OrganizationAssert.isEmpty(list, "编号不允许重复"); JobPO jobPO = JobBO.convertParamsToPO(params, (long) user.getUID()); + // 设置对应的等级方案 return getJobMapper().insertIgnoreNull(jobPO); } @@ -617,7 +618,7 @@ public class JobServiceImpl extends Service implements JobService { // 岗位序列 SearchConditionItem sequenceBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位序列", "161", "sequenceId", "sequenceBrowser"); // 等级方案 - SearchConditionItem schemeBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "等级方案", "161", "schemeId", "schemeBrowser"); + SearchConditionItem schemeBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 1, false, "等级方案", "161", "schemeId", "schemeBrowser"); // 上级岗位 SearchConditionItem parentJobBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "上级岗位", "161", "parentJob", "jobBrowser"); // 是否关键岗 @@ -641,7 +642,6 @@ public class JobServiceImpl extends Service implements JobService { conditionItems.add(parentCompBrowserItem); conditionItems.add(parentDeptBrowserItem); conditionItems.add(sequenceBrowserItem); - conditionItems.add(schemeBrowserItem); conditionItems.add(parentJobBrowserItem); conditionItems.add(isKeyItem); conditionItems.add(workplaceItem); @@ -697,6 +697,8 @@ public class JobServiceImpl extends Service implements JobService { for (SearchConditionItem item : conditionItems) { item.setViewAttr(viewAttr); } + // 查看状态下展示 + conditionItems.add(schemeBrowserItem); } return conditionItems; } From 53c95d77dca365eb7c428e044863fbeb01ea2d17 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 31 May 2022 11:49:59 +0800 Subject: [PATCH 18/26] =?UTF-8?q?=E5=B2=97=E4=BD=8D=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/service/impl/JobServiceImpl.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index 4520d072..848b600c 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -283,7 +283,7 @@ public class JobServiceImpl extends Service implements JobService { // 岗位序列 SearchConditionItem sequenceBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位序列", "161", "sequenceId", "sequenceBrowser"); // 等级方案 - //SearchConditionItem schemeBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "等级方案", "161", "schemeId", "schemeBrowser"); + SearchConditionItem schemeBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "等级方案", "161", "schemeId", "schemeBrowser"); // 上级岗位 SearchConditionItem parentJobBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "上级岗位", "161", "parentJob", "jobBrowser"); // 是否关键岗 @@ -293,14 +293,14 @@ public class JobServiceImpl extends Service implements JobService { isKeyOptions.add(yesOption); isKeyOptions.add(noOption); SearchConditionItem isKeyItem = OrganizationFormItemUtil.selectItem(user, isKeyOptions, 2, 16, 6, false, "是否关键岗", "forbiddenTag"); - isKeyItem.setDetailtype(2); + isKeyItem.setDetailtype(3); conditionItems.add(jobNoItem); conditionItems.add(jobNameItem); conditionItems.add(parentCompBrowserItem); conditionItems.add(parentDeptBrowserItem); conditionItems.add(sequenceBrowserItem); - // conditionItems.add(schemeBrowserItem); + conditionItems.add(schemeBrowserItem); conditionItems.add(parentJobBrowserItem); conditionItems.add(isKeyItem); @@ -628,6 +628,7 @@ public class JobServiceImpl extends Service implements JobService { isKeyOptions.add(yesOption); isKeyOptions.add(noOption); SearchConditionItem isKeyItem = OrganizationFormItemUtil.selectItem(user, isKeyOptions, 2, 16, 6, false, "禁用标记", "forbiddenTag"); + isKeyItem.setDetailtype(3); // 工作地点 SearchConditionItem workplaceItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "工作地点", "workplace"); // 工作概述 @@ -642,6 +643,7 @@ public class JobServiceImpl extends Service implements JobService { conditionItems.add(parentCompBrowserItem); conditionItems.add(parentDeptBrowserItem); conditionItems.add(sequenceBrowserItem); + conditionItems.add(schemeBrowserItem); conditionItems.add(parentJobBrowserItem); conditionItems.add(isKeyItem); conditionItems.add(workplaceItem); @@ -697,8 +699,6 @@ public class JobServiceImpl extends Service implements JobService { for (SearchConditionItem item : conditionItems) { item.setViewAttr(viewAttr); } - // 查看状态下展示 - conditionItems.add(schemeBrowserItem); } return conditionItems; } From 8c348f2061f1ca26d05e1b5845c0358ccab9285d Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 31 May 2022 13:50:00 +0800 Subject: [PATCH 19/26] =?UTF-8?q?=E5=B2=97=E4=BD=8D=E6=A8=A1=E5=9D=97BUG?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/job/dto/JobListDTO.java | 15 ++++++++++----- .../organization/mapper/job/JobMapper.xml | 2 +- .../service/impl/JobServiceImpl.java | 18 ++++++++++++------ .../transmethod/JobTransMethod.java | 2 +- 4 files changed, 24 insertions(+), 13 deletions(-) diff --git a/src/com/engine/organization/entity/job/dto/JobListDTO.java b/src/com/engine/organization/entity/job/dto/JobListDTO.java index 91759418..d524a033 100644 --- a/src/com/engine/organization/entity/job/dto/JobListDTO.java +++ b/src/com/engine/organization/entity/job/dto/JobListDTO.java @@ -50,27 +50,27 @@ public class JobListDTO { /** * 所属分部 */ - @TableTitle(title = "所属分部", dataIndex = "parentComp", key = "parentComp") + @TableTitle(title = "所属分部", dataIndex = "compName", key = "compName") private String compName; /** * 所属部门 */ - @TableTitle(title = "所属部门", dataIndex = "parentDept", key = "parentDept") + @TableTitle(title = "所属部门", dataIndex = "deptName", key = "deptName") private String deptName; /** * 岗位序列 */ - @TableTitle(title = "岗位序列", dataIndex = "sequenceId", key = "sequenceId") + @TableTitle(title = "岗位序列", dataIndex = "sequenceName", key = "sequenceName") private String sequenceName; /** * 等级方案 */ - @TableTitle(title = "等级方案", dataIndex = "schemeId", key = "schemeId") + @TableTitle(title = "等级方案", dataIndex = "schemeName", key = "schemeName") private String schemeName; /** * 上级岗位 */ - @TableTitle(title = "上级岗位", dataIndex = "parentJob", key = "parentJob") + @TableTitle(title = "上级岗位", dataIndex = "parentJobName", key = "parentJobName") private String parentJobName; private Long parentJob; /** @@ -85,6 +85,11 @@ public class JobListDTO { @TableTitle(title = "禁用标记", dataIndex = "forbiddenTag", key = "forbiddenTag") private Integer forbiddenTag; + /** + * 操作列 + */ + @TableTitle(title = "", dataIndex = "operate", key = "operate") + private String operate; /** * 子节点 */ diff --git a/src/com/engine/organization/mapper/job/JobMapper.xml b/src/com/engine/organization/mapper/job/JobMapper.xml index 1c5de349..458ddc53 100644 --- a/src/com/engine/organization/mapper/job/JobMapper.xml +++ b/src/com/engine/organization/mapper/job/JobMapper.xml @@ -156,7 +156,7 @@ creator=#{creator}, update_time=#{updateTime}, - jobName=#{jobName}, + job_name=#{jobName}, parent_comp=#{parentComp}, parent_dept=#{parentDept}, sequence_id=#{sequenceId}, diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index 848b600c..38129945 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -292,7 +292,7 @@ public class JobServiceImpl extends Service implements JobService { SearchConditionOption noOption = new SearchConditionOption("1", "是"); isKeyOptions.add(yesOption); isKeyOptions.add(noOption); - SearchConditionItem isKeyItem = OrganizationFormItemUtil.selectItem(user, isKeyOptions, 2, 16, 6, false, "是否关键岗", "forbiddenTag"); + SearchConditionItem isKeyItem = OrganizationFormItemUtil.selectItem(user, isKeyOptions, 2, 16, 6, false, "是否关键岗", "isKey"); isKeyItem.setDetailtype(3); conditionItems.add(jobNoItem); @@ -348,7 +348,8 @@ public class JobServiceImpl extends Service implements JobService { public int saveBaseForm(JobSearchParam params) { List list = getJobMapper().listByNo(Util.null2String(params.getJobNo())); OrganizationAssert.isEmpty(list, "编号不允许重复"); - JobPO jobPO = JobBO.convertParamsToPO(params, (long) user.getUID()); + JobPO jobPO = JobBO.convertParamsToPO(params, user.getUID()); + jobPO.setIsKey(null == jobPO.getIsKey() ? 0 : jobPO.getIsKey()); // 设置对应的等级方案 return getJobMapper().insertIgnoreNull(jobPO); } @@ -358,6 +359,7 @@ public class JobServiceImpl extends Service implements JobService { JobSearchParam searchParam = JSONObject.parseObject(JSONObject.toJSONString(params), JobSearchParam.class); String groupId = (String) params.get("viewCondition"); JobPO jobPO = JobBO.convertParamsToPO(searchParam, user.getUID()); + jobPO.setIsKey(null == jobPO.getIsKey() ? 0 : jobPO.getIsKey()); int updateCount = 0; // 更新主表数据 updateCount += getJobMapper().updateBaseJob(jobPO); @@ -395,7 +397,9 @@ public class JobServiceImpl extends Service implements JobService { return; } DepartmentPO parentDept = getDepartmentMapper().getDeptById(departmentPO.getParentDept()); - buildParentDepts(parentDept, builderDeparts); + if (null != parentDept) { + buildParentDepts(parentDept, builderDeparts); + } } /** @@ -410,7 +414,9 @@ public class JobServiceImpl extends Service implements JobService { return; } CompPO parentComp = getCompMapper().listById(compPO.getParentCompany()); - buildParentComps(parentComp, builderComps); + if (null != parentComp) { + buildParentComps(parentComp, builderComps); + } } /** @@ -627,7 +633,7 @@ public class JobServiceImpl extends Service implements JobService { SearchConditionOption noOption = new SearchConditionOption("1", "是"); isKeyOptions.add(yesOption); isKeyOptions.add(noOption); - SearchConditionItem isKeyItem = OrganizationFormItemUtil.selectItem(user, isKeyOptions, 2, 16, 6, false, "禁用标记", "forbiddenTag"); + SearchConditionItem isKeyItem = OrganizationFormItemUtil.selectItem(user, isKeyOptions, 2, 16, 6, false, "是否关键岗", "isKey"); isKeyItem.setDetailtype(3); // 工作地点 SearchConditionItem workplaceItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "工作地点", "workplace"); @@ -657,7 +663,7 @@ public class JobServiceImpl extends Service implements JobService { OrganizationAssert.notNull(jobPO, "数据不存在或数据已删除"); jobNoItem.setValue(jobPO.getJobNo()); jobNameItem.setValue(jobPO.getJobName()); - isKeyItem.setValue(jobPO.getIsKey()); + isKeyItem.setValue(null == jobPO.getIsKey() ? "0" : jobPO.getIsKey() + ""); workplaceItem.setValue(jobPO.getWorkplace()); descriptionItem.setValue(jobPO.getDescription()); workDutyItem.setValue(jobPO.getWorkDuty()); diff --git a/src/com/engine/organization/transmethod/JobTransMethod.java b/src/com/engine/organization/transmethod/JobTransMethod.java index 8242bfdd..c7257131 100644 --- a/src/com/engine/organization/transmethod/JobTransMethod.java +++ b/src/com/engine/organization/transmethod/JobTransMethod.java @@ -17,7 +17,7 @@ public class JobTransMethod { } public static String getIsKeySpan(String isKey) { - if ("0".equals(isKey)) + if ("1".equals(isKey)) return "是"; else return "否"; From a7b8c6b89d9a8b46cef897e8a5b9810469055f37 Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Tue, 31 May 2022 13:57:56 +0800 Subject: [PATCH 20/26] =?UTF-8?q?=E7=BC=96=E5=8F=B7=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=AE=9E=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/表结构SQL/MySQL.sql | 13 ++++++ .../entity/codesetting/po/CodeRule.java | 10 ----- .../entity/codesetting/po/CodeRuleDetail.java | 10 ----- .../codesetting/po/CodeRuleDetailPO.java | 40 +++++++++++++++++++ .../entity/codesetting/po/CodeRulePO.java | 38 ++++++++++++++++++ .../codesetting/po/CodeRuleReservedPO.java | 38 ++++++++++++++++++ 6 files changed, 129 insertions(+), 20 deletions(-) delete mode 100644 src/com/engine/organization/entity/codesetting/po/CodeRule.java delete mode 100644 src/com/engine/organization/entity/codesetting/po/CodeRuleDetail.java create mode 100644 src/com/engine/organization/entity/codesetting/po/CodeRuleDetailPO.java create mode 100644 src/com/engine/organization/entity/codesetting/po/CodeRulePO.java create mode 100644 src/com/engine/organization/entity/codesetting/po/CodeRuleReservedPO.java diff --git a/docs/表结构SQL/MySQL.sql b/docs/表结构SQL/MySQL.sql index 18ba1981..604dc705 100644 --- a/docs/表结构SQL/MySQL.sql +++ b/docs/表结构SQL/MySQL.sql @@ -355,6 +355,19 @@ CREATE TABLE JCL_CODERULE_DETAIL ( CONSTRAINT JCL_CODERULE_DETAIL PRIMARY KEY (id) ); +--JCL_CODERULE_RESERVED +CREATE TABLE JCL_CODERULE_RESERVED ( + id int auto_increment NOT NULL, + coderule_id int(11) null, + reserved_code varchar(255) null, + reserved_desc varchar (1000) null, + creator int null, + delete_type int null, + create_time date null, + update_time date null, + CONSTRAINT JCL_CODERULE_RESERVED PRIMARY KEY (id) +); + diff --git a/src/com/engine/organization/entity/codesetting/po/CodeRule.java b/src/com/engine/organization/entity/codesetting/po/CodeRule.java deleted file mode 100644 index 0b8e484c..00000000 --- a/src/com/engine/organization/entity/codesetting/po/CodeRule.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.engine.organization.entity.codesetting.po; - -/** - * @Author weaver_cl - * @Description: TODO - * @Date 2022/5/30 - * @Version V1.0 - **/ -public class CodeRule { -} diff --git a/src/com/engine/organization/entity/codesetting/po/CodeRuleDetail.java b/src/com/engine/organization/entity/codesetting/po/CodeRuleDetail.java deleted file mode 100644 index 46d60886..00000000 --- a/src/com/engine/organization/entity/codesetting/po/CodeRuleDetail.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.engine.organization.entity.codesetting.po; - -/** - * @Author weaver_cl - * @Description: TODO - * @Date 2022/5/30 - * @Version V1.0 - **/ -public class CodeRuleDetail { -} diff --git a/src/com/engine/organization/entity/codesetting/po/CodeRuleDetailPO.java b/src/com/engine/organization/entity/codesetting/po/CodeRuleDetailPO.java new file mode 100644 index 00000000..9932e156 --- /dev/null +++ b/src/com/engine/organization/entity/codesetting/po/CodeRuleDetailPO.java @@ -0,0 +1,40 @@ +package com.engine.organization.entity.codesetting.po; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/30 + * @Version V1.0 + **/ + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class CodeRuleDetailPO { + + /** + * 主键 + */ + private Long id; + + private int coderuleId; + + private String ruleType; + + private String ruleValue; + + private int showOrder; + + private Long creator; + private int deleteType; + private Date createTime; + private Date updateTime; +} diff --git a/src/com/engine/organization/entity/codesetting/po/CodeRulePO.java b/src/com/engine/organization/entity/codesetting/po/CodeRulePO.java new file mode 100644 index 00000000..f703d4f3 --- /dev/null +++ b/src/com/engine/organization/entity/codesetting/po/CodeRulePO.java @@ -0,0 +1,38 @@ +package com.engine.organization.entity.codesetting.po; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/30 + * @Version V1.0 + **/ + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class CodeRulePO { + + /** + * 主键 + */ + private Long id; + + private String serialType; + + private String serialEnable; + + private String oneselfType; + + private Long creator; + private int deleteType; + private Date createTime; + private Date updateTime; +} diff --git a/src/com/engine/organization/entity/codesetting/po/CodeRuleReservedPO.java b/src/com/engine/organization/entity/codesetting/po/CodeRuleReservedPO.java new file mode 100644 index 00000000..68ec3c93 --- /dev/null +++ b/src/com/engine/organization/entity/codesetting/po/CodeRuleReservedPO.java @@ -0,0 +1,38 @@ +package com.engine.organization.entity.codesetting.po; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/31 + * @Version V1.0 + **/ + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class CodeRuleReservedPO { + + /** + * 主键 + */ + private Long id; + + private int codeRuleId; + + private String reservedCode; + + private String reservedDesc; + + private Long creator; + private int deleteType; + private Date createTime; + private Date updateTime; +} From aa3d3fad48d5d706eb2d5537bb42b417c4328156 Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Tue, 31 May 2022 17:56:00 +0800 Subject: [PATCH 21/26] =?UTF-8?q?=E7=BC=96=E5=8F=B7=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/codesetting/bo/CodeSettingBO.java | 84 +++++++++++++++++++ .../codesetting/param/CodeBaseParam.java | 24 ++++++ .../param/CodeSaveDetailParam.java | 27 ++++++ .../codesetting/param/CodeSaveParam.java | 34 ++++++++ .../codesetting/po/CodeRuleDetailPO.java | 8 +- .../entity/codesetting/po/CodeRulePO.java | 11 ++- .../organization/enums/RuleCodeTypeEnum.java | 45 ++++++++++ .../codesetting/CodeRuleDetailMapper.java | 12 +++ .../codesetting/CodeRuleDetailMapper.xml | 9 ++ .../mapper/codesetting/CodeRuleMapper.java | 19 +++++ .../mapper/codesetting/CodeRuleMapper.xml | 76 +++++++++++++++++ .../mapper/employee/EmployeeMapper.java | 2 - .../service/CodeSettingService.java | 19 +++++ .../service/impl/CodeSettingServiceImpl.java | 40 +++++++++ .../web/CodeSettingController.java | 22 ++++- .../wrapper/CodeSettingWrapper.java | 6 ++ 16 files changed, 430 insertions(+), 8 deletions(-) create mode 100644 src/com/engine/organization/entity/codesetting/bo/CodeSettingBO.java create mode 100644 src/com/engine/organization/entity/codesetting/param/CodeBaseParam.java create mode 100644 src/com/engine/organization/entity/codesetting/param/CodeSaveDetailParam.java create mode 100644 src/com/engine/organization/entity/codesetting/param/CodeSaveParam.java create mode 100644 src/com/engine/organization/enums/RuleCodeTypeEnum.java create mode 100644 src/com/engine/organization/mapper/codesetting/CodeRuleDetailMapper.java create mode 100644 src/com/engine/organization/mapper/codesetting/CodeRuleDetailMapper.xml create mode 100644 src/com/engine/organization/mapper/codesetting/CodeRuleMapper.java create mode 100644 src/com/engine/organization/mapper/codesetting/CodeRuleMapper.xml diff --git a/src/com/engine/organization/entity/codesetting/bo/CodeSettingBO.java b/src/com/engine/organization/entity/codesetting/bo/CodeSettingBO.java new file mode 100644 index 00000000..57b705f9 --- /dev/null +++ b/src/com/engine/organization/entity/codesetting/bo/CodeSettingBO.java @@ -0,0 +1,84 @@ +package com.engine.organization.entity.codesetting.bo; + +import com.engine.organization.entity.codesetting.param.CodeBaseParam; +import com.engine.organization.entity.codesetting.param.CodeSaveDetailParam; +import com.engine.organization.entity.codesetting.param.CodeSaveParam; +import com.engine.organization.entity.codesetting.po.CodeRuleDetailPO; +import com.engine.organization.entity.codesetting.po.CodeRulePO; +import com.engine.organization.enums.DeleteTypeEnum; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import weaver.general.Util; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/31 + * @Version V1.0 + **/ +public class CodeSettingBO { + + public static CodeRulePO buildCodeRule(CodeSaveParam params,Long uid,Long codeRuleId) { + + StringBuilder sb = new StringBuilder(); + parseOneSelfType(params.getDateSerial(), sb); + parseOneSelfType(params.getDeptSerial(), sb); + parseOneSelfType(params.getJobtitlesSerial(), sb); + + CodeRulePO codeRulePO = CodeRulePO.builder() + .serialType(params.getSerialType()) + .serialEnable(Optional.of(params.getSerialEnable()).orElse("0")) + .oneselfType(sb.toString()) + .creator(uid) + .deleteType(DeleteTypeEnum.NOT_DELETED.getValue()) + .updateTime(new Date()) + .build(); + if (codeRuleId == null) { + codeRulePO.setCreateTime(new Date()); + }else { + codeRulePO.setId(codeRuleId); + } + return codeRulePO; + + } + + public static List bulidCodeDetailList(List codeSaveDetailParams, Long uid,Long codeRuleId) { + if(CollectionUtils.isEmpty(codeSaveDetailParams)) { + return null; + } + + return codeSaveDetailParams.stream().map(e -> CodeRuleDetailPO.builder() + .coderuleId(codeRuleId) + .ruleType(e.getRuletype()) + .ruleValue(e.getRulevalue()) + .showOrder(e.getShoworder()) + .creator(uid) + .deleteType(DeleteTypeEnum.NOT_DELETED.getValue()) + .createTime(new Date()) + .updateTime(new Date()) + .build() + ).collect(Collectors.toList()); + } + + + /** + * 解析构建单独流程类型 + * @param param + * @param sb + */ + private static void parseOneSelfType(CodeBaseParam param, StringBuilder sb) { + if(Objects.nonNull(param)) { + String enable = Util.null2String(param.getEnable(),"0"); + String key = param.getKey(); + if (enable.equals("1") && StringUtils.isNotEmpty(key)) { + sb.append(key); + sb.append(","); + } + } + } + + +} diff --git a/src/com/engine/organization/entity/codesetting/param/CodeBaseParam.java b/src/com/engine/organization/entity/codesetting/param/CodeBaseParam.java new file mode 100644 index 00000000..640a161b --- /dev/null +++ b/src/com/engine/organization/entity/codesetting/param/CodeBaseParam.java @@ -0,0 +1,24 @@ +package com.engine.organization.entity.codesetting.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/31 + * @Version V1.0 + **/ + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class CodeBaseParam { + + private String enable; + + private String key; +} diff --git a/src/com/engine/organization/entity/codesetting/param/CodeSaveDetailParam.java b/src/com/engine/organization/entity/codesetting/param/CodeSaveDetailParam.java new file mode 100644 index 00000000..05ee0786 --- /dev/null +++ b/src/com/engine/organization/entity/codesetting/param/CodeSaveDetailParam.java @@ -0,0 +1,27 @@ +package com.engine.organization.entity.codesetting.param; + + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/31 + * @Version V1.0 + **/ + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class CodeSaveDetailParam { + + private String ruletype; + + private String rulevalue; + + private int showorder; +} diff --git a/src/com/engine/organization/entity/codesetting/param/CodeSaveParam.java b/src/com/engine/organization/entity/codesetting/param/CodeSaveParam.java new file mode 100644 index 00000000..37681351 --- /dev/null +++ b/src/com/engine/organization/entity/codesetting/param/CodeSaveParam.java @@ -0,0 +1,34 @@ +package com.engine.organization.entity.codesetting.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/31 + * @Version V1.0 + **/ + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class CodeSaveParam { + + private String serialEnable; + + private List codeSaveDetailParams; + + private String serialType; + + private CodeBaseParam dateSerial; + + private CodeBaseParam deptSerial; + + private CodeBaseParam jobtitlesSerial; +} diff --git a/src/com/engine/organization/entity/codesetting/po/CodeRuleDetailPO.java b/src/com/engine/organization/entity/codesetting/po/CodeRuleDetailPO.java index 9932e156..fbf8a47f 100644 --- a/src/com/engine/organization/entity/codesetting/po/CodeRuleDetailPO.java +++ b/src/com/engine/organization/entity/codesetting/po/CodeRuleDetailPO.java @@ -25,10 +25,16 @@ public class CodeRuleDetailPO { */ private Long id; - private int coderuleId; + private Long coderuleId; + /** + * 规则类型 + */ private String ruleType; + /** + * 规则值 + */ private String ruleValue; private int showOrder; diff --git a/src/com/engine/organization/entity/codesetting/po/CodeRulePO.java b/src/com/engine/organization/entity/codesetting/po/CodeRulePO.java index f703d4f3..7c54bf92 100644 --- a/src/com/engine/organization/entity/codesetting/po/CodeRulePO.java +++ b/src/com/engine/organization/entity/codesetting/po/CodeRulePO.java @@ -25,14 +25,23 @@ public class CodeRulePO { */ private Long id; + /** + * 编号类型(目前编号类型未知 后期可设置枚举) + */ private String serialType; + /** + * 是否开启 + */ private String serialEnable; + /** + * 日期单独流水year,month,day + */ private String oneselfType; private Long creator; - private int deleteType; + private int deleteType; private Date createTime; private Date updateTime; } diff --git a/src/com/engine/organization/enums/RuleCodeTypeEnum.java b/src/com/engine/organization/enums/RuleCodeTypeEnum.java new file mode 100644 index 00000000..a8988d3b --- /dev/null +++ b/src/com/engine/organization/enums/RuleCodeTypeEnum.java @@ -0,0 +1,45 @@ +package com.engine.organization.enums; + + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/31 + * @Version V1.0 + **/ +public enum RuleCodeTypeEnum { + + + SUBCOMPANY("SUBCOMPANY"), + DEPARTMENT("DEPARTMENT"), + JOBTITLES("JOBTITLES"), + USER("USER"), + YEAR("YEAR"), + MONTH("MONTH"), + DAY("DAY"), + STRING("STRING"), + NUMBER("NUMBER"); + + private String value; + + RuleCodeTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static RuleCodeTypeEnum getByValue(String value) { + for (RuleCodeTypeEnum ruleCodeType : values()) { + if (ruleCodeType.getValue().equals(value)) { + return ruleCodeType; + } + } + return null; + } +} diff --git a/src/com/engine/organization/mapper/codesetting/CodeRuleDetailMapper.java b/src/com/engine/organization/mapper/codesetting/CodeRuleDetailMapper.java new file mode 100644 index 00000000..190256be --- /dev/null +++ b/src/com/engine/organization/mapper/codesetting/CodeRuleDetailMapper.java @@ -0,0 +1,12 @@ +package com.engine.organization.mapper.codesetting; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/31 + * @Version V1.0 + **/ +public interface CodeRuleDetailMapper { + + void delete(Long codeRuleId); +} diff --git a/src/com/engine/organization/mapper/codesetting/CodeRuleDetailMapper.xml b/src/com/engine/organization/mapper/codesetting/CodeRuleDetailMapper.xml new file mode 100644 index 00000000..1a26183b --- /dev/null +++ b/src/com/engine/organization/mapper/codesetting/CodeRuleDetailMapper.xml @@ -0,0 +1,9 @@ + + + + + + + delete from JCL_CODERULE_DETAIL where coderule_id = #{codeRuleId} + + \ No newline at end of file diff --git a/src/com/engine/organization/mapper/codesetting/CodeRuleMapper.java b/src/com/engine/organization/mapper/codesetting/CodeRuleMapper.java new file mode 100644 index 00000000..69f1e3b7 --- /dev/null +++ b/src/com/engine/organization/mapper/codesetting/CodeRuleMapper.java @@ -0,0 +1,19 @@ +package com.engine.organization.mapper.codesetting; + +import com.engine.organization.entity.codesetting.po.CodeRulePO; +import org.apache.ibatis.annotations.Param; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/5/31 + * @Version V1.0 + **/ +public interface CodeRuleMapper { + + Long getCodeRuleId(@Param("serialType") String serialType); + + void updateCodeRule(@Param("codeRulePO") CodeRulePO codeRulePO); + + void insertCodeRule(CodeRulePO codeRulePO); +} diff --git a/src/com/engine/organization/mapper/codesetting/CodeRuleMapper.xml b/src/com/engine/organization/mapper/codesetting/CodeRuleMapper.xml new file mode 100644 index 00000000..6368201e --- /dev/null +++ b/src/com/engine/organization/mapper/codesetting/CodeRuleMapper.xml @@ -0,0 +1,76 @@ + + + + + + + + + update JCL_CODERULE + + serial_enable = #{serialEnable} + oneself_type = #{oneselfType} + creator=#{creator}, + update_time=#{updateTime}, + + WHERE id = #{codeRuleId} AND delete_type = 0 + + + + + INSERT INTO JCL_CODERULE + + + creator, + + + delete_type, + + + create_time, + + + update_time, + + + serial_type, + + + serial_enable, + + + oneself_type, + + + + + #{creator}, + + + #{deleteType}, + + + #{createTime}, + + + #{updateTime}, + + + serialType, + + + serialEnable, + + + oneselfType, + + + + + + \ No newline at end of file diff --git a/src/com/engine/organization/mapper/employee/EmployeeMapper.java b/src/com/engine/organization/mapper/employee/EmployeeMapper.java index d6533bc5..261976ae 100644 --- a/src/com/engine/organization/mapper/employee/EmployeeMapper.java +++ b/src/com/engine/organization/mapper/employee/EmployeeMapper.java @@ -1,9 +1,7 @@ package com.engine.organization.mapper.employee; -import com.engine.organization.entity.department.po.DepartmentPO; import org.apache.ibatis.annotations.Param; -import java.util.List; /** * @Author weaver_cl diff --git a/src/com/engine/organization/service/CodeSettingService.java b/src/com/engine/organization/service/CodeSettingService.java index ee3ac6c6..1c19b309 100644 --- a/src/com/engine/organization/service/CodeSettingService.java +++ b/src/com/engine/organization/service/CodeSettingService.java @@ -1,5 +1,6 @@ package com.engine.organization.service; +import com.engine.organization.entity.codesetting.param.CodeSaveParam; import com.engine.organization.util.response.ReturnResult; /** @@ -10,5 +11,23 @@ import com.engine.organization.util.response.ReturnResult; **/ public interface CodeSettingService { + /*** + * 是否具有权限 + * @param serialtype + * @return + */ ReturnResult getHasRight(String serialtype); + + /** + * 保存更新 + * @param params + */ + void saveOrUpdateCodeSetting(CodeSaveParam params); + + /** + * 获取主表id + * @param serialType + * @return + */ + Long getCodeRuleId(String serialType); } diff --git a/src/com/engine/organization/service/impl/CodeSettingServiceImpl.java b/src/com/engine/organization/service/impl/CodeSettingServiceImpl.java index e64cc20e..820c2f94 100644 --- a/src/com/engine/organization/service/impl/CodeSettingServiceImpl.java +++ b/src/com/engine/organization/service/impl/CodeSettingServiceImpl.java @@ -1,12 +1,23 @@ package com.engine.organization.service.impl; +import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.hrm.entity.RuleCodeType; +import com.engine.organization.entity.codesetting.bo.CodeSettingBO; +import com.engine.organization.entity.codesetting.param.CodeSaveParam; +import com.engine.organization.entity.codesetting.po.CodeRuleDetailPO; +import com.engine.organization.entity.codesetting.po.CodeRulePO; +import com.engine.organization.mapper.codesetting.CodeRuleDetailMapper; +import com.engine.organization.mapper.codesetting.CodeRuleMapper; import com.engine.organization.service.CodeSettingService; +import com.engine.organization.util.OrganizationAssert; +import com.engine.organization.util.db.MapperProxyFactory; import com.engine.organization.util.response.ReturnResult; import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -17,6 +28,10 @@ import java.util.Map; **/ public class CodeSettingServiceImpl extends Service implements CodeSettingService { + public CodeSettingService getCodeSettingService(User user) { + return ServiceUtil.getService(CodeSettingServiceImpl.class,user); + } + @Override public ReturnResult getHasRight(String serialtype) { boolean hasRight = false; @@ -38,4 +53,29 @@ public class CodeSettingServiceImpl extends Service implements CodeSettingServic retmap.put("hasRight", hasRight); return ReturnResult.successed(retmap); } + + @Override + public void saveOrUpdateCodeSetting(CodeSaveParam params) { + OrganizationAssert.notNull(params,"参数不能为空"); + Long codeRuleId = getCodeSettingService(user).getCodeRuleId(params.getSerialType()); + CodeRulePO codeRulePO = CodeSettingBO.buildCodeRule(params,(long)user.getUID(),codeRuleId); + //1.新增或更新主表 + if (codeRulePO != null) { + MapperProxyFactory.getProxy(CodeRuleMapper.class).updateCodeRule(codeRulePO); + }else { + MapperProxyFactory.getProxy(CodeRuleMapper.class).insertCodeRule(codeRulePO); + } + + //2.插入明细表 + codeRuleId = getCodeSettingService(user).getCodeRuleId(params.getSerialType()); + MapperProxyFactory.getProxy(CodeRuleDetailMapper.class).delete(codeRuleId); + List codeRuleDetailPO = CodeSettingBO.bulidCodeDetailList(params.getCodeSaveDetailParams(),(long)user.getUID(),codeRuleId); + + + } + + @Override + public Long getCodeRuleId(String serialType) { + return MapperProxyFactory.getProxy(CodeRuleMapper.class).getCodeRuleId(serialType); + } } diff --git a/src/com/engine/organization/web/CodeSettingController.java b/src/com/engine/organization/web/CodeSettingController.java index 2a8ba13b..a9090350 100644 --- a/src/com/engine/organization/web/CodeSettingController.java +++ b/src/com/engine/organization/web/CodeSettingController.java @@ -1,17 +1,16 @@ package com.engine.organization.web; import com.engine.common.util.ServiceUtil; +import com.engine.organization.entity.codesetting.param.CodeSaveParam; import com.engine.organization.util.response.ReturnResult; import com.engine.organization.wrapper.CodeSettingWrapper; +import io.swagger.v3.oas.annotations.parameters.RequestBody; import weaver.hrm.HrmUserVarify; import weaver.hrm.User; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; +import javax.ws.rs.*; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; @@ -47,4 +46,19 @@ public class CodeSettingController { } } + + @POST + @Path("/saveOrUpdateCodeSetting") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult saveBaseComp(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody CodeSaveParam params) { + try { + User user = HrmUserVarify.getUser(request, response); + return getCodeSettingWrapper(user).saveOrUpdateCodeSetting(params); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + + } diff --git a/src/com/engine/organization/wrapper/CodeSettingWrapper.java b/src/com/engine/organization/wrapper/CodeSettingWrapper.java index f8610c6d..d5df6b93 100644 --- a/src/com/engine/organization/wrapper/CodeSettingWrapper.java +++ b/src/com/engine/organization/wrapper/CodeSettingWrapper.java @@ -2,6 +2,7 @@ package com.engine.organization.wrapper; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.organization.entity.codesetting.param.CodeSaveParam; import com.engine.organization.service.CodeSettingService; import com.engine.organization.service.impl.CodeSettingServiceImpl; import com.engine.organization.util.response.ReturnResult; @@ -22,4 +23,9 @@ public class CodeSettingWrapper extends Service { public ReturnResult getHasRight(String serialtype) { return getCodeSettingService(user).getHasRight(serialtype); } + + public ReturnResult saveOrUpdateCodeSetting(CodeSaveParam params) { + getCodeSettingService(user).saveOrUpdateCodeSetting(params); + return ReturnResult.successed(); + } } From 6550e05a698b927fa2ab7b548ca9842d5ff18bef Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 31 May 2022 21:39:20 +0800 Subject: [PATCH 22/26] =?UTF-8?q?=E5=B2=97=E4=BD=8D=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/employee/vo/EmployeeVO.java | 30 +++++ .../entity/extend/bo/ExtendInfoBO.java | 8 +- .../entity/extend/po/ExtendInfoPO.java | 5 + .../organization/entity/job/po/JobDTPO.java | 32 ++++++ .../entity/scheme/po/GradePO.java | 4 + .../entity/scheme/po/LevelPO.java | 4 + .../entity/scheme/po/SchemePO.java | 14 ++- .../entity/scheme/vo/SchemeTableVO.java | 11 +- .../organization/mapper/job/JobDTMapper.java | 37 ++++++ .../organization/mapper/job/JobDTMapper.xml | 108 ++++++++++++++++++ .../organization/mapper/job/JobMapper.java | 10 +- .../mapper/scheme/GradeMapper.java | 11 ++ .../mapper/scheme/GradeMapper.xml | 5 + .../organization/service/JobService.java | 9 ++ .../service/impl/ExtServiceImpl.java | 10 -- .../service/impl/JobServiceImpl.java | 71 +++++++++++- .../organization/web/JobController.java | 12 ++ .../organization/wrapper/JobWrapper.java | 11 ++ 18 files changed, 359 insertions(+), 33 deletions(-) create mode 100644 src/com/engine/organization/entity/employee/vo/EmployeeVO.java create mode 100644 src/com/engine/organization/entity/job/po/JobDTPO.java create mode 100644 src/com/engine/organization/mapper/job/JobDTMapper.java create mode 100644 src/com/engine/organization/mapper/job/JobDTMapper.xml diff --git a/src/com/engine/organization/entity/employee/vo/EmployeeVO.java b/src/com/engine/organization/entity/employee/vo/EmployeeVO.java new file mode 100644 index 00000000..9db19162 --- /dev/null +++ b/src/com/engine/organization/entity/employee/vo/EmployeeVO.java @@ -0,0 +1,30 @@ +package com.engine.organization.entity.employee.vo; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/31 + * @version: 1.0 + */ +public class EmployeeVO { + /** + * 名称 + */ + private String username; + + /** + * 分部 + */ + private String companyName; + + /** + * 部门 + */ + private String departmentName; + + /** + * 直接上级 + */ + private String manager; + +} diff --git a/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java b/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java index 479fcc67..192c1ae6 100644 --- a/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java +++ b/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java @@ -41,14 +41,14 @@ public class ExtendInfoBO { // 封装对象为table组件 public static List> convertInfoListToTable(User user, List infoPOList, int viewAttr, boolean showLabel) { - List> lsCol = new ArrayList>(); - Map col = null; + List> lsCol = new ArrayList<>(); + Map col; int width = 100 / infoPOList.size(); for (int i = 0; infoPOList != null && i < infoPOList.size(); i++) { ExtendInfoPO extendInfoPO = infoPOList.get(i); String tmpkey = extendInfoPO.getFieldName(); - col = new HashMap(); + col = new HashMap<>(); col.put("title", extendInfoPO.getFieldNameDesc()); col.put("key", tmpkey); @@ -114,7 +114,7 @@ public class ExtendInfoBO { // 浏览按钮特殊处理 if (FieldType.BROWSER.equals(fieldItem.getType())) { - BrowserBean browserConditionParam = OrganizationFormItemUtil.browserItem(user, 2, 16, fieldItem.getViewAttr(), false, extendInfoPO.getFieldNameDesc(), extendInfoPO.getBrowserType(), extendInfoPO.getFieldName(), "").getBrowserConditionParam(); + BrowserBean browserConditionParam = OrganizationFormItemUtil.browserItem(user, 2, 16, fieldItem.getViewAttr(), false, extendInfoPO.getFieldNameDesc(), extendInfoPO.getBrowserType(), extendInfoPO.getFieldName(), extendInfoPO.getCustomBrowserId()).getBrowserConditionParam(); fieldItem.setBrowserConditionParam(browserConditionParam); } diff --git a/src/com/engine/organization/entity/extend/po/ExtendInfoPO.java b/src/com/engine/organization/entity/extend/po/ExtendInfoPO.java index aba76bc9..f7b4d707 100644 --- a/src/com/engine/organization/entity/extend/po/ExtendInfoPO.java +++ b/src/com/engine/organization/entity/extend/po/ExtendInfoPO.java @@ -99,6 +99,11 @@ public class ExtendInfoPO { */ private Integer browserShow; + /** + * 自定义浏览按钮标识 + */ + private String customBrowserId; + /** * 显示顺序 */ diff --git a/src/com/engine/organization/entity/job/po/JobDTPO.java b/src/com/engine/organization/entity/job/po/JobDTPO.java new file mode 100644 index 00000000..a259cfbe --- /dev/null +++ b/src/com/engine/organization/entity/job/po/JobDTPO.java @@ -0,0 +1,32 @@ +package com.engine.organization.entity.job.po; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/31 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class JobDTPO { + private Long id; + private Long mainId; + private String levelId; + private String gradeId; + private String levelIdspan; + private String gradeIdspan; + + private Long creator; + private int deleteType; + private Date createTime; + private Date updateTime; +} diff --git a/src/com/engine/organization/entity/scheme/po/GradePO.java b/src/com/engine/organization/entity/scheme/po/GradePO.java index bc16d400..3d1a435f 100644 --- a/src/com/engine/organization/entity/scheme/po/GradePO.java +++ b/src/com/engine/organization/entity/scheme/po/GradePO.java @@ -46,6 +46,10 @@ public class GradePO { * 禁用标记 */ private int forbiddenTag; + /** + * 是否被引用 + */ + private int isUsed; /** * */ diff --git a/src/com/engine/organization/entity/scheme/po/LevelPO.java b/src/com/engine/organization/entity/scheme/po/LevelPO.java index b20d3c5d..3a1e9819 100644 --- a/src/com/engine/organization/entity/scheme/po/LevelPO.java +++ b/src/com/engine/organization/entity/scheme/po/LevelPO.java @@ -44,6 +44,10 @@ public class LevelPO { *禁用标记 */ private int forbiddenTag; + /** + * 是否被引用 + */ + private int isUsed; /** * */ diff --git a/src/com/engine/organization/entity/scheme/po/SchemePO.java b/src/com/engine/organization/entity/scheme/po/SchemePO.java index 9561eeef..1cf7918b 100644 --- a/src/com/engine/organization/entity/scheme/po/SchemePO.java +++ b/src/com/engine/organization/entity/scheme/po/SchemePO.java @@ -13,25 +13,29 @@ import java.util.Date; @AllArgsConstructor public class SchemePO { /** - *自增主键 + * 自增主键 */ private long id; /** - *编号 + * 编号 */ private String schemeNo; /** - *方案名称 + * 方案名称 */ private String schemeName; /** - *方案说明 + * 方案说明 */ private String schemeDescription; /** - *禁用标记 + * 禁用标记 */ private int forbiddenTag; + /** + * 是否被引用 + */ + private int isUsed; /** * */ diff --git a/src/com/engine/organization/entity/scheme/vo/SchemeTableVO.java b/src/com/engine/organization/entity/scheme/vo/SchemeTableVO.java index 060bb66d..ed40b29c 100644 --- a/src/com/engine/organization/entity/scheme/vo/SchemeTableVO.java +++ b/src/com/engine/organization/entity/scheme/vo/SchemeTableVO.java @@ -18,6 +18,7 @@ import lombok.NoArgsConstructor; "t.scheme_name," + "t.scheme_description," + "t.forbidden_tag," + + "t.is_used," + "t.creator," + "t.delete_type," + "t.create_time," + @@ -30,8 +31,8 @@ import lombok.NoArgsConstructor; @OrganizationTableOperate(index = "1", text = "删除") }, tableType = WeaTableType.CHECKBOX, - operatePopedom = @OperatePopedom(transmethod = "com.engine.organization.util.ConfigTrans.formatSourceOperates",otherpara = "column:forbidden_tag"), - checkboxPopedom = @CheckboxPopedom(showmethod = "com.engine.organization.util.ConfigTrans.getCheckBoxPopedom",popedompara = "column:forbidden_tag") + operatePopedom = @OperatePopedom(transmethod = "com.engine.organization.util.ConfigTrans.formatSourceOperates", otherpara = "column:is_used"), + checkboxPopedom = @CheckboxPopedom(showmethod = "com.engine.organization.util.ConfigTrans.getCheckBoxPopedom", popedompara = "column:is_used") ) public class SchemeTableVO { /** @@ -39,7 +40,11 @@ public class SchemeTableVO { */ @OrganizationTableColumn(column = "id", display = false) private Long id; - + /** + * 是否被引用 + */ + @OrganizationTableColumn(column = "isUsed", display = false) + private Integer isUsed; /** * 方案编号 diff --git a/src/com/engine/organization/mapper/job/JobDTMapper.java b/src/com/engine/organization/mapper/job/JobDTMapper.java new file mode 100644 index 00000000..77c37b70 --- /dev/null +++ b/src/com/engine/organization/mapper/job/JobDTMapper.java @@ -0,0 +1,37 @@ +package com.engine.organization.mapper.job; + +import com.engine.organization.entity.job.po.JobDTPO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/31 + * @version: 1.0 + */ +public interface JobDTMapper { + /** + * 查询明细表数据 + * + * @param mainId + * @return + */ + List listJobDTByMainID(@Param("mainId") Long mainId); + /** + * 批量删除 + * + * @param mainId + */ + int deleteByIds(@Param("mainId") Long mainId); + + /** + * 添加数据 + * + * @param jobDTPO + * @return + */ + int insertIgnoreNull(JobDTPO jobDTPO); + +} diff --git a/src/com/engine/organization/mapper/job/JobDTMapper.xml b/src/com/engine/organization/mapper/job/JobDTMapper.xml new file mode 100644 index 00000000..5e196887 --- /dev/null +++ b/src/com/engine/organization/mapper/job/JobDTMapper.xml @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + t + . + id + , + t.mainid, + t.level_id, + t.grade_id, + t.level_id_span, + t.grade_id_span + + + INSERT INTO jcl_org_jobdt + + + creator, + + + delete_type, + + + create_time, + + + update_time, + + + + mainid, + + + level_id, + + + grade_id, + + + level_id_span, + + + grade_id_span, + + + + + #{creator}, + + + #{deleteType}, + + + #{createTime}, + + + #{updateTime}, + + + #{mainId}, + + + #{levelId}, + + + #{gradeId}, + + + #{levelIdspan}, + + + #{gradeIdspan}, + + + + + + delete + from jcl_org_jobdt + where mainid = #{mainId} + + + + + + + \ No newline at end of file diff --git a/src/com/engine/organization/mapper/job/JobMapper.java b/src/com/engine/organization/mapper/job/JobMapper.java index cb059891..c4c9135b 100644 --- a/src/com/engine/organization/mapper/job/JobMapper.java +++ b/src/com/engine/organization/mapper/job/JobMapper.java @@ -9,11 +9,11 @@ import java.util.List; import java.util.Map; /** - * @Author weaver_cl - * @Description: TODO - * @Date 2022/5/20 - * @Version V1.0 - **/ + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/24 + * @version: 1.0 + */ public interface JobMapper { /** diff --git a/src/com/engine/organization/mapper/scheme/GradeMapper.java b/src/com/engine/organization/mapper/scheme/GradeMapper.java index 0f4e9133..3b9db7f1 100644 --- a/src/com/engine/organization/mapper/scheme/GradeMapper.java +++ b/src/com/engine/organization/mapper/scheme/GradeMapper.java @@ -23,8 +23,17 @@ public interface GradeMapper { */ List listByNo(@Param("gradeNo") String gradeNo); + /** + * 根据等级方案查询数据 + * + * @param schemeId + * @return + */ + List listGradesBySchemeId(@Param("schemeId") long schemeId); + /** * 获取职级根据ID + * * @param id * @return */ @@ -32,6 +41,7 @@ public interface GradeMapper { /** * 插入职级 + * * @param gradePO * @return */ @@ -62,6 +72,7 @@ public interface GradeMapper { /** * 根据禁用标记统计 + * * @param tag * @return */ diff --git a/src/com/engine/organization/mapper/scheme/GradeMapper.xml b/src/com/engine/organization/mapper/scheme/GradeMapper.xml index ccc1b0c6..68466e2a 100644 --- a/src/com/engine/organization/mapper/scheme/GradeMapper.xml +++ b/src/com/engine/organization/mapper/scheme/GradeMapper.xml @@ -49,6 +49,11 @@ and forbidden_tag = #{tag} + update jcl_org_grade diff --git a/src/com/engine/organization/service/JobService.java b/src/com/engine/organization/service/JobService.java index 3b516618..6b531f38 100644 --- a/src/com/engine/organization/service/JobService.java +++ b/src/com/engine/organization/service/JobService.java @@ -73,6 +73,15 @@ public interface JobService { */ int updateForm(Map params); + /** + * 复制岗位到指定部门 + * + * @param id + * @param departmentId + * @return + */ + int copyJobItem(long id, long departmentId); + /** * 更新禁用标记 * diff --git a/src/com/engine/organization/service/impl/ExtServiceImpl.java b/src/com/engine/organization/service/impl/ExtServiceImpl.java index 9c84c69e..17841f76 100644 --- a/src/com/engine/organization/service/impl/ExtServiceImpl.java +++ b/src/com/engine/organization/service/impl/ExtServiceImpl.java @@ -98,9 +98,6 @@ public class ExtServiceImpl extends Service implements ExtService { } return item.getFieldName(); }).collect(Collectors.joining(",")); - //if (TYPE_JOB.equals(extendType)) { - // fields += ""; - //} // 去除null 元素 List> maps = getExtDTMapper().listCompExtDT(tableName, id, fields); maps.removeIf(Objects::isNull); @@ -177,13 +174,6 @@ public class ExtServiceImpl extends Service implements ExtService { } map.put(extendInfoPO.getFieldName(), params.get(extendInfoPO.getFieldName() + "_" + i)); } - //// 岗位管理,添加特殊字段 - //if (TYPE_JOB.equals(extendType)) { - // map.put("level_id", params.get("level_id_" + i)); - // map.put("level_id_span", params.get("level_id_span_" + i)); - // map.put("grade_id", params.get("grade_id_" + i)); - // map.put("grade_id_span", params.get("grade_id_span_" + i)); - //} map.put("mainid", id); map.put("creator", user.getUID()); map.put("delete_type", 0); diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index 38129945..e832e3cf 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -17,16 +17,23 @@ import com.engine.organization.entity.company.po.CompPO; import com.engine.organization.entity.department.bo.DepartmentBO; import com.engine.organization.entity.department.dto.DepartmentListDTO; import com.engine.organization.entity.department.po.DepartmentPO; +import com.engine.organization.entity.extend.bo.ExtendInfoBO; +import com.engine.organization.entity.extend.po.ExtendInfoPO; import com.engine.organization.entity.job.bo.JobBO; import com.engine.organization.entity.job.dto.JobListDTO; import com.engine.organization.entity.job.param.JobSearchParam; +import com.engine.organization.entity.job.po.JobDTPO; import com.engine.organization.entity.job.po.JobPO; +import com.engine.organization.entity.scheme.po.GradePO; import com.engine.organization.entity.searchtree.SearchTree; import com.engine.organization.entity.searchtree.SearchTreeParams; import com.engine.organization.mapper.comp.CompMapper; import com.engine.organization.mapper.department.DepartmentMapper; import com.engine.organization.mapper.extend.ExtendGroupMapper; +import com.engine.organization.mapper.job.JobDTMapper; import com.engine.organization.mapper.job.JobMapper; +import com.engine.organization.mapper.scheme.GradeMapper; +import com.engine.organization.mapper.scheme.LevelMapper; import com.engine.organization.mapper.scheme.SchemeMapper; import com.engine.organization.mapper.sequence.SequenceMapper; import com.engine.organization.service.ExtService; @@ -86,6 +93,10 @@ public class JobServiceImpl extends Service implements JobService { return MapperProxyFactory.getProxy(JobMapper.class); } + private JobDTMapper getJobDTMapper() { + return MapperProxyFactory.getProxy(JobDTMapper.class); + } + private CompMapper getCompMapper() { return MapperProxyFactory.getProxy(CompMapper.class); } @@ -143,7 +154,7 @@ public class JobServiceImpl extends Service implements JobService { @Override public Map listPage(JobSearchParam param) { Map datas = new HashMap<>(); - JobPO jobPO = JobBO.convertParamsToPO(param, (long) user.getUID()); + JobPO jobPO = JobBO.convertParamsToPO(param, user.getUID()); boolean filter = isFilter(jobPO); PageInfo pageInfos; List allList = getJobMapper().listNoFilter(); @@ -336,7 +347,27 @@ public class JobServiceImpl extends Service implements JobService { // 拓展页面分组 resultMap.put("tabInfo", getExtService(user).getTabInfo(EXTEND_TYPE, JCL_ORG_JOBEXT)); // 处理明细表 - resultMap.put("tables", getExtService(user).getExtendTables(user, EXTEND_TYPE, JCL_ORG_JOBEXT_DT1, id, viewAttr, false)); + List> extendTables = getExtService(user).getExtendTables(user, EXTEND_TYPE, JCL_ORG_JOBEXT_DT1, id, viewAttr, false); + + Map tableMap = new HashMap<>(); + tableMap.put("hide", false); + tableMap.put("tabname", "职等职级"); + Map tabinfoMap = new HashMap<>(); + List infoPOList = new ArrayList<>(); + infoPOList.add(ExtendInfoPO.builder().fieldName("gradeId").fieldNameDesc("职级").controlType(3).isrequired(1).browserType("161").customBrowserId("gradeBrowser").build()); + infoPOList.add(ExtendInfoPO.builder().fieldName("levelId").fieldNameDesc("职等").controlType(3).isrequired(1).browserType("162").customBrowserId("levelBrowser").build()); + tabinfoMap.put("columns", ExtendInfoBO.convertInfoListToTable(user, infoPOList, viewAttr, false)); + tabinfoMap.put("rownum", "rownum"); + // 去除null 元素 + List maps = getJobDTMapper().listJobDTByMainID(id); + maps.removeIf(Objects::isNull); + tabinfoMap.put("datas", maps); + tableMap.put("tabinfo", tabinfoMap); + // 添加明细表 + extendTables.add(0, tableMap); + + resultMap.put("tables", extendTables); + Map apiDatas = new HashMap<>(); apiDatas.put("result", resultMap); @@ -350,8 +381,18 @@ public class JobServiceImpl extends Service implements JobService { OrganizationAssert.isEmpty(list, "编号不允许重复"); JobPO jobPO = JobBO.convertParamsToPO(params, user.getUID()); jobPO.setIsKey(null == jobPO.getIsKey() ? 0 : jobPO.getIsKey()); - // 设置对应的等级方案 - return getJobMapper().insertIgnoreNull(jobPO); + int insertCount = getJobMapper().insertIgnoreNull(jobPO); + if (null != jobPO.getSchemeId()) { + // 插入明细表信息 + // 根据等级方案查询职等、职级 + List gradePOS = MapperProxyFactory.getProxy(GradeMapper.class).listGradesBySchemeId(jobPO.getSchemeId()); + for (GradePO gradePO : gradePOS) { + List> maps = MapperProxyFactory.getProxy(LevelMapper.class).listLevelsByIds(QueryParam.builder().ids(gradePO.getLevelId()).build().getIds()); + String levelNames = maps.stream().map(item -> (String) item.get("name")).collect(Collectors.joining(",")); + insertCount += getJobDTMapper().insertIgnoreNull(JobDTPO.builder().levelId(gradePO.getLevelId()).gradeId(gradePO.getId() + "").levelIdspan(levelNames).gradeIdspan(gradePO.getGradeName()).mainId(jobPO.getId()).creator((long) user.getUID()).deleteType(0).createTime(new Date()).updateTime(new Date()).build()); + } + } + return insertCount; } @Override @@ -365,11 +406,29 @@ public class JobServiceImpl extends Service implements JobService { updateCount += getJobMapper().updateBaseJob(jobPO); // 更新主表拓展表 updateCount += getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_JOBEXT, params, groupId, jobPO.getId()); - //更新明细表 + // 更新明细表 + getJobDTMapper().deleteByIds(jobPO.getId()); + int rowNum = Util.getIntValue((String) params.get("rownum")); + for (int i = 0; i < rowNum; i++) { + String levelId = (String) params.get("levelId_" + i); + String gradeId = (String) params.get("gradeId_" + i); + String levelIdspan = (String) params.get("levelIdspan_" + i); + String gradeIdspan = (String) params.get("gradeIdspan_" + i); + getJobDTMapper().insertIgnoreNull(JobDTPO.builder().levelId(levelId).gradeId(gradeId).levelIdspan(levelIdspan).gradeIdspan(gradeIdspan).mainId(jobPO.getId()).creator((long) user.getUID()).deleteType(0).createTime(new Date()).updateTime(new Date()).build()); + } getExtService(user).updateExtDT(user, EXTEND_TYPE, JCL_ORG_JOBEXT_DT1, params, jobPO.getId()); return updateCount; } + @Override + public int copyJobItem(long id, long departmentId) { + JobPO jobById = getJobMapper().getJobById(id); + // TODO 自动编号 + jobById.setJobNo("复制_" + jobById.getJobNo()); + jobById.setParentDept(departmentId); + return getJobMapper().insertIgnoreNull(jobById); + } + @Override public int updateForbiddenTagById(JobSearchParam params) { JobPO jobPO = JobPO.builder().id(params.getId()).forbiddenTag(params.getForbiddenTag() ? 0 : 1).build(); @@ -624,7 +683,7 @@ public class JobServiceImpl extends Service implements JobService { // 岗位序列 SearchConditionItem sequenceBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位序列", "161", "sequenceId", "sequenceBrowser"); // 等级方案 - SearchConditionItem schemeBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 1, false, "等级方案", "161", "schemeId", "schemeBrowser"); + SearchConditionItem schemeBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "等级方案", "161", "schemeId", "schemeBrowser"); // 上级岗位 SearchConditionItem parentJobBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "上级岗位", "161", "parentJob", "jobBrowser"); // 是否关键岗 diff --git a/src/com/engine/organization/web/JobController.java b/src/com/engine/organization/web/JobController.java index 089154dd..9f3aacf5 100644 --- a/src/com/engine/organization/web/JobController.java +++ b/src/com/engine/organization/web/JobController.java @@ -171,6 +171,18 @@ public class JobController { } } + @POST + @Path("/copyJobItem") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult copyJobItem(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody JobSearchParam param) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getJobWrapper(user).copyJobItem(param.getId(), param.getParentDept())); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + /** * 根据ID批量删除数据 * diff --git a/src/com/engine/organization/wrapper/JobWrapper.java b/src/com/engine/organization/wrapper/JobWrapper.java index dcb673e6..5a9d9801 100644 --- a/src/com/engine/organization/wrapper/JobWrapper.java +++ b/src/com/engine/organization/wrapper/JobWrapper.java @@ -100,6 +100,17 @@ public class JobWrapper extends Service { return getJobService(user).updateForm(params); } + /** + * 复制岗位到指定部门 + * + * @param id + * @param departmentId + * @return + */ + public int copyJobItem(long id, long departmentId) { + return getJobService(user).copyJobItem(id, departmentId); + } + /** * @param params * @return From c56ec18212a4755f5a5a38f536fa3a730123e853 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 1 Jun 2022 13:33:52 +0800 Subject: [PATCH 23/26] =?UTF-8?q?=E5=B2=97=E4=BD=8D=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/service/impl/JobServiceImpl.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index e832e3cf..a4e9c691 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -240,15 +240,15 @@ public class JobServiceImpl extends Service implements JobService { SearchConditionOption noOption = new SearchConditionOption("1", "是"); isKeyOptions.add(yesOption); isKeyOptions.add(noOption); - SearchConditionItem isKeyItem = OrganizationFormItemUtil.selectItem(user, isKeyOptions, 2, 16, 6, false, "禁用标记", "forbiddenTag"); + SearchConditionItem isKeyItem = OrganizationFormItemUtil.selectItem(user, isKeyOptions, 2, 16, 6, false, "是否关键岗", "forbiddenTag"); // 工作地点 SearchConditionItem workplaceItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "工作地点", "workplace"); // 工作概述 - SearchConditionItem descriptionItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "工作概述", "description"); + // SearchConditionItem descriptionItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "工作概述", "description"); // 任职职责 - SearchConditionItem workDutyItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "任职职责", "workDuty"); + //SearchConditionItem workDutyItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "任职职责", "workDuty"); // 工作权限 - SearchConditionItem workAuthorityItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "工作权限", "workAuthority"); + // SearchConditionItem workAuthorityItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "工作权限", "workAuthority"); // 禁用标记 List selectOptions = new ArrayList<>(); SearchConditionOption enableOption = new SearchConditionOption("true", "启用"); @@ -266,9 +266,9 @@ public class JobServiceImpl extends Service implements JobService { conditionItems.add(parentJobBrowserItem); conditionItems.add(isKeyItem); conditionItems.add(workplaceItem); - conditionItems.add(descriptionItem); - conditionItems.add(workDutyItem); - conditionItems.add(workAuthorityItem); + //conditionItems.add(descriptionItem); + //conditionItems.add(workDutyItem); + //conditionItems.add(workAuthorityItem); conditionItems.add(forbiddenTagItem); addGroups.add(new SearchConditionGroup("高级搜索条件", true, conditionItems)); From d1dcc9d563ace93efbebef507ff537693480c287 Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Wed, 1 Jun 2022 14:38:39 +0800 Subject: [PATCH 24/26] =?UTF-8?q?=E5=B2=97=E4=BD=8D=E5=A4=8D=E5=88=B6?= =?UTF-8?q?=E5=92=8C=E8=81=94=E6=9F=A5=E4=BA=BA=E5=91=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{QueryParam.java => DeleteParam.java} | 2 +- .../entity/employee/vo/EmployeeTableVO.java | 43 +++++++++++++++++++ .../entity/employee/vo/EmployeeVO.java | 30 ------------- .../organization/service/JobService.java | 1 + .../service/impl/GradeServiceImpl.java | 6 +-- .../service/impl/JobServiceImpl.java | 26 +++++++---- .../service/impl/LevelServiceImpl.java | 4 +- .../service/impl/PostInfoServiceImpl.java | 4 +- .../service/impl/SequenceServiceImpl.java | 4 +- .../service/impl/StaffPlanServiceImpl.java | 4 +- .../service/impl/StaffServiceImpl.java | 10 ++--- .../transmethod/CompTransMethod.java | 4 +- .../transmethod/DepartmentTransMethod.java | 4 +- .../transmethod/JobTransMethod.java | 2 +- .../transmethod/LevelTransMethod.java | 4 +- .../transmethod/StaffPlanTransMethod.java | 4 +- .../organization/web/CompController.java | 4 +- .../web/DepartmentController.java | 4 +- .../organization/web/GradeController.java | 4 +- .../organization/web/JobController.java | 36 +++++++++++++--- .../organization/web/LevelController.java | 4 +- .../organization/web/PostController.java | 4 +- .../organization/web/PostInfoController.java | 4 +- .../organization/web/SchemeController.java | 4 +- .../organization/web/SequenceController.java | 4 +- .../organization/web/StaffController.java | 4 +- .../organization/web/StaffPlanController.java | 4 +- .../organization/wrapper/JobWrapper.java | 26 +++++++++++ 28 files changed, 164 insertions(+), 90 deletions(-) rename src/com/engine/organization/entity/{QueryParam.java => DeleteParam.java} (96%) create mode 100644 src/com/engine/organization/entity/employee/vo/EmployeeTableVO.java delete mode 100644 src/com/engine/organization/entity/employee/vo/EmployeeVO.java diff --git a/src/com/engine/organization/entity/QueryParam.java b/src/com/engine/organization/entity/DeleteParam.java similarity index 96% rename from src/com/engine/organization/entity/QueryParam.java rename to src/com/engine/organization/entity/DeleteParam.java index 31b6c31d..422a8735 100644 --- a/src/com/engine/organization/entity/QueryParam.java +++ b/src/com/engine/organization/entity/DeleteParam.java @@ -22,7 +22,7 @@ import java.util.stream.Collectors; @Builder @NoArgsConstructor @AllArgsConstructor -public class QueryParam { +public class DeleteParam { private String ids; public Collection getIds() { diff --git a/src/com/engine/organization/entity/employee/vo/EmployeeTableVO.java b/src/com/engine/organization/entity/employee/vo/EmployeeTableVO.java new file mode 100644 index 00000000..b493b975 --- /dev/null +++ b/src/com/engine/organization/entity/employee/vo/EmployeeTableVO.java @@ -0,0 +1,43 @@ +package com.engine.organization.entity.employee.vo; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/05/31 + * @version: 1.0 + */ + +import com.cloudstore.eccom.pc.table.WeaTableType; +import com.engine.organization.annotation.OrganizationTable; +import com.engine.organization.annotation.OrganizationTableColumn; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@OrganizationTable(pageId = "80e7830c-18e8-4e14-8241-18821195ef31", + fields = "t.id," + + "t.lastname," + + "t.sex", + fromSql = "FROM HrmResource t ", + orderby = "id desc", + primarykey = "id", + tableType = WeaTableType.NONE +) +public class EmployeeTableVO { + + @OrganizationTableColumn(column = "id", display = false) + private Long id; + + @OrganizationTableColumn(text = "姓名", width = "50%", column = "lastname") + private String lastname; + + @OrganizationTableColumn(text = "性别", width = "50%", column = "sex") + private String sex; + + +} diff --git a/src/com/engine/organization/entity/employee/vo/EmployeeVO.java b/src/com/engine/organization/entity/employee/vo/EmployeeVO.java deleted file mode 100644 index 9db19162..00000000 --- a/src/com/engine/organization/entity/employee/vo/EmployeeVO.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.engine.organization.entity.employee.vo; - -/** - * @description: TODO - * @author:dxfeng - * @createTime: 2022/05/31 - * @version: 1.0 - */ -public class EmployeeVO { - /** - * 名称 - */ - private String username; - - /** - * 分部 - */ - private String companyName; - - /** - * 部门 - */ - private String departmentName; - - /** - * 直接上级 - */ - private String manager; - -} diff --git a/src/com/engine/organization/service/JobService.java b/src/com/engine/organization/service/JobService.java index 6b531f38..68a86ebf 100644 --- a/src/com/engine/organization/service/JobService.java +++ b/src/com/engine/organization/service/JobService.java @@ -97,4 +97,5 @@ public interface JobService { */ int deleteByIds(Collection ids); + Map getHrmListByJobId(Long jobId); } diff --git a/src/com/engine/organization/service/impl/GradeServiceImpl.java b/src/com/engine/organization/service/impl/GradeServiceImpl.java index 6e95382c..e1accf47 100644 --- a/src/com/engine/organization/service/impl/GradeServiceImpl.java +++ b/src/com/engine/organization/service/impl/GradeServiceImpl.java @@ -6,7 +6,7 @@ import com.api.browser.bean.SearchConditionItem; import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.core.impl.Service; import com.engine.organization.component.OrganizationWeaTable; -import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.TopTab; import com.engine.organization.entity.scheme.dto.GradeDTO; import com.engine.organization.entity.scheme.param.GradeSearchParam; @@ -131,12 +131,12 @@ public class GradeServiceImpl extends Service implements GradeService { levelBrowserItem.setValue(gradePO.getLevelId()); BrowserBean schemeBrowserBean = schemeBrowserItem.getBrowserConditionParam(); - List> schemeMaps = getSchemeMapper().listSchemesByIds(QueryParam.builder().ids(gradePO.getSchemeId().toString()).build().getIds()); + List> schemeMaps = getSchemeMapper().listSchemesByIds(DeleteParam.builder().ids(gradePO.getSchemeId().toString()).build().getIds()); schemeBrowserBean.setReplaceDatas(schemeMaps); schemeBrowserItem.setBrowserConditionParam(schemeBrowserBean); BrowserBean levelBrowserBean = levelBrowserItem.getBrowserConditionParam(); - List> levelMaps = getLevelMapper().listLevelsByIds(QueryParam.builder().ids(gradePO.getLevelId()).build().getIds()); + List> levelMaps = getLevelMapper().listLevelsByIds(DeleteParam.builder().ids(gradePO.getLevelId()).build().getIds()); levelBrowserBean.setReplaceDatas(levelMaps); levelBrowserItem.setBrowserConditionParam(levelBrowserBean); diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index a4e9c691..7873ca5f 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -11,12 +11,13 @@ import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.organization.component.OrganizationWeaTable; -import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.company.bo.CompBO; import com.engine.organization.entity.company.po.CompPO; import com.engine.organization.entity.department.bo.DepartmentBO; import com.engine.organization.entity.department.dto.DepartmentListDTO; import com.engine.organization.entity.department.po.DepartmentPO; +import com.engine.organization.entity.employee.vo.EmployeeTableVO; import com.engine.organization.entity.extend.bo.ExtendInfoBO; import com.engine.organization.entity.extend.po.ExtendInfoPO; import com.engine.organization.entity.job.bo.JobBO; @@ -387,7 +388,7 @@ public class JobServiceImpl extends Service implements JobService { // 根据等级方案查询职等、职级 List gradePOS = MapperProxyFactory.getProxy(GradeMapper.class).listGradesBySchemeId(jobPO.getSchemeId()); for (GradePO gradePO : gradePOS) { - List> maps = MapperProxyFactory.getProxy(LevelMapper.class).listLevelsByIds(QueryParam.builder().ids(gradePO.getLevelId()).build().getIds()); + List> maps = MapperProxyFactory.getProxy(LevelMapper.class).listLevelsByIds(DeleteParam.builder().ids(gradePO.getLevelId()).build().getIds()); String levelNames = maps.stream().map(item -> (String) item.get("name")).collect(Collectors.joining(",")); insertCount += getJobDTMapper().insertIgnoreNull(JobDTPO.builder().levelId(gradePO.getLevelId()).gradeId(gradePO.getId() + "").levelIdspan(levelNames).gradeIdspan(gradePO.getGradeName()).mainId(jobPO.getId()).creator((long) user.getUID()).deleteType(0).createTime(new Date()).updateTime(new Date()).build()); } @@ -444,6 +445,15 @@ public class JobServiceImpl extends Service implements JobService { return getJobMapper().deleteByIds(deleteIds); } + @Override + public Map getHrmListByJobId(Long jobId) { + OrganizationWeaTable table = new OrganizationWeaTable<>(user, EmployeeTableVO.class); + WeaResultMsg result = new WeaResultMsg(false); + result.putAll(table.makeDataResult()); + result.success(); + return result.getResultMap(); + } + /** * 添加查询元素的父级元素 * @@ -557,7 +567,7 @@ public class JobServiceImpl extends Service implements JobService { // 添加部门的上级分部 String parentCompS = deptTrees.stream().map(SearchTree::getParentComp).collect(Collectors.joining(",")); if (!StringUtil.isEmpty(parentCompS)) { - List compsByIds = getCompMapper().getCompsByIds(QueryParam.builder().ids(parentCompS).build().getIds()); + List compsByIds = getCompMapper().getCompsByIds(DeleteParam.builder().ids(parentCompS).build().getIds()); if (CollectionUtils.isNotEmpty(compsByIds)) { filterComps.addAll(compsByIds); } @@ -730,31 +740,31 @@ public class JobServiceImpl extends Service implements JobService { if (null != jobPO.getParentComp()) { BrowserBean browserBean = parentCompBrowserItem.getBrowserConditionParam(); - List> compMaps = getCompMapper().listCompsByIds(QueryParam.builder().ids(jobPO.getParentComp().toString()).build().getIds()); + List> compMaps = getCompMapper().listCompsByIds(DeleteParam.builder().ids(jobPO.getParentComp().toString()).build().getIds()); browserBean.setReplaceDatas(compMaps); parentCompBrowserItem.setBrowserConditionParam(browserBean); } if (null != jobPO.getParentDept()) { BrowserBean browserBean = parentDeptBrowserItem.getBrowserConditionParam(); - List> deptMaps = getDepartmentMapper().listDeptsByIds(QueryParam.builder().ids(jobPO.getParentDept().toString()).build().getIds()); + List> deptMaps = getDepartmentMapper().listDeptsByIds(DeleteParam.builder().ids(jobPO.getParentDept().toString()).build().getIds()); browserBean.setReplaceDatas(deptMaps); parentDeptBrowserItem.setBrowserConditionParam(browserBean); } if (null != jobPO.getSequenceId()) { BrowserBean browserBean = sequenceBrowserItem.getBrowserConditionParam(); - List> deptMaps = getSequenceMapper().listSequencesByIds(QueryParam.builder().ids(jobPO.getSequenceId().toString()).build().getIds()); + List> deptMaps = getSequenceMapper().listSequencesByIds(DeleteParam.builder().ids(jobPO.getSequenceId().toString()).build().getIds()); browserBean.setReplaceDatas(deptMaps); sequenceBrowserItem.setBrowserConditionParam(browserBean); } if (null != jobPO.getSchemeId()) { BrowserBean browserBean = schemeBrowserItem.getBrowserConditionParam(); - List> deptMaps = getSchemeMapper().listSchemesByIds(QueryParam.builder().ids(jobPO.getSchemeId().toString()).build().getIds()); + List> deptMaps = getSchemeMapper().listSchemesByIds(DeleteParam.builder().ids(jobPO.getSchemeId().toString()).build().getIds()); browserBean.setReplaceDatas(deptMaps); schemeBrowserItem.setBrowserConditionParam(browserBean); } if (null != jobPO.getParentJob()) { BrowserBean browserBean = parentJobBrowserItem.getBrowserConditionParam(); - List> deptMaps = getJobMapper().listJobsByIds(QueryParam.builder().ids(jobPO.getParentJob().toString()).build().getIds()); + List> deptMaps = getJobMapper().listJobsByIds(DeleteParam.builder().ids(jobPO.getParentJob().toString()).build().getIds()); browserBean.setReplaceDatas(deptMaps); schemeBrowserItem.setBrowserConditionParam(browserBean); } diff --git a/src/com/engine/organization/service/impl/LevelServiceImpl.java b/src/com/engine/organization/service/impl/LevelServiceImpl.java index 3ea178ce..1f99a9f9 100644 --- a/src/com/engine/organization/service/impl/LevelServiceImpl.java +++ b/src/com/engine/organization/service/impl/LevelServiceImpl.java @@ -6,7 +6,7 @@ import com.api.browser.bean.SearchConditionItem; import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.core.impl.Service; import com.engine.organization.component.OrganizationWeaTable; -import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.TopTab; import com.engine.organization.entity.scheme.dto.LevelDTO; import com.engine.organization.entity.scheme.param.LevelSearchParam; @@ -123,7 +123,7 @@ public class LevelServiceImpl extends Service implements LevelService { browserItem.setValue(levelPO.getSchemeId()); BrowserBean browserBean = browserItem.getBrowserConditionParam(); - List> maps = getSchemeMapper().listSchemesByIds(QueryParam.builder().ids(levelPO.getSchemeId().toString()).build().getIds()); + List> maps = getSchemeMapper().listSchemesByIds(DeleteParam.builder().ids(levelPO.getSchemeId().toString()).build().getIds()); browserBean.setReplaceDatas(maps); browserItem.setBrowserConditionParam(browserBean); diff --git a/src/com/engine/organization/service/impl/PostInfoServiceImpl.java b/src/com/engine/organization/service/impl/PostInfoServiceImpl.java index 2eb1e1f0..1c27612e 100644 --- a/src/com/engine/organization/service/impl/PostInfoServiceImpl.java +++ b/src/com/engine/organization/service/impl/PostInfoServiceImpl.java @@ -6,7 +6,7 @@ import com.api.browser.bean.SearchConditionItem; import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.core.impl.Service; import com.engine.organization.component.OrganizationWeaTable; -import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.postion.dto.PostInfoDTO; import com.engine.organization.entity.postion.param.PostInfoSearchParam; import com.engine.organization.entity.postion.po.PostInfoPO; @@ -135,7 +135,7 @@ public class PostInfoServiceImpl extends Service implements PostInfoService { descriptionItem.setValue(postInfoPO.getDescription()); BrowserBean browserBean = postIdBrowser.getBrowserConditionParam(); - List> maps = getPostMapper().listPostsByIds(QueryParam.builder().ids(postInfoPO.getPostId().toString()).build().getIds()); + List> maps = getPostMapper().listPostsByIds(DeleteParam.builder().ids(postInfoPO.getPostId().toString()).build().getIds()); browserBean.setReplaceDatas(maps); postIdBrowser.setBrowserConditionParam(browserBean); diff --git a/src/com/engine/organization/service/impl/SequenceServiceImpl.java b/src/com/engine/organization/service/impl/SequenceServiceImpl.java index 58e22368..0748b948 100644 --- a/src/com/engine/organization/service/impl/SequenceServiceImpl.java +++ b/src/com/engine/organization/service/impl/SequenceServiceImpl.java @@ -6,7 +6,7 @@ import com.api.browser.bean.SearchConditionItem; import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.core.impl.Service; import com.engine.organization.component.OrganizationWeaTable; -import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.TopTab; import com.engine.organization.entity.sequence.dto.SequenceDTO; import com.engine.organization.entity.sequence.param.SequenceSearchParam; @@ -123,7 +123,7 @@ public class SequenceServiceImpl extends Service implements SequenceService { browserItem.setValue(sequencePO.getSchemeId()); BrowserBean browserBean = browserItem.getBrowserConditionParam(); - List> maps = getSchemeMapper().listSchemesByIds(QueryParam.builder().ids(sequencePO.getSchemeId().toString()).build().getIds()); + List> maps = getSchemeMapper().listSchemesByIds(DeleteParam.builder().ids(sequencePO.getSchemeId().toString()).build().getIds()); browserBean.setReplaceDatas(maps); browserItem.setBrowserConditionParam(browserBean); diff --git a/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java b/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java index 92f081c2..8c654065 100644 --- a/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java +++ b/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java @@ -7,7 +7,7 @@ import com.api.browser.bean.SearchConditionOption; import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.core.impl.Service; import com.engine.organization.component.OrganizationWeaTable; -import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.staff.bo.StaffPlanBO; import com.engine.organization.entity.staff.param.StaffPlanSearchParam; import com.engine.organization.entity.staff.po.StaffPlanPO; @@ -162,7 +162,7 @@ public class StaffPlanServiceImpl extends Service implements StaffPlanService { timeEndItem.setValue(staffPlanPO.getTimeEnd()); BrowserBean browserBean = companyIdtItem.getBrowserConditionParam(); - List> maps = getCompMapper().listCompsByIds(QueryParam.builder().ids(staffPlanPO.getCompanyId()).build().getIds()); + List> maps = getCompMapper().listCompsByIds(DeleteParam.builder().ids(staffPlanPO.getCompanyId()).build().getIds()); browserBean.setReplaceDatas(maps); companyIdtItem.setBrowserConditionParam(browserBean); diff --git a/src/com/engine/organization/service/impl/StaffServiceImpl.java b/src/com/engine/organization/service/impl/StaffServiceImpl.java index 5c092374..b6ebd23a 100644 --- a/src/com/engine/organization/service/impl/StaffServiceImpl.java +++ b/src/com/engine/organization/service/impl/StaffServiceImpl.java @@ -7,7 +7,7 @@ import com.api.browser.bean.SearchConditionOption; import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.core.impl.Service; import com.engine.organization.component.OrganizationWeaTable; -import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.staff.bo.StaffBO; import com.engine.organization.entity.staff.param.StaffSearchParam; import com.engine.organization.entity.staff.po.StaffPO; @@ -178,22 +178,22 @@ public class StaffServiceImpl extends Service implements StaffService { OrganizationAssert.notNull(staffPO, "选择的数据不存在,或数据已删除"); BrowserBean planIdItemBean = planIdItem.getBrowserConditionParam(); - List> planIdMaps = getStaffPlanMapper().listPlansByIds(QueryParam.builder().ids(staffPO.getPlanId().toString()).build().getIds()); + List> planIdMaps = getStaffPlanMapper().listPlansByIds(DeleteParam.builder().ids(staffPO.getPlanId().toString()).build().getIds()); planIdItemBean.setReplaceDatas(planIdMaps); planIdItem.setBrowserConditionParam(planIdItemBean); BrowserBean compIdItemBean = compIdItem.getBrowserConditionParam(); - List> compIdMaps = getCompMapper().listCompsByIds(QueryParam.builder().ids(staffPO.getPlanId().toString()).build().getIds()); + List> compIdMaps = getCompMapper().listCompsByIds(DeleteParam.builder().ids(staffPO.getPlanId().toString()).build().getIds()); compIdItemBean.setReplaceDatas(compIdMaps); compIdItem.setBrowserConditionParam(compIdItemBean); BrowserBean deptIdItemBean = deptIdItem.getBrowserConditionParam(); - List> deptIdMaps = getDepartmentMapper().listDeptsByIds(QueryParam.builder().ids(staffPO.getPlanId().toString()).build().getIds()); + List> deptIdMaps = getDepartmentMapper().listDeptsByIds(DeleteParam.builder().ids(staffPO.getPlanId().toString()).build().getIds()); deptIdItemBean.setReplaceDatas(deptIdMaps); deptIdItem.setBrowserConditionParam(deptIdItemBean); BrowserBean jobIdItemBean = jobIdItem.getBrowserConditionParam(); - List> jobIdMaps = getJobMapper().listJobsByIds(QueryParam.builder().ids(staffPO.getPlanId().toString()).build().getIds()); + List> jobIdMaps = getJobMapper().listJobsByIds(DeleteParam.builder().ids(staffPO.getPlanId().toString()).build().getIds()); jobIdItemBean.setReplaceDatas(jobIdMaps); jobIdItem.setBrowserConditionParam(jobIdItemBean); diff --git a/src/com/engine/organization/transmethod/CompTransMethod.java b/src/com/engine/organization/transmethod/CompTransMethod.java index 63f637f2..a6e5bec3 100644 --- a/src/com/engine/organization/transmethod/CompTransMethod.java +++ b/src/com/engine/organization/transmethod/CompTransMethod.java @@ -1,6 +1,6 @@ package com.engine.organization.transmethod; -import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.DeleteParam; import com.engine.organization.mapper.comp.CompMapper; import com.engine.organization.util.db.MapperProxyFactory; @@ -18,7 +18,7 @@ public class CompTransMethod { public static String getSpanById(String planId) { CompMapper compMapper = MapperProxyFactory.getProxy(CompMapper.class); - List> maps = compMapper.listCompsByIds(QueryParam.builder().ids(planId).build().getIds()); + List> maps = compMapper.listCompsByIds(DeleteParam.builder().ids(planId).build().getIds()); String names = maps.stream().map(item -> (String) item.get("name")).collect(Collectors.joining(",")); return names; } diff --git a/src/com/engine/organization/transmethod/DepartmentTransMethod.java b/src/com/engine/organization/transmethod/DepartmentTransMethod.java index 72bc5867..8174029b 100644 --- a/src/com/engine/organization/transmethod/DepartmentTransMethod.java +++ b/src/com/engine/organization/transmethod/DepartmentTransMethod.java @@ -1,6 +1,6 @@ package com.engine.organization.transmethod; -import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.DeleteParam; import com.engine.organization.mapper.department.DepartmentMapper; import com.engine.organization.util.db.MapperProxyFactory; @@ -18,7 +18,7 @@ public class DepartmentTransMethod { public static String getSpanById(String planId) { DepartmentMapper departmentMapper = MapperProxyFactory.getProxy(DepartmentMapper.class); - List> maps = departmentMapper.listDeptsByIds(QueryParam.builder().ids(planId).build().getIds()); + List> maps = departmentMapper.listDeptsByIds(DeleteParam.builder().ids(planId).build().getIds()); String names = maps.stream().map(item -> (String) item.get("name")).collect(Collectors.joining(",")); return names; } diff --git a/src/com/engine/organization/transmethod/JobTransMethod.java b/src/com/engine/organization/transmethod/JobTransMethod.java index c7257131..3c50bc77 100644 --- a/src/com/engine/organization/transmethod/JobTransMethod.java +++ b/src/com/engine/organization/transmethod/JobTransMethod.java @@ -10,7 +10,7 @@ public class JobTransMethod { public static String getSpanById(String planId) { //JobMapper compMapper = MapperProxyFactory.getProxy(CompMapper.class); - //List> maps = compMapper.listCompsByIds(QueryParam.builder().ids(planId).build().getIds()); + //List> maps = compMapper.listCompsByIds(DeleteParam.builder().ids(planId).build().getIds()); //String names = maps.stream().map(item -> (String) item.get("name")).collect(Collectors.joining(",")); //return names; return ""; diff --git a/src/com/engine/organization/transmethod/LevelTransMethod.java b/src/com/engine/organization/transmethod/LevelTransMethod.java index 652ea2f2..aa5fb18d 100644 --- a/src/com/engine/organization/transmethod/LevelTransMethod.java +++ b/src/com/engine/organization/transmethod/LevelTransMethod.java @@ -1,6 +1,6 @@ package com.engine.organization.transmethod; -import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.DeleteParam; import com.engine.organization.mapper.scheme.LevelMapper; import com.engine.organization.util.db.MapperProxyFactory; @@ -18,7 +18,7 @@ public class LevelTransMethod { public static String getLevelId(String levelId) { LevelMapper levelMapper = MapperProxyFactory.getProxy(LevelMapper.class); - List> maps = levelMapper.listLevelsByIds(QueryParam.builder().ids(levelId).build().getIds()); + List> maps = levelMapper.listLevelsByIds(DeleteParam.builder().ids(levelId).build().getIds()); String levelName = maps.stream().map(item -> (String) item.get("name")).collect(Collectors.joining(",")); return levelName; } diff --git a/src/com/engine/organization/transmethod/StaffPlanTransMethod.java b/src/com/engine/organization/transmethod/StaffPlanTransMethod.java index 8ea7dd78..deaedfeb 100644 --- a/src/com/engine/organization/transmethod/StaffPlanTransMethod.java +++ b/src/com/engine/organization/transmethod/StaffPlanTransMethod.java @@ -1,6 +1,6 @@ package com.engine.organization.transmethod; -import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.DeleteParam; import com.engine.organization.mapper.staff.StaffPlanMapper; import com.engine.organization.util.db.MapperProxyFactory; @@ -18,7 +18,7 @@ public class StaffPlanTransMethod { public static String getSpanById(String planId) { StaffPlanMapper planMapper = MapperProxyFactory.getProxy(StaffPlanMapper.class); - List> maps = planMapper.listPlansByIds(QueryParam.builder().ids(planId).build().getIds()); + List> maps = planMapper.listPlansByIds(DeleteParam.builder().ids(planId).build().getIds()); String names = maps.stream().map(item -> (String) item.get("name")).collect(Collectors.joining(",")); return names; } diff --git a/src/com/engine/organization/web/CompController.java b/src/com/engine/organization/web/CompController.java index 2a3885ab..365fcc49 100644 --- a/src/com/engine/organization/web/CompController.java +++ b/src/com/engine/organization/web/CompController.java @@ -2,7 +2,7 @@ package com.engine.organization.web; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; -import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.company.param.CompSearchParam; import com.engine.organization.util.response.ReturnResult; import com.engine.organization.wrapper.CompWrapper; @@ -124,7 +124,7 @@ public class CompController { @POST @Path("/deleteByIds") @Produces(MediaType.APPLICATION_JSON) - public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody QueryParam param) { + public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeleteParam param) { try { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getCompWrapper(user).deleteByIds(param.getIds())); diff --git a/src/com/engine/organization/web/DepartmentController.java b/src/com/engine/organization/web/DepartmentController.java index 3a6a6738..565e2e1f 100644 --- a/src/com/engine/organization/web/DepartmentController.java +++ b/src/com/engine/organization/web/DepartmentController.java @@ -2,7 +2,7 @@ package com.engine.organization.web; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; -import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.department.param.DeptSearchParam; import com.engine.organization.entity.department.param.QuerySingleDeptListParam; import com.engine.organization.util.response.ReturnResult; @@ -138,7 +138,7 @@ public class DepartmentController { @POST @Path("/deleteByIds") @Produces(MediaType.APPLICATION_JSON) - public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody QueryParam param) { + public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeleteParam param) { try { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getDepartmentWrapper(user).deleteByIds(param.getIds())); diff --git a/src/com/engine/organization/web/GradeController.java b/src/com/engine/organization/web/GradeController.java index e4d429e7..78228099 100644 --- a/src/com/engine/organization/web/GradeController.java +++ b/src/com/engine/organization/web/GradeController.java @@ -2,7 +2,7 @@ package com.engine.organization.web; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; -import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.scheme.param.GradeSearchParam; import com.engine.organization.util.response.ReturnResult; import com.engine.organization.wrapper.GradeWrapper; @@ -122,7 +122,7 @@ public class GradeController { @POST @Path("/deleteByIds") @Produces(MediaType.APPLICATION_JSON) - public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody QueryParam param) { + public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeleteParam param) { try { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getGradeWrapper(user).deleteByIds(param.getIds())); diff --git a/src/com/engine/organization/web/JobController.java b/src/com/engine/organization/web/JobController.java index 9f3aacf5..0bdc3de0 100644 --- a/src/com/engine/organization/web/JobController.java +++ b/src/com/engine/organization/web/JobController.java @@ -4,7 +4,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; -import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.job.param.JobSearchParam; import com.engine.organization.entity.searchtree.SearchTreeParams; import com.engine.organization.util.response.ReturnResult; @@ -15,10 +15,7 @@ import weaver.hrm.User; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; +import javax.ws.rs.*; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import java.util.Map; @@ -194,7 +191,7 @@ public class JobController { @POST @Path("/deleteByIds") @Produces(MediaType.APPLICATION_JSON) - public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody QueryParam param) { + public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeleteParam param) { try { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getJobWrapper(user).deleteByIds(param.getIds())); @@ -242,4 +239,31 @@ public class JobController { } + @GET + @Path("/getCopyForm") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getCopyForm(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + return getJobWrapper(user).getCopyForm(); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + + @GET + @Path("/getHrmListByJobId") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getHrmListByJobId(@Context HttpServletRequest request, @Context HttpServletResponse response, + @QueryParam("jobId") Long jobId) { + try { + User user = HrmUserVarify.getUser(request, response); + return getJobWrapper(user).getHrmListByJobId(jobId); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + + } diff --git a/src/com/engine/organization/web/LevelController.java b/src/com/engine/organization/web/LevelController.java index 48b6aad3..772c13cc 100644 --- a/src/com/engine/organization/web/LevelController.java +++ b/src/com/engine/organization/web/LevelController.java @@ -2,7 +2,7 @@ package com.engine.organization.web; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; -import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.scheme.param.LevelSearchParam; import com.engine.organization.util.response.ReturnResult; import com.engine.organization.wrapper.LevelWrapper; @@ -122,7 +122,7 @@ public class LevelController { @POST @Path("/deleteByIds") @Produces(MediaType.APPLICATION_JSON) - public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody QueryParam param) { + public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeleteParam param) { try { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getLevelWrapper(user).deleteByIds(param.getIds())); diff --git a/src/com/engine/organization/web/PostController.java b/src/com/engine/organization/web/PostController.java index 7bdf40c4..245f0baa 100644 --- a/src/com/engine/organization/web/PostController.java +++ b/src/com/engine/organization/web/PostController.java @@ -2,7 +2,7 @@ package com.engine.organization.web; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; -import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.postion.po.PostPO; import com.engine.organization.util.response.ReturnResult; import com.engine.organization.wrapper.PostWrapper; @@ -84,7 +84,7 @@ public class PostController { @POST @Path("/deleteByIds") @Produces(MediaType.APPLICATION_JSON) - public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody QueryParam param) { + public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeleteParam param) { try { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getPostWrapper(user).deleteByIds(param.getIds())); diff --git a/src/com/engine/organization/web/PostInfoController.java b/src/com/engine/organization/web/PostInfoController.java index 93e4a1b9..a2c5ae1e 100644 --- a/src/com/engine/organization/web/PostInfoController.java +++ b/src/com/engine/organization/web/PostInfoController.java @@ -2,7 +2,7 @@ package com.engine.organization.web; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; -import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.postion.param.PostInfoSearchParam; import com.engine.organization.util.response.ReturnResult; import com.engine.organization.wrapper.PostInfoWrapper; @@ -122,7 +122,7 @@ public class PostInfoController { @POST @Path("/deleteByIds") @Produces(MediaType.APPLICATION_JSON) - public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody QueryParam param) { + public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeleteParam param) { try { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getPostInfoWrapper(user).deleteByIds(param.getIds())); diff --git a/src/com/engine/organization/web/SchemeController.java b/src/com/engine/organization/web/SchemeController.java index e461a51a..1852d1b7 100644 --- a/src/com/engine/organization/web/SchemeController.java +++ b/src/com/engine/organization/web/SchemeController.java @@ -2,7 +2,7 @@ package com.engine.organization.web; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; -import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.scheme.param.SchemeSearchParam; import com.engine.organization.util.response.ReturnResult; import com.engine.organization.wrapper.SchemeWrapper; @@ -128,7 +128,7 @@ public class SchemeController { @POST @Path("/deleteByIds") @Produces(MediaType.APPLICATION_JSON) - public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody QueryParam param) { + public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeleteParam param) { try { User user = HrmUserVarify.getUser(request, response); getSchemeWrapper(user).deleteByIds(param.getIds()); diff --git a/src/com/engine/organization/web/SequenceController.java b/src/com/engine/organization/web/SequenceController.java index faf2b8b0..557bba6b 100644 --- a/src/com/engine/organization/web/SequenceController.java +++ b/src/com/engine/organization/web/SequenceController.java @@ -2,7 +2,7 @@ package com.engine.organization.web; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; -import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.sequence.param.SequenceSearchParam; import com.engine.organization.util.response.ReturnResult; import com.engine.organization.wrapper.SequenceWrapper; @@ -122,7 +122,7 @@ public class SequenceController { @POST @Path("/deleteByIds") @Produces(MediaType.APPLICATION_JSON) - public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody QueryParam param) { + public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeleteParam param) { try { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getSequenceWrapper(user).deleteByIds(param.getIds())); diff --git a/src/com/engine/organization/web/StaffController.java b/src/com/engine/organization/web/StaffController.java index 821bc299..9f93a9d9 100644 --- a/src/com/engine/organization/web/StaffController.java +++ b/src/com/engine/organization/web/StaffController.java @@ -4,7 +4,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; -import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.staff.param.StaffSearchParam; import com.engine.organization.util.response.ReturnResult; import com.engine.organization.wrapper.StaffWrapper; @@ -105,7 +105,7 @@ public class StaffController { @POST @Path("/deleteByIds") @Produces(MediaType.APPLICATION_JSON) - public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody QueryParam param) { + public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeleteParam param) { try { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getStaffWrapper(user).deleteByIds(param.getIds())); diff --git a/src/com/engine/organization/web/StaffPlanController.java b/src/com/engine/organization/web/StaffPlanController.java index 7576b433..b3e593cc 100644 --- a/src/com/engine/organization/web/StaffPlanController.java +++ b/src/com/engine/organization/web/StaffPlanController.java @@ -4,7 +4,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; -import com.engine.organization.entity.QueryParam; +import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.staff.param.StaffPlanSearchParam; import com.engine.organization.util.response.ReturnResult; import com.engine.organization.wrapper.StaffPlanWrapper; @@ -125,7 +125,7 @@ public class StaffPlanController { @POST @Path("/deleteByIds") @Produces(MediaType.APPLICATION_JSON) - public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody QueryParam param) { + public ReturnResult deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeleteParam param) { try { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getStaffPlanWrapper(user).deleteByIds(param.getIds())); diff --git a/src/com/engine/organization/wrapper/JobWrapper.java b/src/com/engine/organization/wrapper/JobWrapper.java index 5a9d9801..63480210 100644 --- a/src/com/engine/organization/wrapper/JobWrapper.java +++ b/src/com/engine/organization/wrapper/JobWrapper.java @@ -1,14 +1,19 @@ package com.engine.organization.wrapper; +import com.api.browser.bean.SearchConditionItem; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.organization.entity.job.param.JobSearchParam; import com.engine.organization.entity.searchtree.SearchTreeParams; import com.engine.organization.service.JobService; import com.engine.organization.service.impl.JobServiceImpl; +import com.engine.organization.util.OrganizationFormItemUtil; +import com.engine.organization.util.response.ReturnResult; import weaver.hrm.User; +import java.util.ArrayList; import java.util.Collection; +import java.util.List; import java.util.Map; /** @@ -130,4 +135,25 @@ public class JobWrapper extends Service { } + /** + * 获取复制表单 + * @return + */ + public ReturnResult getCopyForm() { + List condition = new ArrayList<>(); + SearchConditionItem deptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "复制到", "161", "department", "deptBrowser"); + deptBrowserItem.setRules("required|string"); + condition.add(deptBrowserItem); + return ReturnResult.successed(condition); + } + + /** + * 根据岗位获取人员 + * @param jobId + * @return + */ + public ReturnResult getHrmListByJobId(Long jobId) { + Map hrmListByJobId = getJobService(user).getHrmListByJobId(jobId); + return ReturnResult.successed(hrmListByJobId); + } } From 790bf5a88a16ce34cb1d0d08d7e83437cbc79962 Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Wed, 1 Jun 2022 16:20:43 +0800 Subject: [PATCH 25/26] =?UTF-8?q?=E5=B2=97=E4=BD=8D=E5=A4=8D=E5=88=B6?= =?UTF-8?q?=E5=88=B0=E9=83=A8=E9=97=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/organization/wrapper/JobWrapper.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/com/engine/organization/wrapper/JobWrapper.java b/src/com/engine/organization/wrapper/JobWrapper.java index 63480210..587cf1de 100644 --- a/src/com/engine/organization/wrapper/JobWrapper.java +++ b/src/com/engine/organization/wrapper/JobWrapper.java @@ -1,5 +1,6 @@ package com.engine.organization.wrapper; +import com.api.browser.bean.SearchConditionGroup; import com.api.browser.bean.SearchConditionItem; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; @@ -11,10 +12,7 @@ import com.engine.organization.util.OrganizationFormItemUtil; import com.engine.organization.util.response.ReturnResult; import weaver.hrm.User; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @description: TODO @@ -140,11 +138,13 @@ public class JobWrapper extends Service { * @return */ public ReturnResult getCopyForm() { + List addGroups = new ArrayList<>(); List condition = new ArrayList<>(); - SearchConditionItem deptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "复制到", "161", "department", "deptBrowser"); + SearchConditionItem deptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "复制到", "161", "department", "deptBrowser"); deptBrowserItem.setRules("required|string"); condition.add(deptBrowserItem); - return ReturnResult.successed(condition); + addGroups.add(new SearchConditionGroup("", true, condition)); + return ReturnResult.successed(addGroups); } /** From ad70d2e3d4dcc0935667abcc1cd9534f60d68a75 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 1 Jun 2022 16:35:28 +0800 Subject: [PATCH 26/26] =?UTF-8?q?=E8=A2=AB=E5=BC=95=E7=94=A8=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=8B=BE=E9=80=89=E6=A1=86=E7=8A=B6=E6=80=81=E3=80=81?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E6=98=BE=E9=9A=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/company/bo/CompBO.java | 47 ++++--- .../entity/company/dto/CompListDTO.java | 9 +- .../entity/department/bo/DepartmentBO.java | 23 +++- .../department/dto/DepartmentListDTO.java | 7 +- .../organization/entity/job/bo/JobBO.java | 19 ++- .../entity/job/dto/JobListDTO.java | 7 +- .../entity/scheme/vo/GradeTableVO.java | 23 ++-- .../entity/scheme/vo/LevelTableVO.java | 22 ++-- .../entity/sequence/vo/SequenceTableVO.java | 20 ++- .../entity/staff/vo/StaffPlanTableVO.java | 19 ++- .../entity/staff/vo/StaffTableVO.java | 19 ++- .../mapper/common/RefreshUseMapper.java | 17 +++ .../mapper/common/RefreshUseMapper.xml | 20 +++ .../organization/mapper/comp/CompMapper.java | 7 ++ .../organization/mapper/comp/CompMapper.xml | 20 ++- .../mapper/department/DepartmentMapper.java | 7 ++ .../mapper/department/DepartmentMapper.xml | 9 ++ .../organization/mapper/job/JobMapper.java | 6 + .../organization/mapper/job/JobMapper.xml | 5 + .../mapper/scheme/GradeMapper.java | 2 + .../mapper/scheme/GradeMapper.xml | 15 ++- .../mapper/scheme/LevelMapper.java | 7 ++ .../mapper/scheme/LevelMapper.xml | 15 ++- .../mapper/scheme/SchemeMapper.java | 8 +- .../mapper/scheme/SchemeMapper.xml | 17 +++ .../mapper/sequence/SequenceMapper.java | 8 ++ .../mapper/sequence/SequenceMapper.xml | 9 +- .../mapper/staff/StaffMapper.java | 9 ++ .../organization/mapper/staff/StaffMapper.xml | 5 + .../mapper/staff/StaffPlanMapper.java | 10 +- .../mapper/staff/StaffPlanMapper.xml | 5 + .../service/impl/GradeServiceImpl.java | 3 + .../service/impl/LevelServiceImpl.java | 3 + .../service/impl/SchemeServiceImpl.java | 13 +- .../service/impl/SequenceServiceImpl.java | 3 + .../service/impl/StaffPlanServiceImpl.java | 3 + .../service/impl/StaffServiceImpl.java | 3 + .../engine/organization/util/ConfigTrans.java | 14 ++- .../organization/util/RefreshIsUsedUtil.java | 115 ++++++++++++++++++ 39 files changed, 483 insertions(+), 90 deletions(-) create mode 100644 src/com/engine/organization/mapper/common/RefreshUseMapper.java create mode 100644 src/com/engine/organization/mapper/common/RefreshUseMapper.xml create mode 100644 src/com/engine/organization/util/RefreshIsUsedUtil.java diff --git a/src/com/engine/organization/entity/company/bo/CompBO.java b/src/com/engine/organization/entity/company/bo/CompBO.java index c8ea0946..d81bfb6d 100644 --- a/src/com/engine/organization/entity/company/bo/CompBO.java +++ b/src/com/engine/organization/entity/company/bo/CompBO.java @@ -5,6 +5,8 @@ import com.engine.organization.entity.company.dto.CompListDTO; import com.engine.organization.entity.company.param.CompSearchParam; import com.engine.organization.entity.company.po.CompPO; import com.engine.organization.entity.searchtree.SearchTree; +import com.engine.organization.mapper.comp.CompMapper; +import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.collections.CollectionUtils; import weaver.crm.Maint.SectorInfoComInfo; import weaver.general.StringUtil; @@ -21,47 +23,54 @@ import java.util.stream.Collectors; */ public class CompBO { - public static List buildCompDTOList(Collection list) { + public static List buildCompDTOList(Collection list) { - Map poMaps = list.stream().collect(Collectors.toMap(item -> item.getId(), item -> item)); + Map poMaps = list.stream().collect(Collectors.toMap(CompPO::getId, item -> item)); List dtoList = list.stream().map(e -> CompListDTO.builder().id(e.getId()).compNo(e.getCompNo()).compName(e.getCompName()).compNameShort(e.getCompNameShort()).parentCompany(e.getParentCompany()).parentCompName(null == poMaps.get(e.getParentCompany()) ? "" : poMaps.get(e.getParentCompany()).getCompName()).orgCode(e.getOrgCode()).industry(new SectorInfoComInfo().getSectorInfoname(e.getIndustry() + "")).compPrincipal(getUserNameById(e.getCompPrincipal() + "")).forbiddenTag(e.getForbiddenTag()).build()).collect(Collectors.toList()); Map> collects = dtoList.stream().filter(item -> null != item.getParentCompany() && 0 != item.getParentCompany()).collect(Collectors.groupingBy(CompListDTO::getParentCompany)); - return dtoList.stream().map(e -> { - e.setChildren(collects.get(e.getId())); - return e; + // 处理被引用数据 + List usedIds = MapperProxyFactory.getProxy(CompMapper.class).listUsedId(); + List collect = Arrays.stream(String.join(",", usedIds).split(",")).collect(Collectors.toList()); + return dtoList.stream().peek(e -> { + List childList = collects.get(e.getId()); + if (CollectionUtils.isNotEmpty(childList)) { + e.setChildren(childList); + e.setIsUsed(1); + } else { + if (collect.contains(e.getId() + "")) { + e.setIsUsed(1); + } else { + e.setIsUsed(0); + } + } }).filter(item -> null == item.getParentCompany() || 0 == item.getParentCompany()).collect(Collectors.toList()); } - public static List buildCompDTOList(Collection list, List filterList) { + public static List buildCompDTOList(Collection list, List filterList) { // 搜索结果为空,直接返回空 if (CollectionUtils.isEmpty(filterList)) { return Collections.emptyList(); } // 递归添加父级数据 - Map poMaps = list.stream().collect(Collectors.toMap(item -> item.getId(), item -> item)); - List addedList = new ArrayList<>(); - for (com.engine.organization.entity.company.po.CompPO po : filterList) { + Map poMaps = list.stream().collect(Collectors.toMap(CompPO::getId, item -> item)); + List addedList = new ArrayList<>(); + for (CompPO po : filterList) { dealParentData(addedList, po, poMaps); } - List dtoList = addedList.stream().map(e -> CompListDTO.builder().id(e.getId()).compNo(e.getCompNo()).compName(e.getCompName()).compNameShort(e.getCompNameShort()).parentCompany(e.getParentCompany()).parentCompName(null == poMaps.get(e.getParentCompany()) ? "" : poMaps.get(e.getParentCompany()).getCompName()).orgCode(e.getOrgCode()).industry(new SectorInfoComInfo().getSectorInfoname(e.getIndustry() + "")).compPrincipal(getUserNameById(e.getCompPrincipal() + "")).forbiddenTag(e.getForbiddenTag()).build()).collect(Collectors.toList()); - Map> collects = dtoList.stream().filter(item -> null != item.getParentCompany() && 0 != item.getParentCompany()).collect(Collectors.groupingBy(CompListDTO::getParentCompany)); - return dtoList.stream().map(e -> { - e.setChildren(collects.get(e.getId())); - return e; - }).filter(item -> null == item.getParentCompany() || 0 == item.getParentCompany()).collect(Collectors.toList()); + return buildCompDTOList(addedList); } - public static com.engine.organization.entity.company.po.CompPO convertParamToPO(CompSearchParam param, Long employeeId) { + public static CompPO convertParamToPO(CompSearchParam param, Long employeeId) { if (null == param) { return null; } - return com.engine.organization.entity.company.po.CompPO.builder().id(param.getId() == null ? 0 : param.getId()).compNo(param.getCompNo()).compName(param.getCompName()).compNameShort(param.getCompNameShort()).parentCompany(param.getParentCompany()).orgCode(param.getOrgCode()).industry(param.getIndustry()).compPrincipal(param.getCompPrincipal()).description(param.getDescription()).forbiddenTag(param.getForbiddenTag() == null ? null : param.getForbiddenTag() ? 0 : 1).deleteType(0).createTime(new Date()).updateTime(new Date()).creator(employeeId).build(); + return CompPO.builder().id(param.getId() == null ? 0 : param.getId()).compNo(param.getCompNo()).compName(param.getCompName()).compNameShort(param.getCompNameShort()).parentCompany(param.getParentCompany()).orgCode(param.getOrgCode()).industry(param.getIndustry()).compPrincipal(param.getCompPrincipal()).description(param.getDescription()).forbiddenTag(param.getForbiddenTag() == null ? null : param.getForbiddenTag() ? 0 : 1).deleteType(0).createTime(new Date()).updateTime(new Date()).creator(employeeId).build(); } - public static List buildSetToSearchTree(Set comps) { + public static List buildSetToSearchTree(Set comps) { return comps.stream().map(item -> { SearchTree tree = new SearchTree(); tree.setCanClick(true); @@ -85,7 +94,7 @@ public class CompBO { * @param po * @param poMaps */ - private static void dealParentData(List addedList, com.engine.organization.entity.company.po.CompPO po, Map poMaps) { + private static void dealParentData(List addedList, CompPO po, Map poMaps) { if (!addedList.contains(po)) { addedList.add(po); } diff --git a/src/com/engine/organization/entity/company/dto/CompListDTO.java b/src/com/engine/organization/entity/company/dto/CompListDTO.java index ab102b77..c456611a 100644 --- a/src/com/engine/organization/entity/company/dto/CompListDTO.java +++ b/src/com/engine/organization/entity/company/dto/CompListDTO.java @@ -1,6 +1,5 @@ package com.engine.organization.entity.company.dto; -import com.cloudstore.eccom.pc.table.WeaTableType; import com.engine.organization.annotation.OrganizationTable; import com.engine.organization.annotation.OrganizationTableOperate; import com.engine.organization.annotation.TableTitle; @@ -22,9 +21,8 @@ import java.util.List; @NoArgsConstructor @AllArgsConstructor @OrganizationTable(pageId = "2c66b3a4-d4f8-11ec-9774-00ffcbed7508", - tableType = WeaTableType.NONE, operates = { - @OrganizationTableOperate(index = "0", text = "编辑"), + @OrganizationTableOperate(text = "编辑"), @OrganizationTableOperate(index = "1", text = "删除"), @OrganizationTableOperate(index = "2", text = "查看部门") }) @@ -33,7 +31,10 @@ public class CompListDTO { * 主键id */ private Long id; - + /** + * 是否被引用 + */ + private Integer isUsed; /** * 名称 */ diff --git a/src/com/engine/organization/entity/department/bo/DepartmentBO.java b/src/com/engine/organization/entity/department/bo/DepartmentBO.java index ff36bbfc..be59ed1e 100644 --- a/src/com/engine/organization/entity/department/bo/DepartmentBO.java +++ b/src/com/engine/organization/entity/department/bo/DepartmentBO.java @@ -25,7 +25,6 @@ public class DepartmentBO { // 递归添加父级数据 Map poMaps = list.stream().collect(Collectors.toMap(DepartmentPO::getId, item -> item)); - List dtoList = list.stream().map(e -> DepartmentListDTO .builder() @@ -41,7 +40,22 @@ public class DepartmentBO { .forbiddenTag(e.getForbiddenTag()) .build()).collect(Collectors.toList()); Map> collects = dtoList.stream().filter(item -> null != item.getParentDept() && 0 != item.getParentDept()).collect(Collectors.groupingBy(DepartmentListDTO::getParentDept)); - return dtoList.stream().peek(e -> e.setChildren(collects.get(e.getId()))).filter(item -> null == item.getParentDept() || 0 == item.getParentDept()).collect(Collectors.toList()); + // 处理被引用数据 + List usedIds = MapperProxyFactory.getProxy(DepartmentMapper.class).listUsedId(); + List collect = Arrays.stream(String.join(",", usedIds).split(",")).collect(Collectors.toList()); + return dtoList.stream().peek(e -> { + List childList = collects.get(e.getId()); + if (CollectionUtils.isNotEmpty(childList)) { + e.setChildren(childList); + e.setIsUsed(1); + } else { + if (collect.contains(e.getId() + "")) { + e.setIsUsed(1); + } else { + e.setIsUsed(0); + } + } + }).filter(item -> null == item.getParentDept() || 0 == item.getParentDept()).collect(Collectors.toList()); } public static List buildDeptDTOList(Collection list, List filterList) { @@ -90,10 +104,7 @@ public class DepartmentBO { //获取非一级部门 Map> collects = singleDeptTreeVOS.stream().filter(item -> !parentComp.equals(item.getParentComp()) && null != item.getParentDept()).collect(Collectors.groupingBy(SingleDeptTreeVO::getParentDept)); - return singleDeptTreeVOS.stream().map(e -> { - e.setChildren(collects.get(e.getId())); - return e; - }).filter(item -> parentComp.equals(item.getParentComp())).collect(Collectors.toList()); + return singleDeptTreeVOS.stream().peek(e -> e.setChildren(collects.get(e.getId()))).filter(item -> parentComp.equals(item.getParentComp())).collect(Collectors.toList()); } diff --git a/src/com/engine/organization/entity/department/dto/DepartmentListDTO.java b/src/com/engine/organization/entity/department/dto/DepartmentListDTO.java index 27f4ad5a..5ea3a8f0 100644 --- a/src/com/engine/organization/entity/department/dto/DepartmentListDTO.java +++ b/src/com/engine/organization/entity/department/dto/DepartmentListDTO.java @@ -24,7 +24,7 @@ import java.util.List; @OrganizationTable(pageId = "96f2bb0d-da73-11ec-a0da-00ffcbed7508", tableType = WeaTableType.NONE, operates = { - @OrganizationTableOperate(index = "0", text = "编辑"), + @OrganizationTableOperate(text = "编辑"), @OrganizationTableOperate(index = "1", text = "删除"), @OrganizationTableOperate(index = "2", text = "合并"), @OrganizationTableOperate(index = "3", text = "转移"), @@ -34,7 +34,10 @@ import java.util.List; public class DepartmentListDTO { private Long id; - + /** + * 是否被引用 + */ + private Integer isUsed; /** * 编号 */ diff --git a/src/com/engine/organization/entity/job/bo/JobBO.java b/src/com/engine/organization/entity/job/bo/JobBO.java index e3aaadfd..89f50305 100644 --- a/src/com/engine/organization/entity/job/bo/JobBO.java +++ b/src/com/engine/organization/entity/job/bo/JobBO.java @@ -3,7 +3,9 @@ package com.engine.organization.entity.job.bo; import com.engine.organization.entity.job.dto.JobListDTO; import com.engine.organization.entity.job.param.JobSearchParam; import com.engine.organization.entity.job.po.JobPO; +import com.engine.organization.mapper.job.JobMapper; import com.engine.organization.transmethod.JobTransMethod; +import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.collections.CollectionUtils; import java.util.*; @@ -64,7 +66,22 @@ public class JobBO { .forbiddenTag(e.getForbiddenTag()) .build()).collect(Collectors.toList()); Map> collects = dtoList.stream().filter(item -> null != item.getParentJob() && 0 != item.getParentJob()).collect(Collectors.groupingBy(JobListDTO::getParentJob)); - return dtoList.stream().peek(e -> e.setChildren(collects.get(e.getId()))).filter(item -> null == item.getParentJob() || 0 == item.getParentJob()).collect(Collectors.toList()); + // 处理被引用数据 + List usedIds = MapperProxyFactory.getProxy(JobMapper.class).listUsedId(); + List collect = Arrays.stream(String.join(",", usedIds).split(",")).collect(Collectors.toList()); + return dtoList.stream().peek(e -> { + List childList = collects.get(e.getId()); + if (CollectionUtils.isNotEmpty(childList)) { + e.setChildren(childList); + e.setIsUsed(1); + } else { + if (collect.contains(e.getId() + "")) { + e.setIsUsed(1); + } else { + e.setIsUsed(0); + } + } + }).filter(item -> null == item.getParentJob() || 0 == item.getParentJob()).collect(Collectors.toList()); } diff --git a/src/com/engine/organization/entity/job/dto/JobListDTO.java b/src/com/engine/organization/entity/job/dto/JobListDTO.java index d524a033..040b3279 100644 --- a/src/com/engine/organization/entity/job/dto/JobListDTO.java +++ b/src/com/engine/organization/entity/job/dto/JobListDTO.java @@ -24,7 +24,7 @@ import java.util.List; @OrganizationTable(pageId = "0efea835-dfc5-11ec-a09e-00e04c680716", tableType = WeaTableType.NONE, operates = { - @OrganizationTableOperate(index = "0", text = "编辑"), + @OrganizationTableOperate(text = "编辑"), @OrganizationTableOperate(index = "1", text = "删除"), @OrganizationTableOperate(index = "2", text = "合并"), @OrganizationTableOperate(index = "3", text = "转移"), @@ -36,7 +36,10 @@ public class JobListDTO { * 主键 */ private Long id; - + /** + * 是否被引用 + */ + private Integer isUsed; /** * 编号 */ diff --git a/src/com/engine/organization/entity/scheme/vo/GradeTableVO.java b/src/com/engine/organization/entity/scheme/vo/GradeTableVO.java index cc11aa94..6f61a22e 100644 --- a/src/com/engine/organization/entity/scheme/vo/GradeTableVO.java +++ b/src/com/engine/organization/entity/scheme/vo/GradeTableVO.java @@ -1,8 +1,7 @@ package com.engine.organization.entity.scheme.vo; -import com.engine.organization.annotation.OrganizationTable; -import com.engine.organization.annotation.OrganizationTableColumn; -import com.engine.organization.annotation.OrganizationTableOperate; +import com.cloudstore.eccom.pc.table.WeaTableType; +import com.engine.organization.annotation.*; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -25,14 +24,19 @@ import lombok.NoArgsConstructor; " t.description ," + " a.scheme_name ," + " t.level_id ," + - " t.forbidden_tag", + " t.forbidden_tag," + + "t.is_used", fromSql = "from jcl_org_grade t inner join jcl_org_scheme a on t.scheme_id = a.id ", orderby = "id desc", primarykey = "id", operates = { - @OrganizationTableOperate(index = "0", text = "编辑"), + @OrganizationTableOperate(text = "编辑"), @OrganizationTableOperate(index = "1", text = "删除") - } + }, + tableType = WeaTableType.CHECKBOX, + operatePopedom = @OperatePopedom(transmethod = "com.engine.organization.util.ConfigTrans.formatSourceOperates", otherpara = "column:is_used"), + checkboxPopedom = @CheckboxPopedom(showmethod = "com.engine.organization.util.ConfigTrans.getCheckBoxPopedom", popedompara = "column:is_used") + ) public class GradeTableVO { /** @@ -40,6 +44,11 @@ public class GradeTableVO { */ @OrganizationTableColumn(column = "id", display = false) private Long id; + /** + * 是否被引用 + */ + @OrganizationTableColumn(column = "isUsed", display = false) + private Integer isUsed; /** * 编号 */ @@ -67,7 +76,7 @@ public class GradeTableVO { /** * 职等 */ - @OrganizationTableColumn(text = "职等", width = "20%", column = "level_id",transmethod = "com.engine.organization.transmethod.LevelTransMethod.getLevelId") + @OrganizationTableColumn(text = "职等", width = "20%", column = "level_id", transmethod = "com.engine.organization.transmethod.LevelTransMethod.getLevelId") private String levelId; /** diff --git a/src/com/engine/organization/entity/scheme/vo/LevelTableVO.java b/src/com/engine/organization/entity/scheme/vo/LevelTableVO.java index 8b6a841e..f33db78a 100644 --- a/src/com/engine/organization/entity/scheme/vo/LevelTableVO.java +++ b/src/com/engine/organization/entity/scheme/vo/LevelTableVO.java @@ -1,8 +1,7 @@ package com.engine.organization.entity.scheme.vo; -import com.engine.organization.annotation.OrganizationTable; -import com.engine.organization.annotation.OrganizationTableColumn; -import com.engine.organization.annotation.OrganizationTableOperate; +import com.cloudstore.eccom.pc.table.WeaTableType; +import com.engine.organization.annotation.*; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -21,6 +20,7 @@ import lombok.NoArgsConstructor; "s.scheme_name," + "t.scheme_id," + "t.forbidden_tag," + + "t.is_used," + "t.creator," + "t.delete_type," + "t.create_time," + @@ -29,9 +29,11 @@ import lombok.NoArgsConstructor; orderby = "id desc", primarykey = "id", operates = { - @OrganizationTableOperate(index = "0", text = "编辑"), + @OrganizationTableOperate(text = "编辑"), @OrganizationTableOperate(index = "1", text = "删除") - } + }, tableType = WeaTableType.CHECKBOX, + operatePopedom = @OperatePopedom(transmethod = "com.engine.organization.util.ConfigTrans.formatSourceOperates", otherpara = "column:is_used"), + checkboxPopedom = @CheckboxPopedom(showmethod = "com.engine.organization.util.ConfigTrans.getCheckBoxPopedom", popedompara = "column:is_used") ) public class LevelTableVO { /** @@ -39,6 +41,11 @@ public class LevelTableVO { */ @OrganizationTableColumn(column = "id", display = false) private Long id; + /** + * 是否被引用 + */ + @OrganizationTableColumn(column = "isUsed", display = false) + private Integer isUsed; /** * 编号 @@ -56,11 +63,6 @@ public class LevelTableVO { */ @OrganizationTableColumn(text = "描述说明", width = "20%", column = "description") private String description; - /** - * 等级方案 - */ - // @OrganizationTableColumn(text = "等级方案", width = "20%", column = "level_scheme") - private String schemeId; /** * 等级方案 diff --git a/src/com/engine/organization/entity/sequence/vo/SequenceTableVO.java b/src/com/engine/organization/entity/sequence/vo/SequenceTableVO.java index 0bd10ec5..0c1b404b 100644 --- a/src/com/engine/organization/entity/sequence/vo/SequenceTableVO.java +++ b/src/com/engine/organization/entity/sequence/vo/SequenceTableVO.java @@ -1,8 +1,7 @@ package com.engine.organization.entity.sequence.vo; -import com.engine.organization.annotation.OrganizationTable; -import com.engine.organization.annotation.OrganizationTableColumn; -import com.engine.organization.annotation.OrganizationTableOperate; +import com.cloudstore.eccom.pc.table.WeaTableType; +import com.engine.organization.annotation.*; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -25,6 +24,7 @@ import lombok.NoArgsConstructor; "t.description," + "s.scheme_name," + "t.forbidden_tag," + + "t.is_used," + "t.creator," + "t.delete_type," + "t.create_time," + @@ -33,9 +33,13 @@ import lombok.NoArgsConstructor; orderby = "id desc", primarykey = "id", operates = { - @OrganizationTableOperate(index = "0", text = "编辑"), + @OrganizationTableOperate(text = "编辑"), @OrganizationTableOperate(index = "1", text = "删除") - } + }, + tableType = WeaTableType.CHECKBOX, + operatePopedom = @OperatePopedom(transmethod = "com.engine.organization.util.ConfigTrans.formatSourceOperates", otherpara = "column:is_used"), + checkboxPopedom = @CheckboxPopedom(showmethod = "com.engine.organization.util.ConfigTrans.getCheckBoxPopedom", popedompara = "column:is_used") + ) public class SequenceTableVO { @@ -44,7 +48,11 @@ public class SequenceTableVO { */ @OrganizationTableColumn(column = "id", display = false) private Long id; - + /** + * 是否被引用 + */ + @OrganizationTableColumn(column = "isUsed", display = false) + private Integer isUsed; /** * 编号 */ diff --git a/src/com/engine/organization/entity/staff/vo/StaffPlanTableVO.java b/src/com/engine/organization/entity/staff/vo/StaffPlanTableVO.java index bd8a9a7a..68f3ef9e 100644 --- a/src/com/engine/organization/entity/staff/vo/StaffPlanTableVO.java +++ b/src/com/engine/organization/entity/staff/vo/StaffPlanTableVO.java @@ -1,8 +1,7 @@ package com.engine.organization.entity.staff.vo; -import com.engine.organization.annotation.OrganizationTable; -import com.engine.organization.annotation.OrganizationTableColumn; -import com.engine.organization.annotation.OrganizationTableOperate; +import com.cloudstore.eccom.pc.table.WeaTableType; +import com.engine.organization.annotation.*; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -21,15 +20,18 @@ import java.util.Date; @AllArgsConstructor @NoArgsConstructor @OrganizationTable(pageId = "e04abd72-dbd6-11ec-b69e-00ffcbed7508", - fields = "t.id, t.plan_no, t.plan_name, t.plan_year, t.time_start, t.time_end, t.forbidden_tag", + fields = "t.id,t.is_used, t.plan_no, t.plan_name, t.plan_year, t.time_start, t.time_end, t.forbidden_tag", fromSql = "FROM jcl_org_staffplan t ", orderby = "id desc", primarykey = "id", operates = { - @OrganizationTableOperate(index = "0", text = "编辑"), + @OrganizationTableOperate(text = "编辑"), @OrganizationTableOperate(index = "1", text = "删除"), @OrganizationTableOperate(index = "2", text = "发起编制流程") - } + }, tableType = WeaTableType.CHECKBOX, + operatePopedom = @OperatePopedom(transmethod = "com.engine.organization.util.ConfigTrans.formatStaffOperates", otherpara = "column:is_used"), + checkboxPopedom = @CheckboxPopedom(showmethod = "com.engine.organization.util.ConfigTrans.getCheckBoxPopedom", popedompara = "column:is_used") + ) public class StaffPlanTableVO { @@ -38,6 +40,11 @@ public class StaffPlanTableVO { */ @OrganizationTableColumn(column = "id", display = false) private Long id; + /** + * 是否被引用 + */ + @OrganizationTableColumn(column = "isUsed", display = false) + private Integer isUsed; /** * 编号 */ diff --git a/src/com/engine/organization/entity/staff/vo/StaffTableVO.java b/src/com/engine/organization/entity/staff/vo/StaffTableVO.java index 41780e8d..c8fab370 100644 --- a/src/com/engine/organization/entity/staff/vo/StaffTableVO.java +++ b/src/com/engine/organization/entity/staff/vo/StaffTableVO.java @@ -1,8 +1,7 @@ package com.engine.organization.entity.staff.vo; -import com.engine.organization.annotation.OrganizationTable; -import com.engine.organization.annotation.OrganizationTableColumn; -import com.engine.organization.annotation.OrganizationTableOperate; +import com.cloudstore.eccom.pc.table.WeaTableType; +import com.engine.organization.annotation.*; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -19,15 +18,18 @@ import lombok.NoArgsConstructor; @AllArgsConstructor @NoArgsConstructor @OrganizationTable(pageId = "0cdfd5bb-dc09-11ec-b69e-00ffcbed7508", - fields = "id,plan_id,comp_id,dept_id,job_id,staff_num,permanent_num,freeze_num,lack_status,staff_desc", + fields = "id,is_used,plan_id,comp_id,dept_id,job_id,staff_num,permanent_num,freeze_num,lack_status,staff_desc", fromSql = "FROM jcl_org_staff t ", orderby = "id desc", primarykey = "id", operates = { - @OrganizationTableOperate(index = "0", text = "编辑"), + @OrganizationTableOperate(text = "编辑"), @OrganizationTableOperate(index = "1", text = "删除"), @OrganizationTableOperate(index = "2", text = "变更") - } + }, tableType = WeaTableType.CHECKBOX, + operatePopedom = @OperatePopedom(transmethod = "com.engine.organization.util.ConfigTrans.formatStaffOperates", otherpara = "column:is_used"), + checkboxPopedom = @CheckboxPopedom(showmethod = "com.engine.organization.util.ConfigTrans.getCheckBoxPopedom", popedompara = "column:is_used") + ) public class StaffTableVO { /** @@ -35,6 +37,11 @@ public class StaffTableVO { */ @OrganizationTableColumn(column = "id", display = false) private Long id; + /** + * 是否被引用 + */ + @OrganizationTableColumn(column = "isUsed", display = false) + private Integer isUsed; /** * 方案id */ diff --git a/src/com/engine/organization/mapper/common/RefreshUseMapper.java b/src/com/engine/organization/mapper/common/RefreshUseMapper.java new file mode 100644 index 00000000..8d34418b --- /dev/null +++ b/src/com/engine/organization/mapper/common/RefreshUseMapper.java @@ -0,0 +1,17 @@ +package com.engine.organization.mapper.common; + +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/06/01 + * @version: 1.0 + */ +public interface RefreshUseMapper { + int updateIsUsedByIds(@Param("tableName") String tableName, @Param("ids") Collection ids, @Param("isUsed") int isUsed); + + int initIsUseStatus(@Param("tableName") String tableName); +} diff --git a/src/com/engine/organization/mapper/common/RefreshUseMapper.xml b/src/com/engine/organization/mapper/common/RefreshUseMapper.xml new file mode 100644 index 00000000..dd84e80c --- /dev/null +++ b/src/com/engine/organization/mapper/common/RefreshUseMapper.xml @@ -0,0 +1,20 @@ + + + + + + update ${tableName} set is_used = #{isUsed} where delete_type = 0 and id + + not + + in + + #{id} + + + + update ${tableName} + set is_used = 0 + where delete_type = 0 + + \ No newline at end of file diff --git a/src/com/engine/organization/mapper/comp/CompMapper.java b/src/com/engine/organization/mapper/comp/CompMapper.java index f4b9f268..55c8e024 100644 --- a/src/com/engine/organization/mapper/comp/CompMapper.java +++ b/src/com/engine/organization/mapper/comp/CompMapper.java @@ -21,6 +21,13 @@ public interface CompMapper { */ List list(); + /** + * 查询所有被引用的ID + * + * @return + */ + List listUsedId(); + /** * 根据搜索条件查询数据 * diff --git a/src/com/engine/organization/mapper/comp/CompMapper.xml b/src/com/engine/organization/mapper/comp/CompMapper.xml index ed03538d..042a8b3f 100644 --- a/src/com/engine/organization/mapper/comp/CompMapper.xml +++ b/src/com/engine/organization/mapper/comp/CompMapper.xml @@ -176,7 +176,8 @@ from jcl_org_comp t where comp_no = #{compNo} AND delete_type = 0 - SELECT FROM @@ -233,6 +234,23 @@ #{id} + update jcl_org_comp diff --git a/src/com/engine/organization/mapper/department/DepartmentMapper.java b/src/com/engine/organization/mapper/department/DepartmentMapper.java index 0f3fa4e1..84569713 100644 --- a/src/com/engine/organization/mapper/department/DepartmentMapper.java +++ b/src/com/engine/organization/mapper/department/DepartmentMapper.java @@ -98,4 +98,11 @@ public interface DepartmentMapper { * @param ids */ int deleteByIds(@Param("ids") Collection ids); + + /** + * 查询所有被引用的ID + * + * @return + */ + List listUsedId(); } diff --git a/src/com/engine/organization/mapper/department/DepartmentMapper.xml b/src/com/engine/organization/mapper/department/DepartmentMapper.xml index c8c40bfd..1e5b00a9 100644 --- a/src/com/engine/organization/mapper/department/DepartmentMapper.xml +++ b/src/com/engine/organization/mapper/department/DepartmentMapper.xml @@ -115,6 +115,15 @@ where delete_type = 0 and parent_dept = #{pid} + ids); + /** + * 查询所有被引用的ID + * + * @return + */ + List listUsedId(); } diff --git a/src/com/engine/organization/mapper/job/JobMapper.xml b/src/com/engine/organization/mapper/job/JobMapper.xml index 458ddc53..214f8d5d 100644 --- a/src/com/engine/organization/mapper/job/JobMapper.xml +++ b/src/com/engine/organization/mapper/job/JobMapper.xml @@ -276,6 +276,11 @@ where delete_type = 0 and parent_job = #{pid} + diff --git a/src/com/engine/organization/mapper/scheme/GradeMapper.java b/src/com/engine/organization/mapper/scheme/GradeMapper.java index 3b9db7f1..0cc97450 100644 --- a/src/com/engine/organization/mapper/scheme/GradeMapper.java +++ b/src/com/engine/organization/mapper/scheme/GradeMapper.java @@ -77,4 +77,6 @@ public interface GradeMapper { * @return */ int getCountByTag(@Param("tag") int tag); + + List listUsedId(); } diff --git a/src/com/engine/organization/mapper/scheme/GradeMapper.xml b/src/com/engine/organization/mapper/scheme/GradeMapper.xml index 68466e2a..00ef24cf 100644 --- a/src/com/engine/organization/mapper/scheme/GradeMapper.xml +++ b/src/com/engine/organization/mapper/scheme/GradeMapper.xml @@ -38,14 +38,14 @@ from jcl_org_grade t where id = #{id} AND delete_type = 0 - select from jcl_org_grade t where grade_no = #{gradeNo} AND delete_type = 0 @@ -54,6 +54,11 @@ from jcl_org_grade t where delete_type = 0 and scheme_id = #{schemeId} + update jcl_org_grade @@ -96,7 +101,8 @@ scheme_id, - + + level_id, forbidden_tag, @@ -125,7 +131,8 @@ #{schemeId}, - + + #{levelId}, 0, diff --git a/src/com/engine/organization/mapper/scheme/LevelMapper.java b/src/com/engine/organization/mapper/scheme/LevelMapper.java index 81f4dca1..95f2fc6e 100644 --- a/src/com/engine/organization/mapper/scheme/LevelMapper.java +++ b/src/com/engine/organization/mapper/scheme/LevelMapper.java @@ -25,6 +25,13 @@ public interface LevelMapper { */ List listByNo(@Param("levelNo") String levelNo); + /** + * 查询所有被引用的ID + * + * @return + */ + List listUsedId(); + /** * 获取职等根据ID * @param id diff --git a/src/com/engine/organization/mapper/scheme/LevelMapper.xml b/src/com/engine/organization/mapper/scheme/LevelMapper.xml index 2f597ead..5a57cf73 100644 --- a/src/com/engine/organization/mapper/scheme/LevelMapper.xml +++ b/src/com/engine/organization/mapper/scheme/LevelMapper.xml @@ -36,14 +36,14 @@ from jcl_org_level t where id = #{id} AND delete_type = 0 - select from jcl_org_level t where level_no = #{levelNo} AND delete_type = 0 @@ -59,6 +59,15 @@ #{id} + update jcl_org_level diff --git a/src/com/engine/organization/mapper/scheme/SchemeMapper.java b/src/com/engine/organization/mapper/scheme/SchemeMapper.java index 260f9294..080af6ba 100644 --- a/src/com/engine/organization/mapper/scheme/SchemeMapper.java +++ b/src/com/engine/organization/mapper/scheme/SchemeMapper.java @@ -26,6 +26,12 @@ public interface SchemeMapper { */ List listByNo(@Param("schemeNo") String schemeNo); + /** + * 查询所有被引用的ID + * + * @return + */ + List listUsedId(); /** * 根据ID查询登记方案 * @@ -41,7 +47,7 @@ public interface SchemeMapper { * @return */ @MapKey("id") - List> listSchemesByIds(@Param("ids") Collection ids); + List> listSchemesByIds(@Param("ids") Collection ids); /** * 新增,忽略null字段 diff --git a/src/com/engine/organization/mapper/scheme/SchemeMapper.xml b/src/com/engine/organization/mapper/scheme/SchemeMapper.xml index aca1edcf..b43994d7 100644 --- a/src/com/engine/organization/mapper/scheme/SchemeMapper.xml +++ b/src/com/engine/organization/mapper/scheme/SchemeMapper.xml @@ -51,6 +51,23 @@ #{id} + diff --git a/src/com/engine/organization/mapper/sequence/SequenceMapper.java b/src/com/engine/organization/mapper/sequence/SequenceMapper.java index 4bcfa336..d65c01fd 100644 --- a/src/com/engine/organization/mapper/sequence/SequenceMapper.java +++ b/src/com/engine/organization/mapper/sequence/SequenceMapper.java @@ -25,6 +25,13 @@ public interface SequenceMapper { */ List listByNo(@Param("sequenceNo") String sequenceNo); + /** + * 查询所有被引用的ID + * + * @return + */ + List listUsedId(); + /** * 获取岗位根据ID * @param id @@ -77,4 +84,5 @@ public interface SequenceMapper { * @return */ int getCountByTag(@Param("tag") int tag); + } diff --git a/src/com/engine/organization/mapper/sequence/SequenceMapper.xml b/src/com/engine/organization/mapper/sequence/SequenceMapper.xml index ca6a0d38..a764662f 100644 --- a/src/com/engine/organization/mapper/sequence/SequenceMapper.xml +++ b/src/com/engine/organization/mapper/sequence/SequenceMapper.xml @@ -36,14 +36,15 @@ from jcl_org_sequence t where id = #{id} AND delete_type = 0 - select from jcl_org_sequence t where sequence_no = #{sequenceNo} AND delete_type = 0 @@ -59,6 +60,10 @@ #{id} + update jcl_org_sequence diff --git a/src/com/engine/organization/mapper/staff/StaffMapper.java b/src/com/engine/organization/mapper/staff/StaffMapper.java index 0eaf7f07..0d39e82c 100644 --- a/src/com/engine/organization/mapper/staff/StaffMapper.java +++ b/src/com/engine/organization/mapper/staff/StaffMapper.java @@ -5,6 +5,7 @@ import com.engine.organization.entity.staff.po.StaffPO; import org.apache.ibatis.annotations.Param; import java.util.Collection; +import java.util.List; /** * @Author dxfeng @@ -16,6 +17,7 @@ public interface StaffMapper { /** * 根据ID查询编制方案 + * * @param id * @return */ @@ -23,6 +25,7 @@ public interface StaffMapper { /** * 插入编制方案 + * * @param staffPO * @return */ @@ -44,4 +47,10 @@ public interface StaffMapper { */ int deleteByIds(@Param("ids") Collection ids); + /** + * 查询所有被引用的ID + * + * @return + */ + List listUsedId(); } diff --git a/src/com/engine/organization/mapper/staff/StaffMapper.xml b/src/com/engine/organization/mapper/staff/StaffMapper.xml index a069bcd7..137f2b2e 100644 --- a/src/com/engine/organization/mapper/staff/StaffMapper.xml +++ b/src/com/engine/organization/mapper/staff/StaffMapper.xml @@ -43,6 +43,11 @@ from jcl_org_staff t where id = #{id} AND delete_type = 0 + update jcl_org_staff diff --git a/src/com/engine/organization/mapper/staff/StaffPlanMapper.java b/src/com/engine/organization/mapper/staff/StaffPlanMapper.java index cb754135..e9046142 100644 --- a/src/com/engine/organization/mapper/staff/StaffPlanMapper.java +++ b/src/com/engine/organization/mapper/staff/StaffPlanMapper.java @@ -25,10 +25,11 @@ public interface StaffPlanMapper { List listByNo(@Param("planNo") String planNo); - List> listPlansByIds(@Param("ids") Collection ids); + List> listPlansByIds(@Param("ids") Collection ids); /** * 根据ID查询编制方案 + * * @param id * @return */ @@ -36,6 +37,7 @@ public interface StaffPlanMapper { /** * 插入编制方案 + * * @param staffPlanPO * @return */ @@ -64,4 +66,10 @@ public interface StaffPlanMapper { */ int deleteByIds(@Param("ids") Collection ids); + /** + * 查询所有被引用的ID + * + * @return + */ + List listUsedId(); } diff --git a/src/com/engine/organization/mapper/staff/StaffPlanMapper.xml b/src/com/engine/organization/mapper/staff/StaffPlanMapper.xml index c99f3685..8b58e308 100644 --- a/src/com/engine/organization/mapper/staff/StaffPlanMapper.xml +++ b/src/com/engine/organization/mapper/staff/StaffPlanMapper.xml @@ -59,6 +59,11 @@ #{id} + update jcl_org_staffplan diff --git a/src/com/engine/organization/service/impl/GradeServiceImpl.java b/src/com/engine/organization/service/impl/GradeServiceImpl.java index 6e95382c..7210ea90 100644 --- a/src/com/engine/organization/service/impl/GradeServiceImpl.java +++ b/src/com/engine/organization/service/impl/GradeServiceImpl.java @@ -19,6 +19,7 @@ import com.engine.organization.service.GradeService; import com.engine.organization.util.MenuBtn; import com.engine.organization.util.OrganizationAssert; import com.engine.organization.util.OrganizationFormItemUtil; +import com.engine.organization.util.RefreshIsUsedUtil; import com.engine.organization.util.db.DBType; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.lang3.StringUtils; @@ -51,6 +52,8 @@ public class GradeServiceImpl extends Service implements GradeService { @Override public Map listPage(Map params) { + // 刷新引用状态 + RefreshIsUsedUtil.RefreshGrade("jcl_org_grade"); OrganizationWeaTable table = new OrganizationWeaTable<>(user, GradeTableVO.class); String sqlWhere = buildSqlWhere(params); table.setSqlwhere(sqlWhere); diff --git a/src/com/engine/organization/service/impl/LevelServiceImpl.java b/src/com/engine/organization/service/impl/LevelServiceImpl.java index 3ea178ce..66ecfbfa 100644 --- a/src/com/engine/organization/service/impl/LevelServiceImpl.java +++ b/src/com/engine/organization/service/impl/LevelServiceImpl.java @@ -18,6 +18,7 @@ import com.engine.organization.service.LevelService; import com.engine.organization.util.MenuBtn; import com.engine.organization.util.OrganizationAssert; import com.engine.organization.util.OrganizationFormItemUtil; +import com.engine.organization.util.RefreshIsUsedUtil; import com.engine.organization.util.db.DBType; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.lang3.StringUtils; @@ -46,6 +47,8 @@ public class LevelServiceImpl extends Service implements LevelService { @Override public Map listPage(Map params) { + // 刷新引用状态 + RefreshIsUsedUtil.RefreshLevel("jcl_org_level"); OrganizationWeaTable table = new OrganizationWeaTable<>(user, LevelTableVO.class); String sqlWhere = buildSqlWhere(params); table.setSqlwhere(sqlWhere); diff --git a/src/com/engine/organization/service/impl/SchemeServiceImpl.java b/src/com/engine/organization/service/impl/SchemeServiceImpl.java index b626502f..8175fc31 100644 --- a/src/com/engine/organization/service/impl/SchemeServiceImpl.java +++ b/src/com/engine/organization/service/impl/SchemeServiceImpl.java @@ -2,10 +2,6 @@ package com.engine.organization.service.impl; import com.api.browser.bean.SearchConditionGroup; import com.api.browser.bean.SearchConditionItem; -import com.cloudstore.eccom.pc.table.WeaTableCheckboxpopedom; -import com.cloudstore.eccom.pc.table.WeaTableOperate; -import com.cloudstore.eccom.pc.table.WeaTableOperates; -import com.cloudstore.eccom.pc.table.WeaTablePopedom; import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.core.impl.Service; import com.engine.organization.component.OrganizationWeaTable; @@ -18,13 +14,13 @@ import com.engine.organization.service.SchemeService; import com.engine.organization.util.MenuBtn; import com.engine.organization.util.OrganizationAssert; import com.engine.organization.util.OrganizationFormItemUtil; +import com.engine.organization.util.RefreshIsUsedUtil; import com.engine.organization.util.db.DBType; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.StringUtil; import weaver.general.Util; -import weaver.systeminfo.SystemEnv; import java.util.*; @@ -42,8 +38,9 @@ public class SchemeServiceImpl extends Service implements SchemeService { @Override public Map listPage(Map params) { + // 刷新引用状态 + RefreshIsUsedUtil.RefreshScheme("jcl_org_scheme"); OrganizationWeaTable table = new OrganizationWeaTable<>(user, SchemeTableVO.class); - String sqlWhere = buildSqlWhere(params); table.setSqlwhere(sqlWhere); WeaResultMsg result = new WeaResultMsg(false); @@ -54,7 +51,7 @@ public class SchemeServiceImpl extends Service implements SchemeService { @Override public Map save(SchemeSearchParam param) { - Map apidatas = new HashMap(16); + Map apidatas = new HashMap<>(16); List list = getSchemeMapper().listByNo(Util.null2String(param.getSchemeNo())); OrganizationAssert.isEmpty(list, "编号不允许重复"); SchemePO schemePO = SchemeDTO.convertParamToPO(param, (long) user.getUID()); @@ -64,7 +61,7 @@ public class SchemeServiceImpl extends Service implements SchemeService { @Override public Map updateScheme(SchemeSearchParam param) { - Map apidatas = new HashMap(); + Map apidatas = new HashMap<>(); SchemePO schemePO = SchemeDTO.convertParamToPO(param, (long) user.getUID()); getSchemeMapper().updateScheme(schemePO); return apidatas; diff --git a/src/com/engine/organization/service/impl/SequenceServiceImpl.java b/src/com/engine/organization/service/impl/SequenceServiceImpl.java index 58e22368..866f0e51 100644 --- a/src/com/engine/organization/service/impl/SequenceServiceImpl.java +++ b/src/com/engine/organization/service/impl/SequenceServiceImpl.java @@ -18,6 +18,7 @@ import com.engine.organization.service.SequenceService; import com.engine.organization.util.MenuBtn; import com.engine.organization.util.OrganizationAssert; import com.engine.organization.util.OrganizationFormItemUtil; +import com.engine.organization.util.RefreshIsUsedUtil; import com.engine.organization.util.db.DBType; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.lang3.StringUtils; @@ -46,6 +47,8 @@ public class SequenceServiceImpl extends Service implements SequenceService { @Override public Map listPage(Map params) { + // 刷新引用状态 + RefreshIsUsedUtil.RefreshSequence("jcl_org_sequence"); OrganizationWeaTable table = new OrganizationWeaTable<>(user, SequenceTableVO.class); String sqlWhere = buildSqlWhere(params); table.setSqlwhere(sqlWhere); diff --git a/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java b/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java index 92f081c2..df0a0aba 100644 --- a/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java +++ b/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java @@ -18,6 +18,7 @@ import com.engine.organization.service.StaffPlanService; import com.engine.organization.util.MenuBtn; import com.engine.organization.util.OrganizationAssert; import com.engine.organization.util.OrganizationFormItemUtil; +import com.engine.organization.util.RefreshIsUsedUtil; import com.engine.organization.util.db.DBType; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.lang3.StringUtils; @@ -45,6 +46,8 @@ public class StaffPlanServiceImpl extends Service implements StaffPlanService { @Override public Map listPage(StaffPlanSearchParam params) { + // 刷新引用状态 + RefreshIsUsedUtil.RefreshStaffPlan("jcl_org_staffplan"); OrganizationWeaTable table = new OrganizationWeaTable<>(user, StaffPlanTableVO.class); StaffPlanPO staffPlanPO = StaffPlanBO.convertParamToPO(params, (long) user.getUID()); String sqlWhere = buildSqlWhere(staffPlanPO); diff --git a/src/com/engine/organization/service/impl/StaffServiceImpl.java b/src/com/engine/organization/service/impl/StaffServiceImpl.java index 5c092374..e9185701 100644 --- a/src/com/engine/organization/service/impl/StaffServiceImpl.java +++ b/src/com/engine/organization/service/impl/StaffServiceImpl.java @@ -21,6 +21,7 @@ import com.engine.organization.service.StaffService; import com.engine.organization.util.MenuBtn; import com.engine.organization.util.OrganizationAssert; import com.engine.organization.util.OrganizationFormItemUtil; +import com.engine.organization.util.RefreshIsUsedUtil; import com.engine.organization.util.db.DBType; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.lang3.StringUtils; @@ -60,6 +61,8 @@ public class StaffServiceImpl extends Service implements StaffService { @Override public Map listPage(StaffSearchParam params) { + // 刷新引用状态 + RefreshIsUsedUtil.RefreshStaff("jcl_org_staff"); OrganizationWeaTable table = new OrganizationWeaTable<>(user, StaffTableVO.class); StaffPO staffPO = StaffBO.convertParamToPO(params, (long) user.getUID()); String sqlWhere = buildSqlWhere(staffPO); diff --git a/src/com/engine/organization/util/ConfigTrans.java b/src/com/engine/organization/util/ConfigTrans.java index b54e82d2..f97eb711 100644 --- a/src/com/engine/organization/util/ConfigTrans.java +++ b/src/com/engine/organization/util/ConfigTrans.java @@ -19,7 +19,7 @@ public class ConfigTrans { return "false"; } - public static List formatSourceOperates(String id,String isDefault) { + public static List formatSourceOperates(String id, String isDefault) { List list = Lists.newArrayList(); list.add(true); if ("0".equals(isDefault)) { @@ -30,4 +30,16 @@ public class ConfigTrans { return list; } + public static List formatStaffOperates(String id, String isDefault) { + List list = Lists.newArrayList(); + list.add(true); + if ("0".equals(isDefault)) { + list.add(true); + } else { + list.add(false); + } + list.add(true); + return list; + } + } diff --git a/src/com/engine/organization/util/RefreshIsUsedUtil.java b/src/com/engine/organization/util/RefreshIsUsedUtil.java new file mode 100644 index 00000000..c37cbc3d --- /dev/null +++ b/src/com/engine/organization/util/RefreshIsUsedUtil.java @@ -0,0 +1,115 @@ +package com.engine.organization.util; + +import com.engine.organization.mapper.common.RefreshUseMapper; +import com.engine.organization.mapper.scheme.GradeMapper; +import com.engine.organization.mapper.scheme.LevelMapper; +import com.engine.organization.mapper.scheme.SchemeMapper; +import com.engine.organization.mapper.sequence.SequenceMapper; +import com.engine.organization.mapper.staff.StaffMapper; +import com.engine.organization.mapper.staff.StaffPlanMapper; +import com.engine.organization.util.db.MapperProxyFactory; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.Arrays; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/06/01 + * @version: 1.0 + */ +public class RefreshIsUsedUtil { + + private static RefreshUseMapper getRefreshUseMapper() { + return MapperProxyFactory.getProxy(RefreshUseMapper.class); + } + + + /** + * 刷新等级方案表 引用状态 + *

+ * JCL_ORG_LEVEL,JCL_ORG_GRADE,JCL_ORG_SEQUENCE,JCL_ORG_JOB + */ + public static void RefreshScheme(String tableName) { + List usedIds = MapperProxyFactory.getProxy(SchemeMapper.class).listUsedId(); + usedIds.removeIf(Objects::isNull); + RefreshIsUsedStatus(tableName, usedIds); + } + + /** + * 刷新职等表 引用状态 + *

+ * JCL_ORG_GRADE,JCL_ORG_JOBDT + */ + public static void RefreshLevel(String tableName) { + List usedIds = MapperProxyFactory.getProxy(LevelMapper.class).listUsedId(); + usedIds.removeIf(Objects::isNull); + RefreshIsUsedStatus(tableName, usedIds); + } + + /** + * 刷新职级表 引用状态 + *

+ * JCL_ORG_JOBDT + */ + public static void RefreshGrade(String tableName) { + List usedIds = MapperProxyFactory.getProxy(GradeMapper.class).listUsedId(); + usedIds.removeIf(Objects::isNull); + RefreshIsUsedStatus(tableName, usedIds); + } + + /** + * 刷新岗位序列表 引用状态 + *

+ * JCL_ORG_JOB + */ + public static void RefreshSequence(String tableName) { + List usedIds = MapperProxyFactory.getProxy(SequenceMapper.class).listUsedId(); + usedIds.removeIf(Objects::isNull); + RefreshIsUsedStatus(tableName, usedIds); + } + + /** + * 刷新编制方案列表 引用状态 + *

+ * JCL_ORG_JOB + */ + public static void RefreshStaffPlan(String tableName) { + List usedIds = MapperProxyFactory.getProxy(StaffPlanMapper.class).listUsedId(); + usedIds.removeIf(Objects::isNull); + RefreshIsUsedStatus(tableName, usedIds); + } + + /** + * 刷新编制表列表 引用状态 + *

+ * JCL_ORG_JOB + */ + public static void RefreshStaff(String tableName) { + List usedIds = MapperProxyFactory.getProxy(StaffMapper.class).listUsedId(); + usedIds.removeIf(Objects::isNull); + RefreshIsUsedStatus(tableName, usedIds); + } + + + /** + * 更新指定表的引用状态 + * + * @param tableName + * @param usedIds + */ + private static void RefreshIsUsedStatus(String tableName, List usedIds) { + if (CollectionUtils.isNotEmpty(usedIds)) { + List collect = Arrays.stream(String.join(",", usedIds).split(",")).collect(Collectors.toList()); + getRefreshUseMapper().updateIsUsedByIds(tableName, collect, 0); + getRefreshUseMapper().updateIsUsedByIds(tableName, collect, 1); + }else{ + getRefreshUseMapper().initIsUseStatus(tableName); + } + } + + +}