Просмотр исходного кода

达沃特、陆运修改

Signed-off-by: sunhz <mpcoo@foxmail.com>
sunhz 3 лет назад
Родитель
Сommit
ab6cb15296
12 измененных файлов с 267 добавлено и 127 удалено
  1. 25 0
      blade-service-api/blade-deliver-goods-api/src/main/java/org/springblade/deliver/goods/entity/Delivery.java
  2. 1 1
      blade-service-api/blade-deliver-goods-api/src/main/java/org/springblade/deliver/goods/enums/DeliveryStatusEnum.java
  3. 6 0
      blade-service-api/blade-land-api/src/main/java/org/springblade/land/entity/OrderItem.java
  4. 38 4
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/Order.java
  5. 7 6
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/feign/IOrderDescClient.java
  6. 9 4
      blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/Order.java
  7. 94 6
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryServiceImpl.java
  8. 3 2
      blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderItemServiceImpl.java
  9. 7 16
      blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderServiceImpl.java
  10. 36 40
      blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/controller/SalesPolicyController.java
  11. 39 42
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/feign/OrderDescClient.java
  12. 2 6
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

+ 25 - 0
blade-service-api/blade-deliver-goods-api/src/main/java/org/springblade/deliver/goods/entity/Delivery.java

@@ -64,6 +64,11 @@ public class Delivery implements Serializable {
 	@ApiModelProperty(value = "原始订单号")
 	private String orgOrderNo;
 	/**
+	 * 原始id
+	 */
+	@ApiModelProperty(value = "原始id")
+	private Long orgId;
+	/**
 	 * 来源订单号
 	 */
 	@ApiModelProperty(value = "来源订单号")
@@ -354,6 +359,26 @@ public class Delivery implements Serializable {
 	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	private Date assistantConfirmTime;
 
+	/**
+	 * 收发货数量
+	 */
+	@ApiModelProperty(value = "收发货数量")
+	private BigDecimal freightQuantity;
+
+	/**
+	 * 收发货时间
+	 */
+	@ApiModelProperty(value = "收发货时间")
+	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date freightTime;
+
+	/**
+	 * 收发货人
+	 */
+	@ApiModelProperty(value = "收发货人")
+	private String freightUser;
+
 	@ApiModelProperty(value = "详情回显所属公司中文名")
 	@TableField(exist = false)
 	private List<Map<String, Object>> companyName;

+ 1 - 1
blade-service-api/blade-deliver-goods-api/src/main/java/org/springblade/deliver/goods/enums/DeliveryStatusEnum.java

@@ -11,7 +11,7 @@ public enum DeliveryStatusEnum {
 	/**
 	 * 发货
 	 */
-	DELIVER("已货"),
+	DELIVER("已货"),
 
 	/**
 	 * 撤销发货

+ 6 - 0
blade-service-api/blade-land-api/src/main/java/org/springblade/land/entity/OrderItem.java

@@ -368,6 +368,12 @@ public class OrderItem implements Serializable {
 	private String endCrateTime;
 
 	@TableField(exist = false)
+	private String beginFinishedTime;
+
+	@TableField(exist = false)
+	private String endFinishedTime;
+
+	@TableField(exist = false)
 	private String addressDetail;
 
 	@TableField(exist = false)

+ 38 - 4
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/Order.java

@@ -824,6 +824,11 @@ public class Order implements Serializable {
 	@ApiModelProperty(value = "生成采购")
 	private Integer createPurchase;
 	/**
+	 * 生成采购用户
+	 */
+	@ApiModelProperty(value = "生成采购用户")
+	private String createPurchaseUser;
+	/**
 	 * 生成采购时间
 	 */
 	@ApiModelProperty(value = "生成采购时间")
@@ -833,12 +838,41 @@ public class Order implements Serializable {
 	 * 生成收发货
 	 */
 	@ApiModelProperty(value = "生成收发货")
-	private Integer createReceiving;
+	private Integer createFreight;
 	/**
-	 * 生成收发货
+	 * 生成收发货用户
 	 */
-	@ApiModelProperty(value = "生成收发货")
+	@ApiModelProperty(value = "生成收发货用户")
+	private String createFreightUser;
+	/**
+	 * 生成收发货时间
+	 */
+	@ApiModelProperty(value = "生成收发货时间")
+	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date createFreightTime;
+
+	/**
+	 * 发货数量
+	 */
+	@ApiModelProperty(value = "发货数量")
+	private BigDecimal deliverQuantity;
+	/**
+	 * 发货时间
+	 */
+	@ApiModelProperty(value = "发货时间")
+	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date deliverTime;
+
+	/**
+	 * 收货数量
+	 */
+	@ApiModelProperty(value = "收货数量")
+	private BigDecimal receiveQuantity;
+	/**
+	 * 收货时间
+	 */
+	@ApiModelProperty(value = "收货时间")
 	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
-	private Date createReceivingTime;
+	private Date receiveTime;
 
 }

+ 7 - 6
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/feign/IOrderDescClient.java

@@ -1,6 +1,5 @@
 package org.springblade.purchase.sales.feign;
 
-
 import org.springblade.common.constant.LauncherConstant;
 import org.springblade.core.tool.api.R;
 import org.springblade.purchase.sales.entity.Order;
@@ -21,15 +20,16 @@ import java.util.List;
 )
 public interface IOrderDescClient {
 	String API_PREFIX = "/client";
-	String UPDATE_ORDER=API_PREFIX+"/updateOrder";
-	String GET_BY_ORDER_NO=API_PREFIX+"/getByOrderNo";
-	String GET_BY_ID=API_PREFIX+"/getById";
-	String GET_BY_CONDITIONS=API_PREFIX+"/getByConditions";
-	String GET_BY_CG_LIST=API_PREFIX+"/getByCgList";
+	String UPDATE_ORDER = API_PREFIX + "/updateOrder";
+	String GET_BY_ORDER_NO = API_PREFIX + "/getByOrderNo";
+	String GET_BY_ID = API_PREFIX + "/getById";
+	String GET_BY_CONDITIONS = API_PREFIX + "/getByConditions";
+	String GET_BY_CG_LIST = API_PREFIX + "/getByCgList";
 	String RELEASE_STOCK = API_PREFIX + "/releaseStock";
 
 	/**
 	 * 修改采购订单状态
+	 *
 	 * @param order
 	 * @return
 	 */
@@ -50,6 +50,7 @@ public interface IOrderDescClient {
 
 	/**
 	 * 获取 达沃特 48 销售内 提交审核未收款的订单
+	 *
 	 * @param order
 	 * @return
 	 */

+ 9 - 4
blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/Order.java

@@ -714,12 +714,17 @@ public class Order extends OrderBase {
 	 * 生成收发货
 	 */
 	@ApiModelProperty(value = "生成收发货")
-	private Integer createReceiving;
+	private Integer createFreight;
 	/**
-	 * 生成收发货
+	 * 生成收发货用户
 	 */
-	@ApiModelProperty(value = "生成收发货")
+	@ApiModelProperty(value = "生成收发货用户")
+	private String createFreightUser;
+	/**
+	 * 生成收发货时间
+	 */
+	@ApiModelProperty(value = "生成收发货时间")
 	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
-	private Date createReceivingTime;
+	private Date createFreightTime;
 
 }

+ 94 - 6
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryServiceImpl.java

@@ -24,6 +24,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.trade.purchase.order.enums.OrderTypeEnum;
 import io.seata.spring.annotation.GlobalTransactional;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -37,6 +38,7 @@ import org.springblade.client.feign.IStorageClient;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.deliver.goods.entity.*;
 import org.springblade.deliver.goods.enums.DeliveryEnum;
 import org.springblade.deliver.goods.enums.DeliveryStatusEnum;
@@ -159,6 +161,27 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 			delivery.setTenantId(SecureUtil.getTenantId());
 			delivery.setDeliveryStatus(status);
 			baseMapper.insert(delivery);
+
+			if (ObjectUtil.isNotEmpty(delivery.getOrgId()) && ObjectUtil.isNotEmpty(delivery.getSrcId())) {
+				Order orderTemp = new Order();
+				orderTemp.setId(delivery.getSrcId());
+				if (delivery.getBillType().equals(OrderTypeEnum.RECEIPT.getType())) {
+					Order temp = new Order();
+					temp.setId(delivery.getOrgId());
+					temp.setCreateFreight(1);
+					temp.setCreateFreightUser(AuthUtil.getUserName());
+					temp.setCreateFreightTime(new Date());
+					temp.setOrderStatus("待发货");
+					orderDescClient.updateOrder(temp);
+
+					orderTemp.setOrderStatus("待发货");
+				} else {
+					orderTemp.setCreateFreight(1);
+					orderTemp.setCreateFreightUser(AuthUtil.getUserName());
+					orderTemp.setCreateFreightTime(new Date());
+				}
+				orderDescClient.updateOrder(orderTemp);
+			}
 		} else {
 			if (delivery.getLogisticsConfirm() == 0 || delivery.getAssistantConfirm() == 0) {
 				Delivery temp = baseMapper.selectById(delivery.getId());
@@ -378,16 +401,44 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 			baseMapper.insert(delivery);
 		} else {
 			Delivery deliverys = baseMapper.selectById(delivery.getId());//查询原始单据
-			if (delivery.getDeliveryType().equals(DeliveryEnum.DELIVER.getType()) && delivery.getDeliveryStatus().equals(DeliveryStatusEnum.DELIVER.getType())) {//发货
-				throw new RuntimeException("已发货请勿重复发货");
-			} else if (delivery.getDeliveryType().equals(DeliveryEnum.REPEAL.getType()) && !delivery.getDeliveryStatus().equals(DeliveryStatusEnum.DELIVER.getType()))//撤销发货
-			{
-				throw new RuntimeException("已撤销发货请勿重复撤销发货");
+			if (delivery.getDeliveryType().equals(DeliveryEnum.DELIVER.getType()) && delivery.getDeliveryStatus().equals(DeliveryStatusEnum.DELIVER.getType())) {
+				//发货
+				throw new RuntimeException("已收货请勿重复收货");
+			} else if (delivery.getDeliveryType().equals(DeliveryEnum.REPEAL.getType()) && !delivery.getDeliveryStatus().equals(DeliveryStatusEnum.DELIVER.getType())) {
+				//撤销发货
+				throw new RuntimeException("已撤销收货请勿重复撤销收货");
 			}
 			delivery.setDeliveryStatus(billStatus);
 			delivery.setUpdateUser(SecureUtil.getUserId());
 			delivery.setUpdateTime(new Date());
+
+			Order orderTemp = new Order();
+			orderTemp.setId(select.getSrcId());
+			if (delivery.getDeliveryType().equals(DeliveryEnum.DELIVER.getType())) {
+				Date date = new Date();
+				delivery.setFreightQuantity(delivery.getTotalQuantity());
+				delivery.setFreightTime(date);
+				delivery.setFreightUser(AuthUtil.getUserName());
+
+				orderTemp.setOrderStatus("完成");
+				orderTemp.setDeliverQuantity(delivery.getTotalQuantity());
+				orderTemp.setDeliverTime(date);
+			} else {
+				orderTemp.setOrderStatus("待收货");
+				orderTemp.setDeliverQuantity(BigDecimal.ZERO);
+			}
+
 			baseMapper.updateById(delivery);
+			orderDescClient.updateOrder(orderTemp);
+
+			if (delivery.getDeliveryType().equals(DeliveryEnum.REPEAL.getType())) {
+				baseMapper.update(null, new LambdaUpdateWrapper<Delivery>()
+					.set(Delivery::getFreightQuantity, BigDecimal.ZERO)
+					.set(Delivery::getFreightTime, null)
+					.set(Delivery::getFreightUser, null)
+					.eq(Delivery::getId, delivery.getId())
+				);
+			}
 		}
 		//保存发货明细信息
 		if (CollectionUtils.isNotEmpty(delivery.getDeliveryItemsList())) {
@@ -626,8 +677,26 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 			}
 		}
 
+		Date date = new Date();
 		//更改收货主表状态
-		delivery.setDeliveryStatus("已收货");
+		delivery.setDeliveryStatus("已发货");
+		delivery.setFreightQuantity(delivery.getTotalQuantity());
+		delivery.setFreightTime(date);
+		delivery.setFreightUser(AuthUtil.getUserName());
+
+		Order temp = new Order();
+		temp.setId(select.getOrgId());
+		temp.setOrderStatus("待收货");
+		temp.setDeliverQuantity(delivery.getTotalQuantity());
+		temp.setDeliverTime(date);
+		orderDescClient.updateOrder(temp);
+
+		Order orderTemp = new Order();
+		orderTemp.setId(select.getSrcId());
+		orderTemp.setOrderStatus("待收货");
+		orderTemp.setDeliverQuantity(delivery.getTotalQuantity());
+		orderTemp.setDeliverTime(date);
+		orderDescClient.updateOrder(orderTemp);
 		baseMapper.updateById(delivery);
 
 	}
@@ -740,7 +809,26 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 		}
 		//更新收货单状态为:录入
 		delivery.setDeliveryStatus("录入");
+
+		Order temp = new Order();
+		temp.setId(select.getOrgId());
+		temp.setOrderStatus("待发货");
+		temp.setDeliverQuantity(BigDecimal.ZERO);
+		orderDescClient.updateOrder(temp);
+
+		Order orderTemp = new Order();
+		orderTemp.setId(select.getSrcId());
+		orderTemp.setOrderStatus("待发货");
+		orderTemp.setDeliverQuantity(BigDecimal.ZERO);
+		orderDescClient.updateOrder(orderTemp);
 		baseMapper.updateById(delivery);
+
+		baseMapper.update(null, new LambdaUpdateWrapper<Delivery>()
+			.set(Delivery::getFreightQuantity, BigDecimal.ZERO)
+			.set(Delivery::getFreightTime, null)
+			.set(Delivery::getFreightUser, null)
+			.eq(Delivery::getId, delivery.getId())
+		);
 	}
 
 

+ 3 - 2
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderItemServiceImpl.java

@@ -600,10 +600,9 @@ public class OrderItemServiceImpl extends ServiceImpl<OrderItemMapper, OrderItem
 
 	private LambdaQueryWrapper<OrderItem> getWrapper(OrderItem orderItem) {
 		List<Long> orderIdList = Collections.emptyList();
-		if (ObjectUtil.isNotEmpty(orderItem.getCorpId()) || StringUtil.isNotBlank(orderItem.getStation())
+		if (StringUtil.isNotBlank(orderItem.getAddressDetail()) || StringUtil.isNotBlank(orderItem.getStation())
 			|| StringUtil.isNotBlank(orderItem.getFactory()) || StringUtil.isNotBlank(orderItem.getOrderNo())) {
 			orderIdList = orderMapper.selectList(new LambdaQueryWrapper<Order>()
-				.eq(ObjectUtil.isNotEmpty(orderItem.getCorpId()), Order::getCorpId, orderItem.getCorpId())
 				.like(StringUtil.isNotBlank(orderItem.getOrderNo()), Order::getOrderNo, orderItem.getOrderNo())
 				.like(StringUtil.isNotBlank(orderItem.getStation()), Order::getStation, orderItem.getStation())
 				.like(StringUtil.isNotBlank(orderItem.getFactory()), Order::getFactory, orderItem.getFactory())
@@ -631,7 +630,9 @@ public class OrderItemServiceImpl extends ServiceImpl<OrderItemMapper, OrderItem
 			.like(StringUtil.isNotBlank(orderItem.getCtnNo()), OrderItem::getCtnNo, orderItem.getCtnNo())
 			.between(StringUtil.isNotBlank(orderItem.getBeginArrivalTime()) && StringUtil.isNotBlank(orderItem.getEndArrivalTime()), OrderItem::getArrivalTime, orderItem.getBeginArrivalTime(), orderItem.getEndArrivalTime())
 			.between(StringUtil.isNotBlank(orderItem.getBeginCrateTime()) && StringUtil.isNotBlank(orderItem.getEndCrateTime()), OrderItem::getCreateTime, orderItem.getBeginCrateTime(), orderItem.getEndCrateTime())
+			.between(StringUtil.isNotBlank(orderItem.getBeginFinishedTime()) && StringUtil.isNotBlank(orderItem.getEndFinishedTime()), OrderItem::getFinishedTime, orderItem.getBeginFinishedTime(), orderItem.getEndFinishedTime())
 			.eq(StringUtil.isNotBlank(orderItem.getCtnType()), OrderItem::getCtnType, orderItem.getCtnType())
+			.eq(ObjectUtil.isNotEmpty(orderItem.getQuantity()), OrderItem::getQuantity, orderItem.getQuantity())
 			.eq(ObjectUtil.isNotEmpty(orderItem.getFleetId()), OrderItem::getFleetId, orderItem.getFleetId())
 			.eq(ObjectUtil.isNotEmpty(orderItem.getVehicleId()), OrderItem::getVehicleId, orderItem.getVehicleId())
 			.eq(ObjectUtil.isNotEmpty(orderItem.getDriverId()), OrderItem::getDriverId, orderItem.getDriverId())

+ 7 - 16
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderServiceImpl.java

@@ -147,7 +147,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				}
 			}
 			if (!ObjectUtil.isEmpty(detail.getPodId())) {
-				BasicPortDesc pod= portClient.getPort(detail.getPodId());
+				BasicPortDesc pod = portClient.getPort(detail.getPodId());
 				if (pod != null) {
 					detail.setPodName(pod.getName());
 				}
@@ -204,30 +204,18 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				return new Page<>();
 			}
 		}
-		if (StringUtil.isNotBlank(order.getBeginArrivalTime()) && StringUtil.isNotBlank(order.getEndArrivalTime())) {
-			orderIdList = orderItemMapper.selectList(new LambdaQueryWrapper<OrderItem>()
-				.select(OrderItem::getOrderId)
-				.in(CollectionUtil.isNotEmpty(orderIdList), OrderItem::getOrderId, orderIdList)
-				.between(OrderItem::getArrivalTime, order.getBeginArrivalTime(), order.getEndArrivalTime())
-				.eq(OrderItem::getKind, 1)
-				.eq(OrderItem::getIsDeleted, 0)
-				.groupBy(OrderItem::getOrderId)
-			).stream().map(OrderItem::getOrderId).collect(Collectors.toList());
-
-			if (CollectionUtil.isEmpty(orderIdList)) {
-				return new Page<>();
-			}
-		}
 
 		orderQueryWrapper.in(CollectionUtil.isNotEmpty(orderIdList), Order::getId, orderIdList)
 			.eq(ObjectUtil.isNotEmpty(order.getCorpId()), Order::getCorpId, order.getCorpId())
 			.eq(ObjectUtil.isNotEmpty(order.getSalesman()), Order::getSalesman, order.getSalesman())
 			.eq(ObjectUtil.isNotEmpty(itemStatus) && itemStatus == 999, Order::getStatus, 0)
+			.like(StringUtil.isNotBlank(order.getOrderNo()), Order::getOrderNo, order.getOrderNo())
 			.like(StringUtil.isNotBlank(order.getBillNo()), Order::getBillNo, order.getBillNo())
 			.like(StringUtil.isNotBlank(order.getBelongCompany()), Order::getBelongCompany, order.getBelongCompany())
 			.like(StringUtil.isNotBlank(order.getStation()), Order::getStation, order.getStation())
 			.like(StringUtil.isNotBlank(order.getFactory()), Order::getFactory, order.getFactory())
 			.like(StringUtil.isNotBlank(order.getAddressDetail()), Order::getAddressDetail, order.getAddressDetail())
+			.between(StringUtil.isNotBlank(order.getBeginArrivalTime()) && StringUtil.isNotBlank(order.getEndArrivalTime()), Order::getArrivalTime, order.getBeginArrivalTime(), order.getEndArrivalTime())
 			.between(StringUtil.isNotBlank(order.getBeginCrateTime()) && StringUtil.isNotBlank(order.getEndCrateTime()), Order::getCreateTime, order.getBeginCrateTime(), order.getEndCrateTime())
 			.eq(Order::getIsDeleted, 0)
 			.eq(Order::getTenantId, AuthUtil.getTenantId());
@@ -336,7 +324,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					if (four > 0) {
 						statusDetail += "工单关闭(" + four + ");";
 					}
-					record.setItemStatusDetail(statusDetail.substring(0, statusDetail.lastIndexOf(";")));
+
+					if (StringUtil.isNotBlank(statusDetail)) {
+						record.setItemStatusDetail(statusDetail.substring(0, statusDetail.lastIndexOf(";")));
+					}
 				}
 			}
 

+ 36 - 40
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/controller/SalesPolicyController.java

@@ -18,41 +18,35 @@ package org.springblade.mocha.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
-import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import lombok.AllArgsConstructor;
-
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.Valid;
-
 import org.springblade.client.entity.CorpsDesc;
 import org.springblade.client.feign.ICorpsDescClient;
+import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.excel.util.ExcelUtil;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
-import org.springblade.core.secure.BladeUser;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
-import org.springblade.mocha.excel.PriceItemExcel;
-import org.springblade.mocha.excel.SalesItemExcel;
-import org.springblade.purchase.sales.entity.Order;
-import org.springframework.web.bind.annotation.*;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.mocha.entity.SalesPolicy;
-import org.springblade.mocha.vo.SalesPolicyVO;
+import org.springblade.mocha.excel.SalesItemExcel;
 import org.springblade.mocha.service.ISalesPolicyService;
-import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.mocha.vo.SalesPolicyVO;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
-import java.util.Map;
 
 /**
  * 销售政策表 控制器
@@ -67,7 +61,10 @@ import java.util.Map;
 public class SalesPolicyController extends BladeController {
 
 	private final ISalesPolicyService salesPolicyService;
-	private final ICorpsDescClient corpsDescClient;//客户信息
+	/**
+	 * 客户信息
+	 */
+	private final ICorpsDescClient corpsDescClient;
 
 	/**
 	 * 详情
@@ -89,29 +86,29 @@ public class SalesPolicyController extends BladeController {
 	public R<IPage<SalesPolicy>> list(SalesPolicyVO salesPolicy, Query query) {
 		QueryWrapper<SalesPolicy> queryWrapper = new QueryWrapper<>();
 		LambdaQueryWrapper<SalesPolicy> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-		lambdaQueryWrapper.eq(SalesPolicy::getIsDeleted,0);
-		lambdaQueryWrapper.eq(SalesPolicy::getTenantId,SecureUtil.getTenantId());
-		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.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());
-		lambdaQueryWrapper.le(Func.isNotEmpty(salesPolicy.getDateValidityEnd()),SalesPolicy::getEndTime,salesPolicy.getDateValidityEnd());
+		lambdaQueryWrapper.eq(SalesPolicy::getIsDeleted, 0);
+		lambdaQueryWrapper.eq(SalesPolicy::getTenantId, SecureUtil.getTenantId());
+		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.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());
+		lambdaQueryWrapper.le(Func.isNotEmpty(salesPolicy.getDateValidityEnd()), SalesPolicy::getEndTime, salesPolicy.getDateValidityEnd());
 		lambdaQueryWrapper.orderByDesc(SalesPolicy::getId);
 		IPage<SalesPolicy> pages = salesPolicyService.page(Condition.getPage(query), lambdaQueryWrapper);
-		if (CollectionUtils.isNotEmpty(pages.getRecords())){
-			pages.getRecords().stream().forEach(item ->{
+		if (CollectionUtils.isNotEmpty(pages.getRecords())) {
+			pages.getRecords().forEach(item -> {
 				//回显代理商中文名
-				if(StringUtils.isNotBlank(item.getCorps())){
+				if (StringUtils.isNotBlank(item.getCorps())) {
 					List<String> list = Arrays.asList(item.getCorps().split(","));
 					StringBuffer stringBuffer = new StringBuffer();
-					if (CollectionUtils.isNotEmpty(list)){
-						list.stream().forEach(items ->{
+					if (CollectionUtils.isNotEmpty(list)) {
+						list.forEach(items -> {
 							R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(Long.valueOf(items));
-							if (corpMessage.isSuccess() && corpMessage.getData() != null){
-								stringBuffer.append(corpMessage.getData().getCname()+",");
+							if (corpMessage.isSuccess() && corpMessage.getData() != null) {
+								stringBuffer.append(corpMessage.getData().getCname()).append(",");
 							}
 						});
 					}
@@ -152,8 +149,8 @@ public class SalesPolicyController extends BladeController {
 	@ApiOperationSupport(order = 5)
 	@ApiOperation(value = "修改", notes = "传入salesPolicy")
 	public R update(@Valid @RequestBody SalesPolicy salesPolicy) {
-		if (salesPolicy.getId() == null){
-			return R.data(500,"请选择要删除的数据","error");
+		if (salesPolicy.getId() == null) {
+			return R.data(500, "请选择要删除的数据", "error");
 		}
 		salesPolicy.setIsDeleted(1);
 		return R.status(salesPolicyService.updateById(salesPolicy));
@@ -179,6 +176,7 @@ public class SalesPolicyController extends BladeController {
 	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
 		return R.status(salesPolicyService.removeByIds(Func.toLongList(ids)));
 	}
+
 	/**
 	 * 懒加载获取政策树形结构
 	 */
@@ -192,18 +190,17 @@ public class SalesPolicyController extends BladeController {
 
 	/**
 	 * 导入销售政策明细
-	 * */
+	 */
 
 	@PostMapping("/import-sales-policy")
 	@ApiOperationSupport(order = 12)
 	@ApiOperation(value = "导入销售政策明细", notes = "传入excel")
 	public R importSalesPolicy(MultipartFile file) {
 		List<SalesItemExcel> excelList = ExcelUtil.read(file, SalesItemExcel.class);
-		if(CollectionUtils.isEmpty(excelList))
-		{
+		if (CollectionUtils.isEmpty(excelList)) {
 			throw new SecurityException("数据不能为空");
 		}
-		return salesPolicyService.importSalesPolicy(excelList,false);
+		return salesPolicyService.importSalesPolicy(excelList, false);
 	}
 
 
@@ -215,9 +212,8 @@ public class SalesPolicyController extends BladeController {
 	@ApiOperation(value = "导出模板")
 	public void exportPrice(HttpServletResponse response) {
 		List<SalesItemExcel> list = new ArrayList<>();
-		ExcelUtil.export(response, "导模板-销售政策明细", "导入数据表", list, SalesItemExcel.class);
+		ExcelUtil.export(response, "导模板-销售政策明细", "导入数据表", list, SalesItemExcel.class);
 	}
 
 
-
 }

+ 39 - 42
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/feign/OrderDescClient.java

@@ -1,8 +1,7 @@
 package org.springblade.purchase.sales.feign;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-
-
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.trade.purchase.order.enums.OrderTypeEnum;
@@ -13,16 +12,12 @@ import org.springblade.core.tenant.annotation.NonDS;
 import org.springblade.core.tool.api.R;
 import org.springblade.purchase.sales.entity.Order;
 import org.springblade.purchase.sales.service.IOrderService;
-import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 import springfox.documentation.annotations.ApiIgnore;
 
 import java.math.BigDecimal;
-import java.text.SimpleDateFormat;
-import java.time.LocalDate;
 import java.util.Calendar;
 import java.util.Collections;
 import java.util.Date;
@@ -38,24 +33,34 @@ public class OrderDescClient implements IOrderDescClient {
 
 	@Override
 	@PostMapping(UPDATE_ORDER)
-	public R updateOrder(Order order)
-	{
-		if(order.getId()==null)
-		{
+	public R updateOrder(Order order) {
+		if (order.getId() == null) {
 			throw new SecurityException("修改状态失败");
 		}
 		iOrderService.updateById(order);
+
+		if (order.getDeliverQuantity().compareTo(BigDecimal.ZERO) == 0) {
+			iOrderService.update(null, new LambdaUpdateWrapper<Order>()
+				.set(Order::getDeliverTime, null)
+				.eq(Order::getId, order.getId())
+			);
+		}
+		if (order.getReceiveQuantity().compareTo(BigDecimal.ZERO) == 0) {
+			iOrderService.update(null, new LambdaUpdateWrapper<Order>()
+				.set(Order::getReceiveTime, null)
+				.eq(Order::getId, order.getId())
+			);
+		}
 		return R.success("操作成功");
 	}
 
 	@Override
 	@PostMapping(GET_BY_ORDER_NO)
-	public Order getByOrder(Order order)
-	{
-		LambdaQueryWrapper<Order> orderLambdaQueryWrapper=new LambdaQueryWrapper<>();
+	public Order getByOrder(Order order) {
+		LambdaQueryWrapper<Order> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
 		orderLambdaQueryWrapper.eq(Order::getTenantId, AuthUtil.getTenantId());
 		orderLambdaQueryWrapper.eq(Order::getIsDeleted, 0);
-		orderLambdaQueryWrapper.eq(Order::getOrderNo,order.getOrderNo());
+		orderLambdaQueryWrapper.eq(Order::getOrderNo, order.getOrderNo());
 		return iOrderService.getOne(orderLambdaQueryWrapper, false);
 	}
 
@@ -68,21 +73,17 @@ public class OrderDescClient implements IOrderDescClient {
 	//销售专用查询
 	@Override
 	@PostMapping(GET_BY_CONDITIONS)
-	public R<List<Order>> getByConditions(Order order)
-	{
-		LambdaQueryWrapper<Order> orderLambdaQueryWrapper=new LambdaQueryWrapper<>();
+	public R<List<Order>> getByConditions(Order order) {
+		LambdaQueryWrapper<Order> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
 		orderLambdaQueryWrapper.eq(Order::getTenantId, AuthUtil.getTenantId());
 		orderLambdaQueryWrapper.eq(Order::getIsDeleted, 0);
-		orderLambdaQueryWrapper.eq(Order::getOrderNo,order.getOrderNo());
-		orderLambdaQueryWrapper.eq(Order::getBillType,"XS");
-		orderLambdaQueryWrapper.eq(Order::getTradeType,order.getTradeType());
+		orderLambdaQueryWrapper.eq(Order::getOrderNo, order.getOrderNo());
+		orderLambdaQueryWrapper.eq(Order::getBillType, "XS");
+		orderLambdaQueryWrapper.eq(Order::getTradeType, order.getTradeType());
 		List<Order> list = iOrderService.list(orderLambdaQueryWrapper);
-		if(CollectionUtils.isNotEmpty(list))
-		{
+		if (CollectionUtils.isNotEmpty(list)) {
 			return R.data(list);
-		}
-		else
-		{
+		} else {
 			return R.data(Collections.EMPTY_LIST);
 		}
 
@@ -90,21 +91,17 @@ public class OrderDescClient implements IOrderDescClient {
 
 	@Override
 	@PostMapping(GET_BY_CG_LIST)
-	public R<List<Order>> getByCgList(Order order)
-	{
+	public R<List<Order>> getByCgList(Order order) {
 		//不要修改此方法,可以复制重新写一个
-		LambdaQueryWrapper<Order> orderLambdaQueryWrapper=new LambdaQueryWrapper<>();
+		LambdaQueryWrapper<Order> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
 		orderLambdaQueryWrapper.eq(Order::getTenantId, AuthUtil.getTenantId());
 		orderLambdaQueryWrapper.eq(Order::getIsDeleted, 0);
-		orderLambdaQueryWrapper.eq(StringUtils.isNotBlank(order.getBillType()),Order::getBillType, order.getBillType());
-		orderLambdaQueryWrapper.eq(StringUtils.isNotBlank(order.getOrgOrderNo()),Order::getOrgOrderNo, order.getOrgOrderNo());
+		orderLambdaQueryWrapper.eq(StringUtils.isNotBlank(order.getBillType()), Order::getBillType, order.getBillType());
+		orderLambdaQueryWrapper.eq(StringUtils.isNotBlank(order.getOrgOrderNo()), Order::getOrgOrderNo, order.getOrgOrderNo());
 		List<Order> list = iOrderService.list(orderLambdaQueryWrapper);
-		if(CollectionUtils.isNotEmpty(list))
-		{
+		if (CollectionUtils.isNotEmpty(list)) {
 			return R.data(list);
-		}
-		else
-		{
+		} else {
 			return R.data(Collections.EMPTY_LIST);
 		}
 	}
@@ -112,22 +109,22 @@ public class OrderDescClient implements IOrderDescClient {
 	@Override
 	public R releaseStock(Order order) {
 		LambdaQueryWrapper<Order> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-		lambdaQueryWrapper.eq(Order::getIsDeleted,0);
-		lambdaQueryWrapper.ne(Order::getStatus,0);
-		lambdaQueryWrapper.eq(Order::getTenantId,681169);
-		lambdaQueryWrapper.eq(Order::getTradeType,OrderTypeEnum.DOMESTIC.getType());
+		lambdaQueryWrapper.eq(Order::getIsDeleted, 0);
+		lambdaQueryWrapper.ne(Order::getStatus, 0);
+		lambdaQueryWrapper.eq(Order::getTenantId, 681169);
+		lambdaQueryWrapper.eq(Order::getTradeType, OrderTypeEnum.DOMESTIC.getType());
 		lambdaQueryWrapper.eq(Order::getBillType, OrderTypeEnum.SALES.getType());
 		lambdaQueryWrapper.isNotNull(Order::getCheckDate);
 		lambdaQueryWrapper.eq(Order::getSettlmentAmount, BigDecimal.ZERO);
 		List<Order> list = iOrderService.list(lambdaQueryWrapper);
-		if (CollectionUtils.isNotEmpty(list)){
+		if (CollectionUtils.isNotEmpty(list)) {
 			for (Order orderMessage : list) {
-				Date newDate = DateUtils.addHours(orderMessage.getCheckDate(),48);
+				Date newDate = DateUtils.addHours(orderMessage.getCheckDate(), 48);
 				Calendar start = Calendar.getInstance();
 				start.setTime(newDate);
 				Calendar end = Calendar.getInstance();
 				end.setTime(new Date());
-				if (start.before(end)){
+				if (start.before(end)) {
 					orderMessage.setCheckFlag(2);
 					orderMessage.setCheckType("xsqh");
 					orderMessage.setPageLabel("销售订单(N)");

+ 2 - 6
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -361,12 +361,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		//获取订单费用明细数据
 		List<OrderFees> orderFeesList = orderFeesService.getOrderFees(order);
 		orderMessage.setOrderFeesList(orderFeesList);
-
-		Order temp = new Order();
-		temp.setId(order.getId());
-		temp.setCreateReceiving(1);
-		temp.setCreateReceivingTime(new Date());
-		baseMapper.updateById(temp);
 		return orderMessage;
 	}
 
@@ -500,7 +494,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		Order temp = new Order();
 		temp.setId(order.getId());
 		temp.setCreatePurchase(1);
+		temp.setCreatePurchaseUser(AuthUtil.getUserName());
 		temp.setCreatePurchaseTime(new Date());
+		temp.setOrderStatus("待采购");
 		baseMapper.updateById(temp);
 		return R.data(order);
 	}