minitiger 8 yıl önce
ebeveyn
işleme
e00159026e

+ 34 - 4
VisualInspection/js/mytask/task_list.js

@@ -66,6 +66,9 @@ function initQueryParams() {
     if(cur_status==4){
         $("#dispatchPatchBtn").show(); 
     }
+    if(cur_status==5){
+        $("#confirmPatchBtn").show(); 
+    }
     $("#checkPersonDiv").show();
 
     if(cur_status==4 || cur_status==5 || cur_status==6){
@@ -118,9 +121,10 @@ function queryTask(){
     cols.push(colFunc);
     //只有下发才显示复选框
     var checkable = false;
-    if(hasRole(ROLE_JICHA_ADMIN) && cur_status==4){
+    if((hasRole(ROLE_JICHA_ADMIN) && cur_status==4)||(roleContains("STATION") && cur_status==5)){
         checkable = true;
     }
+    console.log("checkable:"+checkable);
     if(cur_status==2 || cur_status==3){
         data.check_status_arr = [2,3];
     }
@@ -208,11 +212,11 @@ function showTaskDetail(id){
 }
 //下发所有任务
 function dispatchTaskPatch(){
-     var param = {
+    var param = {
         "check_status":4,
         "dispatch_ids":$('#task_list_table').mytable('getTableCheckedIds')
     }
-    console.log("放假啦:"+param.dispatch_ids);
+    // console.log("放假啦:"+param.dispatch_ids);
     // if(!param.dispatch_ids || param.dispatch_ids.length==0){
     //     layer.msg('请选择下发任务!', {
     //         time: 2000//20s后自动关闭
@@ -232,7 +236,7 @@ function dispatchTaskPatch(){
         layer.close(index);
     });
    var datas = $('#task_list_table').mytable('getTableData');
-   console.log(datas);
+//    console.log(datas);
 }
 //下发单条任务
 function dispatchTaskById(id){
@@ -253,4 +257,30 @@ function dispatchTaskById(id){
         layer.close(index);
     });
     
+}
+
+function confirmTaskPatch(){
+    var param = {
+        "check_status":5,
+        "dispatch_ids":$('#task_list_table').mytable('getTableCheckedIds')
+    }
+    if(!param.dispatch_ids) {
+        layer.msg("请选择需确认任务!", {time: 2000//20s后自动关闭
+                                        });
+        return;
+    }
+    layer.confirm('确定确认选中任务?', {
+        btn: ['确定','取消'] //按钮
+    }, function(){
+        no_return_common_service('/task/confirm', param, function(data){
+            queryTask();
+            layer.msg(data, {
+                time: 2000//20s后自动关闭
+            });
+        });
+    }, function(index){
+        layer.close(index);
+    });
+//    var datas = $('#task_list_table').mytable('getTableData');
+//    console.log(datas);
 }

+ 4 - 4
VisualInspection/js/statistics/assess_ranking.js

@@ -745,10 +745,10 @@ function param_method(start_score, end_score) {
     }
 }
 function setVisit() {
-    if (roleContains("STATION")) {
-        $("#center-manager").attr("disabled", "disabled");
-        $("#fsList").attr("disabled", "disabled");
-    }
+    // if (roleContains("STATION")) {
+    //     $("#center-manager").attr("disabled", "disabled");
+    //     $("#fsList").attr("disabled", "disabled");
+    // }
     // if(roleContains("ROAD_MANAGER")){
     // 	$("#center-manager").attr("disabled","disabled");
     // }

+ 32 - 11
VisualInspection/js/statistics/assess_type.js

@@ -152,18 +152,39 @@ function gethtml(data,i,avg,lists){
     return strTbody;
 }
 
-function getSum(){}
+function getTotalHtml(data){
+    var html = "<tr><td>合计</td><td></td><td></td><td></td><td>"+data.totalMan+"</td><td>"+data.totalcheckedMan+"</td><td>"+data.totalcheckedCount+"</td><td>"
+    +getTotalScore(data,'环境卫生')+"</td><td>"+getTotalScore(data,'仪容仪表')+"</td><td>"+getTotalScore(data,'表情')+"</td><td>"+getTotalScore(data,'动作')
+    +"</td><td>"+getTotalScore(data,'文明用语')+"</td><td>"+getTotalScore(data,'工作纪律')+"</td><td>"+getTotalScore(data,'便民服务')
+    +"</td><td>"+getTotalScore(data,'安全管理')+"</td><td>"+data.totalAll+"</td><td>-</td><td>-</td></tr>";
+    return html;
+}
+/**
+ * 获取扣分合计
+ * @param {*} obj 
+ * @param {*} check_item_name 
+ */
+function getTotalScore(data, check_item_name){
+    for (var i in data){
+        console.log(i);
+        if(i.indexOf(check_item_name) > -1){
+            return data[i] ;
+        }
+    }
+    return 0 ;
+}
 /**
  * 管道中心受检人平均每人次扣分
  * @param {*} data 
  */
 function check_people_avg(data){
+        var list = data.list;
         var dataArray = new Array();
         var sum = 0;
         var sum1 = 0;
-        for(k=0;k<data.length;k++){
-                sum = parseFloat(sum)+ parseFloat(filterByZeroHandle(data[k].all_check_score,'0'));
-                sum1 = parseFloat(sum1)+ parseFloat(filterByZeroHandle(data[k].checked_num,'0'));
+        for(k=0;k<list.length;k++){
+                sum = parseFloat(sum)+ parseFloat(filterByZeroHandle(list[k].all_check_score,'0'));
+                sum1 = parseFloat(sum1)+ parseFloat(filterByZeroHandle(list[k].checked_num,'0'));
             if(k==6){
                 dataArray.push(filterJudge(sum,sum1));
                 sum = 0;
@@ -181,20 +202,20 @@ function check_people_avg(data){
             }
         }   
         // 道管下的收费站排名     
-        ranking_method(data);
+        ranking_method(list);
 
-        for(i=0;i<data.length;i++){
+        for(i=0;i<list.length;i++){
            if(i==0){
-                $(".table-tbody").append(gethtml(data[i],i,dataArray[0],dataArray));
+                $(".table-tbody").append(gethtml(list[i],i,dataArray[0],dataArray));
            }else if(i==7){
-                $(".table-tbody").append(gethtml(data[i],i,dataArray[1],dataArray));
+                $(".table-tbody").append(gethtml(list[i],i,dataArray[1],dataArray));
            }else if(i==13){
-                $(".table-tbody").append(gethtml(data[i],i,dataArray[2],dataArray));
+                $(".table-tbody").append(gethtml(list[i],i,dataArray[2],dataArray));
            }else{
-                $(".table-tbody").append(gethtml(data[i],i));
-               
+                $(".table-tbody").append(gethtml(list[i],i));              
            }
         } 
+        $(".table-tbody").append(getTotalHtml(data));
 }
 /**
  * 道管下的收费站排名

+ 3 - 0
VisualInspection/js/statistics/road_manage_statistics.js

@@ -47,6 +47,9 @@ $(function(){
 	if(roleContains("STATION")){
         road_manager = getCurrentUser().road_manager_id;     
     }
+	if(roleContains("ROAD_MANAGER")){
+		road_manager = getCurrentUser().organid;
+	}
 	setRoadManagerSelect(".div-roadManage select",road_manager);
 	//加载数据
 	refresh(true);

+ 3 - 0
VisualInspection/js/statistics/toll_station_statistics.js

@@ -42,6 +42,9 @@ $(function(){
 	if(roleContains("STATION")){
         road_manager = getCurrentUser().road_manager_id;     
     }
+	if(roleContains("ROAD_MANAGER")){
+		road_manager = getCurrentUser().organid;
+	}
 	setRoadManagerSelect("#first",road_manager);
 	// 回显当前年月份
 	// $(".div-month select").val(initDate);

+ 3 - 0
VisualInspection/view/mytask/task_list.html

@@ -32,6 +32,9 @@
                     <div id="dispatchPatchBtn" style="float:right;display:none;">
                         <button class="btn btn-success" type="button" onclick="dispatchTaskPatch()"><i class="icon icon-plus-sign"></i> 一键下发</button>
                     </div>
+                    <div id="confirmPatchBtn" style="float:right;display:none;">
+                        <button class="btn btn-success" type="button" onclick="confirmTaskPatch()"><i class="icon icon-plus-sign"></i> 一键确认</button>
+                    </div>
                 </div>
             </div>
             <div class="form-group" style="margin:0px;">

+ 26 - 16
VisualInspection_server/src/main/java/com/xintong/visualinspection/controller/StatisticsController.java

@@ -14,10 +14,12 @@ import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.xintong.visualinspection.bean.CheckAppealStatistic;
 import com.xintong.visualinspection.bean.CheckmanStatisticsBean;
+import com.xintong.visualinspection.bean.Constant;
 import com.xintong.visualinspection.bean.StatisticsBean;
 import com.xintong.visualinspection.bean.StatisticsBo;
 import com.xintong.visualinspection.bean.StatisticsFsWork;
 import com.xintong.visualinspection.service.StatisticsService;
+import com.xintong.visualinspection.util.CodeUtil;
 
 /**
  * 文件名:StatisticsController
@@ -82,26 +84,34 @@ public class StatisticsController extends BaseController {
     @RequestMapping(value = "/score/item/info")
     public String getScoreItemInfo(@RequestBody StatisticsBean obj){
     	List<StatisticsBean> lists=  statisticsService.getFeeStationCheckItemScore(obj);
-//    	int totalMan=0,totalcheckedMan=0,totalcheckedCount=0,totalAll=0;
-//    	Map<String,Integer> scoreTypeMap = new HashMap<String,Integer>();
-//    	for(StatisticsBean bean:lists){
-//    		totalMan+=bean.getPeople_num();
-//    		totalcheckedMan+=bean.getChecked_people_num();
-//    		totalcheckedCount+=bean.getChecked_num();
-//    		totalAll+=bean.getAll_check_score();
+    	int totalMan=0,totalcheckedMan=0,totalcheckedCount=0,totalAll=0;
+    	Map<String,Integer> scoreTypeMap = new HashMap<String,Integer>();
+    	for(StatisticsBean bean:lists){
+    		totalMan+=bean.getPeople_num();
+    		totalcheckedMan+=bean.getChecked_people_num();
+    		totalcheckedCount+=bean.getChecked_num();
+    		totalAll+=bean.getAll_check_score();
+    		List<String> names = bean.getChecked_socre_name();
+    		List<Integer> scores = bean.getChecked_score();
+    		for(int i=0;i<names.size();i++){
+    			Integer score = scoreTypeMap.get(names.get(i));
+    			if(score==null) score=0;
+    			score+=scores.get(i);
+    			scoreTypeMap.put(names.get(i), score);
+    		}
 //    		bean.get
-//    	}
-//    	Map<String,Object> resultMap = new HashMap<String,Object>();
-//    	resultMap.put("list", lists);
-//    	resultMap.put("totalMan", totalMan);
-//    	resultMap.put("totalcheckedMan", totalcheckedMan);
-//    	resultMap.put("totalcheckedCount", totalcheckedCount);
-//    	resultMap.put("total0", total0);
-//    	resultMap.put("total15", total15);
+    	}
+    	Map<String,Object> resultMap = new HashMap<String,Object>();
+    	resultMap.put("list", lists);
+    	resultMap.put("totalMan", totalMan);
+    	resultMap.put("totalcheckedMan", totalcheckedMan);
+    	resultMap.put("totalcheckedCount", totalcheckedCount);
+    	resultMap.put("totalAll", totalAll);
+    	resultMap.putAll(scoreTypeMap);
 //    	resultMap.put("total50", total50);
 //    	resultMap.put("totalOver50", totalOver50);
 //    	resultMap.put("totalAll", totalAll);
-    	return super.returnSuccessResult(lists);
+    	return super.returnSuccessResult(resultMap);
     }
     
     /**

+ 32 - 0
VisualInspection_server/src/main/java/com/xintong/visualinspection/controller/TaskController.java

@@ -183,6 +183,38 @@ public class TaskController extends BaseController {
     	return super.returnSuccessResult("下发成功");
     }
     
+    @RequestMapping(value = "/confirm")
+    public String confirm(HttpServletRequest request, @RequestBody Task task){
+    	if(task.getCheck_status()==null || "".equals(task.getCheck_status())){
+    		task.setCheck_status(Constants.STATUS_CHECK_DISPATCH);
+    	}
+    	
+    	if(task.getUpdate_check_status()==null || "".equals(task.getUpdate_check_status())){
+    		task.setUpdate_check_status(Constants.STATUS_CHECK_CONFIRM);
+    	}
+    	if(task.getDispatch_ids()!=null && task.getDispatch_ids().length>0){
+    		List<Task> taskList = taskService.getTaskList(task);
+    		List<TaskStatus> taskStatusList = new ArrayList<TaskStatus>();
+    		User u = getCurrentUser(request);
+    		for(Task t:taskList) {
+    			//插入状态到表
+    			TaskStatus status = new TaskStatus();
+    			status.setTask_id(t.getId());
+    			status.setUpdate_time(new Date());
+    			status.setUpdate_user(new Long(u.getId()));
+    			status.setUpdate_username(u.getTruename());
+    			status.setCheck_status(task.getUpdate_check_status());
+    			String name = (CacheUtil.codeMap.get("task_status_"+task.getUpdate_check_status())).getCode_name();
+    			status.setCheck_status_name(name);
+    			taskStatusList.add(status);
+    		}
+    		taskService.dispatch(task);
+    		taskService.insertStatusBatch(taskStatusList);
+    		return super.returnSuccessResult("确认成功");
+    	}
+    	return super.returnSuccessResult("确认失败,请选择需确认任务!");
+    }
+    
     /**
      * 通过id获取考核任务
      * @return

+ 67 - 9
VisualInspection_server/src/main/java/com/xintong/visualinspection/service/impl/StatisticsServiceImpl.java

@@ -430,27 +430,49 @@ public class StatisticsServiceImpl extends BaseService implements StatisticsServ
 				it.remove();
 			}
 		}
-
-		exportExcel("温馨服务考核情况反馈表", "employee_order", listStatistic, resp);
+		Map<String,Object> map = new HashMap<String,Object>();
+		map.put("list", listStatistic);
+		exportExcel("温馨服务考核情况反馈表", "employee_order", map, resp);
 	}
 
 	@Override
 	public void getFeeStationCheckedScore(StatisticsBean obj, HttpServletRequest req, HttpServletResponse resp) {
 		List<StatisticsBean> list = getFeeStationCheckedScore(obj);
+		int totalMan=0,totalcheckedMan=0,totalcheckedCount=0,total0=0,total15=0,total50=0,totalOver50=0,totalAll = 0;
 		for (StatisticsBean st : list) {
 			st.setCheck_no_score(st.getChecked_people_num() - st.getScore_fifteen() - st.getScore_fifty()
 					- st.getScore_over_fifty());
 			st.setCheck_score_avg(
 					(st.getChecked_num() != 0) ? st.getAll_check_score() / (st.getChecked_num() + 0.0f) : 0.00f);
 			st.setScore_avg(String.format("%.2f", 1000.0 - st.getCheck_score_avg()));
+			totalMan+=st.getPeople_num();
+			totalcheckedMan+=st.getChecked_people_num();
+			totalcheckedCount+=st.getChecked_num();
+			total0+=(st.getChecked_people_num()-st.getScore_fifteen()-st.getScore_fifty()-st.getScore_over_fifty());
+			total15+=st.getScore_fifteen();
+			total50+=st.getScore_fifty();
+			totalOver50+=st.getScore_over_fifty();
+			totalAll+=st.getAll_check_score();
 		}
 		// 处理数据
-		exportExcel("温馨服务检查千分考核扣分情况汇总表", "checked_info", list, resp);
+    	Map<String,Object> map = new HashMap<String,Object>();
+		map.put("list", list);
+		map.put("totalMan", totalMan);
+		map.put("totalcheckedMan", totalcheckedMan);
+		map.put("totalcheckedCount", totalcheckedCount);
+		map.put("total0", total0);
+		map.put("total15", total15);
+		map.put("total50", total50);
+		map.put("totalOver50", totalOver50);
+		map.put("totalAll", totalAll);
+		exportExcel("温馨服务检查千分考核扣分情况汇总表", "checked_info", map, resp);
 	}
 
 	@Override
 	public void getFeeStationCheckItemScore(StatisticsBean obj, HttpServletRequest req, HttpServletResponse resp) {
 		List<StatisticsBean> list = getFeeStationCheckItemScore(obj);
+		int totalMan=0,totalcheckedMan=0,totalcheckedCount=0,totalAll=0;
+		Map<String,Integer> scoreTypeMap = new HashMap<String,Integer>();
 		// 处理数据
 		for (int i = 0; i < list.size(); i++) {
 			StatisticsBean st = list.get(i);
@@ -466,8 +488,36 @@ public class StatisticsServiceImpl extends BaseService implements StatisticsServ
 			st.getSeq_checked_score().add(getItemScore2(st, "工作纪律"));
 			st.getSeq_checked_score().add(getItemScore2(st, "便民服务"));
 			st.getSeq_checked_score().add(getItemScore2(st, "安全管理"));
-		}
-		exportExcel("温馨服务检查情况统计表", "checked_item_info", list, resp);
+			totalMan+=st.getPeople_num();
+			totalcheckedMan+=st.getChecked_people_num();
+			totalcheckedCount+=st.getChecked_num();
+			totalAll+=st.getAll_check_score();
+			List<String> names = st.getChecked_socre_name();
+			List<Integer> scores = st.getChecked_score();
+			for(int j=0;j<names.size();j++){
+				Integer score = scoreTypeMap.get(names.get(j));
+				if(score==null) score=0;
+				score+=scores.get(j);
+				scoreTypeMap.put(names.get(j), score);
+			}
+		}
+
+    	Map<String,Object> map = new HashMap<String,Object>();
+    	map.put("totalMan", totalMan);
+    	map.put("totalcheckedMan", totalcheckedMan);
+    	map.put("totalcheckedCount", totalcheckedCount);
+    	List<Constant> typeList = CodeUtil.getCodeByFlag("statistic_check_item_type");
+    	for(Constant c:typeList){
+    		if(scoreTypeMap.containsKey(c.getCode_name())){
+    			scoreTypeMap.put(c.getRemark(), scoreTypeMap.get(c.getCode_name()));
+    		}else{
+    			scoreTypeMap.put(c.getRemark(), 0);
+    		}
+    	}
+    	map.putAll(scoreTypeMap);
+    	map.put("totalAll", totalAll);
+		map.put("list", list);
+		exportExcel("温馨服务检查情况统计表", "checked_item_info", map, resp);
 	}
 
 	@Override
@@ -480,15 +530,21 @@ public class StatisticsServiceImpl extends BaseService implements StatisticsServ
 			}
 			list.get(i).setId(i + 1);
 		}
-		exportExcel(monthName + "月份收费站申诉情况统计", "appeal_info", list, resp);
+		Map<String,Object> map = new HashMap<String,Object>();
+		map.put("list", list);
+		exportExcel(monthName + "月份收费站申诉情况统计", "appeal_info", map, resp);
 	}
 
-	private void exportExcel(String fileName, String excelTemplateName, List<?> list, HttpServletResponse resp) {
+	private void exportExcel(String fileName, String excelTemplateName, Map<String,Object> map, HttpServletResponse resp) {
 		String path = "./" + fileName + ".xls";
 		try (InputStream is = this.getClass().getResourceAsStream("/" + excelTemplateName + ".xls")) {
 			try (OutputStream os = new FileOutputStream(path)) {
 				Context context = new Context();
-				context.putVar("list", list);
+//				context.putVar("list", map.get("list"));
+//				context.putVar("totalMan", map.get("totalMan"));
+				for(String key:map.keySet()){
+					context.putVar(key, map.get(key));
+				}
 				JxlsHelper.getInstance().processTemplate(is, os, context);
 			}
 			Thread.sleep(1000);
@@ -1322,6 +1378,8 @@ public class StatisticsServiceImpl extends BaseService implements StatisticsServ
 						formatter.format(sta.getStart_date()) + formatter2.format(sta.getEnd_date()));
 			}
 		}
-		exportExcel("稽查人员工作量统计", "check_info", list, resp);
+		Map<String,Object> map = new HashMap<String,Object>();
+		map.put("list", list);
+		exportExcel("稽查人员工作量统计", "check_info", map, resp);
 	}
 }

+ 7 - 0
VisualInspection_server/src/main/java/com/xintong/visualinspection/util/CacheUtil.java

@@ -1,5 +1,6 @@
 package com.xintong.visualinspection.util;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -23,6 +24,8 @@ public class CacheUtil {
 	
 	public static Map<String,Constant> codeMap = new HashMap<String,Constant>();
 	
+	public static Map<String,List<Constant>> codeFlagMap = new HashMap<String,List<Constant>>();
+	
 	public static Map<Long,Job> jobMap = new HashMap<Long,Job>();
 	
 	private static final org.slf4j.Logger logger = LoggerFactory.getLogger(CacheUtil.class);
@@ -32,6 +35,10 @@ public class CacheUtil {
 		List<Constant> constantList = constantService.getAll();
 		for(Constant c:constantList){
 			CacheUtil.codeMap.put(c.getCode_flag()+"_"+c.getCode_value(), c);
+			List<Constant> list = CacheUtil.codeFlagMap.get(c.getCode_flag());
+			if(list==null) list = new ArrayList<Constant>();
+			list.add(c);
+			CacheUtil.codeFlagMap.put(c.getCode_flag(),list);
 		}
 		logger.info("加载用户信息成功,数据数:"+CacheUtil.userMap.size());
 	}

+ 8 - 0
VisualInspection_server/src/main/java/com/xintong/visualinspection/util/CodeUtil.java

@@ -1,5 +1,7 @@
 package com.xintong.visualinspection.util;
 
+import java.util.List;
+
 import com.xintong.visualinspection.bean.Constant;
 
 public class CodeUtil {
@@ -9,4 +11,10 @@ public class CodeUtil {
 		String key = flag+"_"+value;
 		return  CacheUtil.codeMap.get(key);
 	}
+	
+	public static List<Constant> getCodeByFlag(String flag){
+		if(flag == null) return null;
+		String key = flag;
+		return  CacheUtil.codeFlagMap.get(key);
+	}
 }

+ 1 - 0
VisualInspection_server/src/main/java/com/xintong/visualinspection/util/Constants.java

@@ -7,6 +7,7 @@ public class Constants {
 	public static int STATUS_CHECK_START = 3;
 	public static int STATUS_CHECK_END = 4;
 	public static int STATUS_CHECK_DISPATCH = 5;
+	public static int STATUS_CHECK_CONFIRM = 6;
 	public static int STATUS_CHECK_SUBMIT = 7;
 	public static int STATUS_APPEALING = 11;
 	public static int STATUS_APPEAL_SUCCEED = 12;

+ 1 - 1
VisualInspection_server/src/main/resources/application.properties

@@ -75,7 +75,7 @@ spring.redis.pool.min-idle=0
 spring.redis.timeout=0 
 
 
-log.path=./visual/
+log.path=/var/log/visual/
 log.file=visual
 log.lever=info
 log.MaxHistory=20

BIN
VisualInspection_server/src/main/resources/checked_info.xls


BIN
VisualInspection_server/src/main/resources/checked_item_info.xls