Jelajahi Sumber

代码提交

lazhaoqian 4 tahun lalu
induk
melakukan
c618361baa
37 mengubah file dengan 742 tambahan dan 48 penghapusan
  1. 1 1
      blade-ops/blade-resource/src/main/resources/application.yml
  2. 6 0
      blade-ops/blade-swagger/src/main/resources/application-dev.yml
  3. 10 0
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/feign/ICorpsDescClient.java
  4. 2 2
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/goods/enums/GoodsTypeEnum.java
  5. 5 0
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/vo/CorpsDescVO.java
  6. 16 1
      blade-service-api/blade-deliver-goods-api/src/main/java/org/springblade/deliver/goods/entity/Delivery.java
  7. 10 1
      blade-service-api/blade-deliver-goods-api/src/main/java/org/springblade/deliver/goods/entity/DeliveryItems.java
  8. 2 2
      blade-service-api/blade-mocha-item-api/src/main/java/org/springblade/mocha/entity/Price.java
  9. 10 10
      blade-service-api/blade-mocha-item-api/src/main/java/org/springblade/mocha/entity/SalesPolicy.java
  10. 12 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/Order.java
  11. 6 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/OrderItems.java
  12. 4 4
      blade-service/blade-client/src/main/java/org/springblade/client/affairs/controller/AffairsController.java
  13. 3 3
      blade-service/blade-client/src/main/java/org/springblade/client/affairs/controller/AffairsTypeController.java
  14. 7 0
      blade-service/blade-client/src/main/java/org/springblade/client/corps/feign/CorpsDescClient.java
  15. 8 0
      blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsDescMapper.java
  16. 8 0
      blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsDescMapper.xml
  17. 10 0
      blade-service/blade-client/src/main/java/org/springblade/client/corps/service/ICorpsDescService.java
  18. 17 0
      blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsDescServiceImpl.java
  19. 16 1
      blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsTypeServiceImpl.java
  20. 3 0
      blade-service/blade-client/src/main/java/org/springblade/client/goods/mapper/GoodsDescMapper.xml
  21. 3 0
      blade-service/blade-client/src/main/java/org/springblade/client/goods/mapper/GoodsTypeMapper.xml
  22. 2 0
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/mapper/DeliveryItemsMapper.xml
  23. 2 0
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/mapper/DeliveryMapper.xml
  24. 140 0
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/receiving/ExportReCeVingController.java
  25. 140 0
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/receiving/ImportReCeVingController.java
  26. 140 0
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/receiving/ReCeVingController.java
  27. 18 0
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryServiceImpl.java
  28. 7 9
      blade-service/blade-deliver-goods/src/main/resources/application-dev.yml
  29. 22 1
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderController.java
  30. 21 1
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/entrance/EntranceOrderController.java
  31. 21 1
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportOrderController.java
  32. 1 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderItemsMapper.xml
  33. 15 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.xml
  34. 7 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderService.java
  35. 10 2
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderItemsServiceImpl.java
  36. 30 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java
  37. 7 9
      blade-service/blade-purchase-sales/src/main/resources/application-dev.yml

+ 1 - 1
blade-ops/blade-resource/src/main/resources/application.yml

@@ -7,7 +7,7 @@ oss:
   enabled: true
   name: minio
   tenant-mode: true
-  endpoint: http://127.0.0.1:9000
+  endpoint: http://121.37.83.47:33625
   access-key: D99KGE6ZTQXSATTJWU24
   secret-key: QyVqGnhIQQE734UYSUFlGOZViE6+ZlDEfUG3NjhJ
   bucket-name: bladex

+ 6 - 0
blade-ops/blade-swagger/src/main/resources/application-dev.yml

@@ -13,3 +13,9 @@ knife4j:
       - name: 订单-采购
         uri: 127.0.0.1:1080
         location: /trade-purchase/v2/api-docs
+      - name: 订单-销售
+        uri: 127.0.0.1:1080
+        location: /blade-purchase-sales/v2/api-docs
+      - name: 订单-发货
+        uri: 127.0.0.1:1080
+        location: /blade-deliver-goods/v2/api-docs

+ 10 - 0
blade-service-api/blade-client-api/src/main/java/org/springblade/client/feign/ICorpsDescClient.java

@@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.List;
+import java.util.Map;
 
 @FeignClient(
 	value = LauncherConstant.APPLICATION_CLIENT_NAME
@@ -22,6 +23,7 @@ public interface ICorpsDescClient {
 	String TOP = API_PREFIX + "/top";
 	String CORP_DETAILS = API_PREFIX + "/corpDetails";
 	String getMessage = API_PREFIX + "/getMessage";
+	String GET_CORPS_MESSAGE = API_PREFIX + "/get_corps_message";
 
 	/**
 	 * 获取CorpsDesc列表
@@ -51,4 +53,12 @@ public interface ICorpsDescClient {
 	@GetMapping(CORP_DETAILS)
 	R<List<CorpsDescVO>> selCorpsDetails(@RequestParam("tenantId") String tenantId);
 
+	/**
+	 * 获取多选的客户信息
+	 * @param corpIds
+	 * @return
+	 */
+	@GetMapping("GET_CORPS_MESSAGE")
+	R<List<Map<String,Object>>> getCorpsMessage(@RequestParam("corpIds") String corpIds);
+
 }

+ 2 - 2
blade-service-api/blade-client-api/src/main/java/org/springblade/client/goods/enums/GoodsTypeEnum.java

@@ -15,9 +15,9 @@ import java.util.Objects;
 @AllArgsConstructor
 public enum GoodsTypeEnum {
 
-	GOODS(0L),
+	GOODS(0L), //商品
 
-	AFFAIRS(1L),
+	AFFAIRS(1L),//事务
 
 	;
 

+ 5 - 0
blade-service-api/blade-client-api/src/main/java/org/springblade/client/vo/CorpsDescVO.java

@@ -45,5 +45,10 @@ public class CorpsDescVO extends CorpsDesc {
 	 */
 	@ApiModelProperty(value = "客户类别")
 	private String corpsTypeId;
+	/**
+	 *客户类别
+	 */
+	@ApiModelProperty(value = "客户类别")
+	private List<Long> typeList;
 
 }

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

@@ -268,7 +268,22 @@ public class Delivery implements Serializable {
 		@ApiModelProperty(value = "客户中文名")
 		@TableField(exist = false)
 		private String corpName;
-
+	/**
+	 * 销售公司中文名
+	 */
+		@ApiModelProperty(value = "销售公司中文名")
+		@TableField(exist = false)
+		private String salesCompanyName;
+	/**
+	 * 采购金额
+	 */
+		@ApiModelProperty(value = "采购金额")
+		private BigDecimal purchaseAmount;
+	/**
+	 * 采购方式
+	 */
+		@ApiModelProperty(value = "采购方式")
+		private String purchaseMode;
 
 
 }

+ 10 - 1
blade-service-api/blade-deliver-goods-api/src/main/java/org/springblade/deliver/goods/entity/DeliveryItems.java

@@ -250,5 +250,14 @@ public class DeliveryItems implements Serializable {
 		@TableField(exist = false)
 		private String specificationAndModel;
 
-
+	/**
+	 * 采购金额
+	 */
+		@ApiModelProperty(value = "采购金额")
+		private BigDecimal purchaseAmount;
+	/**
+	 * 采购数量
+	 */
+		@ApiModelProperty(value = "采购数量")
+		private BigDecimal purchaseQuantity;
 }

+ 2 - 2
blade-service-api/blade-mocha-item-api/src/main/java/org/springblade/mocha/entity/Price.java

@@ -139,9 +139,9 @@ public class Price implements Serializable {
 		private String updateUserName;
 
 	/**
-	 * 销售政策明细信息
+	 * 价格明细信息
 	 */
-		@ApiModelProperty(value = "销售政策明细信息")
+		@ApiModelProperty(value = "价格明细信息")
 		@TableField(exist = false)
 		private List<PriceItem> priceItemList;
 

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

@@ -133,27 +133,27 @@ public class SalesPolicy implements Serializable {
 	/**
 	 * 创建人中文名
 	 */
-	@ApiModelProperty(value = "创建人中文名")
-	@TableField(exist = false)
+		@ApiModelProperty(value = "创建人中文名")
+		@TableField(exist = false)
 		private String createUserName;
 	/**
 	 * 修改人中文名
 	 */
-	@ApiModelProperty(value = "修改人中文名")
-	@TableField(exist = false)
+		@ApiModelProperty(value = "修改人中文名")
+		@TableField(exist = false)
 		private String updateUserName;
 	/**
 	 * 特价销售政策明细信息
 	 */
-	@ApiModelProperty(value = "特价销售政策明细信息")
-	@TableField(exist = false)
-	private List<SalesPolicyItem> specialItemList;
+		@ApiModelProperty(value = "特价销售政策明细信息")
+		@TableField(exist = false)
+		private List<SalesPolicyItem> specialItemList;
 	/**
 	 * 买赠销售政策明细信息
 	 */
-	@ApiModelProperty(value = "买赠政策明细信息")
-	@TableField(exist = false)
-	private List<SalesPolicyItem> presentItemList;
+		@ApiModelProperty(value = "买赠政策明细信息")
+		@TableField(exist = false)
+		private List<SalesPolicyItem> presentItemList;
 
 
 }

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

@@ -453,6 +453,18 @@ public class Order implements Serializable {
 	@ApiModelProperty(value = "客户中文名")
 	@TableField(exist = false)
 	private String corpName;
+	/**
+	 * 生成发货单的订单明细ids
+	 */
+	@ApiModelProperty(value = "生成发货单的订单明细ids")
+	@TableField(exist = false)
+	private List<Long> orderItemIds;
+	/**
+	 * 所属公司中文名
+	 */
+	@ApiModelProperty(value = "所属公司中文名")
+	@TableField(exist = false)
+	private String belongToCorpName;
 
 
 }

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

@@ -147,6 +147,7 @@ public class OrderItems implements Serializable {
 		@ApiModelProperty(value = "来源id")
 		private Long srcId;
 	/**
+	/**
 	* 提单号
 	*/
 		@ApiModelProperty(value = "提单号")
@@ -265,4 +266,9 @@ public class OrderItems implements Serializable {
 		@ApiModelProperty(value = "规格型号")
 		@TableField(exist = false)
 		private String specificationAndModel;
+	/**
+	 * 备注
+	 */
+		@ApiModelProperty(value = "备注")
+		private String remarks;
 }

+ 4 - 4
blade-service/blade-client/src/main/java/org/springblade/client/affairs/controller/AffairsController.java

@@ -43,7 +43,7 @@ public class AffairsController extends BladeController {
 	@ApiOperation(value = "详情", notes = "传入goodsDesc")
 	public R<GoodsDesc> detail(GoodsDesc goodsDesc) {
 		goodsDesc.setTenantId(AuthUtil.getTenantId());
-		goodsDesc.setType(GoodsTypeEnum.GOODS.getType());
+		goodsDesc.setType(GoodsTypeEnum.AFFAIRS.getType());
 		GoodsDesc detail = goodsDescService.getMessageById(goodsDesc);
 		return R.data(detail);
 	}
@@ -70,7 +70,7 @@ public class AffairsController extends BladeController {
 	@ApiOperation(value = "分页", notes = "传入goodsDesc")
 	public R<IPage<GoodsDescVO>> page(GoodsDescVO goodsDesc, Query query) {
 		goodsDesc.setTenantId(AuthUtil.getTenantId());
-		goodsDesc.setType(GoodsTypeEnum.GOODS.getType());
+		goodsDesc.setType(GoodsTypeEnum.AFFAIRS.getType());
 		IPage<GoodsDescVO> pages = goodsDescService.selectGoodsDescPage(Condition.getPage(query), goodsDesc);
 		return R.data(pages);
 	}
@@ -83,7 +83,7 @@ public class AffairsController extends BladeController {
 	@ApiOperation(value = "新增", notes = "传入goodsDesc")
 	public R save(@Valid @RequestBody GoodsDesc goodsDesc) {
 		goodsDesc.setTenantId(AuthUtil.getTenantId());
-		goodsDesc.setType(GoodsTypeEnum.GOODS.getType());
+		goodsDesc.setType(GoodsTypeEnum.AFFAIRS.getType());
 		return R.status(goodsDescService.save(goodsDesc));
 	}
 
@@ -144,7 +144,7 @@ public class AffairsController extends BladeController {
 	public R<IPage<GoodsDescVO>> selectGoods(GoodsDesc goodsDesc, Query query) {
 		goodsDesc.setIsDeleted(0);
 		goodsDesc.setTenantId(AuthUtil.getTenantId());
-		goodsDesc.setType(GoodsTypeEnum.GOODS.getType());
+		goodsDesc.setType(GoodsTypeEnum.AFFAIRS.getType());
 		return R.data(goodsDescService.selectGoods(Condition.getPage(query), goodsDesc));
 	}
 

+ 3 - 3
blade-service/blade-client/src/main/java/org/springblade/client/affairs/controller/AffairsTypeController.java

@@ -47,7 +47,7 @@ public class AffairsTypeController extends BladeController {
 	@ApiOperation(value = "详情", notes = "传入goodsType")
 	public R<GoodsType> detail(GoodsType goodsType) {
 		goodsType.setTenantId(AuthUtil.getTenantId());
-		goodsType.setType(GoodsTypeEnum.GOODS.getType());
+		goodsType.setType(GoodsTypeEnum.AFFAIRS.getType());
 		GoodsType detail = goodsTypeService.getMessageId(goodsType);
 		return R.data(detail);
 	}
@@ -60,7 +60,7 @@ public class AffairsTypeController extends BladeController {
 	@ApiOperation(value = "分页", notes = "传入goodsType")
 	public R<IPage<GoodsType>> list(GoodsType goodsType, Query query) {
 		goodsType.setTenantId(AuthUtil.getTenantId());
-		goodsType.setType(GoodsTypeEnum.GOODS.getType());
+		goodsType.setType(GoodsTypeEnum.AFFAIRS.getType());
 		IPage<GoodsType> pages = goodsTypeService.page(Condition.getPage(query), Condition.getQueryWrapper(goodsType));
 		return R.data(pages);
 	}
@@ -86,7 +86,7 @@ public class AffairsTypeController extends BladeController {
 	@ApiOperation(value = "新增", notes = "传入goodsType")
 	public R save(@Valid @RequestBody GoodsType goodsType) {
 		goodsType.setTenantId(AuthUtil.getTenantId());
-		goodsType.setType(GoodsTypeEnum.GOODS.getType());
+		goodsType.setType(GoodsTypeEnum.AFFAIRS.getType());
 		return R.status(goodsTypeService.save(goodsType));
 	}
 

+ 7 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/feign/CorpsDescClient.java

@@ -18,6 +18,7 @@ import org.springframework.web.bind.annotation.RestController;
 import springfox.documentation.annotations.ApiIgnore;
 
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 @NonDS
@@ -59,4 +60,10 @@ public class CorpsDescClient implements ICorpsDescClient {
 		List<CorpsDescVO> corpsDescVOList = corpsDescList.stream().map(corpsDescMapstructMapper::toVo).collect(Collectors.toList());
 		return R.data(corpsDescVOList);
 	}
+
+	@Override
+	@GetMapping(GET_CORPS_MESSAGE)
+	public R<List<Map<String, Object>>> getCorpsMessage(String corpIds) {
+		return R.data(service.getCorpsMessage(corpIds));
+	}
 }

+ 8 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsDescMapper.java

@@ -7,6 +7,7 @@ import org.springblade.client.entity.CorpsDesc;
 import org.springblade.client.vo.CorpsDescVO;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 客户详情 Mapper 接口
@@ -41,4 +42,11 @@ public interface CorpsDescMapper extends BaseMapper<CorpsDesc> {
 	CorpsDesc selectCorpsDescCname(@Param("cname") String cname,
 								   @Param("tenantId") String tenantId);
 
+	/**
+	 * 获取客户信息list
+	 * @param corps
+	 * @return
+	 */
+	List<Map<String,Object>> getCorpsMessage(@Param("corps") List<Long> corps);
+
 }

+ 8 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsDescMapper.xml

@@ -181,4 +181,12 @@
           and cname = #{cname}
           and tenant_id = #{tenantId}
     </select>
+    <select id="getCorpsMessage" resultType="java.util.Map">
+        select id, cname
+        from basic_corps_desc
+        where id in
+        <foreach item="id" collection="corps" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </select>
 </mapper>

+ 10 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/ICorpsDescService.java

@@ -22,6 +22,9 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.core.tool.api.R;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * 客户详情 服务类
  *
@@ -66,4 +69,11 @@ public interface ICorpsDescService extends IService<CorpsDesc> {
 	 */
 	String selectCorpsDescCname (CorpsDesc corpsDesc);
 
+	/**
+	 * 获取客户数组
+	 * @param corps
+	 * @return
+	 */
+	List<Map<String,Object>> getCorpsMessage(String corps);
+
 }

+ 17 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsDescServiceImpl.java

@@ -4,6 +4,7 @@ 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.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.AllArgsConstructor;
 import org.springblade.client.corps.mapper.CorpsDescMapper;
@@ -13,6 +14,7 @@ import org.springblade.client.entity.*;
 import org.springblade.client.vo.CorpsDescVO;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.system.entity.Dept;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
@@ -20,6 +22,8 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 客户详情 服务实现类
@@ -129,6 +133,19 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 	}
 
 	/**
+	 * 获取多个客户
+	 * @param corps
+	 * @return
+	 */
+	@Override
+	public List<Map<String, Object>> getCorpsMessage(String corps) {
+		List<Long> collect = Arrays.stream(corps.split(","))
+			.map(s -> Long.parseLong(s.trim()))
+			.collect(Collectors.toList());
+		return baseMapper.getCorpsMessage(collect);
+	}
+
+	/**
 	 * 保护客户联系人信息
 	 *
 	 * @param corpsDesc 客户信息

+ 16 - 1
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsTypeServiceImpl.java

@@ -23,9 +23,13 @@ import org.springblade.client.vo.CorpsTypeVO;
 import org.springblade.client.corps.mapper.CorpsTypeMapper;
 import org.springblade.client.corps.service.ICorpsTypeService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.node.ForestNodeMerger;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringPool;
+import org.springblade.system.entity.Dept;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.stereotype.Service;
@@ -76,6 +80,17 @@ public class CorpsTypeServiceImpl extends ServiceImpl<CorpsTypeMapper, CorpsType
 	@Override
 	public boolean saveMessage(CorpsType corpsType) {
 		Integer i ;
+		//生成父级信息
+		if (corpsType.getParentId() != null){
+			CorpsType type = getById(corpsType.getParentId());
+			if (type != null && corpsType.getId() != null && Func.toLong(corpsType.getParentId()) == Func.toLong(corpsType.getId())) {
+				throw new ServiceException("父节点不可选择自身!");
+			}
+			if (type != null){
+				String ancestors = type.getAncestors() + StringPool.COMMA + corpsType.getParentId();
+				corpsType.setAncestors(ancestors);
+			}
+		}
 		if (corpsType.getId() == null){
 			corpsType.setCreateUser(SecureUtil.getUserId());
 			corpsType.setCreateTime(new Date());
@@ -110,7 +125,7 @@ public class CorpsTypeServiceImpl extends ServiceImpl<CorpsTypeMapper, CorpsType
 		if (corp!= null){
 			type.setParentName(corp.getCname());
 		}
-		return null;
+		return type;
 	}
 
 	@Override

+ 3 - 0
blade-service/blade-client/src/main/java/org/springblade/client/goods/mapper/GoodsDescMapper.xml

@@ -90,6 +90,9 @@
         <if test="GoodsDesc.updateUser!=null">
             and update_user = #{GoodsDesc.updateUser}
         </if>
+        <if test="GoodsDesc.type!=null">
+            and type = #{GoodsDesc.type}
+        </if>
         <if test='GoodsDesc.goodsTypeId!=null and GoodsDesc.goodsTypeId != ""'>
             and id in (
             SELECT

+ 3 - 0
blade-service/blade-client/src/main/java/org/springblade/client/goods/mapper/GoodsTypeMapper.xml

@@ -105,6 +105,9 @@ WHERE
         <if test="GoodsType.status!=null">
             and dept.status = #{GoodsType.status}
         </if>
+        <if test="GoodsType.type!=null">
+            and dept.type = #{GoodsType.type}
+        </if>
         order by dept.sort
     </select>
     <select id="tree" resultMap="treeNodeResultMap">

+ 2 - 0
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/mapper/DeliveryItemsMapper.xml

@@ -39,6 +39,8 @@
         <result column="price" property="price"/>
         <result column="contract_amount" property="contractAmount"/>
         <result column="tax_rate" property="taxRate"/>
+        <result column="purchase_amount" property="purchaseAmount"/>
+        <result column="purchase_quantity" property="purchaseQuantity"/>
     </resultMap>
 
 

+ 2 - 0
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/mapper/DeliveryMapper.xml

@@ -41,6 +41,8 @@
         <result column="status" property="status"/>
         <result column="is_deleted" property="isDeleted"/>
         <result column="trade_type" property="tradeType"/>
+        <result column="purchase_amount" property="purchaseAmount"/>
+        <result column="purchase_mode" property="purchaseMode"/>
     </resultMap>
 
 

+ 140 - 0
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/receiving/ExportReCeVingController.java

@@ -0,0 +1,140 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.deliver.goods.receiving;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.trade.purchase.order.enums.OrderTypeEnum;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+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.deliver.goods.entity.Delivery;
+import org.springblade.deliver.goods.service.IDeliveryService;
+import org.springblade.deliver.goods.vo.DeliveryVO;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+/**
+ * 出口收货通知单 控制器
+ *
+ * @author BladeX
+ * @since 2021-09-26
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/exportReCeVing")
+@Api(value = "出口收货通知单", tags = "出口收货通知单接口")
+public class ExportReCeVingController extends BladeController {
+
+	private final IDeliveryService deliveryService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入delivery")
+	public R<Delivery> detail(Delivery delivery) {
+		Delivery detail = deliveryService.getDeliveryMessage(delivery);
+		return R.data(detail);
+	}
+
+	/**
+	 * 出口收货通知单
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入delivery")
+	public R<IPage<Delivery>> list(Delivery delivery, Query query) {
+		delivery.setIsDeleted(0);
+		delivery.setTenantId(SecureUtil.getTenantId());
+		delivery.setBillType(OrderTypeEnum.RECEIPT.getType());
+		delivery.setTradeType(OrderTypeEnum.EXPORT.getType());
+		IPage<Delivery> pages = deliveryService.page(Condition.getPage(query), Condition.getQueryWrapper(delivery));
+		return R.data(pages);
+	}
+	/**
+	 * 自定义分页 出口收货通知单
+	 */
+	@GetMapping("/page")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "分页", notes = "传入delivery")
+	public R<IPage<DeliveryVO>> page(DeliveryVO delivery, Query query) {
+		delivery.setIsDeleted(0);
+		delivery.setTenantId(SecureUtil.getTenantId());
+		delivery.setBillType(OrderTypeEnum.RECEIPT.getType());
+		delivery.setTradeType(OrderTypeEnum.EXPORT.getType());
+		IPage<DeliveryVO> pages = deliveryService.selectDeliveryPage(Condition.getPage(query), delivery);
+		return R.data(pages);
+	}
+
+	/**
+	 * 新增 出口收货通知单
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "新增", notes = "传入delivery")
+	public R save(@Valid @RequestBody Delivery delivery) {
+		return R.status(deliveryService.save(delivery));
+	}
+
+	/**
+	 * 修改 出口收货通知单
+	 */
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "修改", notes = "传入delivery")
+	public R update(@Valid @RequestBody Delivery delivery) {
+		if (delivery.getId() == null){
+			return R.fail(500,"请选择要删除的数据");
+		}
+		delivery.setIsDeleted(1);
+		return R.status(deliveryService.updateById(delivery));
+	}
+
+	/**
+	 * 新增或修改 出口收货通知单
+	 * billType FH 发货通知  SH 收货通知
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入delivery")
+	public R submit(@Valid @RequestBody Delivery delivery) {
+		delivery.setBillType(OrderTypeEnum.RECEIPT.getType());
+		delivery.setTradeType(OrderTypeEnum.EXPORT.getType());
+		return deliveryService.submitDelivery(delivery);
+	}
+	/**
+	 * 删除 出口收货通知单
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		return R.status(deliveryService.removeByIds(Func.toLongList(ids)));
+	}
+
+
+}

+ 140 - 0
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/receiving/ImportReCeVingController.java

@@ -0,0 +1,140 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.deliver.goods.receiving;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.trade.purchase.order.enums.OrderTypeEnum;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+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.deliver.goods.entity.Delivery;
+import org.springblade.deliver.goods.service.IDeliveryService;
+import org.springblade.deliver.goods.vo.DeliveryVO;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+/**
+ * 进口收货通知单 控制器
+ *
+ * @author BladeX
+ * @since 2021-09-26
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/importReCeVing")
+@Api(value = "进口收货通知单", tags = "进口收货通知单接口")
+public class ImportReCeVingController extends BladeController {
+
+	private final IDeliveryService deliveryService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入delivery")
+	public R<Delivery> detail(Delivery delivery) {
+		Delivery detail = deliveryService.getDeliveryMessage(delivery);
+		return R.data(detail);
+	}
+
+	/**
+	 * 进口收货通知单
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入delivery")
+	public R<IPage<Delivery>> list(Delivery delivery, Query query) {
+		delivery.setIsDeleted(0);
+		delivery.setTenantId(SecureUtil.getTenantId());
+		delivery.setBillType(OrderTypeEnum.RECEIPT.getType());
+		delivery.setTradeType(OrderTypeEnum.IMPORT.getType());
+		IPage<Delivery> pages = deliveryService.page(Condition.getPage(query), Condition.getQueryWrapper(delivery));
+		return R.data(pages);
+	}
+	/**
+	 * 自定义分页 进口收货通知单
+	 */
+	@GetMapping("/page")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "分页", notes = "传入delivery")
+	public R<IPage<DeliveryVO>> page(DeliveryVO delivery, Query query) {
+		delivery.setIsDeleted(0);
+		delivery.setTenantId(SecureUtil.getTenantId());
+		delivery.setBillType(OrderTypeEnum.RECEIPT.getType());
+		delivery.setTradeType(OrderTypeEnum.IMPORT.getType());
+		IPage<DeliveryVO> pages = deliveryService.selectDeliveryPage(Condition.getPage(query), delivery);
+		return R.data(pages);
+	}
+
+	/**
+	 * 新增 进口收货通知单
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "新增", notes = "传入delivery")
+	public R save(@Valid @RequestBody Delivery delivery) {
+		return R.status(deliveryService.save(delivery));
+	}
+
+	/**
+	 * 修改 进口收货通知单
+	 */
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "修改", notes = "传入delivery")
+	public R update(@Valid @RequestBody Delivery delivery) {
+		if (delivery.getId() == null){
+			return R.fail(500,"请选择要删除的数据");
+		}
+		delivery.setIsDeleted(1);
+		return R.status(deliveryService.updateById(delivery));
+	}
+
+	/**
+	 * 新增或修改进口收货通知单
+	 * billType FH 发货通知  SH 收货通知
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入delivery")
+	public R submit(@Valid @RequestBody Delivery delivery) {
+		delivery.setBillType(OrderTypeEnum.RECEIPT.getType());
+		delivery.setTradeType(OrderTypeEnum.IMPORT.getType());
+		return deliveryService.submitDelivery(delivery);
+	}
+	/**
+	 * 删除 进口收货通知单
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		return R.status(deliveryService.removeByIds(Func.toLongList(ids)));
+	}
+
+
+}

+ 140 - 0
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/receiving/ReCeVingController.java

@@ -0,0 +1,140 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.deliver.goods.receiving;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.trade.purchase.order.enums.OrderTypeEnum;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+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.deliver.goods.entity.Delivery;
+import org.springblade.deliver.goods.service.IDeliveryService;
+import org.springblade.deliver.goods.vo.DeliveryVO;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+/**
+ * 国内收货通知单 控制器
+ *
+ * @author BladeX
+ * @since 2021-09-26
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/reCeVing")
+@Api(value = "国内收货通知单", tags = "国内收货通知单接口")
+public class ReCeVingController extends BladeController {
+
+	private final IDeliveryService deliveryService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入delivery")
+	public R<Delivery> detail(Delivery delivery) {
+		Delivery detail = deliveryService.getDeliveryMessage(delivery);
+		return R.data(detail);
+	}
+
+	/**
+	 * 国内收货通知单
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入delivery")
+	public R<IPage<Delivery>> list(Delivery delivery, Query query) {
+		delivery.setIsDeleted(0);
+		delivery.setTenantId(SecureUtil.getTenantId());
+		delivery.setBillType(OrderTypeEnum.RECEIPT.getType());
+		delivery.setTradeType(OrderTypeEnum.DOMESTIC.getType());
+		IPage<Delivery> pages = deliveryService.page(Condition.getPage(query), Condition.getQueryWrapper(delivery));
+		return R.data(pages);
+	}
+	/**
+	 * 自定义分页 国内收货通知单
+	 */
+	@GetMapping("/page")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "分页", notes = "传入delivery")
+	public R<IPage<DeliveryVO>> page(DeliveryVO delivery, Query query) {
+		delivery.setIsDeleted(0);
+		delivery.setTenantId(SecureUtil.getTenantId());
+		delivery.setBillType(OrderTypeEnum.RECEIPT.getType());
+		delivery.setTradeType(OrderTypeEnum.DOMESTIC.getType());
+		IPage<DeliveryVO> pages = deliveryService.selectDeliveryPage(Condition.getPage(query), delivery);
+		return R.data(pages);
+	}
+
+	/**
+	 * 新增 国内收货通知单
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "新增", notes = "传入delivery")
+	public R save(@Valid @RequestBody Delivery delivery) {
+		return R.status(deliveryService.save(delivery));
+	}
+
+	/**
+	 * 修改 国内收货通知单
+	 */
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "修改", notes = "传入delivery")
+	public R update(@Valid @RequestBody Delivery delivery) {
+		if (delivery.getId() == null){
+			return R.fail(500,"请选择要删除的数据");
+		}
+		delivery.setIsDeleted(1);
+		return R.status(deliveryService.updateById(delivery));
+	}
+
+	/**
+	 * 新增或修改 国内收货通知单
+	 * billType FH 发货通知  SH 收货通知
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入delivery")
+	public R submit(@Valid @RequestBody Delivery delivery) {
+		delivery.setBillType(OrderTypeEnum.RECEIPT.getType());
+		delivery.setTradeType(OrderTypeEnum.DOMESTIC.getType());
+		return deliveryService.submitDelivery(delivery);
+	}
+	/**
+	 * 删除 国内收货通知单
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		return R.status(deliveryService.removeByIds(Func.toLongList(ids)));
+	}
+
+
+}

+ 18 - 0
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryServiceImpl.java

@@ -19,6 +19,7 @@ package org.springblade.deliver.goods.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import lombok.AllArgsConstructor;
+import org.springblade.client.entity.CorpsDesc;
 import org.springblade.client.feign.ICorpsDescClient;
 import org.springblade.client.feign.IFeesDescClient;
 import org.springblade.client.feign.IGoodsDescClient;
@@ -57,6 +58,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 	private DeliveryFeesServiceImpl deliveryFeesService;//发货费用信息
 	private DeliveryFilesServiceImpl deliveryFilesService;//发货文件信息
 	private IUserClient userClient;//获取用户信息
+	private ICorpsDescClient corpsDescClient;//获取客户信息
 
 	@Override
 	public IPage<DeliveryVO> selectDeliveryPage(IPage<DeliveryVO> page, DeliveryVO delivery) {
@@ -114,6 +116,22 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 		if (createUser.isSuccess() || createUser.getData() != null){
 			selectById.setCreateUserName(createUser.getData().getName());
 		}
+		//获取客户中文名
+		//获取客户中文名
+		if (selectById.getCorpId() != null){
+			R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(selectById.getCorpId());
+			if (corpMessage.isSuccess() && corpMessage.getData() != null){
+				selectById.setCorpName(corpMessage.getData().getCname());
+			}
+		}
+		//获取销售公司中文名
+		if (selectById.getSalesCompany() != null){
+			R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(selectById.getSalesCompany());
+			if (corpMessage.isSuccess() && corpMessage.getData() != null){
+				selectById.setSalesCompanyName(corpMessage.getData().getCname());
+			}
+		}
+		//获取销售客户中文名
 		//获取发货明细表数据
 		List<DeliveryItems> deliveryItemsList = deliveryItemsService.getDeliveryItems(delivery);
 		selectById.setDeliveryItemsList(deliveryItemsList);

+ 7 - 9
blade-service/blade-deliver-goods/src/main/resources/application-dev.yml

@@ -9,13 +9,11 @@ spring:
     url: ${blade.datasource.dev.url}
     username: ${blade.datasource.dev.username}
     password: ${blade.datasource.dev.password}
-#默认对象存储配置
-oss:
-  enabled: true
-  name: minio
-  tenant-mode: true
-  endpoint: http://127.0.0.1:9000
-  access-key: minioadmin
-  secret-key: minioadmin
-  bucket-name: bladex
+#mybatis-plus:
+#  mapper-locations: classpath:com/yh/project/mapper/*Mapper.xml
+#  type-aliases-package: com.yh.project.*.entity
+#swagger文档
+swagger:
+  base-packages:
+    - org.springblade.deliver.goods
 

+ 22 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderController.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.purchase.sales.controller;
 
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.trade.purchase.order.enums.OrderTypeEnum;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -45,7 +46,7 @@ import org.springblade.core.boot.ctrl.BladeController;
 @RestController
 @AllArgsConstructor
 @RequestMapping("/order")
-@Api(value = "国内销售或采购订单", tags = "国内销售或采购订单表接口")
+@Api(value = "国内销售订单", tags = "国内销售订单")
 public class OrderController extends BladeController {
 
 	private final IOrderService orderService;
@@ -138,5 +139,25 @@ public class OrderController extends BladeController {
 		return R.status(orderService.removeByIds(Func.toLongList(ids)));
 	}
 
+	/**
+	 * 国内销售单生成发货单
+	 * @param order
+	 * @return
+	 */
+	@PostMapping("/deliverGoods")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "国内销售单生成发货单", notes = "传入主订单id,明细ids")
+	public R deliverGoods(@Valid @RequestBody Order order) {
+		if (order.getId() == null){
+			return R.fail(500,"参数缺失");
+		}
+		if (CollectionUtils.isEmpty(order.getOrderItemIds())){
+			return R.fail(500,"请选择要发货的商品明细");
+		}
+		order.setBillType(OrderTypeEnum.SALES.getType());
+		order.setTradeType(OrderTypeEnum.DOMESTIC.getType());
+		return R.data(orderService.deliverGoods(order));
+	}
+
 
 }

+ 21 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/entrance/EntranceOrderController.java

@@ -1,6 +1,7 @@
 package org.springblade.purchase.sales.entrance;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.trade.purchase.order.enums.OrderTypeEnum;
 import io.swagger.annotations.Api;
@@ -26,7 +27,7 @@ import javax.validation.Valid;
 @RestController
 @AllArgsConstructor
 @RequestMapping("/entranceOrder")
-@Api(value = "进口销售或采购订单", tags = "进口销售或采购订单表接口")
+@Api(value = "进口销售订单", tags = "进口销售订单")
 public class EntranceOrderController extends BladeController {
 
 	private final IOrderService orderService;
@@ -113,4 +114,23 @@ public class EntranceOrderController extends BladeController {
 	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
 		return R.status(orderService.removeByIds(Func.toLongList(ids)));
 	}
+	/**
+	 * 进口销售单生成发货单
+	 * @param order
+	 * @return
+	 */
+	@PostMapping("/deliverGoods")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "进口销售单生成发货单", notes = "传入主订单id,明细ids")
+	public R deliverGoods(@Valid @RequestBody Order order) {
+		if (order.getId() == null){
+			return R.fail(500,"参数缺失");
+		}
+		if (CollectionUtils.isEmpty(order.getOrderItemIds())){
+			return R.fail(500,"请选择要发货的商品明细");
+		}
+		order.setBillType(OrderTypeEnum.SALES.getType());
+		order.setTradeType(OrderTypeEnum.IMPORT.getType());
+		return R.data(orderService.deliverGoods(order));
+	}
 }

+ 21 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportOrderController.java

@@ -1,6 +1,7 @@
 package org.springblade.purchase.sales.export;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.trade.purchase.order.enums.OrderTypeEnum;
 import io.swagger.annotations.Api;
@@ -26,7 +27,7 @@ import javax.validation.Valid;
 @RestController
 @AllArgsConstructor
 @RequestMapping("/exportOrder")
-@Api(value = "出口销售或采购订单", tags = "出口销售或采购订单表接口")
+@Api(value = "出口销售订单", tags = "出口销售订单")
 public class ExportOrderController extends BladeController {
 
 	private final IOrderService orderService;
@@ -113,4 +114,23 @@ public class ExportOrderController extends BladeController {
 	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
 		return R.status(orderService.removeByIds(Func.toLongList(ids)));
 	}
+	/**
+	 * 出口销售单生成发货单
+	 * @param order
+	 * @return
+	 */
+	@PostMapping("/deliverGoods")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "出口销售单生成发货单", notes = "传入主订单id,明细ids")
+	public R deliverGoods(@Valid @RequestBody Order order) {
+		if (order.getId() == null){
+			return R.fail(500,"参数缺失");
+		}
+		if (CollectionUtils.isEmpty(order.getOrderItemIds())){
+			return R.fail(500,"请选择要发货的商品明细");
+		}
+		order.setBillType(OrderTypeEnum.SALES.getType());
+		order.setTradeType(OrderTypeEnum.EXPORT.getType());
+		return R.data(orderService.deliverGoods(order));
+	}
 }

+ 1 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderItemsMapper.xml

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

+ 15 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.xml

@@ -106,6 +106,9 @@
         <if test="Order.billType!=null and Order.billType != ''">
             and bill_type = #{Order.billType}
         </if>
+        <if test="Order.tradeType!=null and Order.tradeType != ''">
+            and trade_type = #{Order.tradeType}
+        </if>
         <if test="Order.orderType!=null and Order.orderType != ''">
             and order_type = #{Order.orderType}
         </if>
@@ -283,6 +286,18 @@
         <if test="Order.status!=null">
             and status = #{Order.status}
         </if>
+        <if test="Order.dateOfArrival!=null">
+            and date_of_arrival = #{Order.dateOfArrival}
+        </if>
+        <if test="Order.arrival!=null">
+            and arrival = #{Order.arrival}
+        </if>
+        <if test="Order.downPayment!=null">
+            and down_payment = #{Order.downPayment}
+        </if>
+        <if test="Order.rmbAmount!=null">
+            and rmb_amount = #{Order.rmbAmount}
+        </if>
         order by id
     </select>
 

+ 7 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderService.java

@@ -53,4 +53,11 @@ public interface IOrderService extends IService<Order> {
 	 */
 	Order getOrderMessage(Order order);
 
+	/**
+	 * 获取要生成发货的销售单信息
+	 * @param order
+	 * @return
+	 */
+	Order deliverGoods(Order order);
+
 }

+ 10 - 2
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderItemsServiceImpl.java

@@ -33,6 +33,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -82,8 +83,15 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 	 * @return
 	 */
 	public List<OrderItems> getOrderItems(Order order){
-		List<OrderItems> orderItemsList = baseMapper.selectList(new QueryWrapper<OrderItems>().eq("pid", order.getId())
-			.eq("tenant_id", SecureUtil.getTenantId()).eq("is_deleted", 0).orderByAsc("sort"));
+		//判断订单明细的ids是否有值,有则查对应的订单明细 无则查所有的明细
+		List<OrderItems> orderItemsList = new ArrayList<>();
+		if (CollectionUtils.isEmpty(order.getOrderItemIds())){
+			orderItemsList = baseMapper.selectList(new QueryWrapper<OrderItems>().eq("pid", order.getId())
+				.eq("tenant_id", SecureUtil.getTenantId()).eq("is_deleted", 0).orderByAsc("sort"));
+		}else {
+			orderItemsList = baseMapper.selectList(new QueryWrapper<OrderItems>().eq("pid", order.getId())
+				.eq("tenant_id", SecureUtil.getTenantId()).eq("is_deleted", 0).in("id", order.getOrderItemIds()).orderByAsc("sort"));
+		}
 		if (CollectionUtils.isNotEmpty(orderItemsList)){
 			orderItemsList.stream().forEach(item ->{
 				if (item.getItemId() != null){

+ 30 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -61,6 +61,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	private OrderModifyServiceImpl orderModifyService;//订单修改日志
 	private ISerialClient serialClient;//生成系统编号
 	private IUserClient userClient;//获取用户信息
+	private ICorpsDescClient corpsDescClient;//获取客户信息
 	@Override
 	public IPage<OrderVO> selectOrderPage(IPage<OrderVO> page, OrderVO order) {
 		return page.setRecords(baseMapper.selectOrderPage(page, order));
@@ -125,6 +126,20 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		if (createUser.isSuccess() || createUser.getData() != null){
 			orderMessage.setCreateUserName(createUser.getData().getName());
 		}
+		//获取客户中文名
+		if (orderMessage.getCorpId() != null){
+			R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(orderMessage.getCorpId());
+			if (corpMessage.isSuccess() && corpMessage.getData() != null){
+				orderMessage.setCorpName(corpMessage.getData().getCname());
+			}
+		}
+		//获取销售公司中文名
+		if (orderMessage.getBelongToCorpId() != null){
+			R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(orderMessage.getBelongToCorpId());
+			if (corpMessage.isSuccess() && corpMessage.getData() != null){
+				orderMessage.setBelongToCorpName(corpMessage.getData().getCname());
+			}
+		}
 		//获取订单明细信息
 		List<OrderItems> orderItemsList = orderItemsService.getOrderItems(order);
 		orderMessage.setOrderItemsList(orderItemsList);
@@ -142,4 +157,19 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		return orderMessage;
 	}
 
+	/**
+	 * 获取要生成发货单的销售单信息
+	 * @param order
+	 * @return
+	 */
+	@Override
+	public Order deliverGoods(Order order) {
+		//获取销售单主表信息
+		Order orderMessage = baseMapper.selectById(order.getId());
+		//获取销售单明细数据
+		List<OrderItems> orderItemsList = orderItemsService.getOrderItems(order);
+		orderMessage.setOrderItemsList(orderItemsList);
+		return orderMessage;
+	}
+
 }

+ 7 - 9
blade-service/blade-purchase-sales/src/main/resources/application-dev.yml

@@ -9,13 +9,11 @@ spring:
     url: ${blade.datasource.dev.url}
     username: ${blade.datasource.dev.username}
     password: ${blade.datasource.dev.password}
-#默认对象存储配置
-oss:
-  enabled: true
-  name: minio
-  tenant-mode: true
-  endpoint: http://127.0.0.1:9000
-  access-key: minioadmin
-  secret-key: minioadmin
-  bucket-name: bladex
+#mybatis-plus:
+#  mapper-locations: classpath:com/yh/project/mapper/*Mapper.xml
+#  type-aliases-package: com.yh.project.*.entity
+#swagger文档
+swagger:
+  base-packages:
+    - org.springblade.purchase.sales