haungfuli 2 년 전
부모
커밋
6682e20111

+ 52 - 60
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/OrderInfoServiceImpl.java

@@ -1273,82 +1273,74 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
         OrderInfo orderInfo1 = this.selectById(orderInfo.getId());
         //货主签合同
         if (orderInfo.getTypeFlag().equals("1")) {
+            String pdfUrl = pdfUtil.transactionContract(orderInfo1);
+            //提交
             if ("2".equals(orderInfo.getSubmitFlag())) {
                 orderInfo1.setCargoOwnerContract("1");
+                orderInfo1.setCargoOwnerAutograph(orderInfo.getCargoOwnerAutograph());
+                orderInfo1.setWtContractNo(orderInfo1.getOrderNo().replace("CY", "WTHT"));
+                orderInfo1.setOwnerContractUrl(pdfUrl);
             }
-            orderInfo1.setCargoOwnerAutograph(orderInfo.getCargoOwnerAutograph());
-            orderInfo1.setWtContractNo(orderInfo1.getOrderNo().replace("CY", "WTHT"));
-            String pdfUrl = pdfUtil.transactionContract(orderInfo1);
-            orderInfo1.setOwnerContractUrl(pdfUrl);
             this.updateById(orderInfo1);
             return pdfUrl;
         }
         //司机签合同
         else {
-            //查询车辆信息
-            HyDriverCarInfo hyDriverCarInfo = driverCarInfoService.selectOne(new EntityWrapper<HyDriverCarInfo>().eq("car_number", orderInfo.getCarNumber())
-                    .eq("common_id", orderInfo1.getCommonId()).eq("delete_flag", "0"));
-            //车辆不存在
-            if (hyDriverCarInfo == null) {
-                throw new YException(YExceptionEnum.CAR_NOT_EXIST);
-            }
-            //查询车辆核定载重量
-            if ("挂车".equals(hyDriverCarInfo.getCarCategory())) {
-                if (Double.valueOf(orderInfo.getWeight()) > (hyDriverCarInfo.getGuaCarApprovedWeight() / 1000)) {
-                    throw new YException(YExceptionEnum.LOADING_NETWEIGHT_OVERLOAD);
+            if (orderInfo.getCarNumber() != null && !orderInfo.getCarNumber().isEmpty()){
+                //查询车辆信息
+                HyDriverCarInfo hyDriverCarInfo = driverCarInfoService.selectOne(new EntityWrapper<HyDriverCarInfo>().eq("car_number", orderInfo.getCarNumber())
+                        .eq("common_id", orderInfo1.getCommonId()).eq("delete_flag", "0"));
+                //车辆不存在
+                if (hyDriverCarInfo == null) {
+                    throw new YException(YExceptionEnum.CAR_NOT_EXIST);
                 }
-            } else {
-                if (Double.valueOf(orderInfo.getWeight()) > (hyDriverCarInfo.getCarApprovedWeight() / 1000)) {
-                    throw new YException(YExceptionEnum.LOADING_NETWEIGHT_OVERLOAD);
+                //查询车辆核定载重量
+                if ("挂车".equals(hyDriverCarInfo.getCarCategory())) {
+                    if (Double.valueOf(orderInfo.getWeight()) > (hyDriverCarInfo.getGuaCarApprovedWeight() / 1000)) {
+                        throw new YException(YExceptionEnum.LOADING_NETWEIGHT_OVERLOAD);
+                    }
+                } else {
+                    if (Double.valueOf(orderInfo.getWeight()) > (hyDriverCarInfo.getCarApprovedWeight() / 1000)) {
+                        throw new YException(YExceptionEnum.LOADING_NETWEIGHT_OVERLOAD);
+                    }
                 }
             }
+            String pdfUrl = pdfUtil.tranContract(orderInfo);
+            //承运信息
+            HyCarrierInfo hyCarrierInfo = carrierInfoService.selectOne(new EntityWrapper<HyCarrierInfo>()
+                    .eq("order_id", orderInfo1.getId()));
+            //查询用户信息
+            CommonUser commonUser = commonUserService.selectById(orderInfo1.getCommonId());
+            //提交
             if ("2".equals(orderInfo.getSubmitFlag())) {
                 orderInfo1.setDriverContract("1");
+                orderInfo1.setDriverContractUrl(pdfUrl);
+                orderInfo1.setDriverAutograph(orderInfo.getDriverAutograph());
+                orderInfo1.setContractNo(orderInfo1.getOrderNo().replace("CY", "CYHT"));
+                orderInfo1.setBankCard(orderInfo.getBankCard());
+                orderInfo1.setBankDeposit(orderInfo.getBankDeposit());
+                orderInfo1.setBankDepositBranch(orderInfo.getBankDepositBranch());
+                orderInfo1.setPayeeName(orderInfo.getPayeeName());
+                orderInfo1.setFreight(Double.valueOf(orderInfo.getFreightCars()));
+                orderInfo1.setBillingMethod("1");
+                orderInfo1.setAdvanceCharge(orderInfo.getAdvanceCharge());
+                orderInfo1.setCarNumber(orderInfo.getCarNumber());
+                orderInfo1.setTrailerNumber(orderInfo.getTrailerNumber());
+                orderInfo1.setTranStartDate(orderInfo.getTranStartDate());
+                orderInfo1.setTranEndDate(orderInfo.getTranEndDate());
+                orderInfo1.setContactPersonName(orderInfo.getContactPersonName());
+                orderInfo1.setContactPersonPhone(orderInfo.getContactPersonPhone());
+                //承运信息
+                hyCarrierInfo.setCarNo(orderInfo.getCarNumber());
+                hyCarrierInfo.setContractNo(orderInfo1.getContractNo());
+                hyCarrierInfo.setEstimatedFreight(orderInfo1.getFreight());
+                hyCarrierInfo.setLoadingDate(orderInfo.getTranStartDate());
+                hyCarrierInfo.setLoadingWeight(Double.valueOf(orderInfo.getWeight()));
+                //更新签名图片
+                commonUser.setSignImg(orderInfo.getDriverAutograph());
             }
-            orderInfo1.setDriverAutograph(orderInfo.getDriverAutograph());
-            orderInfo1.setContractNo(orderInfo1.getOrderNo().replace("CY", "CYHT"));
-            String pdfUrl = pdfUtil.tranContract(orderInfo);
-            orderInfo1.setDriverContractUrl(pdfUrl);
-            orderInfo1.setBankCard(orderInfo.getBankCard());
-            orderInfo1.setBankDeposit(orderInfo.getBankDeposit());
-            orderInfo1.setBankDepositBranch(orderInfo.getBankDepositBranch());
-            orderInfo1.setPayeeName(orderInfo.getPayeeName());
-            orderInfo1.setFreight(Double.valueOf(orderInfo.getFreightCars()));
-            orderInfo1.setBillingMethod("1");
-            orderInfo1.setAdvanceCharge(orderInfo.getAdvanceCharge());
-            orderInfo1.setCarNumber(orderInfo.getCarNumber());
-            orderInfo1.setTrailerNumber(orderInfo.getTrailerNumber());
-            orderInfo1.setTranStartDate(orderInfo.getTranStartDate());
-            orderInfo1.setTranEndDate(orderInfo.getTranEndDate());
-            orderInfo1.setContactPersonName(orderInfo.getContactPersonName());
-            orderInfo1.setContactPersonPhone(orderInfo.getContactPersonPhone());
-//            //查询司机信息
-//            HyDriverInfo hyDriverInfo = driverInfoService.selectOne(new EntityWrapper<HyDriverInfo>().eq("common_id", orderInfo1.getCommonId())
-//                    .eq("delete_flag", "0"));
-//            //查询货主信息
-//            HyCargoOwnerInfo hyCargoOwnerInfo = cargoOwnerInfoService.selectOne(new EntityWrapper<HyCargoOwnerInfo>()
-//                    .eq("common_id",orderInfo1.getCargoCommonId()).eq("delete_flag", "0"));
-//            if ("1".equals(orderInfo1.getFreightAdvance())) {
-//                //判断货主与司机垫付比例大小
-//                if(hyDriverInfo.getAdvancePayment() <= hyCargoOwnerInfo.getAdvancePayment()){
-//                    orderInfo1.setAdvanceCharge(orderInfo1.getFreight() * hyDriverInfo.getAdvancePayment());
-//                }else {
-//                    orderInfo1.setAdvanceCharge(orderInfo1.getFreight() * hyCargoOwnerInfo.getAdvancePayment());
-//                }
-//            }
             boolean one = this.updateById(orderInfo1);
-            //承运信息
-            HyCarrierInfo hyCarrierInfo = carrierInfoService.selectOne(new EntityWrapper<HyCarrierInfo>()
-                    .eq("order_id", orderInfo.getId()));
-            hyCarrierInfo.setCarNo(orderInfo.getCarNumber());
-            hyCarrierInfo.setContractNo(orderInfo1.getContractNo());
-            hyCarrierInfo.setEstimatedFreight(orderInfo1.getFreight());
-            hyCarrierInfo.setLoadingDate(orderInfo.getTranStartDate());
-            hyCarrierInfo.setLoadingWeight(Double.valueOf(orderInfo.getWeight()));
             boolean two = carrierInfoService.updateById(hyCarrierInfo);
-            //更新签名图片
-            CommonUser commonUser = commonUserService.selectById(orderInfo1.getCommonId());
-            commonUser.setSignImg(orderInfo.getDriverAutograph());
             boolean three = commonUserService.updateById(commonUser);
             if (one && two && three) {
                 return pdfUrl;

+ 363 - 253
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/util/PdfUtil.java

@@ -24,8 +24,9 @@ import java.net.URISyntaxException;
 import java.net.URL;
 import java.nio.charset.StandardCharsets;
 import java.util.*;
+
 @Component
-public class PdfUtil  implements InitializingBean{
+public class PdfUtil implements InitializingBean {
     @Autowired
     private IOrderInfoService orderInfoService;
     @Autowired
@@ -46,23 +47,29 @@ public class PdfUtil  implements InitializingBean{
     private OSSClient ossClient;
 
     private String host;
+
     public void afterPropertiesSet() throws Exception {
         host = "http://" + bucket + "." + endpoint;
     }
+
     public String tranContract(OrderInfo orderInfo) throws IOException, DocumentException, URISyntaxException {//利用模板生成pdf
 
         //订单信息
         OrderInfo orderInfo1 = orderInfoService.selectById(orderInfo.getId());
         //查询司机信息
-        HyDriverInfo hyDriverInfo = driverInfoService.selectOne(new EntityWrapper<HyDriverInfo>().eq("common_id",orderInfo1.getCommonId())
-                .eq("delete_flag","0"));
+        HyDriverInfo hyDriverInfo = driverInfoService.selectOne(new EntityWrapper<HyDriverInfo>().eq("common_id", orderInfo1.getCommonId())
+                .eq("delete_flag", "0"));
         HyDriverPayeeInfo hyDriverPayeeInfo = driverPayeeInfoService.selectOne(new EntityWrapper<HyDriverPayeeInfo>().eq("driver_id", hyDriverInfo.getId())
-                .eq("delete_flag","0"));
+                .eq("delete_flag", "0"));
+        String owner = "";
         HyDriverCarInfo hyDriverCarInfo = driverCarInfoService.selectOne(new EntityWrapper<HyDriverCarInfo>().eq("driver_id", hyDriverInfo.getId())
-                .eq("car_number",orderInfo.getCarNumber()).eq("delete_flag","0"));
+                .eq("car_number", orderInfo.getCarNumber()).eq("delete_flag", "0"));
+        if (hyDriverCarInfo != null){
+            owner = hyDriverCarInfo.getOwner();
+        }
         //任务信息
-        PublishTaskInfo publishTaskInfo = publishTaskInfoService.selectOne(new EntityWrapper<PublishTaskInfo>().eq("id",orderInfo1.getTaskId())
-                .eq("delete_flag","0"));
+        PublishTaskInfo publishTaskInfo = publishTaskInfoService.selectOne(new EntityWrapper<PublishTaskInfo>().eq("id", orderInfo1.getTaskId())
+                .eq("delete_flag", "0"));
 
 
         //模板路径
@@ -74,14 +81,14 @@ public class PdfUtil  implements InitializingBean{
         ByteArrayOutputStream bos;
         PdfStamper stamper;
         System.out.println("pdfUtil start");
-        File file = new File( new String(pdfTmp.getBytes(StandardCharsets.UTF_8), StandardCharsets.UTF_8));
-        File file1 = new File( new String(newPDFPath.getBytes(StandardCharsets.UTF_8), StandardCharsets.UTF_8));
+        File file = new File(new String(pdfTmp.getBytes(StandardCharsets.UTF_8), StandardCharsets.UTF_8));
+        File file1 = new File(new String(newPDFPath.getBytes(StandardCharsets.UTF_8), StandardCharsets.UTF_8));
         System.out.println(file.getAbsolutePath());
         System.out.println(file1.getAbsolutePath());
-        if(!file.exists()){
+        if (!file.exists()) {
             System.out.println("pdfUtil file not exists");
         }
-        if(!file1.exists()){
+        if (!file1.exists()) {
             System.out.println("pdfUtil file1 not exists");
         }
         out = new FileOutputStream(file1.getAbsoluteFile());//输出流
@@ -92,15 +99,19 @@ public class PdfUtil  implements InitializingBean{
         stamper = new PdfStamper(reader, bos);
         AcroFields form = stamper.getAcroFields();
         Iterator<String> it = form.getFields().keySet().iterator();
-        Calendar start= Calendar.getInstance();
-        start.setTime(orderInfo.getTranStartDate());
-        Calendar end= Calendar.getInstance();
-        end.setTime(orderInfo.getTranEndDate());
-        Calendar now= Calendar.getInstance();
+        Calendar start = Calendar.getInstance();
+        if (orderInfo.getTranStartDate() != null) {
+            start.setTime(orderInfo.getTranStartDate());
+        }
+        Calendar end = Calendar.getInstance();
+        if (orderInfo.getTranEndDate() != null) {
+            end.setTime(orderInfo.getTranEndDate());
+        }
+        Calendar now = Calendar.getInstance();
         now.setTime(new Date());
         float fontSize = 12f;
         String font_cn = getChineseFont();
-        BaseFont bf = BaseFont.createFont(font_cn+",0",
+        BaseFont bf = BaseFont.createFont(font_cn + ",0",
                 BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
         while (it.hasNext()) {
             String name = it.next().toString();
@@ -115,128 +126,178 @@ public class PdfUtil  implements InitializingBean{
 //            BaseFont bf =BaseFont.createFont("STSong-Light", BaseFont.CP1250,BaseFont.NOT_EMBEDDED);
             arrayList.add(bf);
             form.setSubstitutionFonts(arrayList);
-            form.setFieldProperty(name,"textsize",9f,null);
+            form.setFieldProperty(name, "textsize", 9f, null);
             //填写内容部分
-            switch (name){
-                case "fill_1" :
-                    form.setField(name, "黑龙江畅运通物流供应链有限公司");break;
-                case "fill_2" :
-                    form.setField(name, orderInfo1.getDriverName());break;
-                case "fill_3" :
-                    form.setField(name, "91230229MABPEWQX94");break;
-                case "fill_4" :
-                    form.setField(name, hyDriverInfo.getNumberCard());break;
-                case "fill_18" :
-                    form.setField(name, orderInfo.getCarNumber());break;
-                case "fill_19" :
-                    form.setField(name, orderInfo.getTrailerNumber());break;
-                case "fill_5" :
-                    form.setField(name, hyDriverCarInfo.getOwner());break;
-                case "fill_6" :
-                    form.setField(name, start.get(Calendar.YEAR)+"");break;
-                case "fill_7" :
-                    form.setField(name, start.get(Calendar.MONTH)+1+"");break;
-                case "fill_8" :
-                    form.setField(name, start.get(Calendar.DAY_OF_MONTH)+"");break;
-                case "fill_9" :
-                    form.setField(name, end.get(Calendar.YEAR)+"");break;
-                case "fill_10" :
-                    form.setField(name, end.get(Calendar.MONTH)+1+"");break;
-                case "fill_11" :
-                    form.setField(name, end.get(Calendar.DAY_OF_MONTH)+"");break;
-                case "fill_12" :
-                    form.setField(name, publishTaskInfo.getSender());break;
-                case "fill_13" :
-                    form.setField(name, publishTaskInfo.getSenderPhone());break;
-                case "fill_14" :
-                    form.setField(name, publishTaskInfo.getReceiver());break;
-                case "fill_15" :
-                    form.setField(name, publishTaskInfo.getReceiverPhone());break;
-                case "fill_16" :
-                    form.setField(name, publishTaskInfo.getSendPrivate()+publishTaskInfo.getSendCity()+publishTaskInfo.getSendArea()
-                            +publishTaskInfo.getSendDetailedAddress());break;
-                case "fill_17" :
-                    form.setField(name, publishTaskInfo.getUnloadPrivate()+publishTaskInfo.getUnloadCity()+publishTaskInfo.getUnloadArea()
-                            +publishTaskInfo.getUnloadDetailedAddress());break;
-                case "fill_1_2" :
-                    form.setField(name, orderInfo1.getDriverName());break;
-                case "fill_2_2" :
-                    form.setField(name, hyDriverInfo.getQuasiDrivingVehicle());break;
-                case "fill_3_2" :
-                    form.setField(name, orderInfo1.getDriverPhone());break;
-                case "fill_4_2" :
-                    form.setField(name, orderInfo.getContactPersonName());break;
-                case "fill_5_2" :
-                    form.setField(name, orderInfo.getContactPersonPhone());break;
-                case "fill_7_2" :
-                    form.setField(name, publishTaskInfo.getSendPrivate()+publishTaskInfo.getSendCity()+publishTaskInfo.getSendArea()
-                            +publishTaskInfo.getSendDetailedAddress());break;
-                case "fill_8_2" :
-                    form.setField(name, publishTaskInfo.getUnloadPrivate()+publishTaskInfo.getUnloadCity()+publishTaskInfo.getUnloadArea()
-                            +publishTaskInfo.getUnloadDetailedAddress());break;
-                case "fill_9_2" :
-                    form.setField(name, publishTaskInfo.getGoodsName());break;
-                case "Text1" :
-                    form.setField(name, orderInfo.getFreightCars());break;
-                case "Text2" :
-                    form.setField(name, orderInfo.getFreightCars());break;
-                case "Text3" :
-                    form.setField(name, String.valueOf(orderInfo.getAdvanceCharge() == null ? 0 : orderInfo.getAdvanceCharge()));break;
-                case "fill_6_2" :
-                    form.setField(name, hyDriverPayeeInfo.getBankCard());break;
-                case "fill_1_3" :
-                    form.setField(name, hyDriverPayeeInfo.getBankDeposit());break;
-                case "Text4" :
-                    form.setField(name, "甲方");break;
-                case "Text5" :
-                    form.setField(name, "甲方");break;
-                case "Text6" :
+            switch (name) {
+                case "fill_1":
+                    form.setField(name, "黑龙江畅运通物流供应链有限公司");
+                    break;
+                case "fill_2":
+                    form.setField(name, orderInfo1.getDriverName());
+                    break;
+                case "fill_3":
+                    form.setField(name, "91230229MABPEWQX94");
+                    break;
+                case "fill_4":
+                    form.setField(name, hyDriverInfo.getNumberCard());
+                    break;
+                case "fill_18":
+                    form.setField(name, orderInfo.getCarNumber() == null ? "" : orderInfo.getCarNumber());
+                    break;
+                case "fill_19":
+                    form.setField(name, orderInfo.getTrailerNumber() == null ? "" : orderInfo.getTrailerNumber());
+                    break;
+                case "fill_5":
+                    form.setField(name, owner);
+                    break;
+                case "fill_6":
+                    form.setField(name, start.get(Calendar.YEAR) + "");
+                    break;
+                case "fill_7":
+                    form.setField(name, start.get(Calendar.MONTH) + 1 + "");
+                    break;
+                case "fill_8":
+                    form.setField(name, start.get(Calendar.DAY_OF_MONTH) + "");
+                    break;
+                case "fill_9":
+                    form.setField(name, end.get(Calendar.YEAR) + "");
+                    break;
+                case "fill_10":
+                    form.setField(name, end.get(Calendar.MONTH) + 1 + "");
+                    break;
+                case "fill_11":
+                    form.setField(name, end.get(Calendar.DAY_OF_MONTH) + "");
+                    break;
+                case "fill_12":
+                    form.setField(name, publishTaskInfo.getSender());
+                    break;
+                case "fill_13":
+                    form.setField(name, publishTaskInfo.getSenderPhone());
+                    break;
+                case "fill_14":
+                    form.setField(name, publishTaskInfo.getReceiver());
+                    break;
+                case "fill_15":
+                    form.setField(name, publishTaskInfo.getReceiverPhone());
+                    break;
+                case "fill_16":
+                    form.setField(name, publishTaskInfo.getSendPrivate() + publishTaskInfo.getSendCity() + publishTaskInfo.getSendArea()
+                            + publishTaskInfo.getSendDetailedAddress());
+                    break;
+                case "fill_17":
+                    form.setField(name, publishTaskInfo.getUnloadPrivate() + publishTaskInfo.getUnloadCity() + publishTaskInfo.getUnloadArea()
+                            + publishTaskInfo.getUnloadDetailedAddress());
+                    break;
+                case "fill_1_2":
+                    form.setField(name, orderInfo1.getDriverName());
+                    break;
+                case "fill_2_2":
+                    form.setField(name, hyDriverInfo.getQuasiDrivingVehicle());
+                    break;
+                case "fill_3_2":
+                    form.setField(name, orderInfo1.getDriverPhone());
+                    break;
+                case "fill_4_2":
+                    form.setField(name, orderInfo.getContactPersonName() == null ? "" : orderInfo.getContactPersonName());
+                    break;
+                case "fill_5_2":
+                    form.setField(name, orderInfo.getContactPersonPhone() == null ? "" : orderInfo.getContactPersonPhone());
+                    break;
+                case "fill_7_2":
+                    form.setField(name, publishTaskInfo.getSendPrivate() + publishTaskInfo.getSendCity() + publishTaskInfo.getSendArea()
+                            + publishTaskInfo.getSendDetailedAddress());
+                    break;
+                case "fill_8_2":
+                    form.setField(name, publishTaskInfo.getUnloadPrivate() + publishTaskInfo.getUnloadCity() + publishTaskInfo.getUnloadArea()
+                            + publishTaskInfo.getUnloadDetailedAddress());
+                    break;
+                case "fill_9_2":
+                    form.setField(name, publishTaskInfo.getGoodsName());
+                    break;
+                case "Text1":
+                    form.setField(name, orderInfo.getFreightCars() == null ? "" : orderInfo.getFreightCars());
+                    break;
+                case "Text2":
+                    form.setField(name, orderInfo.getFreightCars() == null ? "" : orderInfo.getFreightCars());
+                    break;
+                case "Text3":
+                    form.setField(name, String.valueOf(orderInfo.getAdvanceCharge() == null ? 0 : orderInfo.getAdvanceCharge()));
+                    break;
+                case "fill_6_2":
+                    form.setField(name, hyDriverPayeeInfo.getBankCard());
+                    break;
+                case "fill_1_3":
+                    form.setField(name, hyDriverPayeeInfo.getBankDeposit());
+                    break;
+                case "Text4":
+                    form.setField(name, "甲方");
+                    break;
+                case "Text5":
+                    form.setField(name, "甲方");
+                    break;
+                case "Text6":
                     Image image1 = Image.getInstance(new URL("https://taohaoliang.oss-cn-beijing.aliyuncs.com/app/gongzhang.png"));
                     image1.scaleToFit(signRect.getWidth(), signRect.getHeight());
                     image1.setAbsolutePosition(x, y);
                     under.addImage(image1);
-                        break;
-                case "Text7" :
-                    form.setField(name, "辽宁省营口市鲅鱼圈区青龙山大街8号");break;
-                case "Text8" :
-                    form.setField(name, "4006688647");break;
-                case "Text12" :
-                    form.setField(name, now.get(Calendar.YEAR)+"");break;
-                case "Text13" :
-                    form.setField(name, now.get(Calendar.MONTH)+1+"");break;
-                case "Text14" :
-                    form.setField(name, now.get(Calendar.DAY_OF_MONTH)+"");break;
-                case "Text15" :
-                    if(orderInfo.getDriverAutograph() == null || orderInfo.getDriverAutograph().isEmpty()){
+                    break;
+                case "Text7":
+                    form.setField(name, "辽宁省营口市鲅鱼圈区青龙山大街8号");
+                    break;
+                case "Text8":
+                    form.setField(name, "4006688647");
+                    break;
+                case "Text12":
+                    form.setField(name, now.get(Calendar.YEAR) + "");
+                    break;
+                case "Text13":
+                    form.setField(name, now.get(Calendar.MONTH) + 1 + "");
+                    break;
+                case "Text14":
+                    form.setField(name, now.get(Calendar.DAY_OF_MONTH) + "");
+                    break;
+                case "Text15":
+                    if (orderInfo.getDriverAutograph() == null || orderInfo.getDriverAutograph().isEmpty()) {
                         break;
                     }
                     Image image3 = Image.getInstance(new URL(orderInfo.getDriverAutograph()));
                     image3.scaleToFit(signRect.getWidth(), signRect.getHeight());
                     image3.setAbsolutePosition(x, y);
                     under.addImage(image3);
-                        break;
-                case "Text16" :
-                    form.setField(name, hyDriverInfo.getPostalAddress());break;
-                case "Text17" :
-                    form.setField(name, orderInfo1.getDriverPhone());break;
-                case "Text18" :
-                    form.setField(name, now.get(Calendar.YEAR)+"");break;
-                case "Text19" :
-                    form.setField(name, now.get(Calendar.MONTH)+1+"");break;
-                case "Text20" :
-                    form.setField(name, now.get(Calendar.DAY_OF_MONTH)+"");break;
-                case "fill_1_4" :
-                    form.setField(name, "1");break;
-                case "fill_2_3" :
-                    form.setField(name, orderInfo1.getDriverName());break;
-                case "fill_3_3" :
-                    form.setField(name, hyDriverInfo.getDriverSex());break;
-                case "fill_4_3" :
-                    form.setField(name, hyDriverInfo.getNumberCard());break;
-                case "fill_5_3" :
-                    form.setField(name, hyDriverInfo.getQuasiDrivingVehicle());break;
-                case "fill_6_3" :
-                    form.setField(name, hyDriverCarInfo.getCarNumber());break;
+                    break;
+                case "Text16":
+                    form.setField(name, hyDriverInfo.getPostalAddress());
+                    break;
+                case "Text17":
+                    form.setField(name, orderInfo1.getDriverPhone());
+                    break;
+                case "Text18":
+                    form.setField(name, now.get(Calendar.YEAR) + "");
+                    break;
+                case "Text19":
+                    form.setField(name, now.get(Calendar.MONTH) + 1 + "");
+                    break;
+                case "Text20":
+                    form.setField(name, now.get(Calendar.DAY_OF_MONTH) + "");
+                    break;
+                case "fill_1_4":
+                    form.setField(name, "1");
+                    break;
+                case "fill_2_3":
+                    form.setField(name, orderInfo1.getDriverName());
+                    break;
+                case "fill_3_3":
+                    form.setField(name, hyDriverInfo.getDriverSex());
+                    break;
+                case "fill_4_3":
+                    form.setField(name, hyDriverInfo.getNumberCard());
+                    break;
+                case "fill_5_3":
+                    form.setField(name, hyDriverInfo.getQuasiDrivingVehicle());
+                    break;
+                case "fill_6_3":
+                    form.setField(name, orderInfo.getCarNumber() == null ? "" : orderInfo.getCarNumber());
+                    break;
 
             }
             //
@@ -273,21 +334,21 @@ public class PdfUtil  implements InitializingBean{
 
         FileInputStream fileInputStream = new FileInputStream(file1);
 
-        MultipartFile multipartFile = new MockMultipartFile( ContentType.APPLICATION_OCTET_STREAM.toString(), fileInputStream);
+        MultipartFile multipartFile = new MockMultipartFile(ContentType.APPLICATION_OCTET_STREAM.toString(), fileInputStream);
         return this.upload(multipartFile);
     }
 
-    public  String transactionContract(OrderInfo orderInfo) throws IOException, DocumentException, URISyntaxException {//利用模板生成pdf
+    public String transactionContract(OrderInfo orderInfo) throws IOException, DocumentException, URISyntaxException {//利用模板生成pdf
         //订单信息
         OrderInfo orderInfo1 = orderInfoService.selectById(orderInfo.getId());
         //查询司机信息
-        HyDriverInfo hyDriverInfo = driverInfoService.selectOne(new EntityWrapper<HyDriverInfo>().eq("common_id",orderInfo1.getCommonId())
-                .eq("delete_flag","0"));
+        HyDriverInfo hyDriverInfo = driverInfoService.selectOne(new EntityWrapper<HyDriverInfo>().eq("common_id", orderInfo1.getCommonId())
+                .eq("delete_flag", "0"));
         HyDriverPayeeInfo hyDriverPayeeInfo = driverPayeeInfoService.selectOne(new EntityWrapper<HyDriverPayeeInfo>().eq("driver_id", hyDriverInfo.getId())
-                .eq("delete_flag","0"));
+                .eq("delete_flag", "0"));
         //任务信息
-        PublishTaskInfo publishTaskInfo = publishTaskInfoService.selectOne(new EntityWrapper<PublishTaskInfo>().eq("id",orderInfo1.getTaskId())
-                .eq("delete_flag","0"));
+        PublishTaskInfo publishTaskInfo = publishTaskInfoService.selectOne(new EntityWrapper<PublishTaskInfo>().eq("id", orderInfo1.getTaskId())
+                .eq("delete_flag", "0"));
 
 
         //模板路径
@@ -299,14 +360,14 @@ public class PdfUtil  implements InitializingBean{
         ByteArrayOutputStream bos;
         PdfStamper stamper;
         System.out.println("pdfUtil start");
-        File file = new File( new String(pdfTmp.getBytes(StandardCharsets.UTF_8), StandardCharsets.UTF_8));
-        File file1 = new File( new String(newPDFPath.getBytes(StandardCharsets.UTF_8), StandardCharsets.UTF_8));
+        File file = new File(new String(pdfTmp.getBytes(StandardCharsets.UTF_8), StandardCharsets.UTF_8));
+        File file1 = new File(new String(newPDFPath.getBytes(StandardCharsets.UTF_8), StandardCharsets.UTF_8));
         System.out.println(file.getAbsolutePath());
         System.out.println(file1.getAbsolutePath());
-        if(!file.exists()){
+        if (!file.exists()) {
             System.out.println("pdfUtil file not exists");
         }
-        if(!file1.exists()){
+        if (!file1.exists()) {
             System.out.println("pdfUtil file1 not exists");
         }
         out = new FileOutputStream(file1.getAbsoluteFile());//输出流
@@ -317,15 +378,15 @@ public class PdfUtil  implements InitializingBean{
         stamper = new PdfStamper(reader, bos);
         AcroFields form = stamper.getAcroFields();
         Iterator<String> it = form.getFields().keySet().iterator();
-        Calendar start= Calendar.getInstance();
+        Calendar start = Calendar.getInstance();
         start.setTime(orderInfo1.getCreateDate());
-        Calendar end= Calendar.getInstance();
+        Calendar end = Calendar.getInstance();
         end.setTime(orderInfo1.getCreateDate());
-        Calendar now= Calendar.getInstance();
+        Calendar now = Calendar.getInstance();
         now.setTime(new Date());
         float fontSize = 12f;
         String font_cn = getChineseFont();
-        BaseFont bf = BaseFont.createFont(font_cn+",0",
+        BaseFont bf = BaseFont.createFont(font_cn + ",0",
                 BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
         while (it.hasNext()) {
             String name = it.next().toString();
@@ -340,93 +401,129 @@ public class PdfUtil  implements InitializingBean{
 //            BaseFont bf =BaseFont.createFont("STSong-Light", BaseFont.CP1250,BaseFont.NOT_EMBEDDED);
             arrayList.add(bf);
             form.setSubstitutionFonts(arrayList);
-            form.setFieldProperty(name,"textsize",9f,null);
+            form.setFieldProperty(name, "textsize", 9f, null);
             //填写内容部分
-            switch (name){
-                case "fill_1" :
-                    form.setField(name, "黑龙江中天昊元贸易有限公司");break;
-                case "fill_2" :
-                    form.setField(name, orderInfo1.getDriverName());break;
-                case "fill_3" :
-                    form.setField(name, "91230230MA1BNL7Q93");break;
-                case "fill_4" :
-                    form.setField(name, hyDriverInfo.getNumberCard());break;
-                case "fill_6" :
-                    form.setField(name, start.get(Calendar.YEAR)+"");break;
-                case "fill_7" :
-                    form.setField(name, start.get(Calendar.MONTH)+1+"");break;
-                case "fill_8" :
-                    form.setField(name, start.get(Calendar.DAY_OF_MONTH)+"");break;
-                case "fill_9" :
-                    form.setField(name, end.get(Calendar.YEAR)+"");break;
-                case "fill_10" :
-                    form.setField(name, end.get(Calendar.MONTH)+1+"");break;
-                case "fill_11" :
-                    form.setField(name, end.get(Calendar.DAY_OF_MONTH)+"");break;
-                case "fill_12" :
-                    form.setField(name, publishTaskInfo.getSender());break;
-                case "fill_13" :
-                    form.setField(name, publishTaskInfo.getSenderPhone());break;
-                case "fill_14" :
-                    form.setField(name, publishTaskInfo.getReceiver());break;
-                case "fill_15" :
-                    form.setField(name, publishTaskInfo.getReceiverPhone());break;
-                case "fill_16" :
-                    form.setField(name, publishTaskInfo.getSendPrivate()+publishTaskInfo.getSendCity()+publishTaskInfo.getSendArea()
-                            +publishTaskInfo.getSendDetailedAddress());break;
-                case "fill_17" :
-                    form.setField(name, publishTaskInfo.getUnloadPrivate()+publishTaskInfo.getUnloadCity()+publishTaskInfo.getUnloadArea()
-                            +publishTaskInfo.getUnloadDetailedAddress());break;
-                case "fill_1_2" :
-                    form.setField(name, orderInfo1.getDriverName());break;
-                case "fill_2_2" :
-                    form.setField(name, hyDriverInfo.getQuasiDrivingVehicle());break;
-                case "fill_3_2" :
-                    form.setField(name, orderInfo1.getDriverPhone());break;
-                case "fill_4_2" :
-                    form.setField(name, orderInfo.getContactPersonName());break;
-                case "fill_5_2" :
-                    form.setField(name, orderInfo.getContactPersonPhone());break;
-                case "fill_7_2" :
-                    form.setField(name, publishTaskInfo.getSendPrivate()+publishTaskInfo.getSendCity()+publishTaskInfo.getSendArea()
-                            +publishTaskInfo.getSendDetailedAddress());break;
-                case "fill_8_2" :
-                    form.setField(name, publishTaskInfo.getUnloadPrivate()+publishTaskInfo.getUnloadCity()+publishTaskInfo.getUnloadArea()
-                            +publishTaskInfo.getUnloadDetailedAddress());break;
-                case "fill_9_2" :
-                    form.setField(name, publishTaskInfo.getGoodsName());break;
-                case "Text1" :
-                    form.setField(name, orderInfo.getFreightCars());break;
-                case "Text2" :
-                    form.setField(name, orderInfo.getFreightCars());break;
-                case "Text3" :
-                    form.setField(name, String.valueOf(orderInfo.getAdvanceCharge() == null ? 0 : orderInfo.getAdvanceCharge()));break;
-                case "fill_6_2" :
-                    form.setField(name, hyDriverPayeeInfo.getBankCard());break;
-                case "fill_1_3" :
-                    form.setField(name, hyDriverPayeeInfo.getBankDeposit());break;
-                case "Text4" :
-                    form.setField(name, "甲方");break;
-                case "Text5" :
-                    form.setField(name, "甲方");break;
-                case "Text6" :
+            switch (name) {
+                case "fill_1":
+                    form.setField(name, "黑龙江中天昊元贸易有限公司");
+                    break;
+                case "fill_2":
+                    form.setField(name, orderInfo1.getDriverName());
+                    break;
+                case "fill_3":
+                    form.setField(name, "91230230MA1BNL7Q93");
+                    break;
+                case "fill_4":
+                    form.setField(name, hyDriverInfo.getNumberCard());
+                    break;
+                case "fill_6":
+                    form.setField(name, start.get(Calendar.YEAR) + "");
+                    break;
+                case "fill_7":
+                    form.setField(name, start.get(Calendar.MONTH) + 1 + "");
+                    break;
+                case "fill_8":
+                    form.setField(name, start.get(Calendar.DAY_OF_MONTH) + "");
+                    break;
+                case "fill_9":
+                    form.setField(name, end.get(Calendar.YEAR) + "");
+                    break;
+                case "fill_10":
+                    form.setField(name, end.get(Calendar.MONTH) + 1 + "");
+                    break;
+                case "fill_11":
+                    form.setField(name, end.get(Calendar.DAY_OF_MONTH) + "");
+                    break;
+                case "fill_12":
+                    form.setField(name, publishTaskInfo.getSender());
+                    break;
+                case "fill_13":
+                    form.setField(name, publishTaskInfo.getSenderPhone());
+                    break;
+                case "fill_14":
+                    form.setField(name, publishTaskInfo.getReceiver());
+                    break;
+                case "fill_15":
+                    form.setField(name, publishTaskInfo.getReceiverPhone());
+                    break;
+                case "fill_16":
+                    form.setField(name, publishTaskInfo.getSendPrivate() + publishTaskInfo.getSendCity() + publishTaskInfo.getSendArea()
+                            + publishTaskInfo.getSendDetailedAddress());
+                    break;
+                case "fill_17":
+                    form.setField(name, publishTaskInfo.getUnloadPrivate() + publishTaskInfo.getUnloadCity() + publishTaskInfo.getUnloadArea()
+                            + publishTaskInfo.getUnloadDetailedAddress());
+                    break;
+                case "fill_1_2":
+                    form.setField(name, orderInfo1.getDriverName());
+                    break;
+                case "fill_2_2":
+                    form.setField(name, hyDriverInfo.getQuasiDrivingVehicle());
+                    break;
+                case "fill_3_2":
+                    form.setField(name, orderInfo1.getDriverPhone());
+                    break;
+                case "fill_4_2":
+                    form.setField(name, orderInfo.getContactPersonName());
+                    break;
+                case "fill_5_2":
+                    form.setField(name, orderInfo.getContactPersonPhone());
+                    break;
+                case "fill_7_2":
+                    form.setField(name, publishTaskInfo.getSendPrivate() + publishTaskInfo.getSendCity() + publishTaskInfo.getSendArea()
+                            + publishTaskInfo.getSendDetailedAddress());
+                    break;
+                case "fill_8_2":
+                    form.setField(name, publishTaskInfo.getUnloadPrivate() + publishTaskInfo.getUnloadCity() + publishTaskInfo.getUnloadArea()
+                            + publishTaskInfo.getUnloadDetailedAddress());
+                    break;
+                case "fill_9_2":
+                    form.setField(name, publishTaskInfo.getGoodsName());
+                    break;
+                case "Text1":
+                    form.setField(name, orderInfo.getFreightCars());
+                    break;
+                case "Text2":
+                    form.setField(name, orderInfo.getFreightCars());
+                    break;
+                case "Text3":
+                    form.setField(name, String.valueOf(orderInfo.getAdvanceCharge() == null ? 0 : orderInfo.getAdvanceCharge()));
+                    break;
+                case "fill_6_2":
+                    form.setField(name, hyDriverPayeeInfo.getBankCard());
+                    break;
+                case "fill_1_3":
+                    form.setField(name, hyDriverPayeeInfo.getBankDeposit());
+                    break;
+                case "Text4":
+                    form.setField(name, "甲方");
+                    break;
+                case "Text5":
+                    form.setField(name, "甲方");
+                    break;
+                case "Text6":
                     Image image1 = Image.getInstance(new URL("https://taohaoliang.oss-cn-beijing.aliyuncs.com/app/gongzhang.png"));
                     image1.scaleToFit(signRect.getWidth(), signRect.getHeight());
                     image1.setAbsolutePosition(x, y);
                     under.addImage(image1);
                     break;
-                case "Text7" :
-                    form.setField(name, "辽宁省营口市鲅鱼圈区青龙山大街8号");break;
-                case "Text8" :
-                    form.setField(name, "4006688647");break;
-                case "Text12" :
-                    form.setField(name, now.get(Calendar.YEAR)+"");break;
-                case "Text13" :
-                    form.setField(name, now.get(Calendar.MONTH)+1+"");break;
-                case "Text14" :
-                    form.setField(name, now.get(Calendar.DAY_OF_MONTH)+"");break;
-                case "Text15" :
-                    if(orderInfo.getDriverAutograph() == null || orderInfo.getDriverAutograph().isEmpty()){
+                case "Text7":
+                    form.setField(name, "辽宁省营口市鲅鱼圈区青龙山大街8号");
+                    break;
+                case "Text8":
+                    form.setField(name, "4006688647");
+                    break;
+                case "Text12":
+                    form.setField(name, now.get(Calendar.YEAR) + "");
+                    break;
+                case "Text13":
+                    form.setField(name, now.get(Calendar.MONTH) + 1 + "");
+                    break;
+                case "Text14":
+                    form.setField(name, now.get(Calendar.DAY_OF_MONTH) + "");
+                    break;
+                case "Text15":
+                    if (orderInfo.getDriverAutograph() == null || orderInfo.getDriverAutograph().isEmpty()) {
                         break;
                     }
                     Image image3 = Image.getInstance(new URL(orderInfo.getDriverAutograph()));
@@ -434,26 +531,36 @@ public class PdfUtil  implements InitializingBean{
                     image3.setAbsolutePosition(x, y);
                     under.addImage(image3);
                     break;
-                case "Text16" :
-                    form.setField(name, hyDriverInfo.getPostalAddress());break;
-                case "Text17" :
-                    form.setField(name, orderInfo1.getDriverPhone());break;
-                case "Text18" :
-                    form.setField(name, now.get(Calendar.YEAR)+"");break;
-                case "Text19" :
-                    form.setField(name, now.get(Calendar.MONTH)+1+"");break;
-                case "Text20" :
-                    form.setField(name, now.get(Calendar.DAY_OF_MONTH)+"");break;
-                case "fill_1_4" :
-                    form.setField(name, "1");break;
-                case "fill_2_3" :
-                    form.setField(name, orderInfo1.getDriverName());break;
-                case "fill_3_3" :
-                    form.setField(name, hyDriverInfo.getDriverSex());break;
-                case "fill_4_3" :
-                    form.setField(name, hyDriverInfo.getNumberCard());break;
-                case "fill_5_3" :
-                    form.setField(name, hyDriverInfo.getQuasiDrivingVehicle());break;
+                case "Text16":
+                    form.setField(name, hyDriverInfo.getPostalAddress());
+                    break;
+                case "Text17":
+                    form.setField(name, orderInfo1.getDriverPhone());
+                    break;
+                case "Text18":
+                    form.setField(name, now.get(Calendar.YEAR) + "");
+                    break;
+                case "Text19":
+                    form.setField(name, now.get(Calendar.MONTH) + 1 + "");
+                    break;
+                case "Text20":
+                    form.setField(name, now.get(Calendar.DAY_OF_MONTH) + "");
+                    break;
+                case "fill_1_4":
+                    form.setField(name, "1");
+                    break;
+                case "fill_2_3":
+                    form.setField(name, orderInfo1.getDriverName());
+                    break;
+                case "fill_3_3":
+                    form.setField(name, hyDriverInfo.getDriverSex());
+                    break;
+                case "fill_4_3":
+                    form.setField(name, hyDriverInfo.getNumberCard());
+                    break;
+                case "fill_5_3":
+                    form.setField(name, hyDriverInfo.getQuasiDrivingVehicle());
+                    break;
 
             }
             //
@@ -490,12 +597,13 @@ public class PdfUtil  implements InitializingBean{
 
         FileInputStream fileInputStream = new FileInputStream(file1);
 
-        MultipartFile multipartFile = new MockMultipartFile( ContentType.APPLICATION_OCTET_STREAM.toString(), fileInputStream);
+        MultipartFile multipartFile = new MockMultipartFile(ContentType.APPLICATION_OCTET_STREAM.toString(), fileInputStream);
         return this.upload(multipartFile);
     }
 
     /**
      * 后台通过服务器间接传文件
+     *
      * @param file
      * @return
      * @throws IOException
@@ -506,16 +614,18 @@ public class PdfUtil  implements InitializingBean{
         objectMetadata.setContentType(file.getContentType());
 //        String ext = FilenameUtils.getExtension(file.getOriginalFilename());
         String uuid = GeneratorUtil.genFileName();
-        PutObjectRequest putObjectRequest = new PutObjectRequest(bucket, "contractPdf/" + uuid+".pdf", file.getInputStream(), objectMetadata);
+        PutObjectRequest putObjectRequest = new PutObjectRequest(bucket, "contractPdf/" + uuid + ".pdf", file.getInputStream(), objectMetadata);
         ossClient.putObject(putObjectRequest);
-        return baseUrl + "contractPdf/" + uuid +".pdf";
+        return baseUrl + "contractPdf/" + uuid + ".pdf";
     }
+
     /**
      * 获取中文字体位置
+     *
      * @return
-     *  @author xxj 2017年4月28日
+     * @author xxj 2017年4月28日
      */
-    private String getChineseFont(){
+    private String getChineseFont() {
 
         //宋体(对应css中的 属性 font-family: SimSun; /*宋体*/)
         String font1 = "templates" + File.separator + "msyh.ttc";
@@ -524,11 +634,11 @@ public class PdfUtil  implements InitializingBean{
         Properties prop = System.getProperties();
         String osName = prop.getProperty("os.name").toLowerCase();
         System.out.println(osName);
-        if (osName.indexOf("linux")>-1) {
-            font1="/usr/share/fonts/chinese/simsun.ttc";
+        if (osName.indexOf("linux") > -1) {
+            font1 = "/usr/share/fonts/chinese/simsun.ttc";
         }
-        if(!new File(font1).exists()){
-            throw new RuntimeException("字体文件不存在,影响导出pdf中文显示!"+font1);
+        if (!new File(font1).exists()) {
+            throw new RuntimeException("字体文件不存在,影响导出pdf中文显示!" + font1);
         }
         return font1;
     }