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.
haojing/classbean/com/customization/odoc/CustomOdocReceiveUtilGetLis...

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