|
@@ -547,28 +547,80 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
|
|
|
|
|
|
@Override
|
|
|
- public int revokeTWarehousebillsById(Long fId, LoginUser loginUser, String billsType) {
|
|
|
+ public AjaxResult revokeTWarehousebillsById(Long fId, LoginUser loginUser, String billsType) {
|
|
|
// 查询 仓库主表信息、库存明细信息
|
|
|
TWarehouseBills tWarehousebills = tWarehouseBillsMapper.selectTWarehousebillsById(fId);
|
|
|
+ // 修改主表信息
|
|
|
+ tWarehousebills.setUpdateBy(loginUser.getUser().getUserName());
|
|
|
+ tWarehousebills.setUpdateTime(new Date());
|
|
|
+ tWarehousebills.setfBillstatus("3"); //撤销状态
|
|
|
+ tWarehouseBillsMapper.updateTWarehousebills(tWarehousebills);
|
|
|
// 查询库存明细从表数据
|
|
|
TWarehousebillsitems tWarehousebillsitems = new TWarehousebillsitems();
|
|
|
tWarehousebillsitems.setfPid(fId);
|
|
|
List<TWarehousebillsitems> warehousebillsitems = tWarehousebillsitemsMapper.selectTWarehousebillsitemsList(tWarehousebillsitems);
|
|
|
// 撤销 库存总账
|
|
|
if (StringUtils.isNotEmpty(warehousebillsitems)) {
|
|
|
+ int i=1;
|
|
|
for (TWarehousebillsitems wb : warehousebillsitems) {
|
|
|
// 查询库存总账
|
|
|
TWhgenleg tWhgenle=queryTWhgenleg(tWarehousebills,wb);
|
|
|
- if(!StringUtils.isNull(tWhgenle)){ // 非空修改
|
|
|
- updateTWhgenlegData(wb,tWhgenle.getfId(),billsType);
|
|
|
+ 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+"行撤销数大于库存结余数");
|
|
|
+ }
|
|
|
+ } else if("SJCKRevoke".equals(billsType)){ // 撤销出库
|
|
|
+ if(StringUtils.isNotNull(tWhgenle) ){ // 非空
|
|
|
+ updateTWhgenlegData(wb,tWhgenle.getfId(),billsType);
|
|
|
+ } else{
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return AjaxResult.error("第"+i+"行未查询到库存信息");
|
|
|
+ }
|
|
|
+ } 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{
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ 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(); // 新货权方
|
|
|
+ // 1、新货权方撤销入库
|
|
|
+ // 查询库存总账
|
|
|
+ tWarehousebills.setfCorpid(fTocorpid);
|
|
|
+ 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+"行撤销数大于库存结余数");
|
|
|
+ }
|
|
|
+ // 2、原货权方撤销出库
|
|
|
+ // 查询库存总账
|
|
|
+ tWarehousebills.setfCorpid(fCorpid);
|
|
|
+ TWhgenleg tWhgenle2=queryTWhgenleg(tWarehousebills,wb);
|
|
|
+ updateTWhgenlegData(wb,tWhgenle2.getfId(),"SJCKRevoke");
|
|
|
}
|
|
|
+ i++;
|
|
|
}
|
|
|
}
|
|
|
- // 修改主表信息
|
|
|
- tWarehousebills.setUpdateBy(loginUser.getUser().getUserName());
|
|
|
- tWarehousebills.setUpdateTime(new Date());
|
|
|
- tWarehousebills.setfBillstatus("3"); //撤销状态
|
|
|
- return tWarehouseBillsMapper.updateTWarehousebills(tWarehousebills);
|
|
|
+ return AjaxResult.success();
|
|
|
+
|
|
|
}
|
|
|
|
|
|
}
|