123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331 |
- package com.hb.proj.car.controller;
- import java.util.Date;
- import java.util.HashSet;
- import java.util.Iterator;
- import java.util.Map;
- import java.util.Set;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import org.apache.commons.lang.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import com.hb.proj.car.service.CarService;
- import com.hb.proj.excel.imp.ExcelDataExtractor;
- import com.hb.proj.excel.imp.ExcelResult;
- import com.hb.proj.sysdata.service.OrgService;
- import com.hb.proj.sysdata.service.SortCodeService;
- import com.hb.proj.utils.DataAuthUtils;
- import com.hb.proj.utils.JsonOutUtils;
- import com.hb.proj.utils.LayGridJsonUtils;
- import com.hb.proj.utils.MySessionUser;
- import com.hb.proj.utils.RequestUtils;
- import com.hb.proj.utils.RptMonthUtil;
- import com.hb.xframework.dao.util.PageModel;
- import com.hb.xframework.dao.util.UUIDHexGenerator;
- import com.hb.xframework.util.DateUtil;
- import com.hb.xframework.util.MapUtils;
- import com.hb.xframework.util.SessionThreadLocal;
- import com.hb.xframework.util.SessionUser;
- @Controller
- @RequestMapping("/**/car")
- public class CarController {
-
- @Autowired
- private CarService service;
-
- @Autowired
- private OrgService orgService;
-
- @Autowired
- private SortCodeService codeService;
-
- /**
- * 分类统计车辆数量
- * @param belongOrg //实际传入的是org对应的assistcode
- * @param response
- */
- @RequestMapping("/rptCount")
- public void rptCount(String belongOrg,HttpServletResponse response){
- try{
- MySessionUser su=(MySessionUser)SessionThreadLocal.getSessionUser();
- if(su==null){ //测试暂时不用
- JsonOutUtils.returnError(response, "缺少登录信息");
- return;
- }
- String orgAssistCode=null;
- if(StringUtils.isEmpty(belongOrg)){
- orgAssistCode=su.isSysAdmin()?null:su.getOrgAssistCode();
- }
- else{
- orgAssistCode=belongOrg;
- }
- JsonOutUtils.returnOkWithData(response, service.rptCarCount(orgAssistCode));
- }
- catch(Exception e){
- e.printStackTrace();
- JsonOutUtils.returnError(response, "服务出现错误");
- }
- }
-
- @RequestMapping("/query")
- public void query(HttpServletRequest request,Integer page,Integer limit,HttpServletResponse response){
- try{
- MySessionUser su=(MySessionUser)SessionThreadLocal.getSessionUser();
- if(su==null){ //测试暂时不用
- LayGridJsonUtils.error(response, "缺少登录信息");
- return;
- }
- Map<String,Object> args=RequestUtils.getParams(request);
- args.put("showAll", su.isSysAdmin()?"1":null); //系统管理员显示全部
- PageModel<Map<String,Object>> pagedData=service.queryCar(args,DataAuthUtils.getAuthOrgAssistCode(su),page, limit);
- if(pagedData==null||pagedData.getData()==null||pagedData.getData().size()==0){
- LayGridJsonUtils.wirte(response, null,0);
- return;
- }
- String crtMonth=DateUtil.format(new Date(), "yyyy-MM-dd");
- for(Map<String,Object> car : pagedData.getData()){
- car.put("realAge", RptMonthUtil.getWorkAge((String)car.get("wkStart"),crtMonth));
- }
- LayGridJsonUtils.wirte(response, pagedData.getData(),pagedData.getTotalRow(),"yyyy-MM");
- }
- catch(Exception e){
- e.printStackTrace();
- LayGridJsonUtils.error(response, "服务出现错误");
- }
-
- }
-
- @RequestMapping("/loadTransfer")
- public void loadTransfer(String carId,String startDate,String endDate,Integer page,Integer limit,HttpServletResponse response){
- try{
- Date st=StringUtils.isEmpty(startDate)?null:DateUtil.parse(startDate);
- Date et=StringUtils.isEmpty(endDate)?null:DateUtil.parse(endDate);
- PageModel<Map<String,Object>> pagedData=service.loadCarTransfer(carId,st,et,page, limit);
- LayGridJsonUtils.wirte(response, pagedData.getData(),pagedData.getTotalRow(),"yyyy-MM-dd HH:mm:ss");
- }
- catch(Exception e){
- e.printStackTrace();
- LayGridJsonUtils.error(response, "服务出现错误");
- }
-
- }
- @RequestMapping("/get")
- public void get(String carId,HttpServletResponse response) throws Exception{
- Map<String,Object> mapping=service.getCar(carId);
- if(mapping!=null&&mapping.get("workStart")!=null){
- mapping.put("workStart", DateUtil.format((Date)mapping.get("workStart"), "yyyy-MM"));
- }
- JsonOutUtils.returnOkWithData(response, mapping);
- }
-
- @RequestMapping("/add")
- public void add(HttpServletRequest request,HttpServletResponse response){
- try{
- Map<String,Object> car=RequestUtils.getParams(request);
- car.remove("belongOrgName");
- car.remove("oldCustomNum");
- MapUtils.blankValToNull(car);
- if(StringUtils.isEmpty((String)car.get("belongOrg"))){
- JsonOutUtils.returnError(response, "该车牌未填写所属单位");
- return ;
- }
- if(service.existsCar(request.getParameter("carNum"),null)){
- JsonOutUtils.returnError(response, "该车牌已经登记过,请更换");
- return ;
- }
- String customNum=(String)car.get("customNum");
- if(StringUtils.isNotEmpty(customNum)&&service.existsCustomNum(customNum,(String)car.get("carNum"))){
- JsonOutUtils.returnError(response, "该车辆自编号已存在,请更换");
- return ;
- }
- SessionUser su=SessionThreadLocal.getSessionUser();
- car.put("creator", su!=null?su.getUserName():"unknow");
- car.put("modifier", car.get("creator"));
- car.put("workStart", car.get("workStart")+"-01");
- service.addCar(car);
-
- JsonOutUtils.returnOk(response);
- }
- catch(Exception e){
- e.printStackTrace();
- JsonOutUtils.returnError(response, "服务出现错误");
- }
-
- }
-
- @RequestMapping("/update")
- public void update(HttpServletRequest request,HttpServletResponse response){
- try{
- Map<String,Object> car=RequestUtils.getParams(request);
- car.remove("belongOrgName");
- car.remove("oldCustomNum");
- MapUtils.blankValToNull(car);
- if(service.existsCar(request.getParameter("carNum"),request.getParameter("carId"))){
- JsonOutUtils.returnError(response, "该车牌已经登记过,请更换");
- return ;
- }
-
- String customNum=(String)car.get("customNum");
- if(StringUtils.isNotEmpty(customNum)&&service.existsCustomNum(customNum,(String)car.get("carNum"))){
- JsonOutUtils.returnError(response, "该车辆自编号已存在,请更换");
- return ;
- }
- SessionUser su=SessionThreadLocal.getSessionUser();
- car.put("modifier", su!=null?su.getUserName():"unknow");
- car.put("workStart", car.get("workStart")+"-01");
- service.updateCar(car);
-
- /* if(oldCustomNum!=null&&!oldCustomNum.equals(customNum)){ //自编号更改了,写入流转记录中的对应快照字段
- service.updateTransferSnapshot((String)car.get("carId"),customNum);
- }*/
-
- JsonOutUtils.returnOk(response);
- }
- catch(Exception e){
- e.printStackTrace();
- JsonOutUtils.returnError(response, "服务出现错误");
- }
-
- }
-
- @RequestMapping("/delete")
- public void delete(String carId,HttpServletResponse response){
- try{
- service.deleteCar(carId);
- JsonOutUtils.returnOk(response);
- }
- catch(Exception e){
- e.printStackTrace();
- JsonOutUtils.returnError(response, "服务出现错误");
- }
- }
-
- @RequestMapping("/discard")
- public void discard(String carId,String discard,HttpServletResponse response){
- try{
- service.updateForDiscard(carId,discard);
- JsonOutUtils.returnOk(response);
- }
- catch(Exception e){
- e.printStackTrace();
- JsonOutUtils.returnError(response, "服务出现错误");
- }
- }
-
- @RequestMapping("/setTag")
- public void setTag(String carId,String tag,HttpServletResponse response){
- try{
- service.updateForField(carId,"customTag",tag);
- JsonOutUtils.returnOk(response);
- }
- catch(Exception e){
- e.printStackTrace();
- JsonOutUtils.returnError(response, "服务出现错误");
- }
- }
-
-
- @RequestMapping("/importCar")
- public void importCar(HttpServletRequest request,HttpServletResponse response){
- try{
- ExcelResult importRst=ExcelDataExtractor.extractExcelData(request);
- if(importRst==null||importRst.getException()!=null){
- JsonOutUtils.returnError(response,(importRst==null?"导入失败":importRst.getException()));
- return;
- }
- else if(importRst.getListDatas()==null||importRst.getListDatas().size()==0){
- JsonOutUtils.returnError(response,"未提取到符合格式的数据");
- return;
- }
-
- String[] msgs=processImportData(importRst); //carNums+ignorCarNums
- boolean sameCover="1".equals(importRst.getReqParams().get("sameCover")); //相同车辆是否覆盖库中的
-
- String sameIgnor=service.addCars(importRst.getListDatas(),msgs[0],sameCover);
- /**
- * sameIgnor 禁止覆盖时被忽略的车牌
- * checkIgnor 业务校验不通过的车牌
- * validateError 基本数据校验错误信息
- */
- Map<String,Object> rtn=MapUtils.build("sameIgnor",sameIgnor,"checkIgnor",msgs[1],"validateError",importRst.getError().toString(),"successCount",importRst.getListDatas().size());
- JsonOutUtils.returnOkWithData(response,rtn);
-
-
-
-
- }
- catch(Exception e){
- e.printStackTrace();
- JsonOutUtils.returnError(response, "导入出现错误");
- }
- }
-
- /**
- * 对上传的原始数据进行处理,业务约束校验、数据转换(名称转编码)
- * 目前校验设备名称、规格型号是否与定额标准表中的对应;
- * 单位名称转编码;柴油车类型转编码
- */
- private String[] processImportData(ExcelResult importRst){
- Map<String,Object> orgs=orgService.loadOrgMapping();
- Map<String,Object> coilType=codeService.loadSortCodeMapping("402881e8734da7fa01734da7fa600000");
- Map<String,Object> deviceNames=service.loadCarDeviceNameMapping();
- Iterator<Map<String,Object>> iterator=importRst.getListDatas().iterator();
- Map<String,Object> itm=null;
- String model=null;
- StringBuilder ignorMsg=new StringBuilder();
- UUIDHexGenerator uuid=UUIDHexGenerator.getInstance();
-
- Set<String> carNums=new HashSet<String>();
- String carNum=null;
- while(iterator.hasNext()){
- itm=iterator.next();
- carNum=(String)itm.get("carNum");
- if(StringUtils.isEmpty(carNum)){
- iterator.remove();
- ignorMsg.append(itm.get("customNum")+";");
- continue;
- }
- carNum=carNum.replaceAll("\\s+", "");
- itm.put("carNum", carNum);
- carNums.add(carNum);
- if(!orgs.containsKey((String)itm.get("belongOrg"))){
- iterator.remove();
- ignorMsg.append(carNum+";");
- continue;
- }
- if(!coilType.containsKey((String)itm.get("coilCarType"))){
- iterator.remove();
- ignorMsg.append(carNum+";");
- continue;
- }
- if(!deviceNames.containsKey((String)itm.get("deviceName"))){
- ignorMsg.append(carNum+";");
- iterator.remove();
- continue;
- }
- else{
- model=(String)deviceNames.get((String)itm.get("deviceName"));
- if(StringUtils.isNotEmpty(model)&&!model.equals(itm.get("deviceModel"))){
- ignorMsg.append(itm.get("carNum")+";");
- iterator.remove();
- continue;
- }
- }
-
- itm.put("belongOrg", orgs.get((String)itm.get("belongOrg")));
- itm.put("coilCarType", orgs.get((String)itm.get("coilCarType")));
- itm.put("carId", uuid.generate());
- itm.put("createTime", new Date());
- itm.put("modifyTime", new Date());
- }
- return new String[]{StringUtils.join(carNums,","),(ignorMsg.length()>0?ignorMsg.toString():null)};
- }
- }
|