Quellcode durchsuchen

凯和下单生成海运费 公司端修改箱信息类型不一致箱号不存在不能保存

lazhaoqian vor 3 Jahren
Ursprung
Commit
303bf336e5

+ 70 - 2
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java

@@ -174,6 +174,8 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
     private TAddressMapper tAddressMapper;
     @Autowired
     private TCntrtrackingMapper tCntrtrackingMapper;
+    @Autowired
+    private TCtnpriceItemsMapper tCtnpriceItemsMapper;
 
     private static final Logger log = LoggerFactory.getLogger(AddressUtils.class);
 
@@ -899,6 +901,66 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 }
             }
         }
+        //获取海运费ID
+        TFees tFees = tFeesMapper.selectTFeesByFName("海运费");
+        if (tFees == null){
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return AjaxResult.error("费用信息中缺少海运费请维护");
+        }
+        //获取计价单位ID
+        String dictValue = sysDictDataMapper.selectDictValue("data_unitfees", "箱量");
+        if (StringUtils.isEmpty(dictValue)){
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return AjaxResult.error("计价单位中缺少箱量请维护");
+        }
+        //结算方式
+        String fSrcType = sysDictDataMapper.selectDictValue("data_stltype_type", "月结");
+        if (StringUtils.isEmpty(dictValue)){
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return AjaxResult.error("结算方式中缺少月结请维护");
+        }
+        //业务类型
+        String fBusinessType = sysDictDataMapper.selectDictValue("data_billType", "内贸");
+        if (StringUtils.isEmpty(dictValue)){
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return AjaxResult.error("业务类型中缺少内贸请维护");
+        }
+        //获取航次对应的运价
+        List<TCtnpriceItems> tCtnpriceItems = tCtnpriceItemsMapper.selectItemMeaasge(warehouseBills.getfVoyid(), tWarehousebillsCntrs.get(0).getfCntrid());
+        TVoyage voyage = tVoyageMapper.selectTVoyageByFid(warehouseBills.getfVoyid());
+        //生成运价费用
+        TWarehousebillsfees wbDr = new TWarehousebillsfees();
+        wbDr.setfPid(warehouseBills.getfId());//主表ID
+        wbDr.setfCorpid(clientFid);//客户ID
+        wbDr.setfFeeid(tFees.getfId());//费用ID
+        wbDr.setfFeeunitid(Long.valueOf(dictValue));//计价单位
+        wbDr.setfQty(new BigDecimal(tWarehousebillsCntrs.get(0).getfCntrcount()));//数量
+        if (CollectionUtils.isNotEmpty(tCtnpriceItems)){
+            wbDr.setfUnitprice(tCtnpriceItems.get(0).getfPrice());//单价
+            wbDr.setfAmount(tCtnpriceItems.get(0).getfPrice().multiply(new BigDecimal(tWarehousebillsCntrs.get(0).getfCntrcount())));//金额
+        }else {
+            wbDr.setfUnitprice(new BigDecimal(0));//单价
+            wbDr.setfAmount(new BigDecimal(0));//金额
+        }
+        wbDr.setfCurrency("RMB");//币别
+        wbDr.setfExrate(new BigDecimal(1));//汇率
+        wbDr.setfTaxrate(new BigDecimal(0));//税率
+        wbDr.setfDc("D");//收付
+        wbDr.setfStltypeid(Long.valueOf(fSrcType));//结算方式
+        wbDr.setRemark(voyage.getfNo());//备注 航次名
+        wbDr.setfSrcTypeId(2L);//来源订舱
+        wbDr.setfBilltype(billsType);
+        wbDr.setCreateTime(new Date());
+        wbDr.setSrcBillNo(warehouseBills.getfBillno());
+        wbDr.setCreateBy(loginUser.getUser().getUserName());
+        wbDr.setfBusinessType(fBusinessType);//业务类型
+        //wbDr.setfChargedate(warehouseBills.getfChargedate());
+        //wbDr.setfBillingDeadline(warehouseBills.getfChargedate());
+        if (warehouseBills.getfBsdate() != null && !warehouseBills.getfBsdate().equals("")) {
+            wbDr.setfBsdate(warehouseBills.getfBsdate());
+        }
+        tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbDr);
+        map.put("TWarehousebillsfees", wbDr);
         if (isApprove) {
             AuditItems auditItems = new AuditItems();
             auditItems.setLevelId(0L);
@@ -2421,17 +2483,23 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         }
         List<TWarehouseBills> warehouseBillsList = tWarehouseBillsMapper.webVersionOrderById(warehouseBills);
         map.put("tWarehouseBills", warehouseBillsList.get(0));
+        int cntritemsfPid = tWarehousebillsCntritemsMapper.deleteTWarehousebillsCntritemsfPid(warehouseBills.getfId());
         if (StringUtils.isNotEmpty(tWarehousebillsCntritems)) {
             JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsCntritems);
             List<TWarehousebillsCntritems> tWarehousebillsCntritemsList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsCntritems.class);
             if (CollectionUtils.isNotEmpty(tWarehousebillsCntritemsList)) {
-                int cntritemsfPid = tWarehousebillsCntritemsMapper.deleteTWarehousebillsCntritemsfPid(warehouseBills.getfId());
                 for (TWarehousebillsCntritems warehousebillsCntritems : tWarehousebillsCntritemsList) {
+                    TWarehousebillsCntr warehousebillsCntr = tWarehousebillsCntrMapper.selectTWarehousebillsCntrByPId(warehouseBills.getfId());
+                    AjaxResult ajaxResult = this.judgeBoxPile(warehousebillsCntritems, warehousebillsCntr.getfCntrid());
+                    String code = ajaxResult.get("code").toString();
+                    if ("500".equals(code)) {
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return ajaxResult;
+                    }
                     warehousebillsCntritems.setfPid(warehouseBills.getfId());
                     warehousebillsCntritems.setCreateTime(DateUtils.getNowDate());
                     warehousebillsCntritems.setCreateBy(SecurityUtils.getUsername());
                     int cntr = tWarehousebillsCntritemsMapper.insertTWarehousebillsCntritems(warehousebillsCntritems);
-
                 }
             }
             map.put("tWarehousebillsCntritemsList", tWarehousebillsCntritemsList);