Przeglądaj źródła

2022年10月13日 18:31

wangzhuo 3 lat temu
rodzic
commit
0506d8a1c1

+ 20 - 0
blade-service-api/blade-land-api/src/main/java/org/springblade/land/constant/LandConst.java

@@ -45,4 +45,24 @@ public interface LandConst {
 
 	String MOLD_TZ = "特种运输";
 
+	/**
+	 * 权限标识
+	 */
+	String KEY = "30c1c63c-6812-4769-ab80-b6511c84759a ";
+
+	/**
+	 * 沃曼在途url
+	 */
+	String VO_MAN_URL = "http://47.104.235.156:6809";
+
+	/**
+	 * 查询车辆动态数据API服务地址
+	 */
+	String REAL_TIME_DATA_URL = VO_MAN_URL + "/deviceData/realtimeData.do";
+
+	/**
+	 * 根据时间查询单个车辆轨迹数据API服务地址
+	 */
+	String QUERY_TRACK_DATA_URL = VO_MAN_URL + "/track/queryTrackData.do";
+
 }

+ 2 - 0
blade-service-api/blade-land-api/src/main/java/org/springblade/land/entity/OrderAddress.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.land.entity;
 
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -56,6 +57,7 @@ public class OrderAddress implements Serializable {
 	 * 客户ID
 	 */
 	@ApiModelProperty(value = "客户ID")
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private Long corpId;
 	/**
 	 * 客户名

+ 12 - 0
blade-service-api/blade-land-api/src/main/java/org/springblade/land/entity/TrackLog.java

@@ -83,4 +83,16 @@ public class TrackLog implements Serializable {
 	@TableField(exist = false)
 	private String color;
 
+	/**
+	 * 查询开始时间
+	 */
+	@TableField(exist = false)
+	private String startTime;
+
+	/**
+	 * 查询结束时间
+	 */
+	@TableField(exist = false)
+	private String endTime;
+
 }

+ 6 - 1
blade-service-api/blade-mocha-item-api/src/main/java/org/springblade/mocha/entity/SalesPolicy.java

@@ -123,9 +123,14 @@ public class SalesPolicy implements Serializable {
 	/**
 	 * 状态(0 正常 1停用 2暂存)
 	 */
-	@ApiModelProperty(value = "状态(0 正常 1停用 2暂存)")
+	@ApiModelProperty(value = "状态(0 正常 1停用)")
 	private Integer status;
 	/**
+	 * 审批状态(0正常 1停用 2暂存 3审批中)
+	 */
+	@ApiModelProperty(value = "审批状态(0正常 1停用 2暂存 3审批中)")
+	private Integer auditStatus;
+	/**
 	 * 是否已删除(0 否 1是)
 	 */
 	@ApiModelProperty(value = "是否已删除(0 否 1是)")

+ 79 - 78
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryServiceImpl.java

@@ -316,84 +316,6 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 
 		Long deliveryId = delivery.getId();
 		Delivery select = baseMapper.selectById(deliveryId);
-		//销售-发货-生成凭证, 如果销售订单号为空, 则代表是手动录入的发货单,不可以参与生成凭证
-		if ("681169".equals(AuthUtil.getTenantId()) && "GN".equals(delivery.getTradeType())) {
-
-			//=============生成凭证所需信息==============
-			if (select == null) {
-				throw new SecurityException("未查到相关数据,操作失败");
-			}
-			Long corpId = select.getCorpId();
-			String corpName = null;
-			String corpNumber = null;
-			String brand = null;
-			//销售订单号
-			String saleOrderNo = select.getOrderNo();
-			//采购订单号
-			String purchaseOrderNo = null;
-			//根据销售订单号,查询采购订单号
-			Order order = new Order();
-			order.setBillType("XS");
-			order.setOrgOrderNo(saleOrderNo);
-			order.setTenantId(AuthUtil.getTenantId());
-			R<List<Order>> listR = orderDescClient.getByCgList(order);
-			if (listR.isSuccess() && CollectionUtils.isNotEmpty(listR.getData())) {
-				purchaseOrderNo = listR.getData().get(0).getOrderNo();
-			}
-
-
-			String wareHouse = null;
-
-			//客户信息
-			R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(corpId);
-			if (corpMessage.isSuccess() && corpMessage.getData() != null) {
-				corpName = corpMessage.getData().getCname();
-				corpNumber = corpMessage.getData().getCode();
-			}
-			//仓库信息
-			StorageDesc storageDesc = iStorageClient.findById(select.getStorageId());
-			if (storageDesc != null) {
-				wareHouse = storageDesc.getCname();
-			}
-
-
-			//计算明细的入库金额(明细的总采购价 和 总销售价)
-			LambdaQueryWrapper<DeliveryItems> deliveryItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
-			deliveryItemsLambdaQueryWrapper
-				.eq(DeliveryItems::getPid, deliveryId)
-				.eq(DeliveryItems::getIsDeleted, 0);
-			List<DeliveryItems> deliveryItems = deliveryItemsMapper.selectList(deliveryItemsLambdaQueryWrapper);
-			BigDecimal pricetotal1 = deliveryItems.stream().map(DeliveryItems::getPurchaseTotalAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-			BigDecimal pricetotal2 = deliveryItems.stream().map(DeliveryItems::getDeliveryAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-
-			//获得商品品牌
-			R<GoodsDescVO> goods = goodsDescClient.selectGoodsMessage(deliveryItems.get(0).getItemId());
-			if (goods.isSuccess() && goods.getData() != null) {
-				brand = goods.getData().getBrand();
-			}
-
-			//明细总采购价
-			String purchaseTotalAmount = CollectionUtils.isEmpty(deliveryItems) ? "0" : pricetotal1.toString();
-			//明细总销售价
-			String deliveryAmount = CollectionUtils.isEmpty(deliveryItems) ? "0" : pricetotal2.toString();
-
-			//=============生成凭证所需信息==============
-			String accountName = select.getBelongCompany();
-			if (!"青岛通用沃德轮胎有限公司".equals(accountName)) {
-				accountName="青岛达沃特轮胎有限公司";
-			}
-			JdTenant jdTenant = getJdTenant(accountName);
-			if(jdTenant != null) {
-				try {
-					//测试账套-收货生成凭证
-					this.testDeliverGoodsSaveVoucher(brand, select, accountName, corpName, corpNumber, wareHouse, purchaseTotalAmount, deliveryAmount, saleOrderNo, purchaseOrderNo);
-					baseMapper.updateById(select);
-				} catch (Exception exception) {
-					throw new SecurityException(exception.getMessage());
-				}
-			}
-		}
-
 
 		//计算返利
 		/*if ("GN".equals(delivery.getTradeType())) {
@@ -521,6 +443,85 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 			List<DeliveryFiles> deliveryFilesList = deliveryFilesService.saveDeliveryFilesList(delivery.getId(), delivery.getDeliveryFilesList());
 			delivery.setDeliveryFilesList(deliveryFilesList);
 		}
+
+		//销售-发货-生成凭证, 如果销售订单号为空, 则代表是手动录入的发货单,不可以参与生成凭证
+		if ("681169".equals(AuthUtil.getTenantId()) && "GN".equals(delivery.getTradeType())) {
+
+			//=============生成凭证所需信息==============
+			if (select == null) {
+				throw new SecurityException("未查到相关数据,操作失败");
+			}
+			Long corpId = select.getCorpId();
+			String corpName = null;
+			String corpNumber = null;
+			String brand = null;
+			//销售订单号
+			String saleOrderNo = select.getOrderNo();
+			//采购订单号
+			String purchaseOrderNo = null;
+			//根据销售订单号,查询采购订单号
+			Order order = new Order();
+			order.setBillType("XS");
+			order.setOrgOrderNo(saleOrderNo);
+			order.setTenantId(AuthUtil.getTenantId());
+			R<List<Order>> listR = orderDescClient.getByCgList(order);
+			if (listR.isSuccess() && CollectionUtils.isNotEmpty(listR.getData())) {
+				purchaseOrderNo = listR.getData().get(0).getOrderNo();
+			}
+
+
+			String wareHouse = null;
+
+			//客户信息
+			R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(corpId);
+			if (corpMessage.isSuccess() && corpMessage.getData() != null) {
+				corpName = corpMessage.getData().getCname();
+				corpNumber = corpMessage.getData().getCode();
+			}
+			//仓库信息
+			StorageDesc storageDesc = iStorageClient.findById(select.getStorageId());
+			if (storageDesc != null) {
+				wareHouse = storageDesc.getCname();
+			}
+
+
+			//计算明细的入库金额(明细的总采购价 和 总销售价)
+			LambdaQueryWrapper<DeliveryItems> deliveryItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
+			deliveryItemsLambdaQueryWrapper
+				.eq(DeliveryItems::getPid, deliveryId)
+				.eq(DeliveryItems::getIsDeleted, 0);
+			List<DeliveryItems> deliveryItems = deliveryItemsMapper.selectList(deliveryItemsLambdaQueryWrapper);
+			BigDecimal pricetotal1 = deliveryItems.stream().map(DeliveryItems::getPurchaseTotalAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
+			BigDecimal pricetotal2 = deliveryItems.stream().map(DeliveryItems::getDeliveryAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
+
+			//获得商品品牌
+			R<GoodsDescVO> goods = goodsDescClient.selectGoodsMessage(deliveryItems.get(0).getItemId());
+			if (goods.isSuccess() && goods.getData() != null) {
+				brand = goods.getData().getBrand();
+			}
+
+			//明细总采购价
+			String purchaseTotalAmount = CollectionUtils.isEmpty(deliveryItems) ? "0" : pricetotal1.toString();
+			//明细总销售价
+			String deliveryAmount = CollectionUtils.isEmpty(deliveryItems) ? "0" : pricetotal2.toString();
+
+			//=============生成凭证所需信息==============
+			String accountName = select.getBelongCompany();
+			if (!"青岛通用沃德轮胎有限公司".equals(accountName)) {
+				accountName="青岛达沃特轮胎有限公司";
+			}
+			JdTenant jdTenant = getJdTenant(accountName);
+			if(jdTenant != null) {
+				try {
+					//测试账套-收货生成凭证
+					this.testDeliverGoodsSaveVoucher(brand, select, accountName, corpName, corpNumber, wareHouse, purchaseTotalAmount, deliveryAmount, saleOrderNo, purchaseOrderNo);
+					baseMapper.updateById(select);
+				} catch (Exception exception) {
+					throw new SecurityException(exception.getMessage());
+				}
+			}
+		}
+
 		return R.data(delivery);
 	}
 

+ 18 - 0
blade-service/blade-land/src/main/java/org/springblade/land/controller/TrackLogController.java

@@ -82,6 +82,24 @@ public class TrackLogController extends BladeController {
 	}
 
 	/**
+	 * 陆运在途查询车辆动态数据
+	 */
+	@GetMapping("/realtimeData")
+	@ApiOperation(value = "查询车辆动态数据", notes = "传入trackLog")
+	public R<Map<String, Object>> realtimeData(TrackLog trackLog){
+		return R.data(trackLogService.realtimeData(trackLog));
+	}
+
+	/**
+	 * 根据时间查询单个车辆轨迹数据
+	 */
+	@GetMapping("/queryTrackData")
+	@ApiOperation(value = "根据时间查询单个车辆轨迹数据", notes = "传入trackLog")
+	public R<Map<String, Object>> queryTrackData(TrackLog trackLog){
+		return R.data(trackLogService.queryTrackData(trackLog));
+	}
+
+	/**
 	 * 陆运轨迹
 	 */
 	@GetMapping("/track")

+ 16 - 0
blade-service/blade-land/src/main/java/org/springblade/land/service/ITrackLogService.java

@@ -49,6 +49,22 @@ public interface ITrackLogService extends IService<TrackLog> {
 	Map<String, Object> location(TrackLog trackLog);
 
 	/**
+	 * 陆运车辆在途查询车辆动态数据
+	 *
+	 * @param trackLog
+	 * @return
+	 */
+	Map<String, Object> realtimeData(TrackLog trackLog);
+
+	/**
+	 * 根据时间查询单个车辆轨迹数据
+	 *
+	 * @param trackLog
+	 * @return
+	 */
+	Map<String, Object> queryTrackData(TrackLog trackLog);
+
+	/**
 	 * 获取轨迹
 	 *
 	 * @param trackLog

+ 109 - 0
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/TrackLogServiceImpl.java

@@ -22,6 +22,9 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.openapi.sdk.service.DataExchangeService;
+import lombok.AllArgsConstructor;
+import org.springblade.client.entity.LandVehicle;
+import org.springblade.client.feign.ILandVehicleClient;
 import org.springblade.core.cache.utils.CacheUtil;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.utils.DateUtil;
@@ -47,8 +50,11 @@ import java.util.*;
  * @since 2022-04-22
  */
 @Service
+@AllArgsConstructor
 public class TrackLogServiceImpl extends ServiceImpl<TrackLogMapper, TrackLog> implements ITrackLogService {
 
+	private final ILandVehicleClient vehicleClient;
+
 	@Override
 	public IPage<TrackLogVO> selectOrderTrackPage(IPage<TrackLogVO> page, TrackLogVO orderTrack) {
 		return page.setRecords(baseMapper.selectOrderTrackPage(page, orderTrack));
@@ -99,6 +105,109 @@ public class TrackLogServiceImpl extends ServiceImpl<TrackLogMapper, TrackLog> i
 		return data;
 	}
 
+	/**
+	 * 陆运车辆在途查询车辆动态数据
+	 *
+	 * @param trackLog
+	 * @return
+	 */
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public Map<String, Object> realtimeData(TrackLog trackLog){
+		TrackKey key = CacheUtil.get(LandConst.LAND_CACHE, LandConst.TRACK_TOKEN, trackLog.getTenantId(), TrackKey.class, false);
+		if (ObjectUtil.isEmpty(key)) {
+			throw new RuntimeException("获取请求token失败");
+		}
+		//获得车辆信息
+		LandVehicle landVehicle = vehicleClient.selectByPlateNo(trackLog.getPlateNo());
+		if (ObjectUtil.isEmpty(landVehicle)){
+			throw new SecurityException("车辆信息异常");
+		}
+
+		Map<String, Object> data = new HashMap<>();
+		try {
+			Map<String, String> map = new HashMap<>(5);
+			map.put("token", key.getToken());
+			map.put("key", LandConst.KEY);
+			map.put("type", "1");
+			map.put("ids", landVehicle.getGpsId());
+
+			DataExchangeService des = new DataExchangeService(5000, 8000);
+			String res = des.postHttps(LandConst.REAL_TIME_DATA_URL, map);
+			trackLog.setDetail(res);
+
+			JSONObject result = getData(res);
+			// 处理数据
+			JSONObject temp = result.getJSONObject("result").getJSONObject("firstVcl");
+
+			List<Double> location = new ArrayList<>();
+			location.add(dealGrid(temp.getString("lon")));
+			location.add(dealGrid(temp.getString("lat")));
+
+			data.put("location", location);//经纬度
+			data.put("vehicleStatus", temp.getString("vehicleStatus"));//车辆状态
+			data.put("time", temp.getString("formatTime"));//时间
+			data.put("speed", temp.getString("speed"));//速度
+		} catch (Exception e) {
+			throw new RuntimeException("获取数据失败:" + e.getMessage());
+		}
+
+		trackLog.setTenantId(AuthUtil.getTenantId());
+		trackLog.setCreateUser(AuthUtil.getUserId());
+		trackLog.setCreateTime(new Date());
+		//baseMapper.insert(trackLog);
+		return data;
+	}
+
+	/**
+	 * 根据时间查询单个车辆轨迹数据
+	 *
+	 * @param trackLog
+	 * @return
+	 */
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public Map<String, Object> queryTrackData(TrackLog trackLog){
+		TrackKey key = CacheUtil.get(LandConst.LAND_CACHE, LandConst.TRACK_TOKEN, trackLog.getTenantId(), TrackKey.class, false);
+		if (ObjectUtil.isEmpty(key)) {
+			throw new RuntimeException("获取请求token失败");
+		}
+		//获得车辆信息
+		LandVehicle landVehicle = vehicleClient.selectByPlateNo(trackLog.getPlateNo());
+
+		Map<String, Object> data = new HashMap<>();
+		try {
+			Map<String, String> map = new HashMap<>(5);
+			map.put("token", key.getToken());
+			map.put("key", LandConst.KEY);
+			map.put("type", "1");
+			map.put("id", landVehicle.getGpsId());
+			map.put("startTime", trackLog.getStartTime());
+			map.put("endTime", trackLog.getEndTime());
+
+			DataExchangeService des = new DataExchangeService(5000, 8000);
+			String res = des.postHttps(LandConst.QUERY_TRACK_DATA_URL, map);
+			trackLog.setDetail(res);
+
+			JSONObject result = getData(res);
+			// 处理数据
+			JSONObject temp = result.getJSONObject("result").getJSONObject("firstVcl");
+
+			List<Double> location = new ArrayList<>();
+			location.add(dealGrid(temp.getString("lon")));
+			location.add(dealGrid(temp.getString("lat")));
+
+		} catch (Exception e) {
+			throw new RuntimeException("获取数据失败:" + e.getMessage());
+		}
+
+		trackLog.setTenantId(AuthUtil.getTenantId());
+		trackLog.setCreateUser(AuthUtil.getUserId());
+		trackLog.setCreateTime(new Date());
+		//baseMapper.insert(trackLog);
+		return data;
+	}
+
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public Map<String, Object> track(TrackLog trackLog) {

+ 13 - 1
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/controller/SalesPolicyController.java

@@ -90,7 +90,7 @@ public class SalesPolicyController extends BladeController {
 		lambdaQueryWrapper.like(Func.isNotEmpty(salesPolicy.getCname()), SalesPolicy::getCname, salesPolicy.getCname());
 		lambdaQueryWrapper.like(Func.isNotEmpty(salesPolicy.getBrand()), SalesPolicy::getBrand, salesPolicy.getBrand());
 		lambdaQueryWrapper.like(Func.isNotEmpty(salesPolicy.getCorps()), SalesPolicy::getCorps, salesPolicy.getCorps());
-		lambdaQueryWrapper.eq(Func.isNotEmpty(salesPolicy.getStatus()), SalesPolicy::getStatus, salesPolicy.getStatus());
+		lambdaQueryWrapper.eq(Func.isNotEmpty(salesPolicy.getAuditStatus()), SalesPolicy::getAuditStatus, salesPolicy.getAuditStatus());
 		lambdaQueryWrapper.ge(Func.isNotEmpty(salesPolicy.getCreateTimeStart()), SalesPolicy::getCreateTime, salesPolicy.getCreateTimeStart());
 		lambdaQueryWrapper.le(Func.isNotEmpty(salesPolicy.getCreateTimeEnd()), SalesPolicy::getCreateTime, salesPolicy.getCreateTimeEnd());
 		lambdaQueryWrapper.ge(Func.isNotEmpty(salesPolicy.getDateValidityStart()), SalesPolicy::getStartTime, salesPolicy.getDateValidityStart());
@@ -161,6 +161,7 @@ public class SalesPolicyController extends BladeController {
 	@ApiOperationSupport(order = 6)
 	@ApiOperation(value = "新增或修改", notes = "传入salesPolicy")
 	public R submit(@Valid @RequestBody SalesPolicy salesPolicy) {
+		salesPolicy.setAuditStatus(salesPolicy.getStatus());
 		return salesPolicyService.saveSalesPolicy(salesPolicy);
 	}
 
@@ -225,6 +226,17 @@ public class SalesPolicyController extends BladeController {
 	}
 
 	/**
+	 * 撤销请核
+	 */
+	@PostMapping("/repealCancel")
+	@ApiOperationSupport(order = 14)
+	@ApiOperation(value = "撤销请核", notes = "传入salesPolicy")
+	public R repealCancel(SalesPolicy salesPolicy){
+		salesPolicyService.repealCancel(salesPolicy);
+		return R.success("操作成功");
+	}
+
+	/**
 	 * 审核通过
 	 */
 	@PostMapping("/passCheck")

+ 8 - 0
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/service/ISalesPolicyService.java

@@ -90,6 +90,14 @@ public interface ISalesPolicyService extends IService<SalesPolicy> {
 	void checkSalesPolicy(SalesPolicy salesPolicy);
 
 	/**
+	 * 撤销请核
+	 *
+	 * @param salesPolicy
+	 * @return
+	 */
+	void repealCancel(SalesPolicy salesPolicy);
+
+	/**
 	 * 审批通过
 	 * @param id
 	 * @teturn

+ 35 - 8
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/service/impl/SalesPolicyServiceImpl.java

@@ -88,6 +88,10 @@ public class SalesPolicyServiceImpl extends ServiceImpl<SalesPolicyMapper, Sales
 
 	@Override
 	public R saveSalesPolicy(SalesPolicy salesPolicy) {
+		//审批中停用撤销审批
+		if (salesPolicy.getStatus() == 1 && salesPolicy.getAuditStatus() == 3){
+			this.repealCancel(salesPolicy);
+		}
 		if (salesPolicy.getId() == null) {
 			salesPolicy.setTenantId(SecureUtil.getTenantId());
 			salesPolicy.setCreateTime(new Date());
@@ -291,16 +295,16 @@ public class SalesPolicyServiceImpl extends ServiceImpl<SalesPolicyMapper, Sales
 	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public void checkSalesPolicy(SalesPolicy salesPolicy){
 		SalesPolicy policy = baseMapper.selectById(salesPolicy.getId());
-		if (policy.getStatus() == 0){
+		if (policy.getAuditStatus() == 3){
 			throw new SecurityException("订单已请核,请勿重复请核");
 		}
 		//生成平台审核数据
-		AuditPathsActs pathsActs = iCheckClient.getApprovalActId(16, "status", AuthUtil.getTenantId());
+		AuditPathsActs pathsActs = iCheckClient.getApprovalActId(16, "audit_status", AuthUtil.getTenantId());
 		if (pathsActs == null || pathsActs.getIsEnable() == 2) {
 			throw new SecurityException("当前租户未查询到审批流配置");
 		} else {
 			//获取审批级次
-			List<AuditPathsLevels> auditPathsLevels = iCheckClient.listApproval(16, "status", AuthUtil.getTenantId());
+			List<AuditPathsLevels> auditPathsLevels = iCheckClient.listApproval(16, "audit_status", AuthUtil.getTenantId());
 			if (com.baomidou.mybatisplus.core.toolkit.CollectionUtils.isEmpty(auditPathsLevels)) {
 				throw new SecurityException("开启审批失败:未查询到审批信息");
 			}
@@ -330,12 +334,35 @@ public class SalesPolicyServiceImpl extends ServiceImpl<SalesPolicyMapper, Sales
 			}
 			SalesPolicy upSalesPolicy = new SalesPolicy();
 			upSalesPolicy.setId(policy.getId());
-			upSalesPolicy.setStatus(2);
+			upSalesPolicy.setAuditStatus(3);
 			baseMapper.updateById(upSalesPolicy);
 		}
 	}
 
 	/**
+	 * 撤销审核
+	 */
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
+	public void repealCancel(SalesPolicy salesPolicy){
+		if (salesPolicy.getAuditStatus() == 3){
+			//修改订单信息
+			AuditProecessDTO auditProecessDTO = new AuditProecessDTO();
+			// 绑定审核类型
+			auditProecessDTO.setCheckType("xszc");//销售政策
+			auditProecessDTO.setProcessType("销售政策审批");
+			auditProecessDTO.setBillId(salesPolicy.getId());
+			auditProecessDTO.setTenantId(AuthUtil.getTenantId());//租户id
+			auditProecessDTO.setIsDelete(1);
+			R update = iCheckClient.update(auditProecessDTO);
+			if (!update.isSuccess()) {
+				throw new RuntimeException("删除审批流数据失败");
+			}
+		}
+	}
+
+	/**
 	 * 审核通过
 	 */
 	@Override
@@ -348,10 +375,10 @@ public class SalesPolicyServiceImpl extends ServiceImpl<SalesPolicyMapper, Sales
 		if (salesPolicy == null){
 			throw new SecurityException("审批通过失败");
 		}
-		if (salesPolicy.getStatus() == 0){
+		if (salesPolicy.getAuditStatus() == 0){
 			throw new SecurityException("订单已审批通过请勿重复审批");
 		}
-		salesPolicy.setStatus(0);
+		salesPolicy.setAuditStatus(0);
 		baseMapper.updateById(salesPolicy);
 	}
 
@@ -368,7 +395,7 @@ public class SalesPolicyServiceImpl extends ServiceImpl<SalesPolicyMapper, Sales
 		if (salesPolicy == null) {
 			throw new SecurityException("审批失败");
 		}
-		salesPolicy.setStatus(2);
+		salesPolicy.setAuditStatus(3);
 		baseMapper.updateById(salesPolicy);
 	}
 
@@ -388,7 +415,7 @@ public class SalesPolicyServiceImpl extends ServiceImpl<SalesPolicyMapper, Sales
 		if (salesPolicy.getStatus() == 2){
 			throw new SecurityException("订单已驳回或未提交审批,请勿重复操作");
 		}
-		salesPolicy.setStatus(2);
+		salesPolicy.setAuditStatus(2);
 		baseMapper.updateById(salesPolicy);
 	}