Преглед изворни кода

Merge branch 'dev' of http://git.echepei.com/lazhaoqian/bladex into dev

1021934019@qq.com пре 4 година
родитељ
комит
04df77c0c6
23 измењених фајлова са 441 додато и 36 уклоњено
  1. 18 0
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/feign/IGoodsDescClient.java
  2. 14 0
      blade-service-api/blade-mocha-item-api/src/main/java/org/springblade/mocha/entity/SalesPolicy.java
  3. 10 0
      blade-service-api/blade-mocha-item-api/src/main/java/org/springblade/mocha/entity/SalesPolicyItem.java
  4. 18 0
      blade-service-api/blade-mocha-item-api/src/main/java/org/springblade/mocha/feign/IPriceItemClient.java
  5. 22 0
      blade-service-api/blade-mocha-item-api/src/main/java/org/springblade/mocha/vo/SalesPolicyVO.java
  6. 33 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/OrderEnum.java
  7. 10 0
      blade-service-api/blade-stock-api/src/main/java/org/springblade/stock/vo/StockGoodsVO.java
  8. 5 0
      blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/OrderFreight.java
  9. 23 0
      blade-service/blade-client/src/main/java/org/springblade/client/goods/feign/GoodsDescClient.java
  10. 3 0
      blade-service/blade-client/src/main/java/org/springblade/client/serial/service/impl/TableMessageServiceImpl.java
  11. 46 6
      blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/controller/SalesPolicyController.java
  12. 31 0
      blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/feign/PriceItemClient.java
  13. 19 0
      blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/mapper/PriceItemMapper.java
  14. 16 0
      blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/mapper/PriceItemMapper.xml
  15. 2 2
      blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/mapper/SalesPolicyMapper.java
  16. 8 2
      blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/mapper/SalesPolicyMapper.xml
  17. 15 0
      blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/service/IPriceItemService.java
  18. 2 2
      blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/service/ISalesPolicyService.java
  19. 11 0
      blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/service/impl/PriceItemServiceImpl.java
  20. 24 6
      blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/service/impl/SalesPolicyServiceImpl.java
  21. 39 16
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java
  22. 71 2
      blade-service/blade-stock/src/main/java/org/springblade/stock/controller/StockGoodsController.java
  23. 1 0
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/mapper/OrderFreightMapper.xml

+ 18 - 0
blade-service-api/blade-client-api/src/main/java/org/springblade/client/feign/IGoodsDescClient.java

@@ -22,6 +22,7 @@ public interface IGoodsDescClient {
 	String GOODSD_ESCMESSAGE = API_PREFIX + "/goodsDescMessage";
 	String GOODS_BY_CODE = API_PREFIX + "goods_by_code";
 	String GET_SPECIFICATION = API_PREFIX + "/get_Specification" ;
+	String GET_GOOD_ID = API_PREFIX +"/getGoodId";
 
 	/**
 	 * 获取商品信息
@@ -56,5 +57,22 @@ public interface IGoodsDescClient {
 	@GetMapping(GET_SPECIFICATION)
 	R<List<String>> getSpecification(@RequestParam("goodId") Long goodId);
 
+	/**
+	 * 获取商品id
+	 * @param code
+	 * @param cname
+	 * @param brand
+	 * @param brandItem
+	 * @param placeProduction
+	 * @param specsOne
+	 * @param specsTwo
+	 * @return
+	 */
+	@GetMapping(GET_GOOD_ID)
+	List<Long> getGoodId(@RequestParam(value = "code",required = false)String code,@RequestParam(value = "cname",required = false)String cname,
+						 @RequestParam(value = "brand",required = false)String brand,@RequestParam(value = "brandItem",required = false)String brandItem,
+						 @RequestParam(value = "placeProduction",required = false)String placeProduction,
+						 @RequestParam(value = "specsOne",required = false)String specsOne,@RequestParam(value = "specsTwo",required = false)String specsTwo);
+
 
 }

+ 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 + "/getPurchasePrice";
 
 	/**
 	 * 修改价格管理的销售价格
@@ -29,4 +32,19 @@ public interface IPriceItemClient {
 	R updatePriceItem(@RequestParam("code") String code,
 							   @RequestParam("price")BigDecimal price,
 							   @RequestParam("tenantId") String tenantId);
+
+	/**
+	 * 获取商品销售价格
+	 * @param code
+	 * @return
+	 */
+	@GetMapping(GET_MARKET_PRICE)
+	R getMarketPrice(@RequestParam("code") String code);
+	/**
+	 * 获取商品采购价格
+	 * @param code
+	 * @return
+	 */
+	@GetMapping(GET_PURCHASE_PRICE)
+	R getPurchasePrice(@RequestParam("code") String code);
 }

+ 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");
+	}
+}

+ 10 - 0
blade-service-api/blade-stock-api/src/main/java/org/springblade/stock/vo/StockGoodsVO.java

@@ -16,6 +16,8 @@
  */
 package org.springblade.stock.vo;
 
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModelProperty;
 import org.springblade.stock.entity.StockGoods;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -33,4 +35,12 @@ import io.swagger.annotations.ApiModel;
 public class StockGoodsVO extends StockGoods {
 	private static final long serialVersionUID = 1L;
 
+
+	@ApiModelProperty(value = "制单日期开始")
+	private String createStartTime;
+
+
+	@ApiModelProperty(value = "制单日期结束")
+	private String createEndTime;
+
 }

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

@@ -53,6 +53,11 @@ public class OrderFreight implements Serializable {
 		@ApiModelProperty(value = "主表id")
 		private Long pid;
 	/**
+	 * 箱型
+	 */
+		@ApiModelProperty(value = "箱型")
+		private String boxPile;
+	/**
 	* 船公司
 	*/
 		@ApiModelProperty(value = "船公司")

+ 23 - 0
blade-service/blade-client/src/main/java/org/springblade/client/goods/feign/GoodsDescClient.java

@@ -1,6 +1,8 @@
 package org.springblade.client.goods.feign;
 
+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.Wrappers;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -14,10 +16,12 @@ import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tenant.annotation.NonDS;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.Func;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RestController;
 import springfox.documentation.annotations.ApiIgnore;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -75,4 +79,23 @@ public class GoodsDescClient implements IGoodsDescClient {
 	public R<List<String>> getSpecification(Long goodId) {
 		return R.data(goodsSpecificationService.getSpecification(goodId));
 	}
+	@GetMapping(GET_GOOD_ID)
+	@Override
+	public List<Long> getGoodId(String code,String cname,String brand,String brandItem,String placeProduction,
+								String specsOne,String specsTwo) {
+		List<Long> list = new ArrayList<>();
+		LambdaQueryWrapper<GoodsDesc> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.like(Func.isNotEmpty(code),GoodsDesc::getCode,code);
+		lambdaQueryWrapper.like(Func.isNotEmpty(cname),GoodsDesc::getCname,cname);
+		lambdaQueryWrapper.like(Func.isNotEmpty(brand),GoodsDesc::getBrand,brand);
+		lambdaQueryWrapper.like(Func.isNotEmpty(brandItem),GoodsDesc::getBrandItem,brandItem);
+		lambdaQueryWrapper.like(Func.isNotEmpty(placeProduction),GoodsDesc::getPlaceProduction,placeProduction);
+		lambdaQueryWrapper.like(Func.isNotEmpty(specsOne),GoodsDesc::getSpecsOne,specsOne);
+		lambdaQueryWrapper.like(Func.isNotEmpty(specsTwo),GoodsDesc::getSpecsTwo,specsTwo);
+		List<GoodsDesc> goodsDescList = goodsDescService.list(lambdaQueryWrapper);
+		if (CollectionUtils.isNotEmpty(goodsDescList)){
+			list = goodsDescList.stream().map(GoodsDesc::getId).collect(Collectors.toList());
+		}
+		return list;
+	}
 }

+ 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);
 	}
 

+ 31 - 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,26 @@ public class PriceItemClient implements IPriceItemClient{
 	public R updatePriceItem(String code, BigDecimal price, String tenantId) {
 		return priceItemService.updatePriceItem(code,price,tenantId);
 	}
+
+	/**
+	 * 根据商品编码获取销售价格信息
+	 * @param code
+	 * @return
+	 */
+	@Override
+	@GetMapping(GET_MARKET_PRICE)
+	public R getMarketPrice(String code) {
+		return R.data(priceItemService.getMarketPrice(SecureUtil.getTenantId(),code));
+	}
+
+	/**
+	 * 获取商品采购价格
+	 * @param code
+	 * @return
+	 */
+	@Override
+	@GetMapping(GET_PURCHASE_PRICE)
+	public R getPurchasePrice(String code) {
+		return R.data(priceItemService.getPurchasePrice(SecureUtil.getTenantId(),code));
+	}
 }

+ 19 - 0
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/mapper/PriceItemMapper.java

@@ -16,11 +16,13 @@
  */
 package org.springblade.mocha.mapper;
 
+import org.apache.ibatis.annotations.Param;
 import org.springblade.mocha.entity.PriceItem;
 import org.springblade.mocha.vo.PriceItemVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 价格管理明细表 Mapper 接口
@@ -39,4 +41,21 @@ public interface PriceItemMapper extends BaseMapper<PriceItem> {
 	 */
 	List<PriceItemVO> selectPriceItemPage(IPage page, PriceItemVO priceItem);
 
+	/**
+	 * 	/**获取商品销售价格
+	 * @param tenantId
+	 * @param code
+	 * @return
+	 */
+	List<Map<String,Object>> getMarketPrice(@Param("tenantId") String tenantId,
+											@Param("code") String code);
+	/**
+	 *获取商品采购价格
+	 * @param tenantId
+	 * @param code
+	 * @return
+	 */
+	List<Map<String,Object>> getPurchasePrice(@Param("tenantId") String tenantId,
+											@Param("code") String code);
+
 }

+ 16 - 0
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/mapper/PriceItemMapper.xml

@@ -36,5 +36,21 @@
     <select id="selectPriceItemPage" resultMap="priceItemResultMap">
         select * from basic_price_item where is_deleted = 0
     </select>
+    <select id="getMarketPrice" resultType="map">
+        select
+        DISTINCT
+        IFNULL(sales_price,0) AS salesPrice
+        from basic_price_item where is_deleted = 0
+        and tenant_id = #{tenantId}
+        and code = #{code}
+    </select>
+    <select id="getPurchasePrice" resultType="map">
+        select
+        DISTINCT
+	    IFNULL(purchase_price,0) AS purchasePrice
+	    from basic_price_item where is_deleted = 0
+        and tenant_id = #{tenantId}
+        and code = #{code}
+    </select>
 
 </mapper>

+ 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>
 

+ 15 - 0
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/service/IPriceItemService.java

@@ -26,6 +26,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 
 import java.math.BigDecimal;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 价格管理明细表 服务类
@@ -72,5 +73,19 @@ public interface IPriceItemService extends IService<PriceItem> {
 	 * @return
 	 */
 	R updatePriceItem(String code, BigDecimal price, String tenantId);
+	/**
+	 * 	/**获取商品销售价格
+	 * @param tenantId
+	 * @param code
+	 * @return
+	 */
+	List<Map<String,Object>> getMarketPrice(String tenantId, String code);
+	/**
+	 *获取商品采购价格
+	 * @param tenantId
+	 * @param code
+	 * @return
+	 */
+	List<Map<String,Object>> getPurchasePrice(String tenantId,String code);
 
 }

+ 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);
 
 }

+ 11 - 0
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/service/impl/PriceItemServiceImpl.java

@@ -43,6 +43,7 @@ import org.springframework.transaction.annotation.Transactional;
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 价格管理明细表 服务实现类
@@ -170,4 +171,14 @@ public class PriceItemServiceImpl extends ServiceImpl<PriceItemMapper, PriceItem
 		queryWrapper.eq(PriceItem::getTenantId,tenantId);
 		return R.data(baseMapper.update(priceItem,queryWrapper));
 	}
+
+	@Override
+	public List<Map<String, Object>> getMarketPrice(String tenantId, String code) {
+		return baseMapper.getMarketPrice(tenantId,code);
+	}
+
+	@Override
+	public List<Map<String, Object>> getPurchasePrice(String tenantId, String code) {
+		return baseMapper.getPurchasePrice(tenantId,code);
+	}
 }

+ 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);
 	}
 

+ 71 - 2
blade-service/blade-stock/src/main/java/org/springblade/stock/controller/StockGoodsController.java

@@ -16,6 +16,9 @@
  */
 package org.springblade.stock.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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;
@@ -25,13 +28,20 @@ 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.client.feign.IGoodsDescClient;
+import org.springblade.client.vo.GoodsDescVO;
 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.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.stock.excel.StockGoodsExcel;
 import org.springblade.stock.excel.StockGoodsImport;
+import org.springblade.system.user.entity.User;
+import org.springblade.system.user.feign.IUserClient;
 import org.springframework.web.bind.annotation.*;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.stock.entity.StockGoods;
@@ -56,6 +66,9 @@ import java.util.List;
 public class StockGoodsController extends BladeController {
 
 	private final IStockGoodsService stockGoodsService;
+	private ICorpsDescClient corpsDescClient;//获取客户信息
+	private IGoodsDescClient goodsDescClient;//商品信息
+	private IUserClient userClient;//用户信息
 
 	/**
 	 * 详情
@@ -74,8 +87,64 @@ public class StockGoodsController extends BladeController {
 	@GetMapping("/list")
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页", notes = "传入stockGoods")
-	public R<IPage<StockGoods>> list(StockGoods stockGoods, Query query) {
-		IPage<StockGoods> pages = stockGoodsService.listMessage(Condition.getPage(query), Condition.getQueryWrapper(stockGoods));
+	public R<IPage<StockGoods>> list(StockGoodsVO stockGoods, Query query) {
+		List<Long> list = new ArrayList<>();
+		if (stockGoods != null){
+			list = goodsDescClient.getGoodId(stockGoods.getCode(),stockGoods.getCname(),stockGoods.getBrand(),stockGoods.getBrandItem(),
+				stockGoods.getPlaceProduction(),stockGoods.getTypeno(),stockGoods.getTypenoOne());
+		}
+		LambdaQueryWrapper<StockGoods> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(StockGoods::getTenantId, SecureUtil.getTenantId());
+		lambdaQueryWrapper.eq(StockGoods::getIsDeleted,0);
+		lambdaQueryWrapper.like(Func.isNotEmpty(stockGoods.getCode()),StockGoods::getCode,stockGoods.getCode());//编码
+		lambdaQueryWrapper.like(Func.isNotEmpty(stockGoods.getCname()),StockGoods::getCname,stockGoods.getCname());//名称
+		lambdaQueryWrapper.like(Func.isNotEmpty(stockGoods.getBrandItem()),StockGoods::getBrandItem,stockGoods.getBrandItem());//花纹
+		lambdaQueryWrapper.like(Func.isNotEmpty(stockGoods.getPlaceProduction()),StockGoods::getPlaceProduction,stockGoods.getPlaceProduction());//产地
+		lambdaQueryWrapper.like(Func.isNotEmpty(stockGoods.getBrand()),StockGoods::getBrand,stockGoods.getBrand());//品牌
+		lambdaQueryWrapper.like(Func.isNotEmpty(stockGoods.getTypeno()),StockGoods::getTypeno,stockGoods.getTypeno());//规格
+		lambdaQueryWrapper.like(Func.isNotEmpty(stockGoods.getTypenoOne()),StockGoods::getTypenoOne,stockGoods.getTypenoOne());//规格1
+		lambdaQueryWrapper.ge(Func.isNotEmpty(stockGoods.getCreateStartTime()),StockGoods::getCreateTime,stockGoods.getCreateStartTime());//制单日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(stockGoods.getCreateEndTime()),StockGoods::getCreateTime,stockGoods.getCreateEndTime());//制单日期结束
+		lambdaQueryWrapper.or();
+		lambdaQueryWrapper.in(Func.isNotEmpty(list),StockGoods::getGoodsId,list);
+		IPage<StockGoods> pages = stockGoodsService.page(Condition.getPage(query), lambdaQueryWrapper);
+		if (CollectionUtils.isNotEmpty(pages.getRecords())){
+			pages.getRecords().stream().forEach(item ->{
+				//获取商品信息
+				R<GoodsDescVO> goodsMessage = goodsDescClient.selectGoodsMessage(item.getGoodsId());
+				if (goodsMessage.isSuccess() && goodsMessage.getData() != null){
+					if (StringUtils.isNotBlank(goodsMessage.getData().getBrand())){
+						item.setBrand(goodsMessage.getData().getBrand());
+					}
+					if (StringUtils.isNotBlank(goodsMessage.getData().getBrandItem())){
+						item.setBrandItem(goodsMessage.getData().getBrandItem());
+					}
+					if (StringUtils.isNotBlank(goodsMessage.getData().getTypeno())){
+						item.setTypeno(goodsMessage.getData().getTypeno());
+					}
+					item.setCname(goodsMessage.getData().getCname());
+					item.setCode(goodsMessage.getData().getCode());
+				}
+				//获取客户信息
+				R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(item.getCorpId());
+				if (corpMessage.isSuccess() && corpMessage.getData() != null){
+					item.setCorpName(corpMessage.getData().getCname());
+				}
+				//获取用户信息
+				if (item.getCreateUser() != null){
+					R<User> createUser = userClient.userInfoById(item.getCreateUser());
+					if (createUser.isSuccess() && createUser.getData() != null){
+						item.setCreateUserName(createUser.getData().getName());
+					}
+				}
+				if (item.getUpdateUser() != null){
+					R<User> updateUser = userClient.userInfoById(item.getUpdateUser());
+					if (updateUser.isSuccess() && updateUser.getData() != null){
+						item.setUpdateUserName(updateUser.getData().getName());
+					}
+				}
+			});
+		}
 		return R.data(pages);
 	}
 

+ 1 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/mapper/OrderFreightMapper.xml

@@ -19,6 +19,7 @@
         <result column="update_time" property="updateTime"/>
         <result column="status" property="status"/>
         <result column="is_deleted" property="isDeleted"/>
+        <result column="box_pile" property="boxPile"/>
     </resultMap>