瀏覽代碼

通知单变更查看获取最新的剩余数量、已审批通知单是变更后的新通知单

gaodd 4 年之前
父節點
當前提交
bafe2f2ede

+ 152 - 1
src/main/java/com/chinaitop/depot/business/controller/audit/BusinessDeliveryStorageNoticeAuditController.java

@@ -397,8 +397,159 @@ public class BusinessDeliveryStorageNoticeAuditController {
397 397
         modelMap.put("changeDetailList", changeDetailList);
398 398
         
399 399
         // 仓号货位号数量质量标准.
400
-        List<BusinessStoreWareDetail> storeWareDetailList= businessStoreWareDetailService.getByZidAndType(id, StoreWareType.notice.getValue());
400
+       /* List<BusinessStoreWareDetail> storeWareDetailList= businessStoreWareDetailService.getByZidAndType(id, StoreWareType.notice.getValue());
401
+        modelMap.put("storeWareDetailList", storeWareDetailList);*/
402
+        
403
+     // 仓号货位号数量质量标准.
404
+        List<BusinessStoreWareDetail> storeWareDetailList = null;
405
+        List<BusinessStoreWareDetail> list = null;
406
+        List<Map<String, Object>> map = null;
407
+        List<Map<String, Object>> stopMap = null;
408
+        Map<String, Object> param_map = new HashMap<String, Object>();
409
+        if(deliveryStorageNotice.getPlanBid()!=null && deliveryStorageNotice.getContractBid()==null){//只引用计划 没引用合同 算计划剩余数量
410
+        	// 查询该条通知单引的计划的剩余数量
411
+        	 list= businessStoreWareDetailService.getByZidAndType(deliveryStorageNotice.getPlanBid(), StoreWareType.plan.getValue());
412
+        	//计算每条明细所对应的计划的剩余数量
413
+        	param_map.put("plan_id", deliveryStorageNotice.getPlanBid());
414
+        	if(list.size()>0){
415
+        		if(list.get(0).getHouseId() == 0 && list.get(0).getWarehouseId() == null){//油
416
+        			 map = businessStoreWareDetailService.selectPlanOilUseCount(param_map);
417
+        		}else{
418
+        			 map = businessStoreWareDetailService.selectPlanUseCount(param_map);
419
+
420
+        		}
421
+        	}
422
+        	 stopMap = businessStoreWareDetailService.selectPlanUseCountIsStop(param_map);
423
+        }else if(deliveryStorageNotice.getContractBid()!=null){//引用了合同 无论用不用计划 都算的是合同的剩余数量
424
+        	list = businessStoreWareDetailService.getByZidAndType(deliveryStorageNotice.getContractBid(), StoreWareType.contract.getValue());
425
+			param_map.put("contract_id", deliveryStorageNotice.getContractBid());
426
+			if(list.size()>0){
427
+        		if(list.get(0).getHouseId() == 0 && list.get(0).getWarehouseId() == null){//油
428
+        			 map = businessStoreWareDetailService.selectContractOilUseCount(param_map);
429
+        		}else{
430
+        			 map = businessStoreWareDetailService.selectContractUseCount(param_map);
431
+        		}
432
+        	}
433
+			stopMap = businessStoreWareDetailService.selectContractUseCountIsStop(param_map);
434
+        }
435
+            
436
+            
437
+            BusinessStoreWareDetail obj = null;
438
+            double sysl = 0d;
439
+            double sum_use_num = 0d; //已使用总量
440
+            double plan_sum_num = 0d; //原计划数量
441
+            double stop_use_num = 0d; //终止的通知单走完出入库的计划数量
442
+            for (int i = 0; i < list.size(); i++) {
443
+            	obj = list.get(i);
444
+            	for (Map<String, Object> m : map) {
445
+            		if(obj.getHouseId() == 0 && obj.getWarehouseId() == null){//油料
446
+            			if(stopMap.size()>0){
447
+            				for (Map<String, Object> m1 : stopMap) {
448
+								if(m1.get("chID").equals(m.get("house_name").toString())){
449
+									stop_use_num = Double.parseDouble(m1.get("wcsl")+"");
450
+									break;
451
+								}
452
+							}
453
+            			}
454
+            			if (m.get("house_name").equals(obj.getHouseName())) {
455
+                			if (!"".equals(m.get("in_count")) && null != m.get("in_count") && !"".equals(obj.getInCount()) && null != obj.getInCount()) {
456
+                				plan_sum_num = Double.parseDouble(obj.getInCount());
457
+                				sum_use_num = Double.parseDouble(m.get("in_count")+"");
458
+                				if (sum_use_num <= plan_sum_num) {
459
+                					sysl = plan_sum_num - sum_use_num - stop_use_num;
460
+                					obj.setRemainingNumber(sysl+""); //页面上明细列表的数量
461
+                					if (sysl == 0) {
462
+                						obj.setRemainingNumber("0");
463
+                					}
464
+                				} else if (sum_use_num > plan_sum_num){
465
+                					sysl = sum_use_num + stop_use_num - plan_sum_num;
466
+                					obj.setRemainingNumber("超出:" + sysl);
467
+                				}
468
+                			}
469
+                			if (!"".equals(m.get("out_count")) && null != m.get("out_count") && !"".equals(obj.getOutCount()) && null != obj.getOutCount()) {
470
+                				plan_sum_num = Double.parseDouble(obj.getOutCount());
471
+                				sum_use_num = Double.parseDouble(m.get("out_count")+"");
472
+                				if (sum_use_num <= plan_sum_num) {
473
+                					sysl = plan_sum_num - sum_use_num - stop_use_num;
474
+                					obj.setOutRemainingNumber(""+sysl);
475
+                				} else if (sum_use_num > plan_sum_num){
476
+                					sysl = sum_use_num + stop_use_num - plan_sum_num;
477
+                					obj.setOutRemainingNumber("超出:" + sysl);
478
+                				}
479
+                			}
480
+                		}
481
+            		}else{
482
+            			if(stopMap.size()>0){
483
+                			for (Map<String, Object> m1 : stopMap) {
484
+								if(m1.get("chID").equals(m.get("house_id").toString()) && m1.get("hwID").equals(m.get("warehouse_id").toString())){
485
+										stop_use_num = Double.parseDouble(m1.get("wcsl")+"");
486
+										break;
487
+								}
488
+							}
489
+                		}
490
+            			if (m.get("house_id").equals(obj.getHouseId()) && m.get("warehouse_id").equals(obj.getWarehouseId())) {
491
+                			if (!"".equals(m.get("in_count")) && null != m.get("in_count") && !"".equals(obj.getInCount()) && null != obj.getInCount()) {
492
+                				plan_sum_num = Double.parseDouble(obj.getInCount());
493
+                				sum_use_num = Double.parseDouble(m.get("in_count")+"");
494
+                				if (sum_use_num <= plan_sum_num) {
495
+                					sysl = plan_sum_num - sum_use_num - stop_use_num;
496
+                					obj.setRemainingNumber(sysl+""); //页面上明细列表的数量
497
+                					if (sysl == 0) {
498
+                						obj.setRemainingNumber("0");
499
+                					}
500
+                				} else if (sum_use_num > plan_sum_num){
501
+                					sysl = sum_use_num + stop_use_num - plan_sum_num;
502
+                					obj.setRemainingNumber("超出:" + sysl);
503
+                				}
504
+                			}
505
+                			if (!"".equals(m.get("out_count")) && null != m.get("out_count") && !"".equals(obj.getOutCount()) && null != obj.getOutCount()) {
506
+                				plan_sum_num = Double.parseDouble(obj.getOutCount());
507
+                				sum_use_num = Double.parseDouble(m.get("out_count")+"");
508
+                				if (sum_use_num <= plan_sum_num) {
509
+                					sysl = plan_sum_num - sum_use_num - stop_use_num;
510
+                					obj.setOutRemainingNumber(""+sysl);
511
+                				} else if (sum_use_num > plan_sum_num){
512
+                					sysl = sum_use_num + stop_use_num - plan_sum_num;
513
+                					obj.setOutRemainingNumber("超出:" + sysl);
514
+                				}
515
+                			}
516
+                		}
517
+            		}
518
+            		
519
+            	}
520
+            }
521
+
522
+        	// 该条通知单下的明细
523
+	        storeWareDetailList= businessStoreWareDetailService.getByZidAndType(id, StoreWareType.notice.getValue());
524
+	        for (BusinessStoreWareDetail businessPlanDetail : list) {
525
+	        	 for (BusinessStoreWareDetail businessStoreWareDetail : storeWareDetailList) {
526
+	        		 if(businessPlanDetail.getHouseId()==0 && businessPlanDetail.getWarehouseName()!=null){//油
527
+	        			 if(businessPlanDetail.getHouseName().equals(businessStoreWareDetail.getHouseName())){
528
+	        				 if(businessPlanDetail.getRemainingNumber()!=null){
529
+	      							businessStoreWareDetail.setRemainingNumber(businessPlanDetail.getRemainingNumber());
530
+	      						}
531
+	      						if(businessPlanDetail.getOutRemainingNumber()!=null){
532
+	      							businessStoreWareDetail.setOutRemainingNumber(businessPlanDetail.getOutRemainingNumber());
533
+	      						}
534
+	        			 }
535
+	        		 }else{
536
+	        			 if(businessPlanDetail.getHouseId().equals(businessStoreWareDetail.getHouseId()) &&
537
+	      					   businessPlanDetail.getWarehouseId().equals(businessStoreWareDetail.getWarehouseId())){
538
+	      					    
539
+	      						if(businessPlanDetail.getRemainingNumber()!=null){
540
+	      							businessStoreWareDetail.setRemainingNumber(businessPlanDetail.getRemainingNumber());
541
+	      						}
542
+	      						if(businessPlanDetail.getOutRemainingNumber()!=null){
543
+	      							businessStoreWareDetail.setOutRemainingNumber(businessPlanDetail.getOutRemainingNumber());
544
+	      						}
545
+	      						
546
+	      					}
547
+	        		 }
548
+				}
549
+			}
550
+        
401 551
         modelMap.put("storeWareDetailList", storeWareDetailList);
552
+        
402 553
         return modelMap;
403 554
     }
404 555
 }

+ 9 - 7
src/main/java/com/chinaitop/depot/business/service/impl/BusinessDeliveryStorageNoticeServiceImpl.java

@@ -1095,21 +1095,23 @@ public class BusinessDeliveryStorageNoticeServiceImpl implements BusinessDeliver
1095 1095
             
1096 1096
            // 判断是否是通知单变更.
1097 1097
             if (StringUtils.isNotBlank(noticeType) && "change".equals(noticeType)) {
1098
-                // 合同变更标志 为  1,也就是合同变更数据.
1099
-                //contract.setChangeRecordFlag("1");
1098
+            	// 通知单变更标志为1,也就是通知单变更数据.
1100 1099
                 createCriteria.andChangeRecordFlagEqualTo("1");
1101 1100
                 createCriteria1.andChangeRecordFlagEqualTo("1");
1102 1101
                 // 变更状态为没有被变更成功. changing:0未变更; 1变更中; 2已变更;
1103 1102
                 // 注:如果一条合同变更多次,只会显示最新一次的变更.
1104 1103
                 createCriteria.andChangingNotEqualTo("2");
1105 1104
                 createCriteria1.andChangingNotEqualTo("2");
1106
-            }else{ //未变更的合同(合同申请)
1107
-            	createCriteria.andChangeRecordFlagEqualTo("0");
1108
-            	createCriteria1.andChangeRecordFlagEqualTo("0");
1105
+            }else{ 
1106
+	             /*//0 不是变更的数据 1是变更的数据
1107
+	             createCriteria.andChangeRecordFlagEqualTo("0");
1108
+	             createCriteria1.andChangeRecordFlagEqualTo("0");*/
1109
+              // 变更状态为没有被变更0. 1是变更 2 变更成功
1110
+                createCriteria.andChangingEqualTo("0");
1111
+                createCriteria1.andChangingEqualTo("0");
1109 1112
             }
1110 1113
         }
1111
-        // 变更状态为没有被变更.
1112
-        createCriteria.andChangingEqualTo("0");
1114
+        //除去中转的
1113 1115
         createCriteria.andBillTypeNotEqualTo("2");
1114 1116
         createCriteria1.andBillTypeNotEqualTo("2");
1115 1117
         example.or(createCriteria1);