|
@@ -23,7 +23,6 @@ import com.ruoyi.common.core.domain.model.LoginUser;
|
|
|
import com.ruoyi.common.utils.DateUtils;
|
|
|
import com.ruoyi.common.utils.SecurityUtils;
|
|
|
import com.ruoyi.common.utils.StringUtils;
|
|
|
-import com.ruoyi.finance.domain.TWareHouseFees;
|
|
|
import com.ruoyi.reportManagement.domain.TWareHouseItemsExcel;
|
|
|
import com.ruoyi.reportManagement.domain.TWhgenleg;
|
|
|
import com.ruoyi.reportManagement.mapper.TWhgenlegMapper;
|
|
@@ -45,8 +44,6 @@ import com.ruoyi.warehouseBusiness.domain.*;
|
|
|
import com.ruoyi.warehouseBusiness.excel.*;
|
|
|
import com.ruoyi.warehouseBusiness.mapper.*;
|
|
|
import com.ruoyi.warehouseBusiness.service.ITWarehouseBillsService;
|
|
|
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
|
|
-import org.apache.poi.ss.SpreadsheetVersion;
|
|
|
import org.apache.poi.ss.usermodel.*;
|
|
|
import org.apache.poi.ss.util.CellReference;
|
|
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|
@@ -173,6 +170,8 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
List<Long> goodsId = new ArrayList<>();
|
|
|
// 费用
|
|
|
List<Long> feesId = new ArrayList<>();
|
|
|
+ // 车队
|
|
|
+ List<Long> fleetId = new ArrayList<>();
|
|
|
// 库区
|
|
|
List<Long> warehouseAreaId = new ArrayList<>();
|
|
|
if (!StringUtils.isNull(tWarehousebills)) {
|
|
@@ -236,6 +235,10 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
Integer fGoodsid = (Integer) wb.get("fGoodsid");
|
|
|
goodsId.add(fGoodsid.longValue());
|
|
|
}
|
|
|
+ if (StringUtils.isNotNull(wb.get("fFleet"))) {
|
|
|
+ Integer fFleetid = (Integer) wb.get("fFleet");
|
|
|
+ fleetId.add(fFleetid.longValue());
|
|
|
+ }
|
|
|
if (StringUtils.isNotNull(wb.get("fWarehouselocid"))) {
|
|
|
Long fWarehouselocid = Long.valueOf(String.valueOf(wb.get("fWarehouselocid")));
|
|
|
if (wb.get("fTransferWarehouselocid") != null) {
|
|
@@ -295,6 +298,14 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
goodsList.add(tGoods);
|
|
|
}
|
|
|
}
|
|
|
+ List<TCorps> fleetList = new ArrayList<>();
|
|
|
+ List<Long> fleetIdList = StringUtils.integerDeduplication(fleetId);
|
|
|
+ for (Long goods : fleetIdList) {
|
|
|
+ TCorps fleet = tCorpsMapper.selectTCorpsById(goods);
|
|
|
+ if (StringUtils.isNotNull(fleet)) {
|
|
|
+ fleetList.add(fleet);
|
|
|
+ }
|
|
|
+ }
|
|
|
List<TFees> feesList = new ArrayList<>();
|
|
|
List<Long> longList = StringUtils.integerDeduplication(feesId);
|
|
|
for (Long fees : longList) {
|
|
@@ -306,6 +317,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
map.put("corps", corpsList);
|
|
|
map.put("goodsList", goodsList);
|
|
|
map.put("feesList", feesList);
|
|
|
+ map.put("fleetList", fleetList);
|
|
|
map.put("sysUser", sysUserList);
|
|
|
map.put("warehouse", warehouseList);
|
|
|
map.put("warehouseAreas", warehouseAreaList);
|
|
@@ -362,9 +374,10 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
*
|
|
|
* @param warehouseBills 仓库主表
|
|
|
* @param warehousebillsitems 仓库明细表
|
|
|
+ * @param ifCntrno
|
|
|
* @return 库存总账
|
|
|
*/
|
|
|
- public TWhgenleg queryTWhgenleg(TWarehouseBills warehouseBills, TWarehousebillsitems warehousebillsitems) {
|
|
|
+ public TWhgenleg queryTWhgenleg(TWarehouseBills warehouseBills, TWarehousebillsitems warehousebillsitems, String ifCntrno) {
|
|
|
TWhgenleg tWhgenleg = new TWhgenleg();
|
|
|
// 客户
|
|
|
tWhgenleg.setfCorpid(warehouseBills.getfCorpid());
|
|
@@ -388,7 +401,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
// 箱号
|
|
|
- if (StringUtils.isNotEmpty(warehousebillsitems.getfCntrno())) {
|
|
|
+ if ("1".equals(ifCntrno)) {
|
|
|
tWhgenleg.setfCntrno(warehousebillsitems.getfCntrno());
|
|
|
}
|
|
|
// 库区
|
|
@@ -1741,6 +1754,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
warehouseBills.setfMblno(warehouseBills.getfMblno() + "/" + warehousebillsitems.getfMblno());
|
|
|
}
|
|
|
}
|
|
|
+ warehouseBills.setfItemsStatus(1L);
|
|
|
warehouseBills.setUpdateTime(new Date());
|
|
|
warehouseBills.setUpdateBy(SecurityUtils.getUsername());
|
|
|
tWarehouseBillsMapper.updateTWarehousebills(warehouseBills);
|
|
@@ -2252,6 +2266,10 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
return AjaxResult.error("请确认是该明细数据是否存在,或该明细数据状态异常");
|
|
|
}
|
|
|
String billsType = warehousebillsitems.getfBilltype();
|
|
|
+ TGoods goods = tGoodsMapper.selectTGoodsById(warehousebillsitems.getfGoodsid());
|
|
|
+ if ("1".equals(goods.getIfCntrno()) && StringUtils.isNull(warehousebillsitems.getfCntrno())) {
|
|
|
+ return AjaxResult.error("仓库明细第未找到箱号");
|
|
|
+ }
|
|
|
if ("SJRK".equals(billsType)) {
|
|
|
// 查询库容量 是否可入库
|
|
|
int m = calculation(warehouseBills.getfWarehouseid(), warehousebillsitems.getfGrossweight());
|
|
@@ -2259,7 +2277,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
return AjaxResult.error("更新库存总账失败-->入库毛重大于库容");
|
|
|
}
|
|
|
- TWhgenleg tWhgenle = queryTWhgenleg(warehouseBills, warehousebillsitems);
|
|
|
+ TWhgenleg tWhgenle = queryTWhgenleg(warehouseBills, warehousebillsitems, goods.getIfCntrno());
|
|
|
if (StringUtils.isNotNull(tWhgenle)) {
|
|
|
int i = updateTWhgenlegData(tWarehousebillsitems, tWhgenle.getfId(), billsType);
|
|
|
if (i <= 0) {
|
|
@@ -2287,7 +2305,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
}
|
|
|
} else if ("SJCK".equals(billsType)) {
|
|
|
// 查询总账是否存在
|
|
|
- TWhgenleg tWhgenle = queryTWhgenleg(warehouseBills, warehousebillsitems);
|
|
|
+ TWhgenleg tWhgenle = queryTWhgenleg(warehouseBills, warehousebillsitems, goods.getIfCntrno());
|
|
|
if (StringUtils.isNull(tWhgenle)) { // 为空 提示没有库存
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
return AjaxResult.error("库存明细库存为空");
|
|
@@ -2311,6 +2329,10 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
// 添加状态log
|
|
|
insertTWarehousebillsLog(tWarehousebillsitems, 40L, loginUser);
|
|
|
}
|
|
|
+ warehouseBills.setfItemsStatus(4L);
|
|
|
+ warehouseBills.setUpdateTime(new Date());
|
|
|
+ warehouseBills.setUpdateBy(SecurityUtils.getUsername());
|
|
|
+ tWarehouseBillsMapper.updateTWarehousebills(warehouseBills);
|
|
|
tEnclosureMapper.deleteByFPid(warehouseBills.getfId());
|
|
|
// 附件添加
|
|
|
if (StringUtils.isNotEmpty(attachs) && !"[]".equals(attachs)) {
|
|
@@ -2525,7 +2547,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
|
|
|
|
|
|
/**
|
|
|
- * 入库详情入账
|
|
|
+ * 入库确认
|
|
|
*
|
|
|
* @param warehouseBills 主表
|
|
|
* @param warehousebillsitems 明细
|
|
@@ -2574,7 +2596,11 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
item.setfOriginalbilldate(item.getfBsdate());
|
|
|
item.setfBillingway(tWarehouseBills.getfBillingway());
|
|
|
item.setfChargedate(item.getfBsdate());
|
|
|
- TWhgenleg tWhgenle = queryTWhgenleg(tWarehouseBills, item);
|
|
|
+ TGoods goods = tGoodsMapper.selectTGoodsById(item.getfGoodsid());
|
|
|
+ if ("1".equals(goods.getIfCntrno()) && StringUtils.isNull(item.getfCntrno())) {
|
|
|
+ return AjaxResult.error("仓库明细第"+i+"行未找到箱号");
|
|
|
+ }
|
|
|
+ TWhgenleg tWhgenle = queryTWhgenleg(tWarehouseBills, item, goods.getIfCntrno());
|
|
|
if (StringUtils.isNotNull(tWhgenle)) {
|
|
|
int i1 = updateTWhgenlegData(item, tWhgenle.getfId(), billsType);
|
|
|
if (i1 <= 0) {
|
|
@@ -2720,6 +2746,10 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
return AjaxResult.error("更新库存明细第" + i + "行失败,已处理,请刷新网页");
|
|
|
}
|
|
|
+ TGoods goods = tGoodsMapper.selectTGoodsById(wbItem.getfGoodsid());
|
|
|
+ if ("1".equals(goods.getIfCntrno()) && StringUtils.isNull(wbItem.getfCntrno())) {
|
|
|
+ return AjaxResult.error("仓库明细第"+i+"行未找到箱号");
|
|
|
+ }
|
|
|
long warehouselocId = 0L;
|
|
|
long transferWarehouselocid = 0L;
|
|
|
if ("CKDB".equals(billsType) | "HWTG".equals(billsType)) {
|
|
@@ -2728,7 +2758,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
// wbItem.setfWarehouselocid(transferWarehouselocid);
|
|
|
}
|
|
|
// 查询总账是否存在
|
|
|
- TWhgenleg tWhgenle = queryTWhgenleg(tWarehouseBills, wbItem);
|
|
|
+ TWhgenleg tWhgenle = queryTWhgenleg(tWarehouseBills, wbItem, goods.getIfCntrno());
|
|
|
// 入库数特殊不判断入账
|
|
|
if ("SJCK".equals(billsType)) { // 出库 查询
|
|
|
if (StringUtils.isNull(tWhgenle)) { // 为空 提示没有库存
|
|
@@ -2797,7 +2827,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
}
|
|
|
// 3、 进行入库操作 查询是否存在库存
|
|
|
wbItem.setfWarehouselocid(transferWarehouselocid); // 新库区
|
|
|
- TWhgenleg tWhgenle1 = queryTWhgenleg(tWarehouseBills, wbItem);
|
|
|
+ TWhgenleg tWhgenle1 = queryTWhgenleg(tWarehouseBills, wbItem, goods.getIfCntrno());
|
|
|
if (StringUtils.isNull(tWhgenle1)) { // 5、 不存在 进行新增库存
|
|
|
instalTWhgenleg(tWarehouseBills, wbItem, loginUser.getUser());
|
|
|
} else { // 4、 存在 进行跟新库存
|
|
@@ -2823,7 +2853,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
long corpId = tWarehouseBills.getfCorpid();
|
|
|
tWarehouseBills.setfCorpid(tWarehouseBills.getfTocorpid());
|
|
|
// 3、 进行入库操作 查询是否存在库存
|
|
|
- TWhgenleg tWhgenle1 = queryTWhgenleg(tWarehouseBills, wbItem);
|
|
|
+ TWhgenleg tWhgenle1 = queryTWhgenleg(tWarehouseBills, wbItem, goods.getIfCntrno());
|
|
|
if (StringUtils.isNull(tWhgenle1)) { // 5、 不存在 进行新增库存
|
|
|
instalTWhgenleg(tWarehouseBills, wbItem, loginUser.getUser());
|
|
|
} else { // 4、 存在 进行跟新库存
|
|
@@ -3495,18 +3525,23 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@Override
|
|
|
- public int deleteTWarehousebillsByIds(Long[] fIds) {
|
|
|
+ public AjaxResult deleteTWarehousebillsByIds(Long[] fIds) {
|
|
|
// 取出业务编号、 放入 billno_del
|
|
|
for (Long id : fIds) {
|
|
|
// 1、查询主表信息
|
|
|
TWarehouseBills tWarehousebills = tWarehouseBillsMapper.selectTWarehousebillsById(id);
|
|
|
+ // 查询对应库存明细是否允许删除
|
|
|
+ if (tWarehousebillsitemsMapper.selectItemFStatusByFPid(id) != 0) {
|
|
|
+ return AjaxResult.error("删除失败,该单据库存明细已入账");
|
|
|
+ }
|
|
|
// 2、业务编号、客存编号 放入 billno_del
|
|
|
BillnoDel billnoDel = new BillnoDel();
|
|
|
billnoDel.setBillType(tWarehousebills.getfBilltype());
|
|
|
billnoDel.setBillNo(tWarehousebills.getfBillno());
|
|
|
billnoDelMapper.insertBillnoDel(billnoDel);
|
|
|
}
|
|
|
- return tWarehouseBillsMapper.deleteTWarehousebillsByIds(fIds);
|
|
|
+ tWarehouseBillsMapper.deleteTWarehousebillsByIds(fIds);
|
|
|
+ return AjaxResult.success();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -3666,9 +3701,13 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
if (StringUtils.isNotEmpty(warehousebillsitemsList)) {
|
|
|
int i = 1;
|
|
|
for (TWarehousebillsitems wb : warehousebillsitemsList) {
|
|
|
+ TGoods goods = tGoodsMapper.selectTGoodsById(wb.getfGoodsid());
|
|
|
+ if ("1".equals(goods.getIfCntrno()) && StringUtils.isNull(wb.getfCntrno())) {
|
|
|
+ return AjaxResult.error("仓库明细第"+i+"行未找到箱号");
|
|
|
+ }
|
|
|
SerialNumberList.add(wb.getfSerialNumber()); // 流水号回收
|
|
|
// 查询库存总账
|
|
|
- TWhgenleg tWhgenle = queryTWhgenleg(tWarehousebills, wb);
|
|
|
+ TWhgenleg tWhgenle = queryTWhgenleg(tWarehousebills, wb, goods.getIfCntrno());
|
|
|
if ("SJRKRevoke".equals(billsType)) { // 撤销 入库
|
|
|
if (wb.getfIsInventory().equals(0L)) {
|
|
|
if (StringUtils.isNotNull(tWhgenle) && (wb.getfQty() <= tWhgenle.getfQtyblc())) { // 非空 且 撤销数 <= 结余数
|
|
@@ -3693,7 +3732,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
// 1、新货权方撤销入库
|
|
|
// 查询库存总账
|
|
|
wb.setfWarehouselocid(transferWarehouselocid);
|
|
|
- TWhgenleg tWhgenle1 = queryTWhgenleg(tWarehousebills, wb);
|
|
|
+ TWhgenleg tWhgenle1 = queryTWhgenleg(tWarehousebills, wb, goods.getIfCntrno());
|
|
|
if (StringUtils.isNotNull(tWhgenle1) && (wb.getfQty() <= tWhgenle1.getfQtyblc())) {
|
|
|
updateTWhgenlegData(wb, tWhgenle1.getfId(), "SJRKRevoke");
|
|
|
} else {
|
|
@@ -3703,7 +3742,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
// 2、原货权方撤销出库
|
|
|
// 查询库存总账
|
|
|
wb.setfWarehouselocid(warehouselocid);
|
|
|
- TWhgenleg tWhgenle2 = queryTWhgenleg(tWarehousebills, wb);
|
|
|
+ TWhgenleg tWhgenle2 = queryTWhgenleg(tWarehousebills, wb, goods.getIfCntrno());
|
|
|
updateTWhgenlegData(wb, tWhgenle2.getfId(), "SJCKRevoke");
|
|
|
wb.setfBillstatus(10L);
|
|
|
} else if ("HWTGRevoke".equals(billsType)) { // 调拨 撤销
|
|
@@ -3717,7 +3756,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
// 查询库存总账
|
|
|
wb.setfWarehouselocid(transferWarehouselocid);
|
|
|
tWarehousebills.setfTrademodeid(newfTrademodeid); // 查询用新的
|
|
|
- TWhgenleg tWhgenle1 = queryTWhgenleg(tWarehousebills, wb);
|
|
|
+ TWhgenleg tWhgenle1 = queryTWhgenleg(tWarehousebills, wb, goods.getIfCntrno());
|
|
|
if (StringUtils.isNotNull(tWhgenle1) && (wb.getfQty() <= tWhgenle1.getfQtyblc())) {
|
|
|
updateTWhgenlegData(wb, tWhgenle1.getfId(), "SJRKRevoke");
|
|
|
} else {
|
|
@@ -3728,7 +3767,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
// 查询库存总账
|
|
|
wb.setfWarehouselocid(warehouselocid);
|
|
|
tWarehousebills.setfTrademodeid(oldfTrademodeid); // 撤销回到旧的
|
|
|
- TWhgenleg tWhgenle2 = queryTWhgenleg(tWarehousebills, wb);
|
|
|
+ TWhgenleg tWhgenle2 = queryTWhgenleg(tWarehousebills, wb, goods.getIfCntrno());
|
|
|
updateTWhgenlegData(wb, tWhgenle2.getfId(), "SJCKRevoke");
|
|
|
wb.setfBillstatus(10L);
|
|
|
} else if ("HQZYRevoke".equals(billsType)) { // 货转撤销
|
|
@@ -3737,7 +3776,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
// 1、新货权方撤销入库
|
|
|
// 查询库存总账
|
|
|
tWarehousebills.setfCorpid(fTocorpid);
|
|
|
- TWhgenleg tWhgenle1 = queryTWhgenleg(tWarehousebills, wb);
|
|
|
+ TWhgenleg tWhgenle1 = queryTWhgenleg(tWarehousebills, wb, goods.getIfCntrno());
|
|
|
if (StringUtils.isNotNull(tWhgenle1) && (wb.getfQty() <= tWhgenle1.getfQtyblc())) {
|
|
|
updateTWhgenlegData(wb, tWhgenle1.getfId(), "SJRKRevoke");
|
|
|
} else {
|
|
@@ -3747,7 +3786,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
// 2、原货权方撤销出库
|
|
|
// 查询库存总账
|
|
|
tWarehousebills.setfCorpid(fCorpid);
|
|
|
- TWhgenleg tWhgenle2 = queryTWhgenleg(tWarehousebills, wb);
|
|
|
+ TWhgenleg tWhgenle2 = queryTWhgenleg(tWarehousebills, wb, goods.getIfCntrno());
|
|
|
updateTWhgenlegData(wb, tWhgenle2.getfId(), "SJCKRevoke");
|
|
|
wb.setfBillstatus(1L);
|
|
|
}
|
|
@@ -3761,18 +3800,20 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- /**
|
|
|
- * 流水号回收
|
|
|
- * 2、 流水号去重
|
|
|
- * 3、 添加到 billno_del
|
|
|
- */
|
|
|
- List<String> serialNumberNewList = delRepeat(SerialNumberList);
|
|
|
- serialNumberNewList.forEach(item -> {
|
|
|
- BillnoDel billnoDel = new BillnoDel();
|
|
|
- billnoDel.setBillType(item.substring(0, 2));
|
|
|
- billnoDel.setBillNo(item);
|
|
|
- billnoDelMapper.insertBillnoDel(billnoDel);
|
|
|
- });
|
|
|
+ if (!"HQZYRevoke".equals(billsType)) {
|
|
|
+ /**
|
|
|
+ * 流水号回收
|
|
|
+ * 2、 流水号去重
|
|
|
+ * 3、 添加到 billno_del
|
|
|
+ */
|
|
|
+ List<String> serialNumberNewList = delRepeat(SerialNumberList);
|
|
|
+ serialNumberNewList.forEach(item -> {
|
|
|
+ BillnoDel billnoDel = new BillnoDel();
|
|
|
+ billnoDel.setBillType(item.substring(0, 2));
|
|
|
+ billnoDel.setBillNo(item);
|
|
|
+ billnoDelMapper.insertBillnoDel(billnoDel);
|
|
|
+ });
|
|
|
+ }
|
|
|
// 箱型数据
|
|
|
if (StringUtils.isNotNull(tCntr) && !"[]".equals(tCntr)) {
|
|
|
JSONArray jsonDrArray = JSONArray.parseArray(tCntr);
|