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> { @Override public Map execute(Command> targetCommand) { //获取到被代理对象 OdocReceiveUtilGetListCmd odocReceiveUtilGetListCmd = (OdocReceiveUtilGetListCmd)targetCommand; //获取被代理对象的参数 Map params = odocReceiveUtilGetListCmd.getParams(); //参数回写 //odocReceiveUtilGetListCmd.setParams(params); //执行标准的业务处理 //Map result = nextExecute(targetCommand); //对返回值做加工处理 User user = odocReceiveUtilGetListCmd.getUser(); Map result = customGetReceiveUtilList(user,params); return result; } public Map customGetReceiveUtilList(User user,Map params) { Map 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; } }