From cc6d5f5fb6bbb23e88a95752a6e5265323d1c7d9 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期五, 17 十二月 2021 09:00:03 +0800
Subject: [PATCH] #

---
 static/js/app.js |  252 +++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 185 insertions(+), 67 deletions(-)

diff --git a/static/js/app.js b/static/js/app.js
index 70f8577..d21848e 100644
--- a/static/js/app.js
+++ b/static/js/app.js
@@ -14,6 +14,10 @@
 		this.firstTime = 1;
 		this.stats = null;
 		this.goodTypes=[];//瀛樺偍鎵�鏈夌殑搴撲綅绫诲瀷
+		this.wrkTasks = [];// 浠诲姟鍒楄〃
+		this.crnTasks = [];// 鍫嗗灈鏈哄垪琛�
+		this.time = 0;//鏍囪鍫嗗灈鏈鸿繍琛岀殑鏃堕棿
+		this.progress = 0;
 
 		this.start = function () {
 			this.initMain();
@@ -29,13 +33,17 @@
 			this.initLight();
 			this.initFloor();
 			this.initModel();
+			this.initStoreObjects(this);
 		}
 		this.animate = function () {
 			requestAnimationFrame(this.animate.bind(this));
 			this.stats.begin();
 			this.renderer.render(this.scene, this.camera);
 			this.stats.end();
-			this.initStoreObjects(this);
+			// this.queryTask();
+			this.queryCrn();
+			// this.modelMove();
+			this.crnMove();
 		}
 		this.initScene = function () {
 			this.scene = new THREE.Scene();
@@ -55,7 +63,7 @@
 			// this.camera.position.z = 600;
 			// //鐩告満鐨勬湞鍚�
 			// this.camera.lookAt(0, 0, 0);
-			this.camera.position.set( - 550, 670, 950 );
+			this.camera.position.set( - 350, 1070, 1550 );
 			this.camera.lookAt( this.scene.position );
 			//灏嗙浉鏈烘斁鍒板満鏅腑
 			this.scene.add(this.camera);
@@ -72,12 +80,29 @@
 			this.dom.appendChild( this.renderer.domElement );
 		}
 		this.initLight = function () {
+
+			//棣栧厛娣诲姞涓幆澧冨厜
+			let ambient = new THREE.AmbientLight(0xffffff, 1); //AmbientLight,褰卞搷鏁翠釜鍦烘櫙鐨勫厜婧�
+			ambient.position.set(0, 0, 0);
+			this.addObject(ambient);
+			//娣诲姞骞宠鍏�,骞宠鍏夌被浼间簬澶槼鍏�
+			let directionalLight = new THREE.DirectionalLight(0xffffff, 0.3);//妯℃嫙杩滃绫讳技澶槼鐨勫厜婧�
+			directionalLight.position.set(0, 200, 0);
+			this.addObject(directionalLight);
+			//璁剧疆鐐瑰厜婧�
+			let pointLight1 = new THREE.PointLight(0xffffff, 0.3);
+			pointLight1.position.set(-500, 200, 0);
+			this.addObject(pointLight1);
+			let pointLight2 = new THREE.PointLight(0xffffff, 0.3);
+			pointLight2.position.set(500, 200, 0);
+			this.addObject(pointLight2);
+
 			// ---
-			var bulbLight = new THREE.PointLight( 0xffee88, 1, 2000, 2 );
-			bulbLight.position.set( 600, 600, 500 );
-			bulbLight.castShadow = true;
-			bulbLight.power = 100;
-			this.addObject(bulbLight);
+			// var bulbLight = new THREE.PointLight( 0xffee88, 1, 2000, 2 );
+			// bulbLight.position.set( 600, 600, 500 );
+			// bulbLight.castShadow = true;
+			// bulbLight.power = 100;
+			// this.addObject(bulbLight);
 			// ---
 			// var bulbLight1 = new THREE.PointLight( 0xffee88, 1, 2000, 2 );
 			// bulbLight1.position.set( -600, 600, 500 );
@@ -101,12 +126,12 @@
 			// hemiLight.intensity = 0.0001;
 			// this.addObject(hemiLight);
 
-			const ambientLight = new THREE.AmbientLight( 0xcccccc, 0.4 );
-			this.addObject( ambientLight );
-
-			const directionalLight = new THREE.DirectionalLight( 0xffffff, 0.6 );
-			directionalLight.position.set( - 1, 1, 1 );
-			this.addObject( directionalLight );
+			// const ambientLight = new THREE.AmbientLight( 0xcccccc, 0.4 );
+			// this.addObject( ambientLight );
+			//
+			// const directionalLight = new THREE.DirectionalLight( 0xffffff, 0.6 );
+			// directionalLight.position.set( - 1, 1, 1 );
+			// this.addObject( directionalLight );
 		}
 		this.initOrbitControl = function () {
 			this.orbitControl = new OrbitControls(this.camera, this.renderer.domElement);
@@ -121,7 +146,7 @@
 		}
 		this.initStats = function () {
 			this.stats = new Stats();
-			this.dom.appendChild( this.stats.dom );
+			// this.dom.appendChild( this.stats.dom );
 		}
 		this.initBackground = function () {
 			const cubeTextureLoader = new THREE.CubeTextureLoader();
@@ -156,11 +181,124 @@
 			// this.addObject(plane);
 			//
 			// const helper = new THREE.PolarGridHelper( 2000, 100 );
-			const helper = new THREE.GridHelper( 5000, 300 );
+			const helper = new THREE.GridHelper( 8000, 300 );
 			helper.position.y = - 0;
 			helper.material.opacity = 0.25;
 			helper.material.transparent = true;
 			this.addObject( helper );
+		}
+		this.initStoreObjects = function (object) {
+			if (this.firstTime === 1) {
+				initStore();
+				if (Store3DData !== null) {
+					for(var group of Store3DData.data.store.groups) {
+						new StoreCrn(group.crn, object);
+						for (var line of group.lines) {
+							let shelf = new StoreShelf(line);
+							object.addObject(shelf);
+							//鏄剧ず搴撲綅涓婄殑璐х墿
+							// for (var bin of line.bins) {
+							// 	let existGoods=this.getExistedGoodType(bin.State);
+							// 	let storeGoods = new StoreGoods(optionGroup, bin);
+							// 	if(existGoods==null) {
+							// 		let goods=storeGoods.create();
+							// 		object.addObject(goods);
+							// 		this.goodTypes.push({type: bin.State, object: goods});
+							// 	} else {
+							// 		let goods= storeGoods.clone(existGoods);
+							// 		object.addObject(goods);
+							// 	}
+							// }
+
+						}
+					}
+
+
+
+
+
+
+
+
+
+
+
+
+
+					//鏄剧ず浠撳簱鍖哄煙
+					// for (let i = 0; i < Store3DData.Areas.length; i++) {
+					// 	let optionArea = Store3DData.Areas[i];
+					// 	let area = new StoreArea(optionArea);
+					// 	object.addObject(area);
+					// 	//鏄剧ず浠撳簱
+					// 	for (let j = 0; j < optionArea.Stores.length; j++) {
+					// 		let optionStore = optionArea.Stores[j];
+					// 		optionStore.Position = CommonFunction.transPosition(optionStore.Position, optionArea.Position);
+					// 		let store = new Store(optionStore);
+					// 		// object.addObject(store);
+					// 		//鏄剧ず姣忚淇℃伅
+					// 		for (let k = 0; k < optionStore.Groups.length; k++) {
+					// 			let optionGroup = optionStore.Groups[k];
+					// 			optionGroup.Position = CommonFunction.transPosition(optionGroup.Position, optionStore.Position);
+					// 			let shelf = new StoreShelf(optionGroup);
+					// 			let group=new StoreGroup(optionGroup,1);
+					// 			object.addObject(shelf);
+					// 			// object.addObject(group);
+					// 			//鏄剧ず搴撲綅涓婄殑璐х墿
+					// 			for (let m = 0; m < optionGroup.Bins.length; m++) {
+					// 			    let optionBin = optionGroup.Bins[m];
+					// 			    let existGoods=this.getExistedGoodType(optionBin.State);
+					// 			    let storeGoods = new StoreGoods(optionGroup, optionBin);
+					// 			    if(existGoods==null) {
+					// 			        let goods=storeGoods.create();
+					// 			        object.addObject(goods);
+					// 			        this.goodTypes.push({type: optionBin.State, object: goods});
+					// 			    } else {
+					// 			        let goods= storeGoods.clone(existGoods);
+					// 			        object.addObject(goods);
+					// 			    }
+					// 			}
+					// 		}
+					//
+					// 	}
+					// }
+					// this.firstTime = 0;
+				}
+			}
+		}
+		this.queryTask = function () {
+			if (TaskDatas !== null) {
+				for (let TaskData of TaskDatas) {
+					let wrkTask = getArrVal(this.wrkTasks, "wrkNo", TaskData.wrkNo);
+					if (null == wrkTask) {
+						this.wrkTasks.push(TaskData);
+					}
+				}
+			}
+		}
+		this.queryCrn = function () {
+			if (CrnDatas !== null) {
+				for (let crnData of CrnDatas) {
+					let crnTask = getArrVal(this.crnTasks, "crnNo", crnData.crnNo);
+					if (null == crnTask) {
+						this.crnTasks.push(new CrnTask(crnData, this));
+					} else {
+						if(!crnTask.run) {
+							// console.log(2)
+							crnTask.modify(crnData);
+						}
+					}
+				}
+			}
+		}
+		this.getExistedGoodType=function(state){
+			for (let i=0;i<this.goodTypes.length;i++) {
+				let type=this.goodTypes[i];
+				if(type.type===state) {
+					return type.object;
+				}
+			}
+			return null;
 		}
 		this.initModel = function () {
 			let that = this;
@@ -197,12 +335,15 @@
 						.setPath( '../static/model/obj/' )
 						.load( '璐у弶.obj', function ( object ) {
 							object.position.z = -500;
-							object.position.x = -1560;
+							object.position.x = -2060;
+							// object.position.z = 0;
+							// object.position.x = 0;
+							// object.position.y = 0;
 							object.scale.set(0.025, 0.025, 0.025);
 							object.rotateY(- Math.PI / 2)
 							that.addObject( object );
 						}, null, null );
-			});
+				});
 			new MTLLoader(manager)
 				.setPath( '../static/model/obj/' )
 				.load( '杞借揣鍙�.mtl', function ( materials ) {
@@ -212,7 +353,7 @@
 						.setPath( '../static/model/obj/' )
 						.load( '杞借揣鍙�.obj', function ( object ) {
 							object.position.z = -500;
-							object.position.x = -1560;
+							object.position.x = -2060;
 							object.scale.set(0.025, 0.025, 0.025);
 							object.rotateY(- Math.PI / 2)
 							that.addObject( object );
@@ -227,69 +368,46 @@
 						.setPath( '../static/model/obj/' )
 						.load( '鍫嗗灈鏈烘湰浣�.obj', function ( object ) {
 							object.position.z = -500;
-							object.position.x = -1560;
+							object.position.x = -2060;
+							// object.position.z = 0;
+							// object.position.x = 0;
+							// object.position.y = 0;
 							object.scale.set(0.025, 0.025, 0.025);
 							object.rotateY(- Math.PI / 2)
 							that.addObject( object );
 						}, null, null );
 				});
 		}
-		this.initStoreObjects = function (object) {
-			if (this.firstTime === 1) {
-				if (Store3DData !== null) {
-					//鏄剧ず浠撳簱鍖哄煙
-					for (let i = 0; i < Store3DData.Areas.length; i++) {
-						let optionArea = Store3DData.Areas[i];
-						let area = new StoreArea(optionArea);
-						object.addObject(area);
-						//鏄剧ず浠撳簱
-						for (let j = 0; j < optionArea.Stores.length; j++) {
-							let optionStore = optionArea.Stores[j];
-							optionStore.Position = CommonFunction.transPosition(optionStore.Position, optionArea.Position);
-							let store = new Store(optionStore);
-							// object.addObject(store);
-							//鏄剧ず姣忚淇℃伅
-							for (let k = 0; k < optionStore.Groups.length; k++) {
-								let optionGroup = optionStore.Groups[k];
-								optionGroup.Position = CommonFunction.transPosition(optionGroup.Position, optionStore.Position);
-								let shelf = new StoreShelf(optionGroup);
-								let group=new StoreGroup(optionGroup,1);
-								object.addObject(shelf);
-								// object.addObject(group);
-								//鏄剧ず搴撲綅涓婄殑璐х墿
-								for (let m = 0; m < optionGroup.Bins.length; m++) {
-								    let optionBin = optionGroup.Bins[m];
-								    let existGoods=this.getExistedGoodType(optionBin.State);
-								    let storeGoods = new StoreGoods(optionGroup, optionBin);
-								    if(existGoods==null) {
-								        let goods=storeGoods.create();
-								        object.addObject(goods);
-								        this.goodTypes.push({type: optionBin.State, object: goods});
-								    } else {
-								        let goods= storeGoods.clone(existGoods);
-								        object.addObject(goods);
-								    }
-								}
-							}
+		this.initModelMove = function () {
+			console.log(this.crnTasks)
+			// for (var wrkMast of this.wrkTasks) {
+			// 	this.crnBody = getArrVal(this.objects, "name", wrkMast.crnNo + "-body");
+			// 	// 鍙栬揣鐐瑰畾浣�
+			// 	let sourceLocPosition = getBinPosition(wrkMast.sourceLocNo);
+			// 	let points = [new THREE.Vector3(this.crnBody.position.x, this.crnBody.position.y, this.crnBody.position.z), sourceLocPosition];
+			// 	this.curve = new Route(points);
+			// }
 
-						}
+		}
+		this.modelMove = function () {
+			if (this.curve) {
+				this.progress += 0.001;
+				if (this.progress>1.0) {
+					this.curve = null;
+				} else {
+					let point = this.curve.getPoint(this.progress);
+					if(point&&point.x){
+						this.crnBody.position.set(point.x,point.y,point.z);
 					}
-					this.firstTime = 0;
 				}
 			}
 		}
-		this.getExistedGoodType=function(state){
-			for (let i=0;i<this.goodTypes.length;i++) {
-				let type=this.goodTypes[i];
-				if(type.type===state) {
-					return type.object;
-				}
+		this.crnMove = function (object) {
+			for (let crnTask of this.crnTasks) {
+				crnTask.move();
 			}
-			return null;
-
 		}
 	},
-
 
 };
 

--
Gitblit v1.9.1