|
|
@@ -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
|
}
|