|
@@ -0,0 +1,138 @@
|
|
|
|
|
+package com.java110.report.bmo.customReport;
|
|
|
|
|
+
|
|
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
+import com.java110.db.dao.IQueryServiceDAO;
|
|
|
|
|
+import com.java110.utils.util.DateUtil;
|
|
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
|
|
|
+
|
|
|
|
|
+import java.util.*;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+/**
|
|
|
|
|
+ * select t.inspection_name '巡检点',t.point_obj_name '位置',ips.staff_name '员工',
|
|
|
|
|
+ * (select count(1) from inspection_task it
|
|
|
|
|
+ * INNER JOIN inspection_task_detail itd on it.task_id = itd.task_id and itd.status_cd = '0'
|
|
|
|
|
+ * where it.inspection_plan_id = ip.inspection_plan_id
|
|
|
|
|
+ * and itd.inspection_id = t.inspection_id and it.plan_user_id = ips.staff_id
|
|
|
|
|
+ * and itd.act_user_id is not null
|
|
|
|
|
+ * ) '已巡检',
|
|
|
|
|
+ * (select count(1) from inspection_task it
|
|
|
|
|
+ * INNER JOIN inspection_task_detail itd on it.task_id = itd.task_id and itd.status_cd = '0'
|
|
|
|
|
+ * where it.inspection_plan_id = ip.inspection_plan_id
|
|
|
|
|
+ * and itd.inspection_id = t.inspection_id and it.plan_user_id = ips.staff_id
|
|
|
|
|
+ * and itd.act_user_id is null
|
|
|
|
|
+ * ) '未巡检',
|
|
|
|
|
+ * (select itd.description from inspection_task it
|
|
|
|
|
+ * INNER JOIN inspection_task_detail itd on it.task_id = itd.task_id and itd.status_cd = '0'
|
|
|
|
|
+ * where it.inspection_plan_id = ip.inspection_plan_id
|
|
|
|
|
+ * and itd.inspection_id = t.inspection_id and it.plan_user_id = ips.staff_id
|
|
|
|
|
+ * and itd.act_user_id is not null
|
|
|
|
|
+ * limit 1
|
|
|
|
|
+ * ) '状态'
|
|
|
|
|
+ * from inspection_point t
|
|
|
|
|
+ * left join inspection_route_point_rel irpr on t.inspection_id = irpr.inspection_id and irpr.status_cd = '0'
|
|
|
|
|
+ * left join inspection_plan ip on ip.inspection_route_id = irpr.inspection_route_id and ip.status_cd = '0'
|
|
|
|
|
+ * left join inspection_plan_staff ips on ip.inspection_plan_id = ips.inspection_plan_id and ips.status_cd = '0'
|
|
|
|
|
+ * <p>
|
|
|
|
|
+ * where ips.staff_name is not null
|
|
|
|
|
+ * and t.community_id = #communityId#
|
|
|
|
|
+ * and t.status_cd = '0'
|
|
|
|
|
+ * <if test="startTime != null and startTime != ''">
|
|
|
|
|
+ * and ip.create_time > #startTime#
|
|
|
|
|
+ * </if>
|
|
|
|
|
+ * <if test="endTime != null and endTime != ''">
|
|
|
|
|
+ * and ip.create_time < #endTime#
|
|
|
|
|
+ * </if>
|
|
|
|
|
+ * <p>
|
|
|
|
|
+ * group by t.inspection_name,t.point_obj_name,ips.staff_name
|
|
|
|
|
+ * order by t.inspection_name
|
|
|
|
|
+ */
|
|
|
|
|
+
|
|
|
|
|
+public class ReportInfoAwnerData implements ReportExecute {
|
|
|
|
|
+
|
|
|
|
|
+ public JSONObject hasInTd(JSONArray tds, Map dataObj) {
|
|
|
|
|
+
|
|
|
|
|
+ if (tds == null || tds.size() < 1) {
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ for (int tdIndex = 0; tdIndex < tds.size(); tdIndex++) {
|
|
|
|
|
+ if (tds.getJSONObject(tdIndex).getString("姓名").equals(dataObj.get("姓名"))
|
|
|
|
|
+ && tds.getJSONObject(tdIndex).getString("上报项目").equals(dataObj.get("上报项目"))
|
|
|
|
|
+ && tds.getJSONObject(tdIndex).getString("电话").equals(dataObj.get("电话"))
|
|
|
|
|
+ ) {
|
|
|
|
|
+ return tds.getJSONObject(tdIndex);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ return null;
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public String execute(JSONObject params, IQueryServiceDAO queryServiceDAOImpl) {
|
|
|
|
|
+ JSONObject paramOut = new JSONObject();
|
|
|
|
|
+
|
|
|
|
|
+ List sqlParams = new ArrayList();
|
|
|
|
|
+ String sql = "select rrs.`name` '上报项目',t.person_name '姓名',t.tel '电话',t.id_card '身份证号',rist.title,riav.value_content\n" +
|
|
|
|
|
+ "from report_info_answer t\n" +
|
|
|
|
|
+ "left join report_info_setting rrs on t.setting_id = rrs.setting_id and rrs.status_cd = '0'\n" +
|
|
|
|
|
+ "left join report_info_answer_value riav on t.user_an_id = riav.user_an_id and riav.status_cd = '0'\n" +
|
|
|
|
|
+ "LEFT JOIN report_info_setting_title rist on riav.title_id = rist.title_id and rist.status_cd = '0'\n" +
|
|
|
|
|
+ "where t.status_cd = '0'\n" +
|
|
|
|
|
+ "and t.create_time > ?\n" +
|
|
|
|
|
+ "and t.create_time < ?\n";
|
|
|
|
|
+ if (params.containsKey("startTime") && !StringUtils.isEmpty(params.getString("startTime"))) {
|
|
|
|
|
+ sqlParams.add(params.get("startTime"));
|
|
|
|
|
+ sqlParams.add(params.get("endTime"));
|
|
|
|
|
+ } else {
|
|
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
|
|
+ calendar.add(Calendar.DAY_OF_YEAR, 1);
|
|
|
|
|
+ String tomorrow = DateUtil.getFormatTimeString(calendar.getTime(), DateUtil.DATE_FORMATE_STRING_B);
|
|
|
|
|
+ sqlParams.add(DateUtil.getFormatTimeString(new Date(), DateUtil.DATE_FORMATE_STRING_B));
|
|
|
|
|
+ sqlParams.add(tomorrow);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (params.containsKey("communityId") && !StringUtils.isEmpty(params.getString("communityId"))) {
|
|
|
|
|
+ sql += "and t.`community_id` = ? \n";
|
|
|
|
|
+ sqlParams.add(params.get("communityId"));
|
|
|
|
|
+ }
|
|
|
|
|
+ if (params.containsKey("personName") && !StringUtils.isEmpty(params.getString("personName"))) {
|
|
|
|
|
+ sql += "and t.`person_name` like CONCAT('%',?,'%') \n";
|
|
|
|
|
+ sqlParams.add(params.get("personName"));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ List datas = queryServiceDAOImpl.executeSql(sql, sqlParams.toArray());
|
|
|
|
|
+
|
|
|
|
|
+ System.out.println("datas=" + datas);
|
|
|
|
|
+
|
|
|
|
|
+ if (datas == null || datas.size() < 1) {
|
|
|
|
|
+ paramOut.put("toatl", 1);
|
|
|
|
|
+ paramOut.put("data", new JSONArray());
|
|
|
|
|
+ return paramOut.toJSONString();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ JSONArray tds = new JSONArray();
|
|
|
|
|
+ JSONObject td = null;
|
|
|
|
|
+ for (int dataIndex = 0; dataIndex < datas.size(); dataIndex++) {
|
|
|
|
|
+ Map dataObj = (Map) datas.get(dataIndex);
|
|
|
|
|
+ td = hasInTd(tds, dataObj);
|
|
|
|
|
+ if (td == null) {
|
|
|
|
|
+ td = new JSONObject(true);
|
|
|
|
|
+ td.put("上报项目", dataObj.get("上报项目"));
|
|
|
|
|
+ td.put("姓名", dataObj.get("姓名"));
|
|
|
|
|
+ td.put("电话", dataObj.get("电话"));
|
|
|
|
|
+ td.put("身份证号", dataObj.get("身份证号"));
|
|
|
|
|
+ tds.add(td);
|
|
|
|
|
+ }
|
|
|
|
|
+ td.put(dataObj.get("title").toString(), dataObj.get("value_content"));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ paramOut.put("total", params.get("row"));
|
|
|
|
|
+ paramOut.put("data", tds);
|
|
|
|
|
+
|
|
|
|
|
+ return paramOut.toJSONString();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+}
|