|
@@ -3242,55 +3242,6 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 根据仓库主表id 更新对应明细表状态
|
|
|
- *
|
|
|
- * @param fPid 仓库主表id
|
|
|
- * @return 结果
|
|
|
- */
|
|
|
- @Transactional
|
|
|
- public AjaxResult storageFeeFollow(Long fPid, long fettle) {
|
|
|
- if (StringUtils.isNull(fPid)) {
|
|
|
- return AjaxResult.error("仓库更新状态未找到主表信息,请与管理员联系");
|
|
|
- }
|
|
|
- int warehouseUpdateResult = tWarehouseBillsMapper.warehouseFollowUpdate(fPid, fettle, new Date());
|
|
|
- if (warehouseUpdateResult <= 0) {
|
|
|
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- return AjaxResult.error("更新库存明细状态失败,请联系管理员");
|
|
|
- }
|
|
|
- TWarehousebillsfees warehousebillsfees = new TWarehousebillsfees();
|
|
|
- warehousebillsfees.setfPid(fPid);
|
|
|
- List<TWarehousebillsfees> warehousebillsfeesList = tWarehousebillsfeesMapper.selectTWarehousebillsfeesList(warehousebillsfees);
|
|
|
- for (TWarehousebillsfees wareItem : warehousebillsfeesList) {
|
|
|
- if (StringUtils.isNull(wareItem.getSrcId())) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- if ("KCZZ".equals(wareItem.getfBilltype())) {
|
|
|
- TWhgenleg tWhgenleg = tWhgenlegMapper.selectTWhgenlegById(wareItem.getSrcId());
|
|
|
- tWhgenleg.setfChargedate(DateUtils.dateAdd(wareItem.getfBillingDeadline(), 1));
|
|
|
- int i = tWhgenlegMapper.updateTWhgenleg(tWhgenleg);
|
|
|
- if (i <= 0) {
|
|
|
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- return AjaxResult.error("更新库存费用状态失败,请联系管理员");
|
|
|
- }
|
|
|
- } else {
|
|
|
- TWarehousebillsitems tWarehousebillsitems = tWarehousebillsitemsMapper.selectTWarehousebillsitemsById(wareItem.getSrcId());
|
|
|
- tWarehousebillsitems.setfChargedate(DateUtils.dateAdd(wareItem.getfBillingDeadline(), 1));
|
|
|
- if ("SJCK".equals(wareItem.getfBilltype())) {
|
|
|
- tWarehousebillsitems.setfStorageFeeDeadline(wareItem.getfBillingDeadline());
|
|
|
- }
|
|
|
- tWarehousebillsitemsMapper.updateTWarehousebillsitems(tWarehousebillsitems);
|
|
|
- }
|
|
|
- }
|
|
|
- int feesUpdateResult = tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(fPid, fettle, new Date());
|
|
|
- if (feesUpdateResult <= 0) {
|
|
|
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- return AjaxResult.error("更新库存费用状态失败,请联系管理员");
|
|
|
- }
|
|
|
- return AjaxResult.success();
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
* 入库确认
|
|
|
*
|
|
|
* @param warehouseBills 主表
|
|
@@ -4905,24 +4856,92 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
auditItems.setTimes(tWarehousebills.getfTimes());
|
|
|
AjaxResult approvalFlow = auditItemsService.createApprovalFlow(auditItems);
|
|
|
String code = approvalFlow.get("code").toString();
|
|
|
-// Long code = Long.valueOf(String.valueOf(ajaxResult.get("code"))).longValue();
|
|
|
if ("500".equals(code)) {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
}
|
|
|
return approvalFlow;
|
|
|
} else {
|
|
|
- AjaxResult ajaxResult = storageFeeFollow(fPid, 6L);
|
|
|
- String code = ajaxResult.get("code").toString();
|
|
|
-// Long code = Long.valueOf(String.valueOf(ajaxResult.get("code"))).longValue();
|
|
|
- if ("500".equals(code)) {
|
|
|
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- }
|
|
|
- return ajaxResult;
|
|
|
+ approvedStorageFee(fPid, 6L, new Date());
|
|
|
+ return AjaxResult.success();
|
|
|
}
|
|
|
}
|
|
|
return AjaxResult.success(tWarehousebills);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 计算仓储费审核通过
|
|
|
+ * @param warehouseId 主表id
|
|
|
+ * @param fettle 状态
|
|
|
+ * @param date 审核时间
|
|
|
+ */
|
|
|
+ public void approvedStorageFee(Long warehouseId, Long fettle, Date date) {
|
|
|
+ tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(warehouseId, fettle, date);
|
|
|
+ // 查出主表数据
|
|
|
+ TWarehouseBills warehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(warehouseId);
|
|
|
+ if (Objects.isNull(warehouseBills)) {
|
|
|
+ throw new WarehouseException("未找到仓储信息");
|
|
|
+ }
|
|
|
+ List<TWarehousebillsfees> feesList = tWarehousebillsfeesMapper.selectWarehousebillsfeesByPId(warehouseBills.getfId());
|
|
|
+ if (CollectionUtils.isEmpty(feesList)) {
|
|
|
+ throw new WarehouseException("未找到需要跟新的费用信息");
|
|
|
+ }
|
|
|
+ // 过滤出明细信息查询是否存在已计算仓储费
|
|
|
+ List<Long> ids = feesList.stream().map(TWarehousebillsfees::getSrcId).distinct().collect(toList());
|
|
|
+ if (tWarehousebillsitemsMapper.selectIsCalculateStorageFeesByIds(ids) > 0) {
|
|
|
+ throw new WarehouseException("计算费用中存在已计算仓储费信息");
|
|
|
+ }
|
|
|
+
|
|
|
+ for (TWarehousebillsfees fees : feesList) {
|
|
|
+ storageFeeUpdateItem(warehouseBills, fees);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 计算仓储费计算更新出库货转信息
|
|
|
+ *
|
|
|
+ * @param warehouseBills 主表信息
|
|
|
+ * @param fees 仓储费信息
|
|
|
+ */
|
|
|
+ private void storageFeeUpdateItem(TWarehouseBills warehouseBills, TWarehousebillsfees fees) {
|
|
|
+ Date chargeDate = DateUtils.addDays(fees.getfBillingDeadline(), 1);
|
|
|
+ // 如果是库存总帐
|
|
|
+ if (WarehouseTypeEnum.KCZZ.getType().equals(fees.getfBilltype())) {
|
|
|
+ TWhgenleg whgenleg = new TWhgenleg();
|
|
|
+ whgenleg.setfId(fees.getSrcId());
|
|
|
+ whgenleg.setfChargedate(chargeDate);
|
|
|
+ tWhgenlegMapper.updateTWhgenleg(whgenleg);
|
|
|
+ // 如果计算之前信息
|
|
|
+ if (!fees.getfBillingDeadline().after(warehouseBills.getUpdateTime())) {
|
|
|
+ // 查询时间区间内的仓储业务明细信息
|
|
|
+ List<String> timeList = new ArrayList<>();
|
|
|
+ timeList.add(DateUtils.dateToString(DateUtils.dateConversionMin(fees.getfBillingDeadline())));
|
|
|
+ timeList.add(DateUtils.dateToString(DateUtils.dateConversionMax(warehouseBills.getUpdateTime())));
|
|
|
+ warehouseBills.setItemBsDateList(timeList);
|
|
|
+ List<TWarehousebillsitems> warehousebillsitemsList = tWarehousebillsitemsMapper.selectListByCorpId(warehouseBills);
|
|
|
+ // 过滤出出库、货转,更新对应仓储费计费日期
|
|
|
+ List<TWarehousebillsitems> itemList = warehousebillsitemsList.stream().filter(li ->
|
|
|
+ li.getfBilltype().equals(WarehouseTypeEnum.SJCK.getType()) ||
|
|
|
+ li.getfBilltype().equals(WarehouseTypeEnum.HQZY.getType())).collect(toList());
|
|
|
+ if (CollectionUtils.isNotEmpty(itemList)) {
|
|
|
+ itemList.forEach(li -> {
|
|
|
+ li.setfChargedate(chargeDate);
|
|
|
+ li.setUpdateTime(new Date());
|
|
|
+ tWarehousebillsitemsMapper.updateTWarehousebillsitems(li);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ TWarehousebillsitems billsItem = new TWarehousebillsitems();
|
|
|
+ billsItem.setfId(fees.getSrcId());
|
|
|
+ billsItem.setfChargedate(chargeDate);
|
|
|
+ if ("SJCK".equals(fees.getfBilltype())) {
|
|
|
+ billsItem.setfStorageFeeDeadline(fees.getfBillingDeadline());
|
|
|
+ billsItem.setIsCalculateStorageFees(WarehouseTypeEnum.CALCULATE.getType());
|
|
|
+ }
|
|
|
+ tWarehousebillsitemsMapper.updateTWarehousebillsitems(billsItem);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public AjaxResult insertStorageFeeList(List<StorageChargeInsert> storageChargeInsert, LoginUser loginUser, String billsType) {
|
|
|
if (CollectionUtils.isEmpty(storageChargeInsert)) {
|
|
@@ -5023,13 +5042,8 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
}
|
|
|
return approvalFlow;
|
|
|
} else {
|
|
|
- AjaxResult ajaxResult = storageFeeFollow(fPid, 6L);
|
|
|
- String code = ajaxResult.get("code").toString();
|
|
|
-// Long code = Long.valueOf(String.valueOf(ajaxResult.get("code"))).longValue();
|
|
|
- if ("500".equals(code)) {
|
|
|
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- }
|
|
|
- return ajaxResult;
|
|
|
+ approvedStorageFee(fPid, 6L, new Date());
|
|
|
+ return AjaxResult.success();
|
|
|
}
|
|
|
}
|
|
|
}
|