package com.customization.governtask; import com.alibaba.fastjson.JSONObject; import com.api.govern.biz.GovernRightManager; import com.api.govern.cmd.task.GetTaskAccountCmd; import com.api.govern.constant.GovernTableType; import com.api.govern.dao.read.GovernCategoryReadDao; import com.api.govern.dao.read.GovernFieldReadDao; import com.api.govern.dao.read.GovernSearchReadDao; import com.api.govern.dao.read.GovernTaskReadDao; import com.api.meeting.util.PageUidFactory; import com.api.workplan.util.TimeZoneCastUtil; import com.cloudstore.dev.api.util.Util_TableMap; import com.cloudstore.eccom.constant.WeaBoolAttr; import com.cloudstore.eccom.constant.WeaResultConstant; import com.cloudstore.eccom.pc.table.*; import com.engine.core.cfg.annotation.CommandDynamicProxy; import com.engine.core.interceptor.AbstractCommandProxy; import com.engine.core.interceptor.Command; import com.engine.core.interceptor.CommandContext; import com.engine.govern.util.GovernFieldSettingUtil; import com.engine.govern.util.ParamsUtil; import com.engine.meeting.cmd.calendar.GetCalendarListCmd; import com.weaver.formmodel.util.DateHelper; import weaver.conn.RecordSet; import weaver.general.PageIdConst; import weaver.general.Util; import weaver.hrm.User; import weaver.meeting.MeetingShareUtil; import weaver.meeting.MeetingUtil; import weaver.meeting.defined.MeetingFieldComInfo; import weaver.proj.util.SQLUtil; import weaver.systeminfo.SystemEnv; import java.text.SimpleDateFormat; import java.util.*; /** * @Classname CustomGetTaskAccountCmd * @Description TODO() * @Author wanxq * @Date 2019年09月20日09:10:01 **/ @CommandDynamicProxy(target = GetTaskAccountCmd.class, desc="修改督办任务列表不同任务状态颜色") public class CustomGetTaskAccountCmd extends AbstractCommandProxy> { @Override public Map execute(Command> targetCommand) { //获取到被代理对象 GetTaskAccountCmd getTaskAccountCmd = (GetTaskAccountCmd)targetCommand; //获取被代理对象的参数 Map params = getTaskAccountCmd.getParams(); //参数回写 //getTaskAccountCmd.setParams(params); //执行标准的业务处理 Map result = nextExecute(targetCommand); //对返回值做加工处理 User user = getTaskAccountCmd.getUser(); result = customGetTaskAccount(params,user); String currentdate = DateHelper.getCurrentDate(); ArrayList prjList = (ArrayList) result.get("prjList"); ArrayList prjListNew = new ArrayList(); System.out.println(JSONObject.toJSON(prjList)); RecordSet rs = new RecordSet(); if(prjList!=null && prjList.size()>0){ for(int i=0;i customGetTaskAccount(Map params, User user) { Map result = new HashMap<>(); GovernTaskReadDao governTaskReadDao = new GovernTaskReadDao(); RecordSet recordSet = new RecordSet(); if (params.containsKey("getPages")) { //获取督办事项分页数据 result.putAll( governTaskReadDao.getTaskAccountData(params, user, recordSet)); }else { //获取任务台账列表数据 result.putAll(getTaskAccountList(params, user)); } return result; } public Map getTaskAccountList(Map params, User user) { Map resultMap = new HashMap<>(); Map param = new HashMap<>(); GovernCategoryReadDao categoryReadDao = new GovernCategoryReadDao(); GovernSearchReadDao governSearchReadDao = new GovernSearchReadDao(); StringBuffer sb = new StringBuffer(); WeaTable weaTable = new WeaTable(); RecordSet recordSet = new RecordSet(); String projid = ParamsUtil.toString(params, "projid"); String dealtype = ParamsUtil.toStringDefuat(params, "dealtype"); int categoryid = ParamsUtil.toInt(params, "categoryid");//左侧树的categoryid int prjCategory = ParamsUtil.toInt(params, "prjCategory");//事项的categoryid String backfields = "t1.id ,t1.feedquency,t1.feeddays,t1.startdate startdate0,t1.feeddate feeddate0 "; String sqlWhere = "where 1= 1 and t1.projid = "+ projid + " and t1.status<>5 "; String fromSql = " from govern_task t1 left join govern_taskextend_" + prjCategory + " t4 on t1.id=t4.sourceid "; boolean isGroup = categoryReadDao.isCategoryGroup(categoryid + ""); if(isGroup){ categoryid = 0; } //************处理表格******************** param.put("source",1); param.put("isshowlist" ,1); param.put("categoryid" ,categoryid); GovernFieldReadDao governFieldReadDao = new GovernFieldReadDao(); List> fields = governFieldReadDao.getFields(param); weaTable.getColumns().add(new WeaTableColumn("id").setDisplay(WeaBoolAttr.FALSE)); //设置为不显示 for (Map field : fields) { WeaTableColumn weaTableColumn = null; String width = "20%"; String fieldid = ParamsUtil.toString(field, "id"); String fieldname = ParamsUtil.toString(field, "fieldname"); String name = GovernFieldSettingUtil.convertLanguage(ParamsUtil.toString(field, "name_task"), user); int issystem = ParamsUtil.toInt(field, "issystem"); String fieldhtmltype = ParamsUtil.toString(field, "fieldhtmltype"); String fieldtype = ParamsUtil.toString(field, "fieldtype"); String fielddbtype = ParamsUtil.toString(field, "fielddbtype"); String otherpara = "column:id+"+user.getLanguage()+"+"+fieldhtmltype+"+"+fieldid+"+"+fieldname+"+"+fieldtype+"+"+fielddbtype+"+"; if("name".equals(fieldname)){ width = "30%"; } if("enddate".equals(fieldname)){ width = "25%"; } if("status".equals(fieldname)){ width = "24%"; } if (issystem == 1) { if(fieldname.equals("feedstatus")){//最新反馈状态 sb.append(",t1.status feedstatus"); otherpara = "column:id+column:feedquency+column:feeddays+column:startdate0+column:feeddate0" + "+" + user.getLanguage(); weaTableColumn = new WeaTableColumn(width, name, "feedstatus", "feedstatus", "com.api.govern.util.GovernTransMethod.getFeedstatus" , otherpara); }else if(fieldname.equals("feedid")){//最新反馈内容 sb.append(",t1." + fieldname); otherpara = "column:id+" + "task"; weaTableColumn = new WeaTableColumn(width, name, "feedid", "feedid", "com.api.govern.util.GovernTransMethod.getFeedField", otherpara); }else{ sb.append(",t1." + fieldname); String orderkey = ParamsUtil.covertOrderkey(fieldname); weaTableColumn = new WeaTableColumn(width, name, fieldname, orderkey, "com.api.govern.util.GovernTransMethod.getListField", otherpara); } }else{ sb.append(",t4." + fieldname); weaTableColumn = new WeaTableColumn(width, name, fieldname, fieldname, "com.api.govern.util.GovernTransMethod.getListField", otherpara); } weaTable.getColumns().add(weaTableColumn); } //************处理sql******************* backfields = SQLUtil.filteSql(recordSet.getDBType(), backfields + sb.toString()); if ("0".equals(dealtype)) {//全部任务 String rightStr = new GovernRightManager(user).getDataShareByUser("1","",false); sqlWhere += " and exists (select 1 from "+rightStr+" t where t.sourceid=t1.id) "; } if ("1".equals(dealtype)) {//主办任务 sqlWhere += " and (t1.sponsor='" + user.getUID() + "') "; } if ("2".equals(dealtype)) {//协办任务 String coordinatorStr = ""; if ("mysql".equals(recordSet.getDBType())) { coordinatorStr = "CONCAT(',',t1.coordinator,',')"; } else if ("sqlserver".equals(recordSet.getDBType())) { coordinatorStr = "','+cast(t1.coordinator as varchar(4000))+','"; } else { coordinatorStr = "','||t1.coordinator||','"; } sqlWhere += " and (" + coordinatorStr + " like '%," + user.getUID() + ",%') "; } String isSuper = Util.null2String(params.get("isSuper")); if(isSuper.equals("1")){ sqlWhere += governSearchReadDao.getSearchColumnsSql(params); }else{ sqlWhere += governSearchReadDao.getQuickSearchSqlWhere(params); } //************************************************************ weaTable.setPageUID(GovernTableType.GOV_TASK_LIST.getPageUid()); weaTable.setPageID(GovernTableType.GOV_TASK_LIST.getPageUid()); weaTable.setPagesize(Util.null2String(GovernTableType.GOV_TASK_LIST.getPageSize())); weaTable.setBackfields(backfields); weaTable.setSqlform(fromSql); weaTable.setSqlwhere(sqlWhere); weaTable.setSqlorderby("createdate desc,createtime desc"); weaTable.setSqlprimarykey("t1.id"); weaTable.setSqlisdistinct("false"); weaTable.setCheckboxList(null); weaTable.setCheckboxpopedom(null); WeaTableOperates operateBean = new WeaTableOperates(); WeaTablePopedom popedom = new WeaTablePopedom(); popedom.setAsync(false); popedom.setTransmethod("com.api.govern.util.GovernTransMethod.getSearchOperation"); popedom.setOtherpara("column:xk_categoryid+column:dealtype+column:dealer+column:issign+column:tasktype0+column:xk_status+column:id"); popedom.setOtherpara2("cur_operator+" + user.getUID()); WeaTableOperate operate = new WeaTableOperate(); operate.setHref(""); operate.setText("反馈"); WeaTableOperate operate1 = new WeaTableOperate(); operate1.setHref(""); operate1.setText("分解"); WeaTableOperate operate2 = new WeaTableOperate(); operate2.setHref(""); operate2.setText("变更"); WeaTableOperate operate3 = new WeaTableOperate(); operate3.setHref(""); operate3.setText("催办"); WeaTableOperate operate4 = new WeaTableOperate(); operate4.setHref(""); operate4.setText("完成"); WeaTableOperate operate5 = new WeaTableOperate(); operate5.setHref(""); operate5.setText("复核"); WeaTableOperate operate6 = new WeaTableOperate(); operate6.setHref(""); operate6.setText("评价"); WeaTableOperate operate7 = new WeaTableOperate(); operate7.setHref(""); operate7.setText("预警"); List operates = new ArrayList(); operates.add(operate); operates.add(operate1); operates.add(operate2); operates.add(operate3); operates.add(operate4); operates.add(operate5); operates.add(operate6); operates.add(operate7); operateBean.setOperate(operates); weaTable.setOperates(operateBean); Map tableResult = weaTable.makeDataResult(); resultMap.put("sessionkey", tableResult.get(WeaResultConstant.RESULT_DATAS)); return resultMap; } }