|  | @@ -935,8 +935,119 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          return AjaxResult.success();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 撤销入账
 | 
	
		
			
				|  |  | +     *
 | 
	
		
			
				|  |  | +     * @param warehouseBills      主表
 | 
	
		
			
				|  |  | +     * @param warehousebillsitems 明细
 | 
	
		
			
				|  |  | +     * @param whgenleg            附件
 | 
	
		
			
				|  |  | +     * @param loginUser           当前登录人
 | 
	
		
			
				|  |  | +     * @param billsType           状态
 | 
	
		
			
				|  |  | +     * @return 结果
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    @Override
 | 
	
		
			
				|  |  | +    @Transactional
 | 
	
		
			
				|  |  | +    public AjaxResult revokeTWarehousebillsById1(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);
 | 
	
		
			
				|  |  | +        fPid = tWarehousebills.getfId();
 | 
	
		
			
				|  |  | +        JSONArray warehouseJSON = JSONArray.parseArray(warehousebillsitems);
 | 
	
		
			
				|  |  | +        List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotEmpty(warehousebillsitemsList)) {
 | 
	
		
			
				|  |  | +            int i = 1;
 | 
	
		
			
				|  |  | +            for (TWarehousebillsitems wb : warehousebillsitemsList) {
 | 
	
		
			
				|  |  | +                // 查询库存总账
 | 
	
		
			
				|  |  | +                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 + "行撤销数大于库存结余数");
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                } 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++;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        // 查询所有库存明细 修改仓库主表状态
 | 
	
		
			
				|  |  | +        int notInStorage = 0;
 | 
	
		
			
				|  |  | +        int Stored = 0;
 | 
	
		
			
				|  |  | +        TWarehousebillsitems tWarehousebillsitems = new TWarehousebillsitems();
 | 
	
		
			
				|  |  | +        tWarehousebillsitems.setfPid(fPid);
 | 
	
		
			
				|  |  | +        List<TWarehousebillsitems> warehousebillsitemsList1 = tWarehousebillsitemsMapper.selectTWarehousebillsitemsList(tWarehousebillsitems);
 | 
	
		
			
				|  |  | +        for (TWarehousebillsitems item : warehousebillsitemsList1) {
 | 
	
		
			
				|  |  | +            if (item.getfBillstatus() == null) {
 | 
	
		
			
				|  |  | +                notInStorage++;
 | 
	
		
			
				|  |  | +            } else if (item.getfBillstatus().equals("6")) {
 | 
	
		
			
				|  |  | +                Stored++;
 | 
	
		
			
				|  |  | +            } else if (item.getfBillstatus().equals("1")) {
 | 
	
		
			
				|  |  | +                notInStorage++;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        // 录入库存明细整体状态
 | 
	
		
			
				|  |  | +        TWarehouseBills warehouseBill = new TWarehouseBills();
 | 
	
		
			
				|  |  | +        warehouseBill.setfId(fPid);
 | 
	
		
			
				|  |  | +        if (Objects.equals(Stored, 0)) { // 未入库
 | 
	
		
			
				|  |  | +            warehouseBill.setfItemsStatus("1");
 | 
	
		
			
				|  |  | +        } else if (Objects.equals(notInStorage, 0)) { // 已入库
 | 
	
		
			
				|  |  | +            warehouseBill.setfItemsStatus("6");
 | 
	
		
			
				|  |  | +        } else { // 有已入库、有未入库
 | 
	
		
			
				|  |  | +            warehouseBill.setfItemsStatus("2");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        tWarehouseBillsMapper.updateTWarehousebills(warehouseBill);
 | 
	
		
			
				|  |  | +        return AjaxResult.success();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  }
 |