浏览代码

git-svn-id: https://192.168.57.71/svn/jsgkj@115 931142cf-59ea-a443-aa0e-51397b428577

xt_mayh 9 年之前
父节点
当前提交
16f290f455
共有 48 个文件被更改,包括 1105 次插入561 次删除
  1. 14 0
      gkmb/trunk/Mooring/src/main/java/com/loygra/mooring/common/RequestURL.java
  2. 6 1
      gkmb/trunk/Mooring/src/main/java/com/loygra/mooring/common/ResponseSC.java
  3. 19 10
      gkmb/trunk/Mooring/src/main/java/com/loygra/mooring/controller/AnchorageLocalMangerView.java
  4. 9 0
      gkmb/trunk/Mooring/src/main/java/com/loygra/mooring/controller/ControlCenterControllerView.java
  5. 35 4
      gkmb/trunk/Mooring/src/main/java/com/loygra/mooring/daoImpl/BaseDaoImpl.java
  6. 27 19
      gkmb/trunk/Mooring/src/main/java/com/loygra/mooring/service/cron/CronDataServiceImpl.java
  7. 65 30
      gkmb/trunk/Mooring/src/main/java/com/loygra/mooring/service/cron/CronServiceThread.java
  8. 6 0
      gkmb/trunk/Mooring/src/main/java/com/loygra/mooring/serviceImpl/AnchorageApplyServiceImpl.java
  9. 2 1
      gkmb/trunk/Mooring/src/main/java/com/loygra/mooring/serviceImpl/ExportExcelImpl.java
  10. 6 4
      gkmb/trunk/Mooring/src/main/java/com/loygra/mooring/serviceImpl/UserServiceImpl.java
  11. 4 3
      gkmb/trunk/Mooring/src/main/java/com/loygra/mooring/util/Arith.java
  12. 90 5
      gkmb/trunk/Mooring/src/main/java/com/loygra/mooring/util/DateUtils.java
  13. 1 0
      gkmb/trunk/Mooring/src/main/java/com/loygra/mooring/util/ResultMapUtils.java
  14. 1 1
      gkmb/trunk/Mooring/src/main/webapp/WEB-INF/jsp/common.jsp
  15. 2 0
      gkmb/trunk/Mooring/src/main/webapp/WEB-INF/jsp/controlCenter/index.jsp
  16. 100 53
      gkmb/trunk/Mooring/src/main/webapp/WEB-INF/jsp/controlCenter/overview.jsp
  17. 1 1
      gkmb/trunk/Mooring/src/main/webapp/WEB-INF/jsp/localAnchorageManger/anchorPostionApprovalDetail.jsp
  18. 66 38
      gkmb/trunk/Mooring/src/main/webapp/WEB-INF/jsp/localAnchorageManger/anchorage_allview.jsp
  19. 2 0
      gkmb/trunk/Mooring/src/main/webapp/WEB-INF/jsp/localAnchorageManger/index.jsp
  20. 371 265
      gkmb/trunk/Mooring/src/main/webapp/WEB-INF/jsp/localAnchorageManger/mooringStatistic.jsp
  21. 2 0
      gkmb/trunk/Mooring/src/main/webapp/WEB-INF/jsp/localAnchorageManger/preAlarmInfo.jsp
  22. 48 22
      gkmb/trunk/Mooring/src/main/webapp/css/localAnchorManger/anchorage_allview.css
  23. 二进制
      gkmb/trunk/Mooring/src/main/webapp/img/anchor_icon_kongxian.png
  24. 二进制
      gkmb/trunk/Mooring/src/main/webapp/img/anchor_icon_yuliu.png
  25. 二进制
      gkmb/trunk/Mooring/src/main/webapp/img/anchor_icon_zhanyong.png
  26. 二进制
      gkmb/trunk/Mooring/src/main/webapp/img/arrow_icon.png
  27. 二进制
      gkmb/trunk/Mooring/src/main/webapp/img/arrow_icon_active.png
  28. 二进制
      gkmb/trunk/Mooring/src/main/webapp/img/img_layer_icon.png
  29. 二进制
      gkmb/trunk/Mooring/src/main/webapp/img/img_layer_icon_active.png
  30. 二进制
      gkmb/trunk/Mooring/src/main/webapp/img/maxbtn_icon.png
  31. 二进制
      gkmb/trunk/Mooring/src/main/webapp/img/maxbtn_icon_active.png
  32. 二进制
      gkmb/trunk/Mooring/src/main/webapp/img/paint_icon.png
  33. 二进制
      gkmb/trunk/Mooring/src/main/webapp/img/paint_icon_active.png
  34. 33 18
      gkmb/trunk/Mooring/src/main/webapp/js/ais.js
  35. 12 12
      gkmb/trunk/Mooring/src/main/webapp/js/ais_20160408.js
  36. 1 1
      gkmb/trunk/Mooring/src/main/webapp/js/anchorApply/anchor_all_view.js
  37. 1 1
      gkmb/trunk/Mooring/src/main/webapp/js/base_config.js
  38. 20 13
      gkmb/trunk/Mooring/src/main/webapp/js/common-ais.js
  39. 11 5
      gkmb/trunk/Mooring/src/main/webapp/js/config.js
  40. 1 1
      gkmb/trunk/Mooring/src/main/webapp/js/controlCenter/auditList.js
  41. 2 2
      gkmb/trunk/Mooring/src/main/webapp/js/controlCenter/auditListRecord.js
  42. 1 1
      gkmb/trunk/Mooring/src/main/webapp/js/controlCenter/mooring_record.js
  43. 55 24
      gkmb/trunk/Mooring/src/main/webapp/js/controlCenter/overview.js
  44. 1 1
      gkmb/trunk/Mooring/src/main/webapp/js/localAnchorageManger/anchorPositionApproal.js
  45. 84 23
      gkmb/trunk/Mooring/src/main/webapp/js/localAnchorageManger/anchorage_allview.js
  46. 1 1
      gkmb/trunk/Mooring/src/main/webapp/js/localAnchorageManger/mooring_record.js
  47. 1 1
      gkmb/trunk/Mooring/src/main/webapp/js/localAnchorageManger/unberthConfirm.js
  48. 4 0
      gkmb/trunk/Mooring/src/main/webapp/js/websocket.js

+ 14 - 0
gkmb/trunk/Mooring/src/main/java/com/loygra/mooring/common/RequestURL.java

@@ -430,6 +430,20 @@ public class RequestURL {
 		 */
 		public final static String ALARM_ID = "/alarm/{id}";
 	}
+	
+	/**
+	 * 
+	 * 统计
+	 * 
+	 * @author Mayer.ng
+	 *
+	 */
+	public static class STATISTIC {
+		/**
+		 * 锚泊船舶
+		 */
+		public final static String MOORING_SHIP = "/stat/mooring/ship";
+	}
 
 	/**
 	 * 收费

+ 6 - 1
gkmb/trunk/Mooring/src/main/java/com/loygra/mooring/common/ResponseSC.java

@@ -269,7 +269,12 @@ public class ResponseSC {
 		 * 请输入申报计划相关的船舶
 		 * 
 		 */
-		APPLY_SHIP_NOT_NULL(21208);
+		APPLY_SHIP_NOT_NULL(21208),
+		/**
+		 * 开始时间大于结束时间
+		 * 
+		 */
+		BEGIN_TIME_AFTER_END_TIME(21209);
 
 		private int code;
 

+ 19 - 10
gkmb/trunk/Mooring/src/main/java/com/loygra/mooring/controller/AnchorageLocalMangerView.java

@@ -244,15 +244,24 @@ public class AnchorageLocalMangerView extends BaseController {
 	}
 	
 	// 提醒消息页面
-		@RequestMapping(method=RequestMethod.GET,value="/infos/tip")
-		public String getInfosTip(HttpServletRequest req,HttpServletResponse resp){
-			return "/localAnchorageManger/infostip";
-		}
-		
-		// 预警消息页面
-		@RequestMapping(method=RequestMethod.GET,value="/prealarm/info")
-		public String getPreAlarmInfo(HttpServletRequest req,HttpServletResponse resp){
-			return "/localAnchorageManger/preAlarmInfo";
-		}
+	@RequestMapping(method=RequestMethod.GET,value="/infos/tip")
+	public String getInfosTip(HttpServletRequest req,HttpServletResponse resp){
+		return "/localAnchorageManger/infostip";
+	}
+	
+	// 预警消息页面
+	@RequestMapping(method=RequestMethod.GET,value="/prealarm/info")
+	public String getPreAlarmInfo(HttpServletRequest req,HttpServletResponse resp){
+		return "/localAnchorageManger/preAlarmInfo";
+	}
+	
+	/**
+	 * @Func:地图最大化URL
+	 * 
+	 */
+	@RequestMapping(method=RequestMethod.GET,value="/localmanger/map/max")
+	public String getLocalMangerMapMax(HttpServletRequest req,HttpServletResponse resp){
+		return "/localAnchorageManger/map_max";
+	}
 	
 }

+ 9 - 0
gkmb/trunk/Mooring/src/main/java/com/loygra/mooring/controller/ControlCenterControllerView.java

@@ -172,4 +172,13 @@ public class ControlCenterControllerView extends BaseController{
 		return "/controlCenter/infostip";
 	}
 	
+	/**
+	 * @Func:地图最大化URL
+	 * 
+	 */
+	@RequestMapping(method=RequestMethod.GET,value="/controlcenter/map/max")
+	public String getControlCenterMapMax(HttpServletRequest req,HttpServletResponse resp){
+		return "/controlCenter/map_max";
+	}
+	
 }

+ 35 - 4
gkmb/trunk/Mooring/src/main/java/com/loygra/mooring/daoImpl/BaseDaoImpl.java

@@ -1,11 +1,15 @@
 package com.loygra.mooring.daoImpl;
 
+import java.util.List;
+import java.util.Map;
+
 import org.apache.ibatis.session.SqlSession;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import com.loygra.mooring.util.PageBean;
 import com.loygra.mooring.util.ResultMapUtils;
 
 /**
@@ -14,14 +18,41 @@ import com.loygra.mooring.util.ResultMapUtils;
  * @author Mayer.Ng
  * 
  */
-@Component
-public class BaseDaoImpl extends ResultMapUtils{
+@Component("baseDao")
+public class BaseDaoImpl extends ResultMapUtils {
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -7740327382630707675L;
 	/**
 	 * LOG
 	 */
-	protected final static Logger LOGGER = LoggerFactory
-			.getLogger(BaseDaoImpl.class);
+	protected final static Logger LOGGER = LoggerFactory.getLogger(BaseDaoImpl.class);
 	@Autowired
 	protected SqlSession sqlSession;
+
+	public List selectList(String statement, Object param) {
+		return sqlSession.selectList(statement, param);
+	}
+
+	public List<?> selectList4Page(PageBean pageBean, String statement, Map<String, Object> param) {
+		pageBean.setPageParam4Oracle(param);
+		return sqlSession.selectList(statement, param);
+	}
+
+	public Integer selectCount(String statement, Object param) {
+		return sqlSession.selectOne(statement, param);
+	}
 	
+	public Object selectOne(String statement, Object param) {
+		return sqlSession.selectOne(statement, param);
+	}
+
+	public void insert(String statement, Object param) {
+		sqlSession.insert(statement, param);
+	}
+
+	public void update(String statement, Object param) {
+		sqlSession.insert(statement, param);
+	}
 }

+ 27 - 19
gkmb/trunk/Mooring/src/main/java/com/loygra/mooring/service/cron/CronDataServiceImpl.java

@@ -33,7 +33,7 @@ public class CronDataServiceImpl {
 	@Autowired
 	private CronServiceThread cronThread;
 
-	private static boolean TEST_AIS_FLAG = false;
+	private static boolean TEST_AIS_FLAG = true;
 
 	/**
 	 * 
@@ -60,22 +60,18 @@ public class CronDataServiceImpl {
 	 * @param velocityContext
 	 * @throws Exception
 	 */
-	// @Scheduled(cron = "0 2/7 * * * ?")
-	@Scheduled(cron = "0 20 * * * ?")
+	@Scheduled(cron = "0 2/7 * * * ?")
 	private void hp1Data() throws Exception {
 		// 按照锚地的数量分为线程同时执行
 		for (int i = 0; i < MooringCache.ANCHOR_LONTATS.size(); i++) {
-			// ProcessAISThread aisThread = cronThread.new ProcessAISThread();
-			// aisThread.setIndex(i);
-			// startThead(aisThread);
+			ProcessAISThread aisThread = cronThread.new ProcessAISThread();
+			aisThread.setIndex(i);
+			startThead(aisThread);
 		}
-		ProcessAISThread aisThread = cronThread.new ProcessAISThread();
-		aisThread.setIndex(2);
-		startThead(aisThread);
 		//
 		Thread.sleep(10000);
 		// 船舶之间靠太近预警
-		// startThead(cronThread.new AuditedApplyShipsTooClosedProcessThread());
+		startThead(cronThread.new AuditedApplyShipsTooClosedProcessThread());
 	}
 
 	/**
@@ -86,7 +82,7 @@ public class CronDataServiceImpl {
 	 * @param templateLocation
 	 * @param velocityContext
 	 */
-	// @Scheduled(cron = "0 4/10 * * * ?")
+	@Scheduled(cron = "0 4/10 * * * ?")
 	private void hp2Data() {
 		// 1待核准、2已发布、3核准未通过、4已靠泊、5已离泊、6已收费、7待调剂、8待发布
 		// 处理申报计划
@@ -136,7 +132,7 @@ public class CronDataServiceImpl {
 	 * 
 	 */
 	// 0 15 10 ? * *
-	// @Scheduled(cron = "0 8 * * * ?")
+	@Scheduled(cron = "0 8 * * * ?")
 	private void hourData() {
 		// 天气
 		startThead(cronThread.new GetWeatherInfo());
@@ -148,18 +144,31 @@ public class CronDataServiceImpl {
 	 * 
 	 */
 	// 0 15 10 ? * *
-	// @Scheduled(cron = "0 0 0 1 1 ?")
+	@Scheduled(cron = "0 0 0 1 1 ?")
 	private void dayOfYearData() {
 		// 船代公司诚信清零
 		startThead(cronThread.new ClearAgentUserIntegrity());
 	}
+	
+	/**
+	 * 
+	 * 月数据
+	 * 
+	 */
+	// 0 15 10 ? * *
+	@Scheduled(cron = "0 0 4 1 * ?")
+	private void dayOfMonthData() {
+		// 清除临时文件
+		startThead(cronThread.new ClearTempFiles());
+	}
+
 
 	/**
 	 * 
 	 * 每天的12:00将未审核、未发布、待调剂的申报置为拒绝,并给申报单位发邮件
 	 * 
 	 */
-	// @Scheduled(cron = "0 0 12 * * ?")
+	@Scheduled(cron = "0 0 12 * * ?")
 	private void appllyOutOfTime() {
 		startThead(cronThread.new ProcessApplyOutOfTime());
 	}
@@ -208,11 +217,10 @@ public class CronDataServiceImpl {
 	public static String[] getAISDataByMMSI(String mmsi) {
 		if (TEST_AIS_FLAG) {
 			return HttpServiceSender.doGet("http://localhost:8080/mooring/service/test/realtime.json?mmsi=" + mmsi);
-		}else{
-			 String param = "{mmsi:\"" + mmsi + "\"}";
-			 return HttpServiceSender
-			 .doGet("http://114.251.210.32/msaapi?cmd=0x5101&param=" +
-			 Base64.encodeBase64String(param.getBytes()));
+		} else {
+			String param = "{mmsi:\"" + mmsi + "\"}";
+			return HttpServiceSender.doGet(
+					"http://114.251.210.32/msaapi?cmd=0x5101&param=" + Base64.encodeBase64String(param.getBytes()));
 		}
 	}
 

+ 65 - 30
gkmb/trunk/Mooring/src/main/java/com/loygra/mooring/service/cron/CronServiceThread.java

@@ -1,9 +1,11 @@
 package com.loygra.mooring.service.cron;
 
+import java.io.File;
 import java.net.URLEncoder;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -42,6 +44,7 @@ import com.loygra.mooring.util.Arith;
 import com.loygra.mooring.util.DateUtils;
 import com.loygra.mooring.util.HttpServiceSender;
 import com.loygra.mooring.util.LogUtil;
+import com.loygra.mooring.util.PropertiesUtil;
 import com.loygra.mooring.websocket.WebsocketEndPoint;
 
 import net.sf.json.JSONArray;
@@ -89,34 +92,38 @@ public class CronServiceThread {
 			try {
 				System.out.println(System.currentTimeMillis() + ":发送预警提醒数据开始");
 				Map<String, WebSocketSession> userkeySession = WebsocketEndPoint.userkeySession;
-				for (String key : userkeySession.keySet()) {
+				// 删除不活跃的连接
+				Set<String> keys = userkeySession.keySet();
+				for (String key : keys) {
 					WebSocketSession session = userkeySession.get(key);
 					if (session == null || !session.isOpen()) {
 						userkeySession.remove(key);
-					} else {
-						// 查询人员所在的港口
-						HarbourInfoBO harbour = userDao.selectHarbourInfoByManageUserId(UserCache.getUserIdByKey(key));
-						// 统计该港口的报警数据
-						Map<String, AlarmStatisticInfo> statistics = null;
-						if (harbour != null && harbour.getCode() != null) {
-							Map<String, Object> param = new HashMap<String, Object>();
-							param.put("harbour_code", harbour.getCode());
-							statistics = alarmDao.statisticByCategory(param);
+					}
+				}
+				for (String key : userkeySession.keySet()) {
+					// 查询人员所在的港口
+					HarbourInfoBO harbour = userDao.selectHarbourInfoByManageUserId(UserCache.getUserIdByKey(key));
+					// 统计该港口的报警数据
+					Map<String, AlarmStatisticInfo> statistics = null;
+					if (harbour != null && harbour.getCode() != null) {
+						Map<String, Object> param = new HashMap<String, Object>();
+						param.put("harbour_code", harbour.getCode());
+						statistics = alarmDao.statisticByCategory(param);
+					}
+					if (statistics != null) {
+						// 发送给当前人员
+						String num1 = "0";
+						String num2 = "0";
+						//
+						if (statistics.get("1") != null) {
+							num1 = CommonUtil.getQZeroString(statistics.get("1").getNum());
 						}
-						if (statistics != null) {
-							// 发送给当前人员
-							String num1 = "0";
-							String num2 = "0";
-							//
-							if (statistics.get("1") != null) {
-								num1 = CommonUtil.getQZeroString(statistics.get("1").getNum());
-							}
-							if (statistics.get("2") != null) {
-								num2 = CommonUtil.getQZeroString(statistics.get("2").getNum());
-							}
-							WebsocketEndPoint.sendMessage(key, num1 + "," + num2);
+						if (statistics.get("2") != null) {
+							num2 = CommonUtil.getQZeroString(statistics.get("2").getNum());
 						}
+						WebsocketEndPoint.sendMessage(key, num1 + "," + num2);
 					}
+
 				}
 			} catch (Exception e) {
 				e.printStackTrace();
@@ -305,7 +312,7 @@ public class CronServiceThread {
 		public void run() {
 			Long start_time = System.currentTimeMillis();
 			System.out.println(start_time + ":AIS区域索引号开始" + index + "/" + MooringCache.ANCHOR_LONTATS.size() + "结束");
-			//index:0非核准停泊,1靠泊提醒,2走锚提醒,3滞留预警
+			// index:0非核准停泊,1靠泊提醒,2走锚提醒,3滞留预警
 			int[] processCounts = new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
 			try {
 				// 获取该边界内的
@@ -395,14 +402,17 @@ public class CronServiceThread {
 									alarmInfo.setApply_id(applyInfo.getId());
 									alarmInfo.setOperate(1);
 									//
-									if (applyInfo.getStatus() != 2 && applyInfo.getStatus() != 4) {
+									if (applyInfo.getStatus() != 2 && applyInfo.getStatus() != 4
+											&& applyInfo.getStatus() != 5 && applyInfo.getStatus() != 6) {
 										// 地图预警
 										aisData.setAlarm_status(Constants.Alarm.UN_AUDIT_MOORING);
 										// if (applyInfo.getAudit_harbour_code()
 										// != null ) {
 										alarmInfo.setRelate_type(2);
+										alarmInfo.setHarbour_code(border.getHarbour_code());
 										alarmInfo.setCategory(2);
 										alarmInfo.setAlarm_type(202);
+										alarmInfo.setMmsi(aisData.getMmsi());
 										//
 										Integer count = alarmDao.selectCount(alarmInfo.getMapParam());
 										if (count == 0) {
@@ -464,7 +474,7 @@ public class CronServiceThread {
 												aisData.setAlarm_status(Constants.Alarm.PARK_OVERTIME);
 												//
 												alarmInfo.setCategory(2);
-												alarmInfo.setAlarm_type(206);
+												alarmInfo.setAlarm_type(204);
 												//
 												Integer count = alarmDao.selectCount(alarmInfo.getMapParam());
 												if (count == 0) {
@@ -539,8 +549,8 @@ public class CronServiceThread {
 	public class AuditedApplyShipsTooClosedProcessThread implements Runnable {
 		public void run() {
 			System.out.println("已发布、已靠泊的船舶过近预警开始:" + System.currentTimeMillis());
-			//index:0计划内船舶接近预警
-			int[] processCounts = new int[]{0,0,0,0,0,0,0,0,0,0,0,0};
+			// index:0计划内船舶接近预警
+			int[] processCounts = new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
 			try {
 				Map<String, Object> param = new HashMap<String, Object>();
 				param.put("status", new Integer[] { 4 });
@@ -549,7 +559,7 @@ public class CronServiceThread {
 						.selectUnCompleteApplyInfos4CronAndPlanTime(param);
 				// 拿一条船跟其他的船进行比较,如果超过小于150m,则进行预警
 				if (uncompletedApplyInfos != null && uncompletedApplyInfos.size() > 1) {
-					for (int i = 0; i < uncompletedApplyInfos.size(); i++) {
+					for (int i = 0; i < uncompletedApplyInfos.size() - 1; i++) {
 						AnchorPositionApplyInfoBO apply_i = uncompletedApplyInfos.get(i);
 						for (int j = i + 1; j < uncompletedApplyInfos.size(); j++) {
 							AnchorPositionApplyInfoBO apply_j = uncompletedApplyInfos.get(j);
@@ -571,7 +581,7 @@ public class CronServiceThread {
 								Integer count = alarmDao.selectCount(alarmInfo.getMapParam());
 								if (count == 0) {
 									alarmDao.insert(alarmInfo);
-									processCounts[0]+=1;
+									processCounts[0] += 1;
 								}
 							}
 						}
@@ -580,7 +590,7 @@ public class CronServiceThread {
 			} catch (Exception e) {
 				System.out.println(e.getMessage());
 			}
-			String result = "申报船舶之间接近处理,结果为:船舶接近数量"+processCounts[0];
+			String result = "申报船舶之间接近处理,结果为:船舶接近数量" + processCounts[0];
 			System.out.println(result);
 			LogUtil.errorLog(result);
 			System.out.println("已发布、已靠泊的船舶过近预警结束:" + System.currentTimeMillis());
@@ -676,6 +686,31 @@ public class CronServiceThread {
 
 	/**
 	 * 
+	 * 临时文件清除
+	 * 
+	 * @author Mayer.ng
+	 *
+	 */
+	public class ClearTempFiles implements Runnable {
+
+		public void run() {
+			try {
+				System.out.println("清除临时xls文件开始");
+				String xls_tmp_file_dir = PropertiesUtil.getProperty("local.filePath") + "xls\\";
+				File[] tmp = new File(xls_tmp_file_dir).listFiles();
+				int size = tmp.length;
+				for (int i = 0; i < size; i++) {
+					tmp[i].delete();
+				}
+				System.out.println("清除临时xls文件结束,共删除xls文件数" + size);
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
+	}
+
+	/**
+	 * 
 	 * 申报审核超时,自动拒绝+发邮件
 	 * 
 	 * @author Mayer.ng

+ 6 - 0
gkmb/trunk/Mooring/src/main/java/com/loygra/mooring/serviceImpl/AnchorageApplyServiceImpl.java

@@ -205,6 +205,7 @@ public class AnchorageApplyServiceImpl extends BaseServiceImpl implements Anchor
 					// harbourName = user.getHarbour_name();
 					// }
 					HSSFWorkbook workbook = new HSSFWorkbook();
+					new File(xls_path).mkdirs();
 					String path = xls_path + headerTitle + "_" + DateUtils.getDateStrDt(5) + ".xls";
 					OutputStream out = new FileOutputStream(path);
 					String[] headers = { "序号", "船名", "申请人", "来港", "去港", "所载货物", "锚泊地点", "计划锚泊时间", "计划离泊时间", "核准状态",
@@ -418,6 +419,7 @@ public class AnchorageApplyServiceImpl extends BaseServiceImpl implements Anchor
 						harbourName = user.getHarbour_name();
 					}
 					HSSFWorkbook workbook = new HSSFWorkbook();
+					new File(xls_path).mkdirs();
 					String path = xls_path + headerTitle + "_" + DateUtils.getDateStrDt(5) + ".xls";
 					OutputStream out = new FileOutputStream(path);
 					String[] headers = { "序号", "锚泊地点", "申报单位", "船舶英文名", "船舶中文名", "船舶呼号", "所载货物", "去港", "船长(米)",
@@ -835,6 +837,7 @@ public class AnchorageApplyServiceImpl extends BaseServiceImpl implements Anchor
 							harbourName = harbour.getName();
 						}
 						//
+						new File(xls_path).mkdirs();
 						String path = xls_path + harbourName + "船舶锚泊计划执行表_" + DateUtils.getDateStrDt(5) + ".xls";
 						OutputStream out = new FileOutputStream(path);
 
@@ -917,6 +920,7 @@ public class AnchorageApplyServiceImpl extends BaseServiceImpl implements Anchor
 						if (harbour != null) {
 							harbourName = harbour.getName();
 						}
+						new File(xls_path).mkdirs();
 						String path = xls_path + harbourName + "船舶锚泊历史查询表_" + DateUtils.getDateStrDt(5) + ".xls";
 						OutputStream out = new FileOutputStream(path);
 
@@ -1116,6 +1120,7 @@ public class AnchorageApplyServiceImpl extends BaseServiceImpl implements Anchor
 				if (param.get("export_type") != null && "1".equals(param.get("export_type").toString())) {
 					ExportExcelImpl<AnchorPositionApplyInfoBO> exp = new ExportExcelImpl<AnchorPositionApplyInfoBO>();
 					HSSFWorkbook workbook = new HSSFWorkbook();
+					new File(xls_path).mkdirs();
 					String path = xls_path + "江苏沿江锚地锚泊申报计划表_" + DateUtils.getDateStrDt(5) + ".xls";
 					OutputStream out = new FileOutputStream(path);
 
@@ -1202,6 +1207,7 @@ public class AnchorageApplyServiceImpl extends BaseServiceImpl implements Anchor
 						headerTitle = "江苏沿江锚地锚泊历史申报表";
 					}
 					HSSFWorkbook workbook = new HSSFWorkbook();
+					new File(xls_path).mkdirs();
 					String path = xls_path + headerTitle + "_" + DateUtils.getDateStrDt(5) + ".xls";
 					OutputStream out = new FileOutputStream(path);
 

+ 2 - 1
gkmb/trunk/Mooring/src/main/java/com/loygra/mooring/serviceImpl/ExportExcelImpl.java

@@ -74,7 +74,7 @@ public class ExportExcelImpl<T> {
 		HSSFFont font = workbook.createFont();
 		font.setColor(HSSFColor.BLACK.index);
 		font.setFontHeightInPoints((short) 12);
-		font.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);
+		font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
 		// 把字体应用到当前的样式
 		style.setFont(font);
 		// 生成并设置另一个样式
@@ -166,6 +166,7 @@ public class ExportExcelImpl<T> {
 		while (it.hasNext()) {
 			dataRowIndex++;
 			row = sheet.createRow(dataRowIndex);
+			row.setHeightInPoints(20);
 			T t = (T) it.next();
 			// Field[] fields = t.getClass().getDeclaredFields();
 			// String[] fields = null;

+ 6 - 4
gkmb/trunk/Mooring/src/main/java/com/loygra/mooring/serviceImpl/UserServiceImpl.java

@@ -252,10 +252,12 @@ public class UserServiceImpl extends BaseServiceImpl implements UserService {
 			// 如果是锚地管理单位,则需要把港口code,放入到session
 			if (user.getRelate_type() == Constants.Entity.USER_TYPE_MANAGE) {
 				ManageUserInfoBO mangeUserBo = userDao.getHarbourManageUser(user.getId());
-				resultMap.put("harbour_code", mangeUserBo.getHarbour_code());
-				//
-				user.setDep_name(mangeUserBo.getHarbour_name());
-				user.setHarbour_code(mangeUserBo.getHarbour_code());
+				if(mangeUserBo !=null) {
+					resultMap.put("harbour_code", mangeUserBo.getHarbour_code());
+					//
+					user.setDep_name(mangeUserBo.getHarbour_name());
+					user.setHarbour_code(mangeUserBo.getHarbour_code());
+				}
 			}
 			// 如果是申报单位子账户,则将用户名称改成子账户名称
 			if (user.getRelate_type() == Constants.Entity.USER_TYPE_AGENT_SUB) {

+ 4 - 3
gkmb/trunk/Mooring/src/main/java/com/loygra/mooring/util/Arith.java

@@ -228,7 +228,7 @@ public class Arith {
 	}
 
 	/**
-	 * 根据两个位置的经纬度,来计算两地的距离(单位为KM
+	 * 根据两个位置的经纬度,来计算两地的距离(单位为km
 	 * 
 	 * @return
 	 */
@@ -248,7 +248,7 @@ public class Arith {
 		double distance = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(difference / 2), 2)
 				+ Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(mdifference / 2), 2)));
 		distance = distance * EARTH_RADIUS;
-		distance = Math.round(distance * 10000) / 10000;
+		//distance = Math.round(distance * 10000) / 10000;
 		return distance;
 		// String distanceStr = distance+"";
 		// distanceStr = distanceStr.
@@ -288,6 +288,7 @@ public class Arith {
 	}
 
 	public static void main(String[] args) {
-		System.out.println(getComplexForString("++++++++++++++"));
+//		System.out.println(getComplexForString("++++++++++++++"));
+		System.out.println(getDistance(121.257572, 31.65625, 121.259082, 31.65624));
 	}
 }

+ 90 - 5
gkmb/trunk/Mooring/src/main/java/com/loygra/mooring/util/DateUtils.java

@@ -18,13 +18,13 @@ public class DateUtils {
 
 	/** 完整时间 yyyy-MM-dd HH:mm */
 	public static final String simple = "yyyy-MM-dd HH:mm";
-	
+
 	/** 年月日(无下划线) yyyyMMdd */
 	public static final String dtSimple = "yyyy-MM-dd";
 
 	/** 年月日(无下划线) yyyyMMdd */
 	public static final String dtShort = "yyyyMMdd";
-	
+
 	/** 年月日 yyyy.MM.dd */
 	public static final String dtShortPoint = "yyyy.MM.dd";
 	/** 年月日 yyyy.MM.dd HH:mm */
@@ -39,7 +39,7 @@ public class DateUtils {
 	 * @throws ParseException
 	 */
 	public static Date parse(String pattern, String text) throws ParseException {
-		if(StringUtils.isEmpty(text)) {
+		if (StringUtils.isEmpty(text)) {
 			return null;
 		}
 		SimpleDateFormat df = new SimpleDateFormat(pattern);
@@ -162,7 +162,7 @@ public class DateUtils {
 
 		return calendar.getTime();
 	}
-	
+
 	/**
 	 * 获取当前时间的后一天
 	 */
@@ -306,6 +306,36 @@ public class DateUtils {
 				date = DateUtils.parse(DateUtils.simple,
 						DateUtils.format(DateUtils.dtSimple, DateUtils.getBeforeOneDateTime(new Date())) + " 12:00");
 				break;
+			case 8:
+				// 本周一00:00
+				//
+				date = DateUtils.parse(DateUtils.simple,
+						DateUtils.format(DateUtils.dtSimple, getMondayOfThisWeek()) + " 00:00");
+				break;
+			case 9:
+				// 本周日23:59
+				//
+				date = DateUtils.parse(DateUtils.simple,
+						DateUtils.format(DateUtils.dtSimple, getSundayOfThisWeek()) + " 23:59");
+				break;
+			case 10:
+				// 当天23:59
+				//
+				date = DateUtils.parse(DateUtils.simple,
+						DateUtils.format(DateUtils.dtSimple, new Date()) + " 23:59");
+				break;
+			case 11:
+				// 当月第1天 00:00
+				//
+				date = DateUtils.parse(DateUtils.simple,
+						DateUtils.format(DateUtils.dtSimple, getFirstDayOfThisMonth()) + " 00:00");
+				break;
+			case 12:
+				// 当月最后一天 23:59
+				//
+				date = DateUtils.parse(DateUtils.simple,
+						DateUtils.format(DateUtils.dtSimple, getLastDayOfThisMonth()) + " 23:59");
+				break;
 			default:
 				break;
 			}
@@ -314,9 +344,64 @@ public class DateUtils {
 		}
 		return date;
 	}
-	
 
+	public static void main(String[] args) {
+		System.out.println(getFirstDayOfThisMonth());
+		System.out.println(getLastDayOfThisMonth());
+	}
+
+	/**
+	 * 得到本周周一
+	 *
+	 * @return yyyy-MM-dd
+	 */
+	public static Date getMondayOfThisWeek() {
+		Calendar c = Calendar.getInstance();
+		int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1;
+		if (day_of_week == 0)
+			day_of_week = 7;
+		c.add(Calendar.DATE, -day_of_week + 1);
+		return c.getTime();
+	}
+
+	/**
+	 * 得到本周周日
+	 *
+	 * @return yyyy-MM-dd
+	 */
+	public static Date getSundayOfThisWeek() {
+		Calendar c = Calendar.getInstance();
+		int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1;
+		if (day_of_week == 0)
+			day_of_week = 7;
+		c.add(Calendar.DATE, -day_of_week + 7);
+		return c.getTime();
+	}
 
+	
+	 /**
+     * 当月第一天
+     * @return
+     */
+    private static Date getFirstDayOfThisMonth() {
+    	Calendar calendar = Calendar.getInstance();     
+        calendar.set(Calendar.DAY_OF_MONTH, calendar     
+                .getActualMinimum(Calendar.DAY_OF_MONTH)); 
+        calendar.setTime(getDate(5));
+        return calendar.getTime();
+    }
+    
+	 /**
+     * 当月最后一天
+     * @return
+     */
+    private static Date getLastDayOfThisMonth() {
+    	Calendar calendar = Calendar.getInstance();     
+        calendar.set(Calendar.DAY_OF_MONTH, calendar     
+                .getActualMaximum(Calendar.DAY_OF_MONTH)); 
+        return calendar.getTime();
+    }
+	
 	/**
 	 * 
 	 * 取得时间

+ 1 - 0
gkmb/trunk/Mooring/src/main/java/com/loygra/mooring/util/ResultMapUtils.java

@@ -72,6 +72,7 @@ public class ResultMapUtils extends DispatcherServlet {
 		sSCMap.put(MooringSC.APPLY_SUBMIT_FORBIDDEN.getCode(), "09:00~12:00期间为锚泊计划核准期间,不受理申请提交");
 		sSCMap.put(MooringSC.PLAN_PARK_TIME_NOT_NULL.getCode(), "计划锚泊时间不能为空");
 		sSCMap.put(MooringSC.APPLY_SHIP_NOT_NULL.getCode(), "申报计划相关的船舶不能为空");
+		sSCMap.put(MooringSC.BEGIN_TIME_AFTER_END_TIME.getCode(), "开始时间不能大于结束时间");
 		
 		sSCMap.put(ResponseSC.UserSC.PASSWORD_COMPLEX_CHECK_FAILURE.getCode(), "密码至少包含数字和字母");
 	}

+ 1 - 1
gkmb/trunk/Mooring/src/main/webapp/WEB-INF/jsp/common.jsp

@@ -8,7 +8,7 @@
 <script src="<%=basePath%>/lib/pintuer/pintuer.js?tag=<%=ConfigPro.VERSION%>"></script>
  <script type="text/javascript">
    		var localUrl="<%=basePath%>/service";
- </script>  
+ </script>
  
 <link rel="stylesheet" href="<%=basePath%>/lib/layer/skin/layer.css" />
 <link rel="stylesheet" href="<%=basePath%>/lib/layer/skin/layer.ext.css" />

+ 2 - 0
gkmb/trunk/Mooring/src/main/webapp/WEB-INF/jsp/controlCenter/index.jsp

@@ -17,12 +17,14 @@
 	<script src="<%=basePath%>/lib/highcharts/highcharts.js?tag=<%=ConfigPro.VERSION%>"></script>
 	<link rel="stylesheet" type="text/css" href="<%=basePath%>/lib/webUploader/webuploader.css">
 	<script type="text/javascript" src="<%=basePath%>/lib/webUploader/webuploader.min.js"></script>
+	<script src="<%=basePath%>/lib/notify/jquery.notify.js?tag=<%=ConfigPro.VERSION%>"></script> 
 	<script src="<%=basePath%>/js/websocket.js?tag=<%=ConfigPro.VERSION%>"></script>
 	<script type="text/javascript">
        		var user_key = "${UserInfo.ukey}";
        		var user_name = "${UserInfo.name}" ;
        		var user_id = "${UserInfo.id}";
        		var img_url = "<%=ConfigPro.IMAGE_DOMAIN%>/";
+       		var vedio_url = "<%=basePath%>";
        		var localUrladdress = "<%=basePath%>";
        		var relate_type = "${UserInfo.relate_type}";
           	var self_harbour_id = "${harbour_code}"; 		//本港口的code

+ 100 - 53
gkmb/trunk/Mooring/src/main/webapp/WEB-INF/jsp/controlCenter/overview.jsp

@@ -3,69 +3,80 @@
 <%@ page import="com.loygra.mooring.cfg.ConfigPro" %>
 <%@ include  file="../base_common.jsp"%>
 <link rel="stylesheet" href="<%=basePath%>/css/localAnchorManger/anchorage_allview.css?tag=<%=ConfigPro.VERSION%>">
-<script type="text/javascript">
-</script>
-<script src="<%=basePath%>/js/controlCenter/overview.js"></script>
+<script src="<%=basePath%>/js/controlCenter/overview.js?tag=<%=ConfigPro.VERSION%>"></script>
 <script type="text/javascript" src="<%=basePath%>/js/common-ais.js?tag=<%=ConfigPro.VERSION%>"></script>
 <script type="text/javascript" src="<%=basePath%>/js/ais.js?tag=<%=ConfigPro.VERSION%>"></script>
 
 <span style="display: none;" id="status"></span>
-<div class="swap-content" style="position: relative;">  <!-- id="swap-content" -->
-	<div id="map" style="position:absolute;left:0px;right:0px;width:100%;"></div>
-	<div class="button btn-shaw" style="background: white;" id="harbour-select-name">
-		<strong><span id="select-name-val">全省</span></strong> <span id="harbor-select-arrow" class="downward"></span>
-	</div>
-	<div id="control-harbour-info" class="harbourselectcolum" style="width: 315px;height: 114px;background: white;">
-		<p style="margin :0 16px;border-bottom: 1px solid #d9d9d9;line-height: 43px;height: 43px;font-size: 14px;">
-			<strong><span>当前港口:</span><span id="copy-harbour-val">全省</span></strong>
-			<span class="close" style="float: right;margin-top: 9px;"></span>
-		</p>
-		<P class="harbournameindex" style="margin :0 16px;line-height: 35px;">      <!-- <span value="321002">扬州港</span> -->
-			<span>全省</span> <span value="321000">南京港</span> <span value="321001">镇江港</span><span value="321003">泰州港</span> <span value="321004">常州港</span> <br>
-			<span value="321005">江阴港</span> <span value="321006">张家港港</span><span value="321007">南通港</span>
-			<span value="321008">常熟港</span><span value="321009">太仓港</span> 
-		</P>
-	</div>
+<div class="swap-content" style="position: relative;">  
+	<div id="map" style="position:absolute;left:0px;right:0px;width:100%;min-width:500px;min-height: 500px;"></div>
+	
+<!-- 	<div class="button btn-shaw" style="background: white;" id="harbour-select-name"> -->
+<!-- 		<strong><span id="select-name-val">全省</span></strong> <span id="harbor-select-arrow" class="downward"></span> -->
+<!-- 	</div> -->
+<!-- 	<div id="control-harbour-info" class="harbourselectcolum" style="width: 315px;height: 114px;background: white;"> -->
+<!-- 		<p style="margin :0 16px;border-bottom: 1px solid #d9d9d9;line-height: 43px;height: 43px;font-size: 14px;"> -->
+<!-- 			<strong><span>当前港口:</span><span id="copy-harbour-val">全省</span></strong> -->
+<!-- 			<span class="close" style="float: right;margin-top: 9px;"></span> -->
+<!-- 		</p> -->
+<!-- 		<P class="harbournameindex" style="margin :0 16px;line-height: 35px;">      <span value="321002">扬州港</span> -->
+<!-- 			<span>全省</span> <span value="321000">南京港</span> <span value="321001">镇江港</span><span value="321003">泰州港</span> <span value="321004">常州港</span> <br> -->
+<!-- 			<span value="321005">江阴港</span> <span value="321006">张家港港</span><span value="321007">南通港</span> -->
+<!-- 			<span value="321008">常熟港</span><span value="321009">太仓港</span>  -->
+<!-- 		</P> -->
+<!-- 	</div> -->
 	
 	
-	<div style="position: absolute;right:30px;top:30px;width:390px;">
-		<div style="height: 48px;">
-			<div id="search-ship" class="tab-style" style="border-right: 1px solid #D9d9d9;">
-				<img class="imgcommon" src="<%=basePath%>/img/ship_icon.png">
-				<img class="imgactive" src="<%=basePath%>/img/ship_icon_active.png">
-				<span style="margin-left: 4px;">搜索船舶</span>
-				<img class="imgcommon" style="margin-top: 13px;float: right;margin-right: 12px;" src="<%=basePath%>/img/arrow_icon.png">
-				<img class="imgactive" style="margin-top: 13px;float: right;margin-right: 12px;" src="<%=basePath%>/img/arrow_icon_active.png">
+	<div style="position: absolute;right:20px;top:20px;width:460px;">
+		<div style="height: 34px;padding: 4px 0;background: white;">
+			<div id="change2harbour" class="tab-style" style="border-right: 1px solid #e2e2e2;width: 75px;">
+				<span style="margin-left: 8px;">南京港</span>
+				<img class="imgcommon" style="margin-bottom:10px;margin-left: 6px;" src="<%=basePath%>/img/arrow_icon.png">
+				<img class="imgactive" style="margin-bottom:10px;margin-left: 6px;" src="<%=basePath%>/img/arrow_icon_active.png">
 			</div>
-			<div id="paint-sample" class="tab-style" style="border-right: 1px solid #D9d9d9;width: 120px;">
+			<div id="search-ship" class="tab-style" style="border-right: 1px solid #e2e2e2;width: 115px;">
+				<img class="imgcommon" src="<%=basePath%>/img/ship_icon_map.png">
+				<img class="imgactive" src="<%=basePath%>/img/ship_icon_map_active.png">
+				<span style="margin-left: 8px;">搜索船舶</span>
+				<img class="imgcommon" style="margin-bottom:10px;margin-left: 6px;" src="<%=basePath%>/img/arrow_icon.png">
+				<img class="imgactive" style="margin-bottom:10px;margin-left: 6px;" src="<%=basePath%>/img/arrow_icon_active.png">
+			</div>
+			<div id="paint-sample" class="tab-style" style="border-right: 1px solid #e2e2e2;width: 90px;">
 				<img class="imgcommon"  src="<%=basePath%>/img/paint_icon.png">
 				<img class="imgactive" src="<%=basePath%>/img/paint_icon_active.png">
-				<span>图例</span>
-				<img class="imgcommon" style="margin-top: 13px;float: right;margin-right: 12px;" src="<%=basePath%>/img/arrow_icon.png">
-				<img class="imgactive" style="margin-top: 13px;float: right;margin-right: 12px;" src="<%=basePath%>/img/arrow_icon_active.png">
+				<span style="margin-left: 8px;">图例</span>
+				<img class="imgcommon" style="margin-bottom:10px;margin-left: 6px;" src="<%=basePath%>/img/arrow_icon.png">
+				<img class="imgactive" style="margin-bottom:10px;margin-left: 6px;" src="<%=basePath%>/img/arrow_icon_active.png">
 			</div>
-			<div id="img-layer" class="tab-style" style="width: 120px;">
+			<div id="img-layer" class="tab-style" style="border-right: 1px solid #e2e2e2;width: 90px;">
 				<img class="imgcommon" src="<%=basePath%>/img/img_layer_icon.png">
 				<img class="imgactive"  src="<%=basePath%>/img/img_layer_icon_active.png">
-				<span>图层</span>
-				<img class="imgcommon" style="margin-top: 13px;float: right;margin-right: 12px;" src="<%=basePath%>/img/arrow_icon.png">
-				<img class="imgactive" style="margin-top: 13px;float: right;margin-right: 12px;" src="<%=basePath%>/img/arrow_icon_active.png">
+				<span style="margin-left: 8px;">图层</span>
+				<img class="imgcommon" style="margin-bottom:10px;margin-left: 6px;" src="<%=basePath%>/img/arrow_icon.png">
+				<img class="imgactive" style="margin-bottom:10px;margin-left: 6px;" src="<%=basePath%>/img/arrow_icon_active.png">
+			</div>
+			<div id="tool-btn" class="tab-style" style="width: 90px;">
+				<img class="imgcommon" src="<%=basePath%>/img/tool_map_icon.png">
+				<img class="imgactive"  src="<%=basePath%>/img/tool_map_icon_active.png">
+				<span style="margin-left: 8px;">工具</span>
+				<img class="imgcommon" style="margin-bottom:10px;margin-left: 6px;" src="<%=basePath%>/img/arrow_icon.png">
+				<img class="imgactive" style="margin-bottom:10px;margin-left: 6px;" src="<%=basePath%>/img/arrow_icon_active.png">
 			</div>
 		</div>
 		<div style="margin-top: 3px;">
-				<div id="search-ship-tab" style="height:46px;width:390px;background: white;display: none;" class="divsearch">
-					<input class="searchbtn" id="search_key_word" style="height: 46px;width: 240px;display: inline;border: white;margin-left: 10px;" placeholder="搜索船舶">
+				<div id="search-ship-tab" style="height:36px;width:460px;background: white;display: none;" class="divsearch">
+					<input class="searchbtn" id="search_key_word" style="height: 36px;width: 240px;display: inline;border: white;margin-left: 10px;" placeholder="搜索船舶">
 					<span class="searchfindbtn" onclick="searchShip()" ></span>
 				</div>
-				<div id="paint-sample-tab" style="height:72px;width:390px;background: white;line-height: 72px;display: none;" class="divsearch">
-					<span style="padding: 20px;">空闲</span>
-					<img style="margin: 0 30px 22px 0" src="<%=basePath%>/img/anchor_icon_kongxian.png">
-					<span style="padding: 20px;">预置</span>
-					<img style="margin: 0 30px 22px 0" src="<%=basePath%>/img/anchor_icon_yuliu.png">
-					<span style="padding: 20px;">占用</span>
-					<img style="margin-bottom: 22px;" src="<%=basePath%>/img/anchor_icon_zhanyong.png">
+				<div id="paint-sample-tab" style="height:36px;width:460px;background: white;line-height: 36px;display: none;" class="divsearch">
+					<span style="padding: 12px;font-size:12px;padding-left: 55px;">空闲</span>
+					<img style="margin: 0 30px 10px 0" src="<%=basePath%>/img/anchor_icon_kongxian.png">
+					<span style="padding: 12px;font-size:12px;padding-left: 35px;">预置</span>
+					<img style="margin: 0 30px 10px 0" src="<%=basePath%>/img/anchor_icon_yuliu.png">
+					<span style="padding: 12px;font-size:12px;padding-left: 35px;">占用</span>
+					<img style="margin-bottom: 10px;" src="<%=basePath%>/img/anchor_icon_zhanyong.png">
 				</div>
-				<div id="img-layer-tab" style="height:70px;width:393px;background: white;line-height: 35px;display: none;" class="divsearch">
+				<div id="img-layer-tab" style="height:50px;width:460px;background: white;line-height: 25px;display: none;" class="divsearch">
 					<ul class="ul-layer-sel">
 						<li>
 							<input id="shipCheck" checked="checked" type="checkbox"> 船舶图层
@@ -82,23 +93,59 @@
 						<li>
 							<input id="planShipCheck" type="checkbox"> 计划船舶
 						</li>
+						<li>
+							<span class="click-active">清除所有图层</span>
+						</li>
 					</ul>
 				</div>
+				<div id="tool-btn-tab" style="height:73px;width:90px;background: white;line-height: 36px;display: none;float: right;" class="divsearch">
+					<div style="cursor: pointer;height: 36px;" id="measure-distance">
+						<img style="margin: 0 10px 11px 15px;" src="<%=basePath%>/img/distance_map_icon.png">
+						<span style="font-size: 12px;">测距</span>
+					</div>
+					<div style="border-top: 1px solid #e2e2e2;cursor: pointer;height: 36px;" id="measure-area">
+						<img style="margin: 0 10px 9px 15px;" src="<%=basePath%>/img/measure_area.png">
+						<span  style="font-size: 12px;">测面积</span>
+					</div>
+				</div>
+				<div id="change2harbour-tab" style="width:460px;height:114px;background: white;line-height: 36px;display: none;" class="divsearch">
+<!-- 					<div id="control-harbour-info" class="harbourselectcolum" style="width: 315px;height: 114px;background: white;"> -->
+						<p style="margin :0 16px;border-bottom: 1px solid #d9d9d9;line-height: 43px;height: 43px;font-size: 14px;">
+							<strong><span>当前港口:</span><span id="copy-harbour-val">南京港</span></strong>
+<!-- 							<span class="close" style="float: right;margin-top: 9px;"></span> -->
+						</p>
+						<P class="harbournameindex" style="margin :0 16px;line-height: 35px;">      
+							<span value="321000">南京港</span> <span value="321001">镇江港</span><span value="321002">扬州港</span><span value="321003">泰州港</span> <span value="321004">常州港</span>
+							<span value="321005">江阴港</span><span value="321006">张家港港</span> <br>
+							 <span value="321007">南通港</span>
+							<span value="321008">常熟港</span><span value="321009">太仓港</span> 
+						</P>
+<!-- 					</div> -->
+			  </div>
 		</div>
 	</div>
 	
-	<div style="top:156px;" class="tip-style">
+<!-- 	<div style="top:156px;" class="tip-style"> -->
+<!-- 		<div class="max-btn" value="maxbtn"> -->
+<!-- 		</div> -->
+<!-- 		<div class="map-mode-change" value="map-mode-change"> -->
+<!-- 		</div> -->
+<!-- 	</div> -->
+	
+<!-- 	<div class="tip-style" style="top:222px;"> -->
+<!-- 		<div class="distance-calcute" value="distance-calcute"> -->
+<!-- 		</div> -->
+<!-- 		<div class="area-calcute" value="area-calcute"> -->
+<!-- 		</div> -->
+<!-- 	</div> -->
+	
+	<div style="top:156px;" class="tip-style" >
 		<div class="max-btn" value="maxbtn">
 		</div>
-		<div class="map-mode-change" value="map-mode-change">
-		</div>
 	</div>
 	
-	<div class="tip-style" style="top:222px;">
-		<div class="distance-calcute" value="distance-calcute">
-		</div>
-		<div class="area-calcute" value="area-calcute">
-		</div>
+	<div class="map-mode-change">
+		
 	</div>
 	
 <!-- 	<div style="height:42px;width:340px;background: white;" class="divsearch"> -->

+ 1 - 1
gkmb/trunk/Mooring/src/main/webapp/WEB-INF/jsp/localAnchorageManger/anchorPostionApprovalDetail.jsp

@@ -96,7 +96,7 @@
 <div class="list-info" id="block1">
 	<table class="mooring-table table table-bordered">
 		<tr>
-			<td colspan="4" class="table-head">锚泊申请详细信息1</td>
+			<td colspan="4" class="table-head">锚泊申请详细信息</td>
 		</tr>
 		<tr>
 			<td class="td-head-column">申报时间</td>

+ 66 - 38
gkmb/trunk/Mooring/src/main/webapp/WEB-INF/jsp/localAnchorageManger/anchorage_allview.jsp

@@ -8,47 +8,54 @@
 <script type="text/javascript" src="<%=basePath%>/js/common-ais.js?tag=<%=ConfigPro.VERSION%>"></script>
 <script type="text/javascript" src="<%=basePath%>/js/localAnchorageManger/anchorage_allview.js?tag=<%=ConfigPro.VERSION%>"></script>
 
-<div class="swap-content" style="position: relative">  <!-- id="swap-content" -->
-	<div id="map" style="position:absolute;left:0px;right:0px;width:100%;"></div>
+<div class="swap-content" style="position: relative"> 
+	<div id="map" style="position:absolute;left:0px;right:0px;width:100%;min-width:500px;min-height: 500px;"></div>
 	
-	<div style="position: absolute;right:30px;top:30px;width:390px;">
-		<div style="height: 48px;">
-			<div id="search-ship" class="tab-style" style="border-right: 1px solid #D9d9d9;">
-				<img class="imgcommon" src="<%=basePath%>/img/ship_icon.png">
-				<img class="imgactive" src="<%=basePath%>/img/ship_icon_active.png">
-				<span style="margin-left: 4px;">搜索船舶</span>
-				<img class="imgcommon" style="margin-top: 13px;float: right;margin-right: 12px;" src="<%=basePath%>/img/arrow_icon.png">
-				<img class="imgactive" style="margin-top: 13px;float: right;margin-right: 12px;" src="<%=basePath%>/img/arrow_icon_active.png">
+	<div style="position: absolute;right:20px;top:20px;width:385px;">
+		<div style="height: 34px;padding: 4px 0;background: white;">
+			<div id="search-ship" class="tab-style" style="border-right: 1px solid #e2e2e2;width: 115px;">
+				<img class="imgcommon" src="<%=basePath%>/img/ship_icon_map.png">
+				<img class="imgactive" src="<%=basePath%>/img/ship_icon_map_active.png">
+				<span style="margin-left: 8px;">搜索船舶</span>
+				<img class="imgcommon" style="margin-bottom:10px;margin-left: 6px;" src="<%=basePath%>/img/arrow_icon.png">
+				<img class="imgactive" style="margin-bottom:10px;margin-left: 6px;" src="<%=basePath%>/img/arrow_icon_active.png">
 			</div>
-			<div id="paint-sample" class="tab-style" style="border-right: 1px solid #D9d9d9;width: 120px;">
+			<div id="paint-sample" class="tab-style" style="border-right: 1px solid #e2e2e2;width: 90px;">
 				<img class="imgcommon"  src="<%=basePath%>/img/paint_icon.png">
 				<img class="imgactive" src="<%=basePath%>/img/paint_icon_active.png">
-				<span>图例</span>
-				<img class="imgcommon" style="margin-top: 13px;float: right;margin-right: 12px;" src="<%=basePath%>/img/arrow_icon.png">
-				<img class="imgactive" style="margin-top: 13px;float: right;margin-right: 12px;" src="<%=basePath%>/img/arrow_icon_active.png">
+				<span style="margin-left: 8px;">图例</span>
+				<img class="imgcommon" style="margin-bottom:10px;margin-left: 6px;" src="<%=basePath%>/img/arrow_icon.png">
+				<img class="imgactive" style="margin-bottom:10px;margin-left: 6px;" src="<%=basePath%>/img/arrow_icon_active.png">
 			</div>
-			<div id="img-layer" class="tab-style" style="width: 120px;">
+			<div id="img-layer" class="tab-style" style="border-right: 1px solid #e2e2e2;width: 90px;">
 				<img class="imgcommon" src="<%=basePath%>/img/img_layer_icon.png">
 				<img class="imgactive"  src="<%=basePath%>/img/img_layer_icon_active.png">
-				<span>图层</span>
-				<img class="imgcommon" style="margin-top: 13px;float: right;margin-right: 12px;" src="<%=basePath%>/img/arrow_icon.png">
-				<img class="imgactive" style="margin-top: 13px;float: right;margin-right: 12px;" src="<%=basePath%>/img/arrow_icon_active.png">
+				<span style="margin-left: 8px;">图层</span>
+				<img class="imgcommon" style="margin-bottom:10px;margin-left: 6px;" src="<%=basePath%>/img/arrow_icon.png">
+				<img class="imgactive" style="margin-bottom:10px;margin-left: 6px;" src="<%=basePath%>/img/arrow_icon_active.png">
+			</div>
+			<div id="tool-btn" class="tab-style" style="width: 90px;">
+				<img class="imgcommon" src="<%=basePath%>/img/tool_map_icon.png">
+				<img class="imgactive"  src="<%=basePath%>/img/tool_map_icon_active.png">
+				<span style="margin-left: 8px;">工具</span>
+				<img class="imgcommon" style="margin-bottom:10px;margin-left: 6px;" src="<%=basePath%>/img/arrow_icon.png">
+				<img class="imgactive" style="margin-bottom:10px;margin-left: 6px;" src="<%=basePath%>/img/arrow_icon_active.png">
 			</div>
 		</div>
 		<div style="margin-top: 3px;">
-				<div id="search-ship-tab" style="height:46px;width:390px;background: white;display: none;" class="divsearch">
-					<input class="searchbtn" id="search_key_word" style="height: 46px;width: 240px;display: inline;border: white;margin-left: 10px;" placeholder="搜索船舶">
+				<div id="search-ship-tab" style="height:36px;width:385px;background: white;display: none;" class="divsearch">
+					<input class="searchbtn" id="search_key_word" style="height: 36px;width: 240px;display: inline;border: white;margin-left: 10px;" placeholder="搜索船舶">
 					<span class="searchfindbtn" onclick="searchShip()" ></span>
 				</div>
-				<div id="paint-sample-tab" style="height:72px;width:390px;background: white;line-height: 72px;display: none;" class="divsearch">
-					<span style="padding: 20px;">空闲</span>
-					<img style="margin: 0 30px 22px 0" src="<%=basePath%>/img/anchor_icon_kongxian.png">
-					<span style="padding: 20px;">预置</span>
-					<img style="margin: 0 30px 22px 0" src="<%=basePath%>/img/anchor_icon_yuliu.png">
-					<span style="padding: 20px;">占用</span>
-					<img style="margin-bottom: 22px;" src="<%=basePath%>/img/anchor_icon_zhanyong.png">
+				<div id="paint-sample-tab" style="height:36px;width:385px;background: white;line-height: 36px;display: none;" class="divsearch">
+					<span style="padding: 12px;font-size:12px;padding-left: 55px;">空闲</span>
+					<img style="margin: 0 30px 10px 0" src="<%=basePath%>/img/anchor_icon_kongxian.png">
+					<span style="padding: 12px;font-size:12px;">预置</span>
+					<img style="margin: 0 30px 10px 0" src="<%=basePath%>/img/anchor_icon_yuliu.png">
+					<span style="padding: 12px;font-size:12px;">占用</span>
+					<img style="margin-bottom: 10px;" src="<%=basePath%>/img/anchor_icon_zhanyong.png">
 				</div>
-				<div id="img-layer-tab" style="height:70px;width:393px;background: white;line-height:35px;display: none;" class="divsearch">
+				<div id="img-layer-tab" style="height:50px;width:385px;background: white;line-height: 25px;display: none;" class="divsearch">
 					<ul class="ul-layer-sel">
 						<li>
 							<input id="shipCheck" checked="checked" type="checkbox"> 船舶图层
@@ -65,8 +72,21 @@
 						<li>
 							<input id="planShipCheck" type="checkbox"> 计划船舶
 						</li>
+						<li>
+							<span class="click-active">清除所有图层</span>
+						</li>
 					</ul>
 				</div>
+				<div id="tool-btn-tab" style="height:73px;width:90px;background: white;line-height: 36px;display: none;float: right;" class="divsearch">
+					<div style="cursor: pointer;" id="measure-distance">
+						<img style="margin: 0 10px 11px 15px;" src="<%=basePath%>/img/distance_map_icon.png">
+						<span style="font-size: 12px;">测距</span>
+					</div>
+					<div style="border-top: 1px solid #e2e2e2;cursor: pointer;" id="measure-area">
+						<img style="margin: 0 10px 11px 15px;" src="<%=basePath%>/img/measure_area.png">
+						<span  style="font-size: 12px;">测面积</span>
+					</div>
+				</div>
 		</div>
 	</div>
 	
@@ -92,19 +112,28 @@
 <!-- 			<tr><td style="width:120px" align="center" ><label><a href="#" id="clearLayer" onclick="clearLayers()" >清除图层</a></label></td></tr>  -->
 <!-- 		</table> -->
 <!-- 	</div> -->
-	<div style="top:156px;" class="tip-style">
+
+	<div style="top:156px;" class="tip-style" >
 		<div class="max-btn" value="maxbtn">
 		</div>
-		<div class="map-mode-change" value="map-mode-change">
-		</div>
 	</div>
 	
-	<div class="tip-style" style="top:222px;">
-		<div class="distance-calcute" value="distance-calcute">
-		</div>
-		<div class="area-calcute" value="area-calcute">
-		</div>
+	<div class="map-mode-change">
 	</div>
+
+<!-- 	<div style="top:156px;" class="tip-style"> -->
+<!-- 		<div class="max-btn" value="maxbtn"> -->
+<!-- 		</div> -->
+<!-- 		<div class="map-mode-change" value="map-mode-change"> -->
+<!-- 		</div> -->
+<!-- 	</div> -->
+	
+<!-- 	<div class="tip-style" style="top:222px;"> -->
+<!-- 		<div class="distance-calcute" value="distance-calcute"> -->
+<!-- 		</div> -->
+<!-- 		<div class="area-calcute" value="area-calcute"> -->
+<!-- 		</div> -->
+<!-- 	</div> -->
 	
 	<div id="ship-info-wrap" style="width: 480px;height: 234px;display: none">
 	 	<div>  
@@ -119,8 +148,7 @@
 				</p>
 				<p class="info-line">
 					 <span class="info-block"> <span>船 长(米):</span> <span id="ship-length"></span></span>
-					 <span class="info-block"> <span>船 宽(米):</span> <span id="ship-width"></span>
-					</span>
+					 <span class="info-block"> <span>船 宽(米):</span> <span id="ship-width"></span></span>
 				</p>
 				
 				<p class="info-line">

+ 2 - 0
gkmb/trunk/Mooring/src/main/webapp/WEB-INF/jsp/localAnchorageManger/index.jsp

@@ -16,11 +16,13 @@
 	<link rel="stylesheet" href="<%=basePath%>/css/localAnchorManger/index.css?tag=<%=ConfigPro.VERSION%>">
 	<link rel="stylesheet" type="text/css" href="<%=basePath%>/lib/webUploader/webuploader.css">
 	<script type="text/javascript" src="<%=basePath%>/lib/webUploader/webuploader.min.js"></script>
+	<script src="<%=basePath%>/lib/notify/jquery.notify.js?tag=<%=ConfigPro.VERSION%>"></script> 
 	<script src="<%=basePath%>/js/websocket.js?tag=<%=ConfigPro.VERSION%>"></script> 
 	
 	<script type="text/javascript">
 		var requestFileUrl = "<%=basePath%>";
    		var localUrladdress = "<%=basePath%>";
+   		var vedio_url = "<%=basePath%>";
    		var user_key = "${UserInfo.ukey}";
    		var img_url = "<%=ConfigPro.IMAGE_DOMAIN%>/";
    		var user_name = "${UserInfo.name}" ;

+ 371 - 265
gkmb/trunk/Mooring/src/main/webapp/WEB-INF/jsp/localAnchorageManger/mooringStatistic.jsp

@@ -4,161 +4,355 @@
 <%@ include  file="../base_common.jsp"%>
 <link rel="stylesheet" href="<%=basePath%>/css/localAnchorManger/mooringStatistic.css?tag=<%=ConfigPro.VERSION%>">
 <script type="text/javascript">
+var localUrladdress = "<%=basePath%>";
+var user_key = "${UserInfo.ukey}";
+var today = new Date();
+$("#stime-1").datepicker({
+	maxDate: today
+});
 
-$(function(){
-	
-	
-// 	$("#sub-nav li div").click(function(){
-// 		if($(this).hasClass("active")) {
-// 			return;
-// 		}
-// 		$("#sub-nav li div").removeClass("active");
-// 		$(this).addClass("active");
-// 		var is_main = $(this).hasClass("main");
-// 		var url = localUrl + $(this).attr("href");
-// 		if (is_main) {
-// 			getPage(url,"body-content");
-// 		} else {
-// 			getPage(url,"swap-content");
-// 		}
-// 	})
-	
-// 	var today = new Date();
-// 	$("#stime-1").datepicker({
-// 		maxDate: today
-// 	});
-	
-// 	$("#etime-1").datepicker({
-// 		maxDate: today
-// 	});
-	
-// 	$("#stime-2").datepicker({
-// 		maxDate: today
-// 	});
-	
-// 	$("#etime-2").datepicker({
-// 		maxDate: today
-// 	});
-	
-	
-	var chart_width = $("#body-content").width() /2 -2;
-	
+$("#etime-1").datepicker({
+	maxDate: today
+});
+
+$("#stime-2").datepicker({
+	maxDate: today
+});
+
+$("#etime-2").datepicker({
+	maxDate: today
+});
+
+$("#stime-3").datepicker({
+	maxDate: today
+});
+
+$("#etime-3").datepicker({
+	maxDate: today
+});
+
+$("#stime-4").datepicker({
+	maxDate: today
+});
+
+$("#etime-4").datepicker({
+	maxDate: today
+});
+//查询点击事件
+$(document).delegate('#searchButton','click',function(){
+	var sDate = new Date( $(".startTime").val().replace("-","/").replace("-","/"));
+	 var eDate = new Date( $(".endTime").val().replace("-","/").replace("-","/"));
+	 if($(".startTime").val()==""&& $(".endTime").val()=="" )
+		 {
+		  tooltips("时间不能为空",1,1000);
+		 } else  if( checkDateRange(sDate, eDate, "结束时间不能大于开始时间",""))
+						 {
+							    data={
+										"begin_time":sDate,
+										"end_time":eDate
+									};
+								mooringStatisticsTable(data);
+						 }
+});
+//今天查询点击事件
+$(document).delegate('#today','click',function(){
+	removeStyle();
+	$("#today").addClass("choseButtonStyle");
+	data={
+			"time_type":1	
+		};
+	mooringStatisticsTable(data);
+});
+//本周查询点击事件
+$(document).delegate('#week','click',function(){
+	removeStyle();
+	$("#week").addClass("choseButtonStyle");
+	data={
+			"time_type":2	
+		};
+	mooringStatisticsTable(data);
+});
+//本月查询点击事件
+$(document).delegate('#month','click',function(){
+	removeStyle();
+	$("#month").addClass("choseButtonStyle");
+	data={
+			"time_type":3	
+		};
+	mooringStatisticsTable(data);
+});
+//清楚选中样式方法
+function removeStyle(){
+	$("#today").removeClass("choseButtonStyle");
+	$("#week").removeClass("choseButtonStyle");
+	$("#month").removeClass("choseButtonStyle");
+};
+//锚泊表初始化
+data={
+	"time_type":1	
+};
+mooringStatisticsTable(data);
+//锚泊表查询方法
+ var  shipTypeData=[],shipLeveData=[],shipDishonestyName=[],shipDishonestyValue=[],shipMooringNumName=[],shipMooringNumValue=[];
+function mooringStatisticsTable(data){
 	
-	 $(function () {
-		    $('#shipType').highcharts({
-		        chart: {
-		            plotBackgroundColor: null,
-		            plotBorderWidth: null,
-		            plotShadow: false
-		        },
-		        title: {
-		            text: ''
-		        },
-		        tooltip: {
-		    	    pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
-		        },
-		        plotOptions: {
-		            pie: {
-		                allowPointSelect: true,
-		                cursor: 'pointer',
-		                dataLabels: {
-		                    enabled: true,
-		                    color: '#000000',
-		                    connectorColor: '#000000',
-		                    format: '<b>{point.name}</b>: {point.percentage:.1f} %'
-		                }
-		            }
-		        },
-		        series: [{
-		            type: 'pie',
-		            name: 'Browser share',
-		            data: [
-		                ['危险品',   27.0],
-		         
-		                {
-		                    name: '干散货',
-		                    y: 73.0,
-		                    sliced: true,
-		                    selected: true
-		                }
-		                
-		              
-		            ]
-		        }],
-		        credits: {
-		            enabled: false
-			       },
-		    });
-		});
-	 $(function () {
-		    $('#shipCount').highcharts({
-		        chart: {
-		            plotBackgroundColor: null,
-		            plotBorderWidth: null,
-		            plotShadow: false
-		        },
-		        title: {
-		            text: ''
-		        },
-		        tooltip: {
-		    	    pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
-		        },
-		        plotOptions: {
-		            pie: {
-		                allowPointSelect: true,
-		                cursor: 'pointer',
-		                dataLabels: {
-		                    enabled: true,
-		                    color: '#000000',
-		                    connectorColor: '#000000',
-		                    format: '<b>{point.name}</b>: {point.percentage:.1f} %'
-		                }
-		            }
-		        },
-		        series: [{
-		            type: 'pie',
-		            name: 'Browser share',
-		            data: [
-		                ['10万吨以上',   16.7],
-		         
+	doRequest("POST",localUrladdress+'/service/stat/mooring/ship.json', data,function(data){
+		if(data.status == '10001'){
+		 if(data.data.ship_count.length>0){
+			 var j=0;
+			 $("#statisticsTableInfo").empty();
+			 for(i=0;i<data.data.ship_count.length;i++)
+			 {
+			    $("#statisticsTableInfo").append(setStatisticsTableInfo(data.data.ship_count[i],i))
+			    if(data.data.ship_count[i].park_total_num>0&&data.data.ship_count[i].park_total_num!=null){
+			    	 shipMooringNumName[j]=data.data.ship_count[i].harbour_name;
+					 shipMooringNumValue[j]=data.data.ship_count[i].park_total_num;
+					 j=j+1;
+			    }
+			 }
+			 if(j>0)
+				 {
+				     $("#shipTime img").css("display","none");
+					 //调用锚泊统计图解口 传送数据实现锚泊次数统计表初始化
+				     setShipMooringNum(shipMooringNumName,shipMooringNumValue);
+				 }
+			 else{
+				 $("#shipTime img").css("display","block");
+			 }
+		 }
+		//失信行为统计表初始化设置
+		 if(data.data.ship_days.length>0)
+			 {
+				 for(i=0;i<data.data.ship_days.length;i++)
+				 {
+					 shipDishonestyName[i]=data.data.ship_days[i].day;
+					 shipDishonestyValue[i]=data.data.ship_days[i].num;
+				 }
+				 $("#anchorageTime img").css("display","none");
+				 setShipDishonestyChart(shipDishonestyName,shipDishonestyValue);
+			 }else{
+				 $("#anchorageTime img").css("display","block");
+			 }
+		//船舶类型统计表
+		 if(data.data.ship_goods.goods_1>0||data.data.ship_goods.goods_2>0||data.data.ship_goods.goods_3>0||data.data.ship_goods.goods_4>0||data.data.ship_goods.goods_5>0)
+			 {
+			 shipTypeData[0]=CheckFormVal0(data.data.ship_goods.goods_1);
+			 shipTypeData[1]=CheckFormVal0(data.data.ship_goods.goods_2);
+			 shipTypeData[2]=CheckFormVal0(data.data.ship_goods.goods_3);
+			 shipTypeData[3]=CheckFormVal0(data.data.ship_goods.goods_4);
+			 shipTypeData[4]=CheckFormVal0(data.data.ship_goods.goods_5);
+			 $("#shipType img").css("display","none");
+			 setShipTypeChart (shipTypeData);
+			 }else{
+				 $("#shipType img").css("display","block");
+			 }
+		//船舶等级统计表
+		 if(data.data.ship_tons.tons_1>0||data.data.ship_tons.tons_3>0||data.data.ship_tons.tons_4>0||data.data.ship_tons.tons_5>0)
+		 {
+			 shipLeveData[0]=CheckFormVal0(data.data.ship_tons.tons_1);
+			 shipLeveData[1]=CheckFormVal0(data.data.ship_tons.tons_3);
+			 shipLeveData[2]=CheckFormVal0(data.data.ship_tons.tons_4);
+			 shipLeveData[3]=CheckFormVal0(data.data.ship_tons.tons_5);
+// 			 $("#shipCount img").css("display","none");
+			 $("#shipCount img").css("display","none");
+			 setShipLeveChart (shipLeveData);
+		 }else{
+			 $("#shipCount img").css("display","block");
+		 }
+		}else{
+			alert(data.statusMsg);
+		}
+	}, function(){})
+};
+
+//table值设置方法
+function setStatisticsTableInfo(datas,i){
+	var tableData ='<tr>\
+	                    <td>'+(i+1)+'</td>\
+	                    <td>'+CheckFormVal0(datas.harbour_name)+'</td>\
+				        <td>'+CheckFormVal0(datas.anchorage_num)+'</td>\
+				        <td>'+CheckFormVal0(datas.park_total_num)+'</td>\
+				        <td>'+CheckFormVal0(datas.ship_num_detail.tons_1)+'</td>\
+				        <td>'+CheckFormVal0(datas.ship_num_detail.tons_3)+'</td>\
+				        <td>'+CheckFormVal0(datas.ship_num_detail.tons_4)+'</td>\
+				        <td>'+CheckFormVal0(datas.ship_num_detail.tons_5)+'</td>\
+				        <td>'+CheckFormVal0(datas.ship_num_detail.goods_1)+'</td>\
+				        <td>'+CheckFormVal0(datas.ship_num_detail.goods_2)+'</td>\
+				        <td>'+CheckFormVal0(datas.ship_num_detail.goods_3)+'</td>\
+				        <td>'+CheckFormVal0(datas.ship_num_detail.goods_4)+'</td>\
+				        <td>'+CheckFormVal0(datas.ship_num_detail.goods_5)+'</td>\
+				    </tr>';
+	return tableData;
+};
+ function setShipTypeChart (data) {
+    $('#shipType').highcharts({
+        chart: {
+            plotBackgroundColor: null,
+            plotBorderWidth: null,
+            plotShadow: false
+        },
+        title: {
+            text: ''
+        },
+        tooltip: {
+    	    pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
+        },
+        plotOptions: {
+            pie: {
+                allowPointSelect: true,
+                cursor: 'pointer',
+                dataLabels: {
+                    enabled: true,
+                    color: '#000000',
+                    connectorColor: '#000000',
+//                     format: '<b>{point.name}</b>: {point.percentage:.1f} %'
+                    formatter:function(){
+                    	if (this.percentage > 0)
+                    		return '<b>'+this.point.name+'</b>: '+this.point.percentage.toFixed(1)+'%'
+                    }
+                }
+            }
+        },
+        series: [{
+            type: 'pie',
+            name: 'Browser share',
+//             data:data
+  			data: [     
+                        ['危险品',   parseFloat(data[0])],         
 		                {
-		                    name: '5到10万吨',
-		                    y: 16.7,
+		                    name: '集装箱',
+		                    y: parseFloat(data[1]),
 		                    sliced: true,
 		                    selected: true
-		                },
-		                ['1万吨以下',    25.0],
-		                ['1到5万吨',     41.6]
-		              
-		            ]
-		        }],
-		        credits: {
-		            enabled: false
-			       },
-		    });
-		});
+		                }, 
+		                ['散杂船',   parseFloat(data[2])],
+		                ['危化品集装箱',  parseFloat(data[3])],
+		                ['其他',   parseFloat(data[4])]
+                  ]
+        }],
+        credits: {
+            enabled: false
+	       },
+    });
+};
+function setShipLeveChart(data) {
+    $('#shipCount').highcharts({
+        chart: {
+            plotBackgroundColor: null,
+            plotBorderWidth: null,
+            plotShadow: false
+        },
+        title: {
+            text: ''
+        },
+        tooltip: {
+    	    pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
+        },
+        plotOptions: {
+            pie: {
+                allowPointSelect: true,
+                cursor: 'pointer',
+                dataLabels: {
+                    enabled: true,
+                    color: '#000000',
+                    connectorColor: '#000000',
+//                     format: '<b>{point.name}</b>: {point.percentage:.1f} %'
+                    	 formatter:function(){
+                         	if (this.percentage > 0)
+                         		return '<b>'+this.point.name+'</b>: '+this.point.percentage.toFixed(1)+'%'
+                         }
+                }
+            }
+        },
+        series: [{
+            type: 'pie',
+            name: 'Browser share',
+            data: [
+                ['1万吨以下',   parseFloat(data[0])],
+         
+                {
+                    name: ' 1到5万吨',
+                    y: parseFloat(data[1]),
+                    sliced: true,
+                    selected: true
+                },
+                ['5到10万吨',    parseFloat(data[2])],
+                ['10万吨以上 ',     parseFloat(data[3])]
+              
+            ]
+        }],
+        credits: {
+            enabled: false
+	       },
+    });
+};
+
+function setShipDishonestyChart(dataName,dataValue){
+	$('#anchorageTime').highcharts({
+	    chart: {
+	        type: 'column'
+	//         ,
+	//         width: chart_width
+	    },
+	    title: {
+	        text: ''
+	    },
+	    xAxis: {
+	        categories: dataName
+	    },
+	    yAxis: {
+	        min: 0,
+	        title: {
+	            text: '锚泊次数总数'
+	        }
+	    },
+	    tooltip: {
+	        headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
+	        pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
+	            '<td style="padding:0"><b>{point.y:.1f} 次</b></td></tr>',
+	        footerFormat: '</table>',
+	        shared: true,
+	        useHTML: true
+	    },
+	    plotOptions: {
+	        column: {
+	            pointPadding: 0.2,
+	            borderWidth: 0
+	        }
+	    },
+	    series: [{
+	        name: '锚泊次数统计',
+	        data: dataValue
+	    }],
+	    credits: {
+	        enabled: false
+	       },
+});
+};
+function setShipMooringNum(dataName,dataValue){
 	 $('#shipTime').highcharts({
 	        chart: {
 	            type: 'column'
-// 	            ,
-// 	            width: chart_width
+//	            ,
+//	            width: chart_width
 	        },
 	        title: {
 	            text: ''
 	        },
 	        xAxis: {
-	            categories: [
-	                '南京',
-	                '镇江',
-	                '泰州',
-	                '常州',
-	                '江阴',
-	                '张家港',
-	                '南通',
-	                '常熟',
-	                '太仓'
+	        	categories:dataName
+// 	            categories: [
+// 	                '南京',
+// 	                '镇江',
+// 	                '泰州',
+// 	                '常州',
+// 	                '江阴',
+// 	                '张家港',
+// 	                '南通',
+// 	                '常熟',
+// 	                '太仓'
 	                
-	            ]
+// 	            ]
 	        },
 	        yAxis: {
 	            min: 0,
@@ -181,71 +375,17 @@ $(function(){
 	            }
 	        },
 	        series: [{
-	            name: '失信行为前10的船舶',
-	            data: [136, 112, 108, 141, 89, 91, 124,98, 113]
-	        }],
-	        credits: {
-	            enabled: false
-		       },
-	    });
-	 $('#anchorageTime').highcharts({
-	        chart: {
-	            type: 'column'
-// 	            ,
-// 	            width: chart_width
-	        },
-	        title: {
-	            text: ''
-	        },
-	        xAxis: {
-	            categories: [
-	                '5-1',
-	                '5-2',
-	                '5-3',
-	                '5-4',
-	                '5-5',
-	                '5-6',
-	                '5-7',
-	                '5-8',
-	                '5-9',
-	                '5-10',
-	                '5-11',
-	                '5-12',
-	                '5-13',
-	                '5-14',
-	                '5-15',
-	                '5-16'
-	                
-	            ]
-	        },
-	        yAxis: {
-	            min: 0,
-	            title: {
-	                text: '锚泊次数总数'
-	            }
-	        },
-	        tooltip: {
-	            headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
-	            pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
-	                '<td style="padding:0"><b>{point.y:.1f} 次</b></td></tr>',
-	            footerFormat: '</table>',
-	            shared: true,
-	            useHTML: true
-	        },
-	        plotOptions: {
-	            column: {
-	                pointPadding: 0.2,
-	                borderWidth: 0
-	            }
-	        },
-	        series: [{
-	            name: '失信行为前10的船舶',
-	            data: [45, 36, 40, 41, 52, 33, 19,25, 24,36,26,45,34,34,43,32]
+	            name: '各港口锚泊次数',
+	            data:dataValue
+// 	            data: [136, 112, 108, 141, 89, 91, 124,98, 113]
 	        }],
 	        credits: {
 	            enabled: false
 		       },
 	    });
+};
+$(function(){	
+	var chart_width = $("#body-content").width() /2 -2;	
 });
 
 </script>
@@ -254,18 +394,18 @@ $(function(){
          <div class="topMainDate">
 <!--              <div class="topMainTime"> -->
                     <span>时间:</span>
-                    <button class="buttonStytle">今天</button>
-                    <button class="buttonStytle">本周</button>
-                    <button class="buttonStytle choseButtonStyle">本月</button>
+                    <button id="today"class="buttonStytle">今天</button>
+                    <button id="week"class="buttonStytle">本周</button>
+                    <button id="month" class="buttonStytle choseButtonStyle">本月</button>
 <!--              </div> -->
 <!--              <div class="sub-container" style="text-align: center; width:520px!important;"> -->
 						<span>开始日期</span>
-						<input type="text" id="stime-1" value="2016-04-01" class="input sub-input shorter date-timer-icon">
+						<input type="text" id="stime-1" value="" class="input sub-input shorter date-timer-icon startTime">
 						<span class="span-margin">结束日期</span>
-						<input type="text" id="etime-1" value="2016-04-12" class="input sub-input shorter date-timer-icon">
+						<input type="text" id="etime-1" value="" class="input sub-input shorter date-timer-icon endTime">
 						
 <!-- 			</div> -->
-             <button class="button-main-border button btn-style" style="float: none; margin-left:15px;"> 
+             <button id="searchButton" class="button-main-border button btn-style" style="float: none; margin-left:15px;"> 
 						<span class="icon-search icon-font-color"></span> 查 询
 		     </button> 
          </div>
@@ -279,8 +419,7 @@ $(function(){
                              <th  rowspan="2" class="tableTheadTh">序号</th>
                              <th  rowspan="2" class="tableTheadTh">锚地管理单位</th>
                              <th  rowspan="2" class="tableTheadTh">锚地数量</th>
-                             <th  colspan="7">各港口锚泊船舶艘次</th>
-                             <th  colspan="7">省调度中心统筹安排船舶艘次</th>
+                             <th  colspan="10">各港口锚泊船舶艘次</th>
                          </tr>
                          <tr>
                              <th>总计</th>
@@ -288,76 +427,43 @@ $(function(){
                              <th>1到5万吨</th>
                              <th>5到10万吨</th>
                              <th>10万吨以上</th>
-                             <th>干散货</th>
-                             <th>危险品</th>
-                             <th>总计</th>
-                             <th>1万吨以下</th>
-                             <th>1到5万吨</th>
-                             <th>5到10万吨</th>
-                             <th>10万吨以上</th>
-                             <th>干散货</th>
-                             <th>危险品</th>
+                             <th>危化品</th>
+                             <th>集散箱</th>
+                             <th>散杂船</th>
+                             <th>危化品集装箱</th>
+                             <th>其他</th>
                          </tr>
                    </thead>
-                   <tbody>
-                         <tr>
-                             <td>1</td>
-                             <td>南京</td>
-                             <td>57</td>
-                             <td>12</td>
-                             <td>3</td>
-                             <td>3</td>
-                             <td>3</td>
-                             <td>5</td>
-                             <td>2</td>
-                             <td>8</td>
-                             <td>4</td>
-                             <td>5</td>
-                             <td>1</td>
-                             <td>1</td>
-                             <td>1</td>
-                             <td>3</td>
-                             <td>2</td>
-                         </tr>
-                         <tr>
-                             <td>2</td>
-                             <td>镇江</td>
-                             <td>57</td>
-                             <td>12</td>
-                             <td>3</td>
-                             <td>3</td>
-                             <td>3</td>
-                             <td>5</td>
-                             <td>2</td>
-                             <td>8</td>
-                             <td>4</td>
-                             <td>5</td>
-                             <td>1</td>
-                             <td>1</td>
-                             <td>1</td>
-                             <td>3</td>
-                             <td>2</td>
-                         </tr>
+                   <tbody id="statisticsTableInfo">
                    </tbody>
              </table>
          </div>
     </div>
     <div class="charts">
-         <div class="chartsSun borderBottomChart borderRightChart">
+         <div class="chartsSun borderBottomChart borderRightChart" style="width:50%;float:left;">
               <div class="chartsTitle"><span>船舶类型</span></div>
-              <div class="chartPar" id="shipType" style=" width: 696.5px; height: 300px;position: relative; overflow: hidden; text-align: left; line-height: normal; z-index: 0; -webkit-tap-highlight-color: rgba(0, 0, 0, 0);" ></div>  
+              <div class="chartPar" id="shipType" style="width: 100%; height: 300px;position: relative; overflow: hidden; text-align: left; line-height: normal; z-index: 0; -webkit-tap-highlight-color: rgba(0, 0, 0, 0);" >
+                   <img alt="" src="<%=basePath%>/img/common/no_stat_data.png"style=" width: 163px; height: 144px;display:none;margin:78px auto;">
+              </div>  
          </div>
-          <div class="chartsSun borderBottomChart">
+          <div class="chartsSun borderBottomChart" style="width:50%;float:left;">
               <div class="chartsTitle"><span>各港口锚泊次数</span></div>
-              <div class="chartPar" id ="shipTime" style=" width: 696.5px; height: 300px;position: relative; overflow: hidden; text-align: left; line-height: normal; z-index: 0; -webkit-tap-highlight-color: rgba(0, 0, 0, 0);"> </div>
+              <div class="chartPar" id ="shipTime" style=" width: 100%; height: 300px;position: relative; overflow: hidden; text-align: left; line-height: normal; z-index: 0; -webkit-tap-highlight-color: rgba(0, 0, 0, 0);"> 
+                   <img alt="" src="<%=basePath%>/img/common/no_stat_data.png" style=" width: 163px; height: 144px;display:none;margin:78px auto;">
+              </div>
          </div>
-          <div class="chartsSun borderRightChart ">
+         
+          <div class="chartsSun borderRightChart " style="width:50%;float:left;">
               <div class="chartsTitle"><span>船舶等级统计</span></div>
-              <div class="chartPar" id ="shipCount" style=" width: 696.5px; height: 300px;position: relative; overflow: hidden; text-align: left; line-height: normal; z-index: 0; -webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></div>
+              <div class="chartPar" id ="shipCount" style="width: 100%; height: 300px;position: relative; overflow: hidden; text-align: left; line-height: normal; z-index: 0; -webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
+                    <img alt="" src="<%=basePath%>/img/common/no_stat_data.png" style="width: 163px; height: 144px;display:none;margin:78px auto;">
+              </div>
          </div>
-          <div class="chartsSun  ">
+          <div class="chartsSun" style="width:50%;float:left;">
               <div class="chartsTitle"><span>锚泊次数统计</span></div>
-              <div class="chartPar" id="anchorageTime"  style=" width: 696.5px; height: 300px;position: relative; overflow: hidden; text-align: left; line-height: normal; z-index: 0; -webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></div>
+              <div class="chartPar" id="anchorageTime"  style="width: 100%; height: 300px;position: relative; overflow: hidden; text-align: left; line-height: normal; z-index: 0; -webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
+                         <img alt="" src="<%=basePath%>/img/common/no_stat_data.png" style=" width: 163px; height: 144px;display:none;margin:78px auto;">
+              </div>
          </div>
     </div> 
 <!-- </div> -->

+ 2 - 0
gkmb/trunk/Mooring/src/main/webapp/WEB-INF/jsp/localAnchorageManger/preAlarmInfo.jsp

@@ -27,6 +27,8 @@
 				<li value='203' class="li-hover">走锚预警</li>
 				<li class="line-color">|</li>
 				<li value='204' class="li-hover">离泊滞留预警</li>
+				<li class="line-color">|</li>
+				<li value='205' class="li-hover">船舶距离过近预警</li>
 			</ul>
 		</div>
 		<div id="tips-container">

+ 48 - 22
gkmb/trunk/Mooring/src/main/webapp/css/localAnchorManger/anchorage_allview.css

@@ -27,6 +27,14 @@
 	
 }
 
+.click-active{
+	cursor: pointer;
+}
+
+.click-active:HOVER{
+	color: #3499da;
+}
+
 /**
  * ��������ʽ
  */
@@ -80,7 +88,7 @@
 }
 .searchfindbtn{
 	width: 42px;
-	height: 46px;
+	height: 36px;
 	background: url("../../img/searchfind.png") no-repeat center;
 	cursor: pointer;
 	border: 0;
@@ -122,10 +130,10 @@
 
 .harbourselectcolum{
 	box-shadow: 2px 2px 1px rgba(0,0,0,.15);
-	position: absolute;
-	top:73px;
-	left:70px;
-	display: none;
+/* 	position: absolute; */
+/* 	top:73px; */
+/* 	left:70px; */
+/* 	display: none; */
 	z-index: 3000;
 }
 
@@ -209,31 +217,39 @@
 .ul-layer-sel li{
 	float: left;
 	margin-left: 20px;
-	width:110px;
+	width:100px;
+	font-size: 12px;
 }
 
 .tab-style{
-	padding: 8px 0;float: left;width:135px;height: 48px;cursor: pointer;background: white;
+	float: left;
+	width:135px;
+	height: 26px;
+	cursor: pointer;
 }
 
 .tab-style.active{
-	background: #48a9de;
+/* 	background: #48a9de; */
 }
 
 .tab-style .imgcommon{
-	margin-left: 10px;margin-bottom: 6px;
+	margin-left: 14px;
+	margin-bottom: 6px;
 }
 
 .tab-style .imgactive{
-	margin-left: 8px;margin-bottom: 6px;
+	margin-left: 14px;
+	margin-bottom: 6px;
 }
 
 .tab-style span{
-	line-height: 32px;margin-left:14px;
+	line-height: 26px;
+	font-size: 12px;
+	color:#666666;
 }
 
 .tab-style.active span{
-	color:white;
+	color: #579AFC;
 }
 
 .active .imgactive{
@@ -249,8 +265,11 @@
 }
 
 .tip-style{
-	position: absolute;left:30px;width:27px;height: 54px;
-	background: url("../../img/tip_bg.png")   no-repeat center ;
+	position: absolute;
+	left:28px;
+	width:27px;
+	height: 54px;
+/* 	background: url("../../img/tip_bg.png")   no-repeat center ; */
 }
 
 .tip-style div{
@@ -258,10 +277,10 @@
 }
 
 .max-btn{
-	width: 22px;
-	height: 22px;
+	width: 28px;
+	height: 28px;
 	margin:4px 0 3px 3px;
-	background: url("../../img/maxbtn_icon.png")  no-repeat center ;
+	background: url("../../img/maxbtn_icon.png")   no-repeat center ;
 }
 
 .max-btn.active{
@@ -269,14 +288,21 @@
 }
 
 .map-mode-change{
-	width: 22px;
-	height: 22px;
-	margin-left:3px;
-	background: url("../../img/map_3d.png")   no-repeat center ;
+/* 	width: 22px; */
+/* 	height: 22px; */
+/* 	margin-left:3px; */
+/* 	background: url("../../img/map_3d.png")   no-repeat center ; */
+	position: absolute;
+	left: 20px;
+	bottom: 10px;
+	height: 70px;
+	width: 98px;
+	background: url("../../img/map22d.png")   no-repeat center ;
+	z-index: 9999;
 }
 
 .map-mode-change.active{
-	background: url("../../img/map_2d.png")   no-repeat center ;
+	background: url("../../img/map23d.png")   no-repeat center ;
 }
 
 .distance-calcute{

二进制
gkmb/trunk/Mooring/src/main/webapp/img/anchor_icon_kongxian.png


二进制
gkmb/trunk/Mooring/src/main/webapp/img/anchor_icon_yuliu.png


二进制
gkmb/trunk/Mooring/src/main/webapp/img/anchor_icon_zhanyong.png


二进制
gkmb/trunk/Mooring/src/main/webapp/img/arrow_icon.png


二进制
gkmb/trunk/Mooring/src/main/webapp/img/arrow_icon_active.png


二进制
gkmb/trunk/Mooring/src/main/webapp/img/img_layer_icon.png


二进制
gkmb/trunk/Mooring/src/main/webapp/img/img_layer_icon_active.png


二进制
gkmb/trunk/Mooring/src/main/webapp/img/maxbtn_icon.png


二进制
gkmb/trunk/Mooring/src/main/webapp/img/maxbtn_icon_active.png


二进制
gkmb/trunk/Mooring/src/main/webapp/img/paint_icon.png


二进制
gkmb/trunk/Mooring/src/main/webapp/img/paint_icon_active.png


+ 33 - 18
gkmb/trunk/Mooring/src/main/webapp/js/ais.js

@@ -1,11 +1,11 @@
 /**
  * 声明变量map、layer、url
  */
-var map , bt = false;
+var map , bt = true;
 var baseLayer, bglayer;
 
 var alarmAnimatorVector, trackAnimatorVector, locationAnimatorVector ;
-var aisMarkers, mwMarkers, selectMarkers ,planShipCheckVector, selectMarker = null;
+var mdCornerMarkers,aisMarkers, mwMarkers, selectMarkers ,planShipCheckVector, selectMarker = null;
 var shipTrackLayer, mdVectorLayer, selectVectorLayer;
 var mdSelectFeature;
 var CommDataVal = {};
@@ -75,7 +75,6 @@ style = {
     fillOpacity: 0.8
 };
 
-
 function dowork() {
     //新建线矢量图层
     lineLayer = new SuperMap.Layer.Vector("lineLayer");
@@ -198,7 +197,7 @@ function initMap() {
 	 * @type {SuperMap.Map}
 	 */
 	map = new SuperMap.Map("map");
-	 
+	
 	/**
 	 * 初始化图层 base_layer_url
 	 */
@@ -216,11 +215,11 @@ function initMap() {
 	}, {
 		maxResolution : "auto"
 	});
-
+	
 	// 监听图层信息加载完成事件
 	bglayer.events.on({
 		"layerInitialized" : function() {
-			map.addLayers([ baseLayer,bglayer]);  
+			map.addLayers([ bglayer ,baseLayer]);    
 			// 显示地图范围
 			map.setCenter(
 					new SuperMap.LonLat(harbour_code_lon_position[getLatLon(self_harbour_id)],harbour_code_lat_position[getLatLon(self_harbour_id)]),8);
@@ -233,6 +232,15 @@ function initMap() {
 	});	
 }
 
+
+//var  tiandituLayer,tianMarkerLayer;
+/**
+ * @Func:地图初始化,解决地图底图不是每次加载成功
+ */
+//function initMap() {
+//	
+//}
+
 /**
  * 显示地图的经纬度
  * @param
@@ -488,6 +496,7 @@ function initBusinessLayer() {
 
 	aisMarkers = new SuperMap.Layer.Markers("船舶图层");
 	mwMarkers = new SuperMap.Layer.Markers("锚位图层");
+	mdCornerMarkers = new SuperMap.Layer.Markers("锚地边角点图层");
 	planShipCheckVector = new SuperMap.Layer.Markers("计划船舶图层");
 	selectMarkers = new SuperMap.Layer.Markers("选中锚位图层");
 
@@ -501,7 +510,7 @@ function initBusinessLayer() {
 		renderers : [ "Canvas2" ]
 	});
 	map.addLayers([ mdVectorLayer, selectVectorLayer, shipTrackLayer,
-			mwMarkers, aisMarkers, selectMarkers, trackAnimatorVector,
+			mwMarkers,mdCornerMarkers, aisMarkers, selectMarkers, trackAnimatorVector,
 			alarmAnimatorVector, locationAnimatorVector,planShipCheckVector ]);
 
 	alarmAnimatorVector.animator.start();
@@ -534,6 +543,9 @@ function initBusinessLayer() {
 				checkParam["planShipCheck"].setVisibility(false);
 				$("#planShipCheck").attr("checked",false);
 			}
+			if(key == "mdCheck"){
+				mdCornerMarkers.setVisibility($(this).is(':checked'));
+			}
 		});
 		checkParam[$(checkbox[i]).attr('id')].setVisibility($(checkbox[i]).is(
 				':checked'));
@@ -548,23 +560,25 @@ function initLayerListener() {
 	var mdCallbacks = {
 		out : function MouseOut(feature) {
 			feature.style = {
-				fillColor : "#B0E2FF",
-				strokeColor : "#FF0000",
-				strokeWidth : 1,
-				fillOpacity : 0.8
+				fillColor : "#FFF",
+				strokeColor : "#fff45c",
+				strokeDashstyle:"dash",
+				strokeWidth : 2,
+				fillOpacity : 0
 			};
 			mdVectorLayer.redraw();
 		},
 		over : function MouseOver(feature) {
 			feature.style = {
-				strokeColor : "#FF0000",
-				fillColor : "#f7c373",
+				strokeColor : "#fff45c",
+//				fillColor : "#f7c373",
+				strokeDashstyle:"dash",
 				strokeWidth : 2,
-				fillOpacity : 0.3,
+				fillOpacity : 0,
 				label : feature.attributes.name,
 				fontWeight : "bold",
 				fontFamily : "华文新魏",
-				fontColor : "#2c3e50"
+				fontColor : "#f7c373"
 			};
 			mdVectorLayer.redraw();
 		},
@@ -573,10 +587,11 @@ function initLayerListener() {
 			var selectFeature = new SuperMap.Feature.Vector(geometry);
 			selectFeature.attributes = feature.attributes;
 			selectFeature.style = {
-				strokeColor : "#CAFF70",
-				fillColor : "#f7c373",
+				strokeColor : "#FF4300",
+//				fillColor : "#f7c373",
 				strokeWidth : 2,
-				fillOpacity : 0.8
+				strokeDashstyle:"dash",
+				fillOpacity : 0
 			};
 			selectFeatureFun(selectFeature);
 

+ 12 - 12
gkmb/trunk/Mooring/src/main/webapp/js/ais_20160408.js

@@ -155,18 +155,18 @@ function onFeatureUnselect(feature) {
  * 当前地图extend发生变化时触发该函数
  */
 function mapMoveChange() {
-	alert(1);
-	var zoom = map.getZoom();
-	if (zoom >= 1) {
-		baseLayerOne.setVisibility(false);
-		baseLayerTwo.setVisibility(true);
-		map.setBaseLayer(baseLayerTwo);
-	} else {
-		baseLayerOne.setVisibility(true);
-		baseLayerTwo.setVisibility(false);
-		map.setBaseLayer(baseLayerOne);
-	}
-	addAISShip();
+//	alert(1);
+//	var zoom = map.getZoom();
+//	if (zoom >= 1) {
+//		baseLayerOne.setVisibility(false);
+//		baseLayerTwo.setVisibility(true);
+//		map.setBaseLayer(baseLayerTwo);
+//	} else {
+//		baseLayerOne.setVisibility(true);
+//		baseLayerTwo.setVisibility(false);
+//		map.setBaseLayer(baseLayerOne);
+//	}
+//	addAISShip();
 }
 
 function addAISShip() {

+ 1 - 1
gkmb/trunk/Mooring/src/main/webapp/js/anchorApply/anchor_all_view.js

@@ -16,7 +16,7 @@ var harbour_code =[] ;
 var harbour_name = [] ;
 
 function click_a(obj){
-	alert($(obj).attr("value"));
+//	alert($(obj).attr("value"));
 	if($(obj).attr("value")==1){
 		// 点击的港口id
 		apply_harbour_id = obj.id.substring(21) ;

+ 1 - 1
gkmb/trunk/Mooring/src/main/webapp/js/base_config.js

@@ -1,6 +1,6 @@
 // 底图
 var base_layer_url = "http://218.2.208.139:8180/iserver/services/map-mongodb-JSGISTCSJT/rest/maps/JSGIST-CSJT";
-//base_layer_url = "http://120.27.137.204:8090/iserver/services/map-tianditu/rest/maps/影像底图_经纬度";
+//base_layer_url = "http://218.2.208.139:8180/iserver/services/map-world/rest/maps/World+Map";
  
 //业务地图服务
 var distance_layer_url = 'http://218.2.208.139:8180/iserver/services/map-world/rest/maps/World+Map';

+ 20 - 13
gkmb/trunk/Mooring/src/main/webapp/js/common-ais.js

@@ -347,12 +347,22 @@ function addMDResouseLayer() {
 		for (var j = 0; j < CommDataVal[i].anchorageInfos.length; j++) {
 			// 锚地信息
 			var anchorPointInfo = [];
+			var corner ;
 			var anchorPoint = CommDataVal[i].anchorageInfos[j].anchorPointInfos;
 			  
 			for (var b = 0; b < anchorPoint.length; b++) {
 				anchorPointInfo[b] = new SuperMap.Geometry.Point(
 						anchorPoint[b].longitute, anchorPoint[b].latitute); 
-				
+				//添加锚地边角图片开始
+				var marker_size = new SuperMap.Size(15, 15);
+				var marker_offset = getMarkerOffset(marker_size);
+				var icon = new SuperMap.Icon(localUrl.replace('/service', '')+"/img/landMark.png", marker_size,
+						marker_offset);
+				corner  = new SuperMap.Marker(new SuperMap.LonLat(
+						anchorPoint[b].longitute,
+						anchorPoint[b].latitute), icon);				
+				  mdCornerMarkers.addMarker(corner);
+				  //添加锚地边角图片结束
 			}
 			 
 			linearRings = new SuperMap.Geometry.LinearRing(anchorPointInfo);
@@ -360,10 +370,11 @@ function addMDResouseLayer() {
 			mdPolygon = new SuperMap.Geometry.Polygon([ linearRings ]);
 			feature = new SuperMap.Feature.Vector(mdPolygon);
 			feature.style = {
-					fillColor : "#B0E2FF",
-					strokeColor : "#FF0000",
-					strokeWidth : 1,
-					fillOpacity : 0.3
+					fillColor : "#FFF",
+					strokeColor : "#fff45c",
+					strokeWidth : 2,
+					fillOpacity : 0,
+					strokeDashstyle:"dash"					
 			};
 			feature.attributes = CommDataVal[i].anchorageInfos[j];
 			features.push(feature);
@@ -371,7 +382,6 @@ function addMDResouseLayer() {
 	}
 	mdVectorLayer.addFeatures(features);
 	mdSelectFeature.activate();
-
 }
 
 /**
@@ -492,8 +502,6 @@ function openMWWinInfo(markerId) {
 function mwMarkerIcon(flag, status, mouseStatus) {
 	var img_url = localUrl.replace('/service', '') + '/map/img/achor/';
 	
-	alert(111+":"+flag);
-	
 	if (flag == 2) { // 省控
 		if (status == 1) { // 空闲
 			img_url += 'sk_kx';
@@ -791,14 +799,13 @@ function clearLayers() {
 	shipTrackLayer.removeAllFeatures(); //清除轨迹图层
 	trackAnimatorVector.removeAllFeatures(); //清除轨迹要素  
 	locationAnimatorVector.removeAllFeatures();//清除定位要素  
+	lineLayer.removeAllFeatures();			// 清除距离和面积测算值
+    polygonLayer.removeAllFeatures();
 	
+	mdCornerMarkers.setVisibility(false);	// 清除锚地界标
 	aisMarkers.setVisibility(false);
 	mwMarkers.setVisibility(false);
 	mdVectorLayer.setVisibility(false);
 	alarmAnimatorVector.setVisibility(false);
-	$("#layer-content input[type='checkbox']").attr("checked",false);
-	$("#btn-float").trigger("click");
-	
-//	distanceMeasure();
-//	areaMeasure();
+	$("#img-layer-tab input[type='checkbox']").attr("checked",false);
 }

+ 11 - 5
gkmb/trunk/Mooring/src/main/webapp/js/config.js

@@ -218,12 +218,10 @@ $(function(){
 		if(this.id == "hide-mode"){
 			$("#body-nav").hide();
 			$("#body-swap").css("margin-left","0");
-//			$(this).css("background","url("+ localUrladdress+"'/img/sidebar_right_icon.png')  center center no-repeat");
 			$(this).attr("id","show-mode");
 		}else if(this.id == "show-mode"){
 			$("#body-swap").css("margin-left","170px");
 			$(this).attr("id","hide-mode");
-//			$(this).css("background","url("+ localUrladdress+"'/img/sidebar_icon.png')  center center no-repeat");
 			$("#body-nav").show();
 		}
 	})
@@ -253,8 +251,9 @@ function flushBodyNav(){
 	
 	$(".table-large").css("height",$("#body-container").height()-$(".table-head-s").height() -$(".condition-input").outerHeight() - Math.abs(parseInt($(".table-head-s").css("margin-top")))  -20-$("#sub-nav-div").height() );
 	
-	if($("#map") != null ){
-		$("#map").css("height",$(window).height() - $("#head-container").height() -$("#sub-nav").height()-8-61);
+	if($("#map") != null  ){
+		if(! ($("#head-container").length>0)?false:true)
+			$("#map").css("height",$(window).height() - $("#head-container").height() -$("#sub-nav").height()-8-61);
 	}
 }
 
@@ -1022,4 +1021,11 @@ function judgeBrowser(){
 	}
 	return false ;
 }
-
+/**
+ * 字段截取返回设置
+ * name 要截取的字符
+ * length 要截取的长度
+ */
+function transformNameShort(name,length){
+	return name.substring(0,length)+"...";
+};

+ 1 - 1
gkmb/trunk/Mooring/src/main/webapp/js/controlCenter/auditList.js

@@ -94,7 +94,7 @@ $(function(){
 				"</td><td>" +CheckFormVal(obj.ship_name_cn)+
 				"</td><td>" +CheckFormVal(obj.cbhh )+
 				"</td><td>" +CheckFormVal(obj.mmsi )+
-				"</td><td>" +CheckFormVal(obj.goods )+
+				"</td><td>" +CheckFormVal(transformNameShort(obj.goods,5) )+
 				"</td><td>" +CheckFormVal(obj.contact_person )+
 				"</td><td>" +CheckFormVal(obj.ship_contact )+
 				"</td><td>" +CheckFormVal(obj.from_harbour_name )+

+ 2 - 2
gkmb/trunk/Mooring/src/main/webapp/js/controlCenter/auditListRecord.js

@@ -68,9 +68,9 @@ $(function(){
 				"</td><td>" +CheckFormVal(obj.cbhh  )+
 				"</td><td>" +CheckFormVal(obj.mmsi  )+
 				"</td><td>" +CheckFormVal(obj.apply_ship_type_name  )+
-				"</td><td>" +CheckFormVal(obj.goods  )+
+				"</td><td>" +transformNameShort(  CheckFormVal(obj.goods  ) ,5)+
 				"</td><td>" +CheckFormVal(obj.danger_goods_category_name  )+
-				"</td><td>" +CheckFormVal(obj.from_harbour_name  )+
+				"wo</td><td>" +CheckFormVal(obj.from_harbour_name  )+
 				"</td><td>" +CheckFormVal(obj.to_harbour_name  )+
 				"</td><td>" +CheckFormVal(obj.length  )+
 				"</td><td>" +CheckFormVal(obj.cbcs  )+

+ 1 - 1
gkmb/trunk/Mooring/src/main/webapp/js/controlCenter/mooring_record.js

@@ -66,7 +66,7 @@ $(function(){
 				"</td><td>" +CheckFormVal(obj.cbhh)+
 				"</td><td>" +CheckFormVal(obj.mmsi  )+
 				"</td><td>" +CheckFormVal(obj.apply_ship_type_name  )+
-				"</td><td>" +CheckFormVal(obj.goods  )+
+				"</td><td>" + transformNameShort(CheckFormVal(obj.goods),5)+
 				"</td><td>" +CheckFormVal(obj.danger_goods_category_name  )+
 				"</td><td>" +CheckFormVal(obj.from_harbour_name  )+
 				"</td><td>" +CheckFormVal(obj.to_harbour_name  )+

+ 55 - 24
gkmb/trunk/Mooring/src/main/webapp/js/controlCenter/overview.js

@@ -2,10 +2,19 @@ var locationInterval = null, aisInterval = null;
 $(function(){
 
 	/**
+	 * @Func:地图是否最大化的标志
+	 */
+	var isMaxFlag = ($("#head-container").length>0)?false:true ;
+	
+	/**
 	 * 地图高度初始化
 	 */ 
 	if($("#map") != null ){
-		$("#map,.swap-content").css("height",$(window).height() - $("#head-container").height() -$("#sub-nav").height() - $(".condition-input").outerHeight()-5-64);
+		if(!isMaxFlag ){		// 正常状况下
+			$("#map,.swap-content").css("height",$(window).height() - $("#head-container").height() -$("#sub-nav").height() - $(".condition-input").outerHeight()-5-64);
+		}else{
+			$("#map,.swap-content").css("height",$(window).height());
+		}
 	}
 	/**
 	 * 二级导航栏
@@ -49,7 +58,7 @@ $(function(){
 	})
 
 	$(".harbournameindex span").click(function(){
-		$("#select-name-val").html($(this).html());
+		$("#change2harbour span").html($(this).html());
 		$("#copy-harbour-val").html($(this).html());
 		$(".harbourselectcolum").css("display","none");
 		$("#harbour-select-name span").css("color","#565656");
@@ -83,37 +92,59 @@ $(function(){
 		var value = $(this).attr("value");
 		switch(value){
 			case "maxbtn":
-				
-				break;
-			case "map-mode-change":
-				changeMapLayer();
-				break;
-			case "distance-calcute":
-				if(!$(this).hasClass("active")){
-					$(".area-calcute").removeClass("active");
-					deactiveateOperate();
-					distanceMeasure();
+				if(!isMaxFlag){
+					var layerIndex = layer.open({
+						type: 2,
+						title: false,
+						content: localUrl+"/controlcenter/map/max" 
+					}); 
+					layer.full(layerIndex);
 				}else{
-					deactiveateOperate();
-					clearFeatures();
-				}
-				break;
-			case "area-calcute":
-				if(!$(this).hasClass("active")){
-					$(".distance-calcute").removeClass("active");
-					deactiveateOperate();
-					areaMeasure();
-				}else{
-					deactiveateOperate();
-					clearFeatures();
+					var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
+					parent.layer.close(index); //再执行关闭     
 				}
 				break;
 		}
+//		if($(this).hasClass("active")){
+//			$(this).removeClass("active");
+//		}else{
+//			$(this).addClass("active");
+//		}
+	})
+	
+	
+	/**
+	 * @Func:2D ~ 3D 切换
+	 */
+	$(".map-mode-change").click(function(){
 		if($(this).hasClass("active")){
 			$(this).removeClass("active");
 		}else{
 			$(this).addClass("active");
 		}
+		changeMapLayer();
 	})
 	
+	/**
+	 * @Func:测量距离按钮触发
+	 */
+	$("#measure-distance").click(function(){
+		deactiveateOperate();
+		distanceMeasure();
+	})
+	
+	/**
+	 * @Func:测量面积的按钮触发
+	 */
+	$("#measure-area").click(function(){
+		deactiveateOperate();
+		areaMeasure();
+	})
+	
+	/**
+	 * @Func:点击清除所有图层
+	 */
+	$(".click-active").click(function(){
+		clearLayers();
+	})
 })

+ 1 - 1
gkmb/trunk/Mooring/src/main/webapp/js/localAnchorageManger/anchorPositionApproal.js

@@ -124,7 +124,7 @@ $(function(){
 				"</td><td>" +CheckFormVal(obj.ship_name_cn)+
 				"</td><td>" +CheckFormVal(obj.cbhh )+
 //				"</td><td>" +CheckFormVal(obj.mmsi )+
-				"</td><td>" +CheckFormVal(obj.goods )+
+				"</td><td>" +CheckFormVal(transformNameShort(obj.goods,5) )+
 //				"</td><td>" +CheckFormVal(obj.contact_person )+
 //				"</td><td>" +CheckFormVal(obj.ship_contact )+
 //				"</td><td>" +CheckFormVal(obj.from_harbour_name )+

+ 84 - 23
gkmb/trunk/Mooring/src/main/webapp/js/localAnchorageManger/anchorage_allview.js

@@ -8,10 +8,21 @@ url_anchor_postion_manger = localUrl+"/anchorage/manger/info"
 url_anchor_reserve_apply = localUrl+"/anchorage/reserve/apply"
 
 $(function(){
+	
+	/**
+	 * @Func:地图是否最大化的标志
+	 */
+	var isMaxFlag = ($("#head-container").length>0)?false:true ;
+	
 	// 地图高度初始化
 	if($("#map") != null ){
-		$("#map,.swap-content").css("height",$(window).height() - $("#head-container").height() -$("#sub-nav").height()-8-61);
+		if(!isMaxFlag ){		// 正常状况下
+			$("#map,.swap-content").css("height",$(window).height() - $("#head-container").height() -$("#sub-nav").height()-8-61);
+		}else{
+			$("#map,.swap-content").css("height",$(window).height());
+		}
 	}
+	
 	// 二级导航条
 	$("#sub-nav li div").click(function(){
 		if($(this).hasClass("active")) {
@@ -51,36 +62,86 @@ $(function(){
 		var value = $(this).attr("value");
 		switch(value){
 			case "maxbtn":
-				
-				break;
-			case "map-mode-change":
-				changeMapLayer();
-				break;
-			case "distance-calcute":
-				if(!$(this).hasClass("active")){
-					$(".area-calcute").removeClass("active");
-					deactiveateOperate();
-					distanceMeasure();
-				}else{
-					deactiveateOperate();
-					clearFeatures();
-				}
-				break;
-			case "area-calcute":
-				if(!$(this).hasClass("active")){
-					$(".distance-calcute").removeClass("active");
-					deactiveateOperate();
-					areaMeasure();
+				// 
+				if(!isMaxFlag){
+					var layerIndex = layer.open({
+						type: 2,
+						title: false,
+						content: localUrl+"/localmanger/map/max" 
+					}); 
+					layer.full(layerIndex);
 				}else{
-					deactiveateOperate();
-					clearFeatures();
+					var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
+					parent.layer.close(index); //再执行关闭     
 				}
 				break;
 		}
+//		if($(this).hasClass("active")){
+//			$(this).removeClass("active");
+//		}else{
+//			$(this).addClass("active");
+//		}
+	})
+	
+	/**
+	 * @Func:2D ~ 3D 切换
+	 */
+	$(".map-mode-change").click(function(){
 		if($(this).hasClass("active")){
 			$(this).removeClass("active");
 		}else{
 			$(this).addClass("active");
 		}
+		changeMapLayer();
+	})
+	
+	/**
+	 * @Func:测量距离按钮触发
+	 */
+	$("#measure-distance").click(function(){
+		deactiveateOperate();
+		distanceMeasure();
+	})
+	
+	/**
+	 * @Func:测量面积的按钮触发
+	 */
+	$("#measure-area").click(function(){
+		deactiveateOperate();
+		areaMeasure();
+	})
+	
+	var fullscreen=function(){  
+	    elem=document.body;  
+	    if(elem.webkitRequestFullScreen){  
+	        elem.webkitRequestFullScreen();     
+	    }else if(elem.mozRequestFullScreen){  
+	        elem.mozRequestFullScreen();  
+	    }else if(elem.requestFullScreen){  
+	        elem.requestFullscreen();  
+	    }else{  
+	        //浏览器不支持全屏API或已被禁用  
+	    }  
+	}  
+	var exitFullscreen=function(){  
+	    var elem=document;  
+	    if(elem.webkitCancelFullScreen){  
+	        elem.webkitCancelFullScreen();      
+	    }else if(elem.mozCancelFullScreen){  
+	        elem.mozCancelFullScreen();  
+	    }else if(elem.cancelFullScreen){  
+	        elem.cancelFullScreen();  
+	    }else if(elem.exitFullscreen){  
+	        elem.exitFullscreen();  
+	    }else{  
+	        //浏览器不支持全屏API或已被禁用  
+	    }  
+	}
+	
+	/**
+	 * @Func:点击清除所有图层
+	 */
+	$(".click-active").click(function(){
+		clearLayers();
 	})
 });

+ 1 - 1
gkmb/trunk/Mooring/src/main/webapp/js/localAnchorageManger/mooring_record.js

@@ -70,7 +70,7 @@ $(function(){
 				"</td><td>" +CheckFormVal(obj.cbhh  )+
 //				"</td><td>" +CheckFormVal(obj.mmsi  )+
 				"</td><td>" +CheckFormVal(obj.apply_ship_type_name  )+
-				"</td><td>" +CheckFormVal(obj.goods  )+
+				"</td><td>" +transformNameShort(CheckFormVal(obj.goods  ),5)+
 				"</td><td>" +CheckFormVal(obj.danger_goods_category_name  )+
 //				"</td><td>" +CheckFormVal(obj.from_harbour_name  )+
 				"</td><td>" +CheckFormVal(obj.to_harbour_name  )+

+ 1 - 1
gkmb/trunk/Mooring/src/main/webapp/js/localAnchorageManger/unberthConfirm.js

@@ -54,7 +54,7 @@ $(function(){
 				"</td><td>" +CheckFormVal(obj.cbhh  )+
 				"</td><td>" +CheckFormVal(obj.mmsi  )+
 				"</td><td>" +CheckFormVal(obj.apply_ship_type_name  )+
-				"</td><td>" +CheckFormVal(obj.goods  )+
+				"</td><td>" +CheckFormVal( transformNameShort(obj.goods,5)  )+
 				"</td><td>" +CheckFormVal(obj.danger_goods_category_name  )+
 				"</td><td>" +CheckFormVal(obj.from_harbour_name  )+
 				"</td><td>" +CheckFormVal(obj.to_harbour_name  )+

+ 4 - 0
gkmb/trunk/Mooring/src/main/webapp/js/websocket.js

@@ -10,6 +10,8 @@ $(function(){
      * 连接
      */
     function connect() {
+//    	$.notifySetup({sound: vedio_url+'/audio/notify.wav'});
+    	$.notifySetup({sound: vedio_url+'/audio/warning.mp3'});
         if (!websocket_url) {
             return;
         }
@@ -33,6 +35,7 @@ $(function(){
         			var timer = setInterval(function(){
         				$(".suspendedBall").css("opacity","0")   ;
     					$(".suspendedBall").animate({opacity:"1"},300);
+    					$('<p>声音提示</p>').notify();		
     					if(seq++ > 1){
     						clearInterval(timer);
     					}
@@ -41,6 +44,7 @@ $(function(){
         		$("#infos_num_id").html(((obj[0]==0)?"": (obj[0]>99?"99+":obj[0])));
         		$("#pre_alarm_num_id").html(((obj[1]==0)?"":(obj[1]>99?"99+":obj[1])));
         		$(".suspendedBall").addClass("active");
+        		
         	}
         };
         ws.onclose = function (event) {