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; + } + + }