You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
180 lines
9.9 KiB
Java
180 lines
9.9 KiB
Java
package com.customization.odoc;
|
|
|
|
|
|
import com.cloudstore.dev.api.util.Util_TableMap;
|
|
import com.engine.core.cfg.annotation.CommandDynamicProxy;
|
|
import com.engine.core.interceptor.AbstractCommandProxy;
|
|
import com.engine.core.interceptor.Command;
|
|
import com.engine.odoc.cmd.standard.receiveutil.OdocReceiveUtilGetListCmd;
|
|
import com.engine.odoc.util.OdocLanguageIdConstant;
|
|
import com.google.common.collect.Maps;
|
|
|
|
import weaver.conn.RecordSet;
|
|
import weaver.front.tablestring.*;
|
|
import weaver.general.BaseBean;
|
|
import weaver.general.Util;
|
|
import weaver.hrm.User;
|
|
import weaver.systeminfo.SystemEnv;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
/**
|
|
* @Classname CustomOdocReceiveUtilGetListCmd
|
|
* @Description TODO()
|
|
* @Author wanxq
|
|
* @Date 2019年12月03日14:38:56
|
|
**/
|
|
@CommandDynamicProxy(target = OdocReceiveUtilGetListCmd.class, desc="修改后台收发文单位列表,增加收文员")
|
|
public class CustomOdocReceiveUtilGetListCmd extends AbstractCommandProxy<Map<String,Object>> {
|
|
|
|
@Override
|
|
public Map<String, Object> execute(Command<Map<String, Object>> targetCommand) {
|
|
|
|
//获取到被代理对象
|
|
OdocReceiveUtilGetListCmd odocReceiveUtilGetListCmd = (OdocReceiveUtilGetListCmd)targetCommand;
|
|
//获取被代理对象的参数
|
|
Map<String, Object> params = odocReceiveUtilGetListCmd.getParams();
|
|
//参数回写
|
|
//odocReceiveUtilGetListCmd.setParams(params);
|
|
//执行标准的业务处理
|
|
//Map<String, Object> result = nextExecute(targetCommand);
|
|
//对返回值做加工处理
|
|
|
|
User user = odocReceiveUtilGetListCmd.getUser();
|
|
Map<String, Object> result = customGetReceiveUtilList(user,params);
|
|
|
|
return result;
|
|
}
|
|
|
|
|
|
public Map<String, Object> customGetReceiveUtilList(User user,Map<String, Object> params) {
|
|
|
|
Map<String, Object> apidatas = Maps.newHashMap();
|
|
|
|
String allsubcompanyids = (String) params.get("allsubcompanyids");
|
|
if(allsubcompanyids.endsWith(",")){
|
|
allsubcompanyids = allsubcompanyids.substring(0, allsubcompanyids.length()-1);
|
|
}
|
|
String subcompanyid = (String) params.get("subcompanyid");
|
|
String receiveunitname = (String) params.get("receiveunitname");
|
|
String companytype = (String) params.get("companytype");
|
|
|
|
Operate operate = new Operate("20%", "com.engine.odoc.util.OdocStandardFrontMethodUtil.getReceiveUnitOperate", "column:canceled+column:companytype");
|
|
OperateItem opItem1 = new OperateItem("javascript:doEdit();", SystemEnv.getHtmlLabelName(OdocLanguageIdConstant.ODOC_OPER_EDIT, user.getLanguage()), 0);//"编辑"
|
|
OperateItem opItem2 = new OperateItem("javascript:doReceiveUsers();", SystemEnv.getHtmlLabelName(OdocLanguageIdConstant.ODOC_OPER_RECEIVE_USER, user.getLanguage()), 1);//收发文员
|
|
OperateItem opItem3 = new OperateItem("javascript:doSeal();", SystemEnv.getHtmlLabelName(OdocLanguageIdConstant.ODOC_OPER_SEAL, user.getLanguage()), 2);//封存
|
|
OperateItem opItem4 = new OperateItem("javascript:doUnSeal();", SystemEnv.getHtmlLabelName(OdocLanguageIdConstant.ODOC_OPER_UNSEAL, user.getLanguage()), 3);//解封
|
|
OperateItem opItem5 = new OperateItem("javascript:doAddSameLevelReceiveUtil();", SystemEnv.getHtmlLabelName(OdocLanguageIdConstant.ODOC_OPER_ADD_SAME_RU, user.getLanguage()), 4);//新建同级单位
|
|
OperateItem opItem6 = new OperateItem("javascript:doAddSubLevelReceiveUtil();", SystemEnv.getHtmlLabelName(OdocLanguageIdConstant.ODOC_OPER_ADD_SUB_RU, user.getLanguage()), 5);//新建下级单位
|
|
OperateItem opItem7 = new OperateItem("javascript:doDelete();", SystemEnv.getHtmlLabelName(OdocLanguageIdConstant.ODOC_OPER_DELETE, user.getLanguage()), 6);//删除
|
|
OperateItem opItem8 = new OperateItem("javascript:dolog();", SystemEnv.getHtmlLabelName(OdocLanguageIdConstant.ODOC_OPER_LOG, user.getLanguage()), 7);//日志
|
|
operate.addOperateItem(opItem1);
|
|
operate.addOperateItem(opItem2);
|
|
operate.addOperateItem(opItem3);
|
|
operate.addOperateItem(opItem4);
|
|
operate.addOperateItem(opItem5);
|
|
operate.addOperateItem(opItem6);
|
|
operate.addOperateItem(opItem7);
|
|
operate.addOperateItem(opItem8);
|
|
|
|
CheckBox cb = new CheckBox("checkbox", "com.engine.odoc.util.OdocStandardFrontMethodUtil.checkable", "column:id");
|
|
String sqlBackfields = "DOCRECEIVEUNIT.*,HrmSubCompany.Subcompanyname,DOCRECEIVEUNIT2.receiveunitname as superiorunitname,'"+SystemEnv.getHtmlLabelName( 502488,user.getLanguage())+"' as setting";
|
|
String sqlForm = " DOCRECEIVEUNIT "
|
|
+ "left join HrmSubCompany on DOCRECEIVEUNIT.Subcompanyid=HrmSubCompany.id "
|
|
+ "left join DOCRECEIVEUNIT DOCRECEIVEUNIT2 on DOCRECEIVEUNIT.Superiorunitid=DOCRECEIVEUNIT2.id";
|
|
|
|
String sqlWhere = " 1=1 and ( ";
|
|
|
|
String[] allSubCompanyIdArray = allsubcompanyids.split(",");
|
|
int allSubCompanySize = allSubCompanyIdArray.length;
|
|
StringBuffer allSubCompanyIdTemp = new StringBuffer();
|
|
for (int i = 0; i < allSubCompanySize+1; i++) {
|
|
if (((i % 999) == 0||i==allSubCompanySize) && i > 0) {
|
|
if(allSubCompanyIdTemp.toString().endsWith(",")){
|
|
allSubCompanyIdTemp.deleteCharAt(allSubCompanyIdTemp.length() - 1);
|
|
}
|
|
sqlWhere += " DOCRECEIVEUNIT.subcompanyid in ("+allSubCompanyIdTemp+") or";
|
|
allSubCompanyIdTemp = new StringBuffer();
|
|
} else {
|
|
allSubCompanyIdTemp.append(allSubCompanyIdArray[i]+",");
|
|
}
|
|
}
|
|
|
|
sqlWhere = sqlWhere.substring(0,sqlWhere.length()-3);
|
|
sqlWhere +=" or DOCRECEIVEUNIT.systemcode is not null ) and docreceiveunit.id not in (select id from docreceiveunit where canceled=1 and issynchronizefromexchange=1)";
|
|
|
|
if(subcompanyid!=null && !"".equals(subcompanyid)){
|
|
sqlWhere += " and DOCRECEIVEUNIT.subcompanyid="+subcompanyid+"";
|
|
}
|
|
if(receiveunitname!=null && !"".equals(receiveunitname)){
|
|
sqlWhere += " and DOCRECEIVEUNIT.receiveunitname like '%"+receiveunitname+"%'";
|
|
}
|
|
if(companytype!=null && !"".equals(companytype)){
|
|
sqlWhere += " and DOCRECEIVEUNIT.companytype = '"+companytype+"'";
|
|
}
|
|
//if (this.term != null && !"".equals(this.term)) {
|
|
//sqlWhere += " and label like '%" + this.term + "%' ";
|
|
//}
|
|
Sql sql = new Sql(sqlBackfields, sqlWhere, sqlForm, "DOCRECEIVEUNIT.showorder", "DOCRECEIVEUNIT.id", "asc", "true");
|
|
|
|
String transmethodFormatMultiLang = "com.engine.odoc.util.OdocStandardFrontMethodUtil.formatMultiLang";
|
|
String transmethodCompanyType = "com.engine.odoc.util.OdocStandardFrontMethodUtil.getReceiveUtilType";
|
|
String transmethodSubCompanyName = "com.engine.odoc.util.OdocStandardFrontMethodUtil.getReceiveUtilSubCompanyName";
|
|
//String transmethodSuperUtil = "com.engine.odoc.util.OdocStandardFrontMethodUtil.getReceiveUtilSuperiorUnit";
|
|
//String transmethodSubCompany = "com.engine.odoc.util.OdocStandardFrontMethodUtil.getReceiveUtilSubCompanyName";
|
|
|
|
Col col1 = new Col("10%", false, "", "id", "", "id", "id");
|
|
Col col2 = new Col("30%", true, transmethodFormatMultiLang, SystemEnv.getHtmlLabelName(OdocLanguageIdConstant.ODOC_RU_NAME, user.getLanguage()), user.getLanguage()+"", "receiveunitname", "DOCRECEIVEUNIT.receiveunitname");//单位名称
|
|
Col col3 = new Col("30%", true, transmethodCompanyType, SystemEnv.getHtmlLabelName(OdocLanguageIdConstant.ODOC_RU_TYPE, user.getLanguage()), "", "companytype", "DOCRECEIVEUNIT.companytype");//单位类型
|
|
Col col4 = new Col("30%", true, "", SystemEnv.getHtmlLabelName(OdocLanguageIdConstant.ODOC_RU_SUPER_SUBCOMPANY_NAME, user.getLanguage()), "", "superiorunitname", "DOCRECEIVEUNIT.superiorunitid");//上级单位
|
|
Col col5 = new Col("30%", true, transmethodSubCompanyName, SystemEnv.getHtmlLabelName(OdocLanguageIdConstant.ODOC_RU_SUBCOMPANY_NAME, user.getLanguage()), ""+user.getLanguage(), "subcompanyname", "DOCRECEIVEUNIT.subcompanyid");//所属机构
|
|
Col col6 = new Col("30%", true, "", SystemEnv.getHtmlLabelName(OdocLanguageIdConstant.ODOC_SHOWORDER, user.getLanguage()), "", "showorder", "DOCRECEIVEUNIT.showorder");//显示顺序
|
|
Col col7 = new Col("30%", false, "", SystemEnv.getHtmlLabelName(OdocLanguageIdConstant.ODOC_ISSEAL, user.getLanguage()), "", "canceled", "canceled");//是否封存
|
|
Col col8 = new Col("30%", true, "", SystemEnv.getHtmlLabelName(33466, user.getLanguage()), "", "setting", "setting");//使用限制
|
|
Col col9 = new Col("30%", true, "com.customization.odoc.CustomOdocReceiveUtilGetListCmd.getReceiveUsers", SystemEnv.getHtmlLabelName(126532,user.getLanguage()), "", "id", "");
|
|
|
|
Table table = new Table("DOCRECEIVEUNITlist", "none");
|
|
table.setCb(cb);
|
|
table.setSql(sql);
|
|
table.setOperate(operate);
|
|
table.addCol(col1);
|
|
table.addCol(col2);
|
|
table.addCol(col3);
|
|
table.addCol(col4);
|
|
table.addCol(col5);
|
|
table.addCol(col6);
|
|
table.addCol(col7);
|
|
table.addCol(col8);
|
|
table.addCol(col9);
|
|
|
|
String sessionkey = Util.getEncrypt(Util.getRandom());
|
|
Util_TableMap.setVal(sessionkey, table.toString());
|
|
apidatas.put("sessionkey", sessionkey);
|
|
|
|
return apidatas;
|
|
|
|
}
|
|
|
|
|
|
public String getReceiveUsers(String unitid){
|
|
String receiveUsers = "";
|
|
RecordSet rs = new RecordSet();
|
|
String sql = " select b.lastname from docreceiveunit_source a left join hrmresource b on a.content=b.id where a.unitid="+unitid;
|
|
rs.execute(sql);
|
|
while(rs.next()){
|
|
String lastname = Util.null2String(rs.getString("lastname"));
|
|
receiveUsers += lastname + ",";
|
|
}
|
|
if(receiveUsers.length()>0){
|
|
receiveUsers = receiveUsers.substring(0,receiveUsers.length()-1);
|
|
}
|
|
return receiveUsers;
|
|
}
|
|
|
|
|
|
|
|
}
|