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.
291 lines
13 KiB
Java
291 lines
13 KiB
Java
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<Map<String,Object>> {
|
|
|
|
@Override
|
|
public Map<String, Object> execute(Command<Map<String, Object>> targetCommand) {
|
|
|
|
//获取到被代理对象
|
|
GetTaskAccountCmd getTaskAccountCmd = (GetTaskAccountCmd)targetCommand;
|
|
//获取被代理对象的参数
|
|
Map<String, Object> params = getTaskAccountCmd.getParams();
|
|
//参数回写
|
|
//getTaskAccountCmd.setParams(params);
|
|
//执行标准的业务处理
|
|
Map<String, Object> 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<prjList.size();i++){
|
|
HashMap prjItemMap = (HashMap) prjList.get(i);
|
|
String prjid = (String) prjItemMap.get("prjid");
|
|
String state = (String) prjItemMap.get("state");
|
|
System.out.println("prjid=================="+prjid);
|
|
System.out.println("state=================="+state);
|
|
if("进行中".equals(state)){
|
|
String sql = "select * from govern_task where id="+prjid;
|
|
System.out.println("task sql ================="+sql);
|
|
rs.execute(sql);
|
|
if(rs.next()){
|
|
String enddate = Util.null2String(rs.getString("enddate"));
|
|
long difdays = DateHelper.getDaysBetween(enddate,currentdate);
|
|
if(difdays<=3){
|
|
prjItemMap.put("color","#FF8800");
|
|
}
|
|
|
|
}
|
|
}else if("已超期".equals(state)){
|
|
prjItemMap.put("color","#FF0000");
|
|
|
|
}
|
|
prjListNew.add(i,prjItemMap);
|
|
}
|
|
|
|
}
|
|
result.put("prjList",prjListNew);
|
|
|
|
return result;
|
|
}
|
|
|
|
|
|
|
|
public Map<String, Object> customGetTaskAccount(Map<String, Object> params, User user) {
|
|
Map<String, Object> 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<String,Object> getTaskAccountList(Map<String, Object> params, User user) {
|
|
Map<String, Object> resultMap = new HashMap<>();
|
|
Map<String,Object> 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<Map<String, Object>> fields = governFieldReadDao.getFields(param);
|
|
|
|
weaTable.getColumns().add(new WeaTableColumn("id").setDisplay(WeaBoolAttr.FALSE)); //设置为不显示
|
|
for (Map<String, Object> 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<WeaTableOperate> operates = new ArrayList<WeaTableOperate>();
|
|
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<String, Object> tableResult = weaTable.makeDataResult();
|
|
resultMap.put("sessionkey", tableResult.get(WeaResultConstant.RESULT_DATAS));
|
|
return resultMap;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|