From b08464f75873d75725c685b5ad3ec206fb277b2c Mon Sep 17 00:00:00 2001
From: whycq <123456>
Date: 星期五, 09 九月 2022 13:04:42 +0800
Subject: [PATCH] #

---
 src/main/webapp/static/css/style3.css      |    4 
 src/main/webapp/static/js/projectShow2.js  |    1 
 src/main/webapp/static/js/projectShow3.js  |  298 +++++++++++++++++++++++++++++++++++++++++++++++++
 src/main/webapp/views/index_datashow3.html |    2 
 src/main/resources/application.yml         |    2 
 src/main/webapp/static/js/tableData3.js    |    2 
 6 files changed, 304 insertions(+), 5 deletions(-)

diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index c0fc9ae..5f78c24 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -12,7 +12,7 @@
     #姝e紡鏁版嵁搴�
 #    url: jdbc:sqlserver://192.168.4.15:1433;databasename=zypms_pro
     #澶囦唤鏁版嵁搴�
-    url: jdbc:sqlserver://192.168.4.15:1433;databasename=zypms
+    url: jdbc:sqlserver://localhost:1433;databasename=zypms
     username: sa
     password: sa@123
   mvc:
diff --git a/src/main/webapp/static/css/style3.css b/src/main/webapp/static/css/style3.css
index 04d3bd9..88d4b0f 100644
--- a/src/main/webapp/static/css/style3.css
+++ b/src/main/webapp/static/css/style3.css
@@ -14,7 +14,7 @@
 /* 鐢诲竷 */
 #root {
     /*height: 100%;*/
-    /*width: 100%;*/
+    width: 100%;
 	/*margin: 0;*/
 	/*background-color: !* #2C3E50 *! #2e4e7e;*/
 	position: absolute;
@@ -131,7 +131,7 @@
 	background-color: #FFF;
 	box-shadow: 0px 5px 20px #000;
 	border-radius: 15px;
-	position: relative;
+	position: absolute;
 	top:30%;
 	left:35%;
 	display: none;
diff --git a/src/main/webapp/static/js/projectShow2.js b/src/main/webapp/static/js/projectShow2.js
index 83877a6..7fb6a7e 100644
--- a/src/main/webapp/static/js/projectShow2.js
+++ b/src/main/webapp/static/js/projectShow2.js
@@ -1,4 +1,5 @@
 $(document).on("dblclick",".row",function(){
+	console.log('2')
 		var index = $(".row").index(this) // 纭畾鍦ㄨ〃鏍间腑鐨勭鍑犺
 		var rowName = $(this).children(".projects").html() // 褰撳墠琛屼腑绫诲悕涓簆rojects鐨勭被涓殑鏂囧瓧
 		var project = data[index] // 鎶奷ata涓殑绗琲ndex涓」鐩� 璧嬪�肩粰project
diff --git a/src/main/webapp/static/js/projectShow3.js b/src/main/webapp/static/js/projectShow3.js
new file mode 100644
index 0000000..60f42bc
--- /dev/null
+++ b/src/main/webapp/static/js/projectShow3.js
@@ -0,0 +1,298 @@
+$(document).on("dblclick",".row",function(){
+
+		var index = $(".row").index(this) // 纭畾鍦ㄨ〃鏍间腑鐨勭鍑犺
+	console.log('this:'+this,'index:'+index)
+		var rowName = $(this).children(".projects").html() // 褰撳墠琛屼腑绫诲悕涓簆rojects鐨勭被涓殑鏂囧瓧
+		var project = data[index] // 鎶奷ata涓殑绗琲ndex涓」鐩� 璧嬪�肩粰project
+		if(project.projectName==rowName){
+			// 姣旇緝鏃堕棿
+			var currT = new Date() // 褰撳墠鏃堕棿
+			var staT = new Date(project.projectStartTime.substring(0,10)) // 椤圭洰寮�濮嬫椂闂�
+			var endT = new Date(project.projectEndTime.substring(0,10)) // 椤圭洰缁撴潫鏃堕棿
+			var nodes = project.projectPlans
+			// 鍒ゆ柇椤圭洰璁″垝鑺傜偣鏃堕棿鏄惁鏈夌┖鍊�
+			for(var i=0;i<nodes.length;i++){
+				if(nodes[i].startTime$==''||nodes[i].endTime$==''){
+					show = false
+					break
+				}else{
+					show = true
+				}
+			}
+			if(show==true){
+				$("#details").attr("style","display:block")
+			}else if(show==false){
+				$("#tips").attr("style","display:block")
+			}
+			// 椤圭洰鍚嶇О
+			$("#details h2").html(project.projectName)
+			// 棰勮鑺傜偣鏃堕棿
+			var tab = ''
+			var tabLeft3 = ''
+			var day = 86400000 // 涓�澶╂槸 86400000姣
+			var days = (endT - staT + day ) / day // 椤圭洰鑺傜偣澶╂暟
+
+			var bigDays = []
+			for(var i = 0;i<nodes.length;i++){
+				var projectsName = nodes[i].flowId$ // 鑺傜偣鍚嶇О                    鏀圭涓�涓姹傜敤
+				var proRET = new Date(nodes[i].realEndTime$.substring(0,10)) // 鑺傜偣瀹為檯缁撴潫鏃堕棿
+				var tab2 ='<tr id="td-node'+i+'-gz">'+'<tr id="td-node'+i+'-gz-2">'+'</tr>'
+				tab = tab +tab2
+				var tabLeft2 = '<tr class="tab-body">'
+									+'<td>'+projectsName+'</td>'
+									+'<td>'+nodes[i].startTime$.substring(0,10)+'</td>'
+									+'<td>'+nodes[i].endTime$.substring(0,10)+'</td>'
+				tabLeft3 = tabLeft3 + tabLeft2
+				var overtime = endT-proRET
+				if(overtime<0){
+					bigDays.push(proRET)
+				}
+			}
+			let max = bigDays[0]
+			for(var i = 0;i<bigDays.length;i++){
+				max = max <max[i+1] ? max[i+1] : max
+			}
+			var tab1 =
+				'<thead>'
+					+'<tr id="th-gz">' + '</tr>'
+				+'</thead>'
+				+'<tbody id="tabBody">'
+					+'<tr id="tot">' +'</tr>'
+					+'<tr id="tot-2">'+'</tr>'
+			var tab3 = tab1+tab+'</tbody>'
+			/* 鐢樼壒鍥惧乏渚� 椤圭洰鍐呭琛� */
+			var tabLeft = 	'<thead>' // 琛ㄥご
+								+'<tr class="tab-head">'
+									+'<th>'+'椤圭洰鍚嶇О'+'</th>'
+									+'<th>'+'寮�濮嬫椂闂�'+'</th>'
+									+'<th>'+'缁撴潫鏃堕棿'+'</th>'
+								+'</tr>'
+							+'</thead>'
+							+'<tbody>' // 琛ㄨ韩 锛堥」鐩妭鐐瑰鏈級
+								+'<tr class="tab-body">'
+									+'<td style="height: 40px">'+'椤圭洰鎬绘椂闀�'+'</td>'
+									+'<td style="height: 40px">'+project.projectStartTime.substring(0,10)+'</td>'
+									+'<td style="height: 40px">'+project.projectEndTime.substring(0,10)+'</td>'
+								+'</tr>'
+
+			var tabLeft4 = tabLeft + tabLeft3 +'</tbody>'
+			$("#details-tab-left").empty()
+			$("#details-tab-left").append(tabLeft4)
+			$("#details-tab").empty()
+			$("#details-tab").append(tab3);
+			// 濉厖鍗曞厓鏍�
+			var nodeId = ["#tot-2"]
+			var nodeId4 = []
+			for(let k = 0;k<nodes.length;k++){
+				var getId = "#"+"td-node"+k+"-gz"
+				var getId2 = "#"+"td-node"+k+"-gz-2"
+				nodeId.push(getId)
+				nodeId.push(getId2)
+			}
+			for(let k = 0;k<nodes.length;k++){
+				var getId = "#"+"td-node"+k+"-gz"
+				var getId2 = "#"+"td-node"+k+"-gz-2"
+				nodeId4.push(getId)
+				nodeId4.push(getId2)
+				k++
+			}
+			
+			if(max>endT){
+				 days = (max-staT+day)/day
+				endT=max
+				getDateArr(staT,endT)
+			}else{
+				getDateArr(staT,endT);
+			}
+			let newDataArr = []
+			var strr =''
+			// 骞翠唤
+			if(monthDays.length<2){ // 涓�涓湀
+				var gz=monthDays[0]-staT.getDate()+1 // 褰撳墠鏈堜唤鍓╀綑澶╂暟
+				stt = '<th class="loadBox" colspan="'+gz+'">'+newMonthArr[0]+'</th>' // 鏈夊灏戝ぉ灏辨í璺ㄥ灏戜釜鏍煎瓙
+				$("#th-gz").append(stt)
+			}else if (monthDays.length<3){ // 涓や釜鏈�
+				var gz=monthDays[0]-staT.getDate()+1// 褰撳墠鏈堜唤鍓╀綑澶╂暟
+				stt = '<th class="loadBox" colspan="'+gz+'">'+newMonthArr[0]+'</th>' // 鏈夊灏戝ぉ灏辨í璺ㄥ灏戜釜鏍煎瓙
+				var gz2 = monthDays[1]-(monthDays[1]-endT.getDate()) // 鍓╀綑鐨勫ぉ鏁�=褰撴湀澶╂暟-锛堝綋鏈堝ぉ鏁�-缁撴潫鏃ユ湡锛�
+				stt2 = '<th class="loadBox" colspan="'+gz2+'">'+newMonthArr[1]+'</th>'
+				strr =stt +stt2
+				$("#th-gz").append(strr)
+			}else { // 涓変釜鏈堝強浠ヤ笂
+				var gz=monthDays[0]-staT.getDate()+1// 褰撳墠鏈堜唤鍓╀綑澶╂暟
+				stt = '<th class="loadBox" colspan="'+gz+'">'+newMonthArr[0]+'</th>' // 鏈夊灏戝ぉ灏辨í璺ㄥ灏戜釜鏍煎瓙
+				var gz2 = monthDays[monthDays.length-1]-(monthDays[monthDays.length-1]-endT.getDate()) // 鍓╀綑鐨勫ぉ鏁�=褰撴湀澶╂暟-锛堝綋鏈堝ぉ鏁�-缁撴潫鏃ユ湡锛�
+				stt2 = '<th class="loadBox" colspan="'+gz2+'">'+newMonthArr[newMonthArr.length-1]+'</th>'
+				// 鍘婚櫎绗竴涓湀 鍜屾渶鍚庝竴涓湀
+				monthDays.shift()
+				monthDays.pop()
+				newMonthArr.shift()
+				newMonthArr.pop()
+				var std = ''
+				for (var j=0;j<monthDays.length;j++){
+					stt3 = '<th class="loadBox" colspan="'+monthDays[j]+'">'+newMonthArr[j]+'</th>'
+					std = std + stt3
+				}
+				strr = stt + std +stt2
+				$("#th-gz").append(strr)
+			}
+			// 椤圭洰鏃堕棿鍗曞厓鏍�
+			for(let i=0;i<days;i++){
+				str = '<th class="loadBox-2">'+dateArr[i]+'</th>'
+				$("#tot").append(str);
+				// $(".loadBox").attr('style','width:50px')
+			}
+			// 鑺傜偣鏃堕棿鍗曞厓鏍�
+			for (let j=0;j<days;j++){
+				tds = '<td class="gz-color'+j+' time-color">'+'</td>'
+				for(let k in nodeId){
+					$(nodeId[k]).append(tds)
+				}
+			}
+			var nodeId2 = [],nodeId3 = []
+			for(let k = 0;k<nodes.length;k++){
+				var getId2 = "#"+"td-node"+k+"-gz"
+				var getId3 = "#"+"td-node"+k+"-gz-2"
+				nodeId2.push(getId2)
+				nodeId3.push(getId3)
+			}
+			for(var i=0;i<nodeId4.length;i++){
+				$(nodeId4[i]).attr("style","background:#eeeeef")
+			}
+			// for(var j = 0;j < days;j++){
+			// 	$("#tot").find("td").eq(j+3).attr("style","background:#3597D6")
+			// }
+			var runDay = Math.ceil((currT - staT)/ day)
+			if(runDay>0){
+				for(var j = 0;j < runDay;j++){
+					$("#tot-2").find("td").eq(j).attr("style","background:#8bddde")
+				}
+			}
+			for(var i = 0;i<nodes.length;i++){
+				var proST = new Date(nodes[i].startTime$.substring(0,10)) // 璁″垝寮�濮嬫棩鏈�
+				var proET = new Date(nodes[i].endTime$.substring(0,10)) // 璁″垝缁撴潫鏃ユ湡
+				var proET2 = new Date(proET.getTime()-day*2) // 璁″垝缁撴潫鏃ユ湡-2澶�
+				var proRST =new Date(nodes[i].realStartTime$.substring(0,10)) // 瀹為檯寮�濮嬫棩鏈�
+				var proRET =new Date(nodes[i].realEndTime$.substring(0,10)) // 瀹為檯缁撴潫鏃ユ湡
+				var nodeDay = (proET-proST+day)/day // 璁″垝宸ヤ綔澶╂暟
+				var nodeRSDay = (proET-proRST+day)/day // 鑺傜偣瀹為檯宸ヤ綔澶╂暟
+						var nodeREDay = (proRET-proST+day)/day // 瀹為檯缁撴潫鍑忚鍒掑紑濮嬫椂闂�
+				var nodeRealDay = (proRET-proRST+day)/day //瀹為檯鏃堕棿娈�
+				var intDay = (proST-staT)/day // 棰勮寮�濮嬫椂闂翠笌椤圭洰寮�濮嬫椂闂寸殑闂撮殧
+				var intRealDay = (proRST-staT)/day // 瀹為檯寮�濮嬩笌椤圭洰寮�濮嬫椂闂寸殑闂撮殧
+				var intRealEndDay = (proRET-staT)/day // 瀹為檯缁撴潫涓庨」鐩紑濮嬬殑闂撮殧
+				var nodeRunDay = Math.ceil((currT-proST)/ day)
+				var nodeRealRunDay = Math.ceil((currT-proRST)/ day)
+				var nodeRun = Math.ceil((currT-proET-day)/ day)
+				var notRealStartDay = proRET-(proET-proST) // 鎺ㄧ畻鐨勫疄闄呭紑濮嬫棩鏈�
+				var intNotRealStartTime = (new Date(notRealStartDay)-staT)/day // 鎺ㄧ畻鐨勫紑濮嬫棩鏈熶笌椤圭洰寮�濮嬫棩鏈熺殑鏃堕棿娈�
+
+
+
+				// 涓庡綋鍓嶆椂闂寸殑鏃堕棿宸�
+				for(var j=0;j<nodeDay;j++){
+					$(nodeId2[i]).find('td').eq(intDay+j).attr("style","background:#5998f5")
+				}
+					// 瀹為檯寮�濮嬫棩鏈熶笌瀹為檯缁撴潫鏃ユ湡閮藉~鍐�  鎸夊疄闄呮椂闂磋繘娓叉煋
+				if(proRST != "Invalid Date" && proRET !="Invalid Date"){
+					
+					for(var j=0;j<nodeRealDay;j++){
+						if(proRET<=proET2){ // 瀹為檯缁撴潫鏃ユ湡<=璁″垝缁撴潫鏃ユ湡
+							$(nodeId3[i]).find('td').eq(intRealDay+j).attr("style","background:#00cc88")
+						}else if(proRET>proET2 && proRET<=proET){ // 瀹為檯缁撴潫鏃ユ湡>璁″垝缁撴潫鏃ユ湡
+							$(nodeId3[i]).find('td').eq(intRealDay+j).attr("style","background:#00cc88")
+						}else { // 瀹為檯缁撴潫鏃ユ湡>璁″垝缁撴潫鏃ユ湡+2澶�
+							$(nodeId3[i]).find('td').eq(intRealDay+j).attr("style","background:#e63939")
+						}
+					}
+					// 瀹為檯寮�濮嬫椂闂村凡濉� 瀹為檯缁撴潫鏃堕棿鏈~  (瀹為檯缁撴潫鏃堕棿鎸夐璁$粨鏉熸椂闂村~)鏀� 褰撳墠鏃堕棿涓庡疄闄呭紑濮嬫椂闂寸殑闂撮殧
+				}else if(proRST != "Invalid Date" && proRET =="Invalid Date"){
+					for(var j=0;j<nodeRealRunDay;j++){
+						if(nodeRun>0){
+							$(nodeId3[i]).find('td').eq(intRealDay+j).attr("style","background:#CC3333")
+						}else if(nodeRun>-3 && nodeRun<=0){
+							$(nodeId3[i]).find('td').eq(intRealDay+j).attr("style","background:#ccc739")
+						}else{
+							$(nodeId3[i]).find('td').eq(intRealDay+j).attr("style","background:#8bddde")
+						}
+					}
+						// 瀹為檯寮�濮嬫椂闂存湭濉� 瀹為檯缁撴潫鏃堕棿宸插~  瀹為檯寮�濮嬫椂闂存寜璁″垝寮�濮嬫椂闂�
+				}else if(proRST == "Invalid Date" && proRET !="Invalid Date"){
+					if(proRET<=proST){ // 瀹為檯缁撴潫鏃ユ湡<=璁″垝寮�濮嬫棩鏈�  鏆傛椂涓嶅~鍏�
+						// for(var j=0;j<nodeDay;j++){ // 澶╂暟鏄妭鐐硅鍒掑ぉ鏁�
+						// 	$(nodeId3[i]).find('td').eq(intNotRealStartTime+j).attr("style","background:#49C7D3") // 瀹為檯寮�濮嬫棩鏈熸槸 瀹為檯缁撴潫鏃ユ湡-璁″垝澶╂暟
+						// }
+					}else if(proRET<=proET){ //瀹為檯缁撴潫鏃ユ湡<=璁″垝缁撴潫鏃ユ湡
+						for(var j=0;j<nodeREDay;j++) { // 澶╂暟鏄� 瀹為檯缁撴潫鏃ユ湡-璁″垝寮�濮嬫棩鏈�
+							$(nodeId3[i]).find('td').eq(intDay + j).attr("style", "background:#00cc88")// 瀹為檯寮�濮嬫棩鏈熸槸 瀹為檯缁撴潫鏃ユ湡-璁″垝澶╂暟
+						}
+					}else{ // 瀹為檯缁撴潫鏃ユ湡>璁″垝缁撴潫鏃ユ湡
+						for(var j=0;j<nodeREDay;j++) { // 澶╂暟鏄� 瀹為檯缁撴潫鏃ユ湡-璁″垝寮�濮嬫棩鏈�
+							$(nodeId3[i]).find('td').eq(intDay + j).attr("style", "background:#CC3333")// 瀹為檯寮�濮嬫棩鏈熸槸 瀹為檯缁撴潫鏃ユ湡-璁″垝澶╂暟
+						}
+					}
+					// 瀹為檯寮�濮嬫椂闂存湭濉� 瀹為檯缁撴潫鏃堕棿鏈~
+				}else if(proRST == "Invalid Date" && proRET =="Invalid Date"){
+
+				}
+			}
+			// 榧犳爣缁忚繃
+			$(document).on('mouseover','.time-color',function () {
+				// console.log($(this).attr('class'))
+				var cls = $(this).attr('class').split(' ')[0]
+				var cll = '.'+cls
+				$(cll).addClass('over-color')
+			})
+			// 榧犳爣绂诲紑
+			$(document).on('mouseout','.time-color',function () {
+				// console.log($(this).attr('class'))
+				var cls = $(this).attr('class').split(' ')[0]
+				var cll = '.'+cls
+				$(cll).removeClass('over-color')
+			})
+			// 婊氳疆
+			
+			
+			
+
+
+
+			function getDateArr(start,end) {
+					let option = new Date(start) // 寮�濮嬫椂闂�
+					let nowDate = new Date(end) // 缁撴潫鏃堕棿
+					let times = option.getTime() // 鑾峰彇褰撳墠鏃堕棿鎴�(姣锛�
+					let ms = (nowDate - option ) / 86400000 // 鐩稿樊鐨勬�诲ぉ鏄殑姣鏁�(澶╂暟)
+					let days = Math.ceil(ms) // 鍚戜笂鍙栨暣鏁�
+					dateArr = [] // 鍒涘缓鏃ユ湡鏁扮粍
+					monthArr = []
+					monthDays=[]
+					let num = 0
+					while (num<=days){
+						let needDate = new Date(times)
+						times += 86400000 // 鍔犱竴澶�
+						let dayDAY = needDate.getDate(); // 鑾峰彇褰撳墠鏃堕棿鐨勬棩鏈�  1鍙� 2鍙� 3鍙� 4鍙� 绛�
+						dayDAY = dayDAY<10 ? '0'+dayDAY : dayDAY
+						dateArr.push(dayDAY)
+						let month = needDate.getMonth()+1
+						month = month<10 ? '0'+month : month
+						let year = needDate.getFullYear()
+						yMonth = year+'-'+month
+						monthArr.push(yMonth)	 
+						num++; // 璁℃鐢�
+					}
+					function unique (monthArr) {
+					  return Array.from(new Set(monthArr))
+					}
+					newMonthArr = unique(monthArr)
+					for(var i=0;i<newMonthArr.length;i++){
+						s = newMonthArr[i].split("-")
+						var d = new Date(s[0],s[1],0);
+						a = d.getDate()
+						monthDays.push(a)
+					}
+			}
+			}
+			})
+
+
+
diff --git a/src/main/webapp/static/js/tableData3.js b/src/main/webapp/static/js/tableData3.js
index b5cabc2..df4ffa0 100644
--- a/src/main/webapp/static/js/tableData3.js
+++ b/src/main/webapp/static/js/tableData3.js
@@ -76,7 +76,7 @@
 /*****************************************************************************************************************************************************************************/
 var getThbodyData = function () {
     $.ajax({
-        url: baseurl + '/pms/projectPlan/toFront/common',
+        url: baseurl + '/pms/projectPlan/toFront/asrs',
         type: 'GET',
         dataType: 'JSON',
         data: {},
diff --git a/src/main/webapp/views/index_datashow3.html b/src/main/webapp/views/index_datashow3.html
index 2a14f99..cb0d86d 100644
--- a/src/main/webapp/views/index_datashow3.html
+++ b/src/main/webapp/views/index_datashow3.html
@@ -10,7 +10,7 @@
 <!--	<script src="../static/js/tableData.js"></script>-->
 <!--	<script src="../static/js/tableData2.js"></script>-->
 	<script src="../static/js/tableData3.js"></script>
-	<script src="../static/js/projectShow2.js"></script>
+	<script src="../static/js/projectShow3.js"></script>
 	<script src="../static/js/cols.js"></script>
 </head>
 <body>

--
Gitblit v1.9.1