From 8d78af3e14da22c1b58db9ed1ec0462d916c54f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=98ml=E2=80=99?= Date: Wed, 2 Nov 2022 13:47:29 +0800 Subject: [PATCH 01/34] =?UTF-8?q?=E8=99=9A=E6=8B=9F=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E5=BB=BA=E6=A8=A1=E8=A1=A8=E6=95=B0=E6=8D=AE=E5=86=99=E5=85=A5?= =?UTF-8?q?map?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/OrgChartServiceImpl.java | 273 ++++++++++++------ .../modeexpand/VirOrgServiceImpl.java | 75 +++++ 2 files changed, 263 insertions(+), 85 deletions(-) create mode 100644 src/weaver/formmode/customjavacode/modeexpand/VirOrgServiceImpl.java diff --git a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java index 470983b6..446a9ea8 100644 --- a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java @@ -109,41 +109,70 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { if (StringUtils.isBlank(level)) { level = "3"; } - String whereSql = companyDateWhereSql(request2Map); - - String whereItemSql = " "; - if ("0".equals(root)) { // 集团的情况 - whereItemSql += " and ftype = 0 "; - } else { - whereItemSql += " and id = '" + root + "' "; - } - - // 获取根节点 - RecordSet rs = new RecordSet(); - rs.executeQuery("select id, fname, ftype, fparentid, fnumber, fobjid from jcl_org_map " + whereSql + whereItemSql); + // 虚拟组织切换 + String fisvitual = (String) request2Map.get("fisvitual"); // 是否虚拟组织 0否1是 List> list = new ArrayList<>(); - String id = null; - if (rs.next()) { - Map item = new HashMap<>(); - id = rs.getString("id"); - item.put("id", rs.getString("id")); - item.put("fname", rs.getString("fname")); - item.put("ftype", rs.getString("ftype")); - item.put("fnumber", rs.getString("fnumber")); - item.put("fobjid",rs.getString("fobjid")); - item.put("parentId", null); - item.put("expand", "1"); - item.put("hasChildren", hasChildren(rs.getString("id"), true)); - list.add(item); + if (StringUtils.isBlank(fisvitual)) { + fisvitual = "0"; } + if(fisvitual.equals("1")){ + String whereSql = "where fid='0'"; + // 获取根节点 + RecordSet rs = new RecordSet(); + rs.executeQuery("select fid, fname, forder, fparentid, ftype from uf_jcl_vo " + whereSql); + + String fid = null; + if (rs.next()) { + Map item = new HashMap<>(); + fid = rs.getString("fid"); + item.put("id", rs.getString("fid")); + item.put("fname", rs.getString("fname")); + item.put("forder", rs.getString("forder")); + item.put("parentId", null); + item.put("ftype", rs.getString("ftype")); + item.put("expand", "1"); + item.put("hasChildren", hasVOChildren(rs.getString("fid"))); + list.add(item); + } + if (null != fid) { + findVoItemByParantId(fid, rs, list, true); + } + }else { + String whereSql = companyDateWhereSql(request2Map); + + String whereItemSql = " "; + if ("0".equals(root)) { // 集团的情况 + whereItemSql += " and ftype = 0 "; + } else { + whereItemSql += " and id = '" + root + "' "; + } - int currentLevel = 1; - if (currentLevel + 1 <= Integer.parseInt(level)) { - findCompanyItemByParantId(id, currentLevel + 1, level, rs, list, whereSql, true); - } else { - findCompanyItemByParantId(id, currentLevel + 1, level, rs, list, whereSql, false); - } + // 获取根节点 + RecordSet rs = new RecordSet(); + rs.executeQuery("select id, fname, ftype, fparentid, fnumber, fobjid from jcl_org_map " + whereSql + whereItemSql); +// List> list = new ArrayList<>(); + String id = null; + if (rs.next()) { + Map item = new HashMap<>(); + id = rs.getString("id"); + item.put("id", rs.getString("id")); + item.put("fname", rs.getString("fname")); + item.put("ftype", rs.getString("ftype")); + item.put("fnumber", rs.getString("fnumber")); + item.put("fobjid",rs.getString("fobjid")); + item.put("parentId", null); + item.put("expand", "1"); + item.put("hasChildren", hasChildren(rs.getString("id"), true)); + list.add(item); + } + int currentLevel = 1; + if (currentLevel + 1 <= Integer.parseInt(level)) { + findCompanyItemByParantId(id, currentLevel + 1, level, rs, list, whereSql, true); + } else { + findCompanyItemByParantId(id, currentLevel + 1, level, rs, list, whereSql, false); + } + } result.put("api_status", true); result.put("data", list); return result; @@ -178,6 +207,29 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { } + private void findVoItemByParantId(String id, RecordSet rs, List> list, boolean expand) { + rs.executeQuery("select fid, fname, forder, fparentid, ftype from uf_jcl_vo where fparentid = '" + id + "'"); + List> currentList = new ArrayList<>(); + while (rs.next()) { + Map item = new HashMap<>(); + item.put("id", rs.getString("fid")); + item.put("fname", rs.getString("fname")); + item.put("forder", rs.getString("forder")); + item.put("parentId", rs.getString("fparentid")); + item.put("ftype", rs.getString("ftype")); + item.put("expand", expand ? "1" : "0"); + item.put("hasChildren", hasVOChildren(rs.getString("fid"))); + currentList.add(item); + } + + list.addAll(currentList); + + for (Map stringObjectMap : currentList) { + findVoItemByParantId((String) stringObjectMap.get("id"), rs, list, true); + } + + } + private String userWhereSql(Map request2Map) { String date = (String) request2Map.get("date"); // 数据日期 if (StringUtils.isBlank(date)) { @@ -217,53 +269,71 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { } String root = (String) request2Map.get("root"); // 根节点 String level = (String) request2Map.get("level"); // 显示层级 + String fisvitual = (String) request2Map.get("fisvitual"); // 虚拟组织 if (StringUtils.isBlank(level)) { level = "3"; } + if (StringUtils.isBlank(fisvitual)) { + fisvitual = "0"; + } - String whereSql = userWhereSql(request2Map); + List> list = new ArrayList<>(); + if (fisvitual.equals("0")) { + String whereSql = userWhereSql(request2Map); + + String whereItemSql = " "; + if ("0".equals(root)) { // 集团的情况 + whereItemSql += " and t.ftype = 0 "; + } else { + whereItemSql += " and t.id = '" + root + "' "; + } + + // 获取根节点 + RecordSet rs = new RecordSet(); + rs.executeQuery("select t.id, t.fname, t.ftype, t.fparentid, t.fleadername,t.fobjid,t.fecid, t.fleaderimg, t.fleaderjob, t.fplan, t.fonjob, t.fnumber, t.fleader, t.fleaderlv, t.fleaderst,t.fecid from jcl_org_map t " + whereSql + whereItemSql); + String id = null; + if (rs.next()) { + Map item = new HashMap<>(); + id = rs.getString("id"); + item.put("id", rs.getString("id")); + item.put("fname", rs.getString("fname")); + item.put("ftype", rs.getString("ftype")); + item.put("parentId", null); + item.put("fleadername", rs.getString("fleadername")); + item.put("fleaderimg", rs.getString("fleaderimg")); + item.put("fleaderjob", rs.getString("fleaderjob")); + item.put("fplan", rs.getString("fplan")); + item.put("fonjob", rs.getString("fonjob")); + item.put("hasChildren", hasChildren(rs.getString("id"), false)); + item.put("expand", "1"); + item.put("fnumber", rs.getString("fnumber")); + item.put("fleader", rs.getString("fleader")); + item.put("fobjid",rs.getString("fobjid")); + item.put("fleaderlv",convertLevel(rs.getString("fleaderlv"))); + item.put("fleaderst",convertGrade(rs.getString("fleaderst"))); + item.put("fecid",rs.getString("fecid")); + list.add(item); + } + + int currentLevel = 1; + if (currentLevel + 1 <= Integer.parseInt(level)) { + findUserItemByParantId(id, currentLevel + 1, level, rs, list, whereSql, true); + }else{ + findUserItemByParantId(id, currentLevel + 1, level, rs, list, whereSql, false); + } - String whereItemSql = " "; - if ("0".equals(root)) { // 集团的情况 - whereItemSql += " and t.ftype = 0 "; } else { - whereItemSql += " and t.id = '" + root + "' "; - } + String whereSql = "where fid='0'"; + // 获取根节点 + RecordSet rs = new RecordSet(); + rs.executeQuery("select fid, fname, forder, fparentid, ftype from uf_jcl_vo " + whereSql); + String fid = null; + if (rs.next()) { + Map item = new HashMap<>(); + } - // 获取根节点 - RecordSet rs = new RecordSet(); - rs.executeQuery("select t.id, t.fname, t.ftype, t.fparentid, t.fleadername,t.fobjid,t.fecid, t.fleaderimg, t.fleaderjob, t.fplan, t.fonjob, t.fnumber, t.fleader, t.fleaderlv, t.fleaderst,t.fecid from jcl_org_map t " + whereSql + whereItemSql); - List> list = new ArrayList<>(); - String id = null; - if (rs.next()) { - Map item = new HashMap<>(); - id = rs.getString("id"); - item.put("id", rs.getString("id")); - item.put("fname", rs.getString("fname")); - item.put("ftype", rs.getString("ftype")); - item.put("parentId", null); - item.put("fleadername", rs.getString("fleadername")); - item.put("fleaderimg", rs.getString("fleaderimg")); - item.put("fleaderjob", rs.getString("fleaderjob")); - item.put("fplan", rs.getString("fplan")); - item.put("fonjob", rs.getString("fonjob")); - item.put("hasChildren", hasChildren(rs.getString("id"), false)); - item.put("expand", "1"); - item.put("fnumber", rs.getString("fnumber")); - item.put("fleader", rs.getString("fleader")); - item.put("fobjid",rs.getString("fobjid")); - item.put("fleaderlv",convertLevel(rs.getString("fleaderlv"))); - item.put("fleaderst",convertGrade(rs.getString("fleaderst"))); - item.put("fecid",rs.getString("fecid")); - list.add(item); } - int currentLevel = 1; - if (currentLevel + 1 <= Integer.parseInt(level)) { - findUserItemByParantId(id, currentLevel + 1, level, rs, list, whereSql, true); - }else{ - findUserItemByParantId(id, currentLevel + 1, level, rs, list, whereSql, false); - } result.put("api_status", true); result.put("data", list); @@ -327,23 +397,42 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { @Override public Map asyncCompanyData(Map request2Map, User user) { String ids = (String) request2Map.get("ids"); - String whereSql = companyDateWhereSql(request2Map); - - whereSql += " and fparentid in (" + ids + ") "; - - RecordSet rs = new RecordSet(); - rs.executeQuery("select id, fname, ftype, fparentid, fnumber,fobjid from jcl_org_map " + whereSql); + String fisvitual = (String) request2Map.get("fisvitual"); List> currentList = new ArrayList<>(); - while (rs.next()) { - Map item = new HashMap<>(); - item.put("id", rs.getString("id")); - item.put("fname", rs.getString("fname")); - item.put("ftype", rs.getString("ftype")); - item.put("parentId", rs.getString("fparentid")); - item.put("fnumber", rs.getString("fnumber")); - item.put("fobjid", rs.getString("fobjid")); - item.put("hasChildren", hasChildren(rs.getString("id"), true)); - currentList.add(item); + if (fisvitual.equals("0")) { + String whereSql = companyDateWhereSql(request2Map); + + whereSql += " and fparentid in (" + ids + ") "; + + RecordSet rs = new RecordSet(); + rs.executeQuery("select id, fname, ftype, fparentid, fnumber,fobjid from jcl_org_map " + whereSql); +// List> currentList = new ArrayList<>(); + while (rs.next()) { + Map item = new HashMap<>(); + item.put("id", rs.getString("id")); + item.put("fname", rs.getString("fname")); + item.put("ftype", rs.getString("ftype")); + item.put("parentId", rs.getString("fparentid")); + item.put("fnumber", rs.getString("fnumber")); + item.put("fobjid", rs.getString("fobjid")); + item.put("hasChildren", hasChildren(rs.getString("id"), true)); + currentList.add(item); + } + } else { + String whereSql = "where fparentid in (" + ids + ") "; + + RecordSet rs = new RecordSet(); + rs.executeQuery("select fid, fname, forder, fparentid, ftype from uf_jcl_vo " + whereSql); + while (rs.next()) { + Map item = new HashMap<>(); + item.put("id", rs.getString("fid")); + item.put("fname", rs.getString("fname")); + item.put("ftype", rs.getString("ftype")); + item.put("parentId", rs.getString("fparentid")); + item.put("forder", rs.getString("forder")); + item.put("hasChildren", hasVOChildren(rs.getString("fid"))); + currentList.add(item); + } } Map result = new HashMap<>(); @@ -417,6 +506,20 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { return !"0".equals(count); } + /** + * 虚拟组织下级部门判断 + * @return + */ + private boolean hasVOChildren(String fid) { + String whereSql = " where fparentid = " + fid + " "; + grs.executeQuery("select count(1) as count from uf_jcl_vo " + whereSql); + String count = "0"; + if (grs.next()) { + count = grs.getString("count"); + } + return !"0".equals(count); + } + private String convertLevel(String fLeaderLv) { String jobLevelName = ""; if (StringUtils.isBlank(fLeaderLv)) { diff --git a/src/weaver/formmode/customjavacode/modeexpand/VirOrgServiceImpl.java b/src/weaver/formmode/customjavacode/modeexpand/VirOrgServiceImpl.java new file mode 100644 index 00000000..7bdbbbfa --- /dev/null +++ b/src/weaver/formmode/customjavacode/modeexpand/VirOrgServiceImpl.java @@ -0,0 +1,75 @@ +package weaver.formmode.customjavacode.modeexpand; + +import com.alibaba.fastjson.JSONObject; +import com.engine.organization.entity.map.JclOrgMap; +import com.engine.organization.mapper.jclorgmap.JclOrgMapper; +import com.engine.organization.util.OrganizationDateUtil; +import com.engine.organization.util.db.MapperProxyFactory; +import weaver.conn.RecordSet; +import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew; + +import java.sql.Date; +import java.util.HashMap; +import java.util.Map; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.soa.workflow.request.RequestInfo; + +public class VirOrgServiceImpl extends AbstractModeExpandJavaCodeNew { + + public Map doModeExpand(Map param) { + Map result = new HashMap(); + try { + User user = (User)param.get("user"); + int billid = -1;//数据id + int modeid = -1;//模块id + RequestInfo requestInfo = (RequestInfo)param.get("RequestInfo"); + if(requestInfo!=null){ + billid = Util.getIntValue(requestInfo.getRequestid()); + modeid = Util.getIntValue(requestInfo.getWorkflowid()); + if(billid>0&&modeid>0){ + //------请在下面编写业务逻辑代码------ + // 获取字段field + RecordSet rs = new RecordSet(); + rs.executeQuery("select b.id from workflow_bill a \n" + + "INNER JOIN workflow_billfield b on a.id=b.billid\n" + + "where a.tablename='uf_jcl_org_vir' and b.fieldname='fid'"); + String field = "field"; + if (rs.next()) { + field += rs.getString("id"); + } + //JSON转换,获取虚拟组织表的fid + String JSONStr = (String) param.get("JSONStr"); + JSONObject jsonObject = (JSONObject) JSONObject.parse(JSONStr); + String fid = jsonObject.getString(field); + JclOrgMap jclOrgMap = new JclOrgMap(); + //查询虚拟组织表中的新增记录 + RecordSet recordSet = new RecordSet(); + recordSet.executeQuery("select id, fid, fname, ftype, forder, fparentid, fdate from uf_jcl_org_vir where fid = '" + fid + "'"); + if(recordSet.next()){ + Integer ftype = Integer.valueOf(recordSet.getString("ftype")); + jclOrgMap.setFType(ftype); + jclOrgMap.setFIsVitual(1);//虚拟组织标记 + jclOrgMap.setFClass(-1);//-1,虚拟组织 + jclOrgMap.setFClassName("虚拟组织"); + jclOrgMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(recordSet.getString("fdate")).getTime())); + jclOrgMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime())); + jclOrgMap.setFNumber(String.valueOf(modeid));//模块的数据编号 + jclOrgMap.setId(Integer.valueOf(recordSet.getString("id"))); + jclOrgMap.setFName(recordSet.getString("fname")); + if ("1".equals(recordSet.getString("ftype"))) { + jclOrgMap.setFParentId(0); + }else { + jclOrgMap.setFParentId(Integer.valueOf(recordSet.getString("fparentid"))); + } + MapperProxyFactory.getProxy(JclOrgMapper.class).insertMap(jclOrgMap); + } + } + } + } catch (Exception e) { + result.put("errmsg","自定义出错信息"); + result.put("flag", "false"); + } + return result; + } +} From afcbbcefb1b55edd7fbff96b12d1dc5d7c7802b9 Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Wed, 2 Nov 2022 17:44:52 +0800 Subject: [PATCH 02/34] =?UTF-8?q?=E4=BA=BA=E5=91=98=E5=8D=A1=E7=89=87?= =?UTF-8?q?=E6=9D=83=E9=99=90=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/personnelcard/vo/CardAccessVO.java | 44 ++++++++++++- .../service/CardAccessService.java | 8 +++ .../service/impl/CardAccessServiceImpl.java | 44 ++++++++++++- .../web/CardAccessController.java | 61 +++++++++++++++++++ .../web/ManagerDetachController.java | 6 +- .../wrapper/CardAccessWrapper.java | 22 +++++++ 6 files changed, 179 insertions(+), 6 deletions(-) diff --git a/src/com/engine/organization/entity/personnelcard/vo/CardAccessVO.java b/src/com/engine/organization/entity/personnelcard/vo/CardAccessVO.java index d4784433..c2ccb863 100644 --- a/src/com/engine/organization/entity/personnelcard/vo/CardAccessVO.java +++ b/src/com/engine/organization/entity/personnelcard/vo/CardAccessVO.java @@ -1,11 +1,14 @@ package com.engine.organization.entity.personnelcard.vo; +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; -import java.util.Date; + /** * @Author weaver_cl @@ -14,8 +17,45 @@ import java.util.Date; * @Version V1.0 **/ - +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@OrganizationTable(pageId = "8df45b09-0cda-4f57-a93a-ca9f96a4cfbf", + fields = "t.id," + + "t.type_name," + + "t.status," + + "t.all_people," + + "t.superior," + + "t.all_superior," + + "t.custom", + fromSql = "FROM jcl_org_cardaccess t ", + orderby = "id", + sortway = "asc", + primarykey = "id", + tableType = WeaTableType.CHECKBOX +) public class CardAccessVO { + @OrganizationTableColumn(column = "id", display = false) + private Long id; + + @OrganizationTableColumn(text = "栏目", width = "15%", column = "type_name") + private Integer typeName; + + @OrganizationTableColumn(text = "是否启用", width = "15%", column = "status") + private Integer status; + + @OrganizationTableColumn(text = "所有人可见", width = "15%", column = "all_people") + private Integer allPeople; + + @OrganizationTableColumn(text = "上级可见", width = "15%", column = "superior") + private Integer superior; + + @OrganizationTableColumn(text = "所有上级可见", width = "15%", column = "all_superior") + private Integer allSuperior; + + @OrganizationTableColumn(text = "查看自定义", width = "15%", column = "custom",transmethod = "com.engine.organization.transmethod.ManagerDetachTransMethod.getRoleLevel") + private String custom; } diff --git a/src/com/engine/organization/service/CardAccessService.java b/src/com/engine/organization/service/CardAccessService.java index 43833f72..521df12f 100644 --- a/src/com/engine/organization/service/CardAccessService.java +++ b/src/com/engine/organization/service/CardAccessService.java @@ -1,5 +1,7 @@ package com.engine.organization.service; +import java.util.Map; + /** * @Author weaver_cl * @Description: @@ -7,4 +9,10 @@ package com.engine.organization.service; * @Version V1.0 **/ public interface CardAccessService { + + Map tablePage(); + + Map hasRight(); + + int save(Map params); } diff --git a/src/com/engine/organization/service/impl/CardAccessServiceImpl.java b/src/com/engine/organization/service/impl/CardAccessServiceImpl.java index 69b2adfe..99f1dee2 100644 --- a/src/com/engine/organization/service/impl/CardAccessServiceImpl.java +++ b/src/com/engine/organization/service/impl/CardAccessServiceImpl.java @@ -1,10 +1,52 @@ package com.engine.organization.service.impl; +import com.cloudstore.eccom.result.WeaResultMsg; +import com.engine.core.impl.Service; +import com.engine.organization.component.OrganizationWeaTable; +import com.engine.organization.entity.detach.vo.ManagerDetachVO; +import com.engine.organization.service.CardAccessService; +import com.engine.organization.util.HasRightUtil; + +import java.util.HashMap; +import java.util.Map; + /** * @Author weaver_cl * @Description: * @Date 2022/11/1 * @Version V1.0 **/ -public class CardAccessServiceImpl { +public class CardAccessServiceImpl extends Service implements CardAccessService { + + private static final String RIGHT_NAME = "CardAccess:All"; + + @Override + public Map tablePage() { + Map resultMap = new HashMap<>(); + OrganizationWeaTable table = new OrganizationWeaTable<>(user, ManagerDetachVO.class); + String sqlWhere = " where delete_type = 0"; + table.setSqlwhere(sqlWhere); + WeaResultMsg result = new WeaResultMsg(false); + result.putAll(table.makeDataResult()); + result.success(); + resultMap.putAll(result.getResultMap()); + + return resultMap; + } + + @Override + public Map hasRight() { + Map resultMap = new HashMap<>(); + boolean hasRight = HasRightUtil.hasRight(user, RIGHT_NAME, true); + resultMap.put("hasRight", hasRight); + return resultMap; + } + + @Override + public int save(Map params) { + + return 0; + } + + } diff --git a/src/com/engine/organization/web/CardAccessController.java b/src/com/engine/organization/web/CardAccessController.java index ed00df86..46634494 100644 --- a/src/com/engine/organization/web/CardAccessController.java +++ b/src/com/engine/organization/web/CardAccessController.java @@ -1,5 +1,24 @@ package com.engine.organization.web; +import com.engine.common.util.ParamUtil; +import com.engine.common.util.ServiceUtil; +import com.engine.organization.entity.detach.param.ManagerDetachParam; +import com.engine.organization.util.response.ReturnResult; +import com.engine.organization.wrapper.CardAccessWrapper; +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; + /** * @Author weaver_cl * @Description: @@ -8,4 +27,46 @@ package com.engine.organization.web; **/ public class CardAccessController { + + public CardAccessWrapper getCardAccessWrapper(User user) { + return ServiceUtil.getService(CardAccessWrapper.class,user); + } + + + @GET + @Path("/hasRight") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult hasRight(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getCardAccessWrapper(user).hasRight()); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } + + @GET + @Path("/getTable") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult listPage(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getCardAccessWrapper(user).listPage()); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } + + @POST + @Path("/save") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult save(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + return ReturnResult.successed(getCardAccessWrapper(user).save(map)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } } diff --git a/src/com/engine/organization/web/ManagerDetachController.java b/src/com/engine/organization/web/ManagerDetachController.java index a54b29fa..16bdfd7f 100644 --- a/src/com/engine/organization/web/ManagerDetachController.java +++ b/src/com/engine/organization/web/ManagerDetachController.java @@ -33,7 +33,7 @@ public class ManagerDetachController { @GET @Path("/getTable") @Produces(MediaType.APPLICATION_JSON) - public ReturnResult listScheme(@Context HttpServletRequest request, @Context HttpServletResponse response) { + public ReturnResult listPage(@Context HttpServletRequest request, @Context HttpServletResponse response) { try { User user = HrmUserVarify.getUser(request, response); Map map = ParamUtil.request2Map(request); @@ -98,7 +98,7 @@ public class ManagerDetachController { @POST @Path("/save") @Produces(MediaType.APPLICATION_JSON) - public ReturnResult saveScheme(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody ManagerDetachParam param) { + public ReturnResult saveDetach(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody ManagerDetachParam param) { try { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getManagerDetachWrapper(user).save(param)); @@ -110,7 +110,7 @@ public class ManagerDetachController { @POST @Path("/update") @Produces(MediaType.APPLICATION_JSON) - public ReturnResult updateScheme(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody ManagerDetachParam param) { + public ReturnResult updateDetach(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody ManagerDetachParam param) { try { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getManagerDetachWrapper(user).updateDetach(param)); diff --git a/src/com/engine/organization/wrapper/CardAccessWrapper.java b/src/com/engine/organization/wrapper/CardAccessWrapper.java index 41475351..8d9add1f 100644 --- a/src/com/engine/organization/wrapper/CardAccessWrapper.java +++ b/src/com/engine/organization/wrapper/CardAccessWrapper.java @@ -1,6 +1,12 @@ package com.engine.organization.wrapper; +import com.engine.common.util.ServiceUtil; +import com.engine.organization.service.CardAccessService; +import com.engine.organization.service.impl.CardAccessServiceImpl; import com.engine.organization.util.OrganizationWrapper; +import weaver.hrm.User; + +import java.util.Map; /** * @Author weaver_cl @@ -9,4 +15,20 @@ import com.engine.organization.util.OrganizationWrapper; * @Version V1.0 **/ public class CardAccessWrapper extends OrganizationWrapper { + + public CardAccessService getCardAccessService(User user) { + return ServiceUtil.getService(CardAccessServiceImpl.class,user); + } + + public Map listPage() { + return getCardAccessService(user).tablePage(); + } + + public Map hasRight() { + return getCardAccessService(user).hasRight(); + } + + public int save(Map params) { + return getCardAccessService(user).save(params); + } } From 7d88bb9d5baf95988b8e88ccc60350d2486ac7c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=98ml=E2=80=99?= Date: Wed, 2 Nov 2022 20:18:55 +0800 Subject: [PATCH 03/34] =?UTF-8?q?=E8=99=9A=E6=8B=9F=E7=BB=84=E7=BB=87(?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BF=AE=E6=94=B9=E5=88=A0=E9=99=A4=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/OrgChartServiceImpl.java | 18 ++++-- .../modeexpand/VODeleteModeExpand.java | 61 +++++++++++++++++++ ...rOrgServiceImpl.java => VOModeExpand.java} | 61 +++++++++++++------ 3 files changed, 115 insertions(+), 25 deletions(-) create mode 100644 src/weaver/formmode/customjavacode/modeexpand/VODeleteModeExpand.java rename src/weaver/formmode/customjavacode/modeexpand/{VirOrgServiceImpl.java => VOModeExpand.java} (54%) diff --git a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java index b85d838e..9c85287e 100644 --- a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java @@ -129,7 +129,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { // 获取根节点 RecordSet rs = new RecordSet(); - rs.executeQuery("select id, fname, ftype, fparentid, fnumber, fobjid from jcl_org_map " + whereSql + whereItemSql); + rs.executeQuery("select id, fname, ftype, fparentid, fnumber, fobjid, fisvitual from jcl_org_map " + whereSql + whereItemSql); List> list = new ArrayList<>(); String id = null; if (rs.next()) { @@ -142,6 +142,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { item.put("fobjid", rs.getString("fobjid")); item.put("parentId", null); item.put("expand", "1"); + item.put("fisvitual", rs.getString("fisvitual")); item.put("hasChildren", hasChildren(rs.getString("id"), true)); list.add(item); } @@ -158,7 +159,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { } private void findCompanyItemByParantId(String id, int currentLevel, String level, RecordSet rs, List> list, String whereSql, boolean expand) { - String sql = "select id, fname, ftype, fparentid,fobjid,fecid,fnumber from jcl_org_map " + whereSql; + String sql = "select id, fname, ftype, fparentid,fobjid,fecid,fnumber,fisvitual from jcl_org_map " + whereSql; DetachUtil detachUtil = new DetachUtil(user.getUID()); if (detachUtil.isDETACH() && "0".equals(id)) { sql += " and ftype = 1 and fobjid in(" + detachUtil.getJclRoleLevels() + ")"; @@ -176,6 +177,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { item.put("fnumber", rs.getString("fnumber")); item.put("fobjid", rs.getString("fobjid")); item.put("fecid", rs.getString("fecid")); + item.put("fisvitual", rs.getString("fisvitual")); item.put("expand", expand ? "1" : "0"); item.put("hasChildren", hasChildren(rs.getString("id"), true)); currentList.add(item); @@ -247,7 +249,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { // 获取根节点 RecordSet rs = new RecordSet(); - rs.executeQuery("select t.id, t.fname, t.ftype, t.fparentid, t.fleadername,t.fobjid,t.fecid, t.fleaderimg, t.fleaderjob, t.fplan, t.fonjob, t.fnumber, t.fleader, t.fleaderlv, t.fleaderst,t.fecid from jcl_org_map t " + whereSql + whereItemSql); + rs.executeQuery("select t.id, t.fname, t.ftype, t.fparentid, t.fleadername,t.fobjid,t.fecid, t.fleaderimg, t.fleaderjob, t.fplan, t.fonjob, t.fnumber, t.fleader, t.fleaderlv, t.fleaderst, t.fecid, t.fisvitual from jcl_org_map t " + whereSql + whereItemSql); List> list = new ArrayList<>(); String id = null; if (rs.next()) { @@ -270,6 +272,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { item.put("fleaderlv", convertLevel(rs.getString("fleaderlv"))); item.put("fleaderst", convertGrade(rs.getString("fleaderst"))); item.put("fecid", rs.getString("fecid")); + item.put("fisvitual", rs.getString("fisvitual")); list.add(item); } @@ -292,7 +295,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { whereSql += " and fparentid in (" + ids + ") "; RecordSet rs = new RecordSet(); - rs.executeQuery("select t.id, t.fname, t.ftype, t.fparentid, t.fleadername, t.fleaderimg, t.fleaderjob, t.fplan, t.fonjob, t.fnumber, t.fleader,t.fleaderlv, t.fleaderst,t.fobjid from jcl_org_map t " + whereSql); + rs.executeQuery("select t.id, t.fname, t.ftype, t.fparentid, t.fleadername, t.fleaderimg, t.fleaderjob, t.fplan, t.fonjob, t.fnumber, t.fleader,t.fleaderlv, t.fleaderst,t.fobjid,t.fisvitual from jcl_org_map t " + whereSql); List> currentList = new ArrayList<>(); while (rs.next()) { Map item = new HashMap<>(); @@ -311,6 +314,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { item.put("fleaderlv", convertLevel(rs.getString("fleaderlv"))); item.put("fleaderst", convertGrade(rs.getString("fleaderst"))); item.put("fobjid", rs.getString("fobjid")); + item.put("fisvitual", rs.getString("fisvitual")); currentList.add(item); } @@ -346,7 +350,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { whereSql += " and fparentid in (" + ids + ") "; RecordSet rs = new RecordSet(); - rs.executeQuery("select id, fname, ftype, fparentid, fnumber,fobjid from jcl_org_map " + whereSql); + rs.executeQuery("select id, fname, ftype, fparentid, fnumber,fobjid,fisvitual from jcl_org_map " + whereSql); List> currentList = new ArrayList<>(); while (rs.next()) { Map item = new HashMap<>(); @@ -356,6 +360,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { item.put("parentId", rs.getString("fparentid")); item.put("fnumber", rs.getString("fnumber")); item.put("fobjid", rs.getString("fobjid")); + item.put("fisvitual", rs.getString("fisvitual")); item.put("hasChildren", hasChildren(rs.getString("id"), true)); currentList.add(item); } @@ -368,7 +373,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { private void findUserItemByParantId(String id, int currentLevel, String level, RecordSet rs, List> list, String whereSql, boolean expand) { - String sql = "select t.id, t.fname, t.ftype, t.fparentid,t.fobjparentid,t.fleader, t.fleadername, t.fleaderimg, t.fleaderjob, t.fplan, t.fonjob, t.fnumber,t.fobjid,t.fecid,t.fleaderlv, t.fleaderst from jcl_org_map t " + whereSql; + String sql = "select t.id, t.fname, t.ftype, t.fparentid, t.fobjparentid, t.fleader, t.fleadername, t.fleaderimg, t.fleaderjob, t.fplan, t.fonjob, t.fnumber, t.fobjid, t.fecid, t.fleaderlv, t.fleaderst, t.fisvitual from jcl_org_map t " + whereSql; DetachUtil detachUtil = new DetachUtil(user.getUID()); if (detachUtil.isDETACH() && "0".equals(id)) { sql += " and ftype = 1 and fobjid in(" + detachUtil.getJclRoleLevels() + ")"; @@ -396,6 +401,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { item.put("fleader", rs.getString("fleader")); item.put("fleaderlv", convertLevel(rs.getString("fleaderlv"))); item.put("fleaderst", convertGrade(rs.getString("fleaderst"))); + item.put("fisvitual", rs.getString("fisvitual")); item.put("hasChildren", hasChildren(rs.getString("id"), false)); currentList.add(item); } diff --git a/src/weaver/formmode/customjavacode/modeexpand/VODeleteModeExpand.java b/src/weaver/formmode/customjavacode/modeexpand/VODeleteModeExpand.java new file mode 100644 index 00000000..2d1d7f4a --- /dev/null +++ b/src/weaver/formmode/customjavacode/modeexpand/VODeleteModeExpand.java @@ -0,0 +1,61 @@ +package weaver.formmode.customjavacode.modeexpand; + +import com.alibaba.fastjson.JSONObject; +import com.engine.organization.entity.map.JclOrgMap; +import com.engine.organization.mapper.jclorgmap.JclOrgMapper; +import com.engine.organization.util.OrganizationDateUtil; +import com.engine.organization.util.db.MapperProxyFactory; +import weaver.conn.RecordSet; +import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.soa.workflow.request.RequestInfo; + +import java.sql.Date; +import java.util.HashMap; +import java.util.Map; + +/** + * 虚拟组织删除map表接口 + */ +public class VODeleteModeExpand extends AbstractModeExpandJavaCodeNew { + + public Map doModeExpand(Map param) { + Map result = new HashMap(); + try { + User user = (User) param.get("user"); + int billid = -1;//数据id + int modeid = -1;//模块id + RequestInfo requestInfo = (RequestInfo) param.get("RequestInfo"); + if (requestInfo != null) { + billid = Util.getIntValue(requestInfo.getRequestid()); + modeid = Util.getIntValue(requestInfo.getWorkflowid()); + if (billid > 0 && modeid > 0) { + //------请在下面编写业务逻辑代码------ + String billids = (String) param.get("billids"); + String[] billidsTmp = billids.split(","); + String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date()); + for (String id : billidsTmp) { + RecordSet rs = new RecordSet(); + rs.executeQuery("select id, fid, fecid, fname, ftype, forder, fparentid, fdate from uf_jcl_org_vir where id ='" + id + "'"); + if (rs.next()) { + String ftype = rs.getString("ftype"); + String fdate = rs.getString("fdate"); + RecordSet recordSet = new RecordSet(); + String delsql = "delete JCL_ORG_MAP where id=" + id + " and ftype='" + ftype + "' and fisvitual='1' and fdatebegin='" + fdate + "'"; + recordSet.execute(delsql); + String updatesql = "update JCL_ORG_MAP set fdateend=' " + new Date(OrganizationDateUtil.stringToDate(currentDate).getTime()) + + "' where id=" + id + " and ftype='" + ftype + "' and fisvitual='1' and fdateend > '" +fdate + "'"; + recordSet.execute(updatesql); + } + } + } + } + } catch (Exception e) { + result.put("errmsg", "自定义出错信息"); + result.put("flag", "false"); + } + return result; + } + +} diff --git a/src/weaver/formmode/customjavacode/modeexpand/VirOrgServiceImpl.java b/src/weaver/formmode/customjavacode/modeexpand/VOModeExpand.java similarity index 54% rename from src/weaver/formmode/customjavacode/modeexpand/VirOrgServiceImpl.java rename to src/weaver/formmode/customjavacode/modeexpand/VOModeExpand.java index 7bdbbbfa..83de9d00 100644 --- a/src/weaver/formmode/customjavacode/modeexpand/VirOrgServiceImpl.java +++ b/src/weaver/formmode/customjavacode/modeexpand/VOModeExpand.java @@ -15,7 +15,10 @@ import weaver.general.Util; import weaver.hrm.User; import weaver.soa.workflow.request.RequestInfo; -public class VirOrgServiceImpl extends AbstractModeExpandJavaCodeNew { +/** + * 虚拟组织新增修改到map表接口 + */ +public class VOModeExpand extends AbstractModeExpandJavaCodeNew { public Map doModeExpand(Map param) { Map result = new HashMap(); @@ -28,42 +31,45 @@ public class VirOrgServiceImpl extends AbstractModeExpandJavaCodeNew { billid = Util.getIntValue(requestInfo.getRequestid()); modeid = Util.getIntValue(requestInfo.getWorkflowid()); if(billid>0&&modeid>0){ - //------请在下面编写业务逻辑代码------ - // 获取字段field - RecordSet rs = new RecordSet(); - rs.executeQuery("select b.id from workflow_bill a \n" + - "INNER JOIN workflow_billfield b on a.id=b.billid\n" + - "where a.tablename='uf_jcl_org_vir' and b.fieldname='fid'"); - String field = "field"; - if (rs.next()) { - field += rs.getString("id"); - } //JSON转换,获取虚拟组织表的fid String JSONStr = (String) param.get("JSONStr"); JSONObject jsonObject = (JSONObject) JSONObject.parse(JSONStr); - String fid = jsonObject.getString(field); - JclOrgMap jclOrgMap = new JclOrgMap(); + String fid = jsonObject.getString(queryField("fid")); + String iscreate = (String)param.get("iscreate"); //查询虚拟组织表中的新增记录 RecordSet recordSet = new RecordSet(); - recordSet.executeQuery("select id, fid, fname, ftype, forder, fparentid, fdate from uf_jcl_org_vir where fid = '" + fid + "'"); + recordSet.executeQuery("select id, fid, fecid, fname, ftype, forder, fparentid, fdate from uf_jcl_org_vir where fid = '" + fid + "'"); + JclOrgMap jclOrgMap = new JclOrgMap(); if(recordSet.next()){ Integer ftype = Integer.valueOf(recordSet.getString("ftype")); jclOrgMap.setFType(ftype); jclOrgMap.setFIsVitual(1);//虚拟组织标记 - jclOrgMap.setFClass(-1);//-1,虚拟组织 - jclOrgMap.setFClassName("虚拟组织"); + jclOrgMap.setFClass(0);//-1,行政维度 + jclOrgMap.setFClassName("行政维度"); jclOrgMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(recordSet.getString("fdate")).getTime())); jclOrgMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime())); jclOrgMap.setFNumber(String.valueOf(modeid));//模块的数据编号 jclOrgMap.setId(Integer.valueOf(recordSet.getString("id"))); jclOrgMap.setFName(recordSet.getString("fname")); + jclOrgMap.setFParentId(Integer.valueOf(recordSet.getString("fparentid"))); if ("1".equals(recordSet.getString("ftype"))) { jclOrgMap.setFParentId(0); - }else { - jclOrgMap.setFParentId(Integer.valueOf(recordSet.getString("fparentid"))); + }else if("4".equals(recordSet.getString("ftype"))){ + RecordSet rsHrm = new RecordSet(); + rsHrm.executeQuery("select lastname from HrmResource where id=" + recordSet.getString("fecid")); + if(rsHrm.next()){ + jclOrgMap.setFName(rsHrm.getString("lastname")); + } } - MapperProxyFactory.getProxy(JclOrgMapper.class).insertMap(jclOrgMap); } + if(iscreate.equals("2")){ + RecordSet rs = new RecordSet(); + String delsql = "delete JCL_ORG_MAP where id="+jclOrgMap.getId()+" and ftype='"+jclOrgMap.getFType()+"' and fisvitual='1' and fdatebegin='"+jclOrgMap.getFDateBegin()+"'"; + rs.execute(delsql); + String updatesql = "update JCL_ORG_MAP set fdateend='"+jclOrgMap.getFDateBegin()+"' where id="+jclOrgMap.getId()+" and ftype='"+jclOrgMap.getFType()+"' and fisvitual='1' and fdateend > '"+jclOrgMap.getFDateBegin()+"'"; + rs.execute(updatesql); + } + MapperProxyFactory.getProxy(JclOrgMapper.class).insertMap(jclOrgMap); } } } catch (Exception e) { @@ -72,4 +78,21 @@ public class VirOrgServiceImpl extends AbstractModeExpandJavaCodeNew { } return result; } + + /** + * 查询表单对应字段 + */ + private String queryField(String fieldName) { + RecordSet rs = new RecordSet(); + rs.executeQuery("select b.id from workflow_bill a \n" + + "INNER JOIN workflow_billfield b on a.id=b.billid\n" + + "where a.tablename='uf_jcl_org_vir' and b.fieldname='" + fieldName + "'"); + String field = "field"; + if (rs.next()) { + field += rs.getString("id"); + } + return field; + } + + } From 47aafefa5acb2e8aa90b61db48f823f390f9b41b Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 3 Nov 2022 11:06:36 +0800 Subject: [PATCH 04/34] =?UTF-8?q?=E5=88=86=E6=9D=83BUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/JobBrowserService.java | 7 ++++++- .../organization/mapper/comp/CompMapper.xml | 4 ++++ .../mapper/detach/ManagerDetachMapper.xml | 2 +- .../mapper/resource/ResourceMapper.java | 2 ++ .../mapper/resource/ResourceMapper.xml | 19 +++++++++++++++++++ .../service/impl/ExportCommonServiceImpl.java | 17 ++++++++++++++--- .../impl/ManagerDetachServiceImpl.java | 6 +++--- .../service/impl/OrgChartServiceImpl.java | 16 ++++++++++++---- 8 files changed, 61 insertions(+), 12 deletions(-) diff --git a/src/com/api/browser/service/impl/JobBrowserService.java b/src/com/api/browser/service/impl/JobBrowserService.java index f1f74e25..e778f88e 100644 --- a/src/com/api/browser/service/impl/JobBrowserService.java +++ b/src/com/api/browser/service/impl/JobBrowserService.java @@ -126,6 +126,11 @@ public class JobBrowserService extends BrowserService { } } } + // 分权 + DetachUtil detachUtil = new DetachUtil(user.getUID()); + if (detachUtil.isDETACH()) { + sqlWhere += " AND t.parent_comp in (" + detachUtil.getJclRoleLevels() + ")"; + } return sqlWhere; } @@ -138,7 +143,7 @@ public class JobBrowserService extends BrowserService { private List getCurrentTreeNode(SearchTreeParams params) { // 分权 DetachUtil detachUtil = new DetachUtil(user.getUID()); - List jclRoleLevelList = Arrays.asList(detachUtil.getJclRoleLevels().split(",")).stream().map(Long::parseLong).collect(Collectors.toList()); + List jclRoleLevelList = Arrays.stream(detachUtil.getJclRoleLevels().split(",")).map(Long::parseLong).collect(Collectors.toList()); List treeNodes = new ArrayList<>(); if (StringUtils.isBlank(params.getId())) { // 集团总部 diff --git a/src/com/engine/organization/mapper/comp/CompMapper.xml b/src/com/engine/organization/mapper/comp/CompMapper.xml index ad6b65d5..63e2fcf2 100644 --- a/src/com/engine/organization/mapper/comp/CompMapper.xml +++ b/src/com/engine/organization/mapper/comp/CompMapper.xml @@ -399,6 +399,10 @@ select company_id from JCL_ORG_STAFFPLAN where delete_type = 0 + union + select jcl_rolelevel + from jcl_org_detach + where delete_type = 0 + diff --git a/src/com/engine/organization/service/impl/ExportCommonServiceImpl.java b/src/com/engine/organization/service/impl/ExportCommonServiceImpl.java index 35bfb467..e9826054 100644 --- a/src/com/engine/organization/service/impl/ExportCommonServiceImpl.java +++ b/src/com/engine/organization/service/impl/ExportCommonServiceImpl.java @@ -1,16 +1,20 @@ package com.engine.organization.service.impl; import com.engine.core.impl.Service; -import com.engine.organization.entity.hrmresource.param.HrmResourceSearchParam; import com.engine.organization.entity.hrmresource.vo.HrmResourceVO; import com.engine.organization.mapper.resource.ResourceMapper; import com.engine.organization.service.ExportCommonService; import com.engine.organization.util.HrmI18nUtil; import com.engine.organization.util.db.MapperProxyFactory; +import com.engine.organization.util.detach.DetachUtil; import com.engine.organization.util.excel.ExcelUtil; import org.apache.poi.xssf.usermodel.XSSFWorkbook; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.LinkedList; +import java.util.List; +import java.util.stream.Collectors; /** * @Author weaver_cl @@ -23,7 +27,14 @@ public class ExportCommonServiceImpl extends Service implements ExportCommonServ @Override public XSSFWorkbook resourceExport(List ids) { - List hrmResourceVOS = MapperProxyFactory.getProxy(ResourceMapper.class).listAll(ids); + List hrmResourceVOS ; + DetachUtil detachUtil = new DetachUtil(user.getUID()); + if (detachUtil.isDETACH()) { + List jclRoleLevelList = Arrays.stream(detachUtil.getJclRoleLevels().split(",")).map(Long::parseLong).collect(Collectors.toList()); + hrmResourceVOS = MapperProxyFactory.getProxy(ResourceMapper.class).listDetachAll(ids, jclRoleLevelList); + } else { + hrmResourceVOS = MapperProxyFactory.getProxy(ResourceMapper.class).listAll(ids); + } if (hrmResourceVOS == null) { hrmResourceVOS = new ArrayList<>(); } diff --git a/src/com/engine/organization/service/impl/ManagerDetachServiceImpl.java b/src/com/engine/organization/service/impl/ManagerDetachServiceImpl.java index 3a329c5a..36b3b456 100644 --- a/src/com/engine/organization/service/impl/ManagerDetachServiceImpl.java +++ b/src/com/engine/organization/service/impl/ManagerDetachServiceImpl.java @@ -125,7 +125,7 @@ public class ManagerDetachServiceImpl extends Service implements ManagerDetachSe .ecManager(param.getEcManager()) .jclManager(getHrmResourceMapper().getJclResourceId(String.valueOf(param.getEcManager())).intValue()) .ecRolelevel(param.getEcRolelevel()) - .jclRolelevel(EcHrmRelationUtil.getJclCompanyId(param.getEcRolelevel()) != null ? String.valueOf(EcHrmRelationUtil.getBatchJclCompanyId(param.getEcRolelevel())) : null) + .jclRolelevel(EcHrmRelationUtil.getBatchJclCompanyId(param.getEcRolelevel()) != null ? String.valueOf(EcHrmRelationUtil.getBatchJclCompanyId(param.getEcRolelevel())) : null) .manageModule("组织管理") .creator((long)user.getUID()) .deleteType(0) @@ -143,7 +143,7 @@ public class ManagerDetachServiceImpl extends Service implements ManagerDetachSe .ecManager(param.getEcManager()) .jclManager(getHrmResourceMapper().getJclResourceId(String.valueOf(param.getEcManager())).intValue()) .ecRolelevel(param.getEcRolelevel()) - .jclRolelevel(EcHrmRelationUtil.getJclCompanyId(param.getEcRolelevel()) != null ? String.valueOf(EcHrmRelationUtil.getBatchJclCompanyId(param.getEcRolelevel())) : null) + .jclRolelevel(EcHrmRelationUtil.getBatchJclCompanyId(param.getEcRolelevel()) != null ? String.valueOf(EcHrmRelationUtil.getBatchJclCompanyId(param.getEcRolelevel())) : null) .build(); return getMangeDetachMapper().updateDetach(managerDetachPO); } @@ -166,7 +166,7 @@ public class ManagerDetachServiceImpl extends Service implements ManagerDetachSe } String ecRolelevel = (String) params.get("ecRolelevel"); if (StringUtils.isNotBlank(ecRolelevel)) { - sqlWhere += " AND ec_rolelevel " +dbType.like(ecRolelevel); + sqlWhere += " AND " + dbType.concat("ec_rolelevel") + dbType.like(ecRolelevel); } return sqlWhere; } diff --git a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java index b85d838e..f08c8437 100644 --- a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java @@ -160,8 +160,12 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { private void findCompanyItemByParantId(String id, int currentLevel, String level, RecordSet rs, List> list, String whereSql, boolean expand) { String sql = "select id, fname, ftype, fparentid,fobjid,fecid,fnumber from jcl_org_map " + whereSql; DetachUtil detachUtil = new DetachUtil(user.getUID()); - if (detachUtil.isDETACH() && "0".equals(id)) { - sql += " and ftype = 1 and fobjid in(" + detachUtil.getJclRoleLevels() + ")"; + if (detachUtil.isDETACH()) { + if ("0".equals(id)) { + sql += " and ftype = 1 and fobjid in(" + detachUtil.getJclRoleLevels() + ")"; + } else { + sql += " and fparentid = " + id + " and ftype !=1"; + } } else { sql += " and fparentid = " + id; } @@ -370,8 +374,12 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { private void findUserItemByParantId(String id, int currentLevel, String level, RecordSet rs, List> list, String whereSql, boolean expand) { String sql = "select t.id, t.fname, t.ftype, t.fparentid,t.fobjparentid,t.fleader, t.fleadername, t.fleaderimg, t.fleaderjob, t.fplan, t.fonjob, t.fnumber,t.fobjid,t.fecid,t.fleaderlv, t.fleaderst from jcl_org_map t " + whereSql; DetachUtil detachUtil = new DetachUtil(user.getUID()); - if (detachUtil.isDETACH() && "0".equals(id)) { - sql += " and ftype = 1 and fobjid in(" + detachUtil.getJclRoleLevels() + ")"; + if (detachUtil.isDETACH()) { + if ("0".equals(id)) { + sql += " and t.ftype = 1 and t.fobjid in(" + detachUtil.getJclRoleLevels() + ")"; + } else { + sql += " and t.fparentid = " + id + " and t.ftype !=1"; + } } else { sql += " and t.fparentid = " + id; } From 52f9e756e62ad1733e029b38830f6f61536398e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=98ml=E2=80=99?= Date: Thu, 3 Nov 2022 11:19:48 +0800 Subject: [PATCH 05/34] =?UTF-8?q?=E7=BB=84=E7=BB=87=E9=80=8F=E8=A7=86?= =?UTF-8?q?=E5=9B=BE=E8=99=9A=E6=8B=9F=E7=BB=84=E7=BB=87=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modeexpand/VODeleteModeExpand.java | 8 ++--- .../modeexpand/VOModeExpand.java | 33 ++++++++++--------- 2 files changed, 19 insertions(+), 22 deletions(-) rename src/weaver/formmode/{customjavacode => organization}/modeexpand/VODeleteModeExpand.java (88%) rename src/weaver/formmode/{customjavacode => organization}/modeexpand/VOModeExpand.java (77%) diff --git a/src/weaver/formmode/customjavacode/modeexpand/VODeleteModeExpand.java b/src/weaver/formmode/organization/modeexpand/VODeleteModeExpand.java similarity index 88% rename from src/weaver/formmode/customjavacode/modeexpand/VODeleteModeExpand.java rename to src/weaver/formmode/organization/modeexpand/VODeleteModeExpand.java index 2d1d7f4a..d0f44db7 100644 --- a/src/weaver/formmode/customjavacode/modeexpand/VODeleteModeExpand.java +++ b/src/weaver/formmode/organization/modeexpand/VODeleteModeExpand.java @@ -1,10 +1,6 @@ -package weaver.formmode.customjavacode.modeexpand; +package weaver.formmode.organization.modeexpand; -import com.alibaba.fastjson.JSONObject; -import com.engine.organization.entity.map.JclOrgMap; -import com.engine.organization.mapper.jclorgmap.JclOrgMapper; import com.engine.organization.util.OrganizationDateUtil; -import com.engine.organization.util.db.MapperProxyFactory; import weaver.conn.RecordSet; import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew; import weaver.general.Util; @@ -38,10 +34,10 @@ public class VODeleteModeExpand extends AbstractModeExpandJavaCodeNew { for (String id : billidsTmp) { RecordSet rs = new RecordSet(); rs.executeQuery("select id, fid, fecid, fname, ftype, forder, fparentid, fdate from uf_jcl_org_vir where id ='" + id + "'"); + RecordSet recordSet = new RecordSet(); if (rs.next()) { String ftype = rs.getString("ftype"); String fdate = rs.getString("fdate"); - RecordSet recordSet = new RecordSet(); String delsql = "delete JCL_ORG_MAP where id=" + id + " and ftype='" + ftype + "' and fisvitual='1' and fdatebegin='" + fdate + "'"; recordSet.execute(delsql); String updatesql = "update JCL_ORG_MAP set fdateend=' " + new Date(OrganizationDateUtil.stringToDate(currentDate).getTime()) + diff --git a/src/weaver/formmode/customjavacode/modeexpand/VOModeExpand.java b/src/weaver/formmode/organization/modeexpand/VOModeExpand.java similarity index 77% rename from src/weaver/formmode/customjavacode/modeexpand/VOModeExpand.java rename to src/weaver/formmode/organization/modeexpand/VOModeExpand.java index 83de9d00..adde8c2a 100644 --- a/src/weaver/formmode/customjavacode/modeexpand/VOModeExpand.java +++ b/src/weaver/formmode/organization/modeexpand/VOModeExpand.java @@ -1,4 +1,4 @@ -package weaver.formmode.customjavacode.modeexpand; +package weaver.formmode.organization.modeexpand; import com.alibaba.fastjson.JSONObject; import com.engine.organization.entity.map.JclOrgMap; @@ -11,6 +11,7 @@ import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew; import java.sql.Date; import java.util.HashMap; import java.util.Map; + import weaver.general.Util; import weaver.hrm.User; import weaver.soa.workflow.request.RequestInfo; @@ -23,24 +24,24 @@ public class VOModeExpand extends AbstractModeExpandJavaCodeNew { public Map doModeExpand(Map param) { Map result = new HashMap(); try { - User user = (User)param.get("user"); + User user = (User) param.get("user"); int billid = -1;//数据id int modeid = -1;//模块id - RequestInfo requestInfo = (RequestInfo)param.get("RequestInfo"); - if(requestInfo!=null){ + RequestInfo requestInfo = (RequestInfo) param.get("RequestInfo"); + if (requestInfo != null) { billid = Util.getIntValue(requestInfo.getRequestid()); modeid = Util.getIntValue(requestInfo.getWorkflowid()); - if(billid>0&&modeid>0){ + if (billid > 0 && modeid > 0) { //JSON转换,获取虚拟组织表的fid String JSONStr = (String) param.get("JSONStr"); JSONObject jsonObject = (JSONObject) JSONObject.parse(JSONStr); String fid = jsonObject.getString(queryField("fid")); - String iscreate = (String)param.get("iscreate"); + String iscreate = (String) param.get("iscreate"); //查询虚拟组织表中的新增记录 RecordSet recordSet = new RecordSet(); recordSet.executeQuery("select id, fid, fecid, fname, ftype, forder, fparentid, fdate from uf_jcl_org_vir where fid = '" + fid + "'"); JclOrgMap jclOrgMap = new JclOrgMap(); - if(recordSet.next()){ + if (recordSet.next()) { Integer ftype = Integer.valueOf(recordSet.getString("ftype")); jclOrgMap.setFType(ftype); jclOrgMap.setFIsVitual(1);//虚拟组织标记 @@ -51,29 +52,31 @@ public class VOModeExpand extends AbstractModeExpandJavaCodeNew { jclOrgMap.setFNumber(String.valueOf(modeid));//模块的数据编号 jclOrgMap.setId(Integer.valueOf(recordSet.getString("id"))); jclOrgMap.setFName(recordSet.getString("fname")); - jclOrgMap.setFParentId(Integer.valueOf(recordSet.getString("fparentid"))); + if (!"".equals(recordSet.getString("fparentid"))) { + jclOrgMap.setFParentId(Integer.valueOf(recordSet.getString("fparentid"))); + } if ("1".equals(recordSet.getString("ftype"))) { jclOrgMap.setFParentId(0); - }else if("4".equals(recordSet.getString("ftype"))){ + } else if ("4".equals(recordSet.getString("ftype"))) { RecordSet rsHrm = new RecordSet(); rsHrm.executeQuery("select lastname from HrmResource where id=" + recordSet.getString("fecid")); - if(rsHrm.next()){ + if (rsHrm.next()) { jclOrgMap.setFName(rsHrm.getString("lastname")); } } } - if(iscreate.equals("2")){ + if (iscreate.equals("2")) { RecordSet rs = new RecordSet(); - String delsql = "delete JCL_ORG_MAP where id="+jclOrgMap.getId()+" and ftype='"+jclOrgMap.getFType()+"' and fisvitual='1' and fdatebegin='"+jclOrgMap.getFDateBegin()+"'"; + String delsql = "delete JCL_ORG_MAP where id=" + jclOrgMap.getId() + " and ftype='" + jclOrgMap.getFType() + "' and fisvitual='1' and fdatebegin='" + jclOrgMap.getFDateBegin() + "'"; rs.execute(delsql); - String updatesql = "update JCL_ORG_MAP set fdateend='"+jclOrgMap.getFDateBegin()+"' where id="+jclOrgMap.getId()+" and ftype='"+jclOrgMap.getFType()+"' and fisvitual='1' and fdateend > '"+jclOrgMap.getFDateBegin()+"'"; + String updatesql = "update JCL_ORG_MAP set fdateend='" + jclOrgMap.getFDateBegin() + "' where id=" + jclOrgMap.getId() + " and ftype='" + jclOrgMap.getFType() + "' and fisvitual='1' and fdateend > '" + jclOrgMap.getFDateBegin() + "'"; rs.execute(updatesql); } MapperProxyFactory.getProxy(JclOrgMapper.class).insertMap(jclOrgMap); } } } catch (Exception e) { - result.put("errmsg","自定义出错信息"); + result.put("errmsg", "自定义出错信息"); result.put("flag", "false"); } return result; @@ -93,6 +96,4 @@ public class VOModeExpand extends AbstractModeExpandJavaCodeNew { } return field; } - - } From 85e39fd564146a562894a47846716c5f933ceff2 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 3 Nov 2022 14:19:37 +0800 Subject: [PATCH 06/34] =?UTF-8?q?=E5=88=86=E6=9D=83BUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/organization/util/db/DBType.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/com/engine/organization/util/db/DBType.java b/src/com/engine/organization/util/db/DBType.java index a71b5458..c9ea4676 100644 --- a/src/com/engine/organization/util/db/DBType.java +++ b/src/com/engine/organization/util/db/DBType.java @@ -8,34 +8,34 @@ public enum DBType implements DBOperateAdapter { MYSQL("mysql") { @Override public String like(String some) { - return "like '%" + some + "%'"; + return " like '%" + some + "%' "; } @Override public String concat(String some) { - return "concat(','," + some + ",',')"; + return " concat(','," + some + ",',') "; } }, SQLSERVER("sqlserver") { @Override public String like(String some) { - return "like '%" + some + "%'"; + return " like '%" + some + "%' "; } @Override public String concat(String some) { - return "','+" + some + "+','"; + return " ','+" + some + "+',' "; } }, ORACLE("oracle") { @Override public String like(String some) { - return "'%'||" + some + "||'%'"; + return " like '%'||" + some + "||'%' "; } @Override public String concat(String some) { - return "',' ||" + some + "|| ','"; + return " ',' ||" + some + "|| ',' "; } }; From ffe09c893305253688e1373af3f810d5d662e6f3 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 3 Nov 2022 14:54:14 +0800 Subject: [PATCH 07/34] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E5=9B=BE=EF=BC=8C=E4=B8=8D=E5=B1=95=E7=A4=BA=E6=89=8B=E6=9C=BA?= =?UTF-8?q?=E3=80=81=E5=9C=B0=E5=9D=80=E3=80=81=E9=83=A8=E9=97=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/OrgChartServiceImpl.java | 31 +++++++++---------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java index b38758d8..22c644f1 100644 --- a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java @@ -322,23 +322,20 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { currentList.add(item); } - for (Map stringObjectMap : currentList) { - if ("4".equals(stringObjectMap.get("ftype"))) { // 员工信息 - rs.executeQuery("select id, mobile, homeaddress from hrmresource where id = ? ", stringObjectMap.get("fnumber")); - if (rs.next()) { - stringObjectMap.put("mobile", rs.getString("mobile")); - stringObjectMap.put("address", rs.getString("homeaddress")); - } - rs.executeQuery("select departmentname from hrmresource hrm \n" + - "left join hrmdepartment d\n" + - "on hrm.departmentid = d.id\n" + - "where hrm.id = ? ", stringObjectMap.get("fnumber")); - if (rs.next()) { - stringObjectMap.put("department", rs.getString("departmentname")); - } - - } - } + //for (Map stringObjectMap : currentList) { + // if ("4".equals(stringObjectMap.get("ftype"))) { // 员工信息 + // rs.executeQuery("select id, mobile, home_address from jcl_org_hrmresource where id = ? ", stringObjectMap.get("fobjid")); + // if (rs.next()) { + // stringObjectMap.put("mobile", rs.getString("mobile")); + // stringObjectMap.put("address", rs.getString("home_address")); + // } + // rs.executeQuery("select dept_name from jcl_org_hrmresource hrm left join jcl_org_dept d on hrm.department_id = d.id where hrm.id =? ", stringObjectMap.get("fobjid")); + // if (rs.next()) { + // stringObjectMap.put("department", rs.getString("dept_name")); + // } + // + // } + //} Map result = new HashMap<>(); result.put("api_status", true); From 31645b34fe1dac18fec9136368200f7ab6d16f09 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 3 Nov 2022 16:45:02 +0800 Subject: [PATCH 08/34] =?UTF-8?q?=E5=88=86=E6=9D=83BUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/JobBrowserService.java | 28 +++++++++++++++---- .../mapper/detach/ManagerDetachMapper.xml | 4 --- .../service/impl/ExportCommonServiceImpl.java | 9 ++++-- 3 files changed, 30 insertions(+), 11 deletions(-) diff --git a/src/com/api/browser/service/impl/JobBrowserService.java b/src/com/api/browser/service/impl/JobBrowserService.java index e778f88e..7a598cbd 100644 --- a/src/com/api/browser/service/impl/JobBrowserService.java +++ b/src/com/api/browser/service/impl/JobBrowserService.java @@ -21,6 +21,7 @@ import com.engine.organization.util.db.DBType; import com.engine.organization.util.db.MapperProxyFactory; import com.engine.organization.util.detach.DetachUtil; import com.engine.organization.util.tree.SearchTreeUtil; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import weaver.conn.RecordSet; import weaver.general.Util; @@ -143,18 +144,31 @@ public class JobBrowserService extends BrowserService { private List getCurrentTreeNode(SearchTreeParams params) { // 分权 DetachUtil detachUtil = new DetachUtil(user.getUID()); - List jclRoleLevelList = Arrays.stream(detachUtil.getJclRoleLevels().split(",")).map(Long::parseLong).collect(Collectors.toList()); + List jclRoleLevelList; + if (StringUtils.isNotBlank(detachUtil.getJclRoleLevels())) { + jclRoleLevelList = Arrays.stream(detachUtil.getJclRoleLevels().split(",")).map(Long::parseLong).collect(Collectors.toList()); + }else{ + jclRoleLevelList = new ArrayList<>(); + } List treeNodes = new ArrayList<>(); if (StringUtils.isBlank(params.getId())) { // 集团总部 SearchTree topGroup = SearchTreeUtil.getTopGroup(); - topGroup.setIsParent(true); + if(detachUtil.isDETACH()&& StringUtils.isNotBlank(detachUtil.getJclRoleLevels())) { + topGroup.setIsParent(true); + }else{ + topGroup.setIsParent(false); + } treeNodes.add(topGroup); } else { // 分部存在下级的ID List compHasSubs; if (detachUtil.isDETACH()) { - compHasSubs = MapperProxyFactory.getProxy(CompMapper.class).hasDetachSubs(jclRoleLevelList); + if(CollectionUtils.isNotEmpty(jclRoleLevelList)) { + compHasSubs = MapperProxyFactory.getProxy(CompMapper.class).hasDetachSubs(jclRoleLevelList); + }else{ + compHasSubs = new ArrayList<>(); + } } else { compHasSubs = MapperProxyFactory.getProxy(CompMapper.class).hasSubs(); } @@ -164,8 +178,12 @@ public class JobBrowserService extends BrowserService { if ("0".equals(params.getId())) { List compList; if (detachUtil.isDETACH()) { - compList = MapperProxyFactory.getProxy(CompMapper.class).getCompsByIds(jclRoleLevelList); - detachUtil.filterCompanyList(compList); + if(CollectionUtils.isNotEmpty(jclRoleLevelList)) { + compList = MapperProxyFactory.getProxy(CompMapper.class).getCompsByIds(jclRoleLevelList); + detachUtil.filterCompanyList(compList); + }else{ + compList = new ArrayList<>(); + } }else{ compList = MapperProxyFactory.getProxy(CompMapper.class).listParent(); } diff --git a/src/com/engine/organization/mapper/detach/ManagerDetachMapper.xml b/src/com/engine/organization/mapper/detach/ManagerDetachMapper.xml index 15831b35..b4961070 100644 --- a/src/com/engine/organization/mapper/detach/ManagerDetachMapper.xml +++ b/src/com/engine/organization/mapper/detach/ManagerDetachMapper.xml @@ -11,8 +11,6 @@ - - @@ -27,8 +25,6 @@ , t.manage_module , t.creator , t.delete_type - , t.create_time - , t.update_time diff --git a/src/com/engine/organization/service/impl/ExportCommonServiceImpl.java b/src/com/engine/organization/service/impl/ExportCommonServiceImpl.java index e9826054..02b959f3 100644 --- a/src/com/engine/organization/service/impl/ExportCommonServiceImpl.java +++ b/src/com/engine/organization/service/impl/ExportCommonServiceImpl.java @@ -8,6 +8,7 @@ import com.engine.organization.util.HrmI18nUtil; import com.engine.organization.util.db.MapperProxyFactory; import com.engine.organization.util.detach.DetachUtil; import com.engine.organization.util.excel.ExcelUtil; +import org.apache.commons.lang.StringUtils; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.util.ArrayList; @@ -30,8 +31,12 @@ public class ExportCommonServiceImpl extends Service implements ExportCommonServ List hrmResourceVOS ; DetachUtil detachUtil = new DetachUtil(user.getUID()); if (detachUtil.isDETACH()) { - List jclRoleLevelList = Arrays.stream(detachUtil.getJclRoleLevels().split(",")).map(Long::parseLong).collect(Collectors.toList()); - hrmResourceVOS = MapperProxyFactory.getProxy(ResourceMapper.class).listDetachAll(ids, jclRoleLevelList); + if (StringUtils.isBlank(detachUtil.getJclRoleLevels())) { + hrmResourceVOS = new ArrayList<>(); + } else { + List jclRoleLevelList = Arrays.stream(detachUtil.getJclRoleLevels().split(",")).map(Long::parseLong).collect(Collectors.toList()); + hrmResourceVOS = MapperProxyFactory.getProxy(ResourceMapper.class).listDetachAll(ids, jclRoleLevelList); + } } else { hrmResourceVOS = MapperProxyFactory.getProxy(ResourceMapper.class).listAll(ids); } From df0d688e6f3feda16a1f0cf03ed422a18891687f Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 3 Nov 2022 16:51:56 +0800 Subject: [PATCH 09/34] =?UTF-8?q?=E5=88=86=E6=9D=83BUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/service/impl/OrgChartServiceImpl.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java index 22c644f1..7e43d71b 100644 --- a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java @@ -55,7 +55,12 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { // 分部分权过滤 DetachUtil detachUtil = new DetachUtil(user.getUID()); if (detachUtil.isDETACH()) { - sql = "select distinct id, fnumber, fname, ftype from jcl_org_map where (ftype = 0 or (ftype = 1 and fobjid in(" + detachUtil.getJclRoleLevels() + "))) order by ftype , id"; + String jclRoleLevels = detachUtil.getJclRoleLevels(); + if (StringUtils.isNotBlank(jclRoleLevels)) { + sql = "select distinct id, fnumber, fname, ftype from jcl_org_map where (ftype = 0 or (ftype = 1 and fobjid in(" + jclRoleLevels + "))) order by ftype , id"; + } else { + sql = "select distinct id, fnumber, fname, ftype from jcl_org_map where ftype = 0 order by ftype , id"; + } } rs.executeQuery(sql); List> companylist = new ArrayList<>(); From b9ff329cebf72dc58670a74d3d3f3a65a4a15a8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=98ml=E2=80=99?= Date: Mon, 7 Nov 2022 09:54:02 +0800 Subject: [PATCH 10/34] =?UTF-8?q?=E8=99=9A=E6=8B=9F=E7=BB=84=E7=BB=87(?= =?UTF-8?q?=E5=BB=BA=E6=A8=A1)=E5=88=A0=E9=99=A4=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modeexpand/VODeleteModeExpand.java | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/src/weaver/formmode/organization/modeexpand/VODeleteModeExpand.java b/src/weaver/formmode/organization/modeexpand/VODeleteModeExpand.java index d0f44db7..3e4a46e3 100644 --- a/src/weaver/formmode/organization/modeexpand/VODeleteModeExpand.java +++ b/src/weaver/formmode/organization/modeexpand/VODeleteModeExpand.java @@ -28,22 +28,16 @@ public class VODeleteModeExpand extends AbstractModeExpandJavaCodeNew { modeid = Util.getIntValue(requestInfo.getWorkflowid()); if (billid > 0 && modeid > 0) { //------请在下面编写业务逻辑代码------ - String billids = (String) param.get("billids"); + String billids = (String) param.get("CheckedCheckboxIds"); String[] billidsTmp = billids.split(","); String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date()); for (String id : billidsTmp) { RecordSet rs = new RecordSet(); - rs.executeQuery("select id, fid, fecid, fname, ftype, forder, fparentid, fdate from uf_jcl_org_vir where id ='" + id + "'"); - RecordSet recordSet = new RecordSet(); - if (rs.next()) { - String ftype = rs.getString("ftype"); - String fdate = rs.getString("fdate"); - String delsql = "delete JCL_ORG_MAP where id=" + id + " and ftype='" + ftype + "' and fisvitual='1' and fdatebegin='" + fdate + "'"; - recordSet.execute(delsql); - String updatesql = "update JCL_ORG_MAP set fdateend=' " + new Date(OrganizationDateUtil.stringToDate(currentDate).getTime()) + - "' where id=" + id + " and ftype='" + ftype + "' and fisvitual='1' and fdateend > '" +fdate + "'"; - recordSet.execute(updatesql); - } + String delsql = "delete JCL_ORG_MAP where id=" + id + " and fisvitual='1'"; + rs.execute(delsql); + String updatesql = "update JCL_ORG_MAP set fdateend='" + new Date(OrganizationDateUtil.stringToDate(currentDate).getTime()) + + "' where id=" + id + " and fisvitual='1'"; + rs.execute(updatesql); } } } From dc347c755d4a350d83e1ce380188d41bf6cd0331 Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Tue, 8 Nov 2022 09:23:53 +0800 Subject: [PATCH 11/34] =?UTF-8?q?=E4=BA=BA=E5=91=98=E5=8D=A1=E7=89=87?= =?UTF-8?q?=E8=8F=9C=E5=8D=95=E6=9D=83=E9=99=90=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../personnelcard/CardAccessMapper.java | 6 ++- .../mapper/personnelcard/CardAccessMapper.xml | 49 +++++++++++++------ .../service/CardAccessService.java | 40 +++++++++++++++ .../service/impl/CardAccessServiceImpl.java | 43 ++++++++++++++-- 4 files changed, 119 insertions(+), 19 deletions(-) diff --git a/src/com/engine/organization/mapper/personnelcard/CardAccessMapper.java b/src/com/engine/organization/mapper/personnelcard/CardAccessMapper.java index 167e3844..77719953 100644 --- a/src/com/engine/organization/mapper/personnelcard/CardAccessMapper.java +++ b/src/com/engine/organization/mapper/personnelcard/CardAccessMapper.java @@ -5,7 +5,9 @@ import com.engine.organization.entity.personnelcard.po.CardAccessPO; import org.apache.ibatis.annotations.Param; import java.util.Collection; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @Author weaver_cl @@ -17,9 +19,11 @@ public interface CardAccessMapper { int insertIgnoreNull(CardAccessPO cardAccessPO); - int updateCardAccess(CardAccessPO cardAccessPO); + int saveCardAccess(@Param("dataList") List> dataList); int deleteByIds(@Param("ids") Collection ids); ManagerDetachPO selectById(@Param("id") Integer id); + + int updateTabName(@Param("name")String name,@Param("id") Integer id); } diff --git a/src/com/engine/organization/mapper/personnelcard/CardAccessMapper.xml b/src/com/engine/organization/mapper/personnelcard/CardAccessMapper.xml index f7f00d9a..43336a70 100644 --- a/src/com/engine/organization/mapper/personnelcard/CardAccessMapper.xml +++ b/src/com/engine/organization/mapper/personnelcard/CardAccessMapper.xml @@ -187,21 +187,35 @@ - - update jcl_org_cardaccess - - type_id=#{typeId}, - type_name=#{typeName}, - status=#{status}, - all_people=#{allPeople}, - all_superior=#{allSuperior}, - custom=#{custom}, - update_time=#{updateTime}, - - WHERE id = #{id} AND delete_type = 0 - + + + update jcl_org_cardaccess + + + status = #{item.status}, + + + all_people = #{item.allPeople}, + + + superior = #{item.superior}, + + + all_superior = #{item.allSuperior}, + + + custom = #{item.custom}, + + + update_time = #{item.updateTime} + + + where id = #{item.id} + + + UPDATE jcl_org_cardaccess SET delete_type = 1 @@ -214,7 +228,6 @@ - + + + + + UPDATE jcl_org_cardaccess + SET type_name = #{name} + WHERE id = #{id} + \ No newline at end of file diff --git a/src/com/engine/organization/service/CardAccessService.java b/src/com/engine/organization/service/CardAccessService.java index 521df12f..4f7b5890 100644 --- a/src/com/engine/organization/service/CardAccessService.java +++ b/src/com/engine/organization/service/CardAccessService.java @@ -1,5 +1,8 @@ package com.engine.organization.service; +import com.engine.organization.entity.personnelcard.po.CardAccessPO; + +import java.util.Collection; import java.util.Map; /** @@ -10,9 +13,46 @@ import java.util.Map; **/ public interface CardAccessService { + /** + * 列表接口 + * @return + */ Map tablePage(); + /** + * 页面权限 + * @return + */ Map hasRight(); + /** + * 列表保存 + * @param params + * @return + */ int save(Map params); + + + /** + * 删除 + * @param ids + * @return + */ + int deleteByIds(Collection ids); + + /** + * 新增 + * @param cardAccessPO + * @return + */ + int addData(CardAccessPO cardAccessPO); + + /** + * 更新tab名称 + * @param name + * @param id + * @return + */ + int updateTabName(String name,Integer id); + } diff --git a/src/com/engine/organization/service/impl/CardAccessServiceImpl.java b/src/com/engine/organization/service/impl/CardAccessServiceImpl.java index 99f1dee2..9464e517 100644 --- a/src/com/engine/organization/service/impl/CardAccessServiceImpl.java +++ b/src/com/engine/organization/service/impl/CardAccessServiceImpl.java @@ -4,11 +4,15 @@ import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.core.impl.Service; import com.engine.organization.component.OrganizationWeaTable; import com.engine.organization.entity.detach.vo.ManagerDetachVO; +import com.engine.organization.entity.personnelcard.po.CardAccessPO; +import com.engine.organization.mapper.personnelcard.CardAccessMapper; import com.engine.organization.service.CardAccessService; import com.engine.organization.util.HasRightUtil; +import com.engine.organization.util.db.MapperProxyFactory; +import weaver.general.Util; -import java.util.HashMap; -import java.util.Map; + +import java.util.*; /** * @Author weaver_cl @@ -20,6 +24,10 @@ public class CardAccessServiceImpl extends Service implements CardAccessService private static final String RIGHT_NAME = "CardAccess:All"; + private CardAccessMapper getCardAccessMapper() { + return MapperProxyFactory.getProxy(CardAccessMapper.class); + } + @Override public Map tablePage() { Map resultMap = new HashMap<>(); @@ -44,8 +52,35 @@ public class CardAccessServiceImpl extends Service implements CardAccessService @Override public int save(Map params) { - - return 0; + int rowNum = Util.getIntValue((String) params.get("rownum")); + List> dataList = new ArrayList<>(); + for (int i = 0; i < rowNum; i++) { + HashMap data = new HashMap<>(); + data.put("id",params.get("id_"+i)); + data.put("status",params.get("status_"+i)); + data.put("allPeople",params.get("all_people_"+i)); + data.put("superior",params.get("superior_"+i)); + data.put("allSuperior",params.get("all_superior_"+i)); + data.put("custom",params.get("custom"+i)); + data.put("updateTime",new Date()); + dataList.add(data); + } + return getCardAccessMapper().saveCardAccess(dataList); + } + + @Override + public int deleteByIds(Collection ids) { + return getCardAccessMapper().deleteByIds(ids); + } + + @Override + public int addData(CardAccessPO cardAccessPO) { + return getCardAccessMapper().insertIgnoreNull(cardAccessPO); + } + + @Override + public int updateTabName(String name,Integer id) { + return getCardAccessMapper().updateTabName(name,id); } From a82a41bf64b22b9a137fc08babacfb7d28953cd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=98ml=E2=80=99?= Date: Tue, 8 Nov 2022 15:17:23 +0800 Subject: [PATCH 12/34] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E6=9C=BA=E6=9E=84=E5=9B=BE=E8=99=9A=E6=8B=9F=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E4=B8=8D=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/modeexpand/VODeleteModeExpand.java | 10 ++++++---- .../formmode/organization/modeexpand/VOModeExpand.java | 6 ++++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/weaver/formmode/organization/modeexpand/VODeleteModeExpand.java b/src/weaver/formmode/organization/modeexpand/VODeleteModeExpand.java index 3e4a46e3..e99a02ee 100644 --- a/src/weaver/formmode/organization/modeexpand/VODeleteModeExpand.java +++ b/src/weaver/formmode/organization/modeexpand/VODeleteModeExpand.java @@ -17,7 +17,7 @@ import java.util.Map; public class VODeleteModeExpand extends AbstractModeExpandJavaCodeNew { public Map doModeExpand(Map param) { - Map result = new HashMap(); + Map result = new HashMap(); try { User user = (User) param.get("user"); int billid = -1;//数据id @@ -31,12 +31,14 @@ public class VODeleteModeExpand extends AbstractModeExpandJavaCodeNew { String billids = (String) param.get("CheckedCheckboxIds"); String[] billidsTmp = billids.split(","); String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date()); + RecordSet rs = new RecordSet(); + int st = 500000000; for (String id : billidsTmp) { - RecordSet rs = new RecordSet(); - String delsql = "delete JCL_ORG_MAP where id=" + id + " and fisvitual='1'"; + int nid = Integer.parseInt(id) + st; + String delsql = "delete from JCL_ORG_MAP where id=" + nid + " and fisvitual='1'"; rs.execute(delsql); String updatesql = "update JCL_ORG_MAP set fdateend='" + new Date(OrganizationDateUtil.stringToDate(currentDate).getTime()) + - "' where id=" + id + " and fisvitual='1'"; + "' where id=" + nid + " and fisvitual='1'"; rs.execute(updatesql); } } diff --git a/src/weaver/formmode/organization/modeexpand/VOModeExpand.java b/src/weaver/formmode/organization/modeexpand/VOModeExpand.java index adde8c2a..8f586888 100644 --- a/src/weaver/formmode/organization/modeexpand/VOModeExpand.java +++ b/src/weaver/formmode/organization/modeexpand/VOModeExpand.java @@ -41,6 +41,7 @@ public class VOModeExpand extends AbstractModeExpandJavaCodeNew { RecordSet recordSet = new RecordSet(); recordSet.executeQuery("select id, fid, fecid, fname, ftype, forder, fparentid, fdate from uf_jcl_org_vir where fid = '" + fid + "'"); JclOrgMap jclOrgMap = new JclOrgMap(); + int st = 500000000; if (recordSet.next()) { Integer ftype = Integer.valueOf(recordSet.getString("ftype")); jclOrgMap.setFType(ftype); @@ -50,7 +51,7 @@ public class VOModeExpand extends AbstractModeExpandJavaCodeNew { jclOrgMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(recordSet.getString("fdate")).getTime())); jclOrgMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime())); jclOrgMap.setFNumber(String.valueOf(modeid));//模块的数据编号 - jclOrgMap.setId(Integer.valueOf(recordSet.getString("id"))); + jclOrgMap.setId(Integer.valueOf(recordSet.getString("id")) + st); jclOrgMap.setFName(recordSet.getString("fname")); if (!"".equals(recordSet.getString("fparentid"))) { jclOrgMap.setFParentId(Integer.valueOf(recordSet.getString("fparentid"))); @@ -65,9 +66,10 @@ public class VOModeExpand extends AbstractModeExpandJavaCodeNew { } } } + // 编辑修改 if (iscreate.equals("2")) { RecordSet rs = new RecordSet(); - String delsql = "delete JCL_ORG_MAP where id=" + jclOrgMap.getId() + " and ftype='" + jclOrgMap.getFType() + "' and fisvitual='1' and fdatebegin='" + jclOrgMap.getFDateBegin() + "'"; + String delsql = "delete from JCL_ORG_MAP where id=" + jclOrgMap.getId() + " and ftype='" + jclOrgMap.getFType() + "' and fisvitual='1' and fdatebegin='" + jclOrgMap.getFDateBegin() + "'"; rs.execute(delsql); String updatesql = "update JCL_ORG_MAP set fdateend='" + jclOrgMap.getFDateBegin() + "' where id=" + jclOrgMap.getId() + " and ftype='" + jclOrgMap.getFType() + "' and fisvitual='1' and fdateend > '" + jclOrgMap.getFDateBegin() + "'"; rs.execute(updatesql); From c03a7c599a021dfa0222dbae197df0bffc3c3ef5 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 8 Nov 2022 15:21:29 +0800 Subject: [PATCH 13/34] =?UTF-8?q?=E5=B2=97=E4=BD=8D=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E3=80=81=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84=E5=9B=BE=20BUG?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/JobBrowserService.java | 18 ++++++------- .../organization/entity/job/bo/JobBO.java | 2 +- .../service/impl/HrmResourceServiceImpl.java | 12 +++++++-- .../service/impl/OrgChartServiceImpl.java | 26 +++++-------------- .../util/relation/ResourceSyncUtil.java | 3 +++ 5 files changed, 29 insertions(+), 32 deletions(-) diff --git a/src/com/api/browser/service/impl/JobBrowserService.java b/src/com/api/browser/service/impl/JobBrowserService.java index 7a598cbd..ba85855d 100644 --- a/src/com/api/browser/service/impl/JobBrowserService.java +++ b/src/com/api/browser/service/impl/JobBrowserService.java @@ -147,26 +147,26 @@ public class JobBrowserService extends BrowserService { List jclRoleLevelList; if (StringUtils.isNotBlank(detachUtil.getJclRoleLevels())) { jclRoleLevelList = Arrays.stream(detachUtil.getJclRoleLevels().split(",")).map(Long::parseLong).collect(Collectors.toList()); - }else{ + } else { jclRoleLevelList = new ArrayList<>(); } List treeNodes = new ArrayList<>(); if (StringUtils.isBlank(params.getId())) { // 集团总部 SearchTree topGroup = SearchTreeUtil.getTopGroup(); - if(detachUtil.isDETACH()&& StringUtils.isNotBlank(detachUtil.getJclRoleLevels())) { + if (detachUtil.isDETACH()) { + topGroup.setIsParent(StringUtils.isNotBlank(detachUtil.getJclRoleLevels())); + } else { topGroup.setIsParent(true); - }else{ - topGroup.setIsParent(false); } treeNodes.add(topGroup); } else { // 分部存在下级的ID List compHasSubs; if (detachUtil.isDETACH()) { - if(CollectionUtils.isNotEmpty(jclRoleLevelList)) { + if (CollectionUtils.isNotEmpty(jclRoleLevelList)) { compHasSubs = MapperProxyFactory.getProxy(CompMapper.class).hasDetachSubs(jclRoleLevelList); - }else{ + } else { compHasSubs = new ArrayList<>(); } } else { @@ -178,13 +178,13 @@ public class JobBrowserService extends BrowserService { if ("0".equals(params.getId())) { List compList; if (detachUtil.isDETACH()) { - if(CollectionUtils.isNotEmpty(jclRoleLevelList)) { + if (CollectionUtils.isNotEmpty(jclRoleLevelList)) { compList = MapperProxyFactory.getProxy(CompMapper.class).getCompsByIds(jclRoleLevelList); detachUtil.filterCompanyList(compList); - }else{ + } else { compList = new ArrayList<>(); } - }else{ + } else { compList = MapperProxyFactory.getProxy(CompMapper.class).listParent(); } // 获取顶层分部 diff --git a/src/com/engine/organization/entity/job/bo/JobBO.java b/src/com/engine/organization/entity/job/bo/JobBO.java index 8447b659..c1fb690b 100644 --- a/src/com/engine/organization/entity/job/bo/JobBO.java +++ b/src/com/engine/organization/entity/job/bo/JobBO.java @@ -152,7 +152,7 @@ public class JobBO { SearchTree tree = new SearchTree(); tree.setCanClick(true); tree.setCanceled(false); - tree.setIcon("icon-coms-Branch"); + tree.setIcon("icon-coms-content-o"); tree.setId(item.getId().toString()); tree.setIsParent(false); tree.setIsVirtual("0"); diff --git a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java index 2e053b41..78d31a5a 100644 --- a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java +++ b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java @@ -1,5 +1,6 @@ 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; @@ -10,6 +11,7 @@ import com.engine.hrm.entity.RuleCodeType; import com.engine.hrm.util.face.HrmFaceCheckManager; import com.engine.organization.component.OrganizationWeaTable; import com.engine.organization.entity.DeleteParam; +import com.engine.organization.entity.browser.po.CustomBrowserBean; import com.engine.organization.entity.codesetting.po.CodeRulePO; import com.engine.organization.entity.commom.RecordInfo; import com.engine.organization.entity.company.bo.CompBO; @@ -320,6 +322,12 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic List conditionItems = new ArrayList<>(); SearchConditionItem lastNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "姓名", "lastName"); SearchConditionItem jobTitleItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位", "666", "jobTitle", ""); + BrowserBean browserBean = jobTitleItem.getBrowserConditionParam(); + String s = JSONObject.toJSONString(browserBean); + CustomBrowserBean customBrowserBean = JSONObject.parseObject(s, CustomBrowserBean.class); + customBrowserBean.setHasLeftTree(true); + customBrowserBean.setLeftToSearchKey("treeKey"); + jobTitleItem.setBrowserConditionParam(customBrowserBean); SearchConditionItem companyIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "分部", "164", "ecCompany", ""); SearchConditionItem departmentIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "部门", "4", "ecDepartment", ""); SearchConditionItem telephoneItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "办公电话", "telephone"); @@ -607,7 +615,7 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic for (DepartmentPO departmentPO : filterDeparts) { buildParentDepts(departmentPO, builderDeparts); } - List departmentList = DepartmentBO.buildSetToSearchTree(builderDeparts, false); + List departmentList = DepartmentBO.buildSetToSearchTree(builderDeparts); List deptTrees = SearchTreeUtil.builderTreeMode(departmentList); List searchTrees = SearchTreeUtil.builderTreeMode(departmentList, jobTrees); // 添加部门的上级分部 @@ -661,7 +669,7 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic for (DepartmentPO departmentPO : filterDeparts) { buildParentDepts(departmentPO, builderDeparts); } - return SearchTreeUtil.builderTreeMode(DepartmentBO.buildSetToSearchTree(builderDeparts, false), jobTrees); + return SearchTreeUtil.builderTreeMode(DepartmentBO.buildSetToSearchTree(builderDeparts), jobTrees); } private void buildParentJobs(JobPO jobPO, Set builderJobs) { diff --git a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java index 7e43d71b..269ed0b4 100644 --- a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java @@ -156,7 +156,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { findCompanyItemByParantId(id, currentLevel + 1, level, rs, list, whereSql, currentLevel + 1 <= Integer.parseInt(level)); // 分部数据,构建层级关系 - reBuildTreeList(list); + reBuildTreeList(list, root); result.put("api_status", true); result.put("data", list); @@ -289,7 +289,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { findUserItemByParantId(id, currentLevel + 1, level, rs, list, whereSql, currentLevel + 1 <= Integer.parseInt(level)); // 分部数据,构建层级关系 - reBuildTreeList(list); + reBuildTreeList(list, root); result.put("api_status", true); result.put("data", list); @@ -327,20 +327,6 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { currentList.add(item); } - //for (Map stringObjectMap : currentList) { - // if ("4".equals(stringObjectMap.get("ftype"))) { // 员工信息 - // rs.executeQuery("select id, mobile, home_address from jcl_org_hrmresource where id = ? ", stringObjectMap.get("fobjid")); - // if (rs.next()) { - // stringObjectMap.put("mobile", rs.getString("mobile")); - // stringObjectMap.put("address", rs.getString("home_address")); - // } - // rs.executeQuery("select dept_name from jcl_org_hrmresource hrm left join jcl_org_dept d on hrm.department_id = d.id where hrm.id =? ", stringObjectMap.get("fobjid")); - // if (rs.next()) { - // stringObjectMap.put("department", rs.getString("dept_name")); - // } - // - // } - //} Map result = new HashMap<>(); result.put("api_status", true); @@ -493,13 +479,13 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { } - private void reBuildTreeList(List> list) { + private void reBuildTreeList(List> list, String root) { // 分部数据,构建层级关系 Set idSet = list.stream().filter(item -> "1".equals(Util.null2String(item.get("ftype")))).map(item -> Util.null2String(item.get("id"))).collect(Collectors.toSet()); list.forEach(item -> { - if ("1".equals(Util.null2String(item.get("ftype"))) && !idSet.contains(Util.null2String(item.get("parentId")))) { - item.put("parentId", "0"); - item.put("fobjparentId", "0"); + if (!root.equals(Util.null2String(item.get("id"))) && "1".equals(Util.null2String(item.get("ftype"))) && !idSet.contains(Util.null2String(item.get("parentId")))) { + item.put("parentId", root); + item.put("fobjparentId", root); } }); } diff --git a/src/com/engine/organization/util/relation/ResourceSyncUtil.java b/src/com/engine/organization/util/relation/ResourceSyncUtil.java index 3cc17921..2bc9399d 100644 --- a/src/com/engine/organization/util/relation/ResourceSyncUtil.java +++ b/src/com/engine/organization/util/relation/ResourceSyncUtil.java @@ -1059,6 +1059,9 @@ public class ResourceSyncUtil { convertParams.put("telephone",params.get("telephone")); convertParams.put("email",params.get("email")); + // 直接上级 + convertParams.put("managerid", params.get("manager_id")); + return convertParams; } From a3a0ce8046ad65ba6f1411c8fedb1c41d636c16e Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 8 Nov 2022 17:26:59 +0800 Subject: [PATCH 14/34] =?UTF-8?q?=E5=B2=97=E4=BD=8D=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E3=80=81=E4=BA=BA=E5=91=98=E5=AD=97=E6=AE=B5=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/JobBrowserService.java | 5 ++++- .../entity/extend/po/ExtendInfoPO.java | 4 ++++ .../mapper/extend/ExtendInfoMapper.xml | 4 ++++ .../service/impl/FieldDefinedServiceImpl.java | 22 +++++++++++++++---- 4 files changed, 30 insertions(+), 5 deletions(-) diff --git a/src/com/api/browser/service/impl/JobBrowserService.java b/src/com/api/browser/service/impl/JobBrowserService.java index ba85855d..0eea6cbd 100644 --- a/src/com/api/browser/service/impl/JobBrowserService.java +++ b/src/com/api/browser/service/impl/JobBrowserService.java @@ -180,7 +180,10 @@ public class JobBrowserService extends BrowserService { if (detachUtil.isDETACH()) { if (CollectionUtils.isNotEmpty(jclRoleLevelList)) { compList = MapperProxyFactory.getProxy(CompMapper.class).getCompsByIds(jclRoleLevelList); - detachUtil.filterCompanyList(compList); + // 处理上下级关系 + Set collectIds = compList.stream().map(CompPO::getId).collect(Collectors.toSet()); + compList.removeIf(item->collectIds.contains(item.getParentCompany())); + } else { compList = new ArrayList<>(); } diff --git a/src/com/engine/organization/entity/extend/po/ExtendInfoPO.java b/src/com/engine/organization/entity/extend/po/ExtendInfoPO.java index 74d5da3e..d2e62151 100644 --- a/src/com/engine/organization/entity/extend/po/ExtendInfoPO.java +++ b/src/com/engine/organization/entity/extend/po/ExtendInfoPO.java @@ -111,6 +111,10 @@ public class ExtendInfoPO { private Integer isSystemDefault; + private Integer isModify; + + private Integer checkProps; + private Long creator; private int deleteType; private Date createTime; diff --git a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml index cbc8cd91..b396f218 100644 --- a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml +++ b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml @@ -21,6 +21,8 @@ + + @@ -50,6 +52,8 @@ , t.custom_value , t.show_order , t.is_system_default + , t.ismodify + , t.check_props , t.creator , t.delete_type , t.create_time diff --git a/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java b/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java index e8393256..d3e80d6b 100644 --- a/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java +++ b/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java @@ -347,9 +347,13 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ recordInfo.put("fieldname", fieldName); recordInfo.put("fieldType", fieldType); recordInfo.put("fieldTypeObj", fieldTypeObj); + // 启用是否勾选 recordInfo.put("enable", Util.null2String(extendInfoPO.getIsenable())); + // 必填是否勾选 recordInfo.put("required", Util.null2String(extendInfoPO.getIsrequired())); - recordInfo.put("isModify", Util.null2String(extendInfoPO.getEditShow())); + // 允许修改是否勾选 + recordInfo.put("isModify", Util.null2String(extendInfoPO.getIsModify())); + // 勾选框是否可选 recordInfo.put("viewAttr", isUsed || isSysField ? 1 : 2); recordInfo.put("key", "" + showOrder); recordInfo.put("fieldidrowKey", fieldIdRowKey); @@ -363,9 +367,19 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ //允许个人修改字段check框属性 Map checkPropsModifyInfo = new HashMap<>(); - checkPropsEnableInfo.put("viewAttr", !isSysField ? 2 : 1); - checkPropsModifyInfo.put("viewAttr", !isSysField ? 2 : 1); - checkPropsRequiredInfo.put("viewAttr", !isSysField ? 2 : 1); + + // 1:只读,2:可编辑, + Integer checkProps = extendInfoPO.getCheckProps(); + if (null == checkProps) { + checkProps = 1; + } + // TODO + // 启用列是否可编辑 + checkPropsEnableInfo.put("viewAttr", checkProps == 3 ? 2 : 1); + // 必填列是否可编辑 + checkPropsRequiredInfo.put("viewAttr", checkProps == 3 ? 2 : 1); + //允许个人修改列是否可编辑 + checkPropsModifyInfo.put("viewAttr", checkProps); checkPropsInfo.put("enable", checkPropsEnableInfo); checkPropsInfo.put("required", checkPropsRequiredInfo); From 99f849f35010211072bb134f2e1067b0d700cacd Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Wed, 9 Nov 2022 09:45:19 +0800 Subject: [PATCH 15/34] =?UTF-8?q?bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/表结构SQL/MySQL.sql | 2 +- .../entity/personnelcard/po/CardAccessPO.java | 4 ++-- .../mapper/personnelcard/CardAccessMapper.xml | 14 +++++------ .../service/impl/CardAccessServiceImpl.java | 3 ++- .../service/impl/FieldDefinedServiceImpl.java | 24 +++++++++++++++++++ .../service/impl/PostInfoServiceImpl.java | 6 ++--- 6 files changed, 39 insertions(+), 14 deletions(-) diff --git a/docs/表结构SQL/MySQL.sql b/docs/表结构SQL/MySQL.sql index 56e888df..2ec98e4d 100644 --- a/docs/表结构SQL/MySQL.sql +++ b/docs/表结构SQL/MySQL.sql @@ -565,7 +565,7 @@ create table JCL_ORG_DETACH ( create table JCL_ORG_CARDACCESS ( id int auto_increment not null, type_id int not null, - type_name int not null, + type_name varchar(50) not null, status int null, all_people int null, superior int null, diff --git a/src/com/engine/organization/entity/personnelcard/po/CardAccessPO.java b/src/com/engine/organization/entity/personnelcard/po/CardAccessPO.java index 1d8f3e74..7a7d07c1 100644 --- a/src/com/engine/organization/entity/personnelcard/po/CardAccessPO.java +++ b/src/com/engine/organization/entity/personnelcard/po/CardAccessPO.java @@ -24,7 +24,7 @@ public class CardAccessPO { private Integer typeId; - private Integer typeName; + private String typeName; private Integer status; @@ -32,7 +32,7 @@ public class CardAccessPO { private Integer superior; - private String allSuperior; + private Integer allSuperior; private String custom; diff --git a/src/com/engine/organization/mapper/personnelcard/CardAccessMapper.xml b/src/com/engine/organization/mapper/personnelcard/CardAccessMapper.xml index 43336a70..2f751b30 100644 --- a/src/com/engine/organization/mapper/personnelcard/CardAccessMapper.xml +++ b/src/com/engine/organization/mapper/personnelcard/CardAccessMapper.xml @@ -42,7 +42,7 @@ type_id, - + type_name, @@ -77,7 +77,7 @@ #{typeId}, - + #{typeName}, @@ -119,7 +119,7 @@ type_id, - + type_name, @@ -154,7 +154,7 @@ #{typeId}, - + #{typeName}, @@ -220,7 +220,7 @@ UPDATE jcl_org_cardaccess SET delete_type = 1 WHERE delete_type = 0 - AND id IN + AND type_id IN #{id} @@ -233,7 +233,7 @@ from jcl_org_cardaccess t WHERE delete_type = 0 - AND id = #{id} + AND type_id = #{id} @@ -241,6 +241,6 @@ UPDATE jcl_org_cardaccess SET type_name = #{name} - WHERE id = #{id} + WHERE type_id = #{id} \ No newline at end of file diff --git a/src/com/engine/organization/service/impl/CardAccessServiceImpl.java b/src/com/engine/organization/service/impl/CardAccessServiceImpl.java index 9464e517..51ab0c7d 100644 --- a/src/com/engine/organization/service/impl/CardAccessServiceImpl.java +++ b/src/com/engine/organization/service/impl/CardAccessServiceImpl.java @@ -5,6 +5,7 @@ import com.engine.core.impl.Service; import com.engine.organization.component.OrganizationWeaTable; import com.engine.organization.entity.detach.vo.ManagerDetachVO; import com.engine.organization.entity.personnelcard.po.CardAccessPO; +import com.engine.organization.entity.personnelcard.vo.CardAccessVO; import com.engine.organization.mapper.personnelcard.CardAccessMapper; import com.engine.organization.service.CardAccessService; import com.engine.organization.util.HasRightUtil; @@ -31,7 +32,7 @@ public class CardAccessServiceImpl extends Service implements CardAccessService @Override public Map tablePage() { Map resultMap = new HashMap<>(); - OrganizationWeaTable table = new OrganizationWeaTable<>(user, ManagerDetachVO.class); + OrganizationWeaTable table = new OrganizationWeaTable<>(user, CardAccessVO.class); String sqlWhere = " where delete_type = 0"; table.setSqlwhere(sqlWhere); WeaResultMsg result = new WeaResultMsg(false); diff --git a/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java b/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java index e8393256..c071064e 100644 --- a/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java +++ b/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java @@ -3,6 +3,7 @@ package com.engine.organization.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.SelectOptionParam; @@ -17,11 +18,13 @@ import com.engine.organization.entity.extend.po.ExtendInfoPO; import com.engine.organization.entity.extend.po.ExtendTitlePO; import com.engine.organization.entity.fieldset.param.FieldTypeTreeParam; import com.engine.organization.entity.fieldset.vo.TypeTreeVO; +import com.engine.organization.entity.personnelcard.po.CardAccessPO; import com.engine.organization.enums.DeleteTypeEnum; import com.engine.organization.enums.ModuleTypeEnum; import com.engine.organization.mapper.extend.ExtendGroupMapper; import com.engine.organization.mapper.extend.ExtendInfoMapper; import com.engine.organization.mapper.extend.ExtendTitleMapper; +import com.engine.organization.service.CardAccessService; import com.engine.organization.service.FieldDefinedService; import com.engine.organization.util.HasRightUtil; import com.engine.organization.util.OrganizationAssert; @@ -29,6 +32,7 @@ import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import weaver.general.Util; +import weaver.hrm.User; import weaver.systeminfo.SystemEnv; import weaver.workflow.field.BrowserComInfo; @@ -56,6 +60,11 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ return MapperProxyFactory.getProxy(ExtendInfoMapper.class); } + private CardAccessService getCardAccessService(User user) { + return ServiceUtil.getService(CardAccessServiceImpl.class,user); + + } + @Override public List getTree(ModuleTypeEnum moduleTypeEnum) { Integer extendType = moduleTypeEnum.getValue(); @@ -208,8 +217,22 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ //默认新增title ExtendTitlePO extendTitlePO = buildExtendTitleType(extendGroupPO, 1); MapperProxyFactory.getProxy(ExtendTitleMapper.class).insertIgnoreNull(extendTitlePO); + CardAccessPO cardAccessPO = CardAccessPO.builder() + .typeId(extendGroupPO.getId().intValue()) + .typeName(fieldTypeTreeParam.getName()) + .status(1) + .allPeople(0) + .superior(0) + .allSuperior(0) + .creator((long)user.getUID()) + .deleteType(0) + .createTime(new Date()) + .updateTime(new Date()) + .build(); + getCardAccessService(user).addData(cardAccessPO); } else { MapperProxyFactory.getProxy(ExtendGroupMapper.class).update(fieldTypeTreeParam.getId(), fieldTypeTreeParam.getName()); + getCardAccessService(user).updateTabName(fieldTypeTreeParam.getName(),fieldTypeTreeParam.getId().intValue()); } } @@ -222,6 +245,7 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ if (CollectionUtils.isEmpty(titlesByGroupID)) { // 删除整个分组 getExtendGroupMapper().delete(param.getGroupType()); + getCardAccessService(user).deleteByIds(DeleteParam.builder().ids(param.getGroupType().toString()).build().getIds()); return 1; } return 0; diff --git a/src/com/engine/organization/service/impl/PostInfoServiceImpl.java b/src/com/engine/organization/service/impl/PostInfoServiceImpl.java index ac8d9817..e887cff8 100644 --- a/src/com/engine/organization/service/impl/PostInfoServiceImpl.java +++ b/src/com/engine/organization/service/impl/PostInfoServiceImpl.java @@ -128,11 +128,11 @@ public class PostInfoServiceImpl extends Service implements PostInfoService { SearchConditionItem nameItem = OrganizationFormItemUtil.inputItem(user, 2, 17, 3, 50, "名称", "postInfoName"); nameItem.setRules("required|string"); // 权限 - SearchConditionItem authorityItem = OrganizationFormItemUtil.textareaItem(user, 2, 17, true, 2, 50, "权限", "postInfoAuthority"); + SearchConditionItem authorityItem = OrganizationFormItemUtil.textareaItem(user, 2, 17, true, 2, 0, "权限", "postInfoAuthority"); // 责任 - SearchConditionItem dutyItem = OrganizationFormItemUtil.textareaItem(user, 2, 17, true, 2, 50, "责任", "postInfoDuty"); + SearchConditionItem dutyItem = OrganizationFormItemUtil.textareaItem(user, 2, 17, true, 2, 0, "责任", "postInfoDuty"); // 资格 - SearchConditionItem qualificationItem = OrganizationFormItemUtil.textareaItem(user, 2, 17, true, 2, 50, "资格", "postInfoQualification"); + SearchConditionItem qualificationItem = OrganizationFormItemUtil.textareaItem(user, 2, 17, true, 2, 0, "资格", "postInfoQualification"); // 职务分类 SearchConditionItem postIdBrowser = OrganizationFormItemUtil.browserItem(user, 2, 17, 3, false, "职务分类", "161", "postId", "postBrowser"); postIdBrowser.setRules("required|string"); From b0021dae20022873159d7b2f35d86a49e0c9ceb5 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 9 Nov 2022 11:07:55 +0800 Subject: [PATCH 16/34] =?UTF-8?q?=E5=AD=97=E6=AE=B5=E5=85=81=E8=AE=B8?= =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/extend/bo/ExtendInfoBO.java | 2 +- .../entity/extend/po/ExtendInfoPO.java | 12 +++++++++ .../mapper/extend/ExtendInfoMapper.xml | 23 ++++++++++++++++ .../service/impl/FieldDefinedServiceImpl.java | 12 ++++++--- .../service/impl/ImportCommonServiceImpl.java | 27 ------------------- 5 files changed, 44 insertions(+), 32 deletions(-) diff --git a/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java b/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java index 20baf30a..e850b3d3 100644 --- a/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java +++ b/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java @@ -102,8 +102,8 @@ public class ExtendInfoBO { .extendGroupId(extendGroupId) .isenable("1".equals(infoFieldParam.getEnable()) ? 1 : 0) .isrequired("1".equals(infoFieldParam.getRequired()) ? 1 : 0) + .isModify("1".equals(infoFieldParam.getIsModify()) ? 1 : 0) .listShow(1) - // .editShow("0".equals(infoFieldParam.getIsModify()) ? 0 : 1) .editShow(1) .addShow(1) .browserShow(1) diff --git a/src/com/engine/organization/entity/extend/po/ExtendInfoPO.java b/src/com/engine/organization/entity/extend/po/ExtendInfoPO.java index d2e62151..da0033b1 100644 --- a/src/com/engine/organization/entity/extend/po/ExtendInfoPO.java +++ b/src/com/engine/organization/entity/extend/po/ExtendInfoPO.java @@ -111,10 +111,22 @@ public class ExtendInfoPO { private Integer isSystemDefault; + /** + * 允许个人修改 + */ private Integer isModify; + /** + * 允许个人修改属性 + */ + private Integer modifyProps; + + /** + * 启用、必填check框属性 + */ private Integer checkProps; + private Long creator; private int deleteType; private Date createTime; diff --git a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml index b396f218..dab93331 100644 --- a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml +++ b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml @@ -22,6 +22,7 @@ + @@ -53,6 +54,7 @@ , t.show_order , t.is_system_default , t.ismodify + , t.modify_props , t.check_props , t.creator , t.delete_type @@ -130,6 +132,11 @@ is_system_default, + + ismodify, + + check_props, + modify_props, @@ -198,6 +205,11 @@ #{isSystemDefault}, + + #{isModify}, + + 2, + 2, @@ -274,6 +286,11 @@ is_system_default, + + ismodify, + + check_props, + modify_props, @@ -342,6 +359,11 @@ #{isSystemDefault}, + + #{isModify}, + + 2, + 2, @@ -355,6 +377,7 @@ field_name_desc=#{fieldNameDesc}, isenable=#{isenable}, isrequired=#{isrequired}, + ismodify=#{isModify}, show_order=#{showOrder}, custom_value=#{customValue}, diff --git a/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java b/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java index d3e80d6b..b81fbbbb 100644 --- a/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java +++ b/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java @@ -373,13 +373,17 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ if (null == checkProps) { checkProps = 1; } - // TODO + // 1:只读,2:可编辑, + Integer modifyProps = extendInfoPO.getModifyProps(); + if (null == modifyProps) { + modifyProps = 1; + } // 启用列是否可编辑 - checkPropsEnableInfo.put("viewAttr", checkProps == 3 ? 2 : 1); + checkPropsEnableInfo.put("viewAttr", checkProps); // 必填列是否可编辑 - checkPropsRequiredInfo.put("viewAttr", checkProps == 3 ? 2 : 1); + checkPropsRequiredInfo.put("viewAttr", checkProps); //允许个人修改列是否可编辑 - checkPropsModifyInfo.put("viewAttr", checkProps); + checkPropsModifyInfo.put("viewAttr", modifyProps); checkPropsInfo.put("enable", checkPropsEnableInfo); checkPropsInfo.put("required", checkPropsRequiredInfo); diff --git a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java index 325d80b4..f27e0f99 100644 --- a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java +++ b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java @@ -141,9 +141,7 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ List infoPOList = getExtendInfoMapper().listFields(extendType, "", tableName, ExtendInfoOperateType.LIST.getValue(), "1"); List filterList = infoPOList.stream().filter(item -> !excludeFields.contains(item.getFieldName()) && 6 != item.getControlType()).collect(Collectors.toList()); List fieldDatas = filterList.stream().map(item -> FieldTransferParam.builder().id(item.getId().toString()).name(item.getFieldNameDesc()).build()).collect(Collectors.toList()); - //fieldDatas.addAll(0, includeFields); List selectedKeys = filterList.stream().filter(item -> (0 == item.getIsSystemDefault()) && 1 == item.getIsrequired()).map(item -> item.getId().toString()).collect(Collectors.toList()); - //selectedKeys.addAll(0, selectedList); returnMaps.put("data", fieldDatas); returnMaps.put("selectedKeys", selectedKeys); @@ -203,37 +201,12 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ returnMap.put("pId", jobImport(operateType, excelFile)); break; case "resource": - //Long importHistoryId = saveImportLog("resource", operateType); - //HrmImportAdaptExcelE9 importAdapt = new HrmImportAdaptExcelE9(); - //FileUploadToPath fu = new FileUploadToPath(request); - // - //List errorInfo = importAdapt.creatImportMap(fu); - // - ////如果读取数据和验证模板没有发生错误 - //if (errorInfo.isEmpty()) { - // Map hrMap = importAdapt.getHrmImportMap(); - // - // HrmImportProcessE9 importProcess = new HrmImportProcessE9(); - // importProcess.init(request, importHistoryId); - // - // - // importProcess.processMap(hrMap); - //} else { - // for (String s : errorInfo) { - // MapperProxyFactory.getProxy(JclImportHistoryDetailMapper.class).insertHistoryDetail(JclImportHistoryDetailPO.builder().pid(importHistoryId).operateDetail(Util.null2String(s)).status("0").build()); - // } - //} - //returnMap.put("pId", importHistoryId); - returnMap.put("pId", hrmResourceImport(operateType, excelFile,keyField)); break; default: break; } } - - // 列表 - // importstatus return returnMap; } From 466ba43b311da38f5a1d2f9c3aee29c73112de08 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 9 Nov 2022 16:58:09 +0800 Subject: [PATCH 17/34] =?UTF-8?q?=E4=BA=BA=E5=91=98=E5=8D=A1=E7=89=87?= =?UTF-8?q?=E7=B1=BB=E5=88=AB=E5=B1=95=E7=A4=BA=E6=9D=83=E9=99=90=E6=8E=A7?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{User.java => UserCard.java} | 2 +- .../personnelcard/CardAccessMapper.java | 4 +- .../personnelcard/PersonnelCardMapper.java | 4 +- .../personnelcard/PersonnelCardMapper.xml | 2 +- .../service/impl/CardAccessServiceImpl.java | 90 ++++++++++++++++--- .../service/impl/FieldDefinedServiceImpl.java | 38 ++++---- .../impl/HrmPersonnelCardServiceImpl.java | 9 +- .../service/impl/HrmResourceServiceImpl.java | 28 +++--- .../thread/CompanyTriggerRunnable.java | 4 +- .../thread/DepartmentTriggerRunnable.java | 4 +- .../thread/HrmResourceTriggerRunnable.java | 4 +- .../transmethod/HrmResourceTransMethod.java | 4 +- .../util/relation/ResourceSyncUtil.java | 2 +- .../hrmimport/HrmImportProcessE9.java | 5 -- 14 files changed, 135 insertions(+), 65 deletions(-) rename src/com/engine/organization/entity/personnelcard/{User.java => UserCard.java} (98%) diff --git a/src/com/engine/organization/entity/personnelcard/User.java b/src/com/engine/organization/entity/personnelcard/UserCard.java similarity index 98% rename from src/com/engine/organization/entity/personnelcard/User.java rename to src/com/engine/organization/entity/personnelcard/UserCard.java index d72d1e5b..c286cd50 100644 --- a/src/com/engine/organization/entity/personnelcard/User.java +++ b/src/com/engine/organization/entity/personnelcard/UserCard.java @@ -18,7 +18,7 @@ import org.apache.commons.lang3.StringUtils; @AllArgsConstructor @NoArgsConstructor @Builder -public class User { +public class UserCard { private Integer id; private String ecId; private String image; diff --git a/src/com/engine/organization/mapper/personnelcard/CardAccessMapper.java b/src/com/engine/organization/mapper/personnelcard/CardAccessMapper.java index 77719953..adae6a81 100644 --- a/src/com/engine/organization/mapper/personnelcard/CardAccessMapper.java +++ b/src/com/engine/organization/mapper/personnelcard/CardAccessMapper.java @@ -1,13 +1,11 @@ package com.engine.organization.mapper.personnelcard; -import com.engine.organization.entity.detach.po.ManagerDetachPO; import com.engine.organization.entity.personnelcard.po.CardAccessPO; import org.apache.ibatis.annotations.Param; import java.util.Collection; import java.util.HashMap; import java.util.List; -import java.util.Map; /** * @Author weaver_cl @@ -23,7 +21,7 @@ public interface CardAccessMapper { int deleteByIds(@Param("ids") Collection ids); - ManagerDetachPO selectById(@Param("id") Integer id); + CardAccessPO selectById(@Param("id") Integer id); int updateTabName(@Param("name")String name,@Param("id") Integer id); } diff --git a/src/com/engine/organization/mapper/personnelcard/PersonnelCardMapper.java b/src/com/engine/organization/mapper/personnelcard/PersonnelCardMapper.java index 8671c926..48828b3f 100644 --- a/src/com/engine/organization/mapper/personnelcard/PersonnelCardMapper.java +++ b/src/com/engine/organization/mapper/personnelcard/PersonnelCardMapper.java @@ -1,7 +1,7 @@ package com.engine.organization.mapper.personnelcard; import com.engine.organization.entity.personnelcard.ResourceBaseTab; -import com.engine.organization.entity.personnelcard.User; +import com.engine.organization.entity.personnelcard.UserCard; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -18,7 +18,7 @@ public interface PersonnelCardMapper { * @param id * @return */ - User getUserById(@Param("id") Long id); + UserCard getUserById(@Param("id") Long id); /** * 获取自定义显示栏目 diff --git a/src/com/engine/organization/mapper/personnelcard/PersonnelCardMapper.xml b/src/com/engine/organization/mapper/personnelcard/PersonnelCardMapper.xml index 535c9bd6..a9184400 100644 --- a/src/com/engine/organization/mapper/personnelcard/PersonnelCardMapper.xml +++ b/src/com/engine/organization/mapper/personnelcard/PersonnelCardMapper.xml @@ -1,7 +1,7 @@ - + diff --git a/src/com/engine/organization/service/impl/CardAccessServiceImpl.java b/src/com/engine/organization/service/impl/CardAccessServiceImpl.java index 51ab0c7d..8929e6a7 100644 --- a/src/com/engine/organization/service/impl/CardAccessServiceImpl.java +++ b/src/com/engine/organization/service/impl/CardAccessServiceImpl.java @@ -1,17 +1,23 @@ package com.engine.organization.service.impl; import com.cloudstore.eccom.result.WeaResultMsg; +import com.engine.common.service.HrmCommonService; +import com.engine.common.service.impl.HrmCommonServiceImpl; import com.engine.core.impl.Service; import com.engine.organization.component.OrganizationWeaTable; -import com.engine.organization.entity.detach.vo.ManagerDetachVO; import com.engine.organization.entity.personnelcard.po.CardAccessPO; import com.engine.organization.entity.personnelcard.vo.CardAccessVO; +import com.engine.organization.exception.OrganizationRunTimeException; import com.engine.organization.mapper.personnelcard.CardAccessMapper; import com.engine.organization.service.CardAccessService; import com.engine.organization.util.HasRightUtil; +import com.engine.organization.util.OrganizationAssert; import com.engine.organization.util.db.MapperProxyFactory; +import org.apache.commons.lang.StringUtils; +import weaver.general.BaseBean; import weaver.general.Util; - +import weaver.hrm.User; +import weaver.hrm.resource.ResourceComInfo; import java.util.*; @@ -25,10 +31,15 @@ public class CardAccessServiceImpl extends Service implements CardAccessService private static final String RIGHT_NAME = "CardAccess:All"; - private CardAccessMapper getCardAccessMapper() { + private static CardAccessMapper getCardAccessMapper() { return MapperProxyFactory.getProxy(CardAccessMapper.class); } + public CardAccessServiceImpl(User user) { + super(); + this.user = user; + } + @Override public Map tablePage() { Map resultMap = new HashMap<>(); @@ -57,13 +68,13 @@ public class CardAccessServiceImpl extends Service implements CardAccessService List> dataList = new ArrayList<>(); for (int i = 0; i < rowNum; i++) { HashMap data = new HashMap<>(); - data.put("id",params.get("id_"+i)); - data.put("status",params.get("status_"+i)); - data.put("allPeople",params.get("all_people_"+i)); - data.put("superior",params.get("superior_"+i)); - data.put("allSuperior",params.get("all_superior_"+i)); - data.put("custom",params.get("custom"+i)); - data.put("updateTime",new Date()); + data.put("id", params.get("id_" + i)); + data.put("status", params.get("status_" + i)); + data.put("allPeople", params.get("all_people_" + i)); + data.put("superior", params.get("superior_" + i)); + data.put("allSuperior", params.get("all_superior_" + i)); + data.put("custom", params.get("custom" + i)); + data.put("updateTime", new Date()); dataList.add(data); } return getCardAccessMapper().saveCardAccess(dataList); @@ -80,9 +91,64 @@ public class CardAccessServiceImpl extends Service implements CardAccessService } @Override - public int updateTabName(String name,Integer id) { - return getCardAccessMapper().updateTabName(name,id); + public int updateTabName(String name, Integer id) { + return getCardAccessMapper().updateTabName(name, id); } + /** + * 判断当前人员、是否有查看当前数据、当前模块的权限 + * + * @param typeId 人员卡片分组ID + * @param userId 当前卡片人员EcId + * @return + */ + public boolean hasGroupAccess(Integer typeId, String userId) { + // 人员信息有误,返回false + OrganizationAssert.notBlank(userId, "未获取到对应人员"); + + // 系统管理员、查看本人卡片直接返回true + if (user.isAdmin() || userId.equals(String.valueOf(user.getUID()))) { + return true; + } + + boolean hasAccess = false; + CardAccessPO cardAccessPO = getCardAccessMapper().selectById(typeId); + OrganizationAssert.notNull(cardAccessPO, "未查询到对应卡片权限,"); + // 所有人,返回true + if (1 == cardAccessPO.getAllPeople()) { + return true; + } + + try { + ResourceComInfo resourceComInfo = new ResourceComInfo(); + // 上级 + if ("1".equals(Util.null2String(cardAccessPO.getSuperior()))) { + String managerID = resourceComInfo.getManagerID(userId); + hasAccess = Arrays.asList(managerID.split(",")).contains(Util.null2String(user.getUID())); + } + + // 所有上级 + if (!hasAccess || "1".equals(Util.null2String(cardAccessPO.getAllSuperior()))) { + String managersIDs = resourceComInfo.getManagersIDs(userId); + hasAccess = hasAccess || Arrays.asList(managersIDs.split(",")).contains(Util.null2String(user.getUID())); + } + } catch (Exception e) { + new BaseBean().writeLog(e); + throw new OrganizationRunTimeException("人员卡片权限"); + } + // 角色判断 + if (!hasAccess || StringUtils.isNotBlank(cardAccessPO.getCustom())) { + List accessRoleIds = Arrays.asList(cardAccessPO.getCustom().split(",")); + HrmCommonService hrmCommonService = new HrmCommonServiceImpl(); + List roleInfo = hrmCommonService.getRoleInfo(user.getUID()); + for (Object o : roleInfo) { + Map roleDetailMap = (Map) o; + int roleid = Util.getIntValue(roleDetailMap.get("roleid"), -1); + // 判断角色是否满足,角色等级是否满足 + hasAccess = hasAccess || accessRoleIds.contains(Util.null2String(roleid)); + } + } + return hasAccess; + } } diff --git a/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java b/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java index 4602f78b..e2af6eab 100644 --- a/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java +++ b/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java @@ -61,7 +61,7 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ } private CardAccessService getCardAccessService(User user) { - return ServiceUtil.getService(CardAccessServiceImpl.class,user); + return ServiceUtil.getService(CardAccessServiceImpl.class, user); } @@ -217,22 +217,26 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ //默认新增title ExtendTitlePO extendTitlePO = buildExtendTitleType(extendGroupPO, 1); MapperProxyFactory.getProxy(ExtendTitleMapper.class).insertIgnoreNull(extendTitlePO); - CardAccessPO cardAccessPO = CardAccessPO.builder() - .typeId(extendGroupPO.getId().intValue()) - .typeName(fieldTypeTreeParam.getName()) - .status(1) - .allPeople(0) - .superior(0) - .allSuperior(0) - .creator((long)user.getUID()) - .deleteType(0) - .createTime(new Date()) - .updateTime(new Date()) - .build(); - getCardAccessService(user).addData(cardAccessPO); + if (4 == moduleTypeEnum.getValue()) { + CardAccessPO cardAccessPO = CardAccessPO.builder() + .typeId(extendGroupPO.getId().intValue()) + .typeName(fieldTypeTreeParam.getName()) + .status(1) + .allPeople(0) + .superior(0) + .allSuperior(0) + .creator((long) user.getUID()) + .deleteType(0) + .createTime(new Date()) + .updateTime(new Date()) + .build(); + getCardAccessService(user).addData(cardAccessPO); + } } else { MapperProxyFactory.getProxy(ExtendGroupMapper.class).update(fieldTypeTreeParam.getId(), fieldTypeTreeParam.getName()); - getCardAccessService(user).updateTabName(fieldTypeTreeParam.getName(),fieldTypeTreeParam.getId().intValue()); + if (4 == moduleTypeEnum.getValue()) { + getCardAccessService(user).updateTabName(fieldTypeTreeParam.getName(), fieldTypeTreeParam.getId().intValue()); + } } } @@ -245,7 +249,9 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ if (CollectionUtils.isEmpty(titlesByGroupID)) { // 删除整个分组 getExtendGroupMapper().delete(param.getGroupType()); - getCardAccessService(user).deleteByIds(DeleteParam.builder().ids(param.getGroupType().toString()).build().getIds()); + if (4 == param.getGroupType()) { + getCardAccessService(user).deleteByIds(DeleteParam.builder().ids(param.getGroupType().toString()).build().getIds()); + } return 1; } return 0; diff --git a/src/com/engine/organization/service/impl/HrmPersonnelCardServiceImpl.java b/src/com/engine/organization/service/impl/HrmPersonnelCardServiceImpl.java index 45d93e4b..d6e182dd 100644 --- a/src/com/engine/organization/service/impl/HrmPersonnelCardServiceImpl.java +++ b/src/com/engine/organization/service/impl/HrmPersonnelCardServiceImpl.java @@ -73,8 +73,7 @@ public class HrmPersonnelCardServiceImpl extends Service implements HrmPersonnel @Override public Map getPersonnelCard(Long uId) { Map resultMap = new HashMap<>(); - User userInfo; - //TODO 人员表之前关联关系,处理UID + UserCard userInfo; if (null == uId) { uId = getHrmResourceMapper().getJclResourceId(Util.null2String(user.getUID())); } @@ -88,7 +87,11 @@ public class HrmPersonnelCardServiceImpl extends Service implements HrmPersonnel // 统计报表 Statistical statistical = getStatistical(ecResourceId); List extendGroupList = getExtendGroupMapper().listByType(4, IS_SHOW); - // 获取前三个模块的信息 + // 过滤卡片权限 + CardAccessServiceImpl cardAccessService = new CardAccessServiceImpl(user); + extendGroupList.removeIf(item -> !cardAccessService.hasGroupAccess(item.getId().intValue(), ecResourceId)); + + // 获取所有模块的信息 List formItemList = new ArrayList<>(); for (ExtendGroupPO groupPO : extendGroupList) { FormItem formItem = getFormItem(groupPO, uId); diff --git a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java index 78d31a5a..4d2aa903 100644 --- a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java +++ b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java @@ -348,15 +348,17 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic @Override public Map getHasRight() { Map btnDatas = new HashMap<>(); - ArrayList topMenuList = new ArrayList<>(); - ArrayList rightMenuList = new ArrayList<>(); - topMenuList.add(MenuBtn.builder().isBatch("1").isTop("1").menuFun("new").menuIcon("icon-coms-New-Flow").menuName("新建人员").type("BTN_Addnew").build()); - btnDatas.put("topMenu", topMenuList); - rightMenuList.add(MenuBtn.builder().isBatch("1").isTop("1").menuFun("new").menuIcon("icon-coms-New-Flow").menuName("新建人员").type("BTN_Addnew").build()); - rightMenuList.add(MenuBtn.builder().isBatch("0").isTop("0").menuFun("custom").menuIcon("icon-coms-task-list").menuName("显示列定制").type("BTN_COLUMN").build()); - rightMenuList.add(MenuBtn.rightMenu_btnLog()); - btnDatas.put("rightMenu", rightMenuList); - btnDatas.put("hasRight", HasRightUtil.hasRight(user, RIGHT_NAME, true)); + if (HasRightUtil.hasRight(user, RIGHT_NAME, true)) { + ArrayList topMenuList = new ArrayList<>(); + ArrayList rightMenuList = new ArrayList<>(); + topMenuList.add(MenuBtn.builder().isBatch("1").isTop("1").menuFun("new").menuIcon("icon-coms-New-Flow").menuName("新建人员").type("BTN_Addnew").build()); + btnDatas.put("topMenu", topMenuList); + rightMenuList.add(MenuBtn.builder().isBatch("1").isTop("1").menuFun("new").menuIcon("icon-coms-New-Flow").menuName("新建人员").type("BTN_Addnew").build()); + rightMenuList.add(MenuBtn.builder().isBatch("0").isTop("0").menuFun("custom").menuIcon("icon-coms-task-list").menuName("显示列定制").type("BTN_COLUMN").build()); + rightMenuList.add(MenuBtn.rightMenu_btnLog()); + btnDatas.put("rightMenu", rightMenuList); + } + btnDatas.put("hasRight", true); return btnDatas; } @@ -631,7 +633,7 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic Map allMaps = allCompanys.stream().collect(Collectors.toMap(CompPO::getId, item -> item, (k1, k2) -> k1)); Set builderComps = new HashSet<>(); for (CompPO compPO : filterComps) { - buildParentComps(compPO, builderComps,allMaps); + buildParentComps(compPO, builderComps, allMaps); } return SearchTreeUtil.builderTreeMode(CompBO.buildSetToSearchTree(builderComps), searchTrees); } @@ -706,11 +708,11 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic * @param compPO * @param builderComps */ - private void buildParentComps(CompPO compPO, Set builderComps,Map allMaps) { + private void buildParentComps(CompPO compPO, Set builderComps, Map allMaps) { builderComps.add(compPO); CompPO parentComp = allMaps.get(compPO.getParentCompany()); if (null != parentComp) { - buildParentComps(parentComp, builderComps,allMaps); + buildParentComps(parentComp, builderComps, allMaps); } } @@ -736,7 +738,7 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic // 人员状态 String status = Util.null2String(params.get("status")); - if(StringUtils.isBlank(status)){ + if (StringUtils.isBlank(status)) { params.put("status", "0"); } } diff --git a/src/com/engine/organization/thread/CompanyTriggerRunnable.java b/src/com/engine/organization/thread/CompanyTriggerRunnable.java index 0f6a757d..278ba515 100644 --- a/src/com/engine/organization/thread/CompanyTriggerRunnable.java +++ b/src/com/engine/organization/thread/CompanyTriggerRunnable.java @@ -4,7 +4,7 @@ import com.engine.organization.entity.company.po.CompPO; import com.engine.organization.entity.hrmresource.po.HrmResourcePO; import com.engine.organization.entity.job.po.JobPO; import com.engine.organization.entity.map.JclOrgMap; -import com.engine.organization.entity.personnelcard.User; +import com.engine.organization.entity.personnelcard.UserCard; import com.engine.organization.entity.staff.po.StaffPO; import com.engine.organization.enums.ModuleTypeEnum; import com.engine.organization.mapper.comp.CompMapper; @@ -77,7 +77,7 @@ public class CompanyTriggerRunnable implements Runnable { jclMap.setFLeaderJobId(hrmResourcePO.getJobTitle().intValue()); jclMap.setFLeaderSt(hrmResourcePO.getJobGrade()); jclMap.setFLeaderLv(hrmResourcePO.getJobLevel()); - String image = User.builder().image(hrmResourcePO.getResourceImageId()).build().getImage(); + String image = UserCard.builder().image(hrmResourcePO.getResourceImageId()).build().getImage(); jclMap.setFLeaderImg(image); if (null != hrmResourcePO.getJobTitle()) { JobPO jobById = MapperProxyFactory.getProxy(JobMapper.class).getJobById(hrmResourcePO.getJobTitle()); diff --git a/src/com/engine/organization/thread/DepartmentTriggerRunnable.java b/src/com/engine/organization/thread/DepartmentTriggerRunnable.java index 12c573e9..402833c0 100644 --- a/src/com/engine/organization/thread/DepartmentTriggerRunnable.java +++ b/src/com/engine/organization/thread/DepartmentTriggerRunnable.java @@ -5,7 +5,7 @@ import com.engine.organization.entity.hrmresource.po.HrmResourcePO; import com.engine.organization.entity.job.po.JobPO; import com.engine.organization.entity.logview.bo.FieldBaseEquator; import com.engine.organization.entity.map.JclOrgMap; -import com.engine.organization.entity.personnelcard.User; +import com.engine.organization.entity.personnelcard.UserCard; import com.engine.organization.entity.staff.po.StaffPO; import com.engine.organization.enums.ModuleTypeEnum; import com.engine.organization.mapper.department.DepartmentMapper; @@ -113,7 +113,7 @@ public class DepartmentTriggerRunnable implements Runnable { jclMap.setFLeaderJobId(hrmResourcePO.getJobTitle().intValue()); jclMap.setFLeaderSt(hrmResourcePO.getJobGrade()); jclMap.setFLeaderLv(hrmResourcePO.getJobLevel()); - String image = User.builder().image(hrmResourcePO.getResourceImageId()).build().getImage(); + String image = UserCard.builder().image(hrmResourcePO.getResourceImageId()).build().getImage(); jclMap.setFLeaderImg(image); if (null != hrmResourcePO.getJobTitle()) { JobPO jobById = MapperProxyFactory.getProxy(JobMapper.class).getJobById(hrmResourcePO.getJobTitle()); diff --git a/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java b/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java index 283aa32b..0a19fe93 100644 --- a/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java +++ b/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java @@ -3,7 +3,7 @@ package com.engine.organization.thread; import com.engine.organization.entity.hrmresource.po.HrmResourcePO; import com.engine.organization.entity.job.po.JobPO; import com.engine.organization.entity.map.JclOrgMap; -import com.engine.organization.entity.personnelcard.User; +import com.engine.organization.entity.personnelcard.UserCard; import com.engine.organization.mapper.hrmresource.HrmResourceMapper; import com.engine.organization.mapper.jclorgmap.JclOrgMapper; import com.engine.organization.mapper.job.JobMapper; @@ -66,7 +66,7 @@ public class HrmResourceTriggerRunnable implements Runnable { jclMap.setUuid(hrmResource.getUuid()); delete = hrmResource.getStatus() < 4 ? 0 : 1; // 展示为花名册上传的照片 - String image = User.builder().image(hrmResource.getResourceImageId()).build().getImage(); + String image = UserCard.builder().image(hrmResource.getResourceImageId()).build().getImage(); jclMap.setFLeaderImg(image); jclMap.setFLeaderName(hrmResource.getLastName()); jclMap.setFLeaderJobId(hrmResource.getJobTitle().intValue()); diff --git a/src/com/engine/organization/transmethod/HrmResourceTransMethod.java b/src/com/engine/organization/transmethod/HrmResourceTransMethod.java index 3717084c..a575dc77 100644 --- a/src/com/engine/organization/transmethod/HrmResourceTransMethod.java +++ b/src/com/engine/organization/transmethod/HrmResourceTransMethod.java @@ -2,10 +2,10 @@ package com.engine.organization.transmethod; import com.engine.organization.mapper.comp.CompMapper; import com.engine.organization.mapper.department.DepartmentMapper; -import com.engine.organization.mapper.hrmresource.HrmResourceMapper; import com.engine.organization.mapper.hrmresource.SystemDataMapper; import com.engine.organization.mapper.job.JobMapper; import com.engine.organization.util.db.MapperProxyFactory; +import weaver.hrm.User; /** * @author:dxfeng @@ -26,7 +26,7 @@ public class HrmResourceTransMethod { } public static String getManagerName(String managerId) { - return MapperProxyFactory.getProxy(HrmResourceMapper.class).getLastNameById(Long.parseLong(managerId)); + return new User(Integer.parseInt(managerId)).getLastname(); } public static String getScDepartmentName(String departmentId) { diff --git a/src/com/engine/organization/util/relation/ResourceSyncUtil.java b/src/com/engine/organization/util/relation/ResourceSyncUtil.java index 2bc9399d..9013b01b 100644 --- a/src/com/engine/organization/util/relation/ResourceSyncUtil.java +++ b/src/com/engine/organization/util/relation/ResourceSyncUtil.java @@ -979,7 +979,7 @@ public class ResourceSyncUtil { } public static Map convertEcResourceParams(Map params){ - // TODO 先查询原有EC人员信息,再封装传参 + // 先查询原有EC人员信息,再封装传参 Map convertParams = new HashMap<>(); String jclResourceId = Util.null2String(params.get("id")); String ecResourceId = ""; diff --git a/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java b/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java index e2467e79..fdeffea8 100644 --- a/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java +++ b/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java @@ -780,8 +780,6 @@ public class HrmImportProcessE9 extends BaseBean { flag = false; if (updateWorkData(vo.getWorkFields(), vo.getWorkFieldsValue(), id)) //添加工作字段信息 flag = false; - // TODO 更新聚才林相关字段 - // CusFieldDataTrigger.run((long) id); } /*添加人员缓存,人员默认按id显示顺序,HrmResource_Trigger_Insert 人员共享 入职维护项目状态*/ @@ -1394,9 +1392,6 @@ public class HrmImportProcessE9 extends BaseBean { if (updateWorkData(vo.getWorkFields().trim(), vo.getWorkFieldsValue(), keyMap.get(key))) flag = false; - //TODO 更新聚才林相关字段 - //CusFieldDataTrigger.run((long) keyMap.get(key)); - /*update HrmResource_Trigger */ if (flag) { recordSet.executeSql("select id from HrmResource_Trigger where id=" + hrmId); From ddafc854b68e68d2d822ebbb439c4c4445bdc07d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=98ml=E2=80=99?= Date: Wed, 9 Nov 2022 18:48:42 +0800 Subject: [PATCH 18/34] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E6=9C=BA=E6=9E=84=E5=9B=BE=E8=99=9A=E6=8B=9F=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E4=B8=8D=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ImportCommonServiceImpl.java | 268 +++++++++++++++++- 1 file changed, 260 insertions(+), 8 deletions(-) diff --git a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java index 325d80b4..e633c5a1 100644 --- a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java +++ b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java @@ -20,6 +20,9 @@ import com.engine.organization.entity.jclimport.po.JclImportHistoryDetailPO; import com.engine.organization.entity.jclimport.po.JclImportHistoryPO; import com.engine.organization.entity.jclimport.vo.JclImportHistoryDetailVO; import com.engine.organization.entity.job.po.JobPO; +import com.engine.organization.entity.scheme.po.GradePO; +import com.engine.organization.entity.scheme.po.LevelPO; +import com.engine.organization.entity.scheme.po.SchemePO; import com.engine.organization.enums.LogModuleNameEnum; import com.engine.organization.enums.OperateTypeEnum; import com.engine.organization.enums.OrgImportEnum; @@ -32,6 +35,9 @@ import com.engine.organization.mapper.hrmresource.SystemDataMapper; import com.engine.organization.mapper.jclimport.JclImportHistoryDetailMapper; import com.engine.organization.mapper.jclimport.JclImportHistoryMapper; 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.service.ImportCommonService; import com.engine.organization.thread.*; import com.engine.organization.util.HasRightUtil; @@ -81,7 +87,20 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ private static final String HRM_DEPARTMENT = "hrmdepartment"; private static final String HRM_RESOURCE = "hrmresource"; + static Map importFieldsMap; + static { + importFieldsMap = new HashMap<>(); + importFieldsMap.put("方案编号", ExtendInfoPO.builder().tableName("jcl_org_scheme").fieldName("scheme_no").fieldNameDesc("方案编号").isrequired(1).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); + importFieldsMap.put("方案名称", ExtendInfoPO.builder().tableName("jcl_org_scheme").fieldName("scheme_name").fieldNameDesc("方案名称").isrequired(1).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); + importFieldsMap.put("职级编号", ExtendInfoPO.builder().tableName("jcl_org_grade").fieldName("grade_no").fieldNameDesc("职级编号").isrequired(1).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); + importFieldsMap.put("职级名称", ExtendInfoPO.builder().tableName("jcl_org_grade").fieldName("grade_name").fieldNameDesc("职级名称").isrequired(1).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); + importFieldsMap.put("职等编号", ExtendInfoPO.builder().tableName("jcl_org_level").fieldName("level_no").fieldNameDesc("职等编号").isrequired(1).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); + importFieldsMap.put("职等名称", ExtendInfoPO.builder().tableName("jcl_org_level").fieldName("level_name").fieldNameDesc("职等名称").isrequired(1).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); + importFieldsMap.put("方案说明", ExtendInfoPO.builder().tableName("jcl_org_scheme").fieldName("scheme_description").fieldNameDesc("方案说明").isrequired(0).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); + importFieldsMap.put("职等说明", ExtendInfoPO.builder().tableName("jcl_org_level").fieldName("level_description").fieldNameDesc("职等说明").isrequired(0).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); + importFieldsMap.put("职级说明", ExtendInfoPO.builder().tableName("jcl_org_grade").fieldName("grade_description").fieldNameDesc("职级说明").isrequired(0).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); + } private ExtendInfoMapper getExtendInfoMapper() { return MapperProxyFactory.getProxy(ExtendInfoMapper.class); } @@ -126,6 +145,10 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ excludeFields.add("job_grade"); excludeFields.add("job_level"); break; + case "joblevel": + extendType = "0"; + tableName = "JCL_ORG_SCHEME"; + break; default: errorMsg = "未找到对应的导入类型,请确认"; break; @@ -138,14 +161,33 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ return returnMaps; } - List infoPOList = getExtendInfoMapper().listFields(extendType, "", tableName, ExtendInfoOperateType.LIST.getValue(), "1"); - List filterList = infoPOList.stream().filter(item -> !excludeFields.contains(item.getFieldName()) && 6 != item.getControlType()).collect(Collectors.toList()); - List fieldDatas = filterList.stream().map(item -> FieldTransferParam.builder().id(item.getId().toString()).name(item.getFieldNameDesc()).build()).collect(Collectors.toList()); - //fieldDatas.addAll(0, includeFields); - List selectedKeys = filterList.stream().filter(item -> (0 == item.getIsSystemDefault()) && 1 == item.getIsrequired()).map(item -> item.getId().toString()).collect(Collectors.toList()); - //selectedKeys.addAll(0, selectedList); - returnMaps.put("data", fieldDatas); - returnMaps.put("selectedKeys", selectedKeys); + if("joblevel".equals(importType)){ + List fieldDatas = new ArrayList<>(); + fieldDatas.add(FieldTransferParam.builder().id("1").name("方案编号").build()); + fieldDatas.add(FieldTransferParam.builder().id("2").name("方案名称").build()); + fieldDatas.add(FieldTransferParam.builder().id("3").name("职级编号").build()); + fieldDatas.add(FieldTransferParam.builder().id("4").name("职级名称").build()); + fieldDatas.add(FieldTransferParam.builder().id("5").name("职等编号").build()); + fieldDatas.add(FieldTransferParam.builder().id("6").name("职等名称").build()); + fieldDatas.add(FieldTransferParam.builder().id("7").name("方案说明").build()); + fieldDatas.add(FieldTransferParam.builder().id("8").name("职级说明").build()); + fieldDatas.add(FieldTransferParam.builder().id("9").name("职等说明").build()); + List selectedKeys = new ArrayList<>(); + for(int i=0;i infoPOList = getExtendInfoMapper().listFields(extendType, "", tableName, ExtendInfoOperateType.LIST.getValue(), "1"); + List filterList = infoPOList.stream().filter(item -> !excludeFields.contains(item.getFieldName()) && 6 != item.getControlType()).collect(Collectors.toList()); + + List fieldDatas = filterList.stream().map(item -> FieldTransferParam.builder().id(item.getId().toString()).name(item.getFieldNameDesc()).build()).collect(Collectors.toList()); + List selectedKeys = filterList.stream().filter(item -> (0 == item.getIsSystemDefault()) && 1 == item.getIsrequired()).map(item -> item.getId().toString()).collect(Collectors.toList()); + returnMaps.put("data", fieldDatas); + returnMaps.put("selectedKeys", selectedKeys); + } return returnMaps; } @@ -169,6 +211,9 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ case "resource": returnMap.put("condition", getResourceImportForm(templatePath)); break; + case "joblevel": + returnMap.put("condition", getJobTitleImportForm(templatePath)); + break; default: returnMap.put("status", "-1"); returnMap.put("message", "请选择合适的导入类型"); @@ -227,6 +272,9 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ returnMap.put("pId", hrmResourceImport(operateType, excelFile,keyField)); break; + case "joblevel": + returnMap.put("pId", jobLevelImport(operateType, excelFile)); + break; default: break; } @@ -1445,6 +1493,210 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ return importHistoryId; } + /** + * 方案职等职级导入 + */ + private Long jobLevelImport(String operateType, String excelFile){ + + Long importHistoryId = saveImportLog("joblevel", operateType); + JclImportHistoryDetailPO historyDetailPO; + + ImageFileManager manager = new ImageFileManager(); + manager.getImageFileInfoById(Util.getIntValue(excelFile)); + XSSFWorkbook workbook; + try { + workbook = new XSSFWorkbook(manager.getInputStream()); + } catch (IOException e) { + throw new RuntimeException(e); + } + // 当前sheet + XSSFSheet sheetAt = workbook.getSheetAt(0); + int lastRow = sheetAt.getLastRowNum(); + OrganizationAssert.isTrue(lastRow > 0, "导入数据为空"); + short lastCellNum = sheetAt.getRow(0).getLastCellNum(); + List extendInfoPOS = new ArrayList<>(); + + // 遍历每一行数据 + nextRow: + for (int i = 0; i <= lastRow; i++) { + historyDetailPO = new JclImportHistoryDetailPO(); + historyDetailPO.setPid(importHistoryId); + XSSFRow row = sheetAt.getRow(i); + // 组装待处理数据 + Map map = new HashMap<>(); + SchemePO schemePO = new SchemePO(); + SchemePO schemeNew = null; + GradePO gradePO = new GradePO(); + GradePO gradeNew = null; + LevelPO levelPO = new LevelPO(); + LevelPO levelNew = null; + + historyDetailPO.setRowNums(String.valueOf(i + 1)); + for (int cellIndex = 0; cellIndex < lastCellNum; cellIndex++) { + XSSFCell cell = row.getCell((short) cellIndex); + String cellValue = getCellValue(cell).trim(); + if (i == 0) { + // 首行 初始化字段信息 + ExtendInfoPO extendInfoPO = importFieldsMap.get(cellValue); + extendInfoPOS.add(extendInfoPO); + }else{ + ExtendInfoPO infoPO = extendInfoPOS.get(cellIndex); + // 数据校验 + if (infoPO.getIsrequired() == 1 && StringUtils.isBlank(cellValue)) { + historyDetailPO.setOperateDetail(infoPO.getFieldNameDesc() + "为必填项"); + historyDetailPO.setStatus("0"); + saveImportDetailLog(historyDetailPO); + continue nextRow; + } + + Object reallyValue; + try { + // 数据格式转换 + reallyValue = getReallyValue(infoPO, cellValue); + } catch (Exception e) { + historyDetailPO.setOperateDetail(cellValue + "转换失败"); + historyDetailPO.setStatus("0"); + saveImportDetailLog(historyDetailPO); + continue nextRow; + } + if (StringUtils.isNotBlank(cellValue) && StringUtils.isBlank(Util.null2String(reallyValue)) && !"ec_company".equals(infoPO.getFieldName()) && !"ec_department".equals(infoPO.getFieldName())) { + historyDetailPO.setOperateDetail(infoPO.getFieldNameDesc() + "数据转换失败,未找到对应数据"); + historyDetailPO.setStatus("0"); + saveImportDetailLog(historyDetailPO); + continue nextRow; + } + map.put(infoPO.getFieldName(), reallyValue); + // 方案 + if("scheme_no".equals(infoPO.getFieldName())){ + List schemePOS = MapperProxyFactory.getProxy(SchemeMapper.class).listByNo(Util.null2String(reallyValue)); + if(schemePOS.size()>0){ + historyDetailPO.setOperateDetail("方案编号"+reallyValue+"与原有编号重复"); + historyDetailPO.setStatus("0"); + saveImportDetailLog(historyDetailPO); + continue nextRow; + } + } + + // 职等 +// if ("level_no".equals(infoPO.getFieldName())){ +// List levelPOS = MapperProxyFactory.getProxy(LevelMapper.class).listByNo(Util.null2String(reallyValue)); +// if(levelPOS.size()>0){ +// historyDetailPO.setOperateDetail("职等编号"+reallyValue+"与原有编号重复"); +// historyDetailPO.setStatus("0"); +// saveImportDetailLog(historyDetailPO); +// continue nextRow; +// } +// } + + // 职级 +// if("grade_no".equals(infoPO.getFieldName())){ +// List gradePOS = MapperProxyFactory.getProxy(GradeMapper.class).listByNo(Util.null2String(reallyValue)); +// if(gradePOS.size()>0){ +// historyDetailPO.setOperateDetail("职级编号"+reallyValue+"与原有编号重复"); +// historyDetailPO.setStatus("0"); +// saveImportDetailLog(historyDetailPO); +// continue nextRow; +// } +// } + } + } + // 校验、数据交互 + if (i == 0){ + continue; + } + String schemeNo = (String) map.get("scheme_no"); + //Long schemeId = MapperProxyFactory.getProxy(SchemeMapper.class) + if("add".equals(operateType)){ + + map.put("creator", user.getUID()); + map.put("delete_type", 0); + Date currDate = new Date(); + map.put("create_time", currDate); + map.put("update_time", currDate); + // 禁用表示为空,默认启用 + map.put("forbidden_tag", 0); + map.put("is_used", 1); +// param = JSONObject.toJavaObject((JSON) JSONObject.toJSON(map), StaffSearchParam.class); + + } + schemePO.setSchemeNo((String)map.get("scheme_no")); + schemePO.setSchemeName((String)map.get("scheme_name")); + schemePO.setSchemeDescription((String)map.get("scheme_description")); + schemePO.setForbiddenTag((int)map.get("forbidden_tag")); + schemePO.setIsUsed(1); + schemePO.setCreator((long) user.getUID()); + schemePO.setDeleteType((int)map.get("delete_type")); + schemePO.setCreateTime((Date) map.get("create_time")); + schemePO.setUpdateTime((Date) map.get("update_time")); + + schemeNew = MapperProxyFactory.getProxy(SchemeMapper.class).getSchemeByNo(schemePO.getSchemeNo()); + if (schemeNew==null){ + MapperProxyFactory.getProxy(SchemeMapper.class).insertIgnoreNull(schemePO); + }else{ + historyDetailPO.setOperateDetail("方案编号"+schemePO.getSchemeNo()+"与原有编号重复"); + historyDetailPO.setStatus("0"); + saveImportDetailLog(historyDetailPO); + } + + // 新增完成后,再次插入 + schemeNew = MapperProxyFactory.getProxy(SchemeMapper.class).getSchemeByNo(schemePO.getSchemeNo()); + levelPO.setLevelNo((String) map.get("level_no")); + levelPO.setLevelName((String) map.get("level_name")); + levelPO.setDescription((String) map.get("level_description")); + //关联方案id + levelPO.setSchemeId(schemeNew.getId()); + levelPO.setForbiddenTag((int) map.get("forbidden_tag")); + levelPO.setIsUsed(1); + levelPO.setCreator((long) user.getUID()); + levelPO.setDeleteType((int)map.get("delete_type")); + levelPO.setCreateTime((Date) map.get("create_time")); + levelPO.setUpdateTime((Date) map.get("update_time")); + + levelNew = MapperProxyFactory.getProxy(LevelMapper.class).getLevelByNoAndSid(levelPO.getLevelNo(),schemeNew.getId()); + if(levelNew==null){ + MapperProxyFactory.getProxy(LevelMapper.class).insertIgnoreNull(levelPO); + } + + levelNew = MapperProxyFactory.getProxy(LevelMapper.class).getLevelByNoAndSid(levelPO.getLevelNo(),schemeNew.getId()); + gradePO.setGradeNo((String) map.get("grade_no")); + gradePO.setGradeName((String) map.get("grade_name")); + gradePO.setDescription((String) map.get("grade_description")); + // 关联方案id + gradePO.setSchemeId(schemeNew.getId()); + // 关联职等id + gradePO.setLevelId(String.valueOf(levelNew.getId())); + gradePO.setGradeNo((String) map.get("grade_no")); + gradePO.setForbiddenTag((int) map.get("forbidden_tag")); + gradePO.setIsUsed(1); + gradePO.setCreator((long) user.getUID()); + gradePO.setDeleteType((int)map.get("delete_type")); + gradePO.setCreateTime((Date) map.get("create_time")); + gradePO.setUpdateTime((Date) map.get("update_time")); + + + gradeNew = MapperProxyFactory.getProxy(GradeMapper.class).getGradeByNoAndSid(gradePO.getGradeNo(),gradePO.getSchemeId()); + if (gradeNew != null) { + //职级已存在,重新拼接level_id + gradePO.setLevelId(gradeNew.getLevelId()+","+levelNew.getId()); + + gradePO.setId(gradeNew.getId()); + gradePO.setCreateTime(null); + gradePO.setUpdateTime(new Date()); + MapperProxyFactory.getProxy(GradeMapper.class).updateGrade(gradePO); + }else{ + MapperProxyFactory.getProxy(GradeMapper.class).insertIgnoreNull(gradePO); + } + + + + historyDetailPO.setOperateDetail("添加成功"); + historyDetailPO.setStatus("1"); + saveImportDetailLog(historyDetailPO); + + + } + return importHistoryId; + } /** * 读取表格文本内容 From 0e41f08327eca8ee4c9874bd5c8d32fd8a372b9d Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 9 Nov 2022 18:50:39 +0800 Subject: [PATCH 19/34] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E5=9B=BE=E6=90=9C=E7=B4=A2=E4=B8=8B=E6=8B=89=E6=A1=86=E3=80=81?= =?UTF-8?q?=E9=9B=86=E5=9B=A2=E8=B4=9F=E8=B4=A3=E4=BA=BABUG=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/OrgChartServiceImpl.java | 79 +++++++++++++++---- 1 file changed, 65 insertions(+), 14 deletions(-) diff --git a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java index 269ed0b4..0a39f75d 100644 --- a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java @@ -50,30 +50,30 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { item.put("companyname", rs.getString("companyname")); fclasslist.add(item); } - String sql = "select distinct id, fnumber, fname, ftype from jcl_org_map where ftype in (0, 1) order by ftype , id "; + String sql = "select distinct id, fnumber, fname, ftype from jcl_org_map where ftype in (0, 1) order by ftype , id,fdateend desc "; // 分部分权过滤 DetachUtil detachUtil = new DetachUtil(user.getUID()); if (detachUtil.isDETACH()) { String jclRoleLevels = detachUtil.getJclRoleLevels(); if (StringUtils.isNotBlank(jclRoleLevels)) { - sql = "select distinct id, fnumber, fname, ftype from jcl_org_map where (ftype = 0 or (ftype = 1 and fobjid in(" + jclRoleLevels + "))) order by ftype , id"; + sql = "select distinct id, fnumber, fname, ftype from jcl_org_map where (ftype = 0 or (ftype = 1 and fobjid in(" + jclRoleLevels + "))) order by ftype , id,fdateend desc"; } else { - sql = "select distinct id, fnumber, fname, ftype from jcl_org_map where ftype = 0 order by ftype , id"; + sql = "select distinct id, fnumber, fname, ftype from jcl_org_map where ftype = 0 order by ftype , id,fdateend desc"; } } rs.executeQuery(sql); - List> companylist = new ArrayList<>(); + Set companySet = new HashSet<>(); while (rs.next()) { - Map item = new HashMap<>(); - item.put("id", rs.getString("id")); - item.put("fnumber", rs.getString("fnumber")); - item.put("fname", rs.getString("fname")); - companylist.add(item); + OrgSelectItem item = new OrgSelectItem(); + item.setId(rs.getString("id")); + item.setFnumber(rs.getString("fnumber")); + item.setFname(rs.getString("fname")); + companySet.add(item); } result.put("api_status", true); result.put("fclasslist", fclasslist); - result.put("companylist", companylist); + result.put("companylist", companySet); return result; } @@ -268,15 +268,22 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { item.put("fname", rs.getString("fname")); item.put("ftype", rs.getString("ftype")); item.put("parentId", null); - item.put("fleadername", rs.getString("fleadername")); - item.put("fleaderimg", rs.getString("fleaderimg")); - item.put("fleaderjob", rs.getString("fleaderjob")); + if ("0".equals(id)) { + item.put("fleadername", ""); + item.put("fleaderimg", ""); + item.put("fleaderjob", ""); + item.put("fleader", ""); + } else { + item.put("fleadername", rs.getString("fleadername")); + item.put("fleaderimg", rs.getString("fleaderimg")); + item.put("fleaderjob", rs.getString("fleaderjob")); + item.put("fleader", rs.getString("fleader")); + } item.put("fplan", rs.getString("fplan")); item.put("fonjob", rs.getString("fonjob")); item.put("hasChildren", hasChildren(rs.getString("id"), false)); item.put("expand", "1"); item.put("fnumber", rs.getString("fnumber")); - item.put("fleader", rs.getString("fleader")); item.put("fobjid", rs.getString("fobjid")); item.put("fleaderlv", convertLevel(rs.getString("fleaderlv"))); item.put("fleaderst", convertGrade(rs.getString("fleaderst"))); @@ -489,4 +496,48 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { } }); } + + static class OrgSelectItem { + private String id; + private String fnumber; + private String fname; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getFnumber() { + return fnumber; + } + + public void setFnumber(String fnumber) { + this.fnumber = fnumber; + } + + public String getFname() { + return fname; + } + + public void setFname(String fname) { + this.fname = fname; + } + + @Override + public boolean equals(Object obj) { + if (obj instanceof OrgSelectItem) { + OrgSelectItem item = (OrgSelectItem) obj; + return this.getId().equals(item.getId()); + } + return false; + } + + @Override + public int hashCode() { + return Integer.parseInt(this.getId()); + } + } } From dcf8418edb53e7d0812d636ee65b2ee6c48e497b Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 10 Nov 2022 10:24:48 +0800 Subject: [PATCH 20/34] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=BF=98=E5=8E=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CardAccessServiceImpl.java | 63 ------------------- 1 file changed, 63 deletions(-) diff --git a/src/com/engine/organization/service/impl/CardAccessServiceImpl.java b/src/com/engine/organization/service/impl/CardAccessServiceImpl.java index 8929e6a7..6e6aace9 100644 --- a/src/com/engine/organization/service/impl/CardAccessServiceImpl.java +++ b/src/com/engine/organization/service/impl/CardAccessServiceImpl.java @@ -1,23 +1,16 @@ package com.engine.organization.service.impl; import com.cloudstore.eccom.result.WeaResultMsg; -import com.engine.common.service.HrmCommonService; -import com.engine.common.service.impl.HrmCommonServiceImpl; import com.engine.core.impl.Service; import com.engine.organization.component.OrganizationWeaTable; import com.engine.organization.entity.personnelcard.po.CardAccessPO; import com.engine.organization.entity.personnelcard.vo.CardAccessVO; -import com.engine.organization.exception.OrganizationRunTimeException; import com.engine.organization.mapper.personnelcard.CardAccessMapper; import com.engine.organization.service.CardAccessService; import com.engine.organization.util.HasRightUtil; -import com.engine.organization.util.OrganizationAssert; import com.engine.organization.util.db.MapperProxyFactory; -import org.apache.commons.lang.StringUtils; -import weaver.general.BaseBean; import weaver.general.Util; import weaver.hrm.User; -import weaver.hrm.resource.ResourceComInfo; import java.util.*; @@ -95,60 +88,4 @@ public class CardAccessServiceImpl extends Service implements CardAccessService return getCardAccessMapper().updateTabName(name, id); } - - /** - * 判断当前人员、是否有查看当前数据、当前模块的权限 - * - * @param typeId 人员卡片分组ID - * @param userId 当前卡片人员EcId - * @return - */ - public boolean hasGroupAccess(Integer typeId, String userId) { - // 人员信息有误,返回false - OrganizationAssert.notBlank(userId, "未获取到对应人员"); - - // 系统管理员、查看本人卡片直接返回true - if (user.isAdmin() || userId.equals(String.valueOf(user.getUID()))) { - return true; - } - - boolean hasAccess = false; - CardAccessPO cardAccessPO = getCardAccessMapper().selectById(typeId); - OrganizationAssert.notNull(cardAccessPO, "未查询到对应卡片权限,"); - // 所有人,返回true - if (1 == cardAccessPO.getAllPeople()) { - return true; - } - - try { - ResourceComInfo resourceComInfo = new ResourceComInfo(); - // 上级 - if ("1".equals(Util.null2String(cardAccessPO.getSuperior()))) { - String managerID = resourceComInfo.getManagerID(userId); - hasAccess = Arrays.asList(managerID.split(",")).contains(Util.null2String(user.getUID())); - } - - // 所有上级 - if (!hasAccess || "1".equals(Util.null2String(cardAccessPO.getAllSuperior()))) { - String managersIDs = resourceComInfo.getManagersIDs(userId); - hasAccess = hasAccess || Arrays.asList(managersIDs.split(",")).contains(Util.null2String(user.getUID())); - } - } catch (Exception e) { - new BaseBean().writeLog(e); - throw new OrganizationRunTimeException("人员卡片权限"); - } - // 角色判断 - if (!hasAccess || StringUtils.isNotBlank(cardAccessPO.getCustom())) { - List accessRoleIds = Arrays.asList(cardAccessPO.getCustom().split(",")); - HrmCommonService hrmCommonService = new HrmCommonServiceImpl(); - List roleInfo = hrmCommonService.getRoleInfo(user.getUID()); - for (Object o : roleInfo) { - Map roleDetailMap = (Map) o; - int roleid = Util.getIntValue(roleDetailMap.get("roleid"), -1); - // 判断角色是否满足,角色等级是否满足 - hasAccess = hasAccess || accessRoleIds.contains(Util.null2String(roleid)); - } - } - return hasAccess; - } } From fa1434a64ae1807628fe04cee869cd9cfb4de0d2 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 10 Nov 2022 10:28:14 +0800 Subject: [PATCH 21/34] =?UTF-8?q?=E5=8D=A1=E7=89=87=E5=88=86=E7=BB=84?= =?UTF-8?q?=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/HrmPersonnelCardServiceImpl.java | 73 +++++++++++++++++-- 1 file changed, 67 insertions(+), 6 deletions(-) diff --git a/src/com/engine/organization/service/impl/HrmPersonnelCardServiceImpl.java b/src/com/engine/organization/service/impl/HrmPersonnelCardServiceImpl.java index d6e182dd..86809311 100644 --- a/src/com/engine/organization/service/impl/HrmPersonnelCardServiceImpl.java +++ b/src/com/engine/organization/service/impl/HrmPersonnelCardServiceImpl.java @@ -1,5 +1,7 @@ package com.engine.organization.service.impl; +import com.engine.common.service.HrmCommonService; +import com.engine.common.service.impl.HrmCommonServiceImpl; import com.engine.core.impl.Service; import com.engine.organization.entity.extend.ExtendInfoOperateType; import com.engine.organization.entity.extend.bo.ExtendGroupBO; @@ -8,11 +10,14 @@ import com.engine.organization.entity.extend.po.ExtendGroupPO; import com.engine.organization.entity.extend.po.ExtendInfoPO; import com.engine.organization.entity.extend.po.ExtendTitlePO; import com.engine.organization.entity.personnelcard.*; +import com.engine.organization.entity.personnelcard.po.CardAccessPO; +import com.engine.organization.exception.OrganizationRunTimeException; import com.engine.organization.mapper.extend.ExtMapper; import com.engine.organization.mapper.extend.ExtendGroupMapper; import com.engine.organization.mapper.extend.ExtendInfoMapper; import com.engine.organization.mapper.extend.ExtendTitleMapper; import com.engine.organization.mapper.hrmresource.HrmResourceMapper; +import com.engine.organization.mapper.personnelcard.CardAccessMapper; import com.engine.organization.mapper.personnelcard.PersonnelCardMapper; import com.engine.organization.service.HrmPersonnelCardService; import com.engine.organization.util.OrganizationAssert; @@ -29,12 +34,10 @@ import weaver.crm.CrmShareBase; import weaver.docs.search.DocSearchComInfo; import weaver.general.BaseBean; import weaver.general.Util; +import weaver.hrm.resource.ResourceComInfo; import weaver.workflow.search.WorkflowRequestUtil; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -88,8 +91,7 @@ public class HrmPersonnelCardServiceImpl extends Service implements HrmPersonnel Statistical statistical = getStatistical(ecResourceId); List extendGroupList = getExtendGroupMapper().listByType(4, IS_SHOW); // 过滤卡片权限 - CardAccessServiceImpl cardAccessService = new CardAccessServiceImpl(user); - extendGroupList.removeIf(item -> !cardAccessService.hasGroupAccess(item.getId().intValue(), ecResourceId)); + extendGroupList.removeIf(item -> !hasGroupAccess(item.getId().intValue(), ecResourceId)); // 获取所有模块的信息 List formItemList = new ArrayList<>(); @@ -209,5 +211,64 @@ public class HrmPersonnelCardServiceImpl extends Service implements HrmPersonnel return formItem; } + /** + * 判断当前人员、是否有查看当前数据、当前模块的权限 + * + * @param typeId 人员卡片分组ID + * @param userId 当前卡片人员EcId + * @return + */ + public boolean hasGroupAccess(Integer typeId, String userId) { + // 人员信息有误,返回false + OrganizationAssert.notBlank(userId, "未获取到对应人员"); + + // 系统管理员、查看本人卡片直接返回true + if (user.isAdmin() || userId.equals(String.valueOf(user.getUID()))) { + return true; + } + + boolean hasAccess = false; + CardAccessPO cardAccessPO = MapperProxyFactory.getProxy(CardAccessMapper.class).selectById(typeId); + OrganizationAssert.notNull(cardAccessPO, "未查询到对应卡片权限,"); + // 所有人,返回true + if (1 == cardAccessPO.getAllPeople()) { + return true; + } + + try { + ResourceComInfo resourceComInfo = new ResourceComInfo(); + // 上级 + if ("1".equals(Util.null2String(cardAccessPO.getSuperior()))) { + String managerID = resourceComInfo.getManagerID(userId); + hasAccess = Arrays.asList(managerID.split(",")).contains(Util.null2String(user.getUID())); + } + + // 所有上级 + if (!hasAccess || "1".equals(Util.null2String(cardAccessPO.getAllSuperior()))) { + String managersIDs = resourceComInfo.getManagersIDs(userId); + hasAccess = hasAccess || Arrays.asList(managersIDs.split(",")).contains(Util.null2String(user.getUID())); + } + } catch (Exception e) { + new BaseBean().writeLog(e); + throw new OrganizationRunTimeException("人员卡片权限"); + } + // 角色判断 + if (!hasAccess || org.apache.commons.lang.StringUtils.isNotBlank(cardAccessPO.getCustom())) { + List accessRoleIds = Arrays.asList(cardAccessPO.getCustom().split(",")); + HrmCommonService hrmCommonService = new HrmCommonServiceImpl(); + List roleInfo = hrmCommonService.getRoleInfo(user.getUID()); + for (Object o : roleInfo) { + Map roleDetailMap = (Map) o; + int roleid = Util.getIntValue(roleDetailMap.get("roleid"), -1); + // 判断角色是否满足,角色等级是否满足 + hasAccess = hasAccess || accessRoleIds.contains(Util.null2String(roleid)); + if (hasAccess) { + break; + } + } + } + return hasAccess; + } + } From eeefde07ed19252e2ebe41cf7ef17e483b90074a Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Thu, 10 Nov 2022 10:20:24 +0800 Subject: [PATCH 22/34] =?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 | 17 +++- .../entity/personnelcard/vo/CardAccessVO.java | 2 +- .../personnelcard/CardAccessMapper.java | 2 +- .../mapper/personnelcard/CardAccessMapper.xml | 79 ++++++++++++------- .../service/impl/CardAccessServiceImpl.java | 34 ++++---- .../transmethod/SystemTransMethod.java | 28 +++++++ 6 files changed, 113 insertions(+), 49 deletions(-) create mode 100644 src/com/engine/organization/transmethod/SystemTransMethod.java diff --git a/docs/表结构SQL/MySQL.sql b/docs/表结构SQL/MySQL.sql index 2ec98e4d..e203c978 100644 --- a/docs/表结构SQL/MySQL.sql +++ b/docs/表结构SQL/MySQL.sql @@ -570,10 +570,25 @@ create table JCL_ORG_CARDACCESS ( all_people int null, superior int null, all_superior int null, - custom text null , + custom varchar(2000) null , delete_type int null, creator int null, create_time date null, update_time date null, constraint JCL_ORG_CARDACCESS_PK primary key (id) +); + +-- JCL_ORG_CARDBUTTON +create table JCL_ORG_CARDBUTTON ( + id BIGINT auto_increment not null, + name varchar(255) not null, + status int null, + url varchar(255) null, + role varchar(2000) null, + defaults int not null, + creator int null, + delete_type int null, + create_time date null, + update_time date null, + constraint JCL_ORG_CARDBUTTON_PK primary key (id) ); \ No newline at end of file diff --git a/src/com/engine/organization/entity/personnelcard/vo/CardAccessVO.java b/src/com/engine/organization/entity/personnelcard/vo/CardAccessVO.java index c2ccb863..fd2b043a 100644 --- a/src/com/engine/organization/entity/personnelcard/vo/CardAccessVO.java +++ b/src/com/engine/organization/entity/personnelcard/vo/CardAccessVO.java @@ -55,7 +55,7 @@ public class CardAccessVO { @OrganizationTableColumn(text = "所有上级可见", width = "15%", column = "all_superior") private Integer allSuperior; - @OrganizationTableColumn(text = "查看自定义", width = "15%", column = "custom",transmethod = "com.engine.organization.transmethod.ManagerDetachTransMethod.getRoleLevel") + @OrganizationTableColumn(text = "查看自定义", width = "15%", column = "custom",transmethod = "com.engine.organization.transmethod.SystemTransMethod.getRoleName") private String custom; } diff --git a/src/com/engine/organization/mapper/personnelcard/CardAccessMapper.java b/src/com/engine/organization/mapper/personnelcard/CardAccessMapper.java index adae6a81..b6cd17b8 100644 --- a/src/com/engine/organization/mapper/personnelcard/CardAccessMapper.java +++ b/src/com/engine/organization/mapper/personnelcard/CardAccessMapper.java @@ -17,7 +17,7 @@ public interface CardAccessMapper { int insertIgnoreNull(CardAccessPO cardAccessPO); - int saveCardAccess(@Param("dataList") List> dataList); + int saveCardAccess(@Param("dataList") List dataList); int deleteByIds(@Param("ids") Collection ids); diff --git a/src/com/engine/organization/mapper/personnelcard/CardAccessMapper.xml b/src/com/engine/organization/mapper/personnelcard/CardAccessMapper.xml index 2f751b30..5488d10e 100644 --- a/src/com/engine/organization/mapper/personnelcard/CardAccessMapper.xml +++ b/src/com/engine/organization/mapper/personnelcard/CardAccessMapper.xml @@ -42,7 +42,7 @@ type_id, - + type_name, @@ -77,7 +77,7 @@ #{typeId}, - + #{typeName}, @@ -119,7 +119,7 @@ type_id, - + type_name, @@ -154,7 +154,7 @@ #{typeId}, - + #{typeName}, @@ -189,30 +189,53 @@ - - - update jcl_org_cardaccess - - - status = #{item.status}, - - - all_people = #{item.allPeople}, - - - superior = #{item.superior}, - - - all_superior = #{item.allSuperior}, - - - custom = #{item.custom}, - - - update_time = #{item.updateTime} - - - where id = #{item.id} + + update jcl_org_cardaccess + + + + + when id=#{item.id} then #{item.status} + + + + + + + when id=#{item.id} then #{item.allPeople} + + + + + + + when id=#{item.id} then #{item.superior} + + + + + + + when id=#{item.id} then #{item.allSuperior} + + + + + + when id=#{item.id} then #{item.custom} + + + + + + when id=#{item.id} then #{item.updateTime} + + + + + where + + id=#{item.id} diff --git a/src/com/engine/organization/service/impl/CardAccessServiceImpl.java b/src/com/engine/organization/service/impl/CardAccessServiceImpl.java index 6e6aace9..08adb39d 100644 --- a/src/com/engine/organization/service/impl/CardAccessServiceImpl.java +++ b/src/com/engine/organization/service/impl/CardAccessServiceImpl.java @@ -3,6 +3,7 @@ package com.engine.organization.service.impl; import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.core.impl.Service; import com.engine.organization.component.OrganizationWeaTable; +import com.engine.organization.entity.detach.vo.ManagerDetachVO; import com.engine.organization.entity.personnelcard.po.CardAccessPO; import com.engine.organization.entity.personnelcard.vo.CardAccessVO; import com.engine.organization.mapper.personnelcard.CardAccessMapper; @@ -10,7 +11,7 @@ import com.engine.organization.service.CardAccessService; import com.engine.organization.util.HasRightUtil; import com.engine.organization.util.db.MapperProxyFactory; import weaver.general.Util; -import weaver.hrm.User; + import java.util.*; @@ -24,15 +25,10 @@ public class CardAccessServiceImpl extends Service implements CardAccessService private static final String RIGHT_NAME = "CardAccess:All"; - private static CardAccessMapper getCardAccessMapper() { + private CardAccessMapper getCardAccessMapper() { return MapperProxyFactory.getProxy(CardAccessMapper.class); } - public CardAccessServiceImpl(User user) { - super(); - this.user = user; - } - @Override public Map tablePage() { Map resultMap = new HashMap<>(); @@ -58,16 +54,17 @@ public class CardAccessServiceImpl extends Service implements CardAccessService @Override public int save(Map params) { int rowNum = Util.getIntValue((String) params.get("rownum")); - List> dataList = new ArrayList<>(); + List dataList = new ArrayList<>(); for (int i = 0; i < rowNum; i++) { - HashMap data = new HashMap<>(); - data.put("id", params.get("id_" + i)); - data.put("status", params.get("status_" + i)); - data.put("allPeople", params.get("all_people_" + i)); - data.put("superior", params.get("superior_" + i)); - data.put("allSuperior", params.get("all_superior_" + i)); - data.put("custom", params.get("custom" + i)); - data.put("updateTime", new Date()); + CardAccessPO data = CardAccessPO.builder() + .id(Util.getIntValue((String)params.get("id_"+i))) + .status(Util.getIntValue((String)params.get("status_"+i))) + .allPeople(Util.getIntValue((String)params.get("all_people_"+i))) + .superior(Util.getIntValue((String)params.get("superior_"+i))) + .allSuperior(Util.getIntValue((String)params.get("all_superior_"+i))) + .custom(Util.null2String(params.get("custom_"+i))) + .updateTime(new Date()) + .build(); dataList.add(data); } return getCardAccessMapper().saveCardAccess(dataList); @@ -84,8 +81,9 @@ public class CardAccessServiceImpl extends Service implements CardAccessService } @Override - public int updateTabName(String name, Integer id) { - return getCardAccessMapper().updateTabName(name, id); + public int updateTabName(String name,Integer id) { + return getCardAccessMapper().updateTabName(name,id); } + } diff --git a/src/com/engine/organization/transmethod/SystemTransMethod.java b/src/com/engine/organization/transmethod/SystemTransMethod.java new file mode 100644 index 00000000..314b2547 --- /dev/null +++ b/src/com/engine/organization/transmethod/SystemTransMethod.java @@ -0,0 +1,28 @@ +package com.engine.organization.transmethod; + +import org.apache.commons.lang3.StringUtils; +import weaver.hrm.roles.RolesComInfo; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Author weaver_cl + * @Description: + * @Date 2022/11/9 + * @Version V1.0 + **/ +public class SystemTransMethod { + + public static String getRoleName(String roleIds) { + RolesComInfo rolesComInfo = new RolesComInfo(); + List list = new ArrayList<>(); + if (StringUtils.isNotBlank(roleIds)) { + for (String roleId : roleIds.split(",")) { + list.add(rolesComInfo.getRolesname(roleId)); + } + } + return StringUtils.join(list,","); + } + +} From ec8be58a45b7510196add3525fe0718495abd547 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=98ml=E2=80=99?= Date: Thu, 10 Nov 2022 10:55:56 +0800 Subject: [PATCH 23/34] =?UTF-8?q?=E8=81=8C=E7=AD=89=E8=81=8C=E7=BA=A7?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/scheme/GradeMapper.java | 7 + .../mapper/scheme/GradeMapper.xml | 14 + .../mapper/scheme/LevelMapper.java | 7 + .../mapper/scheme/LevelMapper.xml | 19 ++ .../mapper/scheme/SchemeMapper.java | 9 + .../mapper/scheme/SchemeMapper.xml | 19 ++ .../service/impl/ImportCommonServiceImpl.java | 260 ++++++++++-------- .../util/saveimport/PostInfoImportUtil.java | 28 ++ .../organization/modeexpand/VOModeExpand.java | 2 +- 9 files changed, 247 insertions(+), 118 deletions(-) create mode 100644 src/com/engine/organization/util/saveimport/PostInfoImportUtil.java diff --git a/src/com/engine/organization/mapper/scheme/GradeMapper.java b/src/com/engine/organization/mapper/scheme/GradeMapper.java index 7495bfb8..27c119a0 100644 --- a/src/com/engine/organization/mapper/scheme/GradeMapper.java +++ b/src/com/engine/organization/mapper/scheme/GradeMapper.java @@ -25,6 +25,13 @@ public interface GradeMapper { */ List listByNo(@Param("gradeNo") String gradeNo); + /** + * 根据No和scheme_id查询 + * @param gradeNo + * @param schemeId + */ + GradePO getGradeByNoAndSid(@Param("gradeNo") String gradeNo,@Param("schemeId") long schemeId); + /** * 根据等级方案查询数据 * diff --git a/src/com/engine/organization/mapper/scheme/GradeMapper.xml b/src/com/engine/organization/mapper/scheme/GradeMapper.xml index e1f6ea45..b92e37c7 100644 --- a/src/com/engine/organization/mapper/scheme/GradeMapper.xml +++ b/src/com/engine/organization/mapper/scheme/GradeMapper.xml @@ -13,6 +13,7 @@ + @@ -30,6 +31,7 @@ , t.delete_type , t.create_time , t.update_time + , t.is_used + + + @@ -39,6 +41,11 @@ from jcl_org_scheme t where scheme_no = #{schemeNo} AND delete_type = 0 + + select + + from jcl_org_cardbutton where delete_type = 0 + + + + \ No newline at end of file diff --git a/src/com/engine/organization/service/CardAccessService.java b/src/com/engine/organization/service/CardAccessService.java index 4f7b5890..8cf599b6 100644 --- a/src/com/engine/organization/service/CardAccessService.java +++ b/src/com/engine/organization/service/CardAccessService.java @@ -55,4 +55,16 @@ public interface CardAccessService { */ int updateTabName(String name,Integer id); + /** + * 卡片按钮表单 + * @return + */ + Map getCardButtonFrom(); + + /** + * 保存卡片按钮信息 + * @param params + * @return + */ + int saveCardButton(Map params); } diff --git a/src/com/engine/organization/service/impl/CardAccessServiceImpl.java b/src/com/engine/organization/service/impl/CardAccessServiceImpl.java index 08adb39d..c681f981 100644 --- a/src/com/engine/organization/service/impl/CardAccessServiceImpl.java +++ b/src/com/engine/organization/service/impl/CardAccessServiceImpl.java @@ -3,17 +3,21 @@ package com.engine.organization.service.impl; import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.core.impl.Service; import com.engine.organization.component.OrganizationWeaTable; -import com.engine.organization.entity.detach.vo.ManagerDetachVO; +import com.engine.organization.entity.extend.bo.ExtendInfoBO; +import com.engine.organization.entity.extend.po.ExtendInfoPO; import com.engine.organization.entity.personnelcard.po.CardAccessPO; +import com.engine.organization.entity.personnelcard.po.CardButtonPO; import com.engine.organization.entity.personnelcard.vo.CardAccessVO; import com.engine.organization.mapper.personnelcard.CardAccessMapper; +import com.engine.organization.mapper.personnelcard.CardButtonMapper; import com.engine.organization.service.CardAccessService; +import com.engine.organization.transmethod.SystemTransMethod; import com.engine.organization.util.HasRightUtil; import com.engine.organization.util.db.MapperProxyFactory; import weaver.general.Util; - import java.util.*; +import java.util.stream.Collectors; /** * @Author weaver_cl @@ -29,6 +33,10 @@ public class CardAccessServiceImpl extends Service implements CardAccessService return MapperProxyFactory.getProxy(CardAccessMapper.class); } + private CardButtonMapper getCardButtonMapper() { + return MapperProxyFactory.getProxy(CardButtonMapper.class); + } + @Override public Map tablePage() { Map resultMap = new HashMap<>(); @@ -85,5 +93,44 @@ public class CardAccessServiceImpl extends Service implements CardAccessService return getCardAccessMapper().updateTabName(name,id); } + @Override + public Map getCardButtonFrom() { + // 区分主表明细表 + + String tableName = "JCL_ORG_CARDBUTTON"; + List infoPOList = new ArrayList<>(); + infoPOList.add(ExtendInfoPO.builder().id(null).tableName(tableName).fieldName("name").fieldNameDesc("按钮名称").fieldType("varchar(50)").controlType(1).browserType("1").customValue("[\"input\",\"text\",\"50\"]").showOrder(1).isSystemDefault(0).build()); + infoPOList.add(ExtendInfoPO.builder().id(null).tableName(tableName).fieldName("status").fieldNameDesc("启用").fieldType("char(1)").controlType(1).browserType("1").customValue("[\"check\"]").showOrder(2).isSystemDefault(0).build()); + infoPOList.add(ExtendInfoPO.builder().id(null).tableName(tableName).fieldName("url").fieldNameDesc("跳转地址").fieldType("varchar(1000)").controlType(1).browserType("1").customValue("[\"input\",\"text\",\"1000\"]").showOrder(3).isSystemDefault(0).build()); + infoPOList.add(ExtendInfoPO.builder().id(null).tableName(tableName).fieldName("roles").fieldNameDesc("角色").fieldType("text").controlType(1).browserType("65").customValue("[\"browser\",{\"valueSpan\":\"多角色\",\"replaceDatas\":[{\"itemorderid\":\"65\",\"name\":\"多角色\",\"id\":\"65\",\"parenttitle\":\"人员\",\"title\":\"人员-多角色\"}],\"value\":\"65\"}]").showOrder(4).isSystemDefault(0).build()); + + Map tabinfoMap = new HashMap<>(); + tabinfoMap.put("columns", ExtendInfoBO.convertInfoListToTable(user, infoPOList, 2, false)); + // 去除null 元素 + List cardButtonPOS = getCardButtonMapper().listAll(); + // 兼容Oracle,map的key转换为小写 + List> collect = cardButtonPOS.stream().map(item -> { + Map resultMap = new HashMap<>(); + + resultMap.put("id", item.getId()); + resultMap.put("name", item.getName()); + resultMap.put("status", item.getStatus()); + resultMap.put("url", item.getUrl()); + resultMap.put("roles", item.getRoles()); + resultMap.put("rolesspan", SystemTransMethod.getRoleName(item.getRoles())); + + return resultMap; + }).collect(Collectors.toList()); + tabinfoMap.put("datas", collect); + tabinfoMap.put("api_status", true); + + return tabinfoMap; + } + + @Override + public int saveCardButton(Map params) { + return 0; + } + } diff --git a/src/com/engine/organization/service/impl/ExtServiceImpl.java b/src/com/engine/organization/service/impl/ExtServiceImpl.java index fb9c4833..93179f7d 100644 --- a/src/com/engine/organization/service/impl/ExtServiceImpl.java +++ b/src/com/engine/organization/service/impl/ExtServiceImpl.java @@ -13,6 +13,7 @@ import com.engine.organization.entity.extend.po.ExtendTitlePO; import com.engine.organization.enums.ModuleTypeEnum; import com.engine.organization.mapper.codesetting.CodeRuleMapper; import com.engine.organization.mapper.extend.*; +import com.engine.organization.mapper.hrmresource.HrmResourceMapper; import com.engine.organization.service.ExtService; import com.engine.organization.util.OrganizationAssert; import com.engine.organization.util.db.DBType; @@ -67,9 +68,22 @@ public class ExtServiceImpl extends Service implements ExtService { if (StringUtils.isEmpty(fields)) { return conditionItems; } + List readOnlyFieldList = new ArrayList<>(Arrays.asList(readOnlyFields)); + //TODO 细化权限 + if ("4".equals(extendType) && !user.isAdmin()) { + String ecResourceId = MapperProxyFactory.getProxy(HrmResourceMapper.class).getEcResourceId(String.valueOf(id)); + if (Util.null2String(user.getUID()).equals(ecResourceId)) { + List readOnlyList = infoPOList.stream().filter(item -> !"1".equals(Util.null2String(item.getIsModify()))).map(ExtendInfoPO::getFieldName).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(readOnlyList)) { + readOnlyFieldList.addAll(readOnlyList); + } + } else { + viewAttr = 1; + } + } + ExtendInfoParams infoParams = ExtendInfoParams.builder().tableName(tableName).fields(fields).params(null).id(id).build(); Map compExtMap = getExtMapper().listExt(infoParams); - List readOnlyFieldList = Arrays.asList(readOnlyFields); // 组装拓展页内容 for (ExtendInfoPO extendInfoPO : infoPOList) { SearchConditionItem item = ExtendInfoBO.getSearchConditionItem(user, viewAttr, extendInfoPO, null == compExtMap ? null : compExtMap.get(DBType.isOracle() ? extendInfoPO.getFieldName().toUpperCase() : extendInfoPO.getFieldName())); @@ -136,8 +150,19 @@ public class ExtServiceImpl extends Service implements ExtService { // 查询明细表 List extendGroupList = getExtendGroupMapper().listGroupByPid(groupId, "1"); for (ExtendGroupPO extendGroup : extendGroupList) { - infoPOList.addAll(getExtendInfoMapper().listFields(extendType, extendGroup.getId() + "", tableName, "", "1")); + List extendInfoPOS = getExtendInfoMapper().listFields(extendType, extendGroup.getId() + "", tableName, "", "1"); + if (CollectionUtils.isNotEmpty(extendInfoPOS)) { + infoPOList.addAll(extendInfoPOS); + } } + Map> allFields = infoPOList.stream().collect(Collectors.groupingBy(ExtendInfoPO::getExtendGroupId)); + //TODO 控制展示权限 + boolean checkRight = true; + if ("4".equals(extendType) && !user.isAdmin()) { + checkRight = false; + infoPOList.removeIf(item -> !"1".equals(Util.null2String(item.getIsModify()))); + } + // 查询所有分布模块,拓展明细表信息 Map> groupMap = infoPOList.stream().collect(Collectors.groupingBy(ExtendInfoPO::getExtendGroupId)); // 遍历Map,组装数据 @@ -146,11 +171,12 @@ public class ExtServiceImpl extends Service implements ExtService { tableMap.put("hide", false); tableMap.put("tabname", getExtendGroupMapper().getGroupNameById(Util.null2String(entry.getKey()))); Map tabinfoMap = new HashMap<>(); + //TODO 需优化 tabinfoMap.put("columns", ExtendInfoBO.convertInfoListToTable(user, entry.getValue(), viewAttr, showLabel)); tabinfoMap.put("rownum", "rownum" + entry.getKey()); // 浏览按钮添加filespan字段 - String fields = entry.getValue().stream().map(item -> { + String fields = allFields.get(entry.getKey()).stream().map(item -> { if (BROWSER_TYPE.equals(item.getControlType())) { return item.getFieldName() + "," + item.getFieldName() + "span"; } @@ -160,12 +186,14 @@ public class ExtServiceImpl extends Service implements ExtService { List> maps = getExtDTMapper().listCompExtDT(tableName, id, fields); maps.removeIf(Objects::isNull); // 兼容Oracle,map的key转换为小写 + boolean finalCheckRight = checkRight; List> collect = maps.stream().map(item -> { Map resultMap = new HashMap<>(); Set keys = item.keySet(); for (String key : keys) { resultMap.put(key.toLowerCase(), item.get(key)); } + resultMap.put("viewAttr", finalCheckRight ? 2 : 1); return resultMap; }).collect(Collectors.toList()); tabinfoMap.put("datas", collect); diff --git a/src/com/engine/organization/service/impl/HrmPersonnelCardServiceImpl.java b/src/com/engine/organization/service/impl/HrmPersonnelCardServiceImpl.java index 86809311..407cabae 100644 --- a/src/com/engine/organization/service/impl/HrmPersonnelCardServiceImpl.java +++ b/src/com/engine/organization/service/impl/HrmPersonnelCardServiceImpl.java @@ -229,7 +229,9 @@ public class HrmPersonnelCardServiceImpl extends Service implements HrmPersonnel boolean hasAccess = false; CardAccessPO cardAccessPO = MapperProxyFactory.getProxy(CardAccessMapper.class).selectById(typeId); - OrganizationAssert.notNull(cardAccessPO, "未查询到对应卡片权限,"); + if(null==cardAccessPO){ + return false; + } // 所有人,返回true if (1 == cardAccessPO.getAllPeople()) { return true; @@ -259,9 +261,9 @@ public class HrmPersonnelCardServiceImpl extends Service implements HrmPersonnel List roleInfo = hrmCommonService.getRoleInfo(user.getUID()); for (Object o : roleInfo) { Map roleDetailMap = (Map) o; - int roleid = Util.getIntValue(roleDetailMap.get("roleid"), -1); + int roleId = Util.getIntValue(roleDetailMap.get("roleid"), -1); // 判断角色是否满足,角色等级是否满足 - hasAccess = hasAccess || accessRoleIds.contains(Util.null2String(roleid)); + hasAccess = hasAccess || accessRoleIds.contains(Util.null2String(roleId)); if (hasAccess) { break; } diff --git a/src/com/engine/organization/util/relation/ResourceSyncUtil.java b/src/com/engine/organization/util/relation/ResourceSyncUtil.java index 9013b01b..274032ff 100644 --- a/src/com/engine/organization/util/relation/ResourceSyncUtil.java +++ b/src/com/engine/organization/util/relation/ResourceSyncUtil.java @@ -597,10 +597,12 @@ public class ResourceSyncUtil { public static Map editResourceBase(User user, Map params) { Map retMap = new HashMap<>(); try { + String id = Util.null2String(params.get("id")); + // 判断是否为本人操作 boolean canEdit = HrmUserVarify.checkUserRight("HrmResourceEdit:Edit", user); - if (!canEdit) { + if (!canEdit && !Util.null2String(user.getUID()).equals(id)) { retMap.put("status", "-1"); - retMap.put("message", ""+weaver.systeminfo.SystemEnv.getHtmlLabelName(22620,weaver.general.ThreadVarLanguage.getLang())+""); + retMap.put("message", "" + weaver.systeminfo.SystemEnv.getHtmlLabelName(22620, weaver.general.ThreadVarLanguage.getLang()) + ""); return retMap; } RecordSet rs = new RecordSet(); @@ -610,7 +612,7 @@ public class ResourceSyncUtil { CrmShareBase CrmShareBase = new CrmShareBase(); StringBuilder para; - String id = Util.null2String(params.get("id")); + if (id.length()==0) { retMap.put("status", "-1"); retMap.put("message", ""+weaver.systeminfo.SystemEnv.getHtmlLabelName(22620,weaver.general.ThreadVarLanguage.getLang())+""); diff --git a/src/com/engine/organization/web/CardAccessController.java b/src/com/engine/organization/web/CardAccessController.java index 46634494..0dccfdaf 100644 --- a/src/com/engine/organization/web/CardAccessController.java +++ b/src/com/engine/organization/web/CardAccessController.java @@ -2,10 +2,8 @@ package com.engine.organization.web; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; -import com.engine.organization.entity.detach.param.ManagerDetachParam; import com.engine.organization.util.response.ReturnResult; import com.engine.organization.wrapper.CardAccessWrapper; -import io.swagger.v3.oas.annotations.parameters.RequestBody; import weaver.hrm.HrmUserVarify; import weaver.hrm.User; @@ -29,7 +27,7 @@ import java.util.Map; public class CardAccessController { public CardAccessWrapper getCardAccessWrapper(User user) { - return ServiceUtil.getService(CardAccessWrapper.class,user); + return ServiceUtil.getService(CardAccessWrapper.class, user); } @@ -69,4 +67,16 @@ public class CardAccessController { return ReturnResult.exceptionHandle(e); } } + + @GET + @Path("/getCardButtonFrom") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getCardButtonFrom(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getCardAccessWrapper(user).getCardButtonFrom()); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } } diff --git a/src/com/engine/organization/wrapper/CardAccessWrapper.java b/src/com/engine/organization/wrapper/CardAccessWrapper.java index 8d9add1f..da27ef07 100644 --- a/src/com/engine/organization/wrapper/CardAccessWrapper.java +++ b/src/com/engine/organization/wrapper/CardAccessWrapper.java @@ -17,7 +17,7 @@ import java.util.Map; public class CardAccessWrapper extends OrganizationWrapper { public CardAccessService getCardAccessService(User user) { - return ServiceUtil.getService(CardAccessServiceImpl.class,user); + return ServiceUtil.getService(CardAccessServiceImpl.class, user); } public Map listPage() { @@ -31,4 +31,8 @@ public class CardAccessWrapper extends OrganizationWrapper { public int save(Map params) { return getCardAccessService(user).save(params); } + + public Map getCardButtonFrom() { + return getCardAccessService(user).getCardButtonFrom(); + } } From 0459c628eaf107f198d4eaa234e84bc59f35db73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=98ml=E2=80=99?= Date: Fri, 11 Nov 2022 09:11:03 +0800 Subject: [PATCH 26/34] =?UTF-8?q?=E8=81=8C=E7=AD=89=E8=81=8C=E7=BA=A7?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E6=8E=A5=E5=8F=A320221111?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ImportCommonServiceImpl.java | 504 +++++++++++------- .../organization/util/excel/ExcelUtil.java | 59 ++ .../util/saveimport/PostInfoImportUtil.java | 14 +- 3 files changed, 368 insertions(+), 209 deletions(-) diff --git a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java index dd90708f..a81c70a2 100644 --- a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java +++ b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java @@ -173,7 +173,7 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ fieldDatas.add(FieldTransferParam.builder().id("8").name("职级说明").build()); fieldDatas.add(FieldTransferParam.builder().id("9").name("职等说明").build()); List selectedKeys = new ArrayList<>(); - for(int i=0;i 0, "导入数据为空"); - short lastCellNum = sheetAt.getRow(0).getLastCellNum(); - List extendInfoPOS = new ArrayList<>(); - - // 遍历每一行数据 - nextRow: - for (int i = 0; i <= lastRow; i++) { - historyDetailPO = new JclImportHistoryDetailPO(); - historyDetailPO.setPid(importHistoryId); - XSSFRow row = sheetAt.getRow(i); - // 组装待处理数据 - Map map = new HashMap<>(); - SchemePO schemePO = new SchemePO(); - SchemePO schemeNew = new SchemePO();; - GradePO gradePO = new GradePO(); - GradePO gradeNew = new GradePO(); - LevelPO levelPO = new LevelPO(); - LevelPO levelNew = new LevelPO(); - - historyDetailPO.setRowNums(String.valueOf(i + 1)); - for (int cellIndex = 0; cellIndex < lastCellNum; cellIndex++) { - XSSFCell cell = row.getCell((short) cellIndex); - String cellValue = getCellValue(cell).trim(); - if (i == 0) { - // 首行 初始化字段信息 - ExtendInfoPO extendInfoPO = importFieldsMap.get(cellValue); - extendInfoPOS.add(extendInfoPO); - }else{ - ExtendInfoPO infoPO = extendInfoPOS.get(cellIndex); - // 数据校验 - if (infoPO.getIsrequired() == 1 && StringUtils.isBlank(cellValue)) { - historyDetailPO.setOperateDetail(infoPO.getFieldNameDesc() + "为必填项"); - historyDetailPO.setStatus("0"); - saveImportDetailLog(historyDetailPO); - continue nextRow; - } + for (int s = 0; s < workbook.getNumberOfSheets(); s++) { + // 当前sheet + XSSFSheet sheetAt = workbook.getSheetAt(s); + int lastRow = sheetAt.getLastRowNum(); + OrganizationAssert.isTrue(lastRow > 0, "导入数据为空"); + short lastCellNum = sheetAt.getRow(0).getLastCellNum(); + List extendInfoPOS = new ArrayList<>(); + + // 遍历每一行数据 + nextRow: + for (int i = 0; i <= lastRow; i++) { + historyDetailPO = new JclImportHistoryDetailPO(); + historyDetailPO.setPid(importHistoryId); + XSSFRow row = sheetAt.getRow(i); + // 组装待处理数据 + Map map = new HashMap<>(); + SchemePO schemePO = new SchemePO(); + SchemePO schemeNew = new SchemePO(); + ; + GradePO gradePO = new GradePO(); + GradePO gradeNew = new GradePO(); + LevelPO levelPO = new LevelPO(); + LevelPO levelNew = new LevelPO(); + + historyDetailPO.setRowNums(String.valueOf(i + 1)); + for (int cellIndex = 0; cellIndex < lastCellNum; cellIndex++) { + XSSFCell cell = row.getCell((short) cellIndex); + String cellValue = getCellValue(cell).trim(); + if (i == 0) { + // 首行 初始化字段信息 + ExtendInfoPO extendInfoPO = importFieldsMap.get(cellValue); + extendInfoPOS.add(extendInfoPO); + } else { + ExtendInfoPO infoPO = extendInfoPOS.get(cellIndex); + // 数据校验 + if (infoPO.getIsrequired() == 1 && StringUtils.isBlank(cellValue)) { + historyDetailPO.setOperateDetail(infoPO.getFieldNameDesc() + "为必填项"); + historyDetailPO.setStatus("0"); + saveImportDetailLog(historyDetailPO); + continue nextRow; + } - Object reallyValue; - try { - // 数据格式转换 - reallyValue = getReallyValue(infoPO, cellValue); - } catch (Exception e) { - historyDetailPO.setOperateDetail(cellValue + "转换失败"); - historyDetailPO.setStatus("0"); - saveImportDetailLog(historyDetailPO); - continue nextRow; - } - if (StringUtils.isNotBlank(cellValue) && StringUtils.isBlank(Util.null2String(reallyValue)) && !"ec_company".equals(infoPO.getFieldName()) && !"ec_department".equals(infoPO.getFieldName())) { - historyDetailPO.setOperateDetail(infoPO.getFieldNameDesc() + "数据转换失败,未找到对应数据"); - historyDetailPO.setStatus("0"); - saveImportDetailLog(historyDetailPO); - continue nextRow; + Object reallyValue; + try { + // 数据格式转换 + reallyValue = getReallyValue(infoPO, cellValue); + } catch (Exception e) { + historyDetailPO.setOperateDetail(cellValue + "转换失败"); + historyDetailPO.setStatus("0"); + saveImportDetailLog(historyDetailPO); + continue nextRow; + } + if (StringUtils.isNotBlank(cellValue) && StringUtils.isBlank(Util.null2String(reallyValue)) && !"ec_company".equals(infoPO.getFieldName()) && !"ec_department".equals(infoPO.getFieldName())) { + historyDetailPO.setOperateDetail(infoPO.getFieldNameDesc() + "数据转换失败,未找到对应数据"); + historyDetailPO.setStatus("0"); + saveImportDetailLog(historyDetailPO); + continue nextRow; + } + map.put(infoPO.getFieldName(), reallyValue); + // 方案页校验 + if ("scheme_no".equals(infoPO.getFieldName()) && s == 0) { + List schemePOS = MapperProxyFactory.getProxy(SchemeMapper.class).listByNo(Util.null2String(reallyValue)); + if (schemePOS.size() > 0) { + historyDetailPO.setOperateDetail("方案页导入:方案编号[" + reallyValue + "]与原有编号重复"); + historyDetailPO.setRelatedName(infoPO.getFieldName()); + historyDetailPO.setStatus("0"); + saveImportDetailLog(historyDetailPO); + continue nextRow; + } + } + // 职等页校验 + if ("scheme_no".equals(infoPO.getFieldName()) && s == 1) { + List schemePOS = MapperProxyFactory.getProxy(SchemeMapper.class).listByNo(Util.null2String(reallyValue)); + if (schemePOS.size() == 0) { + historyDetailPO.setOperateDetail("职等页导入:未找到编号为[" + reallyValue + "]的方案"); + historyDetailPO.setRelatedName(infoPO.getFieldName()); + historyDetailPO.setStatus("0"); + saveImportDetailLog(historyDetailPO); + continue nextRow; + } + } + // 职级页校验 + if ("scheme_no".equals(infoPO.getFieldName()) && s == 2) { + List schemePOS = MapperProxyFactory.getProxy(SchemeMapper.class).listByNo(Util.null2String(reallyValue)); + if (schemePOS.size() == 0) { + historyDetailPO.setOperateDetail("职级页导入:未找到编号为[" + reallyValue + "]的方案"); + historyDetailPO.setRelatedName(infoPO.getFieldName()); + historyDetailPO.setStatus("0"); + saveImportDetailLog(historyDetailPO); + continue nextRow; + } + } + if ("level_no".equals(infoPO.getFieldName()) && s == 2) { + List levelPOS = MapperProxyFactory.getProxy(LevelMapper.class).listByNo(Util.null2String(reallyValue)); + if (levelPOS.size() == 0) { + historyDetailPO.setOperateDetail("职级页导入:未找到编号为[" + reallyValue + "]的职等"); + historyDetailPO.setRelatedName(infoPO.getFieldName()); + historyDetailPO.setStatus("0"); + saveImportDetailLog(historyDetailPO); + continue nextRow; + } + } } - map.put(infoPO.getFieldName(), reallyValue); - } - } - // 校验、数据交互 - if (i == 0){ - continue; - } - - map.put("creator", user.getUID()); - map.put("delete_type", 0); - Date currDate = new Date(); - map.put("create_time", currDate); - map.put("update_time", currDate); - // 禁用表示为空,默认启用 - map.put("forbidden_tag", 0); - map.put("is_used", 1); - if ("add".equals(operateType)) { - schemePO.setSchemeNo((String)map.get("scheme_no")); - schemePO.setSchemeName((String)map.get("scheme_name")); - schemePO.setSchemeDescription((String)map.get("scheme_description")); - schemePO.setForbiddenTag((int)map.get("forbidden_tag")); - schemePO.setIsUsed(1); - schemePO.setCreator((long) user.getUID()); - schemePO.setDeleteType((int)map.get("delete_type")); - schemePO.setCreateTime((Date) map.get("create_time")); - schemePO.setUpdateTime((Date) map.get("update_time")); - - schemeNew = MapperProxyFactory.getProxy(SchemeMapper.class).getSchemeByNo(schemePO.getSchemeNo()); - if (schemeNew==null){ - MapperProxyFactory.getProxy(SchemeMapper.class).insertIgnoreNull(schemePO); - }else{ - historyDetailPO.setOperateDetail("方案编号"+schemePO.getSchemeNo()+"与原有编号重复"); - historyDetailPO.setStatus("0"); - saveImportDetailLog(historyDetailPO); } - - // 新增完成后,再次插入 - schemeNew = MapperProxyFactory.getProxy(SchemeMapper.class).getSchemeByNo(schemePO.getSchemeNo()); - levelPO.setLevelNo((String) map.get("level_no")); - levelPO.setLevelName((String) map.get("level_name")); - levelPO.setDescription((String) map.get("level_description")); - //关联方案id - levelPO.setSchemeId(schemeNew.getId()); - levelPO.setForbiddenTag((int) map.get("forbidden_tag")); - levelPO.setIsUsed(1); - levelPO.setCreator((long) user.getUID()); - levelPO.setDeleteType((int)map.get("delete_type")); - levelPO.setCreateTime((Date) map.get("create_time")); - levelPO.setUpdateTime((Date) map.get("update_time")); - - levelNew = MapperProxyFactory.getProxy(LevelMapper.class).getLevelByNoAndSid(levelPO.getLevelNo(),schemeNew.getId()); - if(levelNew==null){ - MapperProxyFactory.getProxy(LevelMapper.class).insertIgnoreNull(levelPO); + // 校验、数据交互 + if (i == 0) { + continue; } - levelNew = MapperProxyFactory.getProxy(LevelMapper.class).getLevelByNoAndSid(levelPO.getLevelNo(),schemeNew.getId()); - gradePO.setGradeNo((String) map.get("grade_no")); - gradePO.setGradeName((String) map.get("grade_name")); - gradePO.setDescription((String) map.get("grade_description")); - // 关联方案id - gradePO.setSchemeId(schemeNew.getId()); - // 关联职等id - gradePO.setLevelId(String.valueOf(levelNew.getId())); - gradePO.setGradeNo((String) map.get("grade_no")); - gradePO.setForbiddenTag((int) map.get("forbidden_tag")); - gradePO.setIsUsed(1); - gradePO.setCreator((long) user.getUID()); - gradePO.setDeleteType((int)map.get("delete_type")); - gradePO.setCreateTime((Date) map.get("create_time")); - gradePO.setUpdateTime((Date) map.get("update_time")); - - gradeNew = MapperProxyFactory.getProxy(GradeMapper.class).getGradeByNoAndSid(gradePO.getGradeNo(),gradePO.getSchemeId()); - if (gradeNew != null) { - //职级已存在,重新拼接level_id - gradePO.setLevelId(gradeNew.getLevelId()+","+levelNew.getId()); - - gradePO.setId(gradeNew.getId()); - gradePO.setCreateTime(null); - gradePO.setUpdateTime(new Date()); - MapperProxyFactory.getProxy(GradeMapper.class).updateGrade(gradePO); - }else{ - MapperProxyFactory.getProxy(GradeMapper.class).insertIgnoreNull(gradePO); - } + map.put("creator", user.getUID()); + map.put("delete_type", 0); + Date currDate = new Date(); + map.put("create_time", currDate); + map.put("update_time", currDate); + // 禁用表示为空,默认启用 + map.put("forbidden_tag", 0); + map.put("is_used", 1); + if ("add".equals(operateType)) { + if (s == 0) { + schemePO.setSchemeNo((String) map.get("scheme_no")); + schemePO.setSchemeName((String) map.get("scheme_name")); + schemePO.setSchemeDescription((String) map.get("scheme_description")); + schemePO.setForbiddenTag((int) map.get("forbidden_tag")); + schemePO.setIsUsed(1); + schemePO.setCreator((long) user.getUID()); + schemePO.setDeleteType((int) map.get("delete_type")); + schemePO.setCreateTime((Date) map.get("create_time")); + schemePO.setUpdateTime((Date) map.get("update_time")); + + MapperProxyFactory.getProxy(SchemeMapper.class).insertIgnoreNull(schemePO); + } else if (s == 1) { + String schemeNo = (String) map.get("scheme_no"); + String levelNo = (String) map.get("level_no"); + schemeNew = MapperProxyFactory.getProxy(SchemeMapper.class).getSchemeByNo(schemeNo); + if (schemeNew != null) { + levelNew = MapperProxyFactory.getProxy(LevelMapper.class).getLevelByNoAndSid(levelNo, schemeNew.getId()); + if (levelNew != null) { + historyDetailPO.setRelatedName("职等页导入"); + historyDetailPO.setOperateDetail("同一方案" + schemeNo + "下,职等编号不可重复"); + historyDetailPO.setStatus("0"); + saveImportDetailLog(historyDetailPO); + continue nextRow; + } else { + levelPO.setLevelNo(levelNo); + levelPO.setLevelName((String) map.get("level_name")); + levelPO.setDescription((String) map.get("level_description")); + //关联方案id + levelPO.setSchemeId(schemeNew.getId()); + levelPO.setForbiddenTag((int) map.get("forbidden_tag")); + levelPO.setIsUsed(1); + levelPO.setCreator((long) user.getUID()); + levelPO.setDeleteType((int) map.get("delete_type")); + levelPO.setCreateTime((Date) map.get("create_time")); + levelPO.setUpdateTime((Date) map.get("update_time")); + MapperProxyFactory.getProxy(LevelMapper.class).insertIgnoreNull(levelPO); + } + } + } else if (s == 2) { + String gradeNo = (String) map.get("grade_no"); + String schemeNo = (String) map.get("scheme_no"); + String levelNo = (String) map.get("level_no"); + + schemeNew = MapperProxyFactory.getProxy(SchemeMapper.class).getSchemeByNo(schemeNo); + levelNew = MapperProxyFactory.getProxy(LevelMapper.class).getLevelByNoAndSid(levelNo, schemeNew.getId()); + gradeNew = MapperProxyFactory.getProxy(GradeMapper.class).getGradeByNoAndSid(gradeNo, schemeNew.getId()); + + gradePO.setGradeNo(gradeNo); + gradePO.setGradeName((String) map.get("grade_name")); + gradePO.setDescription((String) map.get("grade_description")); + // 关联方案id + gradePO.setSchemeId(schemeNew.getId()); + // 关联职等id + gradePO.setLevelId(String.valueOf(levelNew.getId())); + gradePO.setGradeNo((String) map.get("grade_no")); + gradePO.setForbiddenTag((int) map.get("forbidden_tag")); + gradePO.setIsUsed(1); + gradePO.setCreator((long) user.getUID()); + gradePO.setDeleteType((int) map.get("delete_type")); + gradePO.setCreateTime((Date) map.get("create_time")); + gradePO.setUpdateTime((Date) map.get("update_time")); + if (gradeNew != null) { + //职级已存在,重新拼接level_id + gradePO.setLevelId(gradeNew.getLevelId() + "," + levelNew.getId()); + + gradePO.setId(gradeNew.getId()); + gradePO.setCreateTime(null); + gradePO.setUpdateTime(new Date()); + MapperProxyFactory.getProxy(GradeMapper.class).updateGrade(gradePO); + } else { + MapperProxyFactory.getProxy(GradeMapper.class).insertIgnoreNull(gradePO); + } + } - historyDetailPO.setOperateDetail("添加成功"); - historyDetailPO.setStatus("1"); - saveImportDetailLog(historyDetailPO); - }else if ("update".equals(operateType)) { - schemeNew = MapperProxyFactory.getProxy(SchemeMapper.class).getSchemeByNo((String)map.get("scheme_no")); - if(schemeNew!=null){ - schemeNew.setSchemeNo((String)map.get("scheme_no")); - schemeNew.setSchemeName((String)map.get("scheme_name")); - schemeNew.setSchemeDescription((String)map.get("scheme_description")); - schemeNew.setUpdateTime((Date) map.get("update_time")); - MapperProxyFactory.getProxy(SchemeMapper.class).updateScheme(schemeNew); - }else{ - schemeNew.setSchemeNo((String)map.get("scheme_no")); - schemeNew.setSchemeName((String)map.get("scheme_name")); - schemeNew.setSchemeDescription((String)map.get("scheme_description")); - schemeNew.setForbiddenTag((int)map.get("forbidden_tag")); - schemeNew.setIsUsed(1); - schemeNew.setCreator((long) user.getUID()); - schemeNew.setDeleteType((int)map.get("delete_type")); - schemeNew.setCreateTime((Date) map.get("create_time")); - schemeNew.setUpdateTime((Date) map.get("update_time")); - MapperProxyFactory.getProxy(SchemeMapper.class).insertIgnoreNull(schemeNew); - } + historyDetailPO.setOperateDetail("添加成功"); + historyDetailPO.setStatus("1"); + saveImportDetailLog(historyDetailPO); + } else if ("update".equals(operateType)) { + schemeNew = MapperProxyFactory.getProxy(SchemeMapper.class).getSchemeByNo((String) map.get("scheme_no")); + if (schemeNew != null) { + schemeNew.setSchemeNo((String) map.get("scheme_no")); + schemeNew.setSchemeName((String) map.get("scheme_name")); + schemeNew.setSchemeDescription((String) map.get("scheme_description")); + schemeNew.setUpdateTime((Date) map.get("update_time")); + MapperProxyFactory.getProxy(SchemeMapper.class).updateScheme(schemeNew); + } else { + schemeNew.setSchemeNo((String) map.get("scheme_no")); + schemeNew.setSchemeName((String) map.get("scheme_name")); + schemeNew.setSchemeDescription((String) map.get("scheme_description")); + schemeNew.setForbiddenTag((int) map.get("forbidden_tag")); + schemeNew.setIsUsed(1); + schemeNew.setCreator((long) user.getUID()); + schemeNew.setDeleteType((int) map.get("delete_type")); + schemeNew.setCreateTime((Date) map.get("create_time")); + schemeNew.setUpdateTime((Date) map.get("update_time")); + MapperProxyFactory.getProxy(SchemeMapper.class).insertIgnoreNull(schemeNew); + } - //查询职等信息 - schemeNew = MapperProxyFactory.getProxy(SchemeMapper.class).getSchemeByNo((String)map.get("scheme_no")); - levelNew = MapperProxyFactory.getProxy(LevelMapper.class).getLevelByNoAndSid((String) map.get("level_no"),schemeNew.getId()); - if(levelNew!=null){ - levelNew.setLevelNo((String) map.get("level_no")); - levelNew.setLevelName((String) map.get("level_name")); - levelNew.setDescription((String) map.get("level_description")); - //关联方案id - levelNew.setSchemeId(schemeNew.getId()); - levelNew.setUpdateTime((Date) map.get("update_time")); - MapperProxyFactory.getProxy(LevelMapper.class).updateLevel(levelNew); - }else{ - levelNew.setLevelNo((String) map.get("level_no")); - levelNew.setLevelName((String) map.get("level_name")); - levelNew.setDescription((String) map.get("level_description")); - //关联方案id - levelNew.setSchemeId(schemeNew.getId()); - levelNew.setForbiddenTag((int) map.get("forbidden_tag")); - levelNew.setIsUsed(1); - levelNew.setCreator((long) user.getUID()); - levelNew.setDeleteType((int)map.get("delete_type")); - levelNew.setCreateTime((Date) map.get("create_time")); - levelNew.setUpdateTime((Date) map.get("update_time")); - MapperProxyFactory.getProxy(LevelMapper.class).insertIgnoreNull(levelNew); - } + //查询职等信息 + schemeNew = MapperProxyFactory.getProxy(SchemeMapper.class).getSchemeByNo((String) map.get("scheme_no")); + levelNew = MapperProxyFactory.getProxy(LevelMapper.class).getLevelByNoAndSid((String) map.get("level_no"), schemeNew.getId()); + if (levelNew != null) { + levelNew.setLevelNo((String) map.get("level_no")); + levelNew.setLevelName((String) map.get("level_name")); + levelNew.setDescription((String) map.get("level_description")); + //关联方案id + levelNew.setSchemeId(schemeNew.getId()); + levelNew.setUpdateTime((Date) map.get("update_time")); + MapperProxyFactory.getProxy(LevelMapper.class).updateLevel(levelNew); + } else { + levelNew.setLevelNo((String) map.get("level_no")); + levelNew.setLevelName((String) map.get("level_name")); + levelNew.setDescription((String) map.get("level_description")); + //关联方案id + levelNew.setSchemeId(schemeNew.getId()); + levelNew.setForbiddenTag((int) map.get("forbidden_tag")); + levelNew.setIsUsed(1); + levelNew.setCreator((long) user.getUID()); + levelNew.setDeleteType((int) map.get("delete_type")); + levelNew.setCreateTime((Date) map.get("create_time")); + levelNew.setUpdateTime((Date) map.get("update_time")); + MapperProxyFactory.getProxy(LevelMapper.class).insertIgnoreNull(levelNew); + } - gradeNew = MapperProxyFactory.getProxy(GradeMapper.class).getGradeByNoAndSid((String) map.get("grade_no"),schemeNew.getId()); - if(gradeNew!=null){ - gradeNew.setGradeNo((String) map.get("grade_no")); - gradeNew.setGradeName((String) map.get("grade_name")); - gradeNew.setDescription((String) map.get("grade_description")); - // 关联方案id - gradeNew.setSchemeId(schemeNew.getId()); - // 关联职等id - gradeNew.setLevelId(String.valueOf(levelNew.getId())); - gradeNew.setUpdateTime((Date) map.get("update_time")); - GradePO gradePOTmp = MapperProxyFactory.getProxy(GradeMapper.class).getGradeByID(gradeNew.getId()); - if(gradePOTmp!=null){ - - MapperProxyFactory.getProxy(GradeMapper.class).updateGrade(gradeNew); + gradeNew = MapperProxyFactory.getProxy(GradeMapper.class).getGradeByNoAndSid((String) map.get("grade_no"), schemeNew.getId()); + if (gradeNew != null) { + gradeNew.setGradeNo((String) map.get("grade_no")); + gradeNew.setGradeName((String) map.get("grade_name")); + gradeNew.setDescription((String) map.get("grade_description")); + // 关联方案id + gradeNew.setSchemeId(schemeNew.getId()); + // 关联职等id + gradeNew.setLevelId(String.valueOf(levelNew.getId())); + gradeNew.setUpdateTime((Date) map.get("update_time")); + GradePO gradePOTmp = MapperProxyFactory.getProxy(GradeMapper.class).getGradeByID(gradeNew.getId()); + if (gradePOTmp != null) { + + MapperProxyFactory.getProxy(GradeMapper.class).updateGrade(gradeNew); + } + } else { + MapperProxyFactory.getProxy(GradeMapper.class).insertIgnoreNull(gradePO); } - }else{ - MapperProxyFactory.getProxy(GradeMapper.class).insertIgnoreNull(gradePO); } - } + } } return importHistoryId; } @@ -1863,6 +1917,9 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ // 根据选择字段、生成对应的导入模板 String[] split = columns.split(","); List columnList = new ArrayList<>(Arrays.asList(split)); + List schemeList = new ArrayList<>(); + List levelList = new ArrayList<>(); + List gradeList = new ArrayList<>(); Object companyColumn = ""; Object departmentColumn = ""; // 排序 @@ -1882,6 +1939,36 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ departmentColumn = column; iterator.remove(); } + if("方案编号".equals(column)){ + schemeList.add(column); + levelList.add(column); + gradeList.add(column); + } + if("方案名称".equals(column)){ + schemeList.add(column); + } + if("方案说明".equals(column)){ + schemeList.add(column); + } + if("职等编号".equals(column)){ + levelList.add(column); + gradeList.add(column); + } + if("职等名称".equals(column)){ + levelList.add(column); + } + if("职等说明".equals(column)){ + levelList.add(column); + } + if("职级编号".equals(column)){ + gradeList.add(column); + } + if("职级名称".equals(column)){ + gradeList.add(column); + } + if("职级说明".equals(column)){ + gradeList.add(column); + } } if (StringUtils.isNotBlank(departmentColumn.toString())) { columnList.add(0, departmentColumn); @@ -1894,7 +1981,20 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ List> excelSheetData = new ArrayList<>(); excelSheetData.add(columnList); String outPutPath = GCONST.getRootPath() + "hrm" + File.separator + "import" + File.separator + "template" + File.separator + user.getUID(); - XSSFWorkbook sheets = ExcelUtil.genWorkbookV2(excelSheetData, importType); + XSSFWorkbook sheets = new XSSFWorkbook(); + if ("joblevel".equals(importType)) { + excelSheetData.clear(); + excelSheetData.add(schemeList); + ExcelUtil.genWorkbookV3(sheets,excelSheetData,0, "方案"); + excelSheetData.clear(); + excelSheetData.add(levelList); + ExcelUtil.genWorkbookV3(sheets,excelSheetData,1, "职等"); + excelSheetData.clear(); + excelSheetData.add(gradeList); + ExcelUtil.genWorkbookV3(sheets,excelSheetData,2, "职级"); + }else{ + sheets = ExcelUtil.genWorkbookV2(excelSheetData, importType); + } String excelPath = outPutPath + File.separator + importType + ".xls"; File excelPathFile = new File(excelPath); if (!excelPathFile.exists()) { diff --git a/src/com/engine/organization/util/excel/ExcelUtil.java b/src/com/engine/organization/util/excel/ExcelUtil.java index 0a9f0acc..79e339ee 100644 --- a/src/com/engine/organization/util/excel/ExcelUtil.java +++ b/src/com/engine/organization/util/excel/ExcelUtil.java @@ -125,6 +125,65 @@ public class ExcelUtil { } return workbook; } + public static XSSFWorkbook genWorkbookV3(XSSFWorkbook workbook,List> rowList,int sheetNum, String sheetName) { +// XSSFWorkbook workbook = new XSSFWorkbook(); + + // 设置title样式 + XSSFCellStyle titleCellStyle = workbook.createCellStyle(); + XSSFFont titleFont = workbook.createFont(); + titleFont.setFontName("仿宋"); + titleFont.setFontHeightInPoints((short) 15); + titleCellStyle.setFont(titleFont); + titleCellStyle.setAlignment(HorizontalAlignment.CENTER); + titleCellStyle.setFillForegroundColor(IndexedColors.GREEN.getIndex());//背景色 + titleCellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); + + + // 设置主体样式 + XSSFCellStyle cellStyle = workbook.createCellStyle(); + XSSFFont font = workbook.createFont(); + font.setFontName("宋体"); + font.setFontHeightInPoints((short) 10);// 设置字体大小 + cellStyle.setFont(font);// 选择需要用到的字体格式 + cellStyle.setWrapText(true); + + XSSFSheet sheet = workbook.createSheet(); + workbook.setSheetName(sheetNum,sheetName); + //自适应宽度 + sheet.autoSizeColumn(0, true); + //默认列宽 + sheet.setDefaultColumnWidth(25); + //默认行高 + sheet.setDefaultRowHeightInPoints(18); + + for (int rowIndex = 0; rowIndex < rowList.size(); rowIndex++) { + List infoList = rowList.get(rowIndex); + XSSFRow row = sheet.createRow(rowIndex); + for (int cellIndex = 0; cellIndex < infoList.size(); cellIndex++) { + XSSFCell cell = row.createCell(cellIndex); + if (rowIndex == 0) { + cell.setCellStyle(titleCellStyle); + } else { + cell.setCellStyle(cellStyle); + } + Object o = infoList.get(cellIndex); + if (o instanceof String) { + cell.setCellType(CellType.STRING); + cell.setCellValue(String.valueOf(o)); + } else if (o instanceof Boolean) { + cell.setCellType(CellType.BOOLEAN); + cell.setCellValue(String.valueOf(o)); + } else if (o instanceof Date) { + cell.setCellType(CellType.STRING); + cell.setCellValue(OrganizationDateUtil.getFormatLocalDate((Date) o)); + } else { + cell.setCellType(CellType.STRING); + cell.setCellValue(o == null ? "" : o.toString()); + } + } + } + return workbook; + } public static XSSFWorkbook genWorkbookV2(List> rowList, String sheetName, List comments) { diff --git a/src/com/engine/organization/util/saveimport/PostInfoImportUtil.java b/src/com/engine/organization/util/saveimport/PostInfoImportUtil.java index 65332a36..a18b732e 100644 --- a/src/com/engine/organization/util/saveimport/PostInfoImportUtil.java +++ b/src/com/engine/organization/util/saveimport/PostInfoImportUtil.java @@ -15,13 +15,13 @@ public class PostInfoImportUtil { static { importFieldsMap = new HashMap<>(); - importFieldsMap.put("编号", ExtendInfoPO.builder().tableName("jcl_org_post").fieldName("post_no").fieldNameDesc("方案编号").isrequired(1).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); - importFieldsMap.put("名称", ExtendInfoPO.builder().tableName("jcl_org_post").fieldName("post_name").fieldNameDesc("方案名称").isrequired(0).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); - importFieldsMap.put("权限", ExtendInfoPO.builder().tableName("jcl_org_post").fieldName("comp_id").fieldNameDesc("分部").isrequired(1).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); - importFieldsMap.put("责任", ExtendInfoPO.builder().tableName("jcl_org_post").fieldName("dept_id").fieldNameDesc("部门").isrequired(0).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); - importFieldsMap.put("资格", ExtendInfoPO.builder().tableName("jcl_org_post").fieldName("job_id").fieldNameDesc("岗位").isrequired(0).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); - importFieldsMap.put("职务分类", ExtendInfoPO.builder().tableName("jcl_org_post").fieldName("staff_num").fieldNameDesc("编制数").isrequired(1).controlType(1).browserType("2").customValue("[\"input\",\"int\"]").build()); - importFieldsMap.put("描述说明", ExtendInfoPO.builder().tableName("jcl_org_post").fieldName("staff_num").fieldNameDesc("编制数").isrequired(1).controlType(1).browserType("2").customValue("[\"input\",\"int\"]").build()); + importFieldsMap.put("编号", ExtendInfoPO.builder().tableName("jcl_org_post").fieldName("post_no").fieldNameDesc("编号").isrequired(1).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); + importFieldsMap.put("名称", ExtendInfoPO.builder().tableName("jcl_org_post").fieldName("post_name").fieldNameDesc("名称").isrequired(1).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); + importFieldsMap.put("权限", ExtendInfoPO.builder().tableName("jcl_org_post").fieldName("post_info_authority").fieldNameDesc("权限").isrequired(0).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); + importFieldsMap.put("责任", ExtendInfoPO.builder().tableName("jcl_org_post").fieldName("post_info_duty").fieldNameDesc("责任").isrequired(0).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); + importFieldsMap.put("资格", ExtendInfoPO.builder().tableName("jcl_org_post").fieldName("post_info_qualification").fieldNameDesc("资格").isrequired(0).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); + importFieldsMap.put("职务分类", ExtendInfoPO.builder().tableName("jcl_org_post").fieldName("post_id").fieldNameDesc("职务分类").isrequired(1).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); + importFieldsMap.put("描述说明", ExtendInfoPO.builder().tableName("jcl_org_post").fieldName("description").fieldNameDesc("说明").isrequired(0).controlType(1).browserType("1").customValue("[\"input\",\"text\",\"100\"]").build()); } From 94c1102c91732cfb4ef878294d45db4b81e16e0f Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Fri, 11 Nov 2022 09:14:30 +0800 Subject: [PATCH 27/34] =?UTF-8?q?sql=E5=A2=9E=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/表结构SQL/MySQL.sql | 6 +++--- docs/表结构SQL/SqlServer.sql | 37 ++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/docs/表结构SQL/MySQL.sql b/docs/表结构SQL/MySQL.sql index e203c978..20cd2025 100644 --- a/docs/表结构SQL/MySQL.sql +++ b/docs/表结构SQL/MySQL.sql @@ -580,12 +580,12 @@ create table JCL_ORG_CARDACCESS ( -- JCL_ORG_CARDBUTTON create table JCL_ORG_CARDBUTTON ( - id BIGINT auto_increment not null, + id int auto_increment not null, name varchar(255) not null, status int null, url varchar(255) null, - role varchar(2000) null, - defaults int not null, + roles varchar(2000) null, + sys_default int not null, creator int null, delete_type int null, create_time date null, diff --git a/docs/表结构SQL/SqlServer.sql b/docs/表结构SQL/SqlServer.sql index 77fe7efc..8bdb7c43 100644 --- a/docs/表结构SQL/SqlServer.sql +++ b/docs/表结构SQL/SqlServer.sql @@ -532,4 +532,41 @@ create table JCL_ORG_DETACH ( create_time date null, update_time date null, constraint JCL_ORG_DETACH_PK primary key (id) +); + + + +-- DROP TABLE JCL_ORG_CARDACCESS; +CREATE TABLE JCL_ORG_CARDACCESS ( + id int IDENTITY(1,1) NOT NULL, + type_id int NOT NULL, + type_name varchar(50) NOT NULL, + status int NULL, + all_people int NULL, + superior int NULL, + all_superior int NULL, + custom varchar(2000) NULL, + delete_type int NULL, + creator int NULL, + create_time date NULL, + update_time date NULL, + CONSTRAINT JCL_ORG_CARDACCESS_PK PRIMARY KEY (id) +); + + + + +-- DROP TABLE JCL_ORG_CARDBUTTON; +CREATE TABLE JCL_ORG_CARDBUTTON ( + id int IDENTITY(1,1) NOT NULL, + name varchar(255) NOT NULL, + status int NULL, + url varchar(255) NULL, + roles varchar(2000) NULL, + sys_default int NOT NULL, + creator int NULL, + delete_type int NULL, + create_time date NULL, + update_time date NULL, + CONSTRAINT JCL_ORG_CARDBUTTON_PK PRIMARY KEY (id) ); \ No newline at end of file From 9517ad15d6487c22691f336cd81d001d91d5cc69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=98ml=E2=80=99?= Date: Fri, 11 Nov 2022 10:36:49 +0800 Subject: [PATCH 28/34] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=81=8C=E7=BA=A7?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E5=AD=97=E6=AE=B5=E9=A1=BA=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ImportCommonServiceImpl.java | 66 +++++++++++-------- 1 file changed, 40 insertions(+), 26 deletions(-) diff --git a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java index 37399001..99354f82 100644 --- a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java +++ b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java @@ -1573,7 +1573,7 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ List schemePOS = MapperProxyFactory.getProxy(SchemeMapper.class).listByNo(Util.null2String(reallyValue)); if (schemePOS.size() > 0) { historyDetailPO.setOperateDetail("方案页导入:方案编号[" + reallyValue + "]与原有编号重复"); - historyDetailPO.setRelatedName(infoPO.getFieldName()); + historyDetailPO.setRelatedName(cellValue); historyDetailPO.setStatus("0"); saveImportDetailLog(historyDetailPO); continue nextRow; @@ -1584,7 +1584,7 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ List schemePOS = MapperProxyFactory.getProxy(SchemeMapper.class).listByNo(Util.null2String(reallyValue)); if (schemePOS.size() == 0) { historyDetailPO.setOperateDetail("职等页导入:未找到编号为[" + reallyValue + "]的方案"); - historyDetailPO.setRelatedName(infoPO.getFieldName()); + historyDetailPO.setRelatedName(cellValue); historyDetailPO.setStatus("0"); saveImportDetailLog(historyDetailPO); continue nextRow; @@ -1595,20 +1595,25 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ List schemePOS = MapperProxyFactory.getProxy(SchemeMapper.class).listByNo(Util.null2String(reallyValue)); if (schemePOS.size() == 0) { historyDetailPO.setOperateDetail("职级页导入:未找到编号为[" + reallyValue + "]的方案"); - historyDetailPO.setRelatedName(infoPO.getFieldName()); + historyDetailPO.setRelatedName(cellValue); historyDetailPO.setStatus("0"); saveImportDetailLog(historyDetailPO); continue nextRow; } } if ("level_no".equals(infoPO.getFieldName()) && s == 2) { - List levelPOS = MapperProxyFactory.getProxy(LevelMapper.class).listByNo(Util.null2String(reallyValue)); - if (levelPOS.size() == 0) { - historyDetailPO.setOperateDetail("职级页导入:未找到编号为[" + reallyValue + "]的职等"); - historyDetailPO.setRelatedName(infoPO.getFieldName()); - historyDetailPO.setStatus("0"); - saveImportDetailLog(historyDetailPO); - continue nextRow; + String[] split = Util.null2String(reallyValue).split(","); + if (split.length > 0) { + for (int index = 0; index < split.length - 1; index++) { + List levelPOS = MapperProxyFactory.getProxy(LevelMapper.class).listByNo(split[index]); + if (levelPOS.size() == 0) { + historyDetailPO.setOperateDetail("职级页导入:未找到编号为[" + reallyValue + "]的职等"); + historyDetailPO.setRelatedName(cellValue); + historyDetailPO.setStatus("0"); + saveImportDetailLog(historyDetailPO); + continue nextRow; + } + } } } } @@ -1646,8 +1651,8 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ if (schemeNew != null) { levelNew = MapperProxyFactory.getProxy(LevelMapper.class).getLevelByNoAndSid(levelNo, schemeNew.getId()); if (levelNew != null) { - historyDetailPO.setRelatedName("职等页导入"); - historyDetailPO.setOperateDetail("同一方案" + schemeNo + "下,职等编号不可重复"); + historyDetailPO.setRelatedName("职等编号"); + historyDetailPO.setOperateDetail("职等页导入:同一方案" + schemeNo + "下,职等编号不可重复"); historyDetailPO.setStatus("0"); saveImportDetailLog(historyDetailPO); continue nextRow; @@ -1672,7 +1677,6 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ String levelNo = (String) map.get("level_no"); schemeNew = MapperProxyFactory.getProxy(SchemeMapper.class).getSchemeByNo(schemeNo); - levelNew = MapperProxyFactory.getProxy(LevelMapper.class).getLevelByNoAndSid(levelNo, schemeNew.getId()); gradeNew = MapperProxyFactory.getProxy(GradeMapper.class).getGradeByNoAndSid(gradeNo, schemeNew.getId()); gradePO.setGradeNo(gradeNo); @@ -1681,7 +1685,6 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ // 关联方案id gradePO.setSchemeId(schemeNew.getId()); // 关联职等id - gradePO.setLevelId(String.valueOf(levelNew.getId())); gradePO.setGradeNo((String) map.get("grade_no")); gradePO.setForbiddenTag((int) map.get("forbidden_tag")); gradePO.setIsUsed(1); @@ -1689,15 +1692,26 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ gradePO.setDeleteType((int) map.get("delete_type")); gradePO.setCreateTime((Date) map.get("create_time")); gradePO.setUpdateTime((Date) map.get("update_time")); + String[] split = levelNo.split(","); + String levelIds = null; + if (split.length > 0) { + for (int index = 0; index < split.length; index++) { + levelNew = MapperProxyFactory.getProxy(LevelMapper.class).getLevelByNoAndSid(split[index], schemeNew.getId()); + if(levelIds!=null){ + levelIds = levelIds+ "," +levelNew.getId(); + }else { + levelIds = String.valueOf(levelNew.getId()); + } + } + } if (gradeNew != null) { - //职级已存在,重新拼接level_id - gradePO.setLevelId(gradeNew.getLevelId() + "," + levelNew.getId()); - - gradePO.setId(gradeNew.getId()); - gradePO.setCreateTime(null); - gradePO.setUpdateTime(new Date()); - MapperProxyFactory.getProxy(GradeMapper.class).updateGrade(gradePO); - } else { + historyDetailPO.setRelatedName("职级编号"); + historyDetailPO.setOperateDetail("职级页导入:同一方案[" + schemeNo + "]下,职级编号不可重复"); + historyDetailPO.setStatus("0"); + saveImportDetailLog(historyDetailPO); + continue nextRow; + }else{ + gradePO.setLevelId(levelIds); MapperProxyFactory.getProxy(GradeMapper.class).insertIgnoreNull(gradePO); } } @@ -1951,20 +1965,20 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ schemeList.add(column); } if("职等编号".equals(column)){ - levelList.add(column); + levelList.add(0,column); gradeList.add(column); } if("职等名称".equals(column)){ - levelList.add(column); + levelList.add(1,column); } if("职等说明".equals(column)){ levelList.add(column); } if("职级编号".equals(column)){ - gradeList.add(column); + gradeList.add(0,column); } if("职级名称".equals(column)){ - gradeList.add(column); + gradeList.add(1,column); } if("职级说明".equals(column)){ gradeList.add(column); From 1baf55e04faccc5b61591d4626fb99582ae31a07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=98ml=E2=80=99?= Date: Fri, 11 Nov 2022 13:35:00 +0800 Subject: [PATCH 29/34] =?UTF-8?q?=E8=81=8C=E7=BA=A7=E8=81=8C=E7=AD=89?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ImportCommonServiceImpl.java | 202 +++++++++++------- 1 file changed, 125 insertions(+), 77 deletions(-) diff --git a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java index 99354f82..759da7c8 100644 --- a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java +++ b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java @@ -1569,11 +1569,11 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ } map.put(infoPO.getFieldName(), reallyValue); // 方案页校验 - if ("scheme_no".equals(infoPO.getFieldName()) && s == 0) { + if ("scheme_no".equals(infoPO.getFieldName()) && s == 0 && "add".equals(operateType)) { List schemePOS = MapperProxyFactory.getProxy(SchemeMapper.class).listByNo(Util.null2String(reallyValue)); if (schemePOS.size() > 0) { - historyDetailPO.setOperateDetail("方案页导入:方案编号[" + reallyValue + "]与原有编号重复"); - historyDetailPO.setRelatedName(cellValue); + historyDetailPO.setOperateDetail("方案编号[" + reallyValue + "]与原有编号重复"); + historyDetailPO.setRelatedName("方案页导入"); historyDetailPO.setStatus("0"); saveImportDetailLog(historyDetailPO); continue nextRow; @@ -1583,8 +1583,8 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ if ("scheme_no".equals(infoPO.getFieldName()) && s == 1) { List schemePOS = MapperProxyFactory.getProxy(SchemeMapper.class).listByNo(Util.null2String(reallyValue)); if (schemePOS.size() == 0) { - historyDetailPO.setOperateDetail("职等页导入:未找到编号为[" + reallyValue + "]的方案"); - historyDetailPO.setRelatedName(cellValue); + historyDetailPO.setOperateDetail("未找到编号为[" + reallyValue + "]的方案"); + historyDetailPO.setRelatedName("职等页导入"); historyDetailPO.setStatus("0"); saveImportDetailLog(historyDetailPO); continue nextRow; @@ -1594,8 +1594,8 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ if ("scheme_no".equals(infoPO.getFieldName()) && s == 2) { List schemePOS = MapperProxyFactory.getProxy(SchemeMapper.class).listByNo(Util.null2String(reallyValue)); if (schemePOS.size() == 0) { - historyDetailPO.setOperateDetail("职级页导入:未找到编号为[" + reallyValue + "]的方案"); - historyDetailPO.setRelatedName(cellValue); + historyDetailPO.setOperateDetail("未找到编号为[" + reallyValue + "]的方案"); + historyDetailPO.setRelatedName("职级页导入"); historyDetailPO.setStatus("0"); saveImportDetailLog(historyDetailPO); continue nextRow; @@ -1607,8 +1607,8 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ for (int index = 0; index < split.length - 1; index++) { List levelPOS = MapperProxyFactory.getProxy(LevelMapper.class).listByNo(split[index]); if (levelPOS.size() == 0) { - historyDetailPO.setOperateDetail("职级页导入:未找到编号为[" + reallyValue + "]的职等"); - historyDetailPO.setRelatedName(cellValue); + historyDetailPO.setOperateDetail("未找到编号为[" + reallyValue + "]的职等"); + historyDetailPO.setRelatedName("职级页导入"); historyDetailPO.setStatus("0"); saveImportDetailLog(historyDetailPO); continue nextRow; @@ -1670,6 +1670,12 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ levelPO.setUpdateTime((Date) map.get("update_time")); MapperProxyFactory.getProxy(LevelMapper.class).insertIgnoreNull(levelPO); } + } else { + historyDetailPO.setRelatedName("职等页导入"); + historyDetailPO.setOperateDetail("未找到编号为[" + schemeNo + "]的方案"); + historyDetailPO.setStatus("0"); + saveImportDetailLog(historyDetailPO); + continue nextRow; } } else if (s == 2) { String gradeNo = (String) map.get("grade_no"); @@ -1677,14 +1683,27 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ String levelNo = (String) map.get("level_no"); schemeNew = MapperProxyFactory.getProxy(SchemeMapper.class).getSchemeByNo(schemeNo); + if (schemeNew == null) { + historyDetailPO.setRelatedName("职级页导入"); + historyDetailPO.setOperateDetail("未找到编号为[" + schemeNo + "]的方案"); + historyDetailPO.setStatus("0"); + saveImportDetailLog(historyDetailPO); + continue nextRow; + } gradeNew = MapperProxyFactory.getProxy(GradeMapper.class).getGradeByNoAndSid(gradeNo, schemeNew.getId()); + if (gradeNew == null) { + historyDetailPO.setRelatedName("职级页导入"); + historyDetailPO.setOperateDetail("未找到编号为[" + schemeNo + "]的职等"); + historyDetailPO.setStatus("0"); + saveImportDetailLog(historyDetailPO); + continue nextRow; + } gradePO.setGradeNo(gradeNo); gradePO.setGradeName((String) map.get("grade_name")); gradePO.setDescription((String) map.get("grade_description")); // 关联方案id gradePO.setSchemeId(schemeNew.getId()); - // 关联职等id gradePO.setGradeNo((String) map.get("grade_no")); gradePO.setForbiddenTag((int) map.get("forbidden_tag")); gradePO.setIsUsed(1); @@ -1697,20 +1716,21 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ if (split.length > 0) { for (int index = 0; index < split.length; index++) { levelNew = MapperProxyFactory.getProxy(LevelMapper.class).getLevelByNoAndSid(split[index], schemeNew.getId()); - if(levelIds!=null){ - levelIds = levelIds+ "," +levelNew.getId(); - }else { + if (levelIds != null) { + levelIds = levelIds + "," + levelNew.getId(); + } else { levelIds = String.valueOf(levelNew.getId()); } } } if (gradeNew != null) { - historyDetailPO.setRelatedName("职级编号"); - historyDetailPO.setOperateDetail("职级页导入:同一方案[" + schemeNo + "]下,职级编号不可重复"); + historyDetailPO.setRelatedName("职级页导入"); + historyDetailPO.setOperateDetail("同一方案[" + schemeNo + "]下,职级编号不可重复"); historyDetailPO.setStatus("0"); saveImportDetailLog(historyDetailPO); continue nextRow; - }else{ + } else { + // 关联职等id gradePO.setLevelId(levelIds); MapperProxyFactory.getProxy(GradeMapper.class).insertIgnoreNull(gradePO); } @@ -1720,71 +1740,99 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ historyDetailPO.setStatus("1"); saveImportDetailLog(historyDetailPO); } else if ("update".equals(operateType)) { - schemeNew = MapperProxyFactory.getProxy(SchemeMapper.class).getSchemeByNo((String) map.get("scheme_no")); - if (schemeNew != null) { - schemeNew.setSchemeNo((String) map.get("scheme_no")); - schemeNew.setSchemeName((String) map.get("scheme_name")); - schemeNew.setSchemeDescription((String) map.get("scheme_description")); - schemeNew.setUpdateTime((Date) map.get("update_time")); - MapperProxyFactory.getProxy(SchemeMapper.class).updateScheme(schemeNew); - } else { - schemeNew.setSchemeNo((String) map.get("scheme_no")); - schemeNew.setSchemeName((String) map.get("scheme_name")); - schemeNew.setSchemeDescription((String) map.get("scheme_description")); - schemeNew.setForbiddenTag((int) map.get("forbidden_tag")); - schemeNew.setIsUsed(1); - schemeNew.setCreator((long) user.getUID()); - schemeNew.setDeleteType((int) map.get("delete_type")); - schemeNew.setCreateTime((Date) map.get("create_time")); - schemeNew.setUpdateTime((Date) map.get("update_time")); - MapperProxyFactory.getProxy(SchemeMapper.class).insertIgnoreNull(schemeNew); - } - - //查询职等信息 - schemeNew = MapperProxyFactory.getProxy(SchemeMapper.class).getSchemeByNo((String) map.get("scheme_no")); - levelNew = MapperProxyFactory.getProxy(LevelMapper.class).getLevelByNoAndSid((String) map.get("level_no"), schemeNew.getId()); - if (levelNew != null) { - levelNew.setLevelNo((String) map.get("level_no")); - levelNew.setLevelName((String) map.get("level_name")); - levelNew.setDescription((String) map.get("level_description")); - //关联方案id - levelNew.setSchemeId(schemeNew.getId()); - levelNew.setUpdateTime((Date) map.get("update_time")); - MapperProxyFactory.getProxy(LevelMapper.class).updateLevel(levelNew); - } else { - levelNew.setLevelNo((String) map.get("level_no")); - levelNew.setLevelName((String) map.get("level_name")); - levelNew.setDescription((String) map.get("level_description")); - //关联方案id - levelNew.setSchemeId(schemeNew.getId()); - levelNew.setForbiddenTag((int) map.get("forbidden_tag")); - levelNew.setIsUsed(1); - levelNew.setCreator((long) user.getUID()); - levelNew.setDeleteType((int) map.get("delete_type")); - levelNew.setCreateTime((Date) map.get("create_time")); - levelNew.setUpdateTime((Date) map.get("update_time")); - MapperProxyFactory.getProxy(LevelMapper.class).insertIgnoreNull(levelNew); - } - - gradeNew = MapperProxyFactory.getProxy(GradeMapper.class).getGradeByNoAndSid((String) map.get("grade_no"), schemeNew.getId()); - if (gradeNew != null) { - gradeNew.setGradeNo((String) map.get("grade_no")); - gradeNew.setGradeName((String) map.get("grade_name")); - gradeNew.setDescription((String) map.get("grade_description")); - // 关联方案id - gradeNew.setSchemeId(schemeNew.getId()); - // 关联职等id - gradeNew.setLevelId(String.valueOf(levelNew.getId())); - gradeNew.setUpdateTime((Date) map.get("update_time")); - GradePO gradePOTmp = MapperProxyFactory.getProxy(GradeMapper.class).getGradeByID(gradeNew.getId()); - if (gradePOTmp != null) { + if (s == 0) { + schemeNew = MapperProxyFactory.getProxy(SchemeMapper.class).getSchemeByNo((String) map.get("scheme_no")); + if (schemeNew != null) { + schemeNew.setSchemeName((String) map.get("scheme_name")); + schemeNew.setSchemeDescription((String) map.get("scheme_description")); + schemeNew.setUpdateTime((Date) map.get("update_time")); + MapperProxyFactory.getProxy(SchemeMapper.class).updateScheme(schemeNew); + } else { + historyDetailPO.setRelatedName("方案更新"); + historyDetailPO.setOperateDetail("未找到编号为[" + map.get("scheme_no") + "]的方案"); + historyDetailPO.setStatus("0"); + saveImportDetailLog(historyDetailPO); + continue nextRow; + } + } else if (s == 1) { + String schemeNo = (String) map.get("scheme_no"); + String levelNo = (String) map.get("level_no"); + schemeNew = MapperProxyFactory.getProxy(SchemeMapper.class).getSchemeByNo(schemeNo); + if (schemeNew != null) { + levelNew = MapperProxyFactory.getProxy(LevelMapper.class).getLevelByNoAndSid(levelNo, schemeNew.getId()); + if (levelNew != null) { + levelNew.setLevelName((String) map.get("level_name")); + levelNew.setDescription((String) map.get("level_description")); + //关联方案id + levelNew.setSchemeId(schemeNew.getId()); + levelNew.setUpdateTime((Date) map.get("update_time")); + MapperProxyFactory.getProxy(LevelMapper.class).updateLevel(levelNew); + } else { + historyDetailPO.setRelatedName("职等页更新"); + historyDetailPO.setOperateDetail("未找到编号为[" + schemeNo + "]的方案"); + historyDetailPO.setStatus("0"); + saveImportDetailLog(historyDetailPO); + continue nextRow; + } + } else { + historyDetailPO.setRelatedName("职等页更新"); + historyDetailPO.setOperateDetail("未找到编号为[" + schemeNo + "]的方案,无法更新"); + historyDetailPO.setStatus("0"); + saveImportDetailLog(historyDetailPO); + continue nextRow; + } + } else if (s == 2) { + String gradeNo = (String) map.get("grade_no"); + String schemeNo = (String) map.get("scheme_no"); + String levelNo = (String) map.get("level_no"); + schemeNew = MapperProxyFactory.getProxy(SchemeMapper.class).getSchemeByNo(schemeNo); + if (schemeNew == null) { + historyDetailPO.setRelatedName("职级页更新"); + historyDetailPO.setOperateDetail("未找到编号为[" + schemeNo + "]的方案"); + historyDetailPO.setStatus("0"); + saveImportDetailLog(historyDetailPO); + continue nextRow; + } + gradeNew = MapperProxyFactory.getProxy(GradeMapper.class).getGradeByNoAndSid(gradeNo, schemeNew.getId()); + if (gradeNew == null) { + historyDetailPO.setRelatedName("职级页更新"); + historyDetailPO.setOperateDetail("未找到编号为[" + schemeNo + "]的职等"); + historyDetailPO.setStatus("0"); + saveImportDetailLog(historyDetailPO); + continue nextRow; + } + String[] split = levelNo.split(","); + String levelIds = null; + if (split.length > 0) { + for (int index = 0; index < split.length; index++) { + levelNew = MapperProxyFactory.getProxy(LevelMapper.class).getLevelByNoAndSid(split[index], schemeNew.getId()); + if (levelIds != null) { + levelIds = levelIds + "," + levelNew.getId(); + } else { + levelIds = String.valueOf(levelNew.getId()); + } + } + } + if (gradeNew != null) { + gradeNew.setSchemeId(schemeNew.getId()); + gradeNew.setGradeName((String) map.get("grade_name")); + gradeNew.setDescription((String) map.get("grade_description")); + // 关联职等id + gradeNew.setLevelId(levelIds); + gradeNew.setUpdateTime((Date) map.get("update_time")); MapperProxyFactory.getProxy(GradeMapper.class).updateGrade(gradeNew); - + } else { + historyDetailPO.setRelatedName("职级页更新"); + historyDetailPO.setOperateDetail("未找到编号[" + schemeNo + "]的职级,无法更新"); + historyDetailPO.setStatus("0"); + saveImportDetailLog(historyDetailPO); + continue nextRow; } - } else { - MapperProxyFactory.getProxy(GradeMapper.class).insertIgnoreNull(gradePO); } + historyDetailPO.setOperateDetail("更新成功"); + historyDetailPO.setStatus("1"); + saveImportDetailLog(historyDetailPO); } } From d16f13405c39cd57af777d928b4b9a9cb8abf1b8 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Fri, 11 Nov 2022 13:59:45 +0800 Subject: [PATCH 30/34] =?UTF-8?q?=E4=BA=BA=E5=91=98=E5=8D=A1=E7=89=87?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E8=87=AA=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../personnelcard/CardButtonMapper.java | 3 + .../mapper/personnelcard/CardButtonMapper.xml | 5 ++ .../service/CardAccessService.java | 2 +- .../service/impl/CardAccessServiceImpl.java | 20 +++---- .../impl/HrmPersonnelCardServiceImpl.java | 57 +++++++++++++------ .../web/CardAccessController.java | 6 +- .../wrapper/CardAccessWrapper.java | 4 +- 7 files changed, 65 insertions(+), 32 deletions(-) diff --git a/src/com/engine/organization/mapper/personnelcard/CardButtonMapper.java b/src/com/engine/organization/mapper/personnelcard/CardButtonMapper.java index aa116087..b2f70821 100644 --- a/src/com/engine/organization/mapper/personnelcard/CardButtonMapper.java +++ b/src/com/engine/organization/mapper/personnelcard/CardButtonMapper.java @@ -13,4 +13,7 @@ import java.util.List; public interface CardButtonMapper { List listAll(); + + + List listEnableButton(); } diff --git a/src/com/engine/organization/mapper/personnelcard/CardButtonMapper.xml b/src/com/engine/organization/mapper/personnelcard/CardButtonMapper.xml index b5d6bfb5..f8f08369 100644 --- a/src/com/engine/organization/mapper/personnelcard/CardButtonMapper.xml +++ b/src/com/engine/organization/mapper/personnelcard/CardButtonMapper.xml @@ -36,5 +36,10 @@ from jcl_org_cardbutton where delete_type = 0 + \ No newline at end of file diff --git a/src/com/engine/organization/service/CardAccessService.java b/src/com/engine/organization/service/CardAccessService.java index 8cf599b6..07c0d3e4 100644 --- a/src/com/engine/organization/service/CardAccessService.java +++ b/src/com/engine/organization/service/CardAccessService.java @@ -59,7 +59,7 @@ public interface CardAccessService { * 卡片按钮表单 * @return */ - Map getCardButtonFrom(); + Map getCardButtonTable(); /** * 保存卡片按钮信息 diff --git a/src/com/engine/organization/service/impl/CardAccessServiceImpl.java b/src/com/engine/organization/service/impl/CardAccessServiceImpl.java index c681f981..695a9811 100644 --- a/src/com/engine/organization/service/impl/CardAccessServiceImpl.java +++ b/src/com/engine/organization/service/impl/CardAccessServiceImpl.java @@ -94,18 +94,18 @@ public class CardAccessServiceImpl extends Service implements CardAccessService } @Override - public Map getCardButtonFrom() { + public Map getCardButtonTable() { // 区分主表明细表 String tableName = "JCL_ORG_CARDBUTTON"; List infoPOList = new ArrayList<>(); - infoPOList.add(ExtendInfoPO.builder().id(null).tableName(tableName).fieldName("name").fieldNameDesc("按钮名称").fieldType("varchar(50)").controlType(1).browserType("1").customValue("[\"input\",\"text\",\"50\"]").showOrder(1).isSystemDefault(0).build()); - infoPOList.add(ExtendInfoPO.builder().id(null).tableName(tableName).fieldName("status").fieldNameDesc("启用").fieldType("char(1)").controlType(1).browserType("1").customValue("[\"check\"]").showOrder(2).isSystemDefault(0).build()); - infoPOList.add(ExtendInfoPO.builder().id(null).tableName(tableName).fieldName("url").fieldNameDesc("跳转地址").fieldType("varchar(1000)").controlType(1).browserType("1").customValue("[\"input\",\"text\",\"1000\"]").showOrder(3).isSystemDefault(0).build()); - infoPOList.add(ExtendInfoPO.builder().id(null).tableName(tableName).fieldName("roles").fieldNameDesc("角色").fieldType("text").controlType(1).browserType("65").customValue("[\"browser\",{\"valueSpan\":\"多角色\",\"replaceDatas\":[{\"itemorderid\":\"65\",\"name\":\"多角色\",\"id\":\"65\",\"parenttitle\":\"人员\",\"title\":\"人员-多角色\"}],\"value\":\"65\"}]").showOrder(4).isSystemDefault(0).build()); + infoPOList.add(ExtendInfoPO.builder().id(null).tableName(tableName).fieldName("name").fieldNameDesc("按钮名称").fieldType("varchar(50)").controlType(1).browserType("1").customValue("[\"input\",\"text\",\"50\"]").showOrder(1).isrequired(0).isSystemDefault(0).build()); + infoPOList.add(ExtendInfoPO.builder().id(null).tableName(tableName).fieldName("status").fieldNameDesc("启用").fieldType("char(1)").controlType(4).browserType("1").customValue("[\"check\"]").showOrder(2).isrequired(0).isSystemDefault(0).build()); + infoPOList.add(ExtendInfoPO.builder().id(null).tableName(tableName).fieldName("url").fieldNameDesc("跳转地址").fieldType("varchar(1000)").controlType(1).browserType("1").customValue("[\"input\",\"text\",\"1000\"]").showOrder(3).isrequired(0).isSystemDefault(0).build()); + infoPOList.add(ExtendInfoPO.builder().id(null).tableName(tableName).fieldName("roles").fieldNameDesc("角色").fieldType("text").controlType(3).browserType("65").customValue("[\"browser\",{\"valueSpan\":\"多角色\",\"replaceDatas\":[{\"itemorderid\":\"65\",\"name\":\"多角色\",\"id\":\"65\",\"parenttitle\":\"人员\",\"title\":\"人员-多角色\"}],\"value\":\"65\"}]").showOrder(4).isrequired(0).isSystemDefault(0).build()); - Map tabinfoMap = new HashMap<>(); - tabinfoMap.put("columns", ExtendInfoBO.convertInfoListToTable(user, infoPOList, 2, false)); + Map tabInfoMap = new HashMap<>(); + tabInfoMap.put("columns", ExtendInfoBO.convertInfoListToTable(user, infoPOList, 2, false)); // 去除null 元素 List cardButtonPOS = getCardButtonMapper().listAll(); // 兼容Oracle,map的key转换为小写 @@ -121,10 +121,10 @@ public class CardAccessServiceImpl extends Service implements CardAccessService return resultMap; }).collect(Collectors.toList()); - tabinfoMap.put("datas", collect); - tabinfoMap.put("api_status", true); + tabInfoMap.put("datas", collect); + tabInfoMap.put("api_status", true); - return tabinfoMap; + return tabInfoMap; } @Override diff --git a/src/com/engine/organization/service/impl/HrmPersonnelCardServiceImpl.java b/src/com/engine/organization/service/impl/HrmPersonnelCardServiceImpl.java index 407cabae..bc86daca 100644 --- a/src/com/engine/organization/service/impl/HrmPersonnelCardServiceImpl.java +++ b/src/com/engine/organization/service/impl/HrmPersonnelCardServiceImpl.java @@ -11,6 +11,7 @@ import com.engine.organization.entity.extend.po.ExtendInfoPO; import com.engine.organization.entity.extend.po.ExtendTitlePO; import com.engine.organization.entity.personnelcard.*; import com.engine.organization.entity.personnelcard.po.CardAccessPO; +import com.engine.organization.entity.personnelcard.po.CardButtonPO; import com.engine.organization.exception.OrganizationRunTimeException; import com.engine.organization.mapper.extend.ExtMapper; import com.engine.organization.mapper.extend.ExtendGroupMapper; @@ -18,6 +19,7 @@ import com.engine.organization.mapper.extend.ExtendInfoMapper; import com.engine.organization.mapper.extend.ExtendTitleMapper; import com.engine.organization.mapper.hrmresource.HrmResourceMapper; import com.engine.organization.mapper.personnelcard.CardAccessMapper; +import com.engine.organization.mapper.personnelcard.CardButtonMapper; import com.engine.organization.mapper.personnelcard.PersonnelCardMapper; import com.engine.organization.service.HrmPersonnelCardService; import com.engine.organization.util.OrganizationAssert; @@ -72,6 +74,10 @@ public class HrmPersonnelCardServiceImpl extends Service implements HrmPersonnel return MapperProxyFactory.getProxy(HrmResourceMapper.class); } + private CardButtonMapper getCardButtonMapper() { + return MapperProxyFactory.getProxy(CardButtonMapper.class); + } + @Override public Map getPersonnelCard(Long uId) { @@ -113,7 +119,7 @@ public class HrmPersonnelCardServiceImpl extends Service implements HrmPersonnel for (ResourceBaseTab resourceBaseTab : resourceBaseTabList) { anchorList.add(Anchor.builder().id("tab" + resourceBaseTab.getId()).title(resourceBaseTab.getGroupName()).build()); } - + resultMap.put("button", getButtonList(ecResourceId)); resultMap.put("user", userInfo); resultMap.put("statistical", statistical); resultMap.put("formItems", formItemList); @@ -229,7 +235,7 @@ public class HrmPersonnelCardServiceImpl extends Service implements HrmPersonnel boolean hasAccess = false; CardAccessPO cardAccessPO = MapperProxyFactory.getProxy(CardAccessMapper.class).selectById(typeId); - if(null==cardAccessPO){ + if (null == cardAccessPO) { return false; } // 所有人,返回true @@ -246,31 +252,50 @@ public class HrmPersonnelCardServiceImpl extends Service implements HrmPersonnel } // 所有上级 - if (!hasAccess || "1".equals(Util.null2String(cardAccessPO.getAllSuperior()))) { + if (!hasAccess && "1".equals(Util.null2String(cardAccessPO.getAllSuperior()))) { String managersIDs = resourceComInfo.getManagersIDs(userId); - hasAccess = hasAccess || Arrays.asList(managersIDs.split(",")).contains(Util.null2String(user.getUID())); + hasAccess = Arrays.asList(managersIDs.split(",")).contains(Util.null2String(user.getUID())); } } catch (Exception e) { new BaseBean().writeLog(e); throw new OrganizationRunTimeException("人员卡片权限"); } // 角色判断 - if (!hasAccess || org.apache.commons.lang.StringUtils.isNotBlank(cardAccessPO.getCustom())) { - List accessRoleIds = Arrays.asList(cardAccessPO.getCustom().split(",")); + if (!hasAccess && StringUtils.isNotBlank(cardAccessPO.getCustom())) { HrmCommonService hrmCommonService = new HrmCommonServiceImpl(); - List roleInfo = hrmCommonService.getRoleInfo(user.getUID()); - for (Object o : roleInfo) { - Map roleDetailMap = (Map) o; - int roleId = Util.getIntValue(roleDetailMap.get("roleid"), -1); - // 判断角色是否满足,角色等级是否满足 - hasAccess = hasAccess || accessRoleIds.contains(Util.null2String(roleId)); - if (hasAccess) { - break; - } - } + List roleIds = new ArrayList<>(Arrays.asList(hrmCommonService.getRoleIds(user.getUID()).split(","))); + List accessRoleIds = new ArrayList<>(Arrays.asList(cardAccessPO.getCustom().split(","))); + roleIds.retainAll(accessRoleIds); + hasAccess = CollectionUtils.isNotEmpty(roleIds); + } return hasAccess; } + /** + * 获取当前人员有权限的按钮,系统管理员展示所有,个人卡片展示系统默认按钮、其余按钮依照配置角色展示 + * + * @param ecResourceId + * @return + */ + private List getButtonList(String ecResourceId) { + boolean isMySelf = ecResourceId.equals(Util.null2String(user.getUID())); + boolean isAdmin = user.isAdmin(); + List cardButtonPOS = getCardButtonMapper().listEnableButton(); + List buttonList = new ArrayList<>(); + HrmCommonService hrmCommonService = new HrmCommonServiceImpl(); + List roleIds = new ArrayList<>(Arrays.asList(hrmCommonService.getRoleIds(user.getUID()).split(","))); + + + for (CardButtonPO cardButton : cardButtonPOS) { + List accessRoleIds = new ArrayList<>(Arrays.asList(cardButton.getRoles().split(","))); + roleIds.retainAll(accessRoleIds); + if (isAdmin || (isMySelf && "0".equals(cardButton.getSysDefault())) || CollectionUtils.isNotEmpty(roleIds)) { + buttonList.add(CardButtonPO.builder().name(cardButton.getName()).url(cardButton.getUrl()).sysDefault(cardButton.getSysDefault()).build()); + } + } + return buttonList; + } + } diff --git a/src/com/engine/organization/web/CardAccessController.java b/src/com/engine/organization/web/CardAccessController.java index 0dccfdaf..0775e1b9 100644 --- a/src/com/engine/organization/web/CardAccessController.java +++ b/src/com/engine/organization/web/CardAccessController.java @@ -69,12 +69,12 @@ public class CardAccessController { } @GET - @Path("/getCardButtonFrom") + @Path("/getCardButtonTable") @Produces(MediaType.APPLICATION_JSON) - public ReturnResult getCardButtonFrom(@Context HttpServletRequest request, @Context HttpServletResponse response) { + public ReturnResult getCardButtonTable(@Context HttpServletRequest request, @Context HttpServletResponse response) { try { User user = HrmUserVarify.getUser(request, response); - return ReturnResult.successed(getCardAccessWrapper(user).getCardButtonFrom()); + return ReturnResult.successed(getCardAccessWrapper(user).getCardButtonTable()); } catch (Exception e) { return ReturnResult.exceptionHandle(e); } diff --git a/src/com/engine/organization/wrapper/CardAccessWrapper.java b/src/com/engine/organization/wrapper/CardAccessWrapper.java index da27ef07..fcfc9605 100644 --- a/src/com/engine/organization/wrapper/CardAccessWrapper.java +++ b/src/com/engine/organization/wrapper/CardAccessWrapper.java @@ -32,7 +32,7 @@ public class CardAccessWrapper extends OrganizationWrapper { return getCardAccessService(user).save(params); } - public Map getCardButtonFrom() { - return getCardAccessService(user).getCardButtonFrom(); + public Map getCardButtonTable() { + return getCardAccessService(user).getCardButtonTable(); } } From 854a40b7cdc28caf864f6f0e4a5e0fd16262d9a5 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Fri, 11 Nov 2022 14:11:34 +0800 Subject: [PATCH 31/34] =?UTF-8?q?=E4=BA=BA=E5=91=98=E5=8D=A1=E7=89=87?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E8=87=AA=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/personnelcard/CardButtonMapper.xml | 2 +- .../service/impl/CardAccessServiceImpl.java | 15 ++++----------- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/src/com/engine/organization/mapper/personnelcard/CardButtonMapper.xml b/src/com/engine/organization/mapper/personnelcard/CardButtonMapper.xml index f8f08369..558ee6f7 100644 --- a/src/com/engine/organization/mapper/personnelcard/CardButtonMapper.xml +++ b/src/com/engine/organization/mapper/personnelcard/CardButtonMapper.xml @@ -33,7 +33,7 @@ + + +