Bläddra i källkod

单证最近调整

huxy 1 månad sedan
förälder
incheckning
5a02f00384
14 ändrade filer med 533 tillägg och 197 borttagningar
  1. 4 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/cost/entity/SyCostAllocation.java
  2. 5 5
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/cost/mapper/xml/SyCostAllocationMapper.xml
  3. 149 59
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/cost/service/impl/SyCostAllocationServiceImpl.java
  4. 19 34
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/shippingDetails/controller/SyShippingDetailsController.java
  5. 2 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/shippingDetails/entity/VO/SyShippingDetailsVo.java
  6. 2 3
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/syShippingOrder/controller/SyShippingOrderController.java
  7. 1 1
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/syShippingOrder/mapper/xml/SyShippingOrderMapper.xml
  8. 118 1
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/controller/SyPackingListFabricController.java
  9. 4 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/entity/SyPackingListFabric.java
  10. 2 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/service/ISyPackingListFabricService.java
  11. 21 21
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/service/impl/SyPackingListFabricServiceImpl.java
  12. 114 1
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/controller/SyPackingListTailoringController.java
  13. 2 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/service/ISyPackingListTailoringService.java
  14. 90 72
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/service/impl/SyPackingListTailoringServiceImpl.java

+ 4 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/cost/entity/SyCostAllocation.java

@@ -274,6 +274,10 @@ public class SyCostAllocation implements Serializable {
     @TableField(exist = false)
     private String signNumUS;
 
+    //账套
+    @TableField(exist = false)
+    private String account;
+
     //标识
     @TableField(exist = false)
     private String usType;

+ 5 - 5
jeecg-boot-module-system/src/main/java/org/jeecg/modules/cost/mapper/xml/SyCostAllocationMapper.xml

@@ -585,9 +585,9 @@
 
     <select id="queryPurBillVouchByFabric" resultType="org.jeecg.modules.cost.entity.SyCostAllocation">
 
-         select  t.cInvName,exchangeRate,hl2 exchangeRate2,
+         select  t.account,t.cInvName,exchangeRate,hl2 exchangeRate2,
         sum(t.iOriSum) as fabriccostIncludestax,sum(t.iNotOriMoney) as fabriccostNotincludestax, sum(t.cExchRate) as fabriccostIncludestaxUsd,sum(t.invoiceQuantity) as invoiceQuantity from (
-        select omi.cInvName as cInvName,max(pb.cExchRate) exchangeRate,max(pm.nflat)hl2,
+        select 101 account,omi.cInvName as cInvName,max(pb.cExchRate) exchangeRate,max(pm.nflat)hl2,
         /*人民币含税金额取本币含税金额*/
         SUM(pbs.iSum) as iOriSum,
         /*人民币不含税金额 美元税率设置为0*/
@@ -608,7 +608,7 @@
         group by omi.cInvName
         UNION ALL
 
-        select omi.cInvName as cInvName,max(pb.cExchRate) exchangeRate,max(pm.nflat)hl2,
+        select 102 account,omi.cInvName as cInvName,max(pb.cExchRate) exchangeRate,max(pm.nflat)hl2,
         /*人民币含税金额*/
         SUM(pbs.iSum) as iOriSum,
         /*人民币不含税金额 美元税率设置为0*/
@@ -627,7 +627,7 @@
         and omi.cInvCCode != '07'and omi.cInvCCode != '06'and omi.cInvCCode != '05' and pb.cVenCode not in('T010001','T020001')
         group by omi.cInvName
         UNION ALL
-        select omi.cInvName as cInvName,max(pb.cExchRate) exchangeRate,max(pm.nflat)hl2,
+        select 103 account,omi.cInvName as cInvName,max(pb.cExchRate) exchangeRate,max(pm.nflat)hl2,
         /*人民币含税金额*/
         SUM(pbs.iSum) as iOriSum,
         /*人民币不含税金额 美元税率设置为0*/
@@ -645,7 +645,7 @@
         where pm.cPOID like CONCAT('%',#{code},'%') and (omi.cInvCcode like '03%' or omi.cInvCcode like '04%') and omi.cInvCCode != '0399' and omi.cInvCCode != '0499' and omi.cInvCCode != '0299'
         and omi.cInvCCode != '07'and omi.cInvCCode != '06'and omi.cInvCCode != '05' and pb.cVenCode not in('T010001','T020001')
         group by omi.cInvName
-        ) t where t.iOriSum is not null group by t.cInvName,exchangeRate,hl2
+        ) t where t.iOriSum is not null group by t.cInvName,exchangeRate,hl2,account
     </select>
 
     <select id="querySalerIauantity" resultType="org.jeecg.modules.cost.entity.SyCostAllocation">

+ 149 - 59
jeecg-boot-module-system/src/main/java/org/jeecg/modules/cost/service/impl/SyCostAllocationServiceImpl.java

@@ -483,6 +483,15 @@ public class SyCostAllocationServiceImpl extends ServiceImpl<SyCostAllocationMap
 //        if (syLossReport1 == null){
         //根据计划号查找该计划号下所有采购发票含税金额和不含税金额(不含税金额 = 含税金额/1.13)
         List<SyCostAllocation> fabriccostIncludestax = syCostAllocationMapper.queryPurBillVouchByFabric(plannum);
+        List<SyCostAllocation> fabriccostIncludestax1=new ArrayList<>();//103
+        List<SyCostAllocation> fabriccostIncludestax2=new ArrayList<>();//101/102
+        fabriccostIncludestax.forEach(f->{
+            if (f.getAccount().equals("103")){
+                fabriccostIncludestax1.add(f);
+            }else{
+                fabriccostIncludestax2.add(f);
+            }
+        });
         //合计面料含税成本人名币
         BigDecimal usageQuantityTotal = BigDecimal.ZERO;
         //合计面料不含税成本人名币
@@ -509,51 +518,52 @@ public class SyCostAllocationServiceImpl extends ServiceImpl<SyCostAllocationMap
         if((syCostAllocation.getFabriccostIncludestaxUsd()==null|| syCostAllocation.getFabriccostIncludestaxUsd().compareTo(new BigDecimal("0"))==0 ||orderType.equals("国外加工单"))
                 && /*syCostAllocation.getFabriccostIncludestaxUsd()==null*/ fabriccostIncludestax!=null){
             if(fabriccostIncludestax.size()!=0){
-                for(SyCostAllocation str : fabriccostIncludestax){
-                    if (str.getExchangeRate().compareTo(str.getExchangeRate2())!=0){
-                        signNumUS="us";
-                    }
-                    System.out.println("美元\t"+signNumUS);
-                    for(SyCostAllocationFabric li:list3){
-                        String goodsName=li.getGoodsName();
-                        if (goodsName.indexOf("--")!=-1){
-                            goodsName=goodsName.substring(0,goodsName.indexOf("--"));
+                if (syCostAllocation.getFabriccostIncludestaxUsd()==null){
+                    for(SyCostAllocation str : fabriccostIncludestax){
+                        if (str.getExchangeRate().compareTo(str.getExchangeRate2())!=0){
+                            signNumUS="us";
                         }
-                        if(str.getCInvName().equals(goodsName)){
-                            BigDecimal quantity=li.getUsageQuantity();
-                            if (li.getFabrictransferQuantity()!=null){
-                                quantity=li.getUsageQuantity().subtract(li.getFabrictransferQuantity());
+                        System.out.println("美元\t"+signNumUS);
+                        for(SyCostAllocationFabric li:list3){
+                            String goodsName=li.getGoodsName();
+                            if (goodsName.indexOf("--")!=-1){
+                                goodsName=goodsName.substring(0,goodsName.indexOf("--"));
                             }
-                            //-- fabriccostincludestax=面料含税成本 fabriccostNotincludestax=面料不含税成本
+                            if(str.getCInvName().equals(goodsName)){
+                                BigDecimal quantity=li.getUsageQuantity();
+                                if (li.getFabrictransferQuantity()!=null){
+                                    quantity=li.getUsageQuantity().subtract(li.getFabrictransferQuantity());
+                                }
+                                //-- fabriccostincludestax=面料含税成本 fabriccostNotincludestax=面料不含税成本
 //                        System.out.println("getFabriccostIncludestax "+str.getFabriccostIncludestax()+" getFabriccostNotincludestax "+str.getFabriccostNotincludestax()
 //                                +"getFabriccostIncludestaxUsd"+str.getFabriccostIncludestaxUsd()+" getInvoiceQuantity "+str.getInvoiceQuantity()+" quantity "+quantity);
-                            if (str.getInvoiceQuantity().compareTo(quantity)!=0){
-                                exchangeRate=str.getExchangeRate();//汇率
-                                BigDecimal money = str.getFabriccostIncludestax().divide(str.getInvoiceQuantity(),2,BigDecimal.ROUND_HALF_UP);
-                                BigDecimal num = money.multiply(str.getInvoiceQuantity());
-                                usageQuantityTotal = usageQuantityTotal.add(num);
-                                System.out.println("str\t"+str);
-                                System.out.println("str.getFabriccostIncludestax()\t"+str.getFabriccostIncludestax());
-                                System.out.println("str.getFabriccostNotincludestax()\t"+str.getFabriccostNotincludestax());
-                                System.out.println("money\t"+money);
-                                System.out.println("getInvoiceQuantity\t"+str.getInvoiceQuantity());
-                                System.out.println("quantity\t"+quantity);
-                                System.out.println("num\t"+num);
-                                BigDecimal money1 = str.getFabriccostNotincludestax().divide(str.getInvoiceQuantity(),2,BigDecimal.ROUND_HALF_UP);
-                                BigDecimal num1 = money1.multiply(quantity);
-                                notincludestaxTotal = notincludestaxTotal.add(num1);
+                                if (str.getInvoiceQuantity().compareTo(quantity)!=0){
+                                    exchangeRate=str.getExchangeRate();//汇率
+                                    BigDecimal money = str.getFabriccostIncludestax().divide(str.getInvoiceQuantity(),2,BigDecimal.ROUND_HALF_UP);
+                                    BigDecimal num = money.multiply(str.getInvoiceQuantity());
+                                    usageQuantityTotal = usageQuantityTotal.add(num);
+                                    System.out.println("str\t"+str);
+                                    System.out.println("str.getFabriccostIncludestax()\t"+str.getFabriccostIncludestax());
+                                    System.out.println("str.getFabriccostNotincludestax()\t"+str.getFabriccostNotincludestax());
+                                    System.out.println("money\t"+money);
+                                    System.out.println("getInvoiceQuantity\t"+str.getInvoiceQuantity());
+                                    System.out.println("quantity\t"+quantity);
+                                    System.out.println("num\t"+num);
+                                    BigDecimal money1 = str.getFabriccostNotincludestax().divide(str.getInvoiceQuantity(),2,BigDecimal.ROUND_HALF_UP);
+                                    BigDecimal num1 = money1.multiply(quantity);
+                                    notincludestaxTotal = notincludestaxTotal.add(num1);
 //                                notincludestaxTotal = notincludestaxTotal.add(str.getFabriccostIncludestax());
-                                System.out.println("notincludestaxTotal1\t"+notincludestaxTotal);
-                                BigDecimal money2 = str.getFabriccostIncludestaxUsd().divide(str.getInvoiceQuantity(),2,BigDecimal.ROUND_HALF_UP);
-                                BigDecimal num2 = money2.multiply(quantity);
-                                includestaxTotal = includestaxTotal.add(num2);
-                            }else{
-                                usageQuantityTotal = usageQuantityTotal.add(str.getFabriccostIncludestax());
-                                notincludestaxTotal = notincludestaxTotal.add(str.getFabriccostNotincludestax());
-                                System.out.println("notincludestaxTotal2\t"+notincludestaxTotal);
-                                includestaxTotal = includestaxTotal.add(str.getFabriccostIncludestaxUsd());
-                            }
-                            System.out.println(" getInvoiceQuantity "+str.getInvoiceQuantity()+" quantity "+quantity);
+                                    System.out.println("notincludestaxTotal1\t"+notincludestaxTotal);
+                                    BigDecimal money2 = str.getFabriccostIncludestaxUsd().divide(str.getInvoiceQuantity(),2,BigDecimal.ROUND_HALF_UP);
+                                    BigDecimal num2 = money2.multiply(quantity);
+                                    includestaxTotal = includestaxTotal.add(num2);
+                                }else{
+                                    usageQuantityTotal = usageQuantityTotal.add(str.getFabriccostIncludestax());
+                                    notincludestaxTotal = notincludestaxTotal.add(str.getFabriccostNotincludestax());
+                                    System.out.println("notincludestaxTotal2\t"+notincludestaxTotal);
+                                    includestaxTotal = includestaxTotal.add(str.getFabriccostIncludestaxUsd());
+                                }
+                                System.out.println(" getInvoiceQuantity "+str.getInvoiceQuantity()+" quantity "+quantity);
 //                            BigDecimal money = str.getFabriccostIncludestax().divide(str.getInvoiceQuantity(),2,BigDecimal.ROUND_HALF_UP);
 //                            BigDecimal num = money.multiply(li.getUsageQuantity());
 //                            usageQuantityTotal = usageQuantityTotal.add(num);
@@ -564,31 +574,111 @@ public class SyCostAllocationServiceImpl extends ServiceImpl<SyCostAllocationMap
 //                            BigDecimal money2 = str.getFabriccostIncludestaxUsd().divide(str.getInvoiceQuantity(),2,BigDecimal.ROUND_HALF_UP);
 //                            BigDecimal num2 = money2.multiply(li.getUsageQuantity());
 //                            includestaxTotal = includestaxTotal.add(num2);
-                            //(发票金额/发票数量)*使用数量
+                                //(发票金额/发票数量)*使用数量
 //                            System.out.println("面料含税成本\t"+usageQuantityTotal+"\t面料不含税成本\t"+notincludestaxTotal+"\t发票数量\t"+str.getInvoiceQuantity()+"\t使用数量\t"+li.getUsageQuantity());
+                            }
                         }
                     }
-                }
 //                System.out.println("面料含税人民币2\t"+usageQuantityTotal.setScale(2,BigDecimal.ROUND_HALF_UP));
 //                System.out.println("实际总金额2\t"+usageQuantityTotal);
-                System.out.println("人民币面料成本notincludestaxTotal\t"+notincludestaxTotal);
-                if (syCostAllocation.getFabriccostIncludestax()!=null){
-                    syCostAllocation.setFabriccostIncludestax(syCostAllocation.getFabriccostIncludestax().add(usageQuantityTotal.setScale(2,BigDecimal.ROUND_HALF_UP)));
-                }else{
-                    syCostAllocation.setFabriccostIncludestax(usageQuantityTotal.setScale(2,BigDecimal.ROUND_HALF_UP));
-                }
-                System.out.println("人民币面料成本1\t"+syCostAllocation.getFabriccostNotincludestax());
-                if (syCostAllocation.getFabriccostNotincludestax()!=null){
-                    syCostAllocation.setFabriccostNotincludestax(syCostAllocation.getFabriccostNotincludestax().add(notincludestaxTotal));
-                }else{
-                    syCostAllocation.setFabriccostNotincludestax(notincludestaxTotal);
-                }
-                System.out.println("人民币面料成本2\t"+syCostAllocation.getFabriccostNotincludestax());
-                System.out.println("includestaxTotal\t"+includestaxTotal+"  getFabriccostIncludestaxUsd  "+syCostAllocation.getFabriccostIncludestaxUsd());
-                if (syCostAllocation.getFabriccostIncludestaxUsd()!=null){
-                    syCostAllocation.setFabriccostIncludestaxUsd(syCostAllocation.getFabriccostIncludestaxUsd().add(includestaxTotal));
+                    System.out.println("人民币面料成本notincludestaxTotal\t"+notincludestaxTotal);
+                    if (syCostAllocation.getFabriccostIncludestax()!=null){
+                        syCostAllocation.setFabriccostIncludestax(syCostAllocation.getFabriccostIncludestax().add(usageQuantityTotal.setScale(2,BigDecimal.ROUND_HALF_UP)));
+                    }else{
+                        syCostAllocation.setFabriccostIncludestax(usageQuantityTotal.setScale(2,BigDecimal.ROUND_HALF_UP));
+                    }
+                    System.out.println("人民币面料成本1\t"+syCostAllocation.getFabriccostNotincludestax());
+                    if (syCostAllocation.getFabriccostNotincludestax()!=null){
+                        syCostAllocation.setFabriccostNotincludestax(syCostAllocation.getFabriccostNotincludestax().add(notincludestaxTotal));
+                    }else{
+                        syCostAllocation.setFabriccostNotincludestax(notincludestaxTotal);
+                    }
+                    System.out.println("人民币面料成本2\t"+syCostAllocation.getFabriccostNotincludestax());
+                    System.out.println("includestaxTotal\t"+includestaxTotal+"  getFabriccostIncludestaxUsd  "+syCostAllocation.getFabriccostIncludestaxUsd());
+                    if (syCostAllocation.getFabriccostIncludestaxUsd()!=null){
+                        syCostAllocation.setFabriccostIncludestaxUsd(syCostAllocation.getFabriccostIncludestaxUsd().add(includestaxTotal));
+                    }else{
+                        syCostAllocation.setFabriccostIncludestaxUsd(includestaxTotal);
+                    }
                 }else{
-                    syCostAllocation.setFabriccostIncludestaxUsd(includestaxTotal);
+                    for(SyCostAllocation str : fabriccostIncludestax2){
+                        if (str.getExchangeRate().compareTo(str.getExchangeRate2())!=0){
+                            signNumUS="us";
+                        }
+                        System.out.println("美元\t"+signNumUS);
+                        for(SyCostAllocationFabric li:list3){
+                            String goodsName=li.getGoodsName();
+                            if (goodsName.indexOf("--")!=-1){
+                                goodsName=goodsName.substring(0,goodsName.indexOf("--"));
+                            }
+                            if(str.getCInvName().equals(goodsName)){
+                                BigDecimal quantity=li.getUsageQuantity();
+                                if (li.getFabrictransferQuantity()!=null){
+                                    quantity=li.getUsageQuantity().subtract(li.getFabrictransferQuantity());
+                                }
+                                if (str.getInvoiceQuantity().compareTo(quantity)!=0){
+                                    exchangeRate=str.getExchangeRate();//汇率
+                                    BigDecimal money = str.getFabriccostIncludestax().divide(str.getInvoiceQuantity(),2,BigDecimal.ROUND_HALF_UP);
+                                    BigDecimal num = money.multiply(str.getInvoiceQuantity());
+                                    usageQuantityTotal = usageQuantityTotal.add(num);
+                                    System.out.println("str\t"+str);
+                                    System.out.println("str.getFabriccostIncludestax()\t"+str.getFabriccostIncludestax());
+                                    System.out.println("str.getFabriccostNotincludestax()\t"+str.getFabriccostNotincludestax());
+                                    System.out.println("money\t"+money);
+                                    System.out.println("getInvoiceQuantity\t"+str.getInvoiceQuantity());
+                                    System.out.println("quantity\t"+quantity);
+                                    System.out.println("num\t"+num);
+                                    BigDecimal money1 = str.getFabriccostNotincludestax().divide(str.getInvoiceQuantity(),2,BigDecimal.ROUND_HALF_UP);
+                                    BigDecimal num1 = money1.multiply(quantity);
+                                    notincludestaxTotal = notincludestaxTotal.add(num1);
+//                                notincludestaxTotal = notincludestaxTotal.add(str.getFabriccostIncludestax());
+                                    System.out.println("notincludestaxTotal1\t"+notincludestaxTotal);
+                                    BigDecimal money2 = str.getFabriccostIncludestaxUsd().divide(str.getInvoiceQuantity(),2,BigDecimal.ROUND_HALF_UP);
+                                    BigDecimal num2 = money2.multiply(quantity);
+                                    includestaxTotal = includestaxTotal.add(num2);
+                                }else{
+                                    usageQuantityTotal = usageQuantityTotal.add(str.getFabriccostIncludestax());
+                                    notincludestaxTotal = notincludestaxTotal.add(str.getFabriccostNotincludestax());
+                                    System.out.println("notincludestaxTotal2\t"+notincludestaxTotal);
+                                    includestaxTotal = includestaxTotal.add(str.getFabriccostIncludestaxUsd());
+                                }
+                                System.out.println(" getInvoiceQuantity "+str.getInvoiceQuantity()+" quantity "+quantity);
+//                            BigDecimal money = str.getFabriccostIncludestax().divide(str.getInvoiceQuantity(),2,BigDecimal.ROUND_HALF_UP);
+//                            BigDecimal num = money.multiply(li.getUsageQuantity());
+//                            usageQuantityTotal = usageQuantityTotal.add(num);
+//
+//                            BigDecimal money1 = str.getFabriccostNotincludestax().divide(str.getInvoiceQuantity(),2,BigDecimal.ROUND_HALF_UP);
+//                            BigDecimal num1 = money1.multiply(li.getUsageQuantity());
+//                            notincludestaxTotal = notincludestaxTotal.add(num1);
+//                            BigDecimal money2 = str.getFabriccostIncludestaxUsd().divide(str.getInvoiceQuantity(),2,BigDecimal.ROUND_HALF_UP);
+//                            BigDecimal num2 = money2.multiply(li.getUsageQuantity());
+//                            includestaxTotal = includestaxTotal.add(num2);
+                                //(发票金额/发票数量)*使用数量
+//                            System.out.println("面料含税成本\t"+usageQuantityTotal+"\t面料不含税成本\t"+notincludestaxTotal+"\t发票数量\t"+str.getInvoiceQuantity()+"\t使用数量\t"+li.getUsageQuantity());
+                            }
+                        }
+                    }
+//                System.out.println("面料含税人民币2\t"+usageQuantityTotal.setScale(2,BigDecimal.ROUND_HALF_UP));
+//                System.out.println("实际总金额2\t"+usageQuantityTotal);
+                    System.out.println("人民币面料成本notincludestaxTotal\t"+notincludestaxTotal);
+                    if (syCostAllocation.getFabriccostIncludestax()!=null){
+                        syCostAllocation.setFabriccostIncludestax(syCostAllocation.getFabriccostIncludestax().add(usageQuantityTotal.setScale(2,BigDecimal.ROUND_HALF_UP)));
+                    }else{
+                        syCostAllocation.setFabriccostIncludestax(usageQuantityTotal.setScale(2,BigDecimal.ROUND_HALF_UP));
+                    }
+                    System.out.println("人民币面料成本1\t"+syCostAllocation.getFabriccostNotincludestax());
+                    if (syCostAllocation.getFabriccostNotincludestax()!=null){
+                        syCostAllocation.setFabriccostNotincludestax(syCostAllocation.getFabriccostNotincludestax().add(notincludestaxTotal));
+                    }else{
+                        syCostAllocation.setFabriccostNotincludestax(notincludestaxTotal);
+                    }
+                    System.out.println("人民币面料成本2\t"+syCostAllocation.getFabriccostNotincludestax());
+                    System.out.println("includestaxTotal\t"+includestaxTotal+"  getFabriccostIncludestaxUsd  "+syCostAllocation.getFabriccostIncludestaxUsd());
+                    if (syCostAllocation.getFabriccostIncludestaxUsd()!=null){
+                        syCostAllocation.setFabriccostIncludestaxUsd(syCostAllocation.getFabriccostIncludestaxUsd().add(includestaxTotal));
+                    }else{
+                        syCostAllocation.setFabriccostIncludestaxUsd(includestaxTotal);
+                    }
                 }
             }else{
                 if (syCostAllocation.getFabriccostIncludestax()==null){

+ 19 - 34
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/shippingDetails/controller/SyShippingDetailsController.java

@@ -501,10 +501,8 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
    */
   @AutoLog(value = "发运明细主表-导出")
   @ApiOperation(value="发运明细主表-导出", notes="发运明细主表-导出")
-  @GetMapping(value = "/exportXls")
-  public Result<String> exportXls(SyShippingDetailsVo syShippingDetails,String selectAll,String groupidList,
-								@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
-								@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+  @PostMapping(value = "/exportXls")
+  public Result<String> exportXls(@RequestBody SyShippingDetailsVo syShippingDetails,
 								HttpServletResponse req) {
 
 	  Result<String> result = new Result<String>();
@@ -514,7 +512,7 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 	  QueryWrapper<SyShippingDetailsVo> queryWrapper = new QueryWrapper<>();
 	  SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
 
-	  if(selectAll.equals("1")) {
+	  if(syShippingDetails.getSelectAll().equals("1")) {
 		  if (oConvertUtils.isNotEmpty(syShippingDetails.getDocumentNo())) {
 			  queryWrapper.like("a.document_no", syShippingDetails.getDocumentNo());
 		  }
@@ -575,7 +573,7 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 	  }else{
 
 		  List<String> strList = new ArrayList<>();
-		  String groupidSplit[] =groupidList.split(",");
+		  String groupidSplit[] =syShippingDetails.getGroupidList().split(",");
 		  for(String str : groupidSplit){
 			  strList.add(str);
 		  }
@@ -1538,24 +1536,11 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 	 /**
 	  * 发运明细导出Excel
 	  * @param syShippingDetails
-	  * @param startTime
-	  * @param endTime
-	  * @param flourOrGarment
-	  * @param refer
-	  * @param preDeliveryDateB
-	  * @param preDeliveryDateE
-	  * @param supplier
-	  * @param isElement
-	  * @param pageNo
-	  * @param pageSize
 	  * @param req
 	  * @return
 	  */
-	 @RequestMapping(value = "/exportXlsShipping")
-	 public Result<String> exportXlsShipping(SyShippingDetailsVo syShippingDetails,String startTime,String endTime,String flourOrGarment,
-									   String refer,String preDeliveryDateB,String preDeliveryDateE,String supplier,String isElement,String selectAll,String groupidList,
-									   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
-									   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+	 @PostMapping(value = "/exportXlsShipping")
+	 public Result<String> exportXlsShipping(@RequestBody SyShippingDetailsVo syShippingDetails,
 																HttpServletResponse req){
 
 		 Result<String> result = new Result<String>();
@@ -1565,18 +1550,18 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 
 		 SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd"); // 月日年
 		 //是否全选
-         if(selectAll.equals("1")) {
+         if(syShippingDetails.getSelectAll().equals("1")) {
 			 if (oConvertUtils.isNotEmpty(syShippingDetails.getDocumentNo())) {
 				 queryWrapper.like("b.document_no", syShippingDetails.getDocumentNo());
 			 }
 			 if (oConvertUtils.isNotEmpty(syShippingDetails.getOrderNumber())) {
 				 queryWrapper.like("b.order_number", syShippingDetails.getOrderNumber());
 			 }
-			 if (oConvertUtils.isNotEmpty(startTime)) {
-				 queryWrapper.between("b.document_date", startTime,endTime);
+			 if (oConvertUtils.isNotEmpty(syShippingDetails.getStartTime())) {
+				 queryWrapper.between("b.document_date", syShippingDetails.getStartTime(),syShippingDetails.getEndTime());
 			 }
-			 if (oConvertUtils.isNotEmpty(preDeliveryDateB)) {
-				 queryWrapper.between("b.pre_delivery_date", preDeliveryDateB,preDeliveryDateE);
+			 if (oConvertUtils.isNotEmpty(syShippingDetails.getPreDeliveryDateB())) {
+				 queryWrapper.between("b.pre_delivery_date", syShippingDetails.getPreDeliveryDateB(),syShippingDetails.getPreDeliveryDateE());
 			 }
 
 			 if (oConvertUtils.isNotEmpty(syShippingDetails.getSalesman())) {
@@ -1585,14 +1570,14 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 			 if (oConvertUtils.isNotEmpty(syShippingDetails.getItemNumber())) {
 				 queryWrapper.like("b.item_number", syShippingDetails.getItemNumber());
 			 }
-			 if (oConvertUtils.isNotEmpty(refer)) {
-				 queryWrapper.eq("b.is_reference", refer);
+			 if (oConvertUtils.isNotEmpty(syShippingDetails.getRefer())) {
+				 queryWrapper.eq("b.is_reference", syShippingDetails.getRefer());
 			 }
-			 if (oConvertUtils.isNotEmpty(supplier)) {
-				 queryWrapper.eq("b.supplier", supplier);
+			 if (oConvertUtils.isNotEmpty(syShippingDetails.getSupplier())) {
+				 queryWrapper.eq("b.supplier", syShippingDetails.getSupplier());
 			 }
-			 if (oConvertUtils.isNotEmpty(isElement)) {
-				 if (isElement.equals("0")) {//没有维护
+			 if (oConvertUtils.isNotEmpty(syShippingDetails.getIsElement())) {
+				 if (syShippingDetails.getIsElement().equals("0")) {//没有维护
 					 queryWrapper.isNull("b.elements_id");
 				 } else {
 					 queryWrapper.isNotNull("b.elements_id");
@@ -1623,7 +1608,7 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 
 		 }else{//根据分组ID导出
          	List<String> strList = new ArrayList<>();
-         	String groupidSplit[] =groupidList.split(",");
+         	String groupidSplit[] =syShippingDetails.getGroupidList().split(",");
             for(String str : groupidSplit){
 					strList.add(str);
 			}
@@ -1631,7 +1616,7 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 		 }
 
 		 Page<SyShippingDetailsVo> page = new Page<SyShippingDetailsVo>(1, -1);
-		 if(flourOrGarment.equals("0")){//面辅料
+		 if(syShippingDetails.getFlourOrGarment().equals("0")){//面辅料
 			 queryWrapper.eq("1",1);
 			 pageList = syShippingDetailsService.queryShippingDetailsGarment(page, queryWrapper);
 		 }else{//成衣

+ 2 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/shippingDetails/entity/VO/SyShippingDetailsVo.java

@@ -355,4 +355,6 @@ public class SyShippingDetailsVo {
     private String preDeliveryDateB;
     private String preDeliveryDateE;
     private String isElement;
+    private String selectAll;
+    private String groupidList;
 }

+ 2 - 3
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/syShippingOrder/controller/SyShippingOrderController.java

@@ -235,7 +235,6 @@ public class SyShippingOrderController extends JeecgController<SyShippingOrder,
 		 try {
 			 QueryWrapper<SyShippingOrder> queryWrapper= new QueryWrapper();
 			 queryWrapper.eq("del_flag","0");
-			 System.out.println("ids");
 			 if (ids==null||ids.length()==0){
 				 queryWrapper.apply(" create_time>DATE_SUB(NOW(), INTERVAL 1 MONTH) ");
 				 queryWrapper.notLike("time_mesage","结算单");
@@ -262,9 +261,9 @@ public class SyShippingOrderController extends JeecgController<SyShippingOrder,
 				 codeMaps.put("error","");//成功
 				 codeMaps.put("isAhaa",order.getIsAhaa());//成功
 				 if(order.getReadyFabric().equals("成衣")){
-					 syPackingListTailoringController.pushInvoice(order.getId(),codeMaps);
+					 syPackingListTailoringController.pushPurchasesettle(order.getId(),codeMaps);
 				 }else{
-					 syPackingListFabricController.pushInvoice(order.getId(),codeMaps);
+					 syPackingListFabricController.pushPurchasesettle(order.getId(),codeMaps);
 				 }
 				 order.setTimeStuta(Integer.parseInt(codeMaps.get("time_Stuta").toString()));
 				 if(codeMaps.get("message").toString().length()>2){

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/syShippingOrder/mapper/xml/SyShippingOrderMapper.xml

@@ -134,7 +134,7 @@ d.terms_of_deliveryvalue as termsOfDeliveryvalue
             case when a.ready_fabric != '成衣' then sum(a.box_number) else a.box_number end as boxNumber,a.pk_org as pkOrg,
             case when a.ready_fabric != '成衣' then sum(a.gross_weight) else a.gross_weight end as grossWeight,
             case when a.ready_fabric != '成衣' then sum(a.net_weight) else a.net_weight end as netWeight,
-            case when a.ready_fabric != '成衣' then a.volume else a.volume end as volume,sum(a.number*a.unit_price) as
+            case when a.ready_fabric != '成衣' then a.volume else a.volume end as volume,sum(round(a.number*a.unit_price,2)) as
             totalPrice,
             a.distribution_point as distributionPoint, a.container_code as containerCode, a.container_number as
             containerNumber, a.unit_price as unitPrice, a.pre_shipment_date as preShipmentDate,

+ 118 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/controller/SyPackingListFabricController.java

@@ -150,6 +150,9 @@ public class SyPackingListFabricController implements Job {
 				queryWrapper.ge("a.is_Reference",syPackingListFabric.getIsReference());//是否被参照
 			}
 		}
+		if(oConvertUtils.isNotEmpty(syPackingListFabric.getDyelotNumber())){
+			queryWrapper.like("b.dyelot_Number",syPackingListFabric.getDyelotNumber().trim());//账套号
+		}
 
 		queryWrapper.eq("a.del_flag","0");
 		Page<SyPackingListFabric> page = new Page<SyPackingListFabric>(pageNo, pageSize);
@@ -620,7 +623,7 @@ public class SyPackingListFabricController implements Job {
 				 message = syPackingListFabricService.pushInvoiceTwo(listFabrics2);//推送102销售发票
 				 message = syPackingListFabricService.pushInvoiceOne(listFabrics2);//推送101采购发票
 				 message = syPackingListFabricService.pushInvoiceOne(listFabrics1);//推送101采购发票
-				 message = syPackingListFabricService.pushInvoiceFor(listFabrics3);//推送101采购结算单
+//				 message = syPackingListFabricService.pushInvoiceFor(listFabrics3);//推送101采购结算单
 			 }catch (Exception e){
 				 e.printStackTrace();
 			 }
@@ -1939,4 +1942,118 @@ public class SyPackingListFabricController implements Job {
 		 }
 	 }
 
+	 public String pushPurchasesettle(String id, Map<String, Object> codeMaps) {
+		 String message="";
+		 try {
+			 List<SyPackingListFabric> listFabrics=syPackingListFabricService.queryByList(id);
+			 List<SyPackingListFabric> listFabrics1=new ArrayList<>();
+			 List<SyPackingListFabric> listFabrics2=new ArrayList<>();
+			 List<SyPackingListFabric> listFabrics3=new ArrayList<>();
+			 if(listFabrics.size()==0){
+				 codeMaps.put("error","未在装箱单找到对应单据");//失败信息
+				 return "未在装箱单找到对应单据";
+			 }
+			 Map<String,Object> mapdate=syPackingListTailoringService.getSyShippingOrder(listFabrics.get(0).getId());//获取一些日期信息
+			 for (SyPackingListFabric fabric : listFabrics){
+				 if (!fabric.getPushState().equals("1")&&!fabric.getPushState().equals("4")){
+					 codeMaps.put("error","需要装箱单全部推送成功,才能推送发票");//失败信息
+					 return "需要装箱单全部推送成功,才能推送发票";
+				 }
+				 if (fabric.getPushState().equals("1")||fabric.getDocumentNo().substring(0,3).equals("103")){
+					 listFabrics1.add(fabric);
+				 }
+				 if (fabric.getDocumentNo().substring(0,3).equals("102")){
+					 listFabrics2.add(fabric);
+				 }
+				 if (fabric.getDocumentNo().substring(0,2).equals("ML")){
+					 listFabrics3.add(fabric);
+				 }
+				 fabric.setSaleInvoiceError("");
+				 ////System.out.println("madate\t"+mapdate);
+				 if(mapdate!=null){
+					 if(mapdate.containsKey("e1")&&mapdate.get("e1")!=null) {
+						 fabric.setTheFinalShippingDate(mapdate.get("e1").toString());
+					 }
+					 if(mapdate.containsKey("e2")&&mapdate.get("e2")!=null){
+						 fabric.setTheFinalShippingDate2(mapdate.get("e2").toString());
+					 }
+					 if(mapdate.containsKey("e3")&&mapdate.get("e3")!=null){
+						 fabric.setLatestDateOfShipment2(mapdate.get("e3").toString());
+					 }
+				 }
+				 List<SyPackingListFabricItem> listFabricItems=syPackingListFabricItemService.selectByMainId3(fabric.getId());//获取所有未删除的子表
+				 if(listFabricItems.size()>0){
+					 SyOrderData syOrderData=syOrderDataMapper.selectById(listFabricItems.get(0).getSyOrderDataId());//随机选中一条子表记录确定最终客户
+					 if(syOrderData!=null){
+						 fabric.setEndCustomer(syOrderData.getEndCustomer());
+					 }
+					 SyOrderDataItem dataItem=syOrderDataItemMapper.selectById(listFabricItems.get(0).getSyOrderDataItemId());//供应商全称
+					 if(dataItem!=null){
+						 fabric.setSupplierCode(dataItem.getSupplierCode());
+					 }
+				 }
+				 fabric.setSyPackingListFabricItem(listFabricItems);
+			 }
+			 try {
+				 message = syPackingListFabricService.getList4(listFabrics2);//推送101采购发票
+				 message = syPackingListFabricService.getList4(listFabrics1);//推送101采购发票
+				 message = syPackingListFabricService.pushInvoiceFor(listFabrics3);//推送101采购结算单
+			 }catch (Exception e){
+				 e.printStackTrace();
+			 }
+			 List<String> msgs=new ArrayList<>();
+			 List<String> errors=new ArrayList<>();
+			 for (SyPackingListFabric fabric : listFabrics1){
+				 if(fabric.getSaleInvoiceError()!=null&&fabric.getSaleInvoiceError().length()>1){
+					 fabric.setTimeStuta(3);
+					 if(fabric.getSaleInvoiceError().indexOf("结算单")>-1){
+						 fabric.setTimeStuta(2);
+					 }
+					 errors.add(fabric.getSaleInvoiceError());
+				 }else{
+					 fabric.setTimeStuta(2);
+				 }
+				 if(fabric.getSaleInvoiceCode()!=null){
+					 if(!msgs.contains(fabric.getSaleInvoiceCode())){
+						 msgs.add(fabric.getSaleInvoiceCode());
+					 }
+				 }
+			 }
+			 for (SyPackingListFabric fabric : listFabrics2){
+				 if(fabric.getSaleInvoiceError()!=null&&fabric.getSaleInvoiceError().length()>1){
+					 fabric.setTimeStuta(3);
+					 errors.add(fabric.getSaleInvoiceError());
+					 if(fabric.getSaleInvoiceError().indexOf("结算单")>-1){
+						 fabric.setTimeStuta(2);
+					 }
+				 }else{
+					 fabric.setTimeStuta(2);
+				 }
+				 if(fabric.getSaleInvoiceCode()!=null){
+					 if(!msgs.contains(fabric.getSaleInvoiceCode())){
+						 msgs.add(fabric.getSaleInvoiceCode());
+					 }
+				 }
+			 }
+			 syPackingListFabricService.updateBatchById(listFabrics1);
+			 syPackingListFabricService.updateBatchById(listFabrics2);
+			 syPackingListFabricService.updateBatchById(listFabrics3);
+			 codeMaps.put("message",msgs.stream().distinct().collect(Collectors.toList()));//推送成功消息
+			 codeMaps.put("error",errors.stream().distinct().collect(Collectors.toList()));//推送失败信息
+			 if(errors.size()==0||errors.indexOf("结算单")>-1){
+				 codeMaps.put("time_Stuta",2);//成功
+			 }
+		 }catch (Exception e){
+			 e.printStackTrace();
+			 String msg2= null;
+			 try {
+				 msg2 = getExceptionStr(e);
+			 } catch (IOException ex) {
+				 ex.printStackTrace();
+			 }
+			 //System.out.println("托书发票推送报错");
+			 log.info("托书发票推送报错\t"+msg2);
+		 }
+		 return message;
+	 }
  }

+ 4 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/entity/SyPackingListFabric.java

@@ -238,6 +238,10 @@ public class SyPackingListFabric implements Serializable {
 	@TableField(exist = false)
 	private String planLotNumber;
 
+	/**缸号*/
+	@TableField(exist = false)
+	private String dyelotNumber;
+
 	/**记录销售发票单编码*/
 	@Excel(name = "记录销售发票单编码", width = 15)
 	@ApiModelProperty(value = "记录销售发票单编码")

+ 2 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/service/ISyPackingListFabricService.java

@@ -107,4 +107,6 @@ public interface ISyPackingListFabricService extends IService<SyPackingListFabri
 	public void  updateQuantitys(Map<String,SyPackingListFabricItem> mapItems,List<String> ids);
 
 	RespUpdateVO saveSrmBill(SyPackingListFabric syPackingListFabric);
+
+    String getList4(List<SyPackingListFabric> listFabrics1);
 }

+ 21 - 21
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/service/impl/SyPackingListFabricServiceImpl.java

@@ -1900,10 +1900,11 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 				mapItem5.put("IORITAXCOST", oConvertUtils.getString(taxPrice.setScale(4,RoundingMode.HALF_UP)));//原币含税单价
 				mapItem5.put("IORICOST", oConvertUtils.getString(ioricost.setScale(4,RoundingMode.HALF_UP)));//原币无税单价
 				mapItem5.put("IORIMONEY", oConvertUtils.getString(totalIoricost.setScale(2,RoundingMode.HALF_UP)));//原币无税金额
+				mapItem5.put("IORISUM", oConvertUtils.getString(totalPrice.setScale(2,RoundingMode.HALF_UP)));//原币含税金额
 				if(mapt.get("account").equals("101")&&(item.getInventoryCcode().indexOf("04")!=-1||item.getInventoryCcode().indexOf("03")!=-1)){
 					mapItem5.put("IORIMONEY",priceDecimalMap.get(itemKey).setScale(2, RoundingMode.HALF_UP));//改成使用报关单价*成衣参考单价
+					mapItem5.put("IORISUM",priceDecimalMap.get(itemKey).setScale(2, RoundingMode.HALF_UP));//原币含税金额
 				}
-				mapItem5.put("IORISUM", oConvertUtils.getString(totalPrice.setScale(2,RoundingMode.HALF_UP)));//原币含税金额
 				mapItem5.put("IORITAXPRICE", oConvertUtils.getString(taxrate2.setScale(2,RoundingMode.HALF_UP)));//原币税额
 //
 //				//本币
@@ -3212,7 +3213,6 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 		if (jsonArrays2.size()>0){
 			JSONArray resturnJsonArrays2 = InterfaceConnUtils.doPost(jsonArrays2,"purchasesettle_import");//结算单
 			Map<String,String> codeMaps3 = result(resturnJsonArrays2,"结算单","101");
-
 			for (String code1 : codeMaps.keySet()){
 				List<SyPackingListFabric> listFabricList=codeMaps.get(code1);
 				for (SyPackingListFabric fabric : listFabricList){
@@ -3252,7 +3252,7 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 //			System.out.println("单据号   "+f.getDocumentNo()+"  Rdrecord32Code  "+f.getRdrecord32Code());
 		});
 		if(codes.size()==0){
-			getList4(listFabrics);//获取入库单号
+//			getList4(listFabrics);//获取入库单号
 			return "无可推送数据!";
 		}
 		Map<String,List<String>> customers=getSuppliers(listFabrics);//key:供应商编码,value:入库单单据号
@@ -3429,11 +3429,11 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 		});
 //		System.out.println("测试合并推送面辅料结算单  \n"+jsonArrays2);
 		text(jsonArrays1,"测试合并推送面辅料采购发票");
-		text(jsonArrays2,"测试合并推送面辅料结算单");
+//		text(jsonArrays2,"测试合并推送面辅料结算单");
 		JSONArray resturnJsonArrays = InterfaceConnUtils.doPost(jsonArrays1,"purinvoice_import");//采购发-票单
 		Map<String,String> codeMaps2 = result(resturnJsonArrays,"采购发票",account);
-		JSONArray resturnJsonArrays2 = InterfaceConnUtils.doPost(jsonArrays2,"purchasesettle_import");//结算单
-		Map<String,String> codeMaps3 = result(resturnJsonArrays2,"结算单",account);
+//		JSONArray resturnJsonArrays2 = InterfaceConnUtils.doPost(jsonArrays2,"purchasesettle_import");//结算单
+//		Map<String,String> codeMaps3 = result(resturnJsonArrays2,"结算单",account);
 		for (String code1 : codeMaps.keySet()){
 			List<SyPackingListFabric> listFabricList=codeMaps.get(code1);
 			for (SyPackingListFabric fabric : listFabricList){
@@ -3451,19 +3451,19 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 						fabric.setSaleInvoiceCode(fabric.getSaleInvoiceCode()+";"+codeMaps2.get(code1));
 					}
 				}
-				if (codeMaps3.get(code1).indexOf("失败")>-1|| codeMaps3.get(code1).indexOf("未结账")>-1){
-					if(fabric.getSaleInvoiceError()==null){
-						fabric.setSaleInvoiceError(codeMaps3.get(code1));
-					}else{
-						fabric.setSaleInvoiceError(fabric.getSaleInvoiceError()+";"+codeMaps3.get(code1));
-					}
-				}else{
-					if(fabric.getSaleInvoiceCode()==null){
-						fabric.setSaleInvoiceCode(codeMaps3.get(code1));
-					}else{
-						fabric.setSaleInvoiceCode(fabric.getSaleInvoiceCode()+";"+codeMaps3.get(code1));
-					}
-				}
+//				if (codeMaps3.get(code1).indexOf("失败")>-1|| codeMaps3.get(code1).indexOf("未结账")>-1){
+//					if(fabric.getSaleInvoiceError()==null){
+//						fabric.setSaleInvoiceError(codeMaps3.get(code1));
+//					}else{
+//						fabric.setSaleInvoiceError(fabric.getSaleInvoiceError()+";"+codeMaps3.get(code1));
+//					}
+//				}else{
+//					if(fabric.getSaleInvoiceCode()==null){
+//						fabric.setSaleInvoiceCode(codeMaps3.get(code1));
+//					}else{
+//						fabric.setSaleInvoiceCode(fabric.getSaleInvoiceCode()+";"+codeMaps3.get(code1));
+//					}
+//				}
 			}
 		}
 		return "推送成功";
@@ -3690,7 +3690,7 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 		return ids;
 	}
 
-	public List<String> getList4(List<SyPackingListFabric> listFabrics){
+	public String getList4(List<SyPackingListFabric> listFabrics){
 		List<String> ids=new ArrayList<>();//获取出库单号
 		JSONArray jsonArrays2=new JSONArray();
 		Map<String,List<SyPackingListFabric>> codeMaps=new HashMap<>();//key:传入销售发票单id,value:主表数据
@@ -3740,7 +3740,7 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 				}
 			}
 		}
-		return ids;
+		return "推送成功";
 	}
 
 	@Override

+ 114 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/controller/SyPackingListTailoringController.java

@@ -2369,4 +2369,117 @@ public class SyPackingListTailoringController implements Job {
 		 }
 	 }
 
-}
+
+	 public String pushPurchasesettle(String id, Map<String, Object> codeMaps) {
+		 String messages="";
+		 try {
+			 List<SyPackingListTailoring> listTailorings=syPackingListTailoringService.queryByList(id);
+			 if(listTailorings.size()==0){
+				 return "未在装箱单找到对应单据";
+			 }
+			 Map<String,Object> mapdate=syPackingListTailoringService.getSyShippingOrder(listTailorings.get(0).getId());//获取一些日期信息
+			 Map<String,List<SyPackingListTailoring>> listMap=new HashMap<>();
+			 for (SyPackingListTailoring tailoring : listTailorings){
+				 if (!tailoring.getPushState().equals("1")&&!tailoring.getPushState().equals("4")){
+					 codeMaps.put("error","需要装箱单全部推送成功,才能推送发票");//失败信息
+					 return "需要装箱单全部推送成功,才能推送发票";
+				 }
+				 tailoring.setSaleInvoiceError2(tailoring.getSaleInvoiceError());
+				 tailoring.setSaleInvoiceError("");
+				 if(mapdate!=null){
+					 if(mapdate.containsKey("e1")&&mapdate.get("e1")!=null) {
+						 tailoring.setTheFinalShippingDate(mapdate.get("e1").toString());
+					 }
+					 if(mapdate.containsKey("e2")&&mapdate.get("e2")!=null){
+						 tailoring.setTheFinalShippingDate2(mapdate.get("e2").toString());
+					 }
+					 if(mapdate.containsKey("e3")&&mapdate.get("e3")!=null){
+						 tailoring.setLatestDateOfShipment2(mapdate.get("e3").toString());
+					 }
+				 }
+				 List<SyPackingListTailoringItem> tailoringItemList=syPackingListTailoringService.getList(tailoring.getId());
+				 DictModel dictModel1=sysDictService.queryDictItemsByCode("accountPrice").get(0);
+				 if(tailoring.getIsTc()!=null){
+					 for (SyPackingListTailoringItem tailoringItem : tailoringItemList){
+						 tailoringItem.setIsTc(tailoring.getIsTc());
+						 tailoringItem.setAccountPrice(new BigDecimal(dictModel1.getValue()));
+					 }
+				 }
+				 SyOrderData syOrderData=syOrderDataMapper.selectById(tailoringItemList.get(0).getSyOrderDataId());//最终客户
+				 if(syOrderData!=null){
+					 tailoring.setEndCustomer(syOrderData.getEndCustomer());
+				 }
+				 tailoring.setSyPackingListTailoringItemList(tailoringItemList);
+				 if(listMap.containsKey(tailoring.getOmpoAccount())){
+					 listMap.get(tailoring.getOmpoAccount()).add(tailoring);
+				 }else{
+					 List<SyPackingListTailoring> listTailorings1=new ArrayList<>();
+					 listTailorings1.add(tailoring);
+					 listMap.put(tailoring.getOmpoAccount(),listTailorings1);
+				 }
+			 }
+			 String message="";
+			 for (String key : listMap.keySet()){
+				 Map<String,Object> maps=new HashMap<>();
+
+				 for (int i=0;i<3;i++){
+					 try{
+						 if(i==0){
+							 message+=syPackingListTailoringService.getList4("103",listTailorings);
+						 }else if(i==1){
+							 message+=syPackingListTailoringService.getList4("102",listTailorings);
+						 }else if(i==2){
+							 message+=syPackingListTailoringService.getList4("101",listTailorings);
+						 }
+					 }catch (Exception e){
+						 e.printStackTrace();
+						 String msg2= null;
+						 try {
+							 msg2 = getExceptionStr(e);
+						 } catch (IOException ex) {
+							 ex.printStackTrace();
+						 }
+						 //System.out.println("托书发票推送报错");
+						 log.info("托书发票推送报错\t"+msg2);
+					 }
+				 }
+			 }
+			 List<String> msgs=new ArrayList<>();
+			 List<String> errors=new ArrayList<>();
+			 for (SyPackingListTailoring tailoring : listTailorings){
+				 if(tailoring.getSaleInvoiceError()!=null&&tailoring.getSaleInvoiceError().length()>1){
+					 errors.add(tailoring.getSaleInvoiceError());
+					 tailoring.setTimeStuta(3);
+					 if(tailoring.getSaleInvoiceError().indexOf("结算单")>-1){
+						 tailoring.setTimeStuta(2);
+					 }
+				 }else{
+					 tailoring.setTimeStuta(2);
+				 }
+				 if(tailoring.getSaleInvoiceCode()!=null){
+					 if(!msgs.contains(tailoring.getSaleInvoiceCode())){
+						 msgs.add(tailoring.getSaleInvoiceCode());
+					 }
+				 }
+			 }
+			 syPackingListTailoringService.updateBatchById(listTailorings);
+			 log.info("listTailorings\n"+listTailorings);
+			 codeMaps.put("message",msgs.stream().distinct().collect(Collectors.toList()));//推送成功消息
+			 codeMaps.put("error",errors.stream().distinct().collect(Collectors.toList()));//推送失败信息
+			 if(errors.size()==0||errors.indexOf("结算单")>-1){
+				 codeMaps.put("time_Stuta",2);//成功
+			 }
+		 }catch (Exception e){
+			 e.printStackTrace();
+			 String msg2= null;
+			 try {
+				 msg2 = getExceptionStr(e);
+			 } catch (IOException ex) {
+				 ex.printStackTrace();
+			 }
+			 //System.out.println("托书发票推送报错");
+			 log.info("托书发票推送报错\t"+msg2);
+		 }
+		 return messages;
+	 }
+ }

+ 2 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/service/ISyPackingListTailoringService.java

@@ -156,4 +156,6 @@ public interface ISyPackingListTailoringService extends IService<SyPackingListTa
 	void updateTimeStatus();
 
 	RespUpdateVO saveSrmBill(SyPackingListTailoring syPackingListTailoring);
+
+	String getList4(String s, List<SyPackingListTailoring> listTailorings);
 }

+ 90 - 72
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/service/impl/SyPackingListTailoringServiceImpl.java

@@ -2177,7 +2177,7 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 		List<String> codes=getList(listTailorings,account,maps.get("isAhaa").toString());//获取出库单号
 //		System.out.println("account   "+account+"   入库单codes  "+codes);
 		if(codes.size()==0){
-			getList4(account,listTailorings);//获取入库单号
+//			getList4(account,listTailorings);//获取入库单号
 			return "无可推送数据!";
 		}
 		Map<String,List<String>> customers=getSuppliers(listTailorings);//key:供应商编码,value:出库单单据号
@@ -2370,15 +2370,15 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 			System.out.println("u8Money\t"+u8Money);
 			System.out.println("dzUsdMoney\t"+dzUsdMoney);
 			System.out.println("u8UsdMoney\t"+u8UsdMoney);
-			if(dzMoney.compareTo(u8Money)!=0){
-				BigDecimal dividePrice =dzMoney.subtract(u8Money);
-				BigDecimal ioriMoney=new BigDecimal(jsonArrays.getJSONObject(jsonArrays.size()-1).get("IORIMONEY").toString());
-				System.out.println("dividePrice\t"+dividePrice);
-				System.out.println("ioriMoney\t"+ioriMoney);
-				jsonArrays.getJSONObject(jsonArrays.size()-1).put("MCPRICE","1");//不自动计算金额
-				jsonArrays.getJSONObject(jsonArrays.size()-1).put("IORIMONEY",ioriMoney.add(dividePrice));
-				jsonArrays.getJSONObject(jsonArrays.size()-1).put("IORISUM",ioriMoney.add(dividePrice));
-			}
+//			if(dzMoney.compareTo(u8Money)!=0){
+//				BigDecimal dividePrice =dzMoney.subtract(u8Money);
+//				BigDecimal ioriMoney=new BigDecimal(jsonArrays.getJSONObject(jsonArrays.size()-1).get("IORIMONEY").toString());
+//				System.out.println("dividePrice\t"+dividePrice);
+//				System.out.println("ioriMoney\t"+ioriMoney);
+//				jsonArrays.getJSONObject(jsonArrays.size()-1).put("MCPRICE","1");//不自动计算金额
+//				jsonArrays.getJSONObject(jsonArrays.size()-1).put("IORIMONEY",ioriMoney.add(dividePrice));
+//				jsonArrays.getJSONObject(jsonArrays.size()-1).put("IORISUM",ioriMoney.add(dividePrice));
+//			}
 //			jsonObject.put("IORIMONEY",item.getUnitPrice());//金额
 			jsonObject1.put("DETAILList",jsonArrays);
 			if (syPackingListTailoring.getOmpoAccount().equals(account) && maps.get("isAhaa").toString().equals("国内") ){//国内托书的初始账套不进行推送
@@ -2388,8 +2388,16 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 			}
 		}
 
+//		jsonArrays1.forEach(j->{
+//			JSONObject  jsonObject=(JSONObject)j;
+//			JSONArray jsonArrays= (JSONArray) jsonObject.get("DETAILList");
+//			jsonArrays.forEach(j1->{
+//				JSONObject j2=(JSONObject)j1;
+//				System.out.println("采购金额\t"+j2.get("IORIMONEY"));
+//			});
+//		});
 
-
+		System.out.println("测试合并推送成衣采购发票\n"+jsonArrays1);
 		if( jsonArrays1.size()>0 ){//国内托书的初始账套不进行推送
 			text(jsonArrays1,"测试合并推送成衣采购发票");
 			JSONArray resturnJsonArrays = InterfaceConnUtils.doPost(jsonArrays1,"purinvoice_import");//采购发-票单
@@ -2418,45 +2426,45 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 					}
 				}
 			}
-			if ((maps.get("account1").equals("101")&&orderType.equals("委外"))||
-					(account.equals("102")&&orderType.equals("采购")&&cvenCode.equals("T020001"))||
-					(account.equals("101")&&orderType.equals("采购")&&cvenCode.equals("T030001"))||
-					(account.equals("101")&&orderType.equals("采购")&&cvenCode.equals("T010001"))){
-				JSONArray jsonArrays2=new JSONArray();
-				jsonArrays1.forEach(j->{
-					JSONObject  jsonObject=(JSONObject)j;
-					JSONObject  jsonObject1=new JSONObject();
-					jsonObject1.put("CACCID",account);
-					jsonObject1.put("CSVMEMO",listTailorings.get(0).getShippingOrderNumber());
-					jsonObject1.put("CMAKER","进出口平台管理员");
-					jsonObject1.put("CVOUCHCODE_U8",jsonObject.get("CVOUCHCODE"));
-					jsonObject1.put("DDATE",jsonObject.get("DDATE"));
-					jsonArrays2.add(jsonObject1);
-				});
-				text(jsonArrays2,"测试合并推送成衣结算单");
-				JSONArray resturnJsonArrays2 = InterfaceConnUtils.doPost(jsonArrays2,"purchasesettle_import");//结算单
-				Map<String,String> codeMaps3 = result(resturnJsonArrays2,"结算单",account);
-
-				for (String code1 : codeMaps.keySet()){
-					List<SyPackingListTailoring> listTailoringList=codeMaps.get(code1);
-					for (SyPackingListTailoring tailoring : listTailoringList){
-						tailoring.setRdrecord32Code(null);
-						if (codeMaps3.get(code1).indexOf("失败")>-1|| codeMaps3.get(code1).indexOf("未结账")>-1){
-							if(tailoring.getSaleInvoiceError()==null){
-								tailoring.setSaleInvoiceError(codeMaps3.get(code1));
-							}else{
-								tailoring.setSaleInvoiceError(tailoring.getSaleInvoiceError()+";"+codeMaps3.get(code1));
-							}
-						}else{
-							if(tailoring.getSaleInvoiceCode()==null){
-								tailoring.setSaleInvoiceCode(codeMaps3.get(code1));
-							}else{
-								tailoring.setSaleInvoiceCode(tailoring.getSaleInvoiceCode()+";"+codeMaps3.get(code1));
-							}
-						}
-					}
-				}
-			}
+//			if ((maps.get("account1").equals("101")&&orderType.equals("委外"))||
+//					(account.equals("102")&&orderType.equals("采购")&&cvenCode.equals("T020001"))||
+//					(account.equals("101")&&orderType.equals("采购")&&cvenCode.equals("T030001"))||
+//					(account.equals("101")&&orderType.equals("采购")&&cvenCode.equals("T010001"))){
+//				JSONArray jsonArrays2=new JSONArray();
+//				jsonArrays1.forEach(j->{
+//					JSONObject  jsonObject=(JSONObject)j;
+//					JSONObject  jsonObject1=new JSONObject();
+//					jsonObject1.put("CACCID",account);
+//					jsonObject1.put("CSVMEMO",listTailorings.get(0).getShippingOrderNumber());
+//					jsonObject1.put("CMAKER","进出口平台管理员");
+//					jsonObject1.put("CVOUCHCODE_U8",jsonObject.get("CVOUCHCODE"));
+//					jsonObject1.put("DDATE",jsonObject.get("DDATE"));
+//					jsonArrays2.add(jsonObject1);
+//				});
+//				text(jsonArrays2,"测试合并推送成衣结算单");
+//				JSONArray resturnJsonArrays2 = InterfaceConnUtils.doPost(jsonArrays2,"purchasesettle_import");//结算单
+//				Map<String,String> codeMaps3 = result(resturnJsonArrays2,"结算单",account);
+
+//				for (String code1 : codeMaps.keySet()){
+//					List<SyPackingListTailoring> listTailoringList=codeMaps.get(code1);
+//					for (SyPackingListTailoring tailoring : listTailoringList){
+//						tailoring.setRdrecord32Code(null);
+//						if (codeMaps3.get(code1).indexOf("失败")>-1|| codeMaps3.get(code1).indexOf("未结账")>-1){
+//							if(tailoring.getSaleInvoiceError()==null){
+//								tailoring.setSaleInvoiceError(codeMaps3.get(code1));
+//							}else{
+//								tailoring.setSaleInvoiceError(tailoring.getSaleInvoiceError()+";"+codeMaps3.get(code1));
+//							}
+//						}else{
+//							if(tailoring.getSaleInvoiceCode()==null){
+//								tailoring.setSaleInvoiceCode(codeMaps3.get(code1));
+//							}else{
+//								tailoring.setSaleInvoiceCode(tailoring.getSaleInvoiceCode()+";"+codeMaps3.get(code1));
+//							}
+//						}
+//					}
+//				}
+//			}
 		}
 		return "推送成功";
 	}
@@ -2470,7 +2478,7 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 		}
 	}
 
-	public List<String> getList4(String account,List<SyPackingListTailoring> listFabrics){
+	public String getList4(String account,List<SyPackingListTailoring> listFabrics){
 		List<String> ids=new ArrayList<>();//获取出库单号
 		JSONArray jsonArrays2=new JSONArray();
 //		if (account.equals("103")){
@@ -2490,8 +2498,6 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 				documentNo=code.substring(code.indexOf(account+"采购发票单号")+9,code.indexOf(account+"采购发票单号")+20);
 				cvenCode =syPackingListTailoringMapper.getCvenCode(account,documentNo);
 			}
-
-
 			if(code!=null&& ((code.indexOf("101采购发票")>-1&&account.equals("101")&&(cvenCode.equals("T010001")||cvenCode.equals("T030001")))
 					||(code.indexOf("102采购发票")>-1&&account.equals("102")&&cvenCode.equals("T020001"))
 					||(code.indexOf("101委外发票")>-1)&&account.equals("101"))
@@ -2546,7 +2552,7 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 				}
 			}
 		}
-		return ids;
+		return "推送成功";
 	}
 
 
@@ -2723,28 +2729,40 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 			}
 			System.out.println("dzMoney\t"+dzMoney);
 			System.out.println("u8Money\t"+u8Money);
-			if(dzMoney.compareTo(u8Money)!=0){
-				BigDecimal dividePrice=dzMoney.subtract(u8Money);
-				BigDecimal ioriMoney=new BigDecimal(jsonArrays.getJSONObject(jsonArrays.size()-1).get("ISUM").toString());
-				BigDecimal ioriMoney2=new BigDecimal(jsonArrays.getJSONObject(jsonArrays.size()-1).get("IMONEY").toString());
-//				jsonObject.put("IMONEY", oConvertUtils.getString(totalIoricost.setScale(2,RoundingMode.HALF_UP)));//原币无税金额
-//				jsonObject.put("ITAX", oConvertUtils.getString(taxrate2.setScale(2,RoundingMode.HALF_UP)));//原币税额
-
-				jsonArrays.getJSONObject(jsonArrays.size()-1).put("MCPRICE","1");
-				System.out.println("价税合计a\t"+jsonArrays.getJSONObject(jsonArrays.size()-1).get("ISUM").toString());
-				System.out.println("无税金额a\t"+jsonArrays.getJSONObject(jsonArrays.size()-1).get("IMONEY").toString());
-
-				jsonArrays.getJSONObject(jsonArrays.size()-1).put("ISUM",ioriMoney.add(dividePrice).setScale(2,BigDecimal.ROUND_HALF_UP));
-				jsonArrays.getJSONObject(jsonArrays.size()-1).put("IMONEY",ioriMoney2.add(dividePrice).setScale(2,BigDecimal.ROUND_HALF_UP));
-
-				System.out.println("价税合计b\t"+jsonArrays.getJSONObject(jsonArrays.size()-1).get("ISUM").toString());
-				System.out.println("无税金额b\t"+jsonArrays.getJSONObject(jsonArrays.size()-1).get("IMONEY").toString());
-
-			}
+//			if(dzMoney.compareTo(u8Money)!=0){
+//				BigDecimal dividePrice=dzMoney.subtract(u8Money);
+//				BigDecimal ioriMoney=new BigDecimal(jsonArrays.getJSONObject(jsonArrays.size()-1).get("ISUM").toString());
+//				BigDecimal ioriMoney2=new BigDecimal(jsonArrays.getJSONObject(jsonArrays.size()-1).get("IMONEY").toString());
+////				jsonObject.put("IMONEY", oConvertUtils.getString(totalIoricost.setScale(2,RoundingMode.HALF_UP)));//原币无税金额
+////				jsonObject.put("ITAX", oConvertUtils.getString(taxrate2.setScale(2,RoundingMode.HALF_UP)));//原币税额
+//				System.out.println("dividePrice\t"+dividePrice);
+//				System.out.println("ioriMoney\t"+ioriMoney);
+//
+//				jsonArrays.getJSONObject(jsonArrays.size()-1).put("MCPRICE","1");
+//				System.out.println("价税合计a\t"+jsonArrays.getJSONObject(jsonArrays.size()-1).get("ISUM").toString());
+//				System.out.println("无税金额a\t"+jsonArrays.getJSONObject(jsonArrays.size()-1).get("IMONEY").toString());
+//
+//				jsonArrays.getJSONObject(jsonArrays.size()-1).put("ISUM",ioriMoney.add(dividePrice).setScale(2,BigDecimal.ROUND_HALF_UP));
+//				jsonArrays.getJSONObject(jsonArrays.size()-1).put("IMONEY",ioriMoney2.add(dividePrice).setScale(2,BigDecimal.ROUND_HALF_UP));
+//
+//				System.out.println("价税合计b\t"+jsonArrays.getJSONObject(jsonArrays.size()-1).get("ISUM").toString());
+//				System.out.println("无税金额b\t"+jsonArrays.getJSONObject(jsonArrays.size()-1).get("IMONEY").toString());
+//
+//			}
 			jsonObject1.put("DETAILList",jsonArrays);
 			jsonArrays1.add(jsonObject1);
 		}
 		System.out.println("销售发票jsonArrays1\t"+jsonArrays1);
+
+//		jsonArrays1.forEach(j->{
+//			JSONObject  jsonObject=(JSONObject)j;
+//			JSONArray jsonArrays= (JSONArray) jsonObject.get("DETAILList");
+//			jsonArrays.forEach(j1->{
+//				JSONObject j2=(JSONObject)j1;
+//				System.out.println("销售金额\t"+j2.get("ISUM"));
+//			});
+//		});
+
 		text(jsonArrays1,"测试合并推送成衣销售发票");
 		JSONArray resturnJsonArrays = InterfaceConnUtils.doPost(jsonArrays1,"saleinvoice_import");//销售发-票单
 		Map<String,String> codeMaps2 = result(resturnJsonArrays,"销售发票",account);