|
@@ -489,7 +489,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
* @param warehousebillsitems 仓库明细表
|
|
|
* @return 结果
|
|
|
*/
|
|
|
- public Long instalTWhgenleg(TWarehouseBills warehouseBills, TWarehousebillsitems warehousebillsitems, SysUser user) {
|
|
|
+ public Long instalTWhgenleg(TWarehouseBills warehouseBills, TWarehousebillsitems warehousebillsitems) {
|
|
|
TWhgenleg tWhgenleg = new TWhgenleg();
|
|
|
if (WarehouseTypeEnum.SJRK.getType().equals(warehouseBills.getfBilltype())) {
|
|
|
tWhgenleg.setfOriginalbilldate(warehousebillsitems.getfBsdate());
|
|
@@ -568,7 +568,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
// 入库箱号
|
|
|
tWhgenleg.setfCntrno(warehousebillsitems.getfCntrno());
|
|
|
// 创建人
|
|
|
- tWhgenleg.setCreateBy(user.getUserName());
|
|
|
+ tWhgenleg.setCreateBy(SecurityUtils.getUsername());
|
|
|
// 创建人
|
|
|
tWhgenleg.setCreateTime(new Date());
|
|
|
// 状态
|
|
@@ -709,7 +709,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
tWarehousebillsitemsMapper.insertTWarehousebillsitems(wbItem);
|
|
|
if (!warehouseStatus) {
|
|
|
// 添加状态log
|
|
|
- insertTWarehousebillsLog(wbItem, 10L, loginUser);
|
|
|
+ insertTWarehousebillsLog(wbItem, 10L);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -3027,7 +3027,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
warehousebillsitems.setfStevedore(tWarehousebillsitems.getfStevedore());
|
|
|
warehousebillsitems.setRemark(tWarehousebillsitems.getRemark());
|
|
|
warehousebillsitems.setfWarehouselocid(tWarehousebillsitems.getfWarehouselocid());
|
|
|
- instalTWhgenleg(warehouseBills, warehousebillsitems, loginUser.getUser());
|
|
|
+ instalTWhgenleg(warehouseBills, warehousebillsitems);
|
|
|
}
|
|
|
tWarehousebillsitems.setfIsInventory(0L);
|
|
|
tWarehousebillsitems.setfSerialNumber(warehousebillsitems.getfSerialNumber());
|
|
@@ -3037,7 +3037,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
tWarehousebillsitems.setUpdateBy(SecurityUtils.getUsername());
|
|
|
tWarehousebillsitemsMapper.updateTWarehousebillsitems(tWarehousebillsitems);
|
|
|
// 添加状态log
|
|
|
- insertTWarehousebillsLog(tWarehousebillsitems, 40L, loginUser);
|
|
|
+ insertTWarehousebillsLog(tWarehousebillsitems, 40L);
|
|
|
}
|
|
|
} else if ("SJCK".equals(billsType)) {
|
|
|
// 查询总账是否存在
|
|
@@ -3067,7 +3067,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
tWarehousebillsitems.setfSerialNumber(warehousebillsitems.getfSerialNumber());
|
|
|
tWarehousebillsitemsMapper.updateTWarehousebillsitems(tWarehousebillsitems);
|
|
|
// 添加状态log
|
|
|
- insertTWarehousebillsLog(tWarehousebillsitems, 40L, loginUser);
|
|
|
+ insertTWarehousebillsLog(tWarehousebillsitems, 40L);
|
|
|
}
|
|
|
tEnclosureMapper.deleteByFPid(warehouseBills.getfId());
|
|
|
// 附件添加
|
|
@@ -3347,7 +3347,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
updateTWhgenlegData(item, tWhgenle.getfId(), billsType);
|
|
|
item.setfSrcid(tWhgenle.getfId());
|
|
|
} else {
|
|
|
- Long whgenlegId = instalTWhgenleg(tWarehouseBills, item, loginUser.getUser());
|
|
|
+ Long whgenlegId = instalTWhgenleg(tWarehouseBills, item);
|
|
|
item.setfSrcid(whgenlegId);
|
|
|
}
|
|
|
item.setfIsInventory(0L);
|
|
@@ -3364,7 +3364,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
}
|
|
|
num = tWarehousebillsitemsMapper.updateTWarehousebillsitems(item);
|
|
|
// 添加状态log
|
|
|
- insertTWarehousebillsLog(item, 40L, loginUser);
|
|
|
+ insertTWarehousebillsLog(item, 40L);
|
|
|
}
|
|
|
if (num <= 0) {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
@@ -3633,7 +3633,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
// 3、 进行入库操作 查询是否存在库存
|
|
|
TWhgenleg tWhgenle1 = queryWhgenlegService.secondStockWhgenleg(tWarehouseBills, wbItem, goods.getIfCntrno(), WarehouseTypeEnum.NOT_JUDGE_BOX.getType());
|
|
|
if (StringUtils.isNull(tWhgenle1)) { // 5、 不存在 进行新增库存
|
|
|
- instalTWhgenleg(tWarehouseBills, wbItem, loginUser.getUser());
|
|
|
+ instalTWhgenleg(tWarehouseBills, wbItem);
|
|
|
} else { // 4、 存在 进行跟新库存
|
|
|
updateTWhgenlegData(wbItem, tWhgenle1.getfId(), WarehouseTypeEnum.SJRK.getType());
|
|
|
}
|
|
@@ -3652,7 +3652,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
// 3、 进行入库操作 查询是否存在库存
|
|
|
TWhgenleg tWhgenle1 = queryWhgenlegService.secondStockWhgenleg(tWarehouseBills, wbItem, goods.getIfCntrno(), WarehouseTypeEnum.NOT_JUDGE_BOX.getType());
|
|
|
if (StringUtils.isNull(tWhgenle1)) { // 5、 不存在 进行新增库存
|
|
|
- instalTWhgenleg(tWarehouseBills, wbItem, loginUser.getUser());
|
|
|
+ instalTWhgenleg(tWarehouseBills, wbItem);
|
|
|
} else { // 4、 存在 进行跟新库存
|
|
|
updateTWhgenlegData(wbItem, tWhgenle1.getfId(), WarehouseTypeEnum.SJRK.getType());
|
|
|
}
|
|
@@ -3668,7 +3668,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
num = tWarehousebillsitemsMapper.updateTWarehousebillsitems(wbItem);
|
|
|
if (WarehouseTypeEnum.SJCK.getType().equals(billsType)) {
|
|
|
// 添加状态log
|
|
|
- insertTWarehousebillsLog(wbItem, 40L, loginUser);
|
|
|
+ insertTWarehousebillsLog(wbItem, 40L);
|
|
|
}
|
|
|
} else {
|
|
|
wbItem.setCreateTime(new Date());
|
|
@@ -3751,10 +3751,11 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 判断数量、毛重、净重是否超出库存总帐
|
|
|
- * @param whgenleg 库存总账
|
|
|
- * @param wbItem 明细
|
|
|
- * @param line 行号
|
|
|
+ * 判断数量、毛重、净重是否超出库存总帐
|
|
|
+ *
|
|
|
+ * @param whgenleg 库存总账
|
|
|
+ * @param wbItem 明细
|
|
|
+ * @param line 行号
|
|
|
*/
|
|
|
private void judgeItemQty(TWhgenleg whgenleg, TWarehousebillsitems wbItem, int line) {
|
|
|
// 库存 < 出库件数
|
|
@@ -3864,7 +3865,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
item.setUpdateBy(loginUser.getUser().getUserName());
|
|
|
int num = tWarehousebillsitemsMapper.updateTWarehousebillsitems(item);
|
|
|
// 添加状态log
|
|
|
- insertTWarehousebillsLog(item, status, loginUser);
|
|
|
+ insertTWarehousebillsLog(item, status);
|
|
|
if (num <= 0) {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
return AjaxResult.error("更新库存明细失败");
|
|
@@ -6080,16 +6081,15 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
*
|
|
|
* @param wbItem
|
|
|
* @param status
|
|
|
- * @param loginUser
|
|
|
*/
|
|
|
- public void insertTWarehousebillsLog(TWarehousebillsitems wbItem, Long status, LoginUser loginUser) {
|
|
|
+ public void insertTWarehousebillsLog(TWarehousebillsitems wbItem, Long status) {
|
|
|
// 添加状态log
|
|
|
TWarehousebillsLog tWarehousebillsLog = new TWarehousebillsLog();
|
|
|
tWarehousebillsLog.setfPid(wbItem.getfPid());
|
|
|
tWarehousebillsLog.setfItmeid(wbItem.getfId());
|
|
|
tWarehousebillsLog.setfItmestatus(status);
|
|
|
tWarehousebillsLog.setCreateTime(new Date());
|
|
|
- tWarehousebillsLog.setCreateBy(loginUser.getUser().getUserName());
|
|
|
+ tWarehousebillsLog.setCreateBy(SecurityUtils.getUsername());
|
|
|
tWarehousebillsLogMapper.insertTWarehousebillsLog(tWarehousebillsLog);
|
|
|
}
|
|
|
|
|
@@ -6971,7 +6971,92 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 快速入库、出库
|
|
|
+ * 快速入库-暂存
|
|
|
+ *
|
|
|
+ * @param warehousebillsDTO
|
|
|
+ * @param loginUser
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public AjaxResult quickStaging(WarehousebillsDTO warehousebillsDTO, LoginUser loginUser) {
|
|
|
+ // 校验必填项
|
|
|
+ warehouseBillsfilterService.filter(warehousebillsDTO);
|
|
|
+ // 定义计算毛重净重的仓库主表
|
|
|
+ TWarehouseBills warehouseBills = new TWarehouseBills();
|
|
|
+ // 根据客户、提单号、仓库是否存在已入库数据,若已存在则追加在其上面
|
|
|
+ TWarehouseBills warehouseCondition = new TWarehouseBills();
|
|
|
+ warehouseCondition.setfMblno(warehousebillsDTO.getfMblno());
|
|
|
+ warehouseCondition.setfCorpid(warehousebillsDTO.getfCorpid());
|
|
|
+ warehouseCondition.setfBilltype(WarehouseTypeEnum.SJRK.getType());
|
|
|
+ warehouseCondition.setfWarehouseid(warehousebillsDTO.getfWarehouseid());
|
|
|
+ warehouseCondition.setfTrademodeid(warehousebillsDTO.getfTrademodeid());
|
|
|
+ warehouseCondition.setfBillstatus(Long.parseLong(WarehouseTypeEnum.SAVE.getType()));
|
|
|
+ List<TWarehouseBills> warehouseBillsList = tWarehouseBillsMapper.selectTWarehousebillsList(warehouseCondition);
|
|
|
+ // 如果是入库、存在一条入库数据
|
|
|
+ if (warehousebillsDTO.getfBilltype().equals(WarehouseTypeEnum.SJRK.getType()) &&
|
|
|
+ CollectionUtils.isNotEmpty(warehouseBillsList) && warehouseBillsList.size() == 1) {
|
|
|
+ TWarehouseBills bills = warehouseBillsList.stream().findFirst()
|
|
|
+ .orElseThrow(() -> new WarehouseException("查询仓库信息失败"));
|
|
|
+ // 赋值新对象
|
|
|
+ BeanUtils.copyProperties(bills, warehouseBills);
|
|
|
+ warehousebillsDTO.setfId(bills.getfId());
|
|
|
+ } else {
|
|
|
+ // 生成编号
|
|
|
+ String billNo = billnoSerialServiceImpl.getBillNo(warehousebillsDTO.getfBilltype(), warehousebillsDTO.getfBsdate());
|
|
|
+ warehousebillsDTO.setfBillno(billNo);
|
|
|
+ // 如果是入库则需要赋值客户存货编号
|
|
|
+ if (WarehouseTypeEnum.SJRK.getType().equals(warehousebillsDTO.getType())) {
|
|
|
+ Date time = new Date();
|
|
|
+ String bscorpno = billnoSerialServiceImpl.getCorpNo(warehousebillsDTO.getfCorpid(), time);
|
|
|
+ warehousebillsDTO.setfBscorpno(bscorpno);
|
|
|
+ }
|
|
|
+ warehousebillsDTO.setfDateChanged(DateUtils.getTimestamp(new Date()).toString() + (int) (Math.random() * 900) + 100);
|
|
|
+ warehousebillsDTO.setCreateTime(new Date());
|
|
|
+ warehousebillsDTO.setfBillingway(2L);
|
|
|
+ warehousebillsDTO.setCreateBy(loginUser.getUsername());
|
|
|
+ warehousebillsDTO.setfBsdeptid(loginUser.getUser().getDeptId());
|
|
|
+ warehousebillsDTO.setfChargedate(warehousebillsDTO.getfBsdate());
|
|
|
+ warehousebillsDTO.setfBillstatus(Long.parseLong(WarehouseTypeEnum.SAVE.getType()));
|
|
|
+ warehousebillsDTO.setfItemsStatus(Long.parseLong(WarehouseTypeEnum.DETAILED_STATUS_PROCESSED.getType()));
|
|
|
+ tWarehouseBillsMapper.insertTWarehousebills(warehousebillsDTO);
|
|
|
+ // 赋值新对象
|
|
|
+ BeanUtils.copyProperties(warehousebillsDTO, warehouseBills);
|
|
|
+ }
|
|
|
+ // 遍历进行入库、出库确认
|
|
|
+ List<TWarehousebillsitems> itemList = warehousebillsDTO.getWarehousebillsitemsList();
|
|
|
+ int line = 1;
|
|
|
+ for (TWarehousebillsitems li : itemList) {
|
|
|
+ // 如果业务时间超出当前时间则不允许
|
|
|
+ if (li.getfBsdate().after(new Date())) {
|
|
|
+ throw new WarehouseException("第" + line + "行业务日期不得超出当前日期");
|
|
|
+ }
|
|
|
+ li.setfPid(warehouseBills.getfId());
|
|
|
+ li.setfBillstatus(10L);
|
|
|
+ li.setfBillno(warehouseBills.getfBillno());
|
|
|
+ li.setfBilltype(warehouseBills.getfBilltype());
|
|
|
+ if (warehouseBills.getfBilltype().equals(WarehouseTypeEnum.SJRK.getType())) {
|
|
|
+ quickStorage(warehouseBills, li, WarehouseTypeEnum.SAVE.getType(), line);
|
|
|
+ } else if (warehouseBills.getfBilltype().equals(WarehouseTypeEnum.SJCK.getType())) {
|
|
|
+ quickDelivery(warehouseBills, li, WarehouseTypeEnum.SAVE.getType(), line);
|
|
|
+ line++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 计算明细数据件数、毛重、净重总和数量
|
|
|
+ calculationWarehouseService.calculationWarehouseQuantity(warehouseBills);
|
|
|
+ warehouseBills.setfItemsStatus(calculationWarehouseService.calculationBillStatus(warehouseBills));
|
|
|
+ tWarehouseBillsMapper.updateTWarehousebills(warehouseBills);
|
|
|
+ // 遍历费用信息
|
|
|
+ if (CollectionUtils.isNotEmpty(warehousebillsDTO.getWarehousebillsfeesList())) {
|
|
|
+ quickFee(warehouseBills, warehousebillsDTO.getWarehousebillsfeesList());
|
|
|
+ }
|
|
|
+ warehousebillsDTO.setBsDate(warehousebillsDTO.getfBsdate().getTime());
|
|
|
+ warehousebillsDTO.setBsTime(warehousebillsDTO.getfBstime().getTime());
|
|
|
+ return AjaxResult.success(warehousebillsDTO);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 快速出、入库-提交
|
|
|
*
|
|
|
* @param warehousebillsDTO 出库信息
|
|
|
* @param loginUser 登陆人
|
|
@@ -6985,36 +7070,10 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
}
|
|
|
// 校验必填项
|
|
|
warehouseBillsfilterService.filter(warehousebillsDTO);
|
|
|
- // 生成编号
|
|
|
- String billNo = billnoSerialServiceImpl.getBillNo(warehousebillsDTO.getfBilltype(), warehousebillsDTO.getfBsdate());
|
|
|
- warehousebillsDTO.setfBillno(billNo);
|
|
|
- // 如果是入库则需要赋值客户存货编号
|
|
|
- if (WarehouseTypeEnum.SJRK.getType().equals(warehousebillsDTO.getType())) {
|
|
|
- Date time = new Date();
|
|
|
- String bscorpno = billnoSerialServiceImpl.getCorpNo(warehousebillsDTO.getfCorpid(), time);
|
|
|
- warehousebillsDTO.setfBscorpno(bscorpno);
|
|
|
- }
|
|
|
- warehousebillsDTO.setfDateChanged(DateUtils.getTimestamp(new Date()).toString() + (int) (Math.random() * 900) + 100);
|
|
|
- warehousebillsDTO.setCreateTime(new Date());
|
|
|
- warehousebillsDTO.setfBillingway(2L);
|
|
|
- warehousebillsDTO.setCreateBy(loginUser.getUsername());
|
|
|
- warehousebillsDTO.setfBsdeptid(loginUser.getUser().getDeptId());
|
|
|
- warehousebillsDTO.setfChargedate(warehousebillsDTO.getfBsdate());
|
|
|
- warehousebillsDTO.setfBillstatus(Long.parseLong(WarehouseTypeEnum.SAVE.getType()));
|
|
|
- warehousebillsDTO.setfItemsStatus(Long.parseLong(WarehouseTypeEnum.DETAILED_STATUS_PROCESSED.getType()));
|
|
|
- tWarehouseBillsMapper.insertTWarehousebills(warehousebillsDTO);
|
|
|
// 遍历进行入库、出库确认
|
|
|
List<TWarehousebillsitems> itemList = warehousebillsDTO.getWarehousebillsitemsList();
|
|
|
int line = 1;
|
|
|
- Long qty = 0L;
|
|
|
- BigDecimal volumn = BigDecimal.ZERO;
|
|
|
- BigDecimal netweight = BigDecimal.ZERO;
|
|
|
- BigDecimal grossweight = BigDecimal.ZERO;
|
|
|
for (TWarehousebillsitems li : itemList) {
|
|
|
- qty += li.getfQty();
|
|
|
- volumn = volumn.add(li.getfVolumn());
|
|
|
- netweight = netweight.add(li.getfNetweight());
|
|
|
- grossweight = grossweight.add(li.getfGrossweight());
|
|
|
// 如果业务时间超出当前时间则不允许
|
|
|
if (li.getfBsdate().after(new Date())) {
|
|
|
throw new WarehouseException("业务日期不得超出当前日期");
|
|
@@ -7023,47 +7082,43 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
li.setfBillstatus(40L);
|
|
|
li.setfBillno(warehousebillsDTO.getfBillno());
|
|
|
li.setfBilltype(warehousebillsDTO.getfBilltype());
|
|
|
- li.setCreateTime(new Date());
|
|
|
- li.setCreateBy(loginUser.getUsername());
|
|
|
if (warehousebillsDTO.getfBilltype().equals(WarehouseTypeEnum.SJRK.getType())) {
|
|
|
- quickStorage(warehousebillsDTO, li, loginUser, line);
|
|
|
+ quickStorage(warehousebillsDTO, li, WarehouseTypeEnum.SUBMIT.getType(), line);
|
|
|
} else if (warehousebillsDTO.getfBilltype().equals(WarehouseTypeEnum.SJCK.getType())) {
|
|
|
- quickDelivery(warehousebillsDTO, li, loginUser, line);
|
|
|
+ quickDelivery(warehousebillsDTO, li, WarehouseTypeEnum.SUBMIT.getType(), line);
|
|
|
line++;
|
|
|
}
|
|
|
}
|
|
|
- warehousebillsDTO.setfPlanqty(qty);
|
|
|
- warehousebillsDTO.setfPlanvolumn(volumn);
|
|
|
- warehousebillsDTO.setfPlannetweight(netweight);
|
|
|
- warehousebillsDTO.setfPlangrossweight(grossweight);
|
|
|
- warehousebillsDTO.setfQty(qty);
|
|
|
- warehousebillsDTO.setfVolumn(volumn);
|
|
|
- warehousebillsDTO.setfNetweight(netweight);
|
|
|
- warehousebillsDTO.setfGrossweight(grossweight);
|
|
|
+ // 计算明细数据件数、毛重、净重总和数量
|
|
|
+ calculationWarehouseService.calculationWarehouseQuantity(warehousebillsDTO);
|
|
|
+ warehousebillsDTO.setfItemsStatus(calculationWarehouseService.calculationBillStatus(warehousebillsDTO));
|
|
|
tWarehouseBillsMapper.updateTWarehousebills(warehousebillsDTO);
|
|
|
-
|
|
|
+ // 遍历费用信息
|
|
|
+ if (CollectionUtils.isNotEmpty(warehousebillsDTO.getWarehousebillsfeesList())) {
|
|
|
+ quickFee(warehousebillsDTO, warehousebillsDTO.getWarehousebillsfeesList());
|
|
|
+ }
|
|
|
return AjaxResult.success();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 快速入库
|
|
|
*
|
|
|
- * @param warehousebillsDTO 主表信息
|
|
|
- * @param item 明细信息
|
|
|
- * @param loginUser 用户信息
|
|
|
- * @param line 序号
|
|
|
+ * @param warehouseBills 主表信息
|
|
|
+ * @param item 明细信息
|
|
|
+ * @param operateType 操作类型
|
|
|
+ * @param line 序号
|
|
|
*/
|
|
|
- private void quickStorage(WarehousebillsDTO warehousebillsDTO, TWarehousebillsitems item, LoginUser loginUser, int line) {
|
|
|
+ private void quickStorage(TWarehouseBills warehouseBills, TWarehousebillsitems item, String operateType, int line) {
|
|
|
// 查询库容量 是否可入库
|
|
|
- if (calculation(warehousebillsDTO.getfWarehouseid(), item.getfGrossweight()) <= 0) {
|
|
|
+ if (calculation(warehouseBills.getfWarehouseid(), item.getfGrossweight()) <= 0) {
|
|
|
throw new WarehouseException("仓储明细第" + line + "行入库毛重大于库容");
|
|
|
}
|
|
|
- if (StringUtils.isNotEmpty(warehousebillsDTO.getfCustomno())) {
|
|
|
- item.setfCustomno(warehousebillsDTO.getfCustomno());
|
|
|
+ if (StringUtils.isNotEmpty(warehouseBills.getfCustomno())) {
|
|
|
+ item.setfCustomno(warehouseBills.getfCustomno());
|
|
|
}
|
|
|
item.setfOriginalbilldate(item.getfBsdate());
|
|
|
- item.setfBillingway(warehousebillsDTO.getfBillingway());
|
|
|
- if ("1".equals(warehousebillsDTO.getfChargetype())) {
|
|
|
+ item.setfBillingway(warehouseBills.getfBillingway());
|
|
|
+ if ("1".equals(warehouseBills.getfChargetype())) {
|
|
|
item.setfChargedate(item.getfBsdate());
|
|
|
} else {
|
|
|
item.setfChargedate(new Date());
|
|
@@ -7073,52 +7128,94 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
if ("1".equals(goods.getIfCntrno()) && StringUtils.isNull(item.getfCntrno())) {
|
|
|
throw new WarehouseException("仓库明细第" + line + "行未找到箱号");
|
|
|
}
|
|
|
- TWhgenleg tWhgenle = queryTWhgenleg(warehousebillsDTO, item, goods.getIfCntrno());
|
|
|
- if (Objects.nonNull(tWhgenle)) {
|
|
|
- updateTWhgenlegData(item, tWhgenle.getfId(), warehousebillsDTO.getfBilltype());
|
|
|
+ // 如果不为暂存的话则默认操作库存总帐
|
|
|
+ if (!operateType.equals(WarehouseTypeEnum.SAVE.getType())) {
|
|
|
+ TWhgenleg tWhgenle = queryTWhgenleg(warehouseBills, item, goods.getIfCntrno());
|
|
|
+ if (Objects.nonNull(tWhgenle)) {
|
|
|
+ updateTWhgenlegData(item, tWhgenle.getfId(), warehouseBills.getfBilltype());
|
|
|
+ } else {
|
|
|
+ instalTWhgenleg(warehouseBills, item);
|
|
|
+ }
|
|
|
+ item.setfIsInventory(Long.parseLong(WarehouseTypeEnum.INVENTORY.getType()));
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(item.getfId())) {
|
|
|
+ item.setUpdateTime(new Date());
|
|
|
+ item.setUpdateBy(SecurityUtils.getUsername());
|
|
|
+ tWarehousebillsitemsMapper.updateTWarehousebillsitems(item);
|
|
|
} else {
|
|
|
- instalTWhgenleg(warehousebillsDTO, item, loginUser.getUser());
|
|
|
+ item.setCreateTime(new Date());
|
|
|
+ item.setCreateBy(SecurityUtils.getUsername());
|
|
|
+ tWarehousebillsitemsMapper.insertTWarehousebillsitems(item);
|
|
|
}
|
|
|
- item.setfIsInventory(Long.parseLong(WarehouseTypeEnum.INVENTORY.getType()));
|
|
|
- tWarehousebillsitemsMapper.insertTWarehousebillsitems(item);
|
|
|
// 添加状态log
|
|
|
- insertTWarehousebillsLog(item, 40L, loginUser);
|
|
|
+ insertTWarehousebillsLog(item, 40L);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 快速出库
|
|
|
*
|
|
|
- * @param warehousebillsDTO 主表信息
|
|
|
- * @param item 明细信息
|
|
|
- * @param loginUser 用户信息
|
|
|
- * @param line 序号
|
|
|
+ * @param warehouseBills 主表信息
|
|
|
+ * @param item 明细信息
|
|
|
+ * @param operateType 是否保存
|
|
|
+ * @param line 序号
|
|
|
*/
|
|
|
- private void quickDelivery(WarehousebillsDTO warehousebillsDTO, TWarehousebillsitems item, LoginUser loginUser, int line) {
|
|
|
+ private void quickDelivery(TWarehouseBills warehouseBills, TWarehousebillsitems item, String operateType, int line) {
|
|
|
// 校验商品是否区分箱号
|
|
|
TGoods goods = tGoodsMapper.selectTGoodsById(item.getfGoodsid());
|
|
|
if ("1".equals(goods.getIfCntrno()) && StringUtils.isNull(item.getfCntrno())) {
|
|
|
throw new WarehouseException("仓库明细未找到箱号");
|
|
|
}
|
|
|
- // 查询总账是否存在
|
|
|
- TWhgenleg tWhgenle = queryTWhgenleg(warehousebillsDTO, item, goods.getIfCntrno());
|
|
|
- if (Objects.nonNull(tWhgenle) && item.getfBsdate().before(tWhgenle.getfChargedate())) {
|
|
|
- throw new WarehouseException("出库明细第" + line + "行业务日期不得超出库存总帐日期");
|
|
|
- }
|
|
|
- if (Objects.isNull(tWhgenle)) {
|
|
|
- throw new WarehouseException("出库库存总帐第" + line + "行不存在");
|
|
|
+ // 如果不为暂存的话则默认操作库存总帐
|
|
|
+ if (!operateType.equals(WarehouseTypeEnum.SAVE.getType())) {
|
|
|
+ // 查询总账是否存在
|
|
|
+ TWhgenleg tWhgenle = queryTWhgenleg(warehouseBills, item, goods.getIfCntrno());
|
|
|
+ if (Objects.nonNull(tWhgenle) && item.getfBsdate().before(tWhgenle.getfChargedate())) {
|
|
|
+ throw new WarehouseException("出库明细第" + line + "行业务日期不得超出库存总帐日期");
|
|
|
+ }
|
|
|
+ if (Objects.isNull(tWhgenle)) {
|
|
|
+ throw new WarehouseException("出库库存总帐第" + line + "行不存在");
|
|
|
+ }
|
|
|
+ //校验计费日期是等于库存总帐计费日,如果不相等则报错
|
|
|
+ checkWhgenleg(item, tWhgenle);
|
|
|
+ // 库存 < 出库件数
|
|
|
+ if (tWhgenle.getfQtyblc() < item.getfQty()) {
|
|
|
+ throw new WarehouseException("库存明细第" + line + "行库存不足");
|
|
|
+ }
|
|
|
+ // 更新库存总账
|
|
|
+ updateTWhgenlegData(item, tWhgenle.getfId(), warehouseBills.getfBilltype());
|
|
|
}
|
|
|
- //校验计费日期是等于库存总帐计费日,如果不相等则报错
|
|
|
- checkWhgenleg(item, tWhgenle);
|
|
|
- // 库存 < 出库件数
|
|
|
- if (tWhgenle.getfQtyblc() < item.getfQty()) {
|
|
|
- throw new WarehouseException("库存明细第" + line + "行库存不足");
|
|
|
+ if (Objects.nonNull(item.getfId())) {
|
|
|
+ item.setUpdateTime(new Date());
|
|
|
+ item.setUpdateBy(SecurityUtils.getUsername());
|
|
|
+ tWarehousebillsitemsMapper.updateTWarehousebillsitems(item);
|
|
|
+ } else {
|
|
|
+ item.setCreateTime(new Date());
|
|
|
+ item.setCreateBy(SecurityUtils.getUsername());
|
|
|
+ tWarehousebillsitemsMapper.insertTWarehousebillsitems(item);
|
|
|
}
|
|
|
- // 更新库存总账
|
|
|
- updateTWhgenlegData(item, tWhgenle.getfId(), warehousebillsDTO.getfBilltype());
|
|
|
- DateUtils.getDateDay(warehousebillsDTO.getfBsdate(), item.getfChargedate());
|
|
|
- tWarehousebillsitemsMapper.insertTWarehousebillsitems(item);
|
|
|
// 添加状态log
|
|
|
- insertTWarehousebillsLog(item, 40L, loginUser);
|
|
|
+ insertTWarehousebillsLog(item, 40L);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 快速-仓库费用
|
|
|
+ *
|
|
|
+ * @param warehouseBills 主表信息
|
|
|
+ * @param warehousebillsfeesList 费用信息
|
|
|
+ */
|
|
|
+ private void quickFee(TWarehouseBills warehouseBills, List<TWarehousebillsfees> warehousebillsfeesList) {
|
|
|
+ warehousebillsfeesList.forEach(fee -> {
|
|
|
+ fee.setfPid(warehouseBills.getfId());
|
|
|
+ if (Objects.nonNull(fee.getfId())) {
|
|
|
+ fee.setUpdateTime(new Date());
|
|
|
+ fee.setUpdateBy(SecurityUtils.getUsername());
|
|
|
+ tWarehousebillsfeesMapper.updateTWarehousebillsfees(fee);
|
|
|
+ } else {
|
|
|
+ fee.setCreateTime(new Date());
|
|
|
+ fee.setCreateBy(SecurityUtils.getUsername());
|
|
|
+ tWarehousebillsfeesMapper.insertTWarehousebillsfees(fee);
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -7130,19 +7227,14 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
public void checkMblNoRepeat(WarehousebillsDTO warehousebillsDTO) {
|
|
|
if (CollectionUtils.isNotEmpty(warehousebillsDTO.getWarehousebillsitemsList())) {
|
|
|
List<TWarehousebillsitems> items = warehousebillsDTO.getWarehousebillsitemsList();
|
|
|
- int line = 1;
|
|
|
for (TWarehousebillsitems li : items) {
|
|
|
if (StringUtils.isNotEmpty(li.getfCntrno())) {
|
|
|
warehousebillsDTO.setfCntrno(li.getfCntrno());
|
|
|
}
|
|
|
- int num = tWarehouseBillsMapper.selectByMblnoOrCntrnoCount(warehousebillsDTO);
|
|
|
- if (num > 0 && StringUtils.isNotEmpty(li.getfCntrno())) {
|
|
|
- throw new WarehouseException("该提单号与第" + line + "行明细箱号存在重复录入");
|
|
|
- }
|
|
|
- if (num > 0 && StringUtils.isEmpty(li.getfCntrno())) {
|
|
|
- throw new WarehouseException("该提单号存在重复录入");
|
|
|
- }
|
|
|
- line++;
|
|
|
+// int num = tWarehouseBillsMapper.selectByMblnoOrCntrnoCount(warehousebillsDTO);
|
|
|
+// if (num > 0 && StringUtils.isEmpty(li.getfCntrno())) {
|
|
|
+// throw new WarehouseException("该提单号存在重复录入");
|
|
|
+// }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -7174,7 +7266,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
TWarehouseBills warehouseBills = JSONArray.parseObject(tWarehousebills, TWarehouseBills.class);
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
TWarehouseBills tWarehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(warehouseBills.getfId());
|
|
|
- if (tWarehouseBills == null){
|
|
|
+ if (tWarehouseBills == null) {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
return AjaxResult.error("找不到订单信息");
|
|
|
}
|
|
@@ -7196,26 +7288,26 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsfeesCr);
|
|
|
List<TWarehousebillsfees> warehousebillsfeesCrList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsfees.class);
|
|
|
for (TWarehousebillsfees wbCr : warehousebillsfeesCrList) {
|
|
|
- if (wbCr.getfId() == null){
|
|
|
- wbCr.setfPid(warehouseBills.getfId());
|
|
|
- wbCr.setfDc("C");
|
|
|
- wbCr.setfBilltype(billsType);
|
|
|
- wbCr.setfBillstatus(billStatus);
|
|
|
- wbCr.setCreateTime(new Date());
|
|
|
- wbCr.setSrcBillNo(tWarehouseBills.getfBillno());
|
|
|
- wbCr.setCreateBy(loginUser.getUser().getUserName());
|
|
|
- //wbCr.setfChargedate(warehouseBills.getfChargedate());
|
|
|
- //wbCr.setfBillingDeadline(warehouseBills.getfChargedate());
|
|
|
- if (warehouseBills.getfBsdate() != null && !warehouseBills.getfBsdate().equals("")) {
|
|
|
- wbCr.setfBsdate(warehouseBills.getfBsdate());
|
|
|
- }
|
|
|
- tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbCr);
|
|
|
- }else {
|
|
|
- wbCr.setfBillstatus(billStatus);
|
|
|
- wbCr.setUpdateBy(loginUser.getUser().getUserName());
|
|
|
- wbCr.setUpdateTime(new Date());
|
|
|
- tWarehousebillsfeesMapper.updateTWarehousebillsfees(wbCr);
|
|
|
- }
|
|
|
+ if (wbCr.getfId() == null) {
|
|
|
+ wbCr.setfPid(warehouseBills.getfId());
|
|
|
+ wbCr.setfDc("C");
|
|
|
+ wbCr.setfBilltype(billsType);
|
|
|
+ wbCr.setfBillstatus(billStatus);
|
|
|
+ wbCr.setCreateTime(new Date());
|
|
|
+ wbCr.setSrcBillNo(tWarehouseBills.getfBillno());
|
|
|
+ wbCr.setCreateBy(loginUser.getUser().getUserName());
|
|
|
+ //wbCr.setfChargedate(warehouseBills.getfChargedate());
|
|
|
+ //wbCr.setfBillingDeadline(warehouseBills.getfChargedate());
|
|
|
+ if (warehouseBills.getfBsdate() != null && !warehouseBills.getfBsdate().equals("")) {
|
|
|
+ wbCr.setfBsdate(warehouseBills.getfBsdate());
|
|
|
+ }
|
|
|
+ tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbCr);
|
|
|
+ } else {
|
|
|
+ wbCr.setfBillstatus(billStatus);
|
|
|
+ wbCr.setUpdateBy(loginUser.getUser().getUserName());
|
|
|
+ wbCr.setUpdateTime(new Date());
|
|
|
+ tWarehousebillsfeesMapper.updateTWarehousebillsfees(wbCr);
|
|
|
+ }
|
|
|
}
|
|
|
map.put("warehousebillsfeesCrList", warehousebillsfeesCrList);
|
|
|
}
|
|
@@ -7223,7 +7315,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsfeesDr);
|
|
|
List<TWarehousebillsfees> warehousebillsfeesDrList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsfees.class);
|
|
|
for (TWarehousebillsfees wbDr : warehousebillsfeesDrList) {
|
|
|
- if (wbDr.getfId() == null){
|
|
|
+ if (wbDr.getfId() == null) {
|
|
|
wbDr.setfPid(warehouseBills.getfId());
|
|
|
wbDr.setfDc("D");
|
|
|
wbDr.setfBillstatus(billStatus);
|
|
@@ -7237,7 +7329,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
wbDr.setfBsdate(warehouseBills.getfBsdate());
|
|
|
}
|
|
|
tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbDr);
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
wbDr.setfBillstatus(billStatus);
|
|
|
wbDr.setUpdateTime(new Date());
|
|
|
wbDr.setUpdateBy(loginUser.getUser().getUserName());
|
|
@@ -7455,20 +7547,21 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
|
|
|
/**
|
|
|
* 能否修改费用信息
|
|
|
- * @param id 订单主表id
|
|
|
+ *
|
|
|
+ * @param id 订单主表id
|
|
|
* @return
|
|
|
*/
|
|
|
- private AjaxResult changeFees(Long id){
|
|
|
+ private AjaxResult changeFees(Long id) {
|
|
|
List<TWarehousebillsfees> warehousebillsfees = tWarehousebillsfeesMapper.selectFeesByPId(id, null);
|
|
|
- if (CollectionUtils.isNotEmpty(warehousebillsfees)){
|
|
|
+ if (CollectionUtils.isNotEmpty(warehousebillsfees)) {
|
|
|
for (TWarehousebillsfees warehousebillsfee : warehousebillsfees) {
|
|
|
- if (warehousebillsfee.getfAccamount() != null && warehousebillsfee.getfAccamount().compareTo(new BigDecimal(BigInteger.ZERO)) ==1){
|
|
|
+ if (warehousebillsfee.getfAccamount() != null && warehousebillsfee.getfAccamount().compareTo(new BigDecimal(BigInteger.ZERO)) == 1) {
|
|
|
return AjaxResult.error("费用已对账");
|
|
|
}
|
|
|
- if (warehousebillsfee.getfStlamount() != null && warehousebillsfee.getfStlamount().compareTo(new BigDecimal(BigInteger.ZERO)) ==1){
|
|
|
+ if (warehousebillsfee.getfStlamount() != null && warehousebillsfee.getfStlamount().compareTo(new BigDecimal(BigInteger.ZERO)) == 1) {
|
|
|
return AjaxResult.error("费用已收费付费");
|
|
|
}
|
|
|
- if (warehousebillsfee.getfInvamount() != null && warehousebillsfee.getfInvamount().compareTo(new BigDecimal(BigInteger.ZERO)) ==1){
|
|
|
+ if (warehousebillsfee.getfInvamount() != null && warehousebillsfee.getfInvamount().compareTo(new BigDecimal(BigInteger.ZERO)) == 1) {
|
|
|
return AjaxResult.error("费用已开票");
|
|
|
}
|
|
|
}
|