|
@@ -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);
|