|
@@ -129,6 +129,19 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
List<Map<String, Object>> mapList = tWarehousebillsitemsMapper.selectGoodsTransferitemsList(tWarehousebillsitems);
|
|
|
if (StringUtils.isNotEmpty(mapList)) {
|
|
|
for (Map<String, Object> wb : mapList) {
|
|
|
+ TWhgenleg tWhgenleg = new TWhgenleg();
|
|
|
+ tWhgenleg.setfCorpid(tWarehousebills.getfCorpid());
|
|
|
+ if (StringUtils.isNotNull(wb.get("fGoodsid"))) {
|
|
|
+ tWhgenleg.setfGoodsid(((Integer) wb.get("fGoodsid")).longValue());
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotNull(wb.get("fWarehouselocid"))) {
|
|
|
+ tWhgenleg.setfWarehouseLocationid(((Integer) wb.get("fWarehouselocid")).longValue());
|
|
|
+ }
|
|
|
+ tWhgenleg.setfTrademodeid(tWarehousebills.getfTrademodeid());
|
|
|
+ TWhgenleg whgenleg = tWhgenlegMapper.selectTWhgenleg(tWhgenleg);
|
|
|
+ if (StringUtils.isNotNull(whgenleg)) {
|
|
|
+ wb.put("fQtyblc", whgenleg.getfQtyblc());
|
|
|
+ }
|
|
|
if (StringUtils.isNotNull(wb.get("fGoodsid"))) {
|
|
|
Integer fGoodsid = (Integer) wb.get("fGoodsid");
|
|
|
goodsId.add(fGoodsid.longValue());
|
|
@@ -342,7 +355,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
warehouseBills.setfBilltype(billsType);
|
|
|
warehouseBills.setfBsdeptid(loginUser.getUser().getDeptId());
|
|
|
// 提交时: 生流水号
|
|
|
- if ("6".equals(warehouseBills.getfBillstatus())) {
|
|
|
+ if ("6".equals(warehouseBills.getfBillstatus()) || "7".equals(warehouseBills.getfBillstatus())) {
|
|
|
// 业务编码
|
|
|
String billNo = billnoSerialServiceImpl.getBillNo(billsType, warehouseBills.getfBsdate());
|
|
|
warehouseBills.setfBillno(billNo);
|
|
@@ -376,28 +389,21 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
if (tWarehousebillsitems != null && !"2".equals(warehouseBills.getfBillstatus())) {
|
|
|
JSONArray warehouseJSON = JSONArray.parseArray(tWarehousebillsitems);
|
|
|
List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
|
|
|
- int i=1;
|
|
|
+ int i = 1;
|
|
|
for (TWarehousebillsitems wbItem : warehousebillsitemsList) {
|
|
|
// 查询总账是否存在
|
|
|
TWhgenleg tWhgenle = queryTWhgenleg(warehouseBills, wbItem);
|
|
|
- if ("SJRK".equals(billsType)) { // 入库数 、结余数
|
|
|
- if (StringUtils.isNull(tWhgenle)) { // 为空添加库存总账
|
|
|
- instalTWhgenleg(warehouseBills, wbItem, loginUser.getUser());
|
|
|
- } else { // 非空修改库存总账
|
|
|
- if ("6".equals(warehouseBills.getfBillstatus())) {
|
|
|
- updateTWhgenlegData(wbItem, tWhgenle.getfId(), billsType);
|
|
|
- }
|
|
|
- }
|
|
|
- } else if ("SJCK".equals(billsType)) { // 出库 查询
|
|
|
+ // 入库数特殊不判断入账
|
|
|
+ if ("SJCK".equals(billsType)) { // 出库 查询
|
|
|
if (StringUtils.isNull(tWhgenle)) { // 为空 提示没有库存
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- return AjaxResult.error("库存明细第"+i+"行库存为空");
|
|
|
+ return AjaxResult.error("库存明细第" + i + "行库存为空");
|
|
|
} else { // 非空修改库存总账
|
|
|
if ("6".equals(warehouseBills.getfBillstatus())) {
|
|
|
// 库存 < 出库件数 提示库存不足
|
|
|
if (tWhgenle.getfQtyblc() < wbItem.getfQty()) {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- return AjaxResult.error("库存明细第"+i+"行库存不足");
|
|
|
+ return AjaxResult.error("库存明细第" + i + "行库存不足");
|
|
|
}
|
|
|
updateTWhgenlegData(wbItem, tWhgenle.getfId(), billsType);
|
|
|
}
|
|
@@ -405,12 +411,12 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
} else if ("CKDB".equals(billsType)) { // 调拨查询
|
|
|
if (StringUtils.isNull(tWhgenle)) { // 为空 提示没有库存
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- return AjaxResult.error("库存明细第"+i+"行库存为空");
|
|
|
+ return AjaxResult.error("库存明细第" + i + "行库存为空");
|
|
|
} else { // 非空修改库存总账
|
|
|
if ("6".equals(warehouseBills.getfBillstatus())) {
|
|
|
if (tWhgenle.getfQtyblc() < wbItem.getfQty()) { // 1、 库存 < 调拨件数 提示库存不足
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- return AjaxResult.error("库存明细第"+i+"行库存不足");
|
|
|
+ return AjaxResult.error("库存明细第" + i + "行库存不足");
|
|
|
} else { // 2、 库存足够 先 进行出库操作
|
|
|
updateTWhgenlegData(wbItem, tWhgenle.getfId(), "SJCK");
|
|
|
}
|
|
@@ -426,15 +432,15 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- } else if ("HQZY".equals(billsType)) { // 货转
|
|
|
+ } else if ("HQZY".equals(billsType)) { // 货转
|
|
|
if (StringUtils.isNull(tWhgenle)) { // 为空 提示没有库存
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- return AjaxResult.error("库存明细第"+i+"行库存为空");
|
|
|
+ return AjaxResult.error("库存明细第" + i + "行库存为空");
|
|
|
} else { // 非空修改库存总账
|
|
|
if ("6".equals(warehouseBills.getfBillstatus())) {
|
|
|
if (tWhgenle.getfQtyblc() < wbItem.getfQty()) { // 1、 库存 < 调拨件数 提示库存不足
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- return AjaxResult.error("库存明细第"+i+"行库存不足");
|
|
|
+ return AjaxResult.error("库存明细第" + i + "行库存不足");
|
|
|
} else { // 2、 库存足够 先 进行出库操作
|
|
|
updateTWhgenlegData(wbItem, tWhgenle.getfId(), "SJCK");
|
|
|
}
|
|
@@ -504,6 +510,78 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
return AjaxResult.success();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 入库详情入账
|
|
|
+ * @param warehouseBills 主表
|
|
|
+ * @param warehousebillsitems 明细
|
|
|
+ * @param whgenleg 附件
|
|
|
+ * @param loginUser 当前登录人
|
|
|
+ * @param billsType 状态
|
|
|
+ * @return 结果
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public AjaxResult addCredit(String warehouseBills, String warehousebillsitems, String whgenleg, LoginUser loginUser, String billsType) {
|
|
|
+ Long fPid = null;
|
|
|
+ if (StringUtils.isNull(warehouseBills) || "[]".equals(warehouseBills)) {
|
|
|
+ return AjaxResult.error("未找到主表信息");
|
|
|
+ }
|
|
|
+ if (StringUtils.isNull(warehousebillsitems) || "[]".equals(warehousebillsitems)) {
|
|
|
+ return AjaxResult.error("未找到入账信息");
|
|
|
+ }
|
|
|
+ TWarehouseBills tWarehouseBills = JSONArray.parseObject(warehouseBills, TWarehouseBills.class);
|
|
|
+ if (StringUtils.isNotNull(tWarehouseBills.getfId())) {
|
|
|
+ tWarehouseBills.setUpdateBy(loginUser.getUser().getUserName());
|
|
|
+ tWarehouseBills.setUpdateTime(new Date());
|
|
|
+ tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
|
|
|
+ fPid = tWarehouseBills.getfId();
|
|
|
+ tEnclosureMapper.deleteByFPid(fPid);
|
|
|
+ } else {
|
|
|
+ tWarehouseBills.setCreateBy(loginUser.getUser().getUserName());
|
|
|
+ tWarehouseBills.setCreateTime(new Date());
|
|
|
+ tWarehouseBills.setfBsdeptid(loginUser.getUser().getDeptId());
|
|
|
+ // 已入账
|
|
|
+ tWarehouseBills.setfBillstatus("7");
|
|
|
+ tWarehouseBillsMapper.insertTWarehousebills(tWarehouseBills);
|
|
|
+ fPid = tWarehouseBills.getfId();
|
|
|
+ }
|
|
|
+ JSONArray warehouseJSON = JSONArray.parseArray(warehousebillsitems);
|
|
|
+ List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
|
|
|
+ for (TWarehousebillsitems item : warehousebillsitemsList) {
|
|
|
+ if (!"7".equals(item.getfBillstatus())) {
|
|
|
+ TWhgenleg tWhgenle = queryTWhgenleg(tWarehouseBills, item);
|
|
|
+ if (StringUtils.isNotNull(tWhgenle)) {
|
|
|
+ updateTWhgenlegData(item, tWhgenle.getfId(), billsType);
|
|
|
+ return AjaxResult.error("更新库存总账失败");
|
|
|
+ } else {
|
|
|
+ if (instalTWhgenleg(tWarehouseBills, item, loginUser.getUser()) <= 0) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return AjaxResult.error("新增库存总账失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ item.setfPid(fPid);
|
|
|
+ item.setfBillstatus("7");
|
|
|
+ item.setCreateBy(loginUser.getUser().getUserName());
|
|
|
+ item.setCreateTime(new Date());
|
|
|
+ if (tWarehousebillsitemsMapper.insertTWarehousebillsitems(item) <= 0) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return AjaxResult.error("新增库存明细失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotNull(whgenleg) && !"[]".equals(whgenleg)) {
|
|
|
+ JSONArray jsonDrArray = JSONArray.parseArray(whgenleg);
|
|
|
+ List<TEnclosure> tEnclosureList = JSONObject.parseArray(jsonDrArray.toJSONString(), TEnclosure.class);
|
|
|
+ for (TEnclosure tEnclosure : tEnclosureList) {
|
|
|
+ tEnclosure.setfPid(fPid);
|
|
|
+ tEnclosure.setCreateBy(loginUser.getUser().getUserName());
|
|
|
+ tEnclosure.setCreateTime(new Date());
|
|
|
+ tEnclosureMapper.insertTEnclosure(tEnclosure);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return AjaxResult.success();
|
|
|
+ }
|
|
|
+
|
|
|
// 入库 收费明细 校验
|
|
|
public Long check(BigDecimal number, BigDecimal unitPrice) {
|
|
|
BigDecimal result1 = number.multiply(unitPrice);
|
|
@@ -575,60 +653,60 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
List<TWarehousebillsitems> warehousebillsitems = tWarehousebillsitemsMapper.selectTWarehousebillsitemsList(tWarehousebillsitems);
|
|
|
// 撤销 库存总账
|
|
|
if (StringUtils.isNotEmpty(warehousebillsitems)) {
|
|
|
- int i=1;
|
|
|
+ int i = 1;
|
|
|
for (TWarehousebillsitems wb : warehousebillsitems) {
|
|
|
// 查询库存总账
|
|
|
- TWhgenleg tWhgenle=queryTWhgenleg(tWarehousebills,wb);
|
|
|
- if("SJRKRevoke".equals(billsType)){ // 撤销 入库
|
|
|
- if(StringUtils.isNotNull(tWhgenle) && (wb.getfQty() <= tWhgenle.getfQtyblc()) ){ // 非空 且 撤销数 <= 结余数
|
|
|
- updateTWhgenlegData(wb,tWhgenle.getfId(),billsType);
|
|
|
- } else{ // 撤销数>结余数
|
|
|
+ TWhgenleg tWhgenle = queryTWhgenleg(tWarehousebills, wb);
|
|
|
+ if ("SJRKRevoke".equals(billsType)) { // 撤销 入库
|
|
|
+ if (StringUtils.isNotNull(tWhgenle) && (wb.getfQty() <= tWhgenle.getfQtyblc())) { // 非空 且 撤销数 <= 结余数
|
|
|
+ updateTWhgenlegData(wb, tWhgenle.getfId(), billsType);
|
|
|
+ } else { // 撤销数>结余数
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- return AjaxResult.error("第"+i+"行撤销数大于库存结余数");
|
|
|
+ return AjaxResult.error("第" + i + "行撤销数大于库存结余数");
|
|
|
}
|
|
|
- } else if("SJCKRevoke".equals(billsType)){ // 撤销出库
|
|
|
- if(StringUtils.isNotNull(tWhgenle) ){ // 非空
|
|
|
- updateTWhgenlegData(wb,tWhgenle.getfId(),billsType);
|
|
|
- } else{
|
|
|
+ } else if ("SJCKRevoke".equals(billsType)) { // 撤销出库
|
|
|
+ if (StringUtils.isNotNull(tWhgenle)) { // 非空
|
|
|
+ updateTWhgenlegData(wb, tWhgenle.getfId(), billsType);
|
|
|
+ } else {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- return AjaxResult.error("第"+i+"行未查询到库存信息");
|
|
|
+ return AjaxResult.error("第" + i + "行未查询到库存信息");
|
|
|
}
|
|
|
- } else if("CKDBRevoke".equals(billsType)){ // 调拨 撤销
|
|
|
- Long fCorpid=tWarehousebills.getfCorpid();// 原货权方
|
|
|
- Long fTocorpid=tWarehousebills.getfTocorpid(); // 新货权方
|
|
|
+ } else if ("CKDBRevoke".equals(billsType)) { // 调拨 撤销
|
|
|
+ Long fCorpid = tWarehousebills.getfCorpid();// 原货权方
|
|
|
+ Long fTocorpid = tWarehousebills.getfTocorpid(); // 新货权方
|
|
|
// 1、新货权方撤销入库
|
|
|
// 查询库存总账
|
|
|
tWarehousebills.setfCorpid(fTocorpid);
|
|
|
- TWhgenleg tWhgenle1=queryTWhgenleg(tWarehousebills,wb);
|
|
|
- if(StringUtils.isNotNull(tWhgenle1) && (wb.getfQty() <= tWhgenle1.getfQtyblc())){
|
|
|
- updateTWhgenlegData(wb,tWhgenle1.getfId(),"SJRKRevoke");
|
|
|
- }else{
|
|
|
+ TWhgenleg tWhgenle1 = queryTWhgenleg(tWarehousebills, wb);
|
|
|
+ if (StringUtils.isNotNull(tWhgenle1) && (wb.getfQty() <= tWhgenle1.getfQtyblc())) {
|
|
|
+ updateTWhgenlegData(wb, tWhgenle1.getfId(), "SJRKRevoke");
|
|
|
+ } else {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- return AjaxResult.error("第"+i+"行撤销数大于库存结余数");
|
|
|
+ return AjaxResult.error("第" + i + "行撤销数大于库存结余数");
|
|
|
}
|
|
|
// 2、原货权方撤销出库
|
|
|
// 查询库存总账
|
|
|
tWarehousebills.setfCorpid(fCorpid);
|
|
|
- TWhgenleg tWhgenle2=queryTWhgenleg(tWarehousebills,wb);
|
|
|
- updateTWhgenlegData(wb,tWhgenle2.getfId(),"SJCKRevoke");
|
|
|
- } else if("HQZYRevoke".equals(billsType)){ // 货转撤销 HQZYRevoke
|
|
|
- Long fCorpid=tWarehousebills.getfCorpid();// 原货权方
|
|
|
- Long fTocorpid=tWarehousebills.getfTocorpid(); // 新货权方
|
|
|
+ TWhgenleg tWhgenle2 = queryTWhgenleg(tWarehousebills, wb);
|
|
|
+ updateTWhgenlegData(wb, tWhgenle2.getfId(), "SJCKRevoke");
|
|
|
+ } else if ("HQZYRevoke".equals(billsType)) { // 货转撤销 HQZYRevoke
|
|
|
+ Long fCorpid = tWarehousebills.getfCorpid();// 原货权方
|
|
|
+ Long fTocorpid = tWarehousebills.getfTocorpid(); // 新货权方
|
|
|
// 1、新货权方撤销入库
|
|
|
// 查询库存总账
|
|
|
tWarehousebills.setfCorpid(fTocorpid);
|
|
|
- TWhgenleg tWhgenle1=queryTWhgenleg(tWarehousebills,wb);
|
|
|
- if(StringUtils.isNotNull(tWhgenle1) && (wb.getfQty() <= tWhgenle1.getfQtyblc())){
|
|
|
- updateTWhgenlegData(wb,tWhgenle1.getfId(),"SJRKRevoke");
|
|
|
- }else{
|
|
|
+ TWhgenleg tWhgenle1 = queryTWhgenleg(tWarehousebills, wb);
|
|
|
+ if (StringUtils.isNotNull(tWhgenle1) && (wb.getfQty() <= tWhgenle1.getfQtyblc())) {
|
|
|
+ updateTWhgenlegData(wb, tWhgenle1.getfId(), "SJRKRevoke");
|
|
|
+ } else {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- return AjaxResult.error("第"+i+"行撤销数大于库存结余数");
|
|
|
+ return AjaxResult.error("第" + i + "行撤销数大于库存结余数");
|
|
|
}
|
|
|
// 2、原货权方撤销出库
|
|
|
// 查询库存总账
|
|
|
tWarehousebills.setfCorpid(fCorpid);
|
|
|
- TWhgenleg tWhgenle2=queryTWhgenleg(tWarehousebills,wb);
|
|
|
- updateTWhgenlegData(wb,tWhgenle2.getfId(),"SJCKRevoke");
|
|
|
+ TWhgenleg tWhgenle2 = queryTWhgenleg(tWarehousebills, wb);
|
|
|
+ updateTWhgenlegData(wb, tWhgenle2.getfId(), "SJCKRevoke");
|
|
|
}
|
|
|
i++;
|
|
|
}
|
|
@@ -637,4 +715,6 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
}
|