Browse Source

贸易修改

lazhaoqian 4 years ago
parent
commit
18b2481c0c
13 changed files with 268 additions and 34 deletions
  1. 14 0
      blade-service-api/blade-mocha-item-api/src/main/java/org/springblade/mocha/entity/SalesPolicy.java
  2. 10 0
      blade-service-api/blade-mocha-item-api/src/main/java/org/springblade/mocha/entity/SalesPolicyItem.java
  3. 18 0
      blade-service-api/blade-mocha-item-api/src/main/java/org/springblade/mocha/feign/IPriceItemClient.java
  4. 22 0
      blade-service-api/blade-mocha-item-api/src/main/java/org/springblade/mocha/vo/SalesPolicyVO.java
  5. 33 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/OrderEnum.java
  6. 3 0
      blade-service/blade-client/src/main/java/org/springblade/client/serial/service/impl/TableMessageServiceImpl.java
  7. 46 6
      blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/controller/SalesPolicyController.java
  8. 47 0
      blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/feign/PriceItemClient.java
  9. 2 2
      blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/mapper/SalesPolicyMapper.java
  10. 8 2
      blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/mapper/SalesPolicyMapper.xml
  11. 2 2
      blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/service/ISalesPolicyService.java
  12. 24 6
      blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/service/impl/SalesPolicyServiceImpl.java
  13. 39 16
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

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

@@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import java.io.Serializable;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -154,6 +155,19 @@ public class SalesPolicy implements Serializable {
 		@ApiModelProperty(value = "买赠政策明细信息")
 		@TableField(exist = false)
 		private List<SalesPolicyItem> presentItemList;
+	/**
+	 * 代理商回显
+	 */
+		@ApiModelProperty(value = "代理商回显")
+		@TableField(exist = false)
+		private List<Map<String,Object>> corpNameList;
+	/**
+	 * 当前时间
+	 */
+		@ApiModelProperty(value = "当前时间")
+		@TableField(exist = false)
+		private String newTime;
+
 
 
 }

+ 10 - 0
blade-service-api/blade-mocha-item-api/src/main/java/org/springblade/mocha/entity/SalesPolicyItem.java

@@ -163,6 +163,16 @@ public class SalesPolicyItem implements Serializable {
 	 */
 	@ApiModelProperty(value = "销售政策类别 1特价促销 2买赠促销")
 	private String salesType;
+	/**
+	 * 货物id
+	 */
+	@ApiModelProperty(value = "货物id")
+	private Long itemId;
+	/**
+	 * 花纹
+	 */
+	@ApiModelProperty(value = "花纹")
+	private String brandItem;
 
 
 }

+ 18 - 0
blade-service-api/blade-mocha-item-api/src/main/java/org/springblade/mocha/feign/IPriceItemClient.java

@@ -2,6 +2,7 @@ package org.springblade.mocha.feign;
 
 import org.springblade.common.constant.LauncherConstant;
 import org.springblade.core.tool.api.R;
+import org.springblade.mocha.entity.PriceItem;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -17,6 +18,8 @@ import java.math.BigDecimal;
 public interface IPriceItemClient {
 	String API_PREFIX = "/client";
 	String UPDATE_PRICE_ITEM = API_PREFIX + "/updatePriceItem";
+	String GET_MARKET_PRICE = API_PREFIX + "/getMarketPrice";
+	String GET_PURCHASE_PRICE = API_PREFIX + "/getPURCHAEPrice";
 
 	/**
 	 * 修改价格管理的销售价格
@@ -29,4 +32,19 @@ public interface IPriceItemClient {
 	R updatePriceItem(@RequestParam("code") String code,
 							   @RequestParam("price")BigDecimal price,
 							   @RequestParam("tenantId") String tenantId);
+
+	/**
+	 * 获取商品销售价格
+	 * @param priceItem
+	 * @return
+	 */
+	@GetMapping(GET_MARKET_PRICE)
+	R getMarketPrice(PriceItem priceItem);
+	/**
+	 * 获取商品采购价格
+	 * @param priceItem
+	 * @return
+	 */
+	@GetMapping(GET_PURCHASE_PRICE)
+	R getPURCHAEPrice(PriceItem priceItem);
 }

+ 22 - 0
blade-service-api/blade-mocha-item-api/src/main/java/org/springblade/mocha/vo/SalesPolicyVO.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.mocha.vo;
 
+import io.swagger.annotations.ApiModelProperty;
 import org.springblade.mocha.entity.SalesPolicy;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -33,4 +34,25 @@ import io.swagger.annotations.ApiModel;
 public class SalesPolicyVO extends SalesPolicy {
 	private static final long serialVersionUID = 1L;
 
+	/**
+	 * 制单日期日期开始
+	 */
+	@ApiModelProperty(value = "制单日期日期开始")
+	private String createTimeStart;
+	/**
+	 * 制单日期日期结束
+	 */
+	@ApiModelProperty(value = "制单日期日期结束")
+	private String createTimeEnd;
+	/**
+	 * 有效开始日期开始
+	 */
+	@ApiModelProperty(value = "有效日期开始")
+	private String dateValidityStart;
+	/**
+	 * 有效开始日期结束
+	 */
+	@ApiModelProperty(value = "有效日期结束")
+	private String dateValidityEnd;
+
 }

+ 33 - 0
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/OrderEnum.java

@@ -0,0 +1,33 @@
+package org.springblade.purchase.sales.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+import java.util.Objects;
+@Getter
+@AllArgsConstructor
+public enum  OrderEnum {
+	/**
+	 * 暂停
+	 */
+	PAUSE("录入"),
+
+	/**
+	 * 提交
+	 */
+	SUBMIT("已提交"),
+
+	;
+
+
+	private final String status;
+
+	public static OrderEnum fromType(String orderStatus) {
+		for (OrderEnum type : OrderEnum.values()) {
+			if (Objects.equals(type.getStatus(), orderStatus)) {
+				return type;
+			}
+		}
+		throw new IllegalArgumentException("order status not exist");
+	}
+}

+ 3 - 0
blade-service/blade-client/src/main/java/org/springblade/client/serial/service/impl/TableMessageServiceImpl.java

@@ -75,6 +75,9 @@ public class TableMessageServiceImpl extends ServiceImpl<TableMessageMapper, Tab
 				String fileName = tableMessage.getFileName() +".json";
 				BladeFile bladeFile = minioTemplate.putFile(bucketName, fileName, multipartFile.getInputStream());
 				if (StringUtils.isNotBlank(bladeFile.getLink())) {
+					String link = bladeFile.getLink();
+					String replace = link.replace("http://121.37.83.47:9000/", "https://trade.tubaosoft.com/file/");
+					bladeFile.setLink(replace);
 					tableMessage.setFileUrl(bladeFile.getLink());
 				} else {
 					return R.data(500, "上传json文件失败");

+ 46 - 6
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/controller/SalesPolicyController.java

@@ -16,6 +16,10 @@
  */
 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.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -23,12 +27,15 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import lombok.AllArgsConstructor;
 import javax.validation.Valid;
 
+import org.springblade.client.entity.CorpsDesc;
+import org.springblade.client.feign.ICorpsDescClient;
 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.purchase.sales.entity.Order;
 import org.springframework.web.bind.annotation.*;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.mocha.entity.SalesPolicy;
@@ -36,7 +43,10 @@ import org.springblade.mocha.vo.SalesPolicyVO;
 import org.springblade.mocha.service.ISalesPolicyService;
 import org.springblade.core.boot.ctrl.BladeController;
 
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 销售政策表 控制器
@@ -51,6 +61,7 @@ import java.util.List;
 public class SalesPolicyController extends BladeController {
 
 	private final ISalesPolicyService salesPolicyService;
+	private final ICorpsDescClient corpsDescClient;//客户信息
 
 	/**
 	 * 详情
@@ -69,10 +80,39 @@ public class SalesPolicyController extends BladeController {
 	@GetMapping("/list")
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页", notes = "传入salesPolicy")
-	public R<IPage<SalesPolicy>> list(SalesPolicy salesPolicy, Query query) {
-		salesPolicy.setTenantId(SecureUtil.getTenantId());
-		salesPolicy.setIsDeleted(0);
-		IPage<SalesPolicy> pages = salesPolicyService.page(Condition.getPage(query), Condition.getQueryWrapper(salesPolicy));
+	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());
+		IPage<SalesPolicy> pages = salesPolicyService.page(Condition.getPage(query), lambdaQueryWrapper);
+		if (CollectionUtils.isNotEmpty(pages.getRecords())){
+			pages.getRecords().stream().forEach(item ->{
+				//回显代理商中文名
+				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 ->{
+							R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(Long.valueOf(items));
+							if (corpMessage.isSuccess() && corpMessage.getData() != null){
+								stringBuffer.append(corpMessage.getData().getCname()+",");
+							}
+						});
+						stringBuffer.deleteCharAt(stringBuffer.length()-1);
+					}
+					item.setCorps(stringBuffer.toString());
+				}
+			});
+		}
 		return R.data(pages);
 	}
 
@@ -139,8 +179,8 @@ public class SalesPolicyController extends BladeController {
 	@GetMapping("/lazy-tree")
 	@ApiOperationSupport(order = 9)
 	@ApiOperation(value = "懒加载树形结构", notes = "树形结构")
-	public R<List<SalesPolicyVO>> lazyTree(String tenantId, BladeUser bladeUser) {
-		List<SalesPolicyVO> tree = salesPolicyService.lazyTree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()));
+	public R<List<SalesPolicyVO>> lazyTree(SalesPolicy salesPolicy) {
+		List<SalesPolicyVO> tree = salesPolicyService.lazyTree(salesPolicy);
 		return R.data(tree);
 	}
 

+ 47 - 0
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/feign/PriceItemClient.java

@@ -1,8 +1,12 @@
 package org.springblade.mocha.feign;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import lombok.AllArgsConstructor;
+import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tenant.annotation.NonDS;
 import org.springblade.core.tool.api.R;
+import org.springblade.mocha.entity.PriceItem;
 import org.springblade.mocha.service.IPriceItemService;
 import org.springblade.mocha.service.IPriceService;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -10,6 +14,11 @@ import org.springframework.web.bind.annotation.RestController;
 import springfox.documentation.annotations.ApiIgnore;
 
 import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
 @NonDS
 @ApiIgnore()
 @RestController
@@ -34,4 +43,42 @@ public class PriceItemClient implements IPriceItemClient{
 	public R updatePriceItem(String code, BigDecimal price, String tenantId) {
 		return priceItemService.updatePriceItem(code,price,tenantId);
 	}
+
+	/**
+	 * 根据商品编码获取销售价格信息
+	 * @param priceItem
+	 * @return
+	 */
+	@Override
+	@GetMapping(GET_MARKET_PRICE)
+	public R getMarketPrice(PriceItem priceItem) {
+		List<BigDecimal> bigDecimalList = new ArrayList<>();
+		List<PriceItem> list = priceItemService.list(new QueryWrapper<PriceItem>().eq("code", priceItem.getCode()).eq("tenant_id", SecureUtil.getTenantId())
+			.eq("is_deleted", 0));
+		if (CollectionUtils.isNotEmpty(list)){
+			bigDecimalList = list.stream().map(PriceItem::getSalesPrice).collect(Collectors.toList());
+		}else {
+			bigDecimalList.add(new BigDecimal(BigInteger.ZERO));
+		}
+		return R.data(bigDecimalList);
+	}
+
+	/**
+	 * 获取商品采购价格
+	 * @param priceItem
+	 * @return
+	 */
+	@Override
+	@GetMapping(GET_PURCHASE_PRICE)
+	public R getPURCHAEPrice(PriceItem priceItem) {
+		List<BigDecimal> bigDecimalList = new ArrayList<>();
+		List<PriceItem> list = priceItemService.list(new QueryWrapper<PriceItem>().eq("code", priceItem.getCode()).eq("tenant_id", SecureUtil.getTenantId())
+			.eq("is_deleted", 0));
+		if (CollectionUtils.isNotEmpty(list)){
+			bigDecimalList = list.stream().map(PriceItem::getPurchasePrice).collect(Collectors.toList());
+		}else {
+			bigDecimalList.add(new BigDecimal(BigInteger.ZERO));
+		}
+		return R.data(bigDecimalList);
+	}
 }

+ 2 - 2
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/mapper/SalesPolicyMapper.java

@@ -41,10 +41,10 @@ public interface SalesPolicyMapper extends BaseMapper<SalesPolicy> {
 	List<SalesPolicy> selectSalesPolicyPage(IPage page, @Param("SalesPolicy") SalesPolicy salesPolicy);
 	/**
 	 * 懒加载
-	 * @param tenantId
+	 * @param salesPolicy
 	 * @return
 	 */
-	List<SalesPolicyVO> lazyTree(String tenantId);
+	List<SalesPolicyVO> lazyTree(@Param("salesPolicy") SalesPolicy salesPolicy);
 
 
 }

+ 8 - 2
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/mapper/SalesPolicyMapper.xml

@@ -80,8 +80,14 @@
         WHERE
         dept.is_deleted = 0
         and dept.status = 0
-        <if test="param1!=null and param1!=''">
-            and dept.tenant_id = #{param1}
+        <if test="salesPolicy.tenantId!=null and salesPolicy.tenantId!=''">
+            and dept.tenant_id = #{salesPolicy.tenantId}
+        </if>
+        <if test="salesPolicy.newTime!=null and salesPolicy.newTime!=''">
+            and dept.start_time &lt;= #{salesPolicy.newTime}
+        </if>
+        <if test="salesPolicy.newTime!=null and salesPolicy.newTime!=''">
+            and dept.end_time &gt;= #{salesPolicy.newTime}
         </if>
     </select>
 

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

@@ -57,9 +57,9 @@ public interface ISalesPolicyService extends IService<SalesPolicy> {
 	/**
 	 * 懒加载树形结构
 	 *
-	 * @param tenantId
+	 * @param salesPolicy
 	 * @return
 	 */
-	List<SalesPolicyVO> lazyTree(String tenantId);
+	List<SalesPolicyVO> lazyTree(SalesPolicy salesPolicy);
 
 }

+ 24 - 6
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/service/impl/SalesPolicyServiceImpl.java

@@ -16,10 +16,14 @@
  */
 package org.springblade.mocha.service.impl;
 
+import com.alibaba.druid.sql.ast.expr.SQLCaseExpr;
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import lombok.AllArgsConstructor;
+import org.springblade.client.feign.ICorpsDescClient;
+import org.springblade.client.feign.IGoodsDescClient;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.mocha.entity.SalesPolicy;
@@ -34,8 +38,7 @@ import org.springblade.system.user.feign.IUserClient;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 /**
  * 销售政策表 服务实现类
@@ -48,6 +51,7 @@ import java.util.List;
 public class SalesPolicyServiceImpl extends ServiceImpl<SalesPolicyMapper, SalesPolicy> implements ISalesPolicyService {
 	private SalesPolicyItemMapper salesPolicyItemMapper;//销售政策明细表
 	private final IUserClient userClient;//用户
+	private final ICorpsDescClient corpsDescClient;//客户信息
 	@Override
 	public IPage<SalesPolicy> selectSalesPolicyPage(IPage<SalesPolicy> page, SalesPolicy salesPolicy) {
 		return page.setRecords(baseMapper.selectSalesPolicyPage(page, salesPolicy));
@@ -114,6 +118,20 @@ public class SalesPolicyServiceImpl extends ServiceImpl<SalesPolicyMapper, Sales
 		if (StringUtils.isNotBlank(updateUserName)){
 			policy.setUpdateUserName(updateUserName);
 		}
+		//回显代理商中文名
+		if(StringUtils.isNotBlank(policy.getCorps())){
+			List<String> list = Arrays.asList(policy.getCorps().split(","));
+			List<Map<String,Object>> corpList = new ArrayList<>();
+			if (CollectionUtils.isNotEmpty(list)){
+				list.stream().forEach(item ->{
+					R<List<Map<String, Object>>> corpsMessage = corpsDescClient.getCorpsMessage(item);
+					if (corpsMessage.isSuccess() && corpsMessage.getData() != null){
+						corpList.addAll(corpsMessage.getData());
+					}
+				});
+			}
+			policy.setCorpNameList(corpList);
+		}
 		List<SalesPolicyItem> specialItemList = salesPolicyItemMapper.selectList(new QueryWrapper<SalesPolicyItem>().eq("pid", salesPolicy.getId())
 			.eq("tenant_id", SecureUtil.getTenantId()).eq("is_deleted", 0).eq("sales_type",1));
 		if (CollectionUtils.isNotEmpty(specialItemList)){
@@ -148,11 +166,11 @@ public class SalesPolicyServiceImpl extends ServiceImpl<SalesPolicyMapper, Sales
 	}
 
 	@Override
-	public List<SalesPolicyVO> lazyTree(String tenantId) {
-		if (StringUtils.isBlank(tenantId)){
-			tenantId = SecureUtil.getTenantId();
+	public List<SalesPolicyVO> lazyTree(SalesPolicy salesPolicy) {
+		if (StringUtils.isBlank(salesPolicy.getTenantId())){
+			salesPolicy.setTenantId(SecureUtil.getTenantId());
 		}
-		return baseMapper.lazyTree(tenantId);
+		return baseMapper.lazyTree(salesPolicy);
 	}
 	private String getUserName(Long user){
 		String userName = null;

+ 39 - 16
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -18,7 +18,9 @@ package org.springblade.purchase.sales.service.impl;
 
 import com.alibaba.druid.sql.ast.expr.SQLCaseExpr;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.OrderItem;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.google.protobuf.ServiceException;
 import com.trade.purchase.order.enums.OrderTypeEnum;
 import com.trade.purchase.order.vo.OrderDTO;
@@ -46,6 +48,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
+import java.math.BigDecimal;
+import java.math.BigInteger;
 import java.rmi.ServerException;
 import java.util.Date;
 import java.util.List;
@@ -148,8 +152,28 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			List<OrderModify> orderModifyList = orderModifyService.saveOrderModifyMessage(order.getOrderModifyList(), date, order.getId());
 			order.setOrderModifyList(orderModifyList);
 		}
-		//保存发货信息待定
-		//修改库存信息待定
+		if (!order.getTradeType().equals(OrderTypeEnum.IMPORT.getType())){
+			//生成毛利润 毛利额
+			List<OrderItems> list = orderItemsService.list(new QueryWrapper<OrderItems>().eq("pid", order.getId()).eq("is_deleted", 0));
+			Order orderMessage = new Order();
+			orderMessage.setId(order.getId());
+			if (CollectionUtils.isNotEmpty(list)){
+				BigDecimal reduce = list.stream().reduce(BigDecimal.ZERO,(x,y) ->{
+					return x.add(y.getPurchaseAmount().multiply(y.getOrderQuantity()));
+				},BigDecimal::add);//采购金额求和
+				BigDecimal amount = list.stream().map(OrderItems::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);//金额求和
+				BigDecimal grossProfit = amount.subtract(reduce);//毛利润
+				BigDecimal grossProfitRate = (grossProfit.divide(amount,2)).multiply(new BigDecimal(100));
+				orderMessage.setGrossProfit(grossProfit);//毛利额
+				orderMessage.setGrossProfitRate(grossProfitRate);//毛利率
+			}else {
+				orderMessage.setGrossProfit(new BigDecimal(BigInteger.ZERO));//毛利额
+				orderMessage.setGrossProfitRate(new BigDecimal(BigInteger.ZERO));//毛利率
+			}
+			baseMapper.updateById(orderMessage);
+			order.setGrossProfit(orderMessage.getGrossProfit());
+			order.setGrossProfitRate(orderMessage.getGrossProfitRate());
+		}
 		return R.data(order);
 	}
 
@@ -254,9 +278,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			}
 			baseMapper.insert(order);
 		}else {
+			Order selectById = baseMapper.selectById(order.getId());
+			if (StringUtils.isNotBlank(selectById.getOrderStatus()) && selectById.getOrderStatus().equals(OrderEnum.SUBMIT.getStatus())){
+				return R.fail(500,"报价单已确认,请勿重复确认");
+			}
 			order.setTenantId(SecureUtil.getTenantId());
 			order.setUpdateTime(date);
 			order.setUpdateUser(SecureUtil.getUserId());
+			order.setOrderStatus(OrderEnum.SUBMIT.getStatus());
 			baseMapper.updateById(order);
 		}
 		//保存订单费用明细
@@ -269,18 +298,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			List<OrderItems> orderItemsList = orderItemsService.saveOrderItemsMessage(order.getOrderItemsList(), date, order.getId());
 			order.setOrderItemsList(orderItemsList);
 		}
-		//保存订单文件信息
-		if (CollectionUtils.isNotEmpty(order.getOrderFilesList())){
-			List<OrderFiles> orderFilesList = orderFilesService.saveOrderFileMessage(order.getOrderFilesList(), date, order.getId());
-			order.setOrderFilesList(orderFilesList);
-		}
-		//保存订单修改日志
-		if (CollectionUtils.isNotEmpty(order.getOrderModifyList())){
-			List<OrderModify> orderModifyList = orderModifyService.saveOrderModifyMessage(order.getOrderModifyList(), date, order.getId());
-			order.setOrderModifyList(orderModifyList);
-		}
-		//保存发货信息待定
-		//修改库存信息待定
+		//修改价格管理中的价格
 		return R.data(order);
 	}
 	@Override
@@ -324,7 +342,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				selectById.setCreateUser(SecureUtil.getUserId());
 				selectById.setUpdateUser(null);
 				selectById.setUpdateTime(null);
-				selectById.setOrderStatus("录入");
+				selectById.setOrderStatus(OrderEnum.PAUSE.getStatus());
 				selectById.setIfEnquiry(null);
 				selectById.setIfShipping(null);
 				selectById.setIfInvoice("否");
@@ -385,7 +403,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		selectById.setCreateUser(SecureUtil.getUserId());
 		selectById.setUpdateUser(null);
 		selectById.setUpdateTime(null);
-		selectById.setOrderStatus("录入");
+		selectById.setOrderStatus(OrderEnum.PAUSE.getStatus());
 		selectById.setIfEnquiry(null);
 		selectById.setIfShipping(null);
 		selectById.setIfInvoice("否");
@@ -436,6 +454,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				orderFilesService.save(file);
 			});
 		}
+		//修改报价单状态
+		Order orderMessage = new Order();
+		orderMessage.setId(order.getId());
+		orderMessage.setOrderStatus(OrderEnum.SUBMIT.getStatus());
+		baseMapper.updateById(orderMessage);
 		return R.data(order);
 	}