纪新园 3 лет назад
Родитель
Сommit
c25f1b77db

+ 12 - 6
blade-service-api/trade-finance-api/src/main/java/org/springblade/finance/vojo/Acc.java

@@ -241,12 +241,6 @@ public class Acc implements Serializable {
 	 * 创建时间
 	 */
 	@ApiModelProperty(value = "创建时间")
-	@DateTimeFormat(
-		pattern = "yyyy-MM-dd HH:mm:ss"
-	)
-	@JsonFormat(
-		pattern = "yyyy-MM"
-	)
 	private Date createTime;
 	/**
 	 * 修改人
@@ -369,5 +363,17 @@ public class Acc implements Serializable {
 	@TableField(exist = false)
 	private String type;
 
+/**
+	 * 业务类型
+	 */
+	@TableField(exist = false)
+	@DateTimeFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+		pattern = "yyyy-MM"
+	)
+	private Date retrieval;
+
 
 }

+ 6 - 0
blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/OrderFiles.java

@@ -100,5 +100,11 @@ public class OrderFiles extends OrderBase {
 	@ApiModelProperty(value = "是否已删除(0 否 1是)")
 	private Integer isDeleted;
 
+	/**
+	 * 明细id
+	 */
+	@ApiModelProperty(value = "明细id")
+	private Integer itemId;
+
 
 }

+ 11 - 0
blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/OrderItems.java

@@ -589,4 +589,15 @@ public class OrderItems extends OrderBase {
 	 */
 	@ApiModelProperty(value = "订单类型")
 	private String billType;
+	/**
+	 * 叉车工
+	 */
+	@ApiModelProperty(value = "叉车工")
+	private String forklift;
+	/**
+	 * 搬运工
+	 */
+	@ApiModelProperty(value = "搬运工")
+	private String carry;
+
 }

+ 2 - 1
blade-service/trade-finance/src/main/java/org/springblade/finance/controller/AccController.java

@@ -168,6 +168,7 @@ public class AccController extends BladeController {
 					e.setCorpName(corpMessage.getData().getCname());
 				}
 			}
+			e.setOutstandingAmount(e.getAmount().subtract(e.getSettlementAmount()));
 		});
 		return R.data(pages);
 	}
@@ -355,7 +356,7 @@ public class AccController extends BladeController {
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页", notes = "传入acc")
 	public R<IPage<Acc>> accBillList(Acc acc, Query query) {
-		IPage<Acc> pages = accService.selectAccBillList(acc);
+		IPage<Acc> pages = accService.selectAccBillList(acc,query);
 		return R.data(pages);
 	}
 

+ 2 - 1
blade-service/trade-finance/src/main/java/org/springblade/finance/service/IAccService.java

@@ -18,6 +18,7 @@ package org.springblade.finance.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springblade.finance.vo.AccVO;
 import org.springblade.finance.vo.CostMessage;
@@ -97,5 +98,5 @@ public interface IAccService extends IService<Acc> {
 	 */
 	List<Long> selectListCorpId(Acc acc);
 
-	IPage<Acc> selectAccBillList(Acc acc);
+	IPage<Acc> selectAccBillList(Acc acc, Query query);
 }

+ 14 - 9
blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/AccServiceImpl.java

@@ -27,6 +27,7 @@ import io.seata.spring.annotation.GlobalTransactional;
 import lombok.AllArgsConstructor;
 import org.springblade.client.entity.CorpsDesc;
 import org.springblade.client.feign.ICorpsDescClient;
+import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.finance.mapper.AccMapper;
@@ -220,7 +221,7 @@ public class AccServiceImpl extends ServiceImpl<AccMapper, Acc> implements IAccS
 
 
 	@Override
-	public IPage<Acc> selectAccBillList(Acc acc) {
+	public IPage<Acc> selectAccBillList(Acc acc, Query query) {
 		//判断是否选择客户
 		if (ObjectUtils.isNotNull(acc.getCorpId())) {
 
@@ -232,15 +233,15 @@ public class AccServiceImpl extends ServiceImpl<AccMapper, Acc> implements IAccS
 			queryWrapper.eq("status", 0);
 			queryWrapper.eq(ObjectUtils.isNotNull(acc.getCorpId()),"Corpid", acc.getCorpId());
 			queryWrapper.eq(ObjectUtils.isNotNull(acc.getDc()),"DC", acc.getDc());
-			if (ObjectUtils.isNull(acc.getCreateTime())) {
+			if (ObjectUtils.isNull(acc.getRetrieval())) {
 				queryWrapper.apply("date_format(create_time,'%Y-%m') = date_format(now(),'%Y-%m')");
-				acc1.setCreateTime(new Date());
+				acc1.setRetrieval(new Date());
 			} else {
 				SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
-				String format = sdf.format(acc.getCreateTime());
+				String format = sdf.format(acc.getRetrieval());
 				queryWrapper.eq("date_format(create_time,'%Y-%m')", format);
 
-				acc1.setCreateTime(acc.getCreateTime());
+				acc1.setRetrieval(acc.getRetrieval());
 			}
 			//查询该客户本月数据
 			List<Acc> accList = baseMapper.selectList(queryWrapper);
@@ -335,14 +336,14 @@ public class AccServiceImpl extends ServiceImpl<AccMapper, Acc> implements IAccS
 				queryWrapper.eq("tenant_id", AuthUtil.getTenantId());
 				queryWrapper.eq("Corpid", corp);
 				queryWrapper.eq(ObjectUtils.isNotNull(acc.getDc()),"DC", acc.getDc());
-				if (ObjectUtils.isNull(acc.getCreateTime())) {
+				if (ObjectUtils.isNull(acc.getRetrieval())) {
 					queryWrapper.apply("date_format(create_time,'%Y-%m') = date_format(now(),'%Y-%m')");
-					acc1.setCreateTime(new Date());
+					acc1.setRetrieval(new Date());
 				} else {
 					SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
-					String format = sdf.format(acc.getCreateTime());
+					String format = sdf.format(acc.getRetrieval());
 					queryWrapper.eq("date_format(create_time,'%Y-%m')", format);
-					acc1.setCreateTime(acc.getCreateTime());
+					acc1.setRetrieval(acc.getRetrieval());
 				}
 				List<Acc> financingsList = baseMapper.selectList(queryWrapper);
 
@@ -396,6 +397,10 @@ public class AccServiceImpl extends ServiceImpl<AccMapper, Acc> implements IAccS
 			//返回数据
 			IPage<Acc> page = new Page<>();
 			page.setRecords(accList);
+			page.setTotal(accList.size());
+			page.setSize(query.getSize());
+			page.setCurrent(query.getCurrent());
+			page.setPages(query.getCurrent());
 			return page;
 		}
 	}

+ 3 - 12
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/controller/WoodHarvestingCloudController.java

@@ -268,7 +268,7 @@ public class WoodHarvestingCloudController {
 	/**
 	 * 状态修改
 	 */
-	@GetMapping("/pcSubmit")
+	@GetMapping("/withdraw")
 	@ApiOperationSupport(order = 7)
 	@ApiOperation(value = "电脑端提交", notes = "传入id")
 	public R pcSubmit( @RequestParam(value = "id") Long id,
@@ -277,17 +277,8 @@ public class WoodHarvestingCloudController {
 					   @RequestParam(value = "isIssue") String isIssue) {
 		if (id == null) {
 			return R.fail("缺少必要参数");
-
 		}
-		//修改明细状态
-		orderItemsService.updateByPId(id,isIssue);
-		Order order = new Order();
-		order.setId(id);
-		order.setStatus(status);
-		order.setUpdateUser(AuthUtil.getUserId());
-		order.setUpdateTime(new Date());
-		order.setUpdateUserName(AuthUtil.getUserName());
-		return R.data(orderService.updateById(order));
+		return R.data(orderService.withdraw(id,type,status,isIssue));
 	}
 
 	/**
@@ -351,7 +342,7 @@ public class WoodHarvestingCloudController {
 			.eq(Order::getBillType, OrderTypeEnum.WAREHOUSING.getType())
 			.eq(Order::getTradeType, OrderTypeEnum.WOOD_HARVESTING_CLOUD.getType())
 			.eq(Order::getSpecialCheckStatus, 0)
-			.eq(Order::getCorpId, order.getId());
+			.eq(Order::getPurchaserId, order.getId());
 		List<Order> orderList = orderService.list(orderLambdaQueryWrapper);
 		BigDecimal storageAmount = orderList.stream().map(Order::getStorageAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
 		int num = financing.signum();

+ 2 - 2
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/mapper/OrderMapper.xml

@@ -445,10 +445,10 @@
             and boi.thickness = #{Order.thickness}
         </if>
         <if test="Order.vehicleShipNumber!=null and Order.vehicleShipNumber != ''">
-            and bo.vehicle_ship_number = #{Order.vehicleShipNumber}
+            and bo.vehicle_ship_number like CONCAT(CONCAT('%', #{Order.vehicleShipNumber}), '%')
         </if>
         <if test="Order.itemType!=null and Order.itemType != ''">
-            and bo.item_type=#{Order.itemType}
+            and boi.item_type=#{Order.itemType}
         </if>
         <if test="Order.grade!=null and Order.grade != ''">
             and boi.grade = #{Order.grade}

+ 5 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/IOrderService.java

@@ -207,4 +207,9 @@ public interface IOrderService extends IService<Order> {
 	 * @return
 	 */
 	OrderSubmitDto revokeWarehousing(OrderSubmitDto submitDto);
+
+	/**
+	 * 状态修改
+	 */
+	boolean withdraw(Long id, String type, int status, String isIssue);
 }

+ 327 - 157
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderServiceImpl.java

@@ -1035,6 +1035,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		submitDto.setTenantId(AuthUtil.getTenantId());
 		submitDto.setBusinesDate(submitDto.getStockTime());
 		baseMapper.insert(submitDto);
+		//获取入库信息用于出库,盘点修改信息
 		LambdaQueryWrapper<Order> RKOrderLambdaQueryWrapper = new LambdaQueryWrapper<>();
 		RKOrderLambdaQueryWrapper
 			.eq(Order::getIsDeleted, 0)
@@ -1052,12 +1053,18 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			.eq(OrderItems::getPid, RKOrder.getId())
 			.eq(OrderItems::getTenantId, AuthUtil.getTenantId());
 		List<OrderItems> RKOrderItemsList = orderItemsMapper.selectList(RKOrderItemsLambdaQueryWrapper);
+		//结余数量
 		BigDecimal balanceNumber = new BigDecimal(0);
+		//结余金额
 		BigDecimal balanceMoney = new BigDecimal(0);
+		//明细品名集合
 		List<String> goodsName = new ArrayList<>();
+		//判断明细是否为空
 		if (ObjectUtils.isNotNull(orderItemsList)) {
 			for (OrderItems orderItems : orderItemsList) {
+				//入库添加逻辑
 				if (OrderTypeEnum.WAREHOUSING.getType().equals(submitDto.getBillType())) {
+					//查询入库捆包号是否存在
 					LambdaQueryWrapper<OrderItems> orderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
 					orderItemsLambdaQueryWrapper
 						.eq(OrderItems::getGoodType, 0)
@@ -1069,15 +1076,19 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					if (ObjectUtils.isNotNull(orderItemsBillNo)) {
 						throw new Error("捆包号:" + orderItems.getBillNo() + "不允许重复");
 					}
-				} else if (OrderTypeEnum.OUT_WAREHOUSING.getType().equals(submitDto.getBillType())) {
+					orderItems.setBillType(OrderTypeEnum.WAREHOUSING.getType());
+				} else if (OrderTypeEnum.OUT_WAREHOUSING.getType().equals(submitDto.getBillType())) {//出库添加逻辑
+					//循环比对出库明细与入库明细捆包号是否相等,同事修改货物状态
 					for (OrderItems items : RKOrderItemsList) {
 						if (items.getBillNo().equals(orderItems.getBillNo())) {
-							items.setIsIssue("2");
+							items.setIsIssue("4");
+							orderItems.setIsIssue("4");
 							orderItemsMapper.updateById(items);
+							break;
 						}
 					}
+					orderItems.setBillType(OrderTypeEnum.OUT_WAREHOUSING.getType());
 				}
-				orderItems.setBillType(OrderTypeEnum.WAREHOUSING.getType());
 				orderItems.setPid(submitDto.getId());
 				orderItems.setCreateTime(new Date());
 				orderItems.setCreateUser(AuthUtil.getUserId());
@@ -1115,15 +1126,23 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	@Override
 	@Transactional
 	public R updateWarehousing(OrderSubmitDto submitDto) {
+		//明细数据
 		List<OrderItemsVO> orderItemsList = submitDto.getItemsVOList();
 		submitDto.setTradeType(OrderTypeEnum.WOOD_HARVESTING_CLOUD.getType());//类型
+		//结余数量
 		BigDecimal balanceNumber = new BigDecimal(0);
+		//结余金额
 		BigDecimal balanceMoney = new BigDecimal(0);
+		//明细品名集合
 		List<String> goodsName = new ArrayList<>();
+		//明细是否为空
 		if (ObjectUtils.isNotNull(orderItemsList)) {
 			for (OrderItems orderItems : orderItemsList) {
+
 				List<OrderItems> orderItemsBillNo = new ArrayList<>();
+				//入库修改
 				if (OrderTypeEnum.WAREHOUSING.getType().equals(submitDto.getBillType())) {
+					//查询入库捆包号是否重复
 					LambdaQueryWrapper<OrderItems> orderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
 					orderItemsLambdaQueryWrapper
 						.eq(OrderItems::getGoodType, 0)
@@ -1137,6 +1156,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				orderItems.setTenantId(AuthUtil.getTenantId());
 				orderItems.setBalanceNumber(orderItems.getStorageInQuantity());//结余量
 				orderItems.setBalanceMoney(orderItems.getStorageAmount());//结余金额
+				//判断明细id是否为空 true新增  false修改
 				if (ObjectUtils.isNotNull(orderItems.getId())) {
 					if (orderItemsBillNo.size() > 1) {
 						throw new Error("捆包号:" + orderItems.getBillNo() + "不允许重复");
@@ -1194,6 +1214,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		submitDto.setTradeType(OrderTypeEnum.WOOD_HARVESTING_CLOUD.getType());//类型
 		submitDto.setTenantId(AuthUtil.getTenantId());
 		submitDto.setBusinesDate(submitDto.getStockTime());
+		//判断主id是否为空  true 新增  false 修改
 		if (ObjectUtils.isNotNull(submitDto.getId())) {
 			submitDto.setUpdateUser(AuthUtil.getUserId());
 			submitDto.setUpdateTime(new Date());
@@ -1208,6 +1229,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			submitDto.setCreateTime(new Date());
 			baseMapper.insert(submitDto);
 		}
+		//获取入库数据用于出库,盘点修改数据
 		LambdaQueryWrapper<Order> RKOrderLambdaQueryWrapper = new LambdaQueryWrapper<>();
 		RKOrderLambdaQueryWrapper
 			.eq(Order::getIsDeleted, 0)
@@ -1225,13 +1247,23 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			.eq(OrderItems::getPid, RKOrder.getId())
 			.eq(OrderItems::getTenantId, AuthUtil.getTenantId());
 		List<OrderItems> RKOrderItemsList = orderItemsMapper.selectList(RKOrderItemsLambdaQueryWrapper);
+		//结余数量
 		BigDecimal balanceNumber = new BigDecimal(0);
+		//结余金额
 		BigDecimal balanceMoney = new BigDecimal(0);
+		//明细品名集合
 		List<String> goodsName = new ArrayList<>();
+
 		if (ObjectUtils.isNotNull(orderItemsList)) {
 			for (OrderItems orderItems : orderItemsList) {
+				orderItems.setPid(submitDto.getId());
+				orderItems.setTenantId(AuthUtil.getTenantId());
+				orderItems.setBalanceNumber(orderItems.getStorageInQuantity());//结余量
+				orderItems.setBalanceMoney(orderItems.getStorageAmount());//结余金额
 				List<OrderItems> orderItemsBillNo = new ArrayList<>();
+				//入库明细添加逻辑
 				if (OrderTypeEnum.WAREHOUSING.getType().equals(submitDto.getBillType())) {
+					//查询入库明细捆包号是否重复
 					LambdaQueryWrapper<OrderItems> orderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
 					orderItemsLambdaQueryWrapper
 						.eq(OrderItems::getGoodType, 0)
@@ -1244,19 +1276,18 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 						throw new Error("捆包号:" + orderItems.getBillNo() + "不允许重复");
 					}
 					orderItems.setBillType(OrderTypeEnum.WAREHOUSING.getType());
-				} else if (OrderTypeEnum.OUT_WAREHOUSING.getType().equals(submitDto.getBillType())) {
+				} else if (OrderTypeEnum.OUT_WAREHOUSING.getType().equals(submitDto.getBillType())) {//出库  同时更新入库明细货物状态
 					for (OrderItems items : RKOrderItemsList) {
 						if (items.getBillNo().equals(orderItems.getBillNo())) {
-							items.setIsIssue("2");
+							items.setIsIssue("4");
 							orderItemsMapper.updateById(items);
+							break;
 						}
 					}
-					orderItems.setIsIssue("2");
+					orderItems.setIsIssue("4");
+					orderItems.setBillType(OrderTypeEnum.OUT_WAREHOUSING.getType());
 				}
-				orderItems.setPid(submitDto.getId());
-				orderItems.setTenantId(AuthUtil.getTenantId());
-				orderItems.setBalanceNumber(orderItems.getStorageInQuantity());//结余量
-				orderItems.setBalanceMoney(orderItems.getStorageAmount());//结余金额
+				//判断明细id是否为空  true 新增  false修改
 				if (ObjectUtils.isNotNull(orderItems.getId())) {
 					if (orderItemsBillNo.size() > 1) {
 						throw new Error("捆包号:" + orderItems.getBillNo() + "不允许重复");
@@ -1312,6 +1343,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		if (checkFlag == null) {
 			throw new SecurityException("请核失败:未配置请核标识");
 		}
+		//获取单据明细
+		LambdaQueryWrapper<OrderItems> orderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
+		orderItemsLambdaQueryWrapper
+			.eq(OrderItems::getGoodType, 0)
+			.eq(OrderItems::getPid, salesOrder.getId())
+			.eq(OrderItems::getIsDeleted, 0);
+		List<OrderItems> orderItems = orderItemsMapper.selectList(orderItemsLambdaQueryWrapper);
+
 		//生成账单数据
 		order.setOrderNo(salesOrder.getOrderNo());
 		order.setBusinesDate(salesOrder.getBusinesDate());
@@ -1325,6 +1364,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		order.setStorageQuantity(salesOrder.getStorageQuantity());
 		order.setBillNo(salesOrder.getBillNo());
 		order.setId(salesOrder.getId());
+		order.setOrderItemsList(orderItems);
 
 		//盘点审批流程
 		if (OrderTypeEnum.INVENTORY.getType().equals(salesOrder.getBillType()) && checkFlag == 3) {
@@ -1342,7 +1382,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
 			/* 出库 第一次 审批流程  */
 		} else if (OrderTypeEnum.OUT_WAREHOUSING.getType().equals(salesOrder.getBillType()) && checkFlag == 2 && order.getStatus() == 0) {
-			if (order.getCheckFlag() == 2 && salesOrder.getStatus() != 0) {
+			if (order.getCheckFlag() == 2 && salesOrder.getStatus() > 6) {
 				throw new SecurityException("订单已开启审核,请勿重复提交");
 			}
 			//是否开启流程
@@ -1375,7 +1415,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			this.paymentApply(order, "收费", OrderTypeEnum.STORAGE_FEE.getType());
 			/* 入库审批流程  */
 		} else if (OrderTypeEnum.WAREHOUSING.getType().equals(salesOrder.getBillType()) && checkFlag == 1) {
-			if (order.getCheckFlag() == 1 && salesOrder.getStatus() != 0) {
+			if (order.getCheckFlag() == 1 && salesOrder.getStatus() > 2) {
 				throw new SecurityException("订单已开启审核,请勿重复提交");
 			}
 			//是否开启流程
@@ -1398,6 +1438,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			throw new SecurityException("当前租户未查询到审批流配置");
 		} else {
 
+			//修改单据状态
 			salesOrder.setOrderStatus(OrderStatusEnum.SUBMIT.getStatus() + "");
 			salesOrder.setCheckDate(new Date());
 			baseMapper.updateById(salesOrder);
@@ -1414,29 +1455,23 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			auditProecessDTO.setPageLabel(order.getPageLabel());
 			//增加审批类型
 
-			LambdaQueryWrapper<OrderItems> orderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
-			orderItemsLambdaQueryWrapper
-				.eq(OrderItems::getGoodType, 0)
-				.eq(OrderItems::getPid, salesOrder.getId())
-				.eq(OrderItems::getIsDeleted, 0);
-			List<OrderItems> orderItems = orderItemsMapper.selectList(orderItemsLambdaQueryWrapper);
 			if (CollectionUtils.isNotEmpty(orderItems)) {
-				//仓库
-				StorageType storageType = iStorageClient.getStorageType(salesOrder.getStorageId());
-				if (ObjectUtils.isNotNull(storageType)) {
-					salesOrder.setStorageName(storageType.getCname());
-				}
-				//货权人
-				R<CorpsDesc> corpsDesc = corpsDescClient.getCorpMessage(salesOrder.getPurchaserId());
-				if (corpsDesc.isSuccess()) {
-					salesOrder.setPurchaser(corpsDesc.getData().getCname());
-				}
 
 				order.setOrderItemsList(orderItems);
 				auditProecessDTO.setOrderQuantity(orderItems.stream().map(OrderItems::getOrderQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
 				auditProecessDTO.setAmount(orderItems.stream().map(OrderItems::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
 				//判断是否是入库,入库需要生成条形码,二维码
 				if (OrderTypeEnum.WAREHOUSING.getType().equals(salesOrder.getBillType())) {
+					//仓库
+					StorageType storageType = iStorageClient.getStorageType(salesOrder.getStorageId());
+					if (ObjectUtils.isNotNull(storageType)) {
+						salesOrder.setStorageName(storageType.getCname());
+					}
+					//货权人
+					R<CorpsDesc> corpsDesc = corpsDescClient.getCorpMessage(salesOrder.getPurchaserId());
+					if (corpsDesc.isSuccess()) {
+						salesOrder.setPurchaser(corpsDesc.getData().getCname());
+					}
 					//生成条形码,二维码图片
 					for (OrderItems item : orderItems) {
 						try {
@@ -1574,31 +1609,36 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			order.setStatus(5);
 			order.setConfirmStatus("1");
 			order.setOrderStatus("审批通过");
+			financeClient.updateByOrderId(order.getId());
 			//出库审批通过
 		} else if (OrderTypeEnum.OUT_WAREHOUSING.getType().equals(order.getBillType())) {
-			LambdaQueryWrapper<OrderItems> PDOrderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
-			PDOrderItemsLambdaQueryWrapper
+			LambdaQueryWrapper<OrderItems> CKOrderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
+			CKOrderItemsLambdaQueryWrapper
 				.eq(OrderItems::getIsDeleted, 0)
 				.eq(OrderItems::getPid, order.getId())
 				.eq(OrderItems::getTenantId, AuthUtil.getTenantId());
 			//出库明细
-			List<OrderItems> CkOrderItemsList = orderItemsMapper.selectList(PDOrderItemsLambdaQueryWrapper);
+			List<OrderItems> CkOrderItemsList = orderItemsMapper.selectList(CKOrderItemsLambdaQueryWrapper);
 			int count = 0;
 			for (OrderItems orderItems : CkOrderItemsList) {
 				for (OrderItems RKOrderItems : RKOrderItemsList) {
+					//判断是否全部出库
+					if (RKOrderItems.getIsIssue().equals("7")) {
+						count++;
+					}
 					//判断出库与入库明细捆包号是否相等
 					if (orderItems.getBillNo().equals(RKOrderItems.getBillNo())) {
 						//判断该捆包号是否已出库
-						if (RKOrderItems.getIsIssue().equals("6")) {
+						if (orderItems.getIsIssue().equals("7")) {
 							throw new SecurityException("捆包号:" + RKOrderItems.getBillNo() + "已出库");
 						} else {
 							//判断第几次出库审核
 							if (0 == times) {//第一次审批
-								RKOrderItems.setIsIssue("4");
-								orderItems.setIsIssue("4");
+								RKOrderItems.setIsIssue("5");
+								orderItems.setIsIssue("5");
 							} else {//第二次审批
-								RKOrderItems.setIsIssue("6");
-								orderItems.setIsIssue("6");
+								RKOrderItems.setIsIssue("7");
+								orderItems.setIsIssue("7");
 							}
 						}
 						//修改入库明细
@@ -1606,12 +1646,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 						//修改出库明细
 						orderItemsMapper.updateById(orderItems);
 					}
-					//判断是否全部出库
-					if (RKOrderItems.getIsIssue().equals("6")) {
-						count++;
-					}
 				}
 			}
+			//判断入库明细是否已全部出库 true 修改入库主表总状态为已出库
 			if (count == RKOrderItemsList.size()) {
 				order.setSpecialCheckStatus(1);
 				RKOrder.setSpecialCheckStatus(1);
@@ -1627,6 +1664,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				order.setConfirmStatus("1");
 				order.setOrderStatus("财务审批通过");
 			}
+			financeClient.updateByOrderId(order.getId());
 			//盘点审批通过
 		} else if (OrderTypeEnum.INVENTORY.getType().equals(order.getBillType())) {
 			LambdaQueryWrapper<OrderItems> PDOrderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -1648,13 +1686,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 							throw new SecurityException("捆包号:" + RKOrderItems.getBillNo() + "已出库");
 						}
 						orderItemsMapper.updateById(RKOrderItems);
+						break;
 					}
 				}
 			}
 			order.setStatus(3);
 			order.setOrderStatus("审批通过");
 		}
-		financeClient.updateByOrderId(order.getId());
 		baseMapper.updateById(order);
 		return R.success("审核通过");
 	}
@@ -1679,7 +1717,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			//盘点审批中
 		} else if (OrderTypeEnum.INVENTORY.getType().equals(order.getBillType())) {
 			order.setStatus(2);
-		}else{
+		} else {
 			throw new SecurityException("审批失败");
 		}
 		order.setOrderStatus("审批中");
@@ -1693,15 +1731,46 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		if (order == null) {
 			throw new SecurityException("未找到单据");
 		}
-		//入库审批中
+		//获取入库数据
+		LambdaQueryWrapper<Order> RKOrderLambdaQueryWrapper = new LambdaQueryWrapper<>();
+		RKOrderLambdaQueryWrapper
+			.eq(Order::getIsDeleted, 0)
+			.eq(Order::getOrderNo, order.getOrderNo())
+			.eq(Order::getBillType, OrderTypeEnum.WAREHOUSING.getType())
+			.eq(Order::getTenantId, AuthUtil.getTenantId());
+		Order RKOrder = baseMapper.selectOne(RKOrderLambdaQueryWrapper);
+		if (RKOrder == null) {
+			throw new SecurityException("更新入库数据失败");
+		}
+		//入库明细
+		LambdaQueryWrapper<OrderItems> RKOrderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
+		RKOrderItemsLambdaQueryWrapper
+			.eq(OrderItems::getIsDeleted, 0)
+			.eq(OrderItems::getPid, RKOrder.getId())
+			.eq(OrderItems::getBillType, OrderTypeEnum.WAREHOUSING.getType())
+			.eq(OrderItems::getTenantId, AuthUtil.getTenantId());
+		List<OrderItems> RKOrderItemsList = orderItemsMapper.selectList(RKOrderItemsLambdaQueryWrapper);
+
+		//入库审批驳回
 		if (OrderTypeEnum.WAREHOUSING.getType().equals(order.getBillType())) {
 			if (order.getStatus() == 2) {
 				throw new SecurityException("订单已驳回或未提交审批,请勿重复操作");
 			}
+			//修改明细状态
+			orderItemsMapper.updateByPId(id, "0");
 			order.setStatus(2);
 			order.setOrderStatus("已确认");
-			//出库审批中
+			//出库审批驳回
 		} else if (OrderTypeEnum.OUT_WAREHOUSING.getType().equals(order.getBillType())) {
+			//出库明细
+			LambdaQueryWrapper<OrderItems> CKOrderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
+			CKOrderItemsLambdaQueryWrapper
+				.eq(OrderItems::getIsDeleted, 0)
+				.eq(OrderItems::getPid, RKOrder.getId())
+				.eq(OrderItems::getBillType, OrderTypeEnum.WAREHOUSING.getType())
+				.eq(OrderItems::getTenantId, AuthUtil.getTenantId());
+			List<OrderItems> CKOrderItemsList = orderItemsMapper.selectList(CKOrderItemsLambdaQueryWrapper);
+			int isIssue = 4;
 			//判断第几次出库审核
 			if (0 == times) {
 				if (order.getStatus() == 0) {
@@ -1709,21 +1778,35 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				}
 				order.setStatus(0);
 				order.setOrderStatus("录入");
+				isIssue = 4;
 			} else {
 				if (order.getStatus() == 2) {
 					throw new SecurityException("订单已驳回或未提交审批,请勿重复操作");
 				}
 				order.setStatus(2);
 				order.setOrderStatus("已确认");
+				isIssue = 6;
 			}
-			//盘点审批中
+			for (OrderItems orderItems : CKOrderItemsList) {
+				for (OrderItems RKOrderItems : RKOrderItemsList) {
+					//判断出库与入库明细捆包号是否相等
+					if (orderItems.getBillNo().equals(RKOrderItems.getBillNo())) {
+						RKOrderItems.setIsIssue(isIssue + "");
+						orderItems.setIsIssue(isIssue + "");
+						orderItemsMapper.updateById(RKOrderItems);
+						orderItemsMapper.updateById(orderItems);
+						break;
+					}
+				}
+			}
+			//盘点审批驳回
 		} else if (OrderTypeEnum.INVENTORY.getType().equals(order.getBillType())) {
 			if (order.getStatus() == 0) {
 				throw new SecurityException("订单已驳回或未提交审批,请勿重复操作");
 			}
 			order.setStatus(0);
 			order.setOrderStatus("录入");
-		}else{
+		} else {
 			throw new SecurityException("审批失败");
 		}
 
@@ -1779,19 +1862,16 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	public Order updateOutInStatus(Long id) {
 		Order order = orderMapper.selectById(id);
 		if (ObjectUtils.isNotNull(order)) {
-			if ("CK".equals(order.getBillType())) {
+			//出库提交
+			if (OrderTypeEnum.OUT_WAREHOUSING.getType().equals(order.getBillType())) {
+				//获取出库明细 修改扫描状态
 				QueryWrapper<OrderItems> queryWrapper = new QueryWrapper<>();
 				queryWrapper.eq("pid", order.getId());
 				queryWrapper.eq("tenant_id", AuthUtil.getTenantId());
 				queryWrapper.eq("is_deleted", 0);
 				List<OrderItems> orderItemsList = orderItemsMapper.selectList(queryWrapper);
-				for (OrderItems orderItems : orderItemsList) {
-					orderItems.setScanningComparison("Y");
-					orderItems.setIsIssue("4");
-					orderItems.setUpdateTime(new Date());
-					orderItems.setUpdateUser(AuthUtil.getUserId());
-					orderItemsMapper.updateById(orderItems);
-				}
+
+				//获取入库数据
 				LambdaQueryWrapper<Order> RKOrderLambdaQueryWrapper = new LambdaQueryWrapper<>();
 				RKOrderLambdaQueryWrapper
 					.eq(Order::getIsDeleted, 0)
@@ -1805,27 +1885,36 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				RKOrder.setSpecialCheckStatus(1);
 				orderMapper.updateById(RKOrder);
 
+				//获取入库明细
 				QueryWrapper<OrderItems> RKqueryWrapper = new QueryWrapper<>();
 				RKqueryWrapper.eq("pid", RKOrder.getId());
 				RKqueryWrapper.eq("tenant_id", AuthUtil.getTenantId());
 				RKqueryWrapper.eq("is_deleted", 0);
 				List<OrderItems> RKderItemsList = orderItemsMapper.selectList(queryWrapper);
-				for (OrderItems orderItems : RKderItemsList) {
-					orderItems.setIsIssue("4");
-					orderItems.setScanningComparison("Y");
-					orderItems.setUpdateTime(new Date());
-					orderItems.setUpdateUser(AuthUtil.getUserId());
-					orderItemsMapper.updateById(orderItems);
+				for (OrderItems orderItems : orderItemsList) {
+					for (OrderItems RKorderItems : RKderItemsList) {
+						//判断入库捆包号是否与出库捆包号相等  同时更细入库,出库扫描状态
+						if (orderItems.getBillNo().equals(RKorderItems.getBillNo())) {
+							orderItems.setUpdateTime(new Date());
+							orderItems.setUpdateUser(AuthUtil.getUserId());
+							RKorderItems.setScanningComparison("Y");
+							orderItemsMapper.updateById(RKorderItems);
+							orderItems.setUpdateTime(new Date());
+							orderItems.setUpdateUser(AuthUtil.getUserId());
+							orderItems.setScanningComparison("Y");
+							orderItemsMapper.updateById(orderItems);
+							break;
+						}
+					}
 				}
-
-			} else if ("RK".equals(order.getBillType())) {
+			} else if (OrderTypeEnum.WAREHOUSING.getType().equals(order.getBillType())) {//入库手动修改货物状态为在库
 				QueryWrapper<OrderItems> queryWrapper = new QueryWrapper<>();
 				queryWrapper.eq("pid", order.getId());
 				queryWrapper.eq("tenant_id", AuthUtil.getTenantId());
 				queryWrapper.eq("is_deleted", 0);
 				List<OrderItems> orderItemsList = orderItemsMapper.selectList(queryWrapper);
 				for (OrderItems orderItems : orderItemsList) {
-					orderItems.setIsIssue("2");
+					orderItems.setIsIssue("3");
 					orderItems.setUpdateTime(new Date());
 					orderItems.setUpdateUser(AuthUtil.getUserId());
 					orderItemsMapper.updateById(orderItems);
@@ -1849,120 +1938,201 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	@Transactional
 	public OrderSubmitDto revokeWarehousing(OrderSubmitDto submitDto) {
 		Order order = orderMapper.selectById(submitDto.getId());
-		if (ObjectUtils.isNotNull(order)) {
+		if (order == null) {
+			throw new SecurityException("未找到单据");
+		}
 
-			LambdaQueryWrapper<OrderFees> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-			lambdaQueryWrapper.eq(OrderFees::getTenantId, AuthUtil.getTenantId())
-				.eq(OrderFees::getIsDeleted, 0)
-				.eq(OrderFees::getPid, order.getId())
-				.eq(OrderFees::getIsCheck, 1)
-				.eq(OrderFees::getSubmitPay, 1);
-			List<OrderFees> orderFeesList = orderFeesService.list(lambdaQueryWrapper);
-			for (OrderFees orderFees : orderFeesList) {
-				if (orderFees.getSettlmentAmount().compareTo(new BigDecimal(0)) > 0) {
-					throw new SecurityException("账务已结算,撤回失败");
-				}
-				orderFees.setIsCheck(0);
-				orderFees.setSubmitPay(0);
-				orderFees.setSettlmentAmount(new BigDecimal("0"));
-				orderFeesService.updateById(orderFees);
-				financeClient.deleteBySrcFeesId(orderFees.getId());
+		LambdaQueryWrapper<OrderFees> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(OrderFees::getTenantId, AuthUtil.getTenantId())
+			.eq(OrderFees::getIsDeleted, 0)
+			.eq(OrderFees::getPid, order.getId())
+			.eq(OrderFees::getIsCheck, 1)
+			.eq(OrderFees::getSubmitPay, 1);
+		List<OrderFees> orderFeesList = orderFeesService.list(lambdaQueryWrapper);
+		for (OrderFees orderFees : orderFeesList) {
+			if (orderFees.getSettlmentAmount().compareTo(new BigDecimal(0)) > 0) {
+				throw new SecurityException("账务已结算,撤回失败");
 			}
+			orderFees.setIsCheck(0);
+			orderFees.setSubmitPay(0);
+			orderFees.setSettlmentAmount(new BigDecimal("0"));
+			orderFeesService.updateById(orderFees);
+			financeClient.deleteBySrcFeesId(orderFees.getId());
+		}
 
+		//获取入库
+		LambdaQueryWrapper<Order> RKOrderLambdaQueryWrapper = new LambdaQueryWrapper<>();
+		RKOrderLambdaQueryWrapper
+			.eq(Order::getIsDeleted, 0)
+			.eq(Order::getOrderNo, order.getOrderNo())
+			.eq(Order::getBillType, OrderTypeEnum.WAREHOUSING.getType())
+			.eq(Order::getTenantId, AuthUtil.getTenantId());
+		Order RKOrder = orderMapper.selectOne(RKOrderLambdaQueryWrapper);
+		if (RKOrder == null) {
+			throw new SecurityException("更新入库数据失败");
+		}
 
-			List<OrderItemsVO> orderItemsVOList = submitDto.getItemsVOList();
+		List<OrderItemsVO> orderItemsVOList = submitDto.getItemsVOList();
 
-			//入库撤销
-			if (OrderTypeEnum.WAREHOUSING.getType().equals(order.getBillType())) {
-				for (OrderItems orderItems : orderItemsVOList) {
-					if (orderItems.getIsIssue().equals("2")) {
-						throw new SecurityException("捆包号:" + orderItems.getBillNo() + "已生成出库单,撤回失败");
+		//入库审批撤销
+		if (OrderTypeEnum.WAREHOUSING.getType().equals(order.getBillType())) {
+			for (OrderItems orderItems : orderItemsVOList) {
+				if (orderItems.getIsIssue().equals("4")) {
+					throw new SecurityException("捆包号:" + orderItems.getBillNo() + "已生成出库单,撤回失败");
+				}
+				//撤回入库状态
+				orderItems.setIsIssue("0");
+				//置空条形码,二维码 并删除服务器文件
+				try {
+					File oneFile = new File(orderItems.getOneCode());
+					File QrFile = new File(orderItems.getQrCode());
+
+					if (oneFile.delete()) {
+						orderItems.setOneCode(null);
 					}
-					//撤回入库状态
-					orderItems.setIsIssue("0");
-					//置空条形码,二维码 并删除服务器文件
-					try {
-						File oneFile = new File(orderItems.getOneCode());
-						File QrFile = new File(orderItems.getQrCode());
-
-						if (oneFile.delete()) {
-							orderItems.setOneCode(null);
-						}
-						if (QrFile.delete()) {
-							orderItems.setQrCode(null);
-						}
-					} catch (Exception e) {
-						throw new SecurityException("删除文件失败");
+					if (QrFile.delete()) {
+						orderItems.setQrCode(null);
 					}
-					orderItemsMapper.updateById(orderItems);
+				} catch (Exception e) {
+					throw new SecurityException("删除文件失败");
+				}
+				orderItemsMapper.updateById(orderItems);
+			}
+			order.setStatus(0);
+			order.setOrderStatus("录入");
+			order.setConfirmStatus("0");
+			//出库审批撤销
+		} else if (OrderTypeEnum.OUT_WAREHOUSING.getType().equals(order.getBillType())) {
+			//入库明细
+			LambdaQueryWrapper<OrderItems> RKOrderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
+			RKOrderItemsLambdaQueryWrapper
+				.eq(OrderItems::getIsDeleted, 0)
+				.eq(OrderItems::getPid, RKOrder.getId())
+				.eq(OrderItems::getBillType, OrderTypeEnum.WAREHOUSING.getType())
+				.eq(OrderItems::getTenantId, AuthUtil.getTenantId());
+			List<OrderItems> RKOrderItemsList = orderItemsMapper.selectList(RKOrderItemsLambdaQueryWrapper);
+			int isIssue = 4;
+			//判断第几次出库审核
+			if (8 == order.getStatus()) {
+				if (order.getStatus() == 0) {
+					throw new SecurityException("订单已撤销或未提交审批,请勿重复操作");
 				}
 				order.setStatus(0);
-				order.setConfirmStatus("0");
-				order.setUpdateTime(new Date());
-				order.setUpdateUser(AuthUtil.getUserId());
-				order.setUpdateUserName(AuthUtil.getUserName());
-				baseMapper.updateById(order);
-
-			} else if (OrderTypeEnum.OUT_WAREHOUSING.getType().equals(order.getBillType())) {//出库撤销
-				QueryWrapper<OrderItems> queryWrapper = new QueryWrapper<>();
-				queryWrapper.eq("pid", order.getId());
-				queryWrapper.eq("tenant_id", AuthUtil.getTenantId());
-				queryWrapper.eq("bill_Type", OrderTypeEnum.WAREHOUSING.getType());
-				queryWrapper.eq("is_deleted", 0);
-				List<OrderItems> RkOrderItemsList = orderItemsMapper.selectList(queryWrapper);
-				for (OrderItems orderItems : orderItemsVOList) {
-					for (OrderItems RkOrderItems : RkOrderItemsList) {
-						if (orderItems.getBillNo().equals(RkOrderItems.getBillNo())) {
-							//撤回状态
-							orderItems.setIsIssue("2");
-							RkOrderItems.setIsIssue("2");
-							orderItemsMapper.updateById(orderItems);
-						}
+				order.setOrderStatus("录入");
+				isIssue = 4;
+			} else {
+				if (order.getStatus() == 2) {
+					throw new SecurityException("订单已撤销或未提交审批,请勿重复操作");
+				}
+				order.setStatus(2);
+				order.setOrderStatus("已确认");
+				isIssue = 6;
+			}
+			for (OrderItems orderItems : orderItemsVOList) {
+				for (OrderItems RKOrderItems : RKOrderItemsList) {
+					//判断出库与入库明细捆包号是否相等
+					if (orderItems.getBillNo().equals(RKOrderItems.getBillNo())) {
+						RKOrderItems.setIsIssue(isIssue + "");
+						orderItems.setIsIssue(isIssue + "");
+						orderItemsMapper.updateById(RKOrderItems);
+						orderItemsMapper.updateById(orderItems);
+						break;
 					}
 				}
-				order.setStatus(0);
-				order.setConfirmStatus("0");
-				order.setUpdateTime(new Date());
-				order.setUpdateUser(AuthUtil.getUserId());
-				order.setUpdateUserName(AuthUtil.getUserName());
-				baseMapper.updateById(order);
-			} else if (OrderTypeEnum.INVENTORY.getType().equals(order.getBillType())) {//盘点撤销
-				QueryWrapper<OrderItems> queryWrapper = new QueryWrapper<>();
-				queryWrapper.eq("pid", order.getId());
-				queryWrapper.eq("tenant_id", AuthUtil.getTenantId());
-				queryWrapper.eq("bill_Type", OrderTypeEnum.WAREHOUSING.getType());
-				queryWrapper.eq("is_deleted", 0);
-				List<OrderItems> RkOrderItemsList = orderItemsMapper.selectList(queryWrapper);
-				for (OrderItems orderItems : orderItemsVOList) {
-					for (OrderItems Rk : RkOrderItemsList) {
-						if (orderItems.getBillNo().equals(Rk.getBillNo())) {
-							if (orderItems.getBalanceNumber().compareTo(new BigDecimal("0")) > 0) {
-								//撤回
-								Rk.setBalanceNumber(Rk.getBalanceNumber());
-								Rk.setBalanceMoney(Rk.getBalanceMoney());
-								orderItemsMapper.updateById(orderItems);
-							} else {
-								throw new SecurityException("库存为空,撤回失败");
-							}
+			}
+			//盘点审批撤销
+		} else if (OrderTypeEnum.INVENTORY.getType().equals(order.getBillType())) {
+			QueryWrapper<OrderItems> queryWrapper = new QueryWrapper<>();
+			queryWrapper.eq("pid", RKOrder.getId());
+			queryWrapper.eq("tenant_id", AuthUtil.getTenantId());
+			queryWrapper.eq("bill_Type", OrderTypeEnum.WAREHOUSING.getType());
+			queryWrapper.eq("is_deleted", 0);
+			List<OrderItems> RkOrderItemsList = orderItemsMapper.selectList(queryWrapper);
+			for (OrderItems orderItems : orderItemsVOList) {
+				for (OrderItems Rk : RkOrderItemsList) {
+					if (orderItems.getBillNo().equals(Rk.getBillNo())) {
+						if (orderItems.getBalanceNumber().compareTo(new BigDecimal("0")) > 0) {
+							//撤回
+							Rk.setBalanceNumber(Rk.getBalanceNumber());
+							Rk.setBalanceMoney(Rk.getBalanceMoney());
+							orderItemsMapper.updateById(orderItems);
+							break;
+						} else {
+							throw new SecurityException("库存为空,撤回失败");
 						}
 					}
 				}
-				order.setStatus(0);
-				order.setUpdateTime(new Date());
-				order.setUpdateUser(AuthUtil.getUserId());
-				order.setUpdateUserName(AuthUtil.getUserName());
-				baseMapper.updateById(order);
-			} else {
-				throw new SecurityException("撤销失败,单据类型不存在");
 			}
-			//删除审批记录
-			iCheckClient.deteleByBillId(order.getId());
+			order.setStatus(0);
+			order.setOrderStatus("录入");
 		} else {
-			throw new SecurityException("撤销失败,未找到单据信息");
+			throw new SecurityException("撤销失败");
 		}
+		//删除审批记录
+		iCheckClient.deteleByBillId(order.getId());
+		order.setUpdateTime(new Date());
+		order.setUpdateUser(AuthUtil.getUserId());
+		order.setUpdateUserName(AuthUtil.getUserName());
+		baseMapper.updateById(order);
 		return submitDto;
 	}
 
+	@Override
+	public boolean withdraw(Long id, String type, int status, String isIssue) {
+		if (OrderTypeEnum.WAREHOUSING.getType().equals(type)) {
+			//修改明细状态
+			orderItemsService.updateByPId(id, isIssue);
+		} else if (OrderTypeEnum.OUT_WAREHOUSING.getType().equals(type)) {
+			Order order = baseMapper.selectById(id);
+			//获取入库
+			LambdaQueryWrapper<Order> RKOrderLambdaQueryWrapper = new LambdaQueryWrapper<>();
+			RKOrderLambdaQueryWrapper
+				.eq(Order::getIsDeleted, 0)
+				.eq(Order::getOrderNo, order.getOrderNo())
+				.eq(Order::getBillType, OrderTypeEnum.WAREHOUSING.getType())
+				.eq(Order::getTenantId, AuthUtil.getTenantId());
+			Order RKOrder = orderMapper.selectOne(RKOrderLambdaQueryWrapper);
+			if (RKOrder == null) {
+				throw new SecurityException("更新入库数据失败");
+			}
+			//入库明细
+			LambdaQueryWrapper<OrderItems> RKOrderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
+			RKOrderItemsLambdaQueryWrapper
+				.eq(OrderItems::getIsDeleted, 0)
+				.eq(OrderItems::getPid, RKOrder.getId())
+				.eq(OrderItems::getBillType, OrderTypeEnum.WAREHOUSING.getType())
+				.eq(OrderItems::getTenantId, AuthUtil.getTenantId());
+			List<OrderItems> RKOrderItemsList = orderItemsMapper.selectList(RKOrderItemsLambdaQueryWrapper);
+
+			//出库明细
+			LambdaQueryWrapper<OrderItems> CKOrderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
+			CKOrderItemsLambdaQueryWrapper
+				.eq(OrderItems::getIsDeleted, 0)
+				.eq(OrderItems::getPid, RKOrder.getId())
+				.eq(OrderItems::getBillType, OrderTypeEnum.WAREHOUSING.getType())
+				.eq(OrderItems::getTenantId, AuthUtil.getTenantId());
+			List<OrderItems> CKOrderItemsList = orderItemsMapper.selectList(CKOrderItemsLambdaQueryWrapper);
+			for (OrderItems orderItems : CKOrderItemsList) {
+				for (OrderItems Rk : RKOrderItemsList) {
+					if (orderItems.getBillNo().equals(Rk.getBillNo())) {
+						orderItems.setIsIssue(isIssue);
+						Rk.setIsIssue(isIssue);
+						orderItemsMapper.updateById(Rk);
+						orderItemsMapper.updateById(orderItems);
+					}
+				}
+			}
+		}
+		Order order = new Order();
+		order.setId(id);
+		order.setStatus(status);
+		order.setUpdateUser(AuthUtil.getUserId());
+		order.setUpdateTime(new Date());
+		order.setUpdateUserName(AuthUtil.getUserName());
+		baseMapper.updateById(order);
+		return true;
+	}
+
 	/**
 	 * 订单生成账单 并且推送财务消息
 	 *