|
@@ -514,7 +514,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
if (StringUtils.isNotEmpty(warehousebillsitems.getfLocalcntrno())) {
|
|
|
tWhgenleg.setfLocalcntrno(warehousebillsitems.getfLocalcntrno());
|
|
|
}
|
|
|
- if (WarehouseTypeEnum.HQZY.getType().equals(warehouseBills.getfBilltype())) {
|
|
|
+ if (WarehouseTypeEnum.HQZY.getType().equals(warehouseBills.getfBilltype()) || WarehouseTypeEnum.CKDB.getType().equals(warehouseBills.getfBilltype())) {
|
|
|
// 仓储计费日期
|
|
|
tWhgenleg.setfChargedate(warehousebillsitems.getfBsdate());
|
|
|
} else {
|
|
@@ -3324,6 +3324,10 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
}
|
|
|
int i = 1;
|
|
|
for (TWarehousebillsitems item : warehousebillsitemsList) {
|
|
|
+ // 如果业务时间超出当前时间则不允许
|
|
|
+ if (item.getfBsdate().after(new Date())) {
|
|
|
+ throw new WarehouseException("业务日期不得超出当前日期");
|
|
|
+ }
|
|
|
// 查询是否可以修改
|
|
|
TWarehousebillsitems tWarehousebillsitems = tWarehousebillsitemsMapper.selectTWarehousebillsitemsById(item.getfId());
|
|
|
if (tWarehousebillsitems.getfBillstatus() == 40) {
|
|
@@ -3364,11 +3368,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
}
|
|
|
}
|
|
|
if (StringUtils.isNotNull(tWhgenle)) {
|
|
|
- int i1 = updateTWhgenlegData(item, tWhgenle.getfId(), billsType);
|
|
|
- if (i1 <= 0) {
|
|
|
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- return AjaxResult.error("更新库存总账失败");
|
|
|
- }
|
|
|
+ updateTWhgenlegData(item, tWhgenle.getfId(), billsType);
|
|
|
} else {
|
|
|
if (instalTWhgenleg(tWarehouseBills, item, loginUser.getUser()) <= 0) {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
@@ -3601,6 +3601,10 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
List<TFees> feesList = new ArrayList<>();
|
|
|
List<TWarehousebillsfees> warehousebillsfees = new ArrayList<>();
|
|
|
for (TWarehousebillsitems wbItem : warehousebillsitemsList) {
|
|
|
+ // 如果业务时间超出当前时间则不允许
|
|
|
+ if (wbItem.getfBsdate().after(new Date())) {
|
|
|
+ throw new WarehouseException("业务日期不得超出当前日期");
|
|
|
+ }
|
|
|
// 查询是否可以修改
|
|
|
TWarehousebillsitems tWarehousebillsitems = tWarehousebillsitemsMapper.selectTWarehousebillsitemsById(wbItem.getfId());
|
|
|
if (tWarehousebillsitems.getfBillstatus() == 40) {
|
|
@@ -3630,6 +3634,8 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
return AjaxResult.error("库存明细第" + i + "行库存为空");
|
|
|
} else { // 非空修改库存总账
|
|
|
+ //校验计费日期是等于库存总帐计费日,如果不相等则报错
|
|
|
+ checkWhgenleg(tWarehouseBills, tWhgenle);
|
|
|
// 库存 < 出库件数
|
|
|
if (tWhgenle.getfQtyblc() < wbItem.getfQty()) {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
@@ -3644,35 +3650,6 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
if (StringUtils.isNull(tWarehouseBills.getfCorpid())) {
|
|
|
return AjaxResult.error("库存明细第" + i + "行请检查客户信息,操作终止");
|
|
|
}
|
|
|
- /*long fCorpid = tWarehouseBills.getfCorpid();
|
|
|
- TGoods tGoods = tGoodsMapper.selectTGoodsById(wbItem.getfGoodsid());
|
|
|
- long fGoodsid = tGoods.getfTypeid();
|
|
|
- long fBillingway = wbItem.getfBillingway();
|
|
|
- long fQty = wbItem.getfQty();
|
|
|
- // 计算仓储费明细
|
|
|
- Map<String, Object> objectMap = tWarehouseAgreementService.getCarryingCost(fCorpid, fGoodsid, dateDay, fBillingway, fQty , 0L);
|
|
|
- if (StringUtils.isNull(objectMap)) {
|
|
|
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- return AjaxResult.error("库存明细第" + i + "行没有维护出库明细的仓储协议,操作终止");
|
|
|
- }
|
|
|
- Long feeId = (Long) objectMap.get("feeId");
|
|
|
- BigDecimal amt = (BigDecimal) objectMap.get("amt");
|
|
|
- TFees tFees = tFeesMapper.selectTFeesById(feeId);
|
|
|
- if (StringUtils.isNotNull(tFees)) {
|
|
|
- feesList.add(tFees);
|
|
|
- }
|
|
|
- TWarehousebillsfees fees = new TWarehousebillsfees();
|
|
|
- fees.setfPid(fPid);
|
|
|
- fees.setfFeeid(feeId);
|
|
|
- fees.setfCorpid(tWarehouseBills.getfCorpid());
|
|
|
- fees.setfFeeUnitid(fBillingway);
|
|
|
- fees.setfQty(new BigDecimal(1));
|
|
|
- fees.setfUnitprice(amt);
|
|
|
- fees.setfAmount(amt);
|
|
|
- fees.setfExrate(new BigDecimal(1));
|
|
|
- fees.setfCurrency("RMB");
|
|
|
- fees.setRemark(dateDay + "天" + tFees.getfName());
|
|
|
- warehousebillsfees.add(fees);*/
|
|
|
}
|
|
|
wbItem.setfBillstatus(40L);
|
|
|
} else if (WarehouseTypeEnum.CKDB.getType().equals(billsType) || WarehouseTypeEnum.HWTG.getType().equals(billsType)) { // 调拨查询
|
|
@@ -3680,6 +3657,8 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
return AjaxResult.error("库存明细第" + i + "行库存为空");
|
|
|
} else { // 非空修改库存总账
|
|
|
+ //校验计费日期是等于库存总帐计费日,如果不相等则报错
|
|
|
+ checkWhgenleg(tWarehouseBills, tWhgenle);
|
|
|
if (tWhgenle.getfQtyblc() < wbItem.getfQty()) { // 1、 库存 < 调拨件数 提示库存不足
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
return AjaxResult.error("库存明细第" + i + "行库存不足");
|
|
@@ -3708,6 +3687,8 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
return AjaxResult.error("库存明细第" + i + "行库存为空");
|
|
|
} else { // 非空修改库存总账
|
|
|
+ //校验计费日期是等于库存总帐计费日,如果不相等则报错
|
|
|
+ checkWhgenleg(tWarehouseBills, tWhgenle);
|
|
|
if (tWhgenle.getfQtyblc() < wbItem.getfQty()) { // 1、 库存 < 调拨件数 提示库存不足
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
return AjaxResult.error("库存明细第" + i + "行库存不足");
|
|
@@ -3820,6 +3801,18 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
return AjaxResult.success("成功", map);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 校验计费日期是等于库存总帐计费日,如果不相等则报错
|
|
|
+ *
|
|
|
+ * @param wbItem
|
|
|
+ * @param tWhgenle
|
|
|
+ */
|
|
|
+ private void checkWhgenleg(TWarehouseBills wbItem, TWhgenleg tWhgenle) {
|
|
|
+ // 如果仓储费计费日期超出 库存总帐的计费日期不相等则报异常
|
|
|
+ if (wbItem.getfChargedate().before(tWhgenle.getfChargedate())) {
|
|
|
+ throw new WarehouseException("仓储费计费日期与库存总帐计费日期不相符");
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 打印作业单
|
|
@@ -4034,7 +4027,8 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
storageFeesDto.setStartTime(fBsdate);
|
|
|
storageFeesDto.setEndTime((Date) item.get("fOriginalbilldate"));
|
|
|
} else {
|
|
|
- storageFeesDto.setStartTime((Date) item.get("fOriginalbilldate"));
|
|
|
+ storageFeesDto.setStartTime((Date) item.get("fChargedate"));
|
|
|
+// storageFeesDto.setStartTime((Date) item.get("fOriginalbilldate"));
|
|
|
storageFeesDto.setEndTime(warehouseBills.getfBillingDeadline());
|
|
|
fInventoryDays = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), (Date) item.get("fOriginalbilldate"));
|
|
|
fBillingDays = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), (Date) item.get("fChargedate"));
|
|
@@ -4088,12 +4082,11 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
fees.setfProductName(item.get("fGoodsids").toString());
|
|
|
if (WarehouseTypeEnum.SJCK.getType().equals(fBilltype) ||
|
|
|
WarehouseTypeEnum.HQZY.getType().equals(fBilltype)) {
|
|
|
- fees.setfChargedate((Date) item.get("fOriginalbilldate"));
|
|
|
fees.setfBillingDeadline(fBsdate);
|
|
|
} else {
|
|
|
- fees.setfChargedate((Date) item.get("fChargedate"));
|
|
|
fees.setfBillingDeadline(warehouseBills.getfBillingDeadline());
|
|
|
}
|
|
|
+ fees.setfChargedate((Date) item.get("fChargedate"));
|
|
|
fees.setfTaxrate(new BigDecimal(taxRate.get(0).getDictValue()));
|
|
|
fees.setfOriginalbilldate((Date) item.get("fOriginalbilldate"));
|
|
|
|
|
@@ -4598,7 +4591,6 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
JSONArray warehouseJSON = JSONArray.parseArray(warehouseItems);
|
|
|
List<TWarehousebillsfees> itemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsfees.class);
|
|
|
for (TWarehousebillsfees item : itemsList) {
|
|
|
- item.setfId(null);
|
|
|
item.setSrcBillNo(tWarehousebills.getfBillno());
|
|
|
item.setfPid(fPid);
|
|
|
item.setfBillstatus(tWarehousebills.getfBillstatus());
|
|
@@ -4608,7 +4600,6 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
JSONArray feesJSON = JSON.parseArray(warehouseFees);
|
|
|
List<TWarehousebillsfees> warehousebillsfeesList = JSON.parseArray(feesJSON.toJSONString(), TWarehousebillsfees.class);
|
|
|
for (TWarehousebillsfees fees : warehousebillsfeesList) {
|
|
|
- fees.setfId(null);
|
|
|
fees.setfPid(fPid);
|
|
|
fees.setfDc("D");
|
|
|
fees.setfBilltype(WarehouseTypeEnum.JSCCF.getType());
|
|
@@ -4998,10 +4989,26 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
TWhgenleg whgenleg = new TWhgenleg();
|
|
|
whgenleg.setfId(wareItem.getSrcId());
|
|
|
whgenleg.setfChargedate(wareItem.getfChargedate());
|
|
|
- int i = tWhgenlegMapper.updateTWhgenleg(whgenleg);
|
|
|
- if (i <= 0) {
|
|
|
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- return AjaxResult.error("更新库存费用状态失败,请联系管理员");
|
|
|
+ tWhgenlegMapper.updateTWhgenleg(whgenleg);
|
|
|
+ // 如果计算之前信息
|
|
|
+ if (!wareItem.getfBillingDeadline().after(tWarehousebills.getUpdateTime())) {
|
|
|
+ // 查询时间区间内的仓储业务明细信息
|
|
|
+ List<String> timeList = new ArrayList<>();
|
|
|
+ timeList.add(DateUtils.dateToString(DateUtils.dateConversionMin(wareItem.getfBillingDeadline())));
|
|
|
+ timeList.add(DateUtils.dateToString(DateUtils.dateConversionMax(tWarehousebills.getUpdateTime())));
|
|
|
+ tWarehousebills.setItemBsDateList(timeList);
|
|
|
+ List<TWarehousebillsitems> warehousebillsitemsList = tWarehousebillsitemsMapper.selectListByCorpId(tWarehousebills);
|
|
|
+ // 过滤出出库、货转,更新对应仓储费计费日期
|
|
|
+ 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(wareItem.getfChargedate());
|
|
|
+ li.setUpdateTime(new Date());
|
|
|
+ tWarehousebillsitemsMapper.updateTWarehousebillsitems(li);
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
} else {
|
|
|
TWarehousebillsitems billsItem = new TWarehousebillsitems();
|
|
@@ -7004,10 +7011,12 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
TWarehouse tWarehouse = tWarehouseList.stream().filter(li -> Objects.equals(li.getfId(), infoVO.getfWarehouseid())).findFirst()
|
|
|
.orElseThrow(() -> new WarehouseException("仓库不存在"));
|
|
|
infoVO.setWarehouseName(tWarehouse.getfName());
|
|
|
- // 调入仓库
|
|
|
- TWarehouse inWarehouse = tWarehouseList.stream().filter(li -> Objects.equals(li.getfId(), infoVO.getfInwarehouseid())).findFirst()
|
|
|
- .orElseThrow(() -> new WarehouseException("仓库不存在"));
|
|
|
- infoVO.setInWarehouseName(inWarehouse.getfName());
|
|
|
+ if (StringUtils.isNotNull(infoVO.getfInwarehouseid())) {
|
|
|
+ // 调入仓库
|
|
|
+ TWarehouse inWarehouse = tWarehouseList.stream().filter(li -> Objects.equals(li.getfId(), infoVO.getfInwarehouseid())).findFirst()
|
|
|
+ .orElseThrow(() -> new WarehouseException("仓库不存在"));
|
|
|
+ infoVO.setInWarehouseName(inWarehouse.getfName());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|