From b212122007c925196e87d19a131bfc058f11685c Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 25 May 2022 16:37:44 +0800 Subject: [PATCH] =?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(); + } +}