|
@@ -587,7 +587,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
Date minDate = warehousebillsitemsList.get(0).getfBsdate();
|
|
Date minDate = warehousebillsitemsList.get(0).getfBsdate();
|
|
for (int i = 0; i < totalCount; i++) {
|
|
for (int i = 0; i < totalCount; i++) {
|
|
Date date = warehousebillsitemsList.get(i).getfBsdate();
|
|
Date date = warehousebillsitemsList.get(i).getfBsdate();
|
|
- if (minDate.before(date)) {
|
|
|
|
|
|
+ if (minDate.after(date)) {
|
|
minDate = date;
|
|
minDate = date;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -711,6 +711,13 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbCr);
|
|
tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbCr);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ //查询删除的仓储费收费信息
|
|
|
|
+ List<Long> longs = tWarehousebillsfeesMapper.selectTWarehousebillsfeesSrcId(fPid);
|
|
|
|
+ if (CollectionUtils.isNotEmpty(longs)){
|
|
|
|
+ int i = tWarehousebillsitemsMapper.updatefStorageFeeDeadline(fPid, longs);
|
|
|
|
+ }else {
|
|
|
|
+ int i = tWarehousebillsitemsMapper.updatefStorageFeeDeadlinefPid(fPid);
|
|
|
|
+ }
|
|
TWarehousebillsitems warehousebillsitems = new TWarehousebillsitems();
|
|
TWarehousebillsitems warehousebillsitems = new TWarehousebillsitems();
|
|
warehousebillsitems.setfPid(fPid);
|
|
warehousebillsitems.setfPid(fPid);
|
|
map.put("warehouseBills", tWarehouseBillsMapper.selectTWarehousebillsById(warehouseBills.getfId()));
|
|
map.put("warehouseBills", tWarehouseBillsMapper.selectTWarehousebillsById(warehouseBills.getfId()));
|
|
@@ -3671,6 +3678,117 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
map.put("itemsList", itemsList);
|
|
map.put("itemsList", itemsList);
|
|
return map;
|
|
return map;
|
|
}
|
|
}
|
|
|
|
+ /**
|
|
|
|
+ * 批量生成计算仓储费信息
|
|
|
|
+ *
|
|
|
|
+ * @param warehouseBills
|
|
|
|
+ * @param mapItem
|
|
|
|
+ * @param loginUser
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public Map<String, Object> getWarehouseItemsList(TWarehouseBills warehouseBills, List<Map<String, Object>> mapItem, LoginUser loginUser) {
|
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
|
+ long feeId = 0L;
|
|
|
|
+ BigDecimal sumAmt = new BigDecimal(0);
|
|
|
|
+ List<TWarehousebillsfees> itemsList = new ArrayList<>();
|
|
|
|
+ List<SysDictData> taxRate = sysDictDataMapper.selectDictDataByType("tax_rate");
|
|
|
|
+ for (Map<String, Object> item : mapItem) {
|
|
|
|
+ if (StringUtils.isNull(item.get("fBillingway"))) {
|
|
|
|
+ map.put("error", "单号:" + item.get("fBillno") + ",业务日期:" + item.get("fBsdate") + "未找到库存总账的计费单位,请确认");
|
|
|
|
+ return map;
|
|
|
|
+ }
|
|
|
|
+ Date fBsdate = (Date) item.get("fBsdate");
|
|
|
|
+ long fCorpid = warehouseBills.getfCorpid();
|
|
|
|
+ String fBilltype = (String) item.get("fBilltype");
|
|
|
|
+ long fGoodsid = Long.parseLong((String) item.get("fTypeid"));
|
|
|
|
+ long fId = Long.valueOf(String.valueOf(item.get("fId"))).longValue();
|
|
|
|
+ // 累计计费天数
|
|
|
|
+ long accumulatedDays = DateUtils.getDateDay((Date) item.get("fChargedate"), (Date) item.get("fOriginalbilldate"));
|
|
|
|
+ // 库存天数
|
|
|
|
+ long fInventoryDays = 0L;
|
|
|
|
+ // 要计费天数
|
|
|
|
+ long fBillingDays = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), (Date) item.get("fOriginalbilldate"));
|
|
|
|
+ if ("SJCK".equals(fBilltype)) {
|
|
|
|
+ fInventoryDays = DateUtils.getDateDay(fBsdate, (Date) item.get("fOriginalbilldate"));
|
|
|
|
+ fBillingDays = fInventoryDays;
|
|
|
|
+ } else if ("HQZY".equals(fBilltype)) {
|
|
|
|
+ fInventoryDays = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), fBsdate);
|
|
|
|
+ } else {
|
|
|
|
+ fBillingDays = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), (Date) item.get("fChargedate"));
|
|
|
|
+ fInventoryDays = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), (Date) item.get("fOriginalbilldate"));
|
|
|
|
+ }
|
|
|
|
+ /*if ("KCZZ".equals(fBilltype)) {
|
|
|
|
+ } else {
|
|
|
|
+ fInventoryDays = Long.valueOf(String.valueOf(item.get("fBillingDays")));
|
|
|
|
+ }*/
|
|
|
|
+ Long dictLabel = Long.valueOf(String.valueOf(item.get("fBillingway")));
|
|
|
|
+ BigDecimal fQty = acquiredQuantity(item, dictLabel);
|
|
|
|
+ if (fQty.equals(BigDecimal.ZERO)) {
|
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
|
+ return AjaxResult.error("单号:" + item.get("fBillno") + ",业务日期:" + item.get("fBsdate") + "未找到计费单位,请确认");
|
|
|
|
+ }
|
|
|
|
+ // 计算仓储费明细
|
|
|
|
+ Map<String, Object> objectMap = tWarehouseAgreementService.getCarryingCost(fCorpid, fGoodsid, fBillingDays, dictLabel, fQty, accumulatedDays);
|
|
|
|
+ if (StringUtils.isNull(objectMap)) {
|
|
|
|
+ map.put("error", "单号:" + item.get("fBillno") + ",业务日期:" + item.get("fBsdate") + "未找到仓储费协议,请确认");
|
|
|
|
+ return map;
|
|
|
|
+ }
|
|
|
|
+ String mblno = "";
|
|
|
|
+ if (StringUtils.isNotNull(item.get("fMblno"))) {
|
|
|
|
+ mblno = item.get("fMblno").toString();
|
|
|
|
+ }
|
|
|
|
+ String remark = objectMap.get("remark").toString();
|
|
|
|
+ feeId = Long.valueOf(String.valueOf(objectMap.get("feeId"))).longValue();
|
|
|
|
+ BigDecimal amt = (BigDecimal) objectMap.get("amt");
|
|
|
|
+ map.put("feeId", feeId);
|
|
|
|
+ map.put("itemFeeId", objectMap.get("feeId"));
|
|
|
|
+ sumAmt = sumAmt.add(amt).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+ TWarehousebillsfees fees = new TWarehousebillsfees();
|
|
|
|
+ fees.setfFeeid(feeId);
|
|
|
|
+ fees.setfDc("D");
|
|
|
|
+ fees.setfAmt(amt);
|
|
|
|
+ fees.setSrcId(fId);
|
|
|
|
+ fees.setfMblno(mblno);
|
|
|
|
+ fees.setRemark(remark);
|
|
|
|
+ fees.setfFeeunitid(2L);
|
|
|
|
+ fees.setfAmount(sumAmt);
|
|
|
|
+ fees.setfBillstatus(2L);
|
|
|
|
+ fees.setfCurrency("RMB");
|
|
|
|
+ fees.setfBsdate(fBsdate);
|
|
|
|
+ fees.setfBillingQty(fQty);
|
|
|
|
+ fees.setfUnitprice(sumAmt);
|
|
|
|
+ fees.setfBilltype(fBilltype);
|
|
|
|
+ fees.setfBillingDays(fBillingDays);
|
|
|
|
+ fees.setCreateTime(new Date());
|
|
|
|
+ fees.setfQty(new BigDecimal(1));
|
|
|
|
+ fees.setfPid(warehouseBills.getfId());
|
|
|
|
+ fees.setfInventoryDays(fInventoryDays);
|
|
|
|
+ fees.setfExrate(new BigDecimal(1));
|
|
|
|
+ fees.setfCorpid(warehouseBills.getfCorpid());
|
|
|
|
+ fees.setfMarks(item.get("fMarks").toString());
|
|
|
|
+ fees.setSrcBillNo((String) item.get("fBillno"));
|
|
|
|
+ fees.setfChargedate((Date) item.get("fChargedate"));
|
|
|
|
+ fees.setCreateBy(loginUser.getUser().getUserName());
|
|
|
|
+ fees.setfProductName(item.get("fGoodsids").toString());
|
|
|
|
+ if ("SJCK".equals(fBilltype)) {
|
|
|
|
+ fees.setfBillingDeadline(fBsdate);
|
|
|
|
+ } else {
|
|
|
|
+ fees.setfBillingDeadline(warehouseBills.getfBillingDeadline());
|
|
|
|
+ }
|
|
|
|
+ fees.setfTaxrate(new BigDecimal(taxRate.get(0).getDictValue()));
|
|
|
|
+ fees.setfOriginalbilldate((Date) item.get("fOriginalbilldate"));
|
|
|
|
+ fees.setfBillingway(Long.valueOf(String.valueOf(item.get("fBillingway"))).longValue());
|
|
|
|
+ //tWarehousebillsfeesMapper.insertTWarehousebillsfees(fees);
|
|
|
|
+ itemsList.add(fees);
|
|
|
|
+ TWarehousebillsitems warehousebillsitems = new TWarehousebillsitems();
|
|
|
|
+ /*warehousebillsitems.setfId(fId);
|
|
|
|
+ warehousebillsitems.setfStorageFeeDeadline(fBsdate);
|
|
|
|
+ int i = tWarehousebillsitemsMapper.updateTWarehousebillsitems(warehousebillsitems);*/
|
|
|
|
+ }
|
|
|
|
+ map.put("sumAmt", sumAmt);
|
|
|
|
+ map.put("itemsList", itemsList);
|
|
|
|
+ return map;
|
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
/**
|
|
* 新增库存费计算
|
|
* 新增库存费计算
|
|
@@ -3755,6 +3873,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
|
+ @Transactional
|
|
public AjaxResult calculateStorageFeesList(List<TWarehouseBills> tWarehouseBillsList, LoginUser loginUser, String billsType) {
|
|
public AjaxResult calculateStorageFeesList(List<TWarehouseBills> tWarehouseBillsList, LoginUser loginUser, String billsType) {
|
|
if (CollectionUtils.isEmpty(tWarehouseBillsList)){
|
|
if (CollectionUtils.isEmpty(tWarehouseBillsList)){
|
|
return AjaxResult.error("请输入筛选条件,再计算仓储费");
|
|
return AjaxResult.error("请输入筛选条件,再计算仓储费");
|
|
@@ -3765,7 +3884,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
return AjaxResult.error("请选择客户信息");
|
|
return AjaxResult.error("请选择客户信息");
|
|
}
|
|
}
|
|
long fPid = 0L;
|
|
long fPid = 0L;
|
|
- if (StringUtils.isNull(tWarehouseBills.getfId())) {
|
|
|
|
|
|
+ /*if (StringUtils.isNull(tWarehouseBills.getfId())) {
|
|
// 生成流水号
|
|
// 生成流水号
|
|
Date time = new Date();
|
|
Date time = new Date();
|
|
String billNo = billnoSerialServiceImpl.getSerialNumber("JSCCF", time);
|
|
String billNo = billnoSerialServiceImpl.getSerialNumber("JSCCF", time);
|
|
@@ -3777,16 +3896,16 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
tWarehouseBills.setfBsdeptid(loginUser.getUser().getDeptId());
|
|
tWarehouseBills.setfBsdeptid(loginUser.getUser().getDeptId());
|
|
tWarehouseBills.setCreateBy(loginUser.getUser().getUserName());
|
|
tWarehouseBills.setCreateBy(loginUser.getUser().getUserName());
|
|
tWarehouseBills.setCreateTime(new Date());
|
|
tWarehouseBills.setCreateTime(new Date());
|
|
- tWarehouseBillsMapper.insertTWarehousebills(tWarehouseBills);
|
|
|
|
- fPid = tWarehouseBills.getfId();
|
|
|
|
|
|
+ //tWarehouseBillsMapper.insertTWarehousebills(tWarehouseBills);
|
|
|
|
+ //fPid = tWarehouseBills.getfId();
|
|
} else {
|
|
} else {
|
|
- tWarehousebillsfeesMapper.deleteByFPid(tWarehouseBills.getfId());
|
|
|
|
- tWarehousebillsitemsMapper.deleteByFPid(tWarehouseBills.getfId());
|
|
|
|
|
|
+ //tWarehousebillsfeesMapper.deleteByFPid(tWarehouseBills.getfId());
|
|
|
|
+ //tWarehousebillsitemsMapper.deleteByFPid(tWarehouseBills.getfId());
|
|
tWarehouseBills.setUpdateBy(loginUser.getUser().getUserName());
|
|
tWarehouseBills.setUpdateBy(loginUser.getUser().getUserName());
|
|
tWarehouseBills.setUpdateTime(new Date());
|
|
tWarehouseBills.setUpdateTime(new Date());
|
|
- tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
|
|
|
|
- fPid = tWarehouseBills.getfId();
|
|
|
|
- }
|
|
|
|
|
|
+ //tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
|
|
|
|
+ //fPid = tWarehouseBills.getfId();
|
|
|
|
+ }*/
|
|
// 计划物资明细
|
|
// 计划物资明细
|
|
List<TWarehousebillsfees> itemsList = new ArrayList<>();
|
|
List<TWarehousebillsfees> itemsList = new ArrayList<>();
|
|
BigDecimal bigDecimal = new BigDecimal(0);
|
|
BigDecimal bigDecimal = new BigDecimal(0);
|
|
@@ -3798,14 +3917,14 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
// 查询 出库 货转的库存明细
|
|
// 查询 出库 货转的库存明细
|
|
List<Map<String, Object>> warehousebillsitemsList = tWarehousebillsitemsMapper.selectStorageFeeItemList(tWarehouseBills);
|
|
List<Map<String, Object>> warehousebillsitemsList = tWarehousebillsitemsMapper.selectStorageFeeItemList(tWarehouseBills);
|
|
if (warehousebillsitemsList.size() != 0) {
|
|
if (warehousebillsitemsList.size() != 0) {
|
|
- Map<String, Object> mapItem = getWarehouseItems(tWarehouseBills, warehousebillsitemsList, loginUser);
|
|
|
|
|
|
+ Map<String, Object> mapItem = getWarehouseItemsList(tWarehouseBills, warehousebillsitemsList, loginUser);
|
|
if (mapItem.containsKey("error")) {
|
|
if (mapItem.containsKey("error")) {
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
return AjaxResult.error((String) mapItem.get("error"));
|
|
return AjaxResult.error((String) mapItem.get("error"));
|
|
}
|
|
}
|
|
itemsList = (List<TWarehousebillsfees>) mapItem.get("itemsList");
|
|
itemsList = (List<TWarehousebillsfees>) mapItem.get("itemsList");
|
|
}
|
|
}
|
|
- List<Map<String, Object>> tWhgenlegs = tWhgenlegMapper.selectStorageFeeItemList(tWarehouseBills);
|
|
|
|
|
|
+ /*List<Map<String, Object>> tWhgenlegs = tWhgenlegMapper.selectStorageFeeItemList(tWarehouseBills);
|
|
if (tWhgenlegs.size() != 0) {
|
|
if (tWhgenlegs.size() != 0) {
|
|
Map<String, Object> mapItem = getWarehouseItems(tWarehouseBills, tWhgenlegs, loginUser);
|
|
Map<String, Object> mapItem = getWarehouseItems(tWarehouseBills, tWhgenlegs, loginUser);
|
|
if (mapItem.containsKey("error")) {
|
|
if (mapItem.containsKey("error")) {
|
|
@@ -3818,7 +3937,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
itemsList.add(ite);
|
|
itemsList.add(ite);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- }
|
|
|
|
|
|
+ }*/
|
|
TFees tFees = new TFees();
|
|
TFees tFees = new TFees();
|
|
tFees.setfStatus("2");
|
|
tFees.setfStatus("2");
|
|
tFees.setDelFlag("0");
|
|
tFees.setDelFlag("0");
|
|
@@ -4014,7 +4133,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
tWarehousebills.setfBsdeptid(loginUser.getUser().getDeptId());
|
|
tWarehousebills.setfBsdeptid(loginUser.getUser().getDeptId());
|
|
tWarehousebills.setCreateBy(loginUser.getUser().getUserName());
|
|
tWarehousebills.setCreateBy(loginUser.getUser().getUserName());
|
|
tWarehousebills.setCreateTime(new Date());
|
|
tWarehousebills.setCreateTime(new Date());
|
|
- tWarehousebills.setfBilltype(chargeInsert.getBillsType());
|
|
|
|
|
|
+ tWarehousebills.setfBilltype(billsType);
|
|
tWarehouseBillsMapper.insertTWarehousebills(tWarehousebills);
|
|
tWarehouseBillsMapper.insertTWarehousebills(tWarehousebills);
|
|
fPid = tWarehousebills.getfId();
|
|
fPid = tWarehousebills.getfId();
|
|
}
|
|
}
|
|
@@ -4057,7 +4176,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
// 存储委托方(货权方)
|
|
// 存储委托方(货权方)
|
|
auditItems.setRefno1(tWarehousebills.getfCorpid() + "");
|
|
auditItems.setRefno1(tWarehousebills.getfCorpid() + "");
|
|
// 存储业务类型(业务类型)
|
|
// 存储业务类型(业务类型)
|
|
- auditItems.setRefno2(tWarehousebills.getfBilltype());
|
|
|
|
|
|
+ auditItems.setRefno2(billsType);
|
|
// 存储提单号(提单号)
|
|
// 存储提单号(提单号)
|
|
auditItems.setRefno3(tWarehousebills.getfMblno());
|
|
auditItems.setRefno3(tWarehousebills.getfMblno());
|
|
auditItems.setSendUserId(loginUser.getUser().getUserId());
|
|
auditItems.setSendUserId(loginUser.getUser().getUserId());
|