Commit fb79032f authored by liboyang's avatar liboyang

Merge remote-tracking branch 'origin/dev' into dev

parents 66ecedde bf625e4a
...@@ -3,8 +3,11 @@ package com.yxproject.start.api; ...@@ -3,8 +3,11 @@ package com.yxproject.start.api;
import com.yxproject.start.service.DetailReceiptListService; import com.yxproject.start.service.DetailReceiptListService;
import com.yxproject.start.service.ReceiptService; import com.yxproject.start.service.ReceiptService;
import com.yxproject.start.utils.ExportExcel; import com.yxproject.start.utils.ExportExcel;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.commons.lang.time.DateFormatUtils; import org.apache.commons.lang.time.DateFormatUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
...@@ -14,6 +17,7 @@ import java.io.File; ...@@ -14,6 +17,7 @@ import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -52,6 +56,39 @@ public class ExportExcelApi { ...@@ -52,6 +56,39 @@ public class ExportExcelApi {
} }
return null; return null;
} }
/**
* 导出交接单
*/
@RequestMapping("printReceiptExcelData")
public byte[] printReceiptExcelData(@RequestBody String list, HttpServletResponse response){
JSONObject jsonObject = JSONObject.fromObject(list);
JSONArray jsonArray = JSONArray.fromObject(jsonObject);
// List<Map<String, Object>> mapList = receiptService.;
List<Map<String, Object>> mapList = new ArrayList<>();
response.setContentType("application/x-download");
response.setCharacterEncoding("UTF-8");
String dateTime = DateFormatUtils.format(new Date(), "yyyy-MM-dd");
// //使用Servlet实现文件下载的时候,避免浏览器自动打开文件
String fout = null;
fout = ExportExcel.exportExcelDate(mapList);
String outFile = dateTime+"交接单" ;
try {
FileInputStream fis = new FileInputStream(new File(fout));
byte[] b = new byte[fis.available()];
fis.read(b);
fis.close();
response.addHeader("Content-Disposition", "attachment;filename=" + outFile + ".xls");
return b;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/** /**
* 查询公安网数据 * 查询公安网数据
*/ */
......
...@@ -128,10 +128,10 @@ public interface ReceiptMapper { ...@@ -128,10 +128,10 @@ public interface ReceiptMapper {
"WHERE subStr(ACCEPT_NO,0,8) = #{groupNo} or ACCEPT_NO=#{groupNo}") "WHERE subStr(ACCEPT_NO,0,8) = #{groupNo} or ACCEPT_NO=#{groupNo}")
public Map<String,Object> selectTimes(@Param("groupNo") String groupNo); public Map<String,Object> selectTimes(@Param("groupNo") String groupNo);
@Select("select RECEIPT_LIST.id,RECEIPT_LIST.QR_CODE,RECEIPT_LIST.RECEIPT_DATE,RECEIPT_LIST.POLICE_CODE,c1.CARD_TYPE_ID,\n" + @Select("select RECEIPT_LIST.id,RECEIPT_LIST.QR_CODE,RECEIPT_LIST.RECEIPT_DATE,RECEIPT_LIST.POLICE_CODE,decode(RECEIPT_LIST.Old_CARD_TYPE_ID,null,RECEIPT_LIST.CARD_TYPE_ID,RECEIPT_LIST.Old_CARD_TYPE_ID) CARD_TYPE_ID,\n" +
"c2.CARD_TYPE_ID CARD_TYPE2,RECEIPT_LIST.FINISH_COUNT,GAJG_DM.GAJG_DM,GAJG_DM.GAJG_MC,RECEIPT_LIST.CHECK_DATE,RECEIPT_LIST.CHECK_NAME\n" + "RECEIPT_LIST.FINISH_COUNT,GAJG_DM.GAJG_DM,GAJG_DM.GAJG_MC,RECEIPT_LIST.CHECK_DATE,RECEIPT_LIST.CHECK_NAME\n" +
",COUNTY_DIC.COUNTY_CODE ,COUNTY_DIC.COUNTYNAME from RECEIPT_LIST left join CARD_TYPE_DIC c1 on c1.CARD_TYPE_ID = RECEIPT_LIST.CARD_TYPE_ID\n" + ",CARD_TYPE_DIC.CARD_TYPE,COUNTY_DIC.COUNTY_CODE ,COUNTY_DIC.COUNTYNAME from RECEIPT_LIST \n" +
"left join CARD_TYPE_DIC c2 on c2.CARD_TYPE_ID = RECEIPT_LIST.CARD_TYPE_ID\n" + "left join CARD_TYPE_DIC on CARD_TYPE_DIC.CARD_TYPE_ID = decode(RECEIPT_LIST.Old_CARD_TYPE_ID,null,RECEIPT_LIST.CARD_TYPE_ID,RECEIPT_LIST.Old_CARD_TYPE_ID)\n" +
"left join GAJG_DM on GAJG_DM.GAJG_DM = RECEIPT_LIST.POLICE_CODE\n" + "left join GAJG_DM on GAJG_DM.GAJG_DM = RECEIPT_LIST.POLICE_CODE\n" +
"left join COUNTY_DIC on substr(RECEIPT_LIST.POLICE_CODE,0,6) = COUNTY_DIC.COUNTY_CODE" + "left join COUNTY_DIC on substr(RECEIPT_LIST.POLICE_CODE,0,6) = COUNTY_DIC.COUNTY_CODE" +
" where to_char(CHECK_DATE,'yyyyMMdd') = #{date}") " where to_char(CHECK_DATE,'yyyyMMdd') = #{date}")
......
...@@ -153,84 +153,125 @@ public class ReceiptServiceImpl implements ReceiptService { ...@@ -153,84 +153,125 @@ public class ReceiptServiceImpl implements ReceiptService {
return mapList1; return mapList1;
} }
private List<Map<String,Object>> formateMap(List<Map<String, Object>> mapList){
Map<String,Object> objectMap = new LinkedHashMap<>(); private List<Map<String, Object>> formateMap(List<Map<String, Object>> maplist) {
for (Map<String,Object> map :mapList){ Map<String, Object> typeMap = new LinkedHashMap<>();
if (objectMap!=null&&objectMap.containsKey(map.get("COUNTY_CODE")+"")){ for (Map o : maplist) {
List<Map<String,Object>> maps = (List<Map<String,Object>>) objectMap.get(map.get("COUNTY_CODE")+""); // 组合JSON
maps.add(map); if (typeMap != null & typeMap.containsKey(o.get("CARD_TYPE") + "")) {
objectMap.put(map.get("COUNTY_CODE")+"",maps); List<Map<String, Object>> mapList = (List<Map<String, Object>>) typeMap.get(o.get("CARD_TYPE"));
}else { mapList.add(o);
List<Map<String,Object>> maps = new ArrayList<>(); typeMap.put(o.get("CARD_TYPE") + "", mapList);
maps.add(map); } else {
objectMap.put(map.get("COUNTY_CODE")+"",maps); List<Map<String, Object>> mapList = new ArrayList<>();
mapList.add(o);
typeMap.put(o.get("CARD_TYPE") + "", mapList);
} }
} }
List<Map<String,Object>> countyMapList = new ArrayList<>(); //将已按制证分好的Map 再次细化分为任务单Map
for (String countyCode:objectMap.keySet()){ for (String type : typeMap.keySet()) {
Map<String,Object> countyMap = new LinkedHashMap<>(); List<Map<String, Object>> mapList = (List<Map<String, Object>>) typeMap.get(type);
String countyName =null; Map<String, Object> typemap = new LinkedHashMap<>();
List<Map<String,Object>> policeMapList = new ArrayList<>(); for (Map<String, Object> o : mapList) {
if (typemap != null && typemap.containsKey(o.get("POLICE_CODE") + "")) {
List<Map<String,Object>> maps = (List<Map<String,Object>>) objectMap.get(countyCode); List<Map<String, Object>> maplist_county = (List<Map<String, Object>>) typemap.get(o.get("POLICE_CODE") + "");
maplist_county.add(o);
Map<String,Object> policeMap = new LinkedHashMap<>(); typemap.put(o.get("POLICE_CODE") + "", maplist_county);
for (Map<String,Object> map :maps){ } else {
countyName = map.get("COUNTYNAME")+""; List<Map<String, Object>> maplist_county = new ArrayList<>();
if (policeMap != null&&policeMap.containsKey(map.get("POLICE_CODE")+"")){ maplist_county.add(o);
List<Map<String,Object>> policeMapList2= (List<Map<String,Object>>) policeMap.get(map.get("POLICE_CODE")+""); typemap.put(o.get("POLICE_CODE") + "", maplist_county);
policeMapList2.add(map);
policeMap.put(map.get("POLICE_CODE")+"",policeMapList2);
}else {
List<Map<String,Object>> policeMapList2= new ArrayList<>();
policeMapList2.add(map);
policeMap.put(map.get("POLICE_CODE")+"",policeMapList2);
} }
} }
for (String policeCode : policeMap.keySet()){ typeMap.put(type, typemap);
List<Map<String,Object>> policeList= (List<Map<String,Object>>) policeMap.get(policeCode); }
Map<String,Object> policemap = new LinkedHashMap<>(); List<Map<String, Object>> typeList = new ArrayList<>();
String GAJG_MC = null; for (String type : typeMap.keySet()) {
String CHECK_DATE =null; Map<String, Object> mapType = new LinkedHashMap<>();
String CHECK_NAME =null; int typeSum = 0;
int youSum =0; String typeName = null;
int puSum =0; List<Map<String, Object>> countyList = new ArrayList<>();
for (Map<String,Object> map :policeList){ Map<String, List<Map<String, Object>>> mapList = (Map<String, List<Map<String, Object>>>) typeMap.get(type);
GAJG_MC =map.get("GAJG_MC")+""; for (String taskId : mapList.keySet()) {
CHECK_DATE =map.get("CHECK_DATE")+""; Map<String, Object> countyMapGroup = new LinkedHashMap<>();
CHECK_NAME =map.get("CHECK_NAME")+""; int validCount = 0;
if ("null".equals(map.get("CARD_TYPE2"))){ String countyName = null;
if ("9".equals(map.get("CARD_TYPE_ID")+"")){ String countyCode = null;
youSum+=Integer.parseInt(map.get("FINISH_COUNT")+""); List<Map<String, Object>> countyMapList = mapList.get(taskId);
}else { for (Map<String, Object> countyMap : countyMapList) {
puSum+=Integer.parseInt(map.get("FINISH_COUNT")+""); countyCode = countyMap.get("COUNTY_CODE") + "";
} countyName = countyMap.get("COUNTYNAME") + "";
}else { typeName = countyMap.get("CARD_TYPE_ID") + "";
if ("9".equals(map.get("CARD_TYPE2")+"")){ typeSum += Integer.valueOf(countyMap.get("FINISH_COUNT") + "");
youSum+=Integer.parseInt(map.get("FINISH_COUNT")+""); validCount += Integer.valueOf(countyMap.get("FINISH_COUNT") + "");
}else { }
puSum+=Integer.parseInt(map.get("FINISH_COUNT")+""); if (countyMapList.size() == 1) {
countyMapGroup.put("groupNum", countyMapList.get(0).get("QR_CODE"));
} else {
List<Integer> c = new ArrayList<>();
List<Integer> nsList = new ArrayList<>();
for (int i = 0; i < countyMapList.size(); i++) {
/**
* 判断组号中时候含有历史回迁组
*/
if ((((countyMapList.get(i)).get("QR_CODE")) + "").contains("L")) {
if ((((countyMapList.get(i)).get("QR_CODE")) + "").length() == 8) {
nsList.add(Integer.parseInt((((countyMapList.get(i)).get("QR_CODE")) + "").substring(1, (((countyMapList.get(i)).get("QR_CODE")) + "").length())));
}
} else {
if ((((countyMapList.get(i)).get("QR_CODE")) + "").length() == 8) {
nsList.add(Integer.parseInt((((countyMapList.get(i)).get("QR_CODE")) + "")));
}
} }
} }
countyMapGroup.put("groupNum", createGroupNo(c, nsList));
} }
policemap.put("youSum",youSum); countyMapGroup.put("countyCode", countyCode);
policemap.put("puSum",puSum); countyMapGroup.put("taskId", taskId);
policemap.put("checkName",CHECK_NAME); countyMapGroup.put("groupList", countyMapList);
policemap.put("checkDate",CHECK_DATE); countyMapGroup.put("countyName", countyName);
policemap.put("policeName",GAJG_MC); countyMapGroup.put("countyValidCount", validCount);
policemap.put("policeCode",policeCode); countyList.add(countyMapGroup);
policeMapList.add(policemap);
} }
mapType.put("typeCode", typeName);
mapType.put("typeSum", typeSum);
countyMap.put("policeList",policeMapList); mapType.put("typeName", type);
countyMap.put("countyName",countyName); mapType.put("countyList", countyList);
countyMap.put("countyCode",countyCode); typeList.add(mapType);
countyMapList.add(countyMap);
} }
return typeList;
}
private String createGroupNo(List<Integer> c, List<Integer> nsList) {
try {
return countyMapList; String groupNo = "";
c.add(nsList.get(0));
for (int i = 0; i < nsList.size() - 1; ++i) {
if (nsList.get(i) + 1 == nsList.get(i + 1)) {
c.add(nsList.get(i + 1));
} else {
if (c.size() >= 1) {
if (c.size() == 1) {
groupNo += c.get(0) + ",";
} else {
groupNo += c.get(0) + "-" + c.get(c.size() - 1) + ",";
}
}
c.clear();
c.add(nsList.get(i + 1));
}
}
if (c.size() >= 1) {
if (c.size() == 1) {
groupNo += c.get(0) + ",";
} else {
groupNo += c.get(0) + "-" + c.get(c.size() - 1) + ",";
}
}
return groupNo;
} catch (Exception e) {
}
return "";
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment