|
...
|
...
|
@@ -23,6 +23,7 @@ import com.lframework.xingyun.sc.service.customer.CustomerCreditService; |
|
23
|
23
|
import com.lframework.xingyun.sc.service.customer.CustomerDevelopPlanService;
|
|
24
|
24
|
import com.lframework.xingyun.sc.service.order.*;
|
|
25
|
25
|
import com.lframework.xingyun.sc.service.purchase.ReplenishmentOrderService;
|
|
|
26
|
+import com.lframework.xingyun.sc.service.shipments.ShipmentsPlanDetailService;
|
|
26
|
27
|
import com.lframework.xingyun.sc.service.shipments.car.CarRequestPlanService;
|
|
27
|
28
|
import com.lframework.xingyun.sc.service.shipments.car.RequestCarTicketService;
|
|
28
|
29
|
import com.lframework.xingyun.sc.service.shipments.car.DraftRequestCarTicketService;
|
|
...
|
...
|
@@ -36,6 +37,7 @@ import com.lframework.xingyun.sc.vo.shipments.car.CreateCarRequestPlanVo; |
|
36
|
37
|
import com.lframework.xingyun.sc.vo.shipments.car.CreateRequestCarTicketVo;
|
|
37
|
38
|
import com.lframework.xingyun.sc.vo.shipments.car.QueryRequestCarTicketVo;
|
|
38
|
39
|
import com.lframework.xingyun.sc.vo.shipments.delay.QueryDelayedShipmentDetailVo;
|
|
|
40
|
+import com.lframework.xingyun.sc.vo.shipments.plan.QueryShipmentsPlanDetailVo;
|
|
39
|
41
|
import lombok.extern.slf4j.Slf4j;
|
|
40
|
42
|
import org.apache.commons.collections.CollectionUtils;
|
|
41
|
43
|
import org.apache.commons.collections4.MapUtils;
|
|
...
|
...
|
@@ -48,6 +50,8 @@ import org.springframework.stereotype.Component; |
|
48
|
50
|
import javax.annotation.Resource;
|
|
49
|
51
|
import java.math.BigDecimal;
|
|
50
|
52
|
import java.time.LocalDate;
|
|
|
53
|
+import java.time.LocalTime;
|
|
|
54
|
+import java.time.format.DateTimeFormatter;
|
|
51
|
55
|
import java.util.ArrayList;
|
|
52
|
56
|
import java.util.List;
|
|
53
|
57
|
import java.util.Map;
|
|
...
|
...
|
@@ -101,6 +105,8 @@ public class BusinessDataHandlerServiceImpl implements BusinessDataHandlerServic |
|
101
|
105
|
private WorkshopService workshopService;
|
|
102
|
106
|
@Resource
|
|
103
|
107
|
private MessageHandler messageHandler;
|
|
|
108
|
+ @Resource
|
|
|
109
|
+ private ShipmentsPlanDetailService shipmentsPlanDetailService;
|
|
104
|
110
|
|
|
105
|
111
|
|
|
106
|
112
|
/**
|
|
...
|
...
|
@@ -157,7 +163,7 @@ public class BusinessDataHandlerServiceImpl implements BusinessDataHandlerServic |
|
157
|
163
|
handleSpecLockDelayAuditData(flowStatus, businessId);
|
|
158
|
164
|
break;
|
|
159
|
165
|
case "DRAFT_REQUEST_CAR":
|
|
160
|
|
- handleDraftRequestCarTicketData(flowStatus, businessId);
|
|
|
166
|
+ handleDraftRequestCarTicketData(flowStatus, businessId, variable);
|
|
161
|
167
|
break;
|
|
162
|
168
|
case "RESTOCK_APPROVAL":
|
|
163
|
169
|
handleReplenishmentOrderStatus(flowStatus, businessId);
|
|
...
|
...
|
@@ -455,7 +461,7 @@ public class BusinessDataHandlerServiceImpl implements BusinessDataHandlerServic |
|
455
|
461
|
*
|
|
456
|
462
|
* @param businessId 业务ID
|
|
457
|
463
|
*/
|
|
458
|
|
- private void handleDraftRequestCarTicketData(String flowStatus, String businessId) {
|
|
|
464
|
+ private void handleDraftRequestCarTicketData(String flowStatus, String businessId, Map<String, Object> variable) {
|
|
459
|
465
|
if (FlowInstanceStatus.APPROVE_PASS.getCode().equals(flowStatus)
|
|
460
|
466
|
|| FlowInstanceStatus.FINISH.getCode().equals(flowStatus)) {
|
|
461
|
467
|
draftRequestCarTicketService.updateStatus(businessId, "PASS");
|
|
...
|
...
|
@@ -470,7 +476,7 @@ public class BusinessDataHandlerServiceImpl implements BusinessDataHandlerServic |
|
470
|
476
|
planCreateVo.setWorkshopId(draftRequestCarTicket.getWorkshopId());
|
|
471
|
477
|
String requestCarPlanId = carRequestPlanService.create(planCreateVo);
|
|
472
|
478
|
// 生成要车单
|
|
473
|
|
- CreateRequestCarTicketVo ticketCreateVo = packRequestCarTicket(draftRequestCarTicket,requestCarPlanId);
|
|
|
479
|
+ CreateRequestCarTicketVo ticketCreateVo = packRequestCarTicket(draftRequestCarTicket, requestCarPlanId, variable);
|
|
474
|
480
|
requestCarTicketService.create(ticketCreateVo);
|
|
475
|
481
|
}
|
|
476
|
482
|
} else if (FlowInstanceStatus.REVOKE.getCode().equals(flowStatus)
|
|
...
|
...
|
@@ -488,7 +494,8 @@ public class BusinessDataHandlerServiceImpl implements BusinessDataHandlerServic |
|
488
|
494
|
* @param draftRequestCarTicket 草稿要车单
|
|
489
|
495
|
* @return CreateRequestCarTicketVo
|
|
490
|
496
|
*/
|
|
491
|
|
- private CreateRequestCarTicketVo packRequestCarTicket(DraftRequestCarTicket draftRequestCarTicket, String requestCarPlanId) {
|
|
|
497
|
+ private CreateRequestCarTicketVo packRequestCarTicket(DraftRequestCarTicket draftRequestCarTicket,
|
|
|
498
|
+ String requestCarPlanId, Map<String, Object> variable) {
|
|
492
|
499
|
CreateRequestCarTicketVo ticketVo = new CreateRequestCarTicketVo();
|
|
493
|
500
|
PurchaseOrderInfo orderInfo = purchaseOrderInfoService.findById(draftRequestCarTicket.getId());
|
|
494
|
501
|
ticketVo.setDraftId(draftRequestCarTicket.getId());
|
|
...
|
...
|
@@ -501,13 +508,30 @@ public class BusinessDataHandlerServiceImpl implements BusinessDataHandlerServic |
|
501
|
508
|
ticketVo.setOrderNo(draftRequestCarTicket.getOrderNo());
|
|
502
|
509
|
ticketVo.setOrderingUnit(draftRequestCarTicket.getOrderingUnit());
|
|
503
|
510
|
ticketVo.setQuantity(draftRequestCarTicket.getQuantity());
|
|
|
511
|
+ ticketVo.setDestination(String.valueOf(variable.get("destination")));
|
|
|
512
|
+ ticketVo.setConsignee(String.valueOf(variable.get("consignee")));
|
|
|
513
|
+ ticketVo.setPhone(String.valueOf(variable.get("phone")));
|
|
|
514
|
+ ticketVo.setReturnPlanArrangement(String.valueOf(variable.get("returnPlanArrangement")));
|
|
|
515
|
+ ticketVo.setOther(String.valueOf(variable.get("other")));
|
|
|
516
|
+ ticketVo.setSpecialLoadingRequirement(String.valueOf(variable.get("specialLoadingRequirement")));
|
|
504
|
517
|
//外办审核人(草稿要车单审核人)
|
|
505
|
518
|
ticketVo.setExternalAuditor(SecurityUtil.getCurrentUser().getId());
|
|
506
|
519
|
//经营办审核人(发货计划提交人)
|
|
507
|
520
|
ticketVo.setBusinessOfficeAuditor(draftRequestCarTicket.getBusinessOfficeAuditor());
|
|
508
|
521
|
Object o = redisHandler.get("GET_SHIPMENTS_ORDER_ID_" + draftRequestCarTicket.getId());
|
|
509
|
522
|
if (o != null) {
|
|
510
|
|
- ticketVo.setPurchaseOrderId(String.valueOf(o));
|
|
|
523
|
+ ticketVo.setShipmentsOrderId(String.valueOf(o));
|
|
|
524
|
+ QueryShipmentsPlanDetailVo vo = new QueryShipmentsPlanDetailVo();
|
|
|
525
|
+ vo.setShipmentsOrderId(String.valueOf(o));
|
|
|
526
|
+ vo.setOrderId(orderInfo.getId());
|
|
|
527
|
+ List<ShipmentsPlanDetail> details = shipmentsPlanDetailService.query(vo);
|
|
|
528
|
+ LocalTime minTime = details.stream()
|
|
|
529
|
+ .map(ShipmentsPlanDetail::getShipmentsTime)
|
|
|
530
|
+ .min(LocalTime::compareTo)
|
|
|
531
|
+ .orElse(null);
|
|
|
532
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm");
|
|
|
533
|
+ String loadingTime = minTime.format(formatter);
|
|
|
534
|
+ ticketVo.setLoadingTime(loadingTime);
|
|
511
|
535
|
redisHandler.del("GET_SHIPMENTS_ORDER_ID_" + draftRequestCarTicket.getId());
|
|
512
|
536
|
}
|
|
513
|
537
|
return ticketVo;
|
...
|
...
|
|