Bladeren bron

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

1021934019@qq.com 4 jaren geleden
bovenliggende
commit
e9679e09bd

+ 5 - 14
blade-service/blade-client/src/main/java/org/springblade/client/corps/controller/CorpsDescController.java

@@ -63,20 +63,11 @@ public class CorpsDescController extends BladeController {
 	@GetMapping("/list")
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页", notes = "传入corpsDesc")
-	public R<IPage<CorpsDesc>> list(CorpsDescVO corpsDesc, Query query) {
-		LambdaQueryWrapper<CorpsDesc> lambdaQueryWrapper=new LambdaQueryWrapper<>();
-		lambdaQueryWrapper.like(StringUtils.isNotBlank(corpsDesc.getCode()),CorpsDesc::getCode,corpsDesc.getCode());
-		lambdaQueryWrapper.like(StringUtils.isNotBlank(corpsDesc.getCname()),CorpsDesc::getCname,corpsDesc.getCname());
-		lambdaQueryWrapper.like(StringUtils.isNotBlank(corpsDesc.getBelongtoarea()),CorpsDesc::getBelongtoarea,corpsDesc.getBelongtoarea());
-		lambdaQueryWrapper.like(StringUtils.isNotBlank(corpsDesc.getBelongtocompany()),CorpsDesc::getBelongtocompany,corpsDesc.getBelongtocompany());
-		lambdaQueryWrapper.like(StringUtils.isNotBlank(corpsDesc.getAttn()),CorpsDesc::getAttn,corpsDesc.getAttn());
-		lambdaQueryWrapper.like(StringUtils.isNotBlank(corpsDesc.getGoodtypes()),CorpsDesc::getGoodtypes,corpsDesc.getGoodtypes());
-		lambdaQueryWrapper.like(StringUtils.isNotBlank(corpsDesc.getCreditLevel()),CorpsDesc::getCreditLevel,corpsDesc.getCreditLevel());
-		lambdaQueryWrapper.eq(CorpsDesc::getTenantId, AuthUtil.getTenantId());
-		lambdaQueryWrapper.eq(CorpsDesc::getIsDeleted,0);
-		IPage<CorpsDesc> page = new Page<>(query.getCurrent(),query.getSize());
-		IPage<CorpsDesc> iPage = corpsDescService.page(page, lambdaQueryWrapper);
-		return R.data(iPage);
+	public R<IPage<CorpsDescVO>> list(CorpsDescVO corpsDesc, Query query) {
+		corpsDesc.setIsDeleted(0);//默认查有效的
+		corpsDesc.setTenantId(SecureUtil.getTenantId());
+		IPage<CorpsDescVO> pages = corpsDescService.selectCorpsDescPage(Condition.getPage(query), corpsDesc);
+		return R.data(pages);
 	}
 
 	/**

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

@@ -56,28 +56,28 @@
             and id = #{CorpsDesc.id}
         </if>
         <if test="CorpsDesc.code!=null and CorpsDesc.code != ''">
-            and code = #{CorpsDesc.code}
+            and code like CONCAT(CONCAT('%', #{CorpsDesc.code}), '%')
         </if>
         <if test="CorpsDesc.cname!=null and CorpsDesc.cname != ''">
-            and cname = #{CorpsDesc.cname}
+            and cname like CONCAT(CONCAT('%', #{CorpsDesc.cname}), '%')
         </if>
         <if test="CorpsDesc.enname!=null and CorpsDesc.enname != ''">
             and enname = #{CorpsDesc.enname}
         </if>
         <if test="CorpsDesc.goodtypes!=null and CorpsDesc.goodtypes != ''">
-            and goodtypes = #{CorpsDesc.goodtypes}
+            and goodtypes like CONCAT(CONCAT('%', #{CorpsDesc.goodtypes}), '%')
         </if>
         <if test="CorpsDesc.belongtocompany!=null and CorpsDesc.belongtocompany != ''">
-            and belongtocompany = #{CorpsDesc.belongtocompany}
+            and belongtocompany like CONCAT(CONCAT('%',  #{CorpsDesc.belongtocompany}), '%')
         </if>
         <if test="CorpsDesc.companytype!=null and CorpsDesc.companytype != ''">
             and companytype = #{CorpsDesc.companytype}
         </if>
         <if test="CorpsDesc.belongtoarea!=null and CorpsDesc.belongtoarea != ''">
-            and belongtoarea = #{CorpsDesc.belongtoarea}
+            and belongtoarea like CONCAT(CONCAT('%',  #{CorpsDesc.belongtoarea}), '%')
         </if>
         <if test="CorpsDesc.attn!=null and CorpsDesc.attn != ''">
-            and attn = #{CorpsDesc.attn}
+            and attn like CONCAT(CONCAT('%',  #{CorpsDesc.attn}), '%')
         </if>
         <if test="CorpsDesc.tel!=null and CorpsDesc.tel != ''">
             and tel = #{CorpsDesc.tel}
@@ -125,7 +125,7 @@
             and creditstatus = #{CorpsDesc.creditstatus}
         </if>
         <if test="CorpsDesc.creditLevel!=null and CorpsDesc.creditLevel != ''">
-            and credit_level = #{CorpsDesc.creditLevel}
+            and credit_level like CONCAT(CONCAT('%',  #{CorpsDesc.creditLevel}), '%')
         </if>
         <if test="CorpsDesc.creditGrant!=null">
             and credit_grant = #{CorpsDesc.creditGrant}

+ 18 - 8
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportEnquiryController.java

@@ -119,18 +119,28 @@ public class ExportEnquiryController extends BladeController {
 	 * @param order
 	 * @return
 	 */
-	@PostMapping("/deliverGoods")
-	@ApiOperationSupport(order = 6)
-	@ApiOperation(value = "出口销售单生成发货单", notes = "传入主订单id,明细ids")
-	public R deliverGoods(@Valid @RequestBody Order order) {
+	@PostMapping("/createMarket")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "出口询价生成销售单")
+	public R createMarket(@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.createMarket(order));
+	}
+	/**
+	 * 确认询价单
+	 * @param order
+	 * @return
+	 */
+	@PostMapping("/affirm")
+	@ApiOperationSupport(order = 10)
+	@ApiOperation(value = "确认询价单")
+	public R affirm(@Valid @RequestBody Order order) {
 		order.setBillType(OrderTypeEnum.ENQUIRY.getType());
 		order.setTradeType(OrderTypeEnum.EXPORT.getType());
-		return R.data(orderService.deliverGoods(order));
+		return R.data(orderService.affirm(order));
 	}
 }

+ 16 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportOrderController.java

@@ -160,4 +160,20 @@ public class ExportOrderController extends BladeController {
 			tradeType,billType,tenantId);
 		return R.data(pages);
 	}
+	/**
+	 * 出口销售单生成采购单
+	 * @param order
+	 * @return
+	 */
+	@PostMapping("/createMarket")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "出口销售单生成采购单")
+	public R createMarket(@Valid @RequestBody Order order) {
+		if (order.getId() == null){
+			return R.fail(500,"参数缺失");
+		}
+		order.setBillType(OrderTypeEnum.PURCHASE.getType());
+		order.setTradeType(OrderTypeEnum.EXPORT.getType());
+		return R.data(orderService.createMarket(order));
+	}
 }

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

@@ -65,5 +65,11 @@ public interface IOrderService extends IService<Order> {
 	 * @return
 	 */
 	R affirm(Order order);
+	/**
+	 * 保存订单信息
+	 * @param order
+	 * @return
+	 */
+	R createMarket(Order order);
 
 }

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

@@ -266,5 +266,79 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		//修改库存信息待定
 		return R.data(order);
 	}
+	@Override
+	@Transactional
+	public R createMarket(Order order) {
+		Order selectById = baseMapper.selectById(order.getId());
+		if (selectById == null){
+			throw  new RuntimeException("找不到单据信息");
+		}
+		//保存订单主表信息
+		//获取系统编号
+		R billNo = serialClient.getBillNo(order.getBillType());
+		if (billNo.getCode() != 200){
+			TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+			throw  new RuntimeException("生成系统编号失败");
+		}
+		selectById.setSrcId(order.getId());
+		selectById.setSrcOrderNo(selectById.getSysNo());
+		selectById.setId(null);
+		selectById.setSysNo((String) billNo.getData());
+		selectById.setTenantId(SecureUtil.getTenantId());
+		selectById.setCreateTime(new Date());
+		selectById.setCreateUser(SecureUtil.getUserId());
+		selectById.setUpdateUser(null);
+		selectById.setUpdateTime(null);
+		selectById.setOrderStatus("录入");
+		selectById.setIfEnquiry(null);
+		selectById.setIfShipping(null);
+		selectById.setIfInvoice("否");
+		selectById.setBillType(order.getBillType());
+		selectById.setTradeType(order.getTradeType());
+		if (order.getBusinesDate() == null){
+			selectById.setBusinesDate(new Date());
+		}
+		baseMapper.insert(selectById);
+		//保存订单费用明细
+		List<OrderFees> orderFeesList = orderFeesService.list(new QueryWrapper<OrderFees>().eq("pid", order.getId()).eq("is_deleted", 0));
+		if (CollectionUtils.isNotEmpty(orderFeesList)){
+			orderFeesList.stream().forEach(fee ->{
+				fee.setPid(selectById.getId());
+				fee.setId(null);
+				fee.setCreateTime(new Date());
+				fee.setCreateUser(SecureUtil.getUserId());
+				fee.setUpdateTime(null);
+				fee.setUpdateUser(null);
+				orderFeesService.save(fee);
+			});
+		}
+		//保存订单明细
+		List<OrderItems> orderItemsList = orderItemsService.list(new QueryWrapper<OrderItems>().eq("pid", order.getId()).eq("is_deleted", 0));
+		if (CollectionUtils.isNotEmpty(orderItemsList)){
+			orderItemsList.stream().forEach(item ->{
+				item.setPid(selectById.getId());
+				item.setId(null);
+				item.setCreateTime(new Date());
+				item.setCreateUser(SecureUtil.getUserId());
+				item.setUpdateTime(null);
+				item.setUpdateUser(null);
+				orderItemsService.save(item);
+			});
+		}
+		//保存订单文件信息
+		List<OrderFiles> orderFilesList = orderFilesService.list(new QueryWrapper<OrderFiles>().eq("pid", order.getId()).eq("is_deleted", 0));
+		if (CollectionUtils.isNotEmpty(orderFilesList)){
+			orderFilesList.stream().forEach(file ->{
+				file.setPid(selectById.getId());
+				file.setId(null);
+				file.setCreateTime(new Date());
+				file.setCreateUser(SecureUtil.getUserId());
+				file.setUpdateTime(null);
+				file.setUpdateUser(null);
+				orderFilesService.save(file);
+			});
+		}
+		return R.data(order);
+	}
 
 }

+ 3 - 0
blade-service/trade-finance/src/main/java/com/trade/finance/controller/SettlementController.java

@@ -35,6 +35,7 @@ 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.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springframework.web.bind.annotation.*;
@@ -90,6 +91,8 @@ public class SettlementController extends BladeController {
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页", notes = "传入settlement")
 	public R<IPage<Settlement>> list(Settlement settlement, Query query) {
+		settlement.setTenantId(SecureUtil.getTenantId());
+		settlement.setIsDeleted(0);
 		IPage<Settlement> pages = settlementService.page(Condition.getPage(query), Condition.getQueryWrapper(settlement));
 		List<Settlement> settlementList = pages.getRecords();
 		if(CollectionUtils.isNotEmpty(settlementList))

+ 1 - 1
blade-service/trade-purchase/src/main/java/com/trade/purchase/enquiry/PurchaseEnquiry.java

@@ -221,7 +221,7 @@ public class PurchaseEnquiry  extends BladeController {
 		if (order.getId() == null){
 			throw new RuntimeException("请选择确认的单据");
 		}
-		if (StringUtils.isNotBlank(order.getOrderStatus()) && order.getOrderStatus().equals("已提交")) {
+		if (StringUtils.isNotBlank(order.getIfEnquiry()) && order.getIfEnquiry().equals("询价确认")) {
 			throw new RuntimeException("请勿重复提交");
 		}
 		order.setBillType(OrderTypeEnum.PURCHASE_ENQUIRY.getType());

+ 16 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/enquiry/ShippingEnquiry.java

@@ -1,6 +1,7 @@
 package com.trade.purchase.enquiry;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.trade.purchase.order.dto.OrderSubmitDto;
 import com.trade.purchase.order.entity.*;
@@ -192,4 +193,19 @@ public class ShippingEnquiry extends BladeController {
 		}
 		return R.status(orderFreightService.removeById(orderFreight));
 	}
+
+	/**
+	 * 新增或修改 出口采购询价
+	 */
+	@PostMapping("/commit")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入order")
+	public R<OrderSubmitDto> commit(@Valid @RequestBody OrderSubmitDto submitDto) {
+		if (StringUtils.isNotBlank(submitDto.getIfShipping()) && submitDto.getIfShipping().equals("船务确认")){
+			throw new RuntimeException("请勿重复提交");
+		}
+		submitDto.setBillType(OrderTypeEnum.ENQUIRY.getType());
+		submitDto.setTradeTypeEnum(OrderTypeEnum.EXPORT);
+		return orderService.commit(submitDto);
+	}
 }

+ 6 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/IOrderService.java

@@ -103,5 +103,11 @@ public interface IOrderService extends IService<Order> {
 	R<OrderSubmitDto> savePurchase(OrderSubmitDto submitDto);
 
 	IPage<OrderDTO>  listOrderItem(IPage<OrderDTO> iPage, String tradeType, String orderNo,  Long corpId,  String startDate,String endDate);
+	/**
+	 * 提交船务询价信息
+	 * @param submitDto
+	 * @return
+	 */
+	R<OrderSubmitDto> commit(OrderSubmitDto submitDto);
 
 }

+ 72 - 2
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderServiceImpl.java

@@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -232,6 +233,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	@Transactional
 	public R<OrderVO> savePurchaseEnquiry(Order order) {
 		Order purchaseEnquiry = baseMapper.selectById(order.getId());
+		if (StringUtils.isNotBlank(purchaseEnquiry.getIfEnquiry()) && purchaseEnquiry.getIfEnquiry().equals("已询价")){
+			throw  new RuntimeException("已询价,请勿重复提交");
+		}
 		//获取系统编号
 		R billNo = serialClient.getBillNo(order.getBillType());
 		if (!billNo.isSuccess()){
@@ -254,6 +258,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			.eq("tenant_id", SecureUtil.getTenantId()).eq("is_deleted", 0).orderByAsc("sort"));
 		if (CollectionUtils.isNotEmpty(list)){
 			list.stream().forEach(item ->{
+				item.setSrcId(item.getId());
 				item.setId(null);
 				item.setPid(purchaseEnquiry.getId());
 				item.setUpdateUser(SecureUtil.getUserId());
@@ -262,6 +267,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			});
 		}
 		vo.setItemsVOList(list.stream().map(orderItemMapstructMapper::toVo).collect(Collectors.toList()));
+		//修改原订单的信息
+		Order orderMessage = new Order();
+		orderMessage.setId(order.getId());
+		orderMessage.setIfEnquiry("已询价");
+		baseMapper.updateById(orderMessage);
 		return R.data(vo);
 	}
 
@@ -331,6 +341,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				}
 			});
 		}
+		submitDto.setUpdateTime(new Date());
+		submitDto.setUpdateUser(SecureUtil.getUserId());
+		baseMapper.updateById(submitDto);
+		//获取订单明细信息
+		List<OrderItems> orderItemsList = this.getOrderItems(submitDto.getId(),SecureUtil.getUserId());
+		if (CollectionUtils.isNotEmpty(orderItemsList)) {
+			submitDto.setItemsVOList(orderItemsList.stream().map(orderItemMapstructMapper::toVo).collect(Collectors.toList()));
+		}
 		return R.data(submitDto);
 	}
 
@@ -382,7 +400,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		//获取订单运费
 		List<OrderFreight> orderFreightList = orderFreightService.list(Wrappers.<OrderFreight>lambdaQuery().eq(OrderFreight::getPid, vo.getId())
 			.eq(OrderFreight::getTenantId, SecureUtil.getTenantId()).eq(OrderFreight::getIsDeleted, 0));
-		if (CollectionUtils.isNotEmpty(modifyList)) {
+		if (CollectionUtils.isNotEmpty(orderFreightList)) {
 			vo.setOrderFreightList(orderFreightList);
 		}
 		return R.data(vo);
@@ -459,7 +477,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	@Override
 	public R<OrderVO> submit(Order order)
 	{
-		order.setOrderStatus("已确认");
+		order.setIfEnquiry("询价确认");
 		order.setUpdateUser(SecureUtil.getUserId());
 		order.setUpdateTime(new Date());
 		baseMapper.updateById(order);
@@ -476,6 +494,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			});
 		}
 		vo.setItemsVOList(list.stream().map(orderItemMapstructMapper::toVo).collect(Collectors.toList()));
+		vo.setOrderItemsList(list);
 		return R.data(vo);
 	}
 
@@ -486,6 +505,57 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	}
 
 	@Override
+	public R<OrderSubmitDto> commit(OrderSubmitDto submitDto) {
+		submitDto.setIfShipping("船务确认");
+		submitDto.setUpdateUser(SecureUtil.getUserId());
+		submitDto.setUpdateTime(new Date());
+		if (CollectionUtils.isNotEmpty(submitDto.getOrderFeesList())){
+			submitDto.getOrderFeesList().stream().forEach(item ->{
+				item.setTenantId(SecureUtil.getTenantId());
+				if (item.getId() == null){
+					item.setCreateUser(SecureUtil.getUserId());
+					item.setCreateTime(new Date());
+					item.setPid(submitDto.getId());
+					orderFeesService.save(item);
+				}else {
+					item.setUpdateUser(SecureUtil.getUserId());
+					item.setUpdateTime(new Date());
+					orderFeesService.updateById(item);
+				}
+			});
+		}
+		if (CollectionUtils.isNotEmpty(submitDto.getOrderFreightList())){
+			submitDto.getOrderFreightList().stream().forEach(item ->{
+				item.setTenantId(SecureUtil.getTenantId());
+				if (item.getId() == null){
+					item.setCreateUser(SecureUtil.getUserId());
+					item.setCreateTime(new Date());
+					item.setPid(submitDto.getId());
+					orderFreightService.save(item);
+				}else {
+					item.setUpdateUser(SecureUtil.getUserId());
+					item.setUpdateTime(new Date());
+					orderFreightService.updateById(item);
+				}
+			});
+		}
+		//获取重点推荐的运费
+		List<OrderFreight> list = orderFreightService.list(new QueryWrapper<OrderFreight>().eq("pid", submitDto.getId()).eq("is_deleted", 0).eq("priority_referrer", 1)
+			.eq("tenant_id", SecureUtil.getTenantId()));
+		if (CollectionUtils.isNotEmpty(list)){
+			BigDecimal reduce = list.stream().map(OrderFreight::getOceanFreight).reduce(BigDecimal.ZERO, BigDecimal::add);
+			submitDto.setReferenceOceanFreight(reduce);
+		}
+		baseMapper.updateById(submitDto);//更新原询价单信息
+		//获取订单明细信息
+		List<OrderItems> orderItemsList = this.getOrderItems(submitDto.getId(),SecureUtil.getUserId());
+		if (CollectionUtils.isNotEmpty(orderItemsList)) {
+			submitDto.setItemsVOList(orderItemsList.stream().map(orderItemMapstructMapper::toVo).collect(Collectors.toList()));
+		}
+		return R.data(submitDto);
+	}
+
+	@Override
 	public R<OrderSubmitDto> savePurchase(OrderSubmitDto submitDto) {
 		if (submitDto.getId()== null){
 			submitDto.setCreateUser(SecureUtil.getUserId());