| 
					
				 | 
			
			
				@@ -366,7 +366,7 @@ var tools = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     reSetCell: function(sheet, rowIdx, colIdx, value, id){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(value && colIdx){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(value && colIdx!== null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             console.log(`enterResetCell`); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             sheet.getCell(rowIdx, colIdx, GC.Spread.Sheets.SheetArea.viewport).value(value); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -384,6 +384,19 @@ var tools = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return index; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    getNewCode: function(totalObj, classify){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let arr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(classify === 'jobs'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            arr = totalObj.jobsArr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            arr = totalObj.itemsArr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        tools.resort(arr, 'code', false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return arr.length > 0 ? arr[arr.length - 1].data.code : 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     delteSheets: function(controller, totalJobs, totalItems, jobsSheet, itemsSheet){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         var delJobs = controller.tree.selected.jobs; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         var delItems = controller.tree.selected.items; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -437,8 +450,6 @@ var tools = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     resort: function(arr, attr, isValue){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        console.log(`enterresort`); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-       //var arr = node.jobs; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        function compare(attr){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return function (a, b){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                var valA, valB; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -455,9 +466,7 @@ var tools = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        arr.sort(compare(attr)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    resortArr: function(arr, attr){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     reshowData: function(sheet, arr, setting, isResort){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let time = new Date().getTime(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         console.log(`enterreshowData ${time}`); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -760,7 +769,7 @@ var tools = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return pasteDatas; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    rebuildArr: function(arr){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    rebuildArr: function(arr, classify){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let conformDatas = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let flag = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for(let i=0; i< arr.length; i++){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -769,22 +778,46 @@ var tools = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     flag = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     let field = arr[i].field; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     let conformData; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if(field === 'code'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        conformData = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            billsLibId: billsLibId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            code: arr[i].data, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            content: arr[j].data, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            rowIdx: arr[i].rowIdx, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            type: 'CreateT' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if(classify === 'create'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if(field === 'code'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            conformData = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                billsLibId: billsLibId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                code: arr[i].data, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                content: arr[j].data, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                rowIdx: arr[i].rowIdx, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                type: 'CreateT' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            conformData = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                billsLIbId: billsLibId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                code: arr[j].data, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                content: arr[i].data, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                rowIdx: arr[i].rowIdx, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                type: 'CreateT' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        conformData = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            billsLIbId: billsLibId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            code: arr[j].data, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            content: arr[i].data, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            rowIdx: arr[i].rowIdx, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            type: 'CreateT' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if(field === 'code'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            conformData = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                billsLibId: billsLibId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                code: arr[i].data, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                content: arr[j].data, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                rowIdx: arr[i].rowIdx, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                orgId: arr[i].orgId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                type: 'UpdateT' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            conformData = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                billsLIbId: billsLibId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                code: arr[j].data, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                content: arr[i].data, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                rowIdx: arr[i].rowIdx, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                orgId: arr[i].orgId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                type: 'UpdateT' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     conformDatas.push(conformData); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -810,10 +843,6 @@ var tools = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 let pasteController = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    frontController: function(sheet){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     frontOperator: function(sheet, setting, controller, totalJobs, pasteDatas){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const UpdateExist = 'updateExist', UpdateNew = 'updateNew', CreateExist = 'createExist', CreateNew = 'createNew'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let updateDatas = pasteDatas.updateDatas, createDatas = pasteDatas.createDatas; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -961,7 +990,7 @@ let pasteController = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-             rebuildArr = tools.rebuildArr(uncrossedDatas); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             rebuildArr = tools.rebuildArr(uncrossedDatas, 'create'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             function myCompare(a, b){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if(a.rowIdx > b.rowIdx) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     return 1; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -976,18 +1005,20 @@ let pasteController = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     maxJobsNumber++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     maxJobsNumber = maxJobsNumber >= rebuildArr[i].code ? maxJobsNumber : rebuildArr[i].code; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     let id = maxJobsNumber; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    rebuildArr[i].code = maxJobsNumber; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //rebuildArr[i].code = maxJobsNumber; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     rebuildArr[i].id = id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    newJobData = {id: id, content: rebuildArr[i].content, code: maxJobsNumber}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    newJobData = {id: id, content: rebuildArr[i].content, code: rebuildArr[i].code}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     newJob = createObj.newJob(newJobData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     totalJobs.jobsArr.push(newJob); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if(rebuildArr[i].type !== 'CreateT' && rebuildArr[i].field === 'content'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     maxJobsNumber++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     let id = maxJobsNumber; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    let code = tools.getNewCode(totalJobs, 'jobs'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    code++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     rebuildArr[i].id = id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    rebuildArr[i].code = maxJobsNumber; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    newJobData = {id: id, content: rebuildArr[i].data, code: maxJobsNumber}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    rebuildArr[i].code = code; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    newJobData = {id: id, content: rebuildArr[i].data, code: code}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     newJob = createObj.newJob(newJobData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     totalJobs.jobsArr.push(newJob); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -995,9 +1026,9 @@ let pasteController = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     maxJobsNumber++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     maxJobsNumber = maxJobsNumber >= rebuildArr[i].data  ? maxJobsNumber : rebuildArr[i].data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     let id = maxJobsNumber; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    rebuildArr[i].data = maxJobsNumber; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   // rebuildArr[i].data = maxJobsNumber; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     rebuildArr[i].id = id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    newJobData = {id: id, content: '', code: maxJobsNumber}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    newJobData = {id: id, content: '', code: rebuildArr[i].data}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     newJob = createObj.newJob(newJobData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     totalJobs.jobsArr.push(newJob); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1049,7 +1080,7 @@ let pasteController = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     uncrossedDatas.splice(i--, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            rebuildArr = tools.rebuildArr(uncrossedDatas); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            rebuildArr = tools.rebuildArr(uncrossedDatas, 'create'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             function myCompare(a, b){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if(a.rowIdx > b.rowIdx) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     return 1; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1064,30 +1095,33 @@ let pasteController = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     maxItemsNumber++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     maxItemsNumber = maxItemsNumber >= rebuildArr[i].code ? maxItemsNumber : rebuildArr[i].code; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     let id = maxItemsNumber; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    rebuildArr[i].code = maxItemsNumber; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     rebuildArr[i].id = id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    newItemData = {id: id, content: rebuildArr[i].content, code: maxItemsNumber}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    newItemData = {id: id, content: rebuildArr[i].content, code: rebuildArr[i].code, itemValue:[]}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     newItem = createObj.newItem(newItemData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     totalItems.itemsArr.push(newItem); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    totalItems.items[totalItems.prefix + id] = newItem; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if(rebuildArr[i].type !== 'CreateT' && rebuildArr[i].field === 'content'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     maxItemsNumber++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     let id = maxItemsNumber; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    let code = tools.getNewCode(totalItems, 'items'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    code++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     rebuildArr[i].id = id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    rebuildArr[i].code = maxItemsNumber; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    newItemData = {id: id, content: rebuildArr[i].data, code: maxItemsNumber}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    rebuildArr[i].code = code; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    newItemData = {id: id, content: rebuildArr[i].data, code: code, itemValue:[]}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     newItem = createObj.newItem(newItemData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     totalItems.itemsArr.push(newItem); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    totalItems.items[totalItems.prefix + id] = newItem; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if(rebuildArr[i].type !== 'CreateT' && rebuildArr[i].field === 'code'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     maxItemsNumber++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     maxItemsNumber = maxItemsNumber >= rebuildArr[i].data  ? maxItemsNumber : rebuildArr[i].data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     let id = maxItemsNumber; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    rebuildArr[i].data = maxItemsNumber; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     rebuildArr[i].id = id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    newItemData = {id: id, content: '', code: maxItemsNumber}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    newItemData = {id: id, content: '', code: rebuildArr[i].data}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     newItem = createObj.newItem(newItemData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     totalItems.itemsArr.push(newItem); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    totalItems.items[totalItems.prefix + id] = newItem; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1098,6 +1132,121 @@ let pasteController = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             createDatas: rebuildArr 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         itemsAjax.pasteItems(backendDatas); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pasteValueFront: function(sheet, totalItems, uncrossedDatas, crossedDatas){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let rebuildArr =[]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let rebuildUpdateDatas = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let backendUpdateDatas = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let valuesArr = valueController.getValues(totalItems, selectedId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        function myCompare(a, b){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(a.rowIdx > b.rowIdx) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(a.rowIdx < b.rowIdx) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(crossedDatas.length > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for(let i=0; i< crossedDatas.length; i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let field = crossedDatas[i].field, data = crossedDatas[i].data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let isRepeat = tools.isRepeat(valuesArr, field, data, 'document'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(isRepeat){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    crossedDatas.splice(i--, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for(let i=0; i< crossedDatas.length; i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let field = crossedDatas[i].field, data = crossedDatas[i].data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(crossedDatas[i].field === 'code' && typeof data !== 'number' ){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    crossedDatas.splice(i--, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            rebuildUpdateDatas = tools.rebuildArr(crossedDatas, 'update'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            rebuildUpdateDatas.sort(myCompare); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for(let i =0; i< rebuildUpdateDatas.length; i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rebuildUpdateDatas[i].itemId = selectedId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let index; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(rebuildUpdateDatas[i].type === 'UpdateT'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if(valuesArr){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        for(let j=0; j< valuesArr.length; j++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if(rebuildUpdateDatas[i].orgId === valuesArr[j].code){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                index = j; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                valuesArr.splice(j--, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        let updateEle = {code: rebuildUpdateDatas[i].code, value: rebuildUpdateDatas[i].content}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        valuesArr.splice(index, 0, updateEle); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(rebuildUpdateDatas[i].type !== 'UpdateT' && rebuildUpdateDatas[i].field === 'code'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if(valuesArr){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        for(let j=0; j< valuesArr.length; j++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if(rebuildUpdateDatas[i].orgId === valuesArr[j].code){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                valuesArr[j].code = rebuildUpdateDatas[i].data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(rebuildUpdateDatas[i].type !== 'UpdateT' && rebuildUpdateDatas[i].field === 'value'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if(valuesArr){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        for(let j=0; j< valuesArr.length; j++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if(rebuildUpdateDatas[i].orgId === valuesArr[j].code){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                valuesArr[j].value = rebuildUpdateDatas[i].data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(uncrossedDatas.length > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for(let i=0; i< uncrossedDatas.length; i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let field = uncrossedDatas[i].field; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let isRepeat = tools.isRepeat(valuesArr, field, uncrossedDatas[i].data, 'document'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(isRepeat){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    uncrossedDatas.splice(i--, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for(let i=0; i< uncrossedDatas.length; i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let field = uncrossedDatas[i].field; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(uncrossedDatas[i].field === 'code' && typeof uncrossedDatas[i].data !== 'number' ){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    uncrossedDatas.splice(i--, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            rebuildArr = tools.rebuildArr(uncrossedDatas, 'create'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            rebuildArr.sort(myCompare); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for(let i=0; i< rebuildArr.length; i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let newValueData, newValue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let newCode = valueController.getCode(totalItems, selectedId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(rebuildArr[i].type === 'CreateT'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    rebuildArr[i].itemId = selectedId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    newValueData = {value: rebuildArr[i].content, code: rebuildArr[i].code}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    valuesArr.push(newValueData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(rebuildArr[i].type !== 'CreateT' && rebuildArr[i].field === 'value'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    rebuildArr[i].itemId = selectedId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    rebuildArr[i].code = newCode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    newValueData = {value: rebuildArr[i].data, code: newCode}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    valuesArr.push(newValueData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(rebuildArr[i].type !== 'CreateT' && rebuildArr[i].field === 'code'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //newCode = newCode >= rebuildArr[i].data  ? newCode : rebuildArr[i].data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //rebuildArr[i].data = newCode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    rebuildArr[i].itemId = selectedId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    newValueData = {value: '', code: rebuildArr[i].data}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    valuesArr.push(newValueData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        tools.reshowValue(sheet, valuesArr, eigenValueSetting, true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //backendOP 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let backendDatas = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            updateDatas: rebuildUpdateDatas, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            createDatas: rebuildArr 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(rebuildUpdateDatas.length >0 || rebuildArr.length >0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            itemsAjax.pasteValues(backendDatas); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1149,9 +1298,12 @@ var jobsController = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     createNew: function(sheet, controller, totalJobs, field, newData, args, setting){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if(field === 'content'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             maxJobsNumber++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            jobsAjax.createJobContent(billsLibId, newData, maxJobsNumber, maxJobsNumber); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let code = tools.getNewCode(totalJobs, 'jobs'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            code++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            console.log(`code:: ${code}`); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            jobsAjax.createJobContent(billsLibId, newData, code, maxJobsNumber); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var newJobData, newJob; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            newJobData = {id: maxJobsNumber, content: newData, code: maxJobsNumber}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            newJobData = {id: maxJobsNumber, content: newData, code: code}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             newJob = createObj.newJob(newJobData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             newJob.count = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             totalJobs.jobs[totalJobs.prefix + maxJobsNumber] = newJob; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1206,9 +1358,11 @@ var jobsController = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if(field === 'content'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 maxJobsNumber++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                jobsAjax.createJobContent(billsLibId, newData, maxJobsNumber, maxJobsNumber); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let code = tools.getNewCode(totalJobs, 'jobs'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                code++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                jobsAjax.createJobContent(billsLibId, newData, code, maxJobsNumber); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 var newJobData, newJob; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newJobData = {id: maxJobsNumber, content: newData, code: maxJobsNumber}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                newJobData = {id: maxJobsNumber, content: newData, code: code}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 newJob = createObj.newJob(newJobData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 newJob.count = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 totalJobs.jobs[totalJobs.prefix + maxJobsNumber] = newJob; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1283,9 +1437,11 @@ var itemsController = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if(field === 'content'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             maxItemsNumber++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             let id = maxItemsNumber; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            itemsAjax.createItemCharacter(billsLibId, newData, maxItemsNumber, id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let code = tools.getNewCode(totalItems, 'items'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            code++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            itemsAjax.createItemCharacter(billsLibId, newData, code, id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var newItemData, newItem; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            newItemData = {id: id, content: newData, code: maxItemsNumber}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            newItemData = {id: id, content: newData, code: code}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             newItem = createObj.newItem(newItemData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             newItem.count = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             totalItems.items[totalItems.prefix + id] = newItem; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1350,9 +1506,11 @@ var itemsController = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if(field === 'content'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 maxItemsNumber++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let newId = maxItemsNumber; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                itemsAjax.createItemCharacter(billsLibId,newData, maxItemsNumber, newId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let code = tools.getNewCode(totalItems, 'items'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                code++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                itemsAjax.createItemCharacter(billsLibId,newData, code, newId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 var newItemData, newItem; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newItemData = {id: newId, content: newData, code: maxItemsNumber}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                newItemData = {id: newId, content: newData, code: code}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 newItem = createObj.newItem(newItemData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 newItem.count = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 totalItems.items[totalItems.prefix + newId] = newItem; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1408,15 +1566,11 @@ var valueController = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     createValue: function(sheet, totalItems, id, field, newValue){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         var newData; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if(field === 'value'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var newCode = valueController.getCode(totalItems, id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             newData = {code: newCode, value: newValue}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            console.log(`newCode: ${newCode}`); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            console.log(`id: ${id}`); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            console.log(sheet.getActiveRowIndex()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             tools.reSetCell(sheet, sheet.getActiveRowIndex(), 0, newCode, newCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         else { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1429,6 +1583,8 @@ var valueController = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 sheet.getCell(args.row, args.col).value(''); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log(`finItem`); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log(totalItems.findItem(id).data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         totalItems.findItem(id).data.itemValue.push(newData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         itemsAjax.updateValue(billsLibId, id, newData, null, 'create'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1484,8 +1640,13 @@ var valueController = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     getCode: function(totalItems, id){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         var valArr = totalItems.findItem(id).data.itemValue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        tools.resort(valArr, 'code', true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return valArr.length > 0 ? valArr[valArr.length - 1].code + 1 : 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(valArr){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            tools.resort(valArr, 'code', true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return valArr.length > 0 ? valArr[valArr.length - 1].code + 1 : 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     isRepeat: function(arr, newValue){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1533,12 +1694,14 @@ var totalJobsController = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if(field === 'content'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             maxJobsNumber++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             let id = maxJobsNumber; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            jobsAjax.createJobContent(billsLibId, newData, maxJobsNumber, id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let code = tools.getNewCode(totalJobs, 'jobs'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            code++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            jobsAjax.createJobContent(billsLibId, newData, code, id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 var newJobData, newJob; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newJobData = {id: id, content: newData, code: maxJobsNumber}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                newJobData = {id: id, content: newData, code: code}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 newJob = createObj.newJob(newJobData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 totalJobs.jobsArr.push(newJob); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                tools.reSetCell(sheet, args.row, 0, maxJobsNumber, id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                tools.reSetCell(sheet, args.row, 0, code, id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if(typeof newData === 'number'){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1608,24 +1771,28 @@ var totalItemsController = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     createItem: function(sheet, totalItems, field, newData, args){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if(field === 'content'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             maxItemsNumber++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            itemsAjax.createItemCharacter(billsLibId, newData, maxItemsNumber, function(id){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let id = maxItemsNumber; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let code = tools.getNewCode(totalItems, 'items'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            code++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            itemsAjax.createItemCharacter(billsLibId, newData, code, id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 var newItemData, newItem; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newItemData = {id: id, content: newData, code: maxItemsNumber}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                newItemData = {id: id, content: newData, code: code, itemValue: []}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 newItem = createObj.newItem(newItemData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 totalItems.itemsArr.push(newItem); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                tools.reSetCell(sheet, args.row, 0, maxItemsNumber, id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                totalItems.items[totalItems.prefix + id] = newItem; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                tools.reSetCell(sheet, args.row, 0, code, id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if(typeof newData === 'number'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 maxItemsNumber = maxItemsNumber >= newData ? maxItemsNumber : newData; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                itemsAjax.createItemCharacter(billsLibId, '', newData, function(id){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let id = maxItemsNumber; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                itemsAjax.createItemCharacter(billsLibId, '', newData, id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     var newItemData, newItem; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    newItemData = {id: id, content: '', code: newData}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    newItemData = {id: id, content: '', code: newData, itemValue: []}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     newItem = createObj.newItem(newItemData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     totalItems.itemsArr.push(newItem); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                     totalItems.items[totalItems.prefix + id] = newItem; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     tools.reSetCell(sheet, args.row, 0, null, id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //编号只能为数字 
			 |