100 lines
5.0 KiB
Java
100 lines
5.0 KiB
Java
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 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;
|
|
|
|
/**
|
|
* 虚拟组织新增修改到map表接口
|
|
*/
|
|
public class VOModeExpand extends AbstractModeExpandJavaCodeNew {
|
|
|
|
public Map<String, String> doModeExpand(Map<String, Object> param) {
|
|
Map<String, String> result = new HashMap<String, String>();
|
|
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) {
|
|
//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");
|
|
//查询虚拟组织表中的新增记录
|
|
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()) {
|
|
Integer ftype = Integer.valueOf(recordSet.getString("ftype"));
|
|
jclOrgMap.setFType(ftype);
|
|
jclOrgMap.setFIsVitual(1);//虚拟组织标记
|
|
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"));
|
|
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"))) {
|
|
RecordSet rsHrm = new RecordSet();
|
|
rsHrm.executeQuery("select lastname from HrmResource where id=" + recordSet.getString("fecid"));
|
|
if (rsHrm.next()) {
|
|
jclOrgMap.setFName(rsHrm.getString("lastname"));
|
|
}
|
|
}
|
|
}
|
|
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) {
|
|
result.put("errmsg", "自定义出错信息");
|
|
result.put("flag", "false");
|
|
}
|
|
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;
|
|
}
|
|
}
|