zhangyuewww 2 anos atrás
pai
commit
90c349d94b

+ 1 - 1
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/CarrierInfoController.java

@@ -53,7 +53,7 @@ public class CarrierInfoController {
      */
      @Log(title = "确认卸车")
      @PostMapping("/unLoadingAdd")
-     public String unLoadingAdd(@RequestBody HyCarrierInfo hyCarrierInfo) {
+     public String unLoadingAdd(@RequestBody HyCarrierInfo hyCarrierInfo) throws ParseException {
          return carrierInfoService.unLoadingAdd(hyCarrierInfo);
     }
     /**

+ 1 - 1
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/ICarrierInfoService.java

@@ -26,7 +26,7 @@ public interface ICarrierInfoService extends IService<HyCarrierInfo> {
     /**
      * 确认卸车
      */
-    String unLoadingAdd(HyCarrierInfo hyCarrierInfo);
+    String unLoadingAdd(HyCarrierInfo hyCarrierInfo) throws ParseException;
 
     /**
      * 货主端确认装卸车

+ 119 - 24
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/CarrierInfoServiceImpl.java

@@ -260,7 +260,7 @@ public class CarrierInfoServiceImpl extends ServiceImpl<CarrierInfoMapper, HyCar
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public String unLoadingAdd(HyCarrierInfo hyCarrierInfo) {
+    public String unLoadingAdd(HyCarrierInfo hyCarrierInfo) throws ParseException {
         //根据id查询承运信息
         HyCarrierInfo hyCarrierInfo1 = this.selectById(hyCarrierInfo.getId());
         if (hyCarrierInfo != null) {
@@ -274,30 +274,125 @@ public class CarrierInfoServiceImpl extends ServiceImpl<CarrierInfoMapper, HyCar
                 hyCarrierInfo.setStatusFlag(StatusEnum.SUBMITTED.getFlag());
                 this.updateById(hyCarrierInfo);
                 //司机确认卸车后,订单状态改为待货主确认卸车
-                OrderInfo orderInfo = orderInfoService.selectOne(new EntityWrapper<OrderInfo>()
-                        .eq("id", hyCarrierInfo1.getOrderId())
-                        .eq("delete_flag", "0"));
-                if (orderInfo != null) {
-                    orderInfo.setOrderStatus(StatusEnum.OWNER_CONFIRMED_UNLOAD.getName());
-                    orderInfo.setOrderStatusKey(StatusEnum.OWNER_CONFIRMED_UNLOAD.getFlag());
-                    orderInfo.setCargoOwnerStatus(StatusEnum.CONFIRMED_UNLOAD.getName());
-                    orderInfo.setCargoOwnerStatusKey(StatusEnum.CONFIRMED_UNLOAD.getFlag());
-                    orderInfoService.updateById(orderInfo);
+                OrderInfo orderInfo1=orderInfoService.selectById(hyCarrierInfo1.getOrderId());
+                if (orderInfo1!=null) {
+                    orderInfo1.setOrderStatus(StatusEnum.OWNER_CONFIRMED_UNLOAD.getName());
+                    orderInfo1.setOrderStatusKey(StatusEnum.OWNER_CONFIRMED_UNLOAD.getFlag());
+                    orderInfo1.setCargoOwnerStatus(StatusEnum.CONFIRMED_UNLOAD.getName());
+                    orderInfo1.setCargoOwnerStatusKey(StatusEnum.CONFIRMED_UNLOAD.getFlag());
+                    //查询货主是否为公司
+                    if (orderInfo1.getCompId() != null && !orderInfo1.getCompId().isEmpty()) {
+                        //查询该公司是否自动跳过平台审核
+                        HyCompanyInfo hyCompanyInfo1 = companyInfoService.selectById(orderInfo1.getCompId());
+                        if ("1".equals(hyCompanyInfo1.getSkipAudit())) {
+                            //确认卸车,判断是否是垫付订单
+                            if ("1".equals(orderInfo1.getFreightAdvance())) {
+                                //确认卸车更改订单状态
+                                orderInfo1.setOrderStatus(StatusEnum.DRIVER_ORDER_SETTLEMENT.getName());
+                                orderInfo1.setOrderStatusKey(StatusEnum.DRIVER_ORDER_SETTLEMENT.getFlag());
+                                orderInfo1.setCargoOwnerStatus(StatusEnum.OWNER_REPAID.getName());
+                                orderInfo1.setCargoOwnerStatusKey(StatusEnum.OWNER_REPAID.getFlag());
+                            } else {
+                                orderInfo1.setOrderStatus(StatusEnum.DRIVER_ORDER_SETTLEMENT.getName());
+                                orderInfo1.setOrderStatusKey(StatusEnum.DRIVER_ORDER_SETTLEMENT.getFlag());
+                                orderInfo1.setCargoOwnerStatus(StatusEnum.OWNER_ORDER_FINISH.getName());
+                                orderInfo1.setCargoOwnerStatusKey(StatusEnum.OWNER_ORDER_FINISH.getFlag());
+                            }
+                            //运费金额=单价 元/吨x装卸净重取小
+                            hyCarrierInfo1.setTotalFreight((hyCarrierInfo.getUnloadingWeight()<hyCarrierInfo.getLoadingWeight()?hyCarrierInfo.getUnloadingWeight():hyCarrierInfo.getLoadingWeight())*orderInfo1.getFreight());
+                            //查询费用信息
+                            FreightInfo freightInfo = freightInfoService.selectOne(new EntityWrapper<FreightInfo>()
+                                    .eq("order_id", orderInfo1.getId()).eq("delete_flag", "0"));
+                            //非垫付订单
+                            if ("0".equals(orderInfo1.getFreightAdvance())) {
+                                freightInfo.setActualFreight(hyCarrierInfo1.getTotalFreight());
+                                freightInfo.setPayableFreight(freightInfo.getActualFreight());
+                                freightInfo.setNopayableFreight(freightInfo.getPayableFreight() - freightInfo.getPayabledFreight());
+                                freightInfo.setOwnerFreightBalance(freightInfo.getActualFreight() - freightInfo.getPrepaidFreight());
+                                SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                                String Time = df.format(new Date());
+                                freightInfo.setOwnerFreightBalanceDate(df.parse(Time));
+                                freightInfo.setTotalCollection(freightInfo.getActualFreight() - freightInfo.getDriverServiceCharge());
+                                freightInfo.setTotalPayment(freightInfo.getActualFreight() + freightInfo.getOwnerServiceCharge());
+
+                                //生成货主冻结金额流向信息
+                                HyFreezingMoneyInfo hyFreezingMoneyInfo = new HyFreezingMoneyInfo();
+                                hyFreezingMoneyInfo.setId(IdGenerator.generateUUID());
+                                hyFreezingMoneyInfo.setOrderId(orderInfo1.getId());
+                                hyFreezingMoneyInfo.setType("扣除");
+                                hyFreezingMoneyInfo.setAmountMoney(freightInfo.getOwnerFreightBalance() + freightInfo.getOwnerServiceCharge());
+                                //将货主冻结金额减去
+                                Double d1 = hyCompanyInfo1.getFrozenAmount();
+                                hyCompanyInfo1.setFrozenAmount(d1 - freightInfo.getOwnerFreightBalance() - freightInfo.getOwnerServiceCharge());
+                                companyInfoService.updateById(hyCompanyInfo1);
+                                hyFreezingMoneyInfo.setCompanyId(hyCompanyInfo1.getId());
+                                //生成货主账单信息
+                                HyCargoOwnerCapitalInfo hyCargoOwnerCapitalInfo = new HyCargoOwnerCapitalInfo();
+                                hyCargoOwnerCapitalInfo.setId(IdGenerator.generateUUID());
+                                hyCargoOwnerCapitalInfo.setCompanyId(hyCompanyInfo1.getId());
+                                hyCargoOwnerCapitalInfo.setTypes("支付尾款");
+                                hyCargoOwnerCapitalInfo.setAmountMoney(freightInfo.getOwnerFreightBalance() + freightInfo.getOwnerServiceCharge());
+                                hyCargoOwnerCapitalInfo.setOrderId(orderInfo1.getId());
+                                hyCargoOwnerCapitalInfo.setOrderNo(orderInfo1.getOrderNo());
+                                hyCargoOwnerCapitalInfoService.insert(hyCargoOwnerCapitalInfo);
+                                hyFreezingMoneyInfoService.insert(hyFreezingMoneyInfo);
+                                //计算公司累计支付运费
+                                HyCompanyInfo hyCompanyInfo = companyInfoService.selectById(orderInfo1.getCompId());
+                                if (hyCompanyInfo != null) {
+                                    Double d3 = hyCompanyInfo.getAccumulatedFreight();
+                                    hyCompanyInfo.setAccumulatedFreight(d3 + freightInfo.getOwnerFreightBalance() + freightInfo.getOwnerServiceCharge());
+                                    companyInfoService.updateById(hyCompanyInfo);
+                                }
+                            }
+                            //垫付订单
+                            else {
+                                freightInfo.setPayableFreight(freightInfo.getActualFreight() - freightInfo.getDriverServiceCharge());
+                                freightInfo.setNopayableFreight(freightInfo.getPayableFreight() - freightInfo.getPayabledFreight());
+                                freightInfo.setTotalCollection(freightInfo.getPayableFreight());
+                            }
+                            freightInfoService.updateById(freightInfo);
+                            //生成司机运费结算信息
+                            HyFreightSettlementInfo hyFreightSettlementInfo = new HyFreightSettlementInfo();
+                            hyFreightSettlementInfo.setId(IdGenerator.generateUUID());
+                            hyFreightSettlementInfo.setCommonId(orderInfo1.getCommonId());
+                            hyFreightSettlementInfo.setOrderId(orderInfo1.getId());
+                            hyFreightSettlementInfo.setOrderNo(orderInfo1.getOrderNo());
+                            hyFreightSettlementInfo.setDocumentNo(orderInfo1.getOrderNo().replace("CY", "ZJLS"));
+                            hyFreightSettlementInfo.setFreightAdvance(orderInfo1.getFreightAdvance());
+                            hyFreightSettlementInfo.setDriverName(orderInfo1.getDriverName());
+                            hyFreightSettlementInfo.setPayeeName(orderInfo1.getPayeeName());
+                            hyFreightSettlementInfo.setPayeeIdCard(orderInfo1.getPayeeIdCard());
+                            if (orderInfo1.getCarCaptainCommonId() != null && !orderInfo1.getCarCaptainCommonId().isEmpty()) {
+                                hyFreightSettlementInfo.setCarCaptainCommonId(orderInfo1.getCarCaptainCommonId());
+                            }
+                            hyFreightSettlementInfo.setBankCard(orderInfo1.getBankCard());
+                            hyFreightSettlementInfo.setBankDeposit(orderInfo1.getBankDeposit());
+                            hyFreightSettlementInfo.setBankDepositBranch(orderInfo1.getBankDepositBranch());
+                            hyFreightSettlementInfo.setPaymentType("尾款");
+                            if (freightInfo.getPrepaidFreight() == null) {
+                                throw new YException(YExceptionEnum.PAY_ADVANCE_PAYMENT);
+                            }
+                            hyFreightSettlementInfo.setAmountMoney(freightInfo.getActualFreight() - freightInfo.getPrepaidFreight() - freightInfo.getDriverServiceCharge());
+                            hyFreightSettlementInfo.setStatusKey(StatusEnum.NO_PAYMENT.getFlag());
+                            hyFreightSettlementInfo.setStatus(StatusEnum.NO_PAYMENT.getName());
+                            hyFreightSettlementInfoService.insert(hyFreightSettlementInfo);
+                        }
+                    }
+                    // 向货主发送信息
+                    NewsInfo newsInfo = new NewsInfo();
+                    newsInfo.setCrtCommonId(orderInfo1.getCommonId());
+                    newsInfo.setReCommonId(orderInfo1.getCargoCommonId());
+                    newsInfo.setNewsTitle("司机已卸车");
+                    newsInfo.setNewsContent("司机 " + orderInfo1.getDriverName() + "已确认卸车,订单编号" + orderInfo1.getOrderNo() + "。");
+                    newsInfo.setNumber(orderInfo1.getOrderNo());
+                    newsInfo.setBussId(orderInfo1.getId());
+                    newsInfo.setNewsTypeKey("2");
+                    newsInfo.setNewsType("承运通知");
+                    newsInfoService.addNewsInfo(newsInfo);
+                    //个推
+                    geTuiUtils.initGeTui(newsInfo.getReCommonId());
+                    geTuiUtils.pushByCid(newsInfo.getNewsTitle(), newsInfo.getNewsContent(), newsInfo.getReCommonId());
                 }
-                // 向货主发送信息
-                NewsInfo newsInfo = new NewsInfo();
-                newsInfo.setCrtCommonId(orderInfo.getCommonId());
-                newsInfo.setReCommonId(orderInfo.getCargoCommonId());
-                newsInfo.setNewsTitle("司机已卸车");
-                newsInfo.setNewsContent("司机 " + orderInfo.getDriverName() + "已确认卸车,订单编号" + orderInfo.getOrderNo() + "。");
-                newsInfo.setNumber(orderInfo.getOrderNo());
-                newsInfo.setBussId(orderInfo.getId());
-                newsInfo.setNewsTypeKey("2");
-                newsInfo.setNewsType("承运通知");
-                newsInfoService.addNewsInfo(newsInfo);
-                //个推
-                geTuiUtils.initGeTui(newsInfo.getReCommonId());
-                geTuiUtils.pushByCid(newsInfo.getNewsTitle(),newsInfo.getNewsContent(),newsInfo.getReCommonId());
             }
         }
         return "OK";