Browse Source

托书调整

zengtx 2 years ago
parent
commit
72f6ccca70

+ 6 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/entity/SyRmb.java

@@ -28,4 +28,10 @@ public class SyRmb {
     @ApiModelProperty(value = "删除标识")
     private String delFlag;
 
+    @ApiModelProperty(value = "货代名称")
+    private String freightForwarderName;
+
+    @ApiModelProperty(value = "项目列名称")
+    private String itemColumnName;
+
 }

+ 6 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/entity/SyUsd.java

@@ -29,4 +29,10 @@ public class SyUsd {
 
     @ApiModelProperty(value = "删除标识")
     private String delFlag;
+
+    @ApiModelProperty(value = "货代名称")
+    private String freightForwarderName;
+
+    @ApiModelProperty(value = "项目列名称")
+    private String itemColumnName;
 }

+ 4 - 4
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/letterDeposit/mapper/xml/SyLetterDepositMapper.xml

@@ -29,22 +29,22 @@ on a.id = b.sy_pre_assembled_packing_list_id
 
 
     <insert id="syRmbAdd">
-        insert into sy_rmb (id, sy_letter_deposit_id, freight_forwarder, amount, item_column,del_flag)
+        insert into sy_rmb (id, sy_letter_deposit_id, freight_forwarder, amount, item_column,del_flag,freight_forwarder_name,item_column_name)
         values
         <foreach collection="rmbList" item="rmbList" separator=",">
             (
-            #{rmbList.id}, #{rmbList.syLetterDepositId}, #{rmbList.freightForwarder}, #{rmbList.amount}, #{rmbList.itemColumn},0
+            #{rmbList.id}, #{rmbList.syLetterDepositId}, #{rmbList.freightForwarder}, #{rmbList.amount}, #{rmbList.itemColumn},0,#{rmbList.freightForwarderName},#{rmbList.itemColumnName}
             )
         </foreach>
 
     </insert>
 
     <insert id="syUsdAdd">
-        insert into sy_usd (id, sy_letter_deposit_id, freight_forwarder, amount, item_column,del_flag)
+        insert into sy_usd (id, sy_letter_deposit_id, freight_forwarder, amount, item_column,del_flag,freight_forwarder_name,item_column_name)
         values
         <foreach collection="usdList" item="usdList" separator=",">
             (
-            #{usdList.id}, #{usdList.syLetterDepositId}, #{usdList.freightForwarder}, #{usdList.amount}, #{usdList.itemColumn},0
+            #{usdList.id}, #{usdList.syLetterDepositId}, #{usdList.freightForwarder}, #{usdList.amount}, #{usdList.itemColumn},0,#{usdList.freightForwarderName},#{usdList.itemColumnName}
             )
         </foreach>
 

+ 1 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/syShippingOrder/entity/SyShippingOrder.java

@@ -98,6 +98,7 @@ public class SyShippingOrder {
 	/**最终船期*/
 	@Excel(name = "最终船期", width = 20, format = "yyyy-MM-dd")
     @ApiModelProperty(value = "最终船期")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
 	private java.util.Date theFinalShippingDate;
 	/**收货人*/
 	@Excel(name = "收货人", width = 15)

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

@@ -72,12 +72,12 @@ d.terms_of_deliveryvalue as termsOfDeliveryvalue
     </update>
 
     <select id="queryListRmb" resultType="org.jeecg.modules.documents.letterDeposit.entity.SyRmb">
-        select id,sy_letter_deposit_id as syLetterDepositId,freight_forwarder as freightForwarder,
+        select id,sy_letter_deposit_id as syLetterDepositId,freight_forwarder as freightForwarder,freight_forwarder_name as freight_forwarderName,item_column_name as itemColumnName,
          amount,item_column as itemColumn  from sy_rmb where del_flag = 0 and sy_letter_deposit_id = #{syLetterDepositId}
     </select>
 
     <select id="queryListUsd" resultType="org.jeecg.modules.documents.letterDeposit.entity.SyUsd">
-        select id,sy_letter_deposit_id as syLetterDepositId,freight_forwarder as freightForwarder,
+        select id,sy_letter_deposit_id as syLetterDepositId,freight_forwarder as freightForwarder,freight_forwarder_name as freight_forwarderName,item_column_name as itemColumnName,
          amount,item_column as itemColumn  from sy_usd where del_flag = 0 and sy_letter_deposit_id = #{syLetterDepositId}
     </select>
 

+ 37 - 5
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/syShippingOrder/service/impl/SyShippingOrderServiceImpl.java

@@ -566,7 +566,7 @@ public class SyShippingOrderServiceImpl extends ServiceImpl<SyShippingOrderMappe
         String cCode = "";
         String cVouchID = "";
         //获取单据号加1
-        cCode= org.jeecg.modules.system.util.oConvertUtils.addOne(purchaseWarehousingMapper.getMaxCode("cSPVCode","SalePayVouch","dcreatesystime"));
+        cCode= org.jeecg.modules.system.util.oConvertUtils.addOne(purchaseWarehousingMapper.getMaxCode("cSPVCode","SalePayVouch","cSPVCode"));
         //获取ID
         id = org.jeecg.modules.system.util.oConvertUtils.addOne(purchaseWarehousingMapper.getMaxCode("ID","SalePayVouch","dcreatesystime"));
         //单据id
@@ -598,14 +598,31 @@ public class SyShippingOrderServiceImpl extends ServiceImpl<SyShippingOrderMappe
         }
 
         int ii = 0;
+        //记录运费总金额
+        Double sumMoney = 0.00;
+
+        Boolean boo = false;
+        //记录除以毛重的总金额
+        BigDecimal sumImoney = BigDecimal.ZERO;
 
         try {
+            if(rmbList.size()!=0){
+                for (Map<String, Object> rmb : rmbList) {
+                    sumMoney = sumMoney+Double.parseDouble(rmb.get("amount").toString());
+                }
+            }
+            if(usdList.size()!=0){
+                for (Map<String, Object> usd : usdList) {
+                    sumMoney = sumMoney+Double.parseDouble(usd.get("amount").toString());
+                }
+            }
 
         //业务场景
         //一张托书有五个销售订单号,美元代币有三个,人民币代币有三个,此时需要生成30张销售费用支出单,每一个销售订单需要生成6个费用支出单,所以(5*6=30)
         for(Map<String,Object> li: itemList){
 
             if(rmbList.size()!=0) {
+
                 //人民币信息
                 for (Map<String, Object> rmb : rmbList) {
                     ii++;
@@ -650,8 +667,12 @@ public class SyShippingOrderServiceImpl extends ServiceImpl<SyShippingOrderMappe
                     Map<String, Object> maps = new HashMap<>();
                     maps.put("cSPVCode", cCode);//销售支出单号
                     //金额 = 以销售订单号为维度计算对应销售订单号下的毛重合计数/总毛重“费用支出金额
-                    double money = Double.parseDouble(li.get("grossWeight").toString()) / Double.parseDouble(map1.get("totalGrossWeight").toString());
-                    maps.put("iMoney", money*Double.parseDouble(rmb.get("amount").toString()));
+                     Double money = Double.parseDouble(li.get("grossWeight").toString()) / Double.parseDouble(map1.get("totalGrossWeight").toString());
+                     BigDecimal  imoney = new BigDecimal(money).multiply(new BigDecimal(rmb.get("amount").toString())).setScale(2,BigDecimal.ROUND_HALF_UP);
+                     sumImoney = sumImoney.add(imoney);
+
+                    // System.out.println("人民币:"+money);
+                    maps.put("iMoney", imoney);
                     maps.put("cExpCode", rmb.get("itemColumn"));//项目编码
                     maps.put("ID", id);
                     maps.put("irowno", ii);//行号
@@ -703,8 +724,12 @@ public class SyShippingOrderServiceImpl extends ServiceImpl<SyShippingOrderMappe
                     //添加子表信息
                     Map<String, Object> maps = new HashMap<>();
                     maps.put("cSPVCode", cCode);//销售支出单号
-                    double money = Double.parseDouble(li.get("grossWeight").toString()) / Double.parseDouble(map1.get("totalGrossWeight").toString());
-                    maps.put("iMoney", money*Double.parseDouble(usd.get("amount").toString()));
+                    Double money = Double.parseDouble(li.get("grossWeight").toString()) / Double.parseDouble(map1.get("totalGrossWeight").toString());
+                    BigDecimal  imoney = new BigDecimal(money).multiply(new BigDecimal(usd.get("amount").toString())).setScale(2,BigDecimal.ROUND_HALF_UP);
+                    sumImoney = sumImoney.add(imoney);
+
+                    System.out.println("美元:"+money);
+                    maps.put("iMoney", imoney);
                     maps.put("cExpCode",usd.get("itemColumn"));//项目编码
                     maps.put("ID", id);
                     maps.put("irowno", ii);//行号
@@ -713,6 +738,13 @@ public class SyShippingOrderServiceImpl extends ServiceImpl<SyShippingOrderMappe
             }
         }
 
+        //判断算出来的金额是否跟运费合计金额相等
+            if(sumMoney - sumImoney.doubleValue() ==0){
+            }else{
+                BigDecimal mo = new BigDecimal(sumMoney).subtract(sumImoney).setScale(2,BigDecimal.ROUND_DOWN);
+                listmaps.get(listmaps.size()-1).put("iMoney",(new BigDecimal(listmaps.get(listmaps.size()-1).get("iMoney").toString()).add(mo)));
+            }
+
             //循环新增主表
             for(Map<String,Object> ma:listmap){
                 syShippingOrderMapper.saveSalePayVouch(ma);