Browse Source

20230529 17:25

wangzhuo 2 years ago
parent
commit
03e6498e21

+ 40 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/feign/IPJOrderClient.java

@@ -1,10 +1,13 @@
 package org.springblade.salesPart.feign;
 
 import org.springblade.core.tool.api.R;
+import org.springblade.salesPart.entity.PjGoodsDesc;
 import org.springblade.salesPart.entity.PjOrder;
 import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
 
 
 /**
@@ -18,6 +21,10 @@ public interface IPJOrderClient {
 	String API_PREFIX = "/blade-sales-part";
 	String UPDATE_ORDER = API_PREFIX + "/updateOrder";
 	String GET_BY_ORDER = API_PREFIX + "/getByOrder";
+	String GET_BY_ID_ORDER = API_PREFIX + "/getByIdOrder";
+	String ORDER_UNDER_REVIEW = API_PREFIX + "/orderUnderReview";
+	String ORDER_PASS_CANCEL = API_PREFIX + "/orderPassCancel";
+	String ORDER_PASS_CHECK = API_PREFIX + "/orderPassCheck";
 
 
 	/**
@@ -38,4 +45,37 @@ public interface IPJOrderClient {
 	@PostMapping(GET_BY_ORDER)
 	R<PjOrder> getByOrder(@RequestBody PjOrder order);
 
+	/**
+	 * 根据id查询订单
+	 *
+	 * @param id
+	 * @return
+	 */
+	@GetMapping(GET_BY_ID_ORDER)
+	PjOrder getByIdOrder(@RequestParam("id") Long id);
+
+	/**
+	 * 审批中
+	 *
+	 * @param id
+	 * @return
+	 */
+	@PostMapping(ORDER_UNDER_REVIEW)
+	R orderUnderReview(@RequestParam("id") Long id);
+
+	/**
+	 * 审核驳回
+	 * @param id
+	 * @return
+	 */
+	@PostMapping(ORDER_PASS_CANCEL)
+	R orderPassCancel(@RequestParam("id") Long id);
+
+	/**
+	 * 审核通过
+	 * @param id
+	 * @return
+	 */
+	@PostMapping(ORDER_PASS_CHECK)
+	R orderPassCheck(@RequestParam("id") Long id);
 }

+ 12 - 0
blade-service/blade-check/pom.xml

@@ -123,6 +123,18 @@
             <version>2.8.2.RELEASE</version>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-sales-part-api</artifactId>
+            <version>2.8.2.RELEASE</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-sales-part-api</artifactId>
+            <version>2.8.2.RELEASE</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 
 

+ 4 - 0
blade-service/blade-check/src/main/java/org/springblade/check/controller/AuditProecessController.java

@@ -372,6 +372,10 @@ public class AuditProecessController extends BladeController {
 			auditProecessService.salesPlan(auditProecess);
 		} else if ("HYCK-DJ".equals(proecess.getCheckType()) || "HYCK-FY".equals(proecess.getCheckType()) || "HYJK-DJ".equals(proecess.getCheckType()) || "HYJK-FY".equals(proecess.getCheckType())) {
 			auditProecessService.oceanShipping(auditProecess);
+		}
+		//配件销售退款
+		else if ("PJTK".equals(proecess.getCheckType())){
+			auditProecessService.pjOrderCheck(auditProecess);
 		}else {
 			auditProecessService.commonCheck(auditProecess);
 		}

+ 6 - 0
blade-service/blade-check/src/main/java/org/springblade/check/service/IAuditProecessService.java

@@ -143,4 +143,10 @@ public interface IAuditProecessService extends IService<AuditProecess> {
 	void salesPlan(AuditProecess auditProecess);
 
     void oceanShipping(AuditProecess auditProecess);
+
+	/**
+	 * 配件销售退款审核
+	 * @param auditProecess
+	 */
+	void pjOrderCheck(AuditProecess auditProecess);
 }

+ 174 - 0
blade-service/blade-check/src/main/java/org/springblade/check/service/impl/AuditProecessServiceImpl.java

@@ -61,6 +61,8 @@ import org.springblade.purchase.sales.entity.Biding;
 import org.springblade.purchase.sales.entity.Order;
 import org.springblade.purchase.sales.feign.IBidingDescClient;
 import org.springblade.purchase.sales.feign.IOrderCheckClient;
+import org.springblade.salesPart.entity.PjOrder;
+import org.springblade.salesPart.feign.IPJOrderClient;
 import org.springblade.school.feign.ISalaryClient;
 import org.springblade.system.feign.ISysClient;
 import org.springblade.system.user.entity.User;
@@ -135,6 +137,8 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
 
 	private final IAgreementClient agreementClient;//协议管理
 
+	private final IPJOrderClient ipjOrderClient;//配件批发
+
 	@Override
 	public IPage<AuditProecessVO> selectAuditProecessPage(IPage<AuditProecessVO> page, AuditProecessVO auditProecess) {
 		return page.setRecords(baseMapper.selectAuditProecessPage(page, auditProecess));
@@ -2526,6 +2530,176 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
 	}
 
 	/**
+	 * 配件销售退款审核
+	 */
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
+	public void pjOrderCheck(AuditProecess auditProecess) {
+		//查看最新操作记录,防止重复提交
+		AuditProecess proecessTemp = baseMapper.selectById(auditProecess.getId());
+		if (proecessTemp == null) {
+			throw new SecurityException("未查到此审批记录,禁止操作");
+		}
+		if ("A".equals(proecessTemp.getAuditStatus()) || "B".equals(proecessTemp.getAuditStatus())) {
+			throw new SecurityException("当前记录已经完成审批,禁止重复操作");
+		}
+
+		if (auditProecess.getAuditStatus() == null || !"S".equals(auditProecess.getAuditStatus())) {
+			throw new SecurityException("审批状态非待审,禁止操作");
+		}
+		//信息
+		Message sendMessage = new Message();
+		sendMessage.setParameter(String.valueOf(auditProecess.getBillId()));
+		sendMessage.setUserName(AuthUtil.getUserName());
+		sendMessage.setUserId(AuthUtil.getUserId());
+		sendMessage.setToUserId(auditProecess.getSendUserId());
+		sendMessage.setToUserName(auditProecess.getSendName());
+		sendMessage.setMessageType(1);
+		sendMessage.setTenantId(AuthUtil.getTenantId());
+		sendMessage.setCreateUser(AuthUtil.getUserId());
+		sendMessage.setCreateTime(new Date());
+		sendMessage.setUrl(auditProecess.getUrl());
+		sendMessage.setPageLabel(auditProecess.getPageLabel());
+		sendMessage.setPageStatus(auditProecess.getPageStatus());
+
+		//用户操作 1.通过  2.驳回
+		Integer operate = auditProecess.getOperate();
+		//查看当前审批是否为最后一级
+		String iffinalItem = auditProecess.getIffinalItem();
+		//审批人
+		auditProecess.setAuditUserId(String.valueOf(AuthUtil.getUserId()));
+		//审批时间
+		auditProecess.setAuditOpTime(new Date());
+
+		PjOrder order = ipjOrderClient.getByIdOrder(proecessTemp.getBillId());
+
+		//不是最后一级
+		if ("F".equals(iffinalItem)) {
+
+			//通过
+			if (operate == 1) {
+				//如果是第一级, 则修改状态为审批中
+				if (auditProecess.getLevelId() == 1) {
+					R submit = ipjOrderClient.orderUnderReview(auditProecess.getSrcBillId());
+					if (!submit.isSuccess()) {
+						throw new SecurityException("审批开始修改审核状态失败");
+					}
+				}
+
+				auditProecess.setAuditStatus("A");
+				//查询下一级,开启待审
+				LambdaQueryWrapper<AuditProecess> auditProecessLambdaQueryWrapper = new LambdaQueryWrapper<>();
+				auditProecessLambdaQueryWrapper
+					.eq(AuditProecess::getBatchNo, auditProecess.getBatchNo())
+					.eq(AuditProecess::getSrcBillId, auditProecess.getSrcBillId())
+					.eq(AuditProecess::getIsDelete, 0)
+					.eq(AuditProecess::getActId, auditProecess.getActId())
+					.eq(AuditProecess::getBillId, auditProecess.getBillId())
+					.eq(AuditProecess::getBillNo, auditProecess.getBillNo())
+					.eq(AuditProecess::getTenantId, AuthUtil.getTenantId())
+					.eq(AuditProecess::getLevelId, auditProecess.getLevelId() + 1);
+				Integer count = baseMapper.selectCount(auditProecessLambdaQueryWrapper);
+				if (count != null && count > 1) {
+					throw new SecurityException("审核失败,获取下一级信息失败");
+				}
+				AuditProecess proecess = baseMapper.selectOne(auditProecessLambdaQueryWrapper);
+				if (proecess == null) {
+					throw new SecurityException("审批通过=>获取下一级信息失败");
+				}
+				proecess.setAuditStatus("S");
+				baseMapper.updateById(proecess);
+
+				SimpleDateFormat simpleDateFormat = new SimpleDateFormat();
+
+				//获得订单创建日期
+				String orderDate = null;
+				if (proecessTemp.getBillId() != null) {
+					if (order != null) {
+						orderDate = simpleDateFormat.format(order.getCreateTime());
+					}
+				}
+
+				Message message = new Message();
+				message.setUserName(AuthUtil.getUserName());
+				message.setUserId(AuthUtil.getUserId());
+				message.setParameter(String.valueOf(auditProecess.getBillId()));
+				message.setMessageType(1);
+				message.setTenantId(AuthUtil.getTenantId());
+
+				message.setMessageBody("您有退款审核,订单单号:" + "" + proecessTemp.getBillNo() + ","
+					+ "订单日期:" + orderDate + ",请审核。"
+					+ "提交人:" + proecessTemp.getSendName() + "  " + "提交时间" + simpleDateFormat.format(proecessTemp.getSendTime())
+				);
+
+				message.setCreateUser(AuthUtil.getUserId());
+				message.setUrl("/salesManagement/saleOrder/index");
+				message.setCreateTime(new Date());
+
+				// 消息批量通知下一级
+				sendMsgToGroup(message, proecess.getAuditUserId());
+			}
+			//不通过
+			else if (operate == 2) {
+				auditProecess.setAuditStatus("B");
+				//todo 调用feign取消
+				R r = ipjOrderClient.orderPassCancel(auditProecess.getSrcBillId());
+				if (!r.isSuccess()) {
+					throw new SecurityException("修改订单数据失败");
+				}
+
+				sendMessage.setMessageBody("您的退款审核未通过" + ",订单号:" + proecessTemp.getBillNo() + ",驳回原因:" + auditProecess.getAuditMsg());
+				R save = messageClient.save(sendMessage);
+				if (!save.isSuccess()) {
+					throw new SecurityException("发送消息失败");
+				}
+			}
+
+		}
+		//是最后一级
+		else if ("T".equals(iffinalItem)) {
+			//通过
+			if (operate == 1) {
+				//todo 调用feign直接通过
+				auditProecess.setAuditStatus("A");
+				R r = ipjOrderClient.orderPassCheck(auditProecess.getSrcBillId());
+				if (!r.isSuccess()) {
+					throw new SecurityException("修改订单数据失败");
+				}
+
+				sendMessage.setMessageBody("您的退款审核已通过" + ",订单号:" + proecessTemp.getBillNo() + ",请继续操作");
+				R save = messageClient.save(sendMessage);
+				if (!save.isSuccess()) {
+					throw new SecurityException("发送消息失败");
+				}
+			}
+			//不通过
+			else if (operate == 2) {
+				//todo 调用feign取消
+				auditProecess.setAuditStatus("B");
+				R r = ipjOrderClient.orderPassCancel(auditProecess.getSrcBillId());
+				if (!r.isSuccess()) {
+					throw new SecurityException("修改订单数据失败");
+				}
+				sendMessage.setMessageBody("您的退款审核未通过" + ",订单号:" + proecessTemp.getBillNo() + ",驳回原因:" + auditProecess.getAuditMsg());
+				R save = messageClient.save(sendMessage);
+				if (!save.isSuccess()) {
+					throw new SecurityException("发送消息失败");
+				}
+			}
+		} else {
+			throw new SecurityException("审批异常,请联系管理员");
+		}
+
+		cleanMsg(proecessTemp.getAuditUserId(), AuthUtil.getUserId(), proecessTemp.getSrcBillId());
+
+		//保存操作记录
+		auditProecess.setAuditMsg(auditProecess.getAuditMsg());
+		auditProecess.setAuditItem(new Date());
+		baseMapper.updateById(auditProecess);
+	}
+
+	/**
 	 * 销售政策审核
 	 */
 	@Override

+ 11 - 10
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/goods/controller/GoodsDescController.java

@@ -41,9 +41,7 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.ObjectUtil;
-import org.springblade.salesPart.entity.PjBrandDesc;
-import org.springblade.salesPart.entity.PjGoodsType;
-import org.springblade.salesPart.entity.PjShoppingCart;
+import org.springblade.salesPart.entity.*;
 import org.springblade.salesPart.excel.CorpsDescExportExcel;
 import org.springblade.salesPart.excel.GoodsDescExportExcel;
 import org.springblade.salesPart.excel.GoodsExcel;
@@ -52,7 +50,6 @@ import org.springblade.system.entity.Dept;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.web.bind.annotation.*;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import org.springblade.salesPart.entity.PjGoodsDesc;
 import org.springblade.salesPart.vo.GoodsDescVO;
 import org.springblade.salesPart.goods.service.IGoodsDescService;
 import org.springblade.core.boot.ctrl.BladeController;
@@ -117,13 +114,14 @@ public class GoodsDescController extends BladeController {
 			.eq(PjGoodsDesc::getSalesCompanyId, AuthUtil.getDeptId())//公司
 			.like(StringUtils.isNotBlank(goods.getSpecificationAndModel()), PjGoodsDesc::getSpecificationAndModel, goods.getSpecificationAndModel())//规格型号
 			.like(StringUtils.isNotBlank(goods.getBrandItem()), PjGoodsDesc::getBrandItem, goods.getBrandItem())//花纹
-			.like(StringUtils.isNotBlank(goods.getCname()), PjGoodsDesc::getCname, goods.getCname())//商品名称
 			.eq(ObjectUtils.isNotEmpty(goods.getBrandId()), PjGoodsDesc::getBrandId, goods.getBrandId())//品牌
 			.like(ObjectUtils.isNotEmpty(goods.getBrandName()), PjGoodsDesc::getBrandName, goods.getBrandName())
 			.like(ObjectUtils.isNotEmpty(goods.getCode()), PjGoodsDesc::getCode, goods.getCode())//编码
-			.like(ObjectUtils.isNotEmpty(goods.getCnameInt()), PjGoodsDesc::getCnameInt, goods.getCnameInt())//快捷拼命查询
 			.eq(ObjectUtils.isNotEmpty(goods.getWhether()), PjGoodsDesc::getWhether, goods.getWhether())//是否管理到批次号
 			.eq(ObjectUtils.isNotEmpty(goods.getExplosionProof()), PjGoodsDesc::getExplosionProof, goods.getExplosionProof());//是否防爆
+		if (ObjectUtil.isNotEmpty(goods.getCname())){
+			lambdaQueryWrapper.and(i -> i.like(PjGoodsDesc::getCname, goods.getCname()).or().like(PjGoodsDesc::getCnameInt, goods.getCname()));
+		}
 		IPage<PjGoodsDesc> pages = goodsService.page(Condition.getPage(query),lambdaQueryWrapper);
 
 		pages.getRecords().forEach(e -> {
@@ -265,13 +263,14 @@ public class GoodsDescController extends BladeController {
 			.eq(PjGoodsDesc::getIsDeleted, 0)
 			.like(StringUtils.isNotBlank(goods.getSpecificationAndModel()), PjGoodsDesc::getSpecificationAndModel, goods.getSpecificationAndModel())//规格型号
 			.like(StringUtils.isNotBlank(goods.getBrandItem()), PjGoodsDesc::getBrandItem, goods.getBrandItem())//花纹
-			.like(StringUtils.isNotBlank(goods.getCname()), PjGoodsDesc::getCname, goods.getCname())//商品名称
 			.eq(ObjectUtils.isNotEmpty(goods.getBrandId()), PjGoodsDesc::getBrandId, goods.getBrandId())//品牌
 			.like(ObjectUtils.isNotEmpty(goods.getBrandName()), PjGoodsDesc::getBrandName, goods.getBrandName())
 			.eq(ObjectUtils.isNotEmpty(goods.getSalesCompanyId()), PjGoodsDesc::getSalesCompanyId, goods.getSalesCompanyId())//所属公司
 			.eq(ObjectUtils.isNotEmpty(goods.getWhether()), PjGoodsDesc::getWhether, goods.getWhether())//是否管理到批次号
 			.eq(ObjectUtils.isNotEmpty(goods.getExplosionProof()), PjGoodsDesc::getExplosionProof, goods.getExplosionProof());//是否防爆
-
+		if (ObjectUtil.isNotEmpty(goods.getCname())){
+			lambdaQueryWrapper.and(i -> i.like(PjGoodsDesc::getCname, goods.getCname()).or().like(PjGoodsDesc::getCnameInt, goods.getCname()));
+		}
 		List<PjGoodsDesc> list = goodsService.list(lambdaQueryWrapper);
 		list.forEach(e -> {
 			String typeId = e.getGoodsTypeId();
@@ -312,8 +311,10 @@ public class GoodsDescController extends BladeController {
 		LambdaQueryWrapper<PjGoodsDesc> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 		lambdaQueryWrapper.eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
 			.eq(PjGoodsDesc::getIsDeleted, 0)
-			.eq(PjGoodsDesc::getSalesCompanyId, AuthUtil.getDeptId())
-			.like(StringUtils.isNotBlank(goods.getCname()), PjGoodsDesc::getCname, goods.getCname());//商品名称
+			.eq(PjGoodsDesc::getSalesCompanyId, AuthUtil.getDeptId());
+		if (ObjectUtil.isNotEmpty(goods.getCname())){//商品名称
+			lambdaQueryWrapper.and(i -> i.like(PjGoodsDesc::getCname, goods.getCname()).or().like(PjGoodsDesc::getCnameInt, goods.getCname()));
+		}
 		List<PjGoodsDesc> list = goodsService.list(lambdaQueryWrapper);
 
 		return R.data(list);

+ 16 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/goods/service/impl/GoodsDescServiceImpl.java

@@ -210,6 +210,22 @@ public class GoodsDescServiceImpl extends ServiceImpl<GoodsDescMapper, PjGoodsDe
 			productLaunchService.updateBatchById(list);
 		}
 
+		//修改库存商品信息
+		List<PjStockDesc> stockDescList = stockDescService.list(new QueryWrapper<PjStockDesc>().eq("tenant_id", AuthUtil.getTenantId())
+			.eq("is_deleted", 0).eq("sales_company_id", goodsDesc.getSalesCompanyId()).eq("goods_id", goodsDesc.getId()));
+		if (ObjectUtil.isNotEmpty(stockDescList)){
+			stockDescList.forEach(stock -> {
+				stock.setCname(goodsDesc.getCname());
+				stock.setCode(goodsDesc.getCode());
+				stock.setTypeno(goodsDesc.getSpecificationAndModel());
+				stock.setBrandId(goodsDesc.getBrandId());
+				stock.setBrandName(goodsDesc.getBrandName());
+				stock.setBrandItem(goodsDesc.getBrandItem());
+				stock.setProductDescription(goodsDesc.getGoodsDescription());
+			});
+			stockDescService.updateBatchById(stockDescList);
+		}
+
 		return goodsDesc;
 	}
 

+ 64 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/feign/PJOrderClient.java

@@ -0,0 +1,64 @@
+package org.springblade.salesPart.order.feign;
+
+import lombok.AllArgsConstructor;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.salesPart.entity.PjOrder;
+import org.springblade.salesPart.feign.IPJOrderClient;
+import org.springblade.salesPart.order.service.IOrderService;
+import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
+
+@NonDS
+@ApiIgnore()
+@RestController
+@AllArgsConstructor
+public class PJOrderClient implements IPJOrderClient {
+
+	private final IOrderService orderService;
+
+	@Override
+	public void updateOrder(PjOrder order) {
+
+	}
+
+	@Override
+	public R<PjOrder> getByOrder(PjOrder order) {
+		return null;
+	}
+
+	@Override
+	public PjOrder getByIdOrder(Long id) {
+		return orderService.getById(id);
+	}
+
+	/**
+	 * 审核中
+	 * @param id
+	 * @return
+	 */
+	@Override
+	public R orderUnderReview(Long id) {
+		return orderService.underReview(id);
+	}
+
+	/**
+	 * 审核驳回
+	 * @param id
+	 * @return
+	 */
+	@Override
+	public R orderPassCancel(Long id) {
+		return orderService.passCancel(id);
+	}
+
+	/**
+	 * 审核通过
+	 * @param id
+	 * @return
+	 */
+	@Override
+	public R orderPassCheck(Long id) {
+		return orderService.passCheck(id);
+	}
+}

+ 56 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/productLaunch/controller/ProductLaunchController.java

@@ -323,4 +323,60 @@ public class ProductLaunchController extends BladeController {
 		return productLaunchService.addToCart(shoppingCart);
 	}
 
+	/**
+	 * 上架下拉list
+	 */
+	@GetMapping("/launchList")
+	@ApiOperationSupport(order = 16)
+	@ApiOperation(value = "上架下拉list", notes = "传入productLaunch")
+	public R<List<PjProductLaunch>> launchList(PjProductLaunch productLaunch) {
+		LambdaQueryWrapper<PjProductLaunch> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(PjProductLaunch::getTenantId, AuthUtil.getTenantId())
+			.eq(PjProductLaunch::getIsDeleted, 0)
+			.eq(PjProductLaunch::getUpAndDownShelves,1)
+			.eq(PjProductLaunch::getSalesCompanyId, AuthUtil.getDeptId())//公司
+			.ne(PjProductLaunch::getWhetherShare, 1)
+			.orderByAsc(PjProductLaunch::getBillType);
+
+		if (ObjectUtil.isNotEmpty(productLaunch.getCname())){
+			lambdaQueryWrapper.and(i -> i.like(PjProductLaunch::getCname, productLaunch.getCname()).or().like(PjProductLaunch::getCnameInt, productLaunch.getCname()));
+		}
+
+		List<PjProductLaunch> launchList = productLaunchService.list(lambdaQueryWrapper);
+
+		return R.data(launchList);
+	}
+
+	/**
+	 * 下拉详情
+	 */
+	@GetMapping("/launchDetail")
+	@ApiOperationSupport(order = 17)
+	@ApiOperation(value = "下拉详情", notes = "传入productLaunch")
+	public R<PjProductLaunch> launchDetail(@RequestParam("id") Long id, @RequestParam("corpId") Long corpId) {
+		PjProductLaunch productLaunch = productLaunchService.getById(id);
+
+		PjCorpsDesc corpsDesc = corpsDescService.getCorpsDesc(corpId);
+		if (ObjectUtil.isEmpty(corpsDesc)){
+			throw new RuntimeException("客户信息异常");
+		}
+
+		if (StringUtils.isNotBlank(corpsDesc.getPriceSystem())){
+			if ("售价1".equals(corpsDesc.getPriceSystem())){
+				productLaunch.setMallPrice(productLaunch.getPriceOne());
+			}else if ("售价2".equals(corpsDesc.getPriceSystem())){
+				productLaunch.setMallPrice(productLaunch.getPriceTwo());
+			}else if ("售价3".equals(corpsDesc.getPriceSystem())){
+				productLaunch.setMallPrice(productLaunch.getPriceThree());
+			}else if ("售价4".equals(corpsDesc.getPriceSystem())){
+				productLaunch.setMallPrice(productLaunch.getPriceFour());
+			}else {
+				productLaunch.setMallPrice(productLaunch.getPriceOne());
+			}
+		}else {
+			productLaunch.setMallPrice(productLaunch.getPriceOne());
+		}
+		return R.data(productLaunch);
+	}
+
 }

+ 3 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/service/impl/ShipServiceImpl.java

@@ -570,6 +570,9 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 					.eq(PjStockDesc::getGoodsId, goodsDesc.getId())
 					.eq(PjStockDesc::getStorageId, ship.getStorageId());
 				if (ObjectUtil.isNotEmpty(goodsDesc.getWhether()) && goodsDesc.getWhether().equals("1")){//管理批次号
+					if (ObjectUtil.isEmpty(item.getDot())){
+						throw new RuntimeException(goodsDesc.getCname() + "已开启批次号管理,请填写批次号");
+					}
 					lambdaQueryWrapper.eq(PjStockDesc::getDot, item.getDot());
 				}else {
 					lambdaQueryWrapper.and(i -> i.eq(PjStockDesc::getDot, "").or().isNull(PjStockDesc::getDot));

+ 6 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/stock/controller/StockDescController.java

@@ -17,6 +17,7 @@
 package org.springblade.salesPart.stock.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -99,6 +100,7 @@ public class StockDescController extends BladeController {
 			.orderByAsc(PjStockDesc::getCreateTime);
 
 		IPage<PjStockDesc> pages = stockDescService.page(Condition.getPage(query), lambdaQueryWrapper);
+
 		return R.data(pages);
 	}
 
@@ -189,7 +191,10 @@ public class StockDescController extends BladeController {
 			.eq(PjStockDesc::getIsDeleted, 0)
 			.eq(PjStockDesc::getSalesCompanyId, AuthUtil.getDeptId())//公司
 			.eq(PjStockDesc::getStorageId, stockDesc.getStorageId())
-			.eq(PjStockDesc::getGoodsId, stockDesc.getGoodsId());
+			.eq(PjStockDesc::getGoodsId, stockDesc.getGoodsId())
+			.ne(PjStockDesc::getDot, "")
+			.isNotNull(PjStockDesc::getDot);
+
 		List<PjStockDesc> list = stockDescService.list(lambdaQueryWrapper);
 		return R.data(list);
 	}