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 1/3] =?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 2/3] =?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 3/3] =?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; + } + + }