Przeglądaj źródła

2023年6月20日08:30:05

纪新园 2 lat temu
rodzic
commit
be017b6630
24 zmienionych plików z 510 dodań i 170 usunięć
  1. 18 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjOrderItems.java
  2. 6 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjShip.java
  3. 35 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/feign/IPJCorpClient.java
  4. 9 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/feign/IPJOrderClient.java
  5. 18 7
      blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClient.java
  6. 5 0
      blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java
  7. 19 3
      blade-service/blade-check/src/main/java/org/springblade/check/service/impl/AuditProecessServiceImpl.java
  8. 1 1
      blade-service/blade-pay/src/main/java/org/springblade/pay/tonglianPayment/feign/PaymentClient.java
  9. 44 0
      blade-service/blade-pay/src/main/java/org/springblade/pay/tonglianPayment/service/impl/PaymentServiceImpl.java
  10. 31 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/fegin/PJCorprClient.java
  11. 7 5
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/service/impl/CorpsAddrServiceImpl.java
  12. 5 4
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/OrderController.java
  13. 58 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/feign/PJOrderClient.java
  14. 2 1
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/impl/OrderServiceImpl.java
  15. 58 51
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/productLaunch/controller/ProductLaunchController.java
  16. 134 70
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/productLaunch/service/impl/ProductLaunchServiceImpl.java
  17. 1 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/controller/ShipController.java
  18. 12 11
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/service/impl/ShipServiceImpl.java
  19. 7 10
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/shoppingCart/service/impl/ShoppingCartServiceImpl.java
  20. 12 0
      blade-service/blade-system/src/main/java/org/springblade/system/feign/SysClient.java
  21. 1 0
      blade-service/blade-system/src/main/java/org/springblade/system/service/IDeptService.java
  22. 15 4
      blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DeptServiceImpl.java
  23. 3 0
      blade-service/blade-user/src/main/java/org/springblade/system/user/feign/UserClient.java
  24. 9 3
      blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserSearchServiceImpl.java

+ 18 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjOrderItems.java

@@ -228,4 +228,22 @@ public class PjOrderItems implements Serializable {
 	@ApiModelProperty(value = "总金额")
 	private BigDecimal totalAmount;
 
+	/**
+	 * 上架管理id
+	 */
+	@ApiModelProperty(value = "上架管理id")
+	private Long productLaunchId;
+
+	/**
+	 * 共享公司id
+	 */
+	@ApiModelProperty(value = "共享公司id")
+	private Long sharedCompanyId;
+
+	/**
+	 * 共享公司名称
+	 */
+	@ApiModelProperty(value = "共享公司名称")
+	private String sharedCompanyName;
+
 }

+ 6 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjShip.java

@@ -258,4 +258,10 @@ public class PjShip implements Serializable {
 	 */
 	@ApiModelProperty(value = "来源任务id")
 	private Long taskId;
+
+	/**
+	 * 是否存在明细
+	 */
+	@TableField(exist = false)
+	private String item;
 }

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

@@ -0,0 +1,35 @@
+package org.springblade.salesPart.feign;
+
+import org.springblade.core.tool.api.R;
+import org.springblade.salesPart.entity.PjCorpsDesc;
+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;
+
+import java.util.List;
+
+
+/**
+ * @author caifc
+ * @date 2021-10-21 22:28
+ */
+@FeignClient(
+	value = "blade-sales-part"
+)
+public interface IPJCorpClient {
+	String API_PREFIX = "/blade-sales-part";
+	String GET_BY_CORP = API_PREFIX + "/getByCorp";
+
+	/**
+	 * 根据id查询订单
+	 *
+	 * @param id
+	 * @return
+	 */
+	@GetMapping(GET_BY_CORP)
+	PjCorpsDesc getByCorp(@RequestParam("id") Long id);
+
+}

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

@@ -27,6 +27,7 @@ public interface IPJOrderClient {
 	String ORDER_UNDER_REVIEW = API_PREFIX + "/orderUnderReview";
 	String ORDER_PASS_CANCEL = API_PREFIX + "/orderPassCancel";
 	String ORDER_PASS_CHECK = API_PREFIX + "/orderPassCheck";
+	String UPDATE_BY_SRCORGID = API_PREFIX + "/updateBySrcOrgId";
 
 
 	/**
@@ -80,4 +81,12 @@ public interface IPJOrderClient {
 	 */
 	@PostMapping(ORDER_PASS_CHECK)
 	R orderPassCheck(@RequestParam("id") Long id);
+
+	/**
+	 * 支付完成修改上架库存
+	 * @param srcOrgId
+	 * @return
+	 */
+	@PostMapping(UPDATE_BY_SRCORGID)
+	R updateBySrcOrgId(@RequestParam("srcOrgId") String srcOrgId);
 }

+ 18 - 7
blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClient.java

@@ -43,6 +43,7 @@ public interface ISysClient {
 	String DEPT_IDS_FUZZY = API_PREFIX + "/dept-ids-fuzzy";
 	String DEPT_NAME = API_PREFIX + "/dept-name";
 	String DEPT_BY_NAME = API_PREFIX + "/getDeptIByName";
+	String DEPT_BY_NAME_LIST = API_PREFIX + "/getDeptIByNameList";
 	String DEPT_NAMES = API_PREFIX + "/dept-names";
 	String DEPT_CHILD = API_PREFIX + "/dept-child";
 	String POST = API_PREFIX + "/post";
@@ -61,8 +62,8 @@ public interface ISysClient {
 	String PARAM = API_PREFIX + "/param";
 	String PARAM_VALUE = API_PREFIX + "/param-value";
 	String REGION = API_PREFIX + "/region";
-	String LIST_ROLE_ALIAS=API_PREFIX+"/listRoleAlias";
-	String GET_ROLE_ID_BY_ALIAS=API_PREFIX+"/getRoleByAlias";
+	String LIST_ROLE_ALIAS = API_PREFIX + "/listRoleAlias";
+	String GET_ROLE_ID_BY_ALIAS = API_PREFIX + "/getRoleByAlias";
 	String DEPT_BY_IDS = API_PREFIX + "/selectByDeptIds";
 	String TENANT_ID_BY_APP_ID = API_PREFIX + "/tenantIdByAppId";
 	String GET_PARAM_SERVICE = API_PREFIX + "/getParamService";
@@ -70,13 +71,13 @@ public interface ISysClient {
 
 	/**
 	 * 通过租户id获取全部租户别名
-	 * */
-     @GetMapping(LIST_ROLE_ALIAS)
-	 R<List<Role>> listRoleAlias();
+	 */
+	@GetMapping(LIST_ROLE_ALIAS)
+	R<List<Role>> listRoleAlias();
 
 	/**
 	 * 通过角色别名获
-	 * */
+	 */
 	@GetMapping(GET_ROLE_ID_BY_ALIAS)
 	R<Long> getRoleByAlias(@RequestParam("alias") String alias);
 
@@ -323,10 +324,20 @@ public interface ISysClient {
 	/**
 	 * 配件获取所属公司
 	 *
-	 * @param tenantId  租户id
+	 * @param tenantId 租户id
 	 * @param deptName 所属公司
 	 * @return
 	 */
 	@GetMapping(DEPT_BY_NAME)
 	R<Dept> getDeptIByName(@RequestParam("tenantId") String tenantId, @RequestParam("deptName") String deptName);
+
+	/**
+	 * 配件获取所属公司
+	 *
+	 * @param tenantId 租户id
+	 * @param deptName 所属公司
+	 * @return
+	 */
+	@GetMapping(DEPT_BY_NAME_LIST)
+	R<List<Dept>> getDeptListIByName(@RequestParam("tenantId") String tenantId, @RequestParam("deptName") String deptName);
 }

+ 5 - 0
blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java

@@ -175,4 +175,9 @@ public class ISysClientFallback implements ISysClient {
 		return R.fail("获取数据失败");
 	}
 
+	@Override
+	public R<List<Dept>> getDeptListIByName(String tenantId, String deptName) {
+		return R.fail("获取数据失败");
+	}
+
 }

+ 19 - 3
blade-service/blade-check/src/main/java/org/springblade/check/service/impl/AuditProecessServiceImpl.java

@@ -61,7 +61,9 @@ 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.PjCorpsDesc;
 import org.springblade.salesPart.entity.PjOrder;
+import org.springblade.salesPart.feign.IPJCorpClient;
 import org.springblade.salesPart.feign.IPJOrderClient;
 import org.springblade.school.feign.ISalaryClient;
 import org.springblade.system.feign.ISysClient;
@@ -139,6 +141,8 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
 
 	private final IPJOrderClient ipjOrderClient;//配件批发
 
+	private final IPJCorpClient ipjCorpClient;//配件批发
+
 	@Override
 	public IPage<AuditProecessVO> selectAuditProecessPage(IPage<AuditProecessVO> page, AuditProecessVO auditProecess) {
 		return page.setRecords(baseMapper.selectAuditProecessPage(page, auditProecess));
@@ -208,9 +212,16 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
 				SimpleDateFormat simpleDateFormat = new SimpleDateFormat();
 				String corpName = null;
 				if (auditProecessDTO.getCorpId() != null) {
-					R<CorpsDesc> corpMessage = iCorpsDescClient.getCorpMessage(auditProecessDTO.getCorpId());
-					if (corpMessage.isSuccess() && corpMessage.getData() != null) {
-						corpName = corpMessage.getData().getCname();
+					if ("883868".equals(AuthUtil.getTenantId())){
+						PjCorpsDesc corpMessage = ipjCorpClient.getByCorp(auditProecessDTO.getCorpId());
+						if (corpMessage != null) {
+							corpName = corpMessage.getCname();
+						}
+					}else{
+						R<CorpsDesc> corpMessage = iCorpsDescClient.getCorpMessage(auditProecessDTO.getCorpId());
+						if (corpMessage.isSuccess() && corpMessage.getData() != null) {
+							corpName = corpMessage.getData().getCname();
+						}
 					}
 				}
 				String orderDate = null;
@@ -288,6 +299,11 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
 						"" + auditProecessDTO.getBillNo() + "," + "订单金额:" + auditProecessDTO.getAmount() + ",请审核。"
 						+ " 提交人:" + auditProecessDTO.getSendName() + "  " + "提交时间" + simpleDateFormat.format(auditProecessDTO.getSendTime())
 					);
+				}else if ("退款审批".equals(auditProecessDTO.getProcessType())) {
+					message.setMessageBody("您有新的售后审核,客户名:" + corpName + "," + "订单号:" +
+						"" + auditProecessDTO.getBillNo() + "," + "订单金额:" + auditProecessDTO.getAmount() + ",请审核。"
+						+ " 提交人:" + auditProecessDTO.getSendName() + "  " + "提交时间" + simpleDateFormat.format(auditProecessDTO.getSendTime())
+					);
 				}
 
 				message.setUrl("/approveData/index");

+ 1 - 1
blade-service/blade-pay/src/main/java/org/springblade/pay/tonglianPayment/feign/PaymentClient.java

@@ -101,7 +101,7 @@ public class PaymentClient implements IPaymentClient {
 			WechatMark wechatMark = new WechatMark();
 			wechatMark.setCreateTime(new Date());
 			wechatMark.setType("退款");
-			wechatMark.setSrcBillNo(paymentDTO.getOldreqsn());
+			wechatMark.setSrcBillNo(paymentDTO.getReqsn());
 			wechatMark.setSerialNumber(paymentDTO.getOldtrxid());
 			wechatMark.setAmount(new BigDecimal(paymentDTO.getTrxamt()));
 			Map<String, String> map = service.refund(paymentDTO.getTrxamt(), paymentDTO.getReqsn(), paymentDTO.getOldtrxid(), paymentDTO.getOldreqsn(), paymentDTO.getCusId(),

+ 44 - 0
blade-service/blade-pay/src/main/java/org/springblade/pay/tonglianPayment/service/impl/PaymentServiceImpl.java

@@ -1,16 +1,21 @@
 package org.springblade.pay.tonglianPayment.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import lombok.AllArgsConstructor;
 import org.jetbrains.annotations.NotNull;
 import org.springblade.client.entity.CorpsDesc;
 import org.springblade.client.entity.FeesDesc;
 import org.springblade.client.entity.GoodsDesc;
+import org.springblade.client.entity.Message;
 import org.springblade.client.feign.ICorpsDescClient;
 import org.springblade.client.feign.IFeesDescClient;
 import org.springblade.client.feign.IGoodsDescClient;
+import org.springblade.client.feign.IMessageClient;
 import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.finance.dto.ApplyDTO;
@@ -35,6 +40,7 @@ import org.springblade.salesPart.feign.IPJOrderClient;
 import org.springblade.stock.entity.StockGoods;
 import org.springblade.stock.feign.IStockGoodsClient;
 import org.springblade.stock.vo.StockGoodsVO;
+import org.springblade.system.feign.ISysClient;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.stereotype.Service;
@@ -46,6 +52,8 @@ import java.io.UnsupportedEncodingException;
 import java.math.BigDecimal;
 import java.math.MathContext;
 import java.math.RoundingMode;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
@@ -90,6 +98,10 @@ public class PaymentServiceImpl implements IPaymentService {
 
 	private final @NotNull IStockGoodsClient stockGoodsClient;
 
+	private final IMessageClient messageClient;//消息
+
+	private final ISysClient sysClient;
+
 
 	@Override
 	public R getWeChatPayment(Order order) {
@@ -363,6 +375,38 @@ public class PaymentServiceImpl implements IPaymentService {
 							selectOrder.setActualPaymentStatus(2);
 							selectOrder.setStatus(OrderTypeEnum.XSDQR.getType());
 							selectOrder.setXcxStatus(OrderTypeEnum.XSDFH.getType());
+							ipjOrderClient.updateBySrcOrgId(selectOrder.getId()+"");
+							//给角色为财务的人发送消息
+							R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "销售");
+							if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
+								LocalDateTime now = LocalDateTime.now();
+								DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+								String formatted = now.format(formatter);
+								R<List<User>> userList = userClient.listUserByRoleId(Long.valueOf(clientDeptIds.getData()));
+								if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
+									for (User datum : userList.getData()) {
+										//循环发送消息
+										Message sendMessage = new Message();
+										sendMessage.setParameter(selectOrder.getId()+"");
+										sendMessage.setUserName(AuthUtil.getUserName());
+										sendMessage.setUserId(AuthUtil.getUserId());
+										sendMessage.setToUserId(datum.getId());
+										sendMessage.setToUserName(datum.getName());
+										sendMessage.setMessageType(1);
+										sendMessage.setTenantId(AuthUtil.getTenantId());
+										sendMessage.setCreateUser(AuthUtil.getUserId());
+										sendMessage.setCreateTime(new Date());
+										sendMessage.setUrl("/tirePartsMall/salesManagement/saleOrder/index");
+										sendMessage.setPageLabel("销售订单");
+										sendMessage.setPageStatus("this.$store.getters.domSaleStatus");
+										sendMessage.setMessageBody("您有新的订单待处理!单号:" + selectOrder.getOrdNo() + "时间:" +formatted );
+										R save = messageClient.save(sendMessage);
+										if (!save.isSuccess()) {
+											throw new SecurityException("发送消息失败");
+										}
+									}
+								}
+							}
 						}
 						ipjOrderClient.updateOrder(re.getData());
 						wechatMark.setCause("订单" + AnalysisMapUtils.getString("cusorderid", params) + "支付成功");

+ 31 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/fegin/PJCorprClient.java

@@ -0,0 +1,31 @@
+package org.springblade.salesPart.corps.fegin;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import lombok.AllArgsConstructor;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.salesPart.corps.service.ICorpsDescService;
+import org.springblade.salesPart.entity.PjCorpsDesc;
+import org.springblade.salesPart.entity.PjOrder;
+import org.springblade.salesPart.feign.IPJCorpClient;
+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;
+
+import java.util.List;
+
+@NonDS
+@ApiIgnore()
+@RestController
+@AllArgsConstructor
+public class PJCorprClient implements IPJCorpClient {
+
+	private final ICorpsDescService corpsDescService;
+
+
+	@Override
+	public PjCorpsDesc getByCorp(Long id) {
+		return corpsDescService.getById(id);
+	}
+}

+ 7 - 5
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/service/impl/CorpsAddrServiceImpl.java

@@ -18,6 +18,7 @@ package org.springblade.salesPart.corps.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
@@ -85,8 +86,7 @@ public class CorpsAddrServiceImpl extends ServiceImpl<CorpsAddrMapper, PjCorpsAd
 		} else {
 			throw new SecurityException("数据异常请联系管理员");
 		}
-
-		if (corpsAddr.getDefaultAddres().equals("1")){
+		if ("1".equals(corpsAddr.getDefaultAddres())){
 			LambdaQueryWrapper<PjCorpsAddr> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 			lambdaQueryWrapper.eq(PjCorpsAddr::getTenantId, AuthUtil.getTenantId())
 				.eq(PjCorpsAddr::getIsDeleted, 0)
@@ -94,11 +94,13 @@ public class CorpsAddrServiceImpl extends ServiceImpl<CorpsAddrMapper, PjCorpsAd
 				.eq(PjCorpsAddr::getDefaultAddres, "1");
 
 			PjCorpsAddr pjCorpsAddr = baseMapper.selectOne(lambdaQueryWrapper);
-			pjCorpsAddr.setDefaultAddres("0");
-			baseMapper.updateById(pjCorpsAddr);
+			if (ObjectUtils.isNotNull(pjCorpsAddr)){
+				pjCorpsAddr.setDefaultAddres("0");
+				baseMapper.updateById(pjCorpsAddr);
+			}
 		}
-
 		if (corpsAddr.getId() == null) {
+
 			corpsAddr.setCreateTime(new Date());
 			corpsAddr.setCreateUser(AuthUtil.getUserId());
 			baseMapper.insert(corpsAddr);

+ 5 - 4
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/OrderController.java

@@ -102,13 +102,13 @@ public class OrderController extends BladeController {
 			.like(ObjectUtils.isNotEmpty(order.getSrcOrdNo()), PjOrder::getSrcOrdNo, order.getSrcOrdNo())//来源单号
 			.like(ObjectUtils.isNotEmpty(order.getOrdNo()), PjOrder::getOrdNo, order.getOrdNo())//来源单号
 			.like(ObjectUtils.isNotEmpty(order.getBusinessSource()), PjOrder::getBusinessSource, order.getBusinessSource())//来源
-			.eq(ObjectUtils.isNotEmpty(order.getStatus()), PjOrder::getStatus, order.getStatus())//状态
-			.eq(PjOrder::getActualPaymentStatus, 2);//状态
+			.eq(ObjectUtils.isNotEmpty(order.getStatus()), PjOrder::getStatus, order.getStatus());//状态
 
 		if (order.getCreateTimeList() != null && order.getCreateTimeList().size() > 1) {//创建日期
 			lambdaQueryWrapper.ge(PjOrder::getCreateTime, order.getCreateTimeList().get(0));
 			lambdaQueryWrapper.le(PjOrder::getCreateTime, order.getCreateTimeList().get(1));
 		}
+		lambdaQueryWrapper.apply("(( business_source = '外部销售' AND actual_payment_status = 2 ) OR (business_source = '内部销售' AND FIND_IN_SET( actual_payment_status, '0,1,2' )))");
 		lambdaQueryWrapper.orderByDesc(PjOrder::getCreateTime);
 
 		IPage<PjOrder> pages = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
@@ -269,11 +269,12 @@ public class OrderController extends BladeController {
 			.eq(PjOrder::getBusinessSource, OrderTypeEnum.XCX)
 			.eq(PjOrder::getSalesCompanyId, AuthUtil.getDeptId())//公司
 			.eq(ObjectUtils.isNotEmpty(order.getXcxStatus()), PjOrder::getXcxStatus, order.getXcxStatus())//状态
+			.eq(ObjectUtils.isNotEmpty(order.getActualPaymentStatus()), PjOrder::getActualPaymentStatus, order.getActualPaymentStatus())//状态
 			.eq(ObjectUtils.isNotEmpty(order.getSalesCompanyName()), PjOrder::getSalesCompanyName, order.getSalesCompanyName())//所属公司
 			.and(ObjectUtils.isNotEmpty(order.getRetrieval()), i -> i.like(PjOrder::getGoodsNameJoin, order.getRetrieval())
 				.or().like(PjOrder::getShortcutJoin, order.getRetrieval())
 				.apply(ObjectUtils.isNotEmpty(order.getXcxStatus()), "find_in_set(xcx_status,'" + order.getXcxStatus() + "')")
-				.orderByAsc(PjOrder::getCreateTime));
+				.orderByDesc(PjOrder::getCreateTime));
 
 		IPage<PjOrder> pages = orderService.page(Condition.getPage(query), Condition.getQueryWrapper(order));
 
@@ -391,7 +392,7 @@ public class OrderController extends BladeController {
 			//公司
 			.eq(PjOrder::getSalesCompanyId, AuthUtil.getDeptId())
 			.eq(PjOrder::getActualPaymentStatus, 1)
-			.eq(PjOrder::getCreateUser, AuthUtil.getUserId());
+			.eq(PjOrder::getCreateUser, AuthUtil.getUserId()).orderByDesc(PjOrder::getCreateTime);
 		List<PjOrder> list = orderService.list(lambdaQueryWrapper);
 
 		//按照所属公司分组

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

@@ -1,15 +1,26 @@
 package org.springblade.salesPart.order.feign;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import lombok.AllArgsConstructor;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tenant.annotation.NonDS;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.ObjectUtil;
+import org.springblade.salesPart.entity.PjGoodsDesc;
 import org.springblade.salesPart.entity.PjOrder;
+import org.springblade.salesPart.entity.PjOrderItems;
+import org.springblade.salesPart.entity.PjProductLaunch;
 import org.springblade.salesPart.feign.IPJOrderClient;
+import org.springblade.salesPart.order.service.IOrderItemsService;
 import org.springblade.salesPart.order.service.IOrderService;
+import org.springblade.salesPart.productLaunch.service.IProductLaunchService;
+import org.springframework.beans.BeanUtils;
 import org.springframework.web.bind.annotation.RestController;
 import springfox.documentation.annotations.ApiIgnore;
 
+import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 
 @NonDS
@@ -20,6 +31,10 @@ public class PJOrderClient implements IPJOrderClient {
 
 	private final IOrderService orderService;
 
+	private final IOrderItemsService orderItemsService;
+
+	private final IProductLaunchService productLaunchService;
+
 	@Override
 	public void updateOrder(List<PjOrder> order) {
 		orderService.updateBatchById(order);
@@ -71,4 +86,47 @@ public class PJOrderClient implements IPJOrderClient {
 	public R orderPassCheck(Long id) {
 		return orderService.passCheck(id);
 	}
+
+	@Override
+	public R updateBySrcOrgId(String srcOrgId) {
+		List<PjOrderItems> shoppingCartList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>().eq(PjOrderItems::getPid, srcOrgId));
+		shoppingCartList.forEach(e -> {
+			//修改上架管理库存
+			PjProductLaunch productLaunch = productLaunchService.getById(e.getProductLaunchId());
+			if (ObjectUtil.isNotEmpty(productLaunch)) {
+				if (ObjectUtil.isNotEmpty(e.getGoodsNum())) {
+					if (e.getGoodsNum().compareTo(BigDecimal.ZERO) > 0) {
+						productLaunch.setInventory(productLaunch.getInventory().subtract(e.getGoodsNum()));
+						productLaunchService.updateById(productLaunch);
+					}
+				} else {
+					e.setGoodsNum(BigDecimal.ZERO);
+				}
+			}
+
+			//修改共享仓的上架管理库存
+			LambdaQueryWrapper<PjProductLaunch> queryWrapper = new LambdaQueryWrapper<>();
+			queryWrapper.eq(PjProductLaunch::getTenantId, AuthUtil.getTenantId())
+				.eq(PjProductLaunch::getIsDeleted, 0)
+				.eq(PjProductLaunch::getGoodsId, e.getGoodsId());
+
+			if (productLaunch.getBillType() == 0) {
+				queryWrapper.eq(PjProductLaunch::getSourceCompanyId, e.getSharedCompanyId())
+					.eq(PjProductLaunch::getBillType, 1);
+			} else {
+				queryWrapper.eq(PjProductLaunch::getSalesCompanyId, e.getSharedCompanyId())
+					.eq(PjProductLaunch::getBillType, 0);
+			}
+
+			List<PjProductLaunch> launchList = productLaunchService.list(queryWrapper);
+
+			if (ObjectUtil.isNotEmpty(launchList)) {
+				launchList.forEach(launch -> {
+					launch.setInventory(launch.getInventory().subtract(e.getGoodsNum()));
+					productLaunchService.updateById(launch);
+				});
+			}
+		});
+		return R.data(shoppingCartList);
+	}
 }

+ 2 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/impl/OrderServiceImpl.java

@@ -619,7 +619,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 				.eq("tenant_id", AuthUtil.getTenantId()));
 			if (ObjectUtil.isNotEmpty(list)) {
 				for(PjOrderItems e:list) {
-					if (ObjectUtils.isNotNull(e.getSendNum()) || e.getSendNum().compareTo(new BigDecimal("0.00")) == 0){
+					if (ObjectUtils.isNull(e.getSendNum()) || e.getSendNum().compareTo(new BigDecimal("0.00")) == 0){
 						continue;
 					}else{
 						//根据销售明细创建入库工单明细
@@ -633,6 +633,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 						shipItems.setCreateUser(AuthUtil.getUserId());
 						shipItems.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
 						shipItems.setSendNum(e.getSendNum());
+						shipItems.setPrice(shipItems.getCostprie());
 						shipItemsMapper.insert(shipItems);
 					}
 				}

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

@@ -18,19 +18,16 @@ package org.springblade.salesPart.productLaunch.controller;
 
 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.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
-import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import lombok.AllArgsConstructor;
-
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.Valid;
-
-import oracle.jdbc.proxy.annotation.Post;
+import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.excel.util.ExcelUtil;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
@@ -40,18 +37,21 @@ import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.salesPart.corps.service.ICorpsAttnService;
 import org.springblade.salesPart.corps.service.ICorpsDescService;
-import org.springblade.salesPart.entity.*;
-import org.springblade.salesPart.excel.GoodsExcel;
+import org.springblade.salesPart.entity.PjCorpsAttn;
+import org.springblade.salesPart.entity.PjCorpsDesc;
+import org.springblade.salesPart.entity.PjProductLaunch;
+import org.springblade.salesPart.entity.PjProductLaunchFiles;
 import org.springblade.salesPart.excel.ProductLaunchImportExcel;
 import org.springblade.salesPart.productLaunch.service.IProductLaunchFilesService;
+import org.springblade.salesPart.productLaunch.service.IProductLaunchService;
 import org.springblade.salesPart.vo.ProductLaunchVO;
-import org.springblade.system.user.entity.User;
+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.productLaunch.service.IProductLaunchService;
-import org.springblade.core.boot.ctrl.BladeController;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -73,6 +73,7 @@ public class ProductLaunchController extends BladeController {
 	private final IProductLaunchFilesService productLaunchFilesService;
 	private final ICorpsAttnService corpsAttnService;//客户联系人
 	private final ICorpsDescService corpsDescService;//客户
+	private final ISysClient iSysClient;
 
 	/**
 	 * 详情
@@ -101,14 +102,22 @@ public class ProductLaunchController extends BladeController {
 			.like(ObjectUtils.isNotEmpty(productLaunch.getSpecificationAndModel()), PjProductLaunch::getSpecificationAndModel, productLaunch.getSpecificationAndModel())//规格型号
 			.eq(ObjectUtil.isNotEmpty(productLaunch.getUpAndDownShelves()), PjProductLaunch::getUpAndDownShelves, productLaunch.getUpAndDownShelves())//上下架
 			.in(ObjectUtil.isNotEmpty(productLaunch.getSharedCompanyList()), PjProductLaunch::getSharedCompany, productLaunch.getSharedCompanyList());//共享公司
-		if (ObjectUtil.isNotEmpty(productLaunch.getCname())){
+		if (ObjectUtil.isNotEmpty(productLaunch.getCname())) {
 			lambdaQueryWrapper.and(i -> i.like(PjProductLaunch::getCname, productLaunch.getCname()).or().like(PjProductLaunch::getCnameInt, productLaunch.getCname()));
 		}
 
-		if (productLaunch.getBillType() == 1){
+		if (productLaunch.getBillType() == 1) {
 			lambdaQueryWrapper.eq(PjProductLaunch::getWhetherShare, 0);
 		}
 		IPage<PjProductLaunch> pages = productLaunchService.page(Condition.getPage(query), lambdaQueryWrapper);
+		String deptId = pages.getRecords().stream().map(PjProductLaunch::getSharedCompany).filter(ObjectUtils::isNotNull).distinct().collect(Collectors.joining());
+		R<List<Dept>> deptList = iSysClient.selectByDeptIds(deptId);
+		for (PjProductLaunch item : pages.getRecords()) {
+			String deptName = deptList.getData().stream()
+				.filter(e -> ObjectUtils.isNotNull(item.getSharedCompany()) && item.getSharedCompany().contains(e.getId() + ""))
+				.map(Dept::getFullName).collect(Collectors.joining());
+			item.setSharedCompany(deptName);
+		}
 		return R.data(pages);
 	}
 
@@ -119,7 +128,7 @@ public class ProductLaunchController extends BladeController {
 	@ApiOperationSupport(order = 3)
 	@ApiOperation(value = "分页", notes = "传入productLaunch")
 	public R<IPage<ProductLaunchVO>> page(ProductLaunchVO productLaunch, Query query) {
-		if (ObjectUtils.isNotNull(productLaunch.getTenantId())){
+		if (ObjectUtils.isNotNull(productLaunch.getTenantId())) {
 			productLaunch.setTenantId(AuthUtil.getTenantId());
 		}
 		IPage<ProductLaunchVO> pages = productLaunchService.selectProductLaunchPage(Condition.getPage(query), productLaunch);
@@ -159,7 +168,7 @@ public class ProductLaunchController extends BladeController {
 	@ApiOperationSupport(order = 6)
 	@ApiOperation(value = "新增或修改", notes = "传入productLaunch")
 	public R submit(@Valid @RequestBody PjProductLaunch productLaunch) {
-		if (StringUtils.isNotBlank(productLaunch.getTenantId())){
+		if (StringUtils.isNotBlank(productLaunch.getTenantId())) {
 			productLaunch.setTenantId(AuthUtil.getTenantId());
 		}
 		PjProductLaunch desc = productLaunchService.saveMessage(productLaunch);
@@ -208,22 +217,20 @@ public class ProductLaunchController extends BladeController {
 	@PostMapping("/batchOperationProductLaunch")
 	@ApiOperationSupport(order = 11)
 	@ApiOperation(value = "批量上下架", notes = "传入ids")
-	public R batchOperationProductLaunch(@Valid @RequestBody PjProductLaunch productLaunch)
-	{
-		if (ObjectUtils.isEmpty(productLaunch.getIds())){
+	public R batchOperationProductLaunch(@Valid @RequestBody PjProductLaunch productLaunch) {
+		if (ObjectUtils.isEmpty(productLaunch.getIds())) {
 			throw new RuntimeException("缺少必要参数");
 		}
 
 		List<Long> longs = Func.toLongList(productLaunch.getIds());
 
-		if(CollectionUtils.isEmpty(longs))
-		{
+		if (CollectionUtils.isEmpty(longs)) {
 			throw new SecurityException("传入ids不能为空");
 		}
-		LambdaQueryWrapper<PjProductLaunch> lambdaQueryWrapper=new LambdaQueryWrapper<>();
-		lambdaQueryWrapper.in(PjProductLaunch::getId,longs).eq(PjProductLaunch::getIsDeleted,0);
+		LambdaQueryWrapper<PjProductLaunch> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.in(PjProductLaunch::getId, longs).eq(PjProductLaunch::getIsDeleted, 0);
 		List<Long> collect = productLaunchService.list(lambdaQueryWrapper).stream().map(PjProductLaunch::getId).collect(Collectors.toList());
-		productLaunchService.batchOperationProductLaunch(collect,productLaunch.getFlag());
+		productLaunchService.batchOperationProductLaunch(collect, productLaunch.getFlag());
 		return R.success("操作成功");
 	}
 
@@ -237,50 +244,50 @@ public class ProductLaunchController extends BladeController {
 		LambdaQueryWrapper<PjProductLaunch> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 		lambdaQueryWrapper.eq(PjProductLaunch::getTenantId, AuthUtil.getTenantId())
 			.eq(PjProductLaunch::getIsDeleted, 0)
-			.eq(PjProductLaunch::getUpAndDownShelves,1)
+			.eq(PjProductLaunch::getUpAndDownShelves, 1)
 			.eq(PjProductLaunch::getSalesCompanyId, AuthUtil.getDeptId())//公司
 			.eq(ObjectUtils.isNotEmpty(productLaunch.getBrandId()), PjProductLaunch::getBrandId, productLaunch.getBrandId())//品牌
 			.like(ObjectUtils.isNotEmpty(productLaunch.getBrandName()), PjProductLaunch::getBrandName, productLaunch.getBrandName())
 			.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()));
-			}
+		if (ObjectUtil.isNotEmpty(productLaunch.getCname())) {
+			lambdaQueryWrapper.and(i -> i.like(PjProductLaunch::getCname, productLaunch.getCname()).or().like(PjProductLaunch::getCnameInt, productLaunch.getCname()));
+		}
 		IPage<PjProductLaunch> pages = productLaunchService.page(Condition.getPage(query), lambdaQueryWrapper);
 
-		if (CollectionUtils.isNotEmpty(pages.getRecords())){
+		if (CollectionUtils.isNotEmpty(pages.getRecords())) {
 
 			PjCorpsDesc corpsDesc = null;
 			//根据当前登录人获得客户
 			PjCorpsAttn corpsAttn = corpsAttnService.getAttn(AuthUtil.getUserId());
-			if (ObjectUtil.isNotEmpty(corpsAttn)){
+			if (ObjectUtil.isNotEmpty(corpsAttn)) {
 				corpsDesc = corpsDescService.getCorpsDesc(corpsAttn.getPid());
-				if (ObjectUtil.isEmpty(corpsDesc)){
+				if (ObjectUtil.isEmpty(corpsDesc)) {
 					throw new RuntimeException("未查到用户信息");
 				}
-			}else {
+			} else {
 				throw new RuntimeException("未查到用户信息");
 			}
 
 			PjCorpsDesc finalCorpsDesc = corpsDesc;
-			pages.getRecords().stream().forEach(item ->{
+			pages.getRecords().stream().forEach(item -> {
 				item.setFilesList(productLaunchFilesService.list(new QueryWrapper<PjProductLaunchFiles>()
 					.eq("pid", item.getId()).eq("is_deleted", 0)));
 
-				if (StringUtils.isNotBlank(finalCorpsDesc.getPriceSystem())){
-					if ("售价1".equals(finalCorpsDesc.getPriceSystem())){
+				if (StringUtils.isNotBlank(finalCorpsDesc.getPriceSystem())) {
+					if ("售价1".equals(finalCorpsDesc.getPriceSystem())) {
 						item.setMallPrice(item.getPriceOne());
-					}else if ("售价2".equals(finalCorpsDesc.getPriceSystem())){
+					} else if ("售价2".equals(finalCorpsDesc.getPriceSystem())) {
 						item.setMallPrice(item.getPriceTwo());
-					}else if ("售价3".equals(finalCorpsDesc.getPriceSystem())){
+					} else if ("售价3".equals(finalCorpsDesc.getPriceSystem())) {
 						item.setMallPrice(item.getPriceThree());
-					}else if ("售价4".equals(finalCorpsDesc.getPriceSystem())){
+					} else if ("售价4".equals(finalCorpsDesc.getPriceSystem())) {
 						item.setMallPrice(item.getPriceFour());
-					}else {
+					} else {
 						item.setMallPrice(item.getPriceOne());
 					}
-				}else {
+				} else {
 					item.setMallPrice(item.getPriceOne());
 				}
 			});
@@ -319,7 +326,7 @@ public class ProductLaunchController extends BladeController {
 	@PostMapping("/addToCart")
 	@ApiOperationSupport(order = 15)
 	@ApiOperation(value = "加入购物车", notes = "传入productLaunch")
-	public R addToCart(@Valid @RequestBody PjProductLaunch shoppingCart){
+	public R addToCart(@Valid @RequestBody PjProductLaunch shoppingCart) {
 		return productLaunchService.addToCart(shoppingCart);
 	}
 
@@ -333,12 +340,12 @@ public class ProductLaunchController extends BladeController {
 		LambdaQueryWrapper<PjProductLaunch> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 		lambdaQueryWrapper.eq(PjProductLaunch::getTenantId, AuthUtil.getTenantId())
 			.eq(PjProductLaunch::getIsDeleted, 0)
-			.eq(PjProductLaunch::getUpAndDownShelves,1)
+			.eq(PjProductLaunch::getUpAndDownShelves, 1)
 			.eq(PjProductLaunch::getSalesCompanyId, AuthUtil.getDeptId())//公司
 			.ne(PjProductLaunch::getWhetherShare, 1)
 			.orderByAsc(PjProductLaunch::getBillType);
 
-		if (ObjectUtil.isNotEmpty(productLaunch.getCname())){
+		if (ObjectUtil.isNotEmpty(productLaunch.getCname())) {
 			lambdaQueryWrapper.and(i -> i.like(PjProductLaunch::getCname, productLaunch.getCname()).or().like(PjProductLaunch::getCnameInt, productLaunch.getCname()));
 		}
 
@@ -357,23 +364,23 @@ public class ProductLaunchController extends BladeController {
 		PjProductLaunch productLaunch = productLaunchService.getById(id);
 
 		PjCorpsDesc corpsDesc = corpsDescService.getCorpsDesc(corpId);
-		if (ObjectUtil.isEmpty(corpsDesc)){
+		if (ObjectUtil.isEmpty(corpsDesc)) {
 			throw new RuntimeException("客户信息异常");
 		}
 
-		if (StringUtils.isNotBlank(corpsDesc.getPriceSystem())){
-			if ("售价1".equals(corpsDesc.getPriceSystem())){
+		if (StringUtils.isNotBlank(corpsDesc.getPriceSystem())) {
+			if ("售价1".equals(corpsDesc.getPriceSystem())) {
 				productLaunch.setMallPrice(productLaunch.getPriceOne());
-			}else if ("售价2".equals(corpsDesc.getPriceSystem())){
+			} else if ("售价2".equals(corpsDesc.getPriceSystem())) {
 				productLaunch.setMallPrice(productLaunch.getPriceTwo());
-			}else if ("售价3".equals(corpsDesc.getPriceSystem())){
+			} else if ("售价3".equals(corpsDesc.getPriceSystem())) {
 				productLaunch.setMallPrice(productLaunch.getPriceThree());
-			}else if ("售价4".equals(corpsDesc.getPriceSystem())){
+			} else if ("售价4".equals(corpsDesc.getPriceSystem())) {
 				productLaunch.setMallPrice(productLaunch.getPriceFour());
-			}else {
+			} else {
 				productLaunch.setMallPrice(productLaunch.getPriceOne());
 			}
-		}else {
+		} else {
 			productLaunch.setMallPrice(productLaunch.getPriceOne());
 		}
 		return R.data(productLaunch);

+ 134 - 70
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/productLaunch/service/impl/ProductLaunchServiceImpl.java

@@ -19,30 +19,29 @@ package org.springblade.salesPart.productLaunch.service.impl;
 import com.alibaba.csp.sentinel.util.StringUtil;
 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.extension.service.impl.ServiceImpl;
 import lombok.AllArgsConstructor;
 import org.springblade.client.feign.ISerialClient;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.ObjectUtil;
-import org.springblade.purchase.sales.entity.Order;
 import org.springblade.salesPart.corps.service.ICorpsAttnService;
 import org.springblade.salesPart.corps.service.ICorpsDescService;
 import org.springblade.salesPart.entity.*;
 import org.springblade.salesPart.excel.ProductLaunchImportExcel;
 import org.springblade.salesPart.goods.mapper.GoodsDescMapper;
+import org.springblade.salesPart.productLaunch.mapper.ProductLaunchMapper;
 import org.springblade.salesPart.productLaunch.service.IProductLaunchFilesService;
+import org.springblade.salesPart.productLaunch.service.IProductLaunchService;
 import org.springblade.salesPart.shoppingCart.mapper.ShoppingCartMapper;
 import org.springblade.salesPart.stock.service.IStockDescService;
 import org.springblade.salesPart.vo.ProductLaunchVO;
-import org.springblade.salesPart.productLaunch.mapper.ProductLaunchMapper;
-import org.springblade.salesPart.productLaunch.service.IProductLaunchService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springblade.system.entity.Dept;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
@@ -80,7 +79,7 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 
 		detail.setFilesList(productLaunchFilesService.list(new QueryWrapper<PjProductLaunchFiles>().eq("pid", productLaunch.getId()).eq("is_deleted", 0)));
 
-		if (ObjectUtil.isEmpty(detail.getSharedCompany())){
+		if (ObjectUtil.isEmpty(detail.getSharedCompany())) {
 			detail.setSharedCompany("");
 		}
 		return detail;
@@ -131,7 +130,7 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 		}
 
 		//如果有共享公司 生成共享数据
-		if (ObjectUtil.isNotEmpty(productLaunch.getSharedCompany())){
+		if (ObjectUtil.isNotEmpty(productLaunch.getSharedCompany())) {
 
 			LambdaQueryWrapper<PjProductLaunch> queryWrapper = new LambdaQueryWrapper<>();
 			queryWrapper.eq(PjProductLaunch::getTenantId, AuthUtil.getTenantId())
@@ -141,7 +140,7 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 				.eq(PjProductLaunch::getSourceCompanyId, productLaunch.getSalesCompanyId());
 
 			List<PjProductLaunch> list = baseMapper.selectList(queryWrapper);
-			if (ObjectUtil.isNotEmpty(list)){
+			if (ObjectUtil.isNotEmpty(list)) {
 				list.forEach(e -> {
 					e.setWhetherShare(1);
 					baseMapper.updateById(e);
@@ -162,7 +161,7 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 					.eq(PjProductLaunch::getSourceCompanyId, productLaunch.getSalesCompanyId());
 				PjProductLaunch selOne = baseMapper.selectOne(lambdaQueryWrapper);
 
-				if (ObjectUtil.isEmpty(selOne)){
+				if (ObjectUtil.isEmpty(selOne)) {
 					launch.setId(null);
 					launch.setBillType(1);
 					launch.setWhetherShare(0);
@@ -183,7 +182,7 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 					}
 					baseMapper.insert(launch);
 
-				}else {
+				} else {
 					selOne.setInventory(productLaunch.getInventory());
 					selOne.setPriceOne(productLaunch.getPriceOne());
 					selOne.setPriceTwo(productLaunch.getPriceTwo());
@@ -202,7 +201,7 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 					baseMapper.updateById(selOne);
 				}
 			}
-		}else {
+		} else {
 			LambdaQueryWrapper<PjProductLaunch> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 			lambdaQueryWrapper.eq(PjProductLaunch::getTenantId, AuthUtil.getTenantId())
 				.eq(PjProductLaunch::getIsDeleted, 0)
@@ -211,7 +210,7 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 				.eq(PjProductLaunch::getSourceCompanyId, productLaunch.getSalesCompanyId());
 			List<PjProductLaunch> selectList = baseMapper.selectList(lambdaQueryWrapper);
 
-			if (ObjectUtil.isNotEmpty(selectList)){
+			if (ObjectUtil.isNotEmpty(selectList)) {
 				selectList.forEach(e -> {
 					e.setWhetherShare(1);
 					baseMapper.updateById(e);
@@ -234,7 +233,9 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 		if (CollectionUtils.isEmpty(data)) {
 			throw new SecurityException("导入数据不能为空");
 		}
-
+		List<PjProductLaunch> pjProductLaunchList = new ArrayList<>();
+		List<PjProductLaunch> launchList = new ArrayList<>();
+		List<PjProductLaunch> pjProductLaunchList1 = new ArrayList<>();
 		data.forEach(e -> {
 			PjProductLaunch productLaunch = new PjProductLaunch();
 			BeanUtils.copyProperties(e, productLaunch);
@@ -245,7 +246,7 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 				.eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
 				.eq(PjGoodsDesc::getCname, e.getCname()));
 
-			if (ObjectUtil.isNotEmpty(pjGoodsDesc)){
+			if (ObjectUtil.isNotEmpty(pjGoodsDesc)) {
 				//商品id
 				productLaunch.setGoodsId(pjGoodsDesc.getId());
 				productLaunch.setBrandId(pjGoodsDesc.getBrandId());
@@ -265,11 +266,11 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 					.eq(PjStockDesc::getGoodsId, pjGoodsDesc.getId());
 
 				List<PjStockDesc> list = stockDescService.list(lambdaQueryWrapper);
-				if (ObjectUtil.isNotEmpty(list)){
+				if (ObjectUtil.isNotEmpty(list)) {
 					productLaunch.setInventory(list.stream().map(PjStockDesc::getBalanceQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
 				}
-			}else {
-				throw new RuntimeException("商品"+e.getCname()+"名称错误或商品不存在");
+			} else {
+				throw new RuntimeException("商品" + e.getCname() + "名称错误或商品不存在");
 			}
 
 			//获得所属公司
@@ -282,17 +283,6 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 					throw new SecurityException("请输入正确的所属公司");
 				}
 			}
-
-			//获得共享公司
-			if (StringUtil.isNotBlank(e.getSharedCompany())) {
-				R<Dept> dept = iSysClient.getDeptIByName(AuthUtil.getTenantId(), e.getSalesCompanyName());
-				if (ObjectUtil.isNotEmpty(dept.getData())) {
-					productLaunch.setSharedCompany(dept.getData().getId()+"");
-				} else {
-					throw new SecurityException("请输入正确的共享公司");
-				}
-			}
-
 			productLaunch.setBillType(0);
 			productLaunch.setPriceOne(e.getPriceOne());
 			productLaunch.setPriceTwo(e.getPriceTwo());
@@ -308,38 +298,112 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 				.eq(PjProductLaunch::getBillType, 0);
 			PjProductLaunch one = baseMapper.selectOne(queryWrapper);
 
-			if (one == null){
+			if (one == null) {
 				productLaunch.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
 				productLaunch.setCreateTime(new Date());
 				productLaunch.setCreateUser(AuthUtil.getUserId());
 				productLaunch.setTenantId(AuthUtil.getTenantId());
 				productLaunch.setUpAndDownShelves(1);
-				baseMapper.insert(productLaunch);
-			}else {
+//				baseMapper.insert(productLaunch);
+			} else {
 				productLaunch.setId(one.getId());
 				productLaunch.setUpdateUser(AuthUtil.getUserId());
 				productLaunch.setUpdateTime(new Date());
 				productLaunch.setSharedCompany(one.getSharedCompany());
-				baseMapper.updateById(productLaunch);
+//				baseMapper.updateById(productLaunch);
+			}
+			//获得共享公司
+			if (StringUtil.isNotBlank(e.getSharedCompany())) {
+				R<List<Dept>> dept = iSysClient.getDeptListIByName(AuthUtil.getTenantId(), e.getSharedCompany());
+				productLaunch.setSharedCompany("");
+				for (Dept item : dept.getData()) {
+					productLaunch.setSharedCompany(productLaunch.getSharedCompany() + "," + item.getId());
+					PjProductLaunch launch = new PjProductLaunch();
+					BeanUtils.copyProperties(productLaunch, launch);
+
+					LambdaQueryWrapper<PjProductLaunch> lambdaQueryWrapper1 = new LambdaQueryWrapper<>();
+					lambdaQueryWrapper1.eq(PjProductLaunch::getTenantId, AuthUtil.getTenantId())
+						.eq(PjProductLaunch::getIsDeleted, 0)
+						.eq(PjProductLaunch::getBillType, 1)
+						.eq(PjProductLaunch::getGoodsId, productLaunch.getGoodsId())
+						.eq(PjProductLaunch::getSalesCompanyId, item)
+						.eq(PjProductLaunch::getSourceCompanyId, productLaunch.getSalesCompanyId());
+					PjProductLaunch selOne = baseMapper.selectOne(lambdaQueryWrapper1);
+
+					if (ObjectUtil.isEmpty(selOne)) {
+						launch.setId(null);
+						launch.setBillType(1);
+						launch.setWhetherShare(0);
+						launch.setUpAndDownShelves(0);
+						launch.setCreateUser(AuthUtil.getUserId());
+						launch.setCreateTime(new Date());
+						launch.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+						launch.setSourceId(productLaunch.getId());
+						launch.setSourceCompanyId(productLaunch.getSalesCompanyId());
+						launch.setTenantId(AuthUtil.getTenantId());
+						launch.setSharedCompany(null);
+						launch.setSalesCompanyId(item.getId());
+						launch.setSalesCompanyName(item.getFullName());
+//						baseMapper.insert(launch);
+						launchList.add(launch);
+					} else {
+						selOne.setInventory(productLaunch.getInventory());
+						selOne.setPriceOne(productLaunch.getPriceOne());
+						selOne.setPriceTwo(productLaunch.getPriceTwo());
+						selOne.setPriceThree(productLaunch.getPriceThree());
+						selOne.setPriceFour(productLaunch.getPriceFour());
+						selOne.setBrandItem(productLaunch.getBrandItem());
+						selOne.setPlaceProduction(productLaunch.getPlaceProduction());
+						selOne.setExplosionProof(productLaunch.getExplosionProof());
+						selOne.setOriginalFactory(productLaunch.getOriginalFactory());
+						selOne.setSelfRecovery(productLaunch.getSelfRecovery());
+						selOne.setUpdateTime(new Date());
+						selOne.setUpdateUser(AuthUtil.getUserId());
+						selOne.setWhetherShare(0);
+						selOne.setUpAndDownShelves(0);
+						selOne.setSharedCompany(null);
+//						baseMapper.updateById(selOne);
+						launchList.add(selOne);
+					}
+				}
+				String sharedCompany = productLaunch.getSharedCompany().substring(1);
+				productLaunch.setSharedCompany(sharedCompany);
+				LambdaQueryWrapper<PjProductLaunch> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+				lambdaQueryWrapper.eq(PjProductLaunch::getTenantId, AuthUtil.getTenantId())
+					.eq(PjProductLaunch::getBillType, 1)
+					.eq(PjProductLaunch::getIsDeleted, 0)
+					.eq(PjProductLaunch::getGoodsId, productLaunch.getGoodsId())
+					.eq(PjProductLaunch::getSourceCompanyId, productLaunch.getSalesCompanyId());
+
+				List<PjProductLaunch> list = baseMapper.selectList(lambdaQueryWrapper);
+				if (ObjectUtil.isNotEmpty(list)) {
+					list.forEach(i -> {
+						i.setWhetherShare(1);
+						pjProductLaunchList1.add(i);
+//						baseMapper.updateById(i);
+					});
+				}
 			}
+			pjProductLaunchList.add(productLaunch);
 		});
+		this.saveOrUpdateBatch(pjProductLaunchList);
+		this.saveOrUpdateBatch(launchList);
+		this.updateBatchById(pjProductLaunchList1);
 		return R.success("ok");
 	}
 
 	/**
 	 * 批量操作上下架
-	 * */
+	 */
 	@Override
 	@Transactional
-	public void batchOperationProductLaunch(List<Long> ids, int flag)
-	{
+	public void batchOperationProductLaunch(List<Long> ids, int flag) {
 
 		List<PjProductLaunch> list = baseMapper.selectBatchIds(ids);
-		if(CollectionUtils.isEmpty(list))
-		{
+		if (CollectionUtils.isEmpty(list)) {
 			throw new SecurityException("未查到相关物品信息,操作失败");
 		}
-		list.forEach(e->{
+		list.forEach(e -> {
 			e.setUpAndDownShelves(flag);
 			baseMapper.updateById(e);
 		});
@@ -366,32 +430,32 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 		PjCorpsDesc corpsDesc = null;
 		//根据当前登录人获得客户
 		PjCorpsAttn corpsAttn = corpsAttnService.getAttn(AuthUtil.getUserId());
-		if (ObjectUtil.isNotEmpty(corpsAttn)){
+		if (ObjectUtil.isNotEmpty(corpsAttn)) {
 			corpsDesc = corpsDescService.getCorpsDesc(corpsAttn.getPid());
-			if (ObjectUtil.isEmpty(corpsDesc)){
+			if (ObjectUtil.isEmpty(corpsDesc)) {
 				throw new RuntimeException("未查到用户信息");
-			}else {
-				if (ObjectUtil.isNotEmpty(corpsDesc.getPriceSystem())){
-					if ("售价1".equals(corpsDesc.getPriceSystem())){
+			} else {
+				if (ObjectUtil.isNotEmpty(corpsDesc.getPriceSystem())) {
+					if ("售价1".equals(corpsDesc.getPriceSystem())) {
 						detail.setMallPrice(detail.getPriceOne());
-					}else if ("售价2".equals(corpsDesc.getPriceSystem())){
+					} else if ("售价2".equals(corpsDesc.getPriceSystem())) {
 						detail.setMallPrice(detail.getPriceTwo());
-					}else if ("售价3".equals(corpsDesc.getPriceSystem())){
+					} else if ("售价3".equals(corpsDesc.getPriceSystem())) {
 						detail.setMallPrice(detail.getPriceThree());
-					}else if ("售价4".equals(corpsDesc.getPriceSystem())){
+					} else if ("售价4".equals(corpsDesc.getPriceSystem())) {
 						detail.setMallPrice(detail.getPriceFour());
 					}
-				}else {
+				} else {
 					detail.setMallPrice(detail.getPriceOne());
 				}
 			}
-		}else {
+		} else {
 			throw new RuntimeException("未查到用户信息");
 		}
 
 		map.put("type", detail.getBillType());
 
-		if (detail.getBillType() == 0){//本地
+		if (detail.getBillType() == 0) {//本地
 			//查询是否有共享
 			LambdaQueryWrapper<PjProductLaunch> queryWrapper = new LambdaQueryWrapper<>();
 			queryWrapper.eq(PjProductLaunch::getTenantId, AuthUtil.getTenantId())
@@ -402,20 +466,20 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 				.eq(PjProductLaunch::getSalesCompanyId, detail.getSalesCompanyId());
 
 			PjProductLaunch selectOne = baseMapper.selectOne(queryWrapper);
-			if (ObjectUtil.isNotEmpty(selectOne)){
+			if (ObjectUtil.isNotEmpty(selectOne)) {
 				//获得附件
 				selectOne.setFilesList(productLaunchFilesService.list(new QueryWrapper<PjProductLaunchFiles>()
 					.eq("pid", selectOne.getId())
 					.eq("is_deleted", 0)));
 
-				if (ObjectUtil.isNotEmpty(corpsDesc.getPriceSystem())){
-					if ("售价1".equals(corpsDesc.getPriceSystem())){
+				if (ObjectUtil.isNotEmpty(corpsDesc.getPriceSystem())) {
+					if ("售价1".equals(corpsDesc.getPriceSystem())) {
 						selectOne.setMallPrice(selectOne.getPriceOne());
-					}else if ("售价2".equals(corpsDesc.getPriceSystem())){
+					} else if ("售价2".equals(corpsDesc.getPriceSystem())) {
 						selectOne.setMallPrice(selectOne.getPriceTwo());
-					}else if ("售价3".equals(corpsDesc.getPriceSystem())){
+					} else if ("售价3".equals(corpsDesc.getPriceSystem())) {
 						selectOne.setMallPrice(selectOne.getPriceThree());
-					}else if ("售价4".equals(corpsDesc.getPriceSystem())){
+					} else if ("售价4".equals(corpsDesc.getPriceSystem())) {
 						selectOne.setMallPrice(selectOne.getPriceFour());
 					}
 				}
@@ -423,7 +487,7 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 			map.put("thisLocality", detail);
 			map.put("offsite", selectOne);
 
-		}else {
+		} else {
 			map.put("thisLocality", null);
 			map.put("offsite", detail);
 		}
@@ -444,26 +508,26 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 		PjCorpsDesc corpsDesc = null;
 		//根据当前登录人获得客户
 		PjCorpsAttn corpsAttn = corpsAttnService.getAttn(AuthUtil.getUserId());
-		if (ObjectUtil.isNotEmpty(corpsAttn)){
+		if (ObjectUtil.isNotEmpty(corpsAttn)) {
 			corpsDesc = corpsDescService.getCorpsDesc(corpsAttn.getPid());
-			if (ObjectUtil.isEmpty(corpsDesc)){
+			if (ObjectUtil.isEmpty(corpsDesc)) {
 				throw new RuntimeException("未查到用户信息");
-			}else {
-				if (ObjectUtil.isNotEmpty(corpsDesc.getPriceSystem())){
-					if ("售价1".equals(corpsDesc.getPriceSystem())){
+			} else {
+				if (ObjectUtil.isNotEmpty(corpsDesc.getPriceSystem())) {
+					if ("售价1".equals(corpsDesc.getPriceSystem())) {
 						detail.setMallPrice(detail.getPriceOne());
-					}else if ("售价2".equals(corpsDesc.getPriceSystem())){
+					} else if ("售价2".equals(corpsDesc.getPriceSystem())) {
 						detail.setMallPrice(detail.getPriceTwo());
-					}else if ("售价3".equals(corpsDesc.getPriceSystem())){
+					} else if ("售价3".equals(corpsDesc.getPriceSystem())) {
 						detail.setMallPrice(detail.getPriceThree());
-					}else if ("售价4".equals(corpsDesc.getPriceSystem())){
+					} else if ("售价4".equals(corpsDesc.getPriceSystem())) {
 						detail.setMallPrice(detail.getPriceFour());
 					}
-				}else {
+				} else {
 					detail.setMallPrice(detail.getPriceOne());
 				}
 			}
-		}else {
+		} else {
 			throw new RuntimeException("未查到用户信息");
 		}
 
@@ -510,10 +574,10 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 		shoppingCart.setProductLaunchId(productLaunch.getId());
 		shoppingCart.setInventory(productLaunch.getInventory());
 
-		if (productLaunch.getBillType() == 0){
+		if (productLaunch.getBillType() == 0) {
 			shoppingCart.setSharedCompanyId(productLaunch.getSalesCompanyId());
 			shoppingCart.setSharedCompanyName(productLaunch.getSalesCompanyName());
-		}else {
+		} else {
 			shoppingCart.setSharedCompanyId(productLaunch.getSourceCompanyId());
 			shoppingCart.setSharedCompanyName(iSysClient.getDept(productLaunch.getSourceCompanyId()).getData().getFullName());
 		}
@@ -527,9 +591,9 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 			.eq(PjShoppingCart::getSharedCompanyId, shoppingCart.getSharedCompanyId());
 
 		PjShoppingCart cart = shoppingCartMapper.selectOne(lambdaQueryWrapper);
-		if (ObjectUtil.isEmpty(cart)){//不存在 新增
+		if (ObjectUtil.isEmpty(cart)) {//不存在 新增
 			shoppingCartMapper.insert(shoppingCart);
-		}else {
+		} else {
 			cart.setGoodsNum(cart.getGoodsNum().add(productLaunch.getGoodsNum()));
 			cart.setUpdateUser(AuthUtil.getUserId());
 			cart.setUpdateTime(new Date());

+ 1 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/controller/ShipController.java

@@ -144,6 +144,7 @@ public class ShipController extends BladeController {
 						item.setCreateUserName(user.getName());
 					}
 				}
+				item.setItem(shipItemsService.count(new LambdaQueryWrapper<PjShipItems>().eq(PjShipItems::getPid,item.getId()))+"");
 			});
 		}
 

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

@@ -181,7 +181,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 		// 保存订单明细
 		if (CollectionUtils.isNotEmpty(ship.getShipItemsList())) {
 			long goodsId = ship.getShipItemsList().stream().map(PjShipItems::getGoodsName).distinct().count();
-			if (goodsId < ship.getShipItemsList().size()){
+			if (goodsId < ship.getShipItemsList().size()) {
 				throw new RuntimeException("明细中存在重复数据,保存失败");
 			}
 			List<PjShipItems> shipItemsList = new ArrayList<>();
@@ -324,7 +324,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 			List<PjOrderItems> pjOrderItemsList = new ArrayList<>();
 			List<PjStockDesc> pjStockDescArrayList = new ArrayList<>();
 			BigDecimal number = new BigDecimal("0.00");
-			for (PjShipItems item:ship.getShipItemsList()) {
+			for (PjShipItems item : ship.getShipItemsList()) {
 				number = number.add(item.getSendNum());
 				if (item.getId() == null) {
 					item.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
@@ -386,10 +386,10 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 			ship.setNumberRows(ship.getShipItemsList().size());
 			//修改任务发货数量
 			PjShip rwShip = baseMapper.selectById(ship.getTaskId());
-			if (ObjectUtils.isNotNull(rwShip)){
-				if (ObjectUtils.isNotNull(rwShip.getSendTotalNum())){
+			if (ObjectUtils.isNotNull(rwShip)) {
+				if (ObjectUtils.isNotNull(rwShip.getSendTotalNum())) {
 					rwShip.setSendTotalNum(rwShip.getSendTotalNum().add(number));
-				}else{
+				} else {
 					rwShip.setSendTotalNum(number);
 				}
 				rwShip.setUpdateUser(AuthUtil.getUserId());
@@ -441,7 +441,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 			List<PjOrderItems> pjOrderItemsList = new ArrayList<>();
 			List<PjStockDesc> pjStockDescArrayList = new ArrayList<>();
 			BigDecimal number = new BigDecimal("0.00");
-			for (PjShipItems item:ship.getShipItemsList()) {
+			for (PjShipItems item : ship.getShipItemsList()) {
 				number = number.add(item.getSendNum());
 				PjOrderItems orderItems = orderItemsService.getById(item.getSrcItemId());
 				if (ObjectUtil.isNotEmpty(orderItems)) {
@@ -478,7 +478,6 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				} else {
 					throw new RuntimeException("未查到库存账");
 				}
-				item.setSendNum(new BigDecimal("0.00"));
 				itemsList.add(item);
 			}
 			shipItemsService.updateBatchById(itemsList);
@@ -489,7 +488,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 
 			//修改任务发货数量
 			PjShip rwShip = baseMapper.selectById(ship.getTaskId());
-			if (ObjectUtils.isNotNull(rwShip)){
+			if (ObjectUtils.isNotNull(rwShip)) {
 				rwShip.setSendTotalNum(rwShip.getSendTotalNum().subtract(number));
 				rwShip.setUpdateUser(AuthUtil.getUserId());
 				rwShip.setUpdateTime(new Date());
@@ -647,9 +646,11 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				stockDesc.setSalesCompanyId(ship.getSalesCompanyId());
 				stockDesc.setSalesCompanyName(ship.getSalesCompanyName());
 				stockDesc.setGoodsTypeId(goodsDesc.getGoodsTypeId());
-				if (ObjectUtils.isNotNull(goodsDesc.getGoodsTypeId())){
-					PjGoodsType goodsType = goodsTypeMapper.selectById(item.getGoodsId());
-					stockDesc.setGoodsTypeName(goodsType.getCname());
+				if (ObjectUtils.isNotNull(goodsDesc.getGoodsTypeId())) {
+					PjGoodsType goodsType = goodsTypeMapper.selectById(goodsDesc.getGoodsTypeId());
+					if (ObjectUtils.isNotNull(goodsType)) {
+						stockDesc.setGoodsTypeName(goodsType.getCname());
+					}
 				}
 				//获得仓库
 				PjStorageDesc storageDesc = storageDescMapper.selectById(ship.getStorageId());

+ 7 - 10
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/shoppingCart/service/impl/ShoppingCartServiceImpl.java

@@ -24,6 +24,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.AllArgsConstructor;
+import org.springblade.client.feign.IMessageClient;
 import org.springblade.client.feign.ISerialClient;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
@@ -37,12 +38,11 @@ import org.springblade.salesPart.order.mapper.OrderItemsMapper;
 import org.springblade.salesPart.order.mapper.OrderMapper;
 import org.springblade.salesPart.payMethod.PayService;
 import org.springblade.salesPart.productLaunch.mapper.ProductLaunchMapper;
-import org.springblade.salesPart.productLaunch.service.IProductLaunchFilesService;
 import org.springblade.salesPart.shoppingCart.mapper.ShoppingCartMapper;
 import org.springblade.salesPart.shoppingCart.service.IShoppingCartService;
-import org.springblade.salesPart.storage.mapper.StorageDescMapper;
 import org.springblade.salesPart.vo.ShoppingCartVO;
 import org.springblade.system.feign.ISysClient;
+import org.springblade.system.user.feign.IUserClient;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -64,7 +64,6 @@ import java.util.Map;
 public class ShoppingCartServiceImpl extends ServiceImpl<ShoppingCartMapper, PjShoppingCart> implements IShoppingCartService {
 
 	private final ISerialClient serialClient;//生成系统编号
-	private final StorageDescMapper storageDescMapper;//仓库
 	private final GoodsDescMapper goodsDescMapper;//商品
 	private final ICorpsAttnService corpsAttnService;//客户联系人
 	private final ICorpsDescService corpsDescService;//客户
@@ -73,7 +72,8 @@ public class ShoppingCartServiceImpl extends ServiceImpl<ShoppingCartMapper, PjS
 	private final ProductLaunchMapper productLaunchMapper;
 	private final ISysClient sysClient;
 	private final PayService payService;
-	private final IProductLaunchFilesService productLaunchFilesService;
+	private IUserClient userClient;//获取用户信息
+	private final IMessageClient messageClient;//消息
 
 	/**
 	 * 保存修改购物车信息
@@ -200,8 +200,6 @@ public class ShoppingCartServiceImpl extends ServiceImpl<ShoppingCartMapper, PjS
 					order.setTenantId(AuthUtil.getTenantId());
 					order.setStatus(OrderTypeEnum.XSDQR.getType());
 					order.setXcxStatus(OrderTypeEnum.XSDFH.getType());
-					/*order.setStatus(OrderTypeEnum.WAITPAYMENT.getType());
-					order.setXcxStatus(OrderTypeEnum.WAITPAYMENT.getType());*/
 					order.setCustomerId(finalCorpsDesc.getId());
 					order.setCustomerName(finalCorpsDesc.getCname());
 					order.setSalesCompanyId(deptId);
@@ -231,7 +229,7 @@ public class ShoppingCartServiceImpl extends ServiceImpl<ShoppingCartMapper, PjS
 							orderItems.setUrl(ObjectUtils.isNotNull(e.getFilesList()) && e.getFilesList().size() > 0 ? e.getFilesList().get(0).getUrl() : "");
 							orderItemsMapper.insert(orderItems);
 							PjGoodsDesc goodsDesc = goodsDescMapper.selectById(orderItems.getGoodsId());
-							if (ObjectUtils.isNotNull(goodsDesc)){
+							if (ObjectUtils.isNotNull(goodsDesc)) {
 								shortcutJoin.append(goodsDesc.getCnameInt()).append(",");
 							}
 							goodsName.append(orderItems.getGoodsName()).append(",");
@@ -240,7 +238,7 @@ public class ShoppingCartServiceImpl extends ServiceImpl<ShoppingCartMapper, PjS
 							e.setIsDeleted(1);
 							baseMapper.updateById(e);
 
-							//修改上架管理库存
+							/*//修改上架管理库存
 							PjProductLaunch productLaunch = productLaunchMapper.selectById(e.getProductLaunchId());
 							if (ObjectUtil.isNotEmpty(productLaunch)) {
 								if (ObjectUtil.isNotEmpty(e.getGoodsNum())) {
@@ -274,8 +272,7 @@ public class ShoppingCartServiceImpl extends ServiceImpl<ShoppingCartMapper, PjS
 									launch.setInventory(launch.getInventory().subtract(e.getGoodsNum()));
 									productLaunchMapper.updateById(launch);
 								});
-							}
-
+							}*/
 						});
 						BigDecimal totalMoney = BigDecimal.ZERO;
 						order.setNumberRows(shoppingCartList.size());//行数

+ 12 - 0
blade-service/blade-system/src/main/java/org/springblade/system/feign/SysClient.java

@@ -226,6 +226,18 @@ public class SysClient implements ISysClient {
 		return deptService.getDeptIByName(tenantId, deptName);
 	}
 
+	/**
+	 * 配件获取所属公司
+	 *
+	 * @param tenantId  租户id
+	 * @param deptName 所属公司
+	 * @return
+	 */
+	@Override
+	public R<List<Dept>> getDeptListIByName(String tenantId, String deptName) {
+		return deptService.getDeptListIByName(tenantId, deptName);
+	}
+
 	@Override
 	@GetMapping(TENANT_ID)
 	public R<Tenant> getTenant(String tenantId) {

+ 1 - 0
blade-service/blade-system/src/main/java/org/springblade/system/service/IDeptService.java

@@ -144,4 +144,5 @@ public interface IDeptService extends IService<Dept> {
 	 */
 	R<Dept> getDeptIByName(String tenantId, String deptName);
 
+	R<List<Dept>> getDeptListIByName(String tenantId, String deptName);
 }

+ 15 - 4
blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DeptServiceImpl.java

@@ -25,7 +25,6 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.constant.BladeConstant;
 import org.springblade.core.tool.node.ForestNodeMerger;
 import org.springblade.core.tool.utils.Func;
-import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.core.tool.utils.StringPool;
 import org.springblade.system.cache.SysCache;
 import org.springblade.system.entity.Dept;
@@ -140,8 +139,8 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements ID
 	 * @return
 	 */
 	@Override
-	public List<Dept> selectByDeptIds(String ids){
-		if (ids == null || ids.equals("")){
+	public List<Dept> selectByDeptIds(String ids) {
+		if (ids == null || ids.equals("")) {
 			return new ArrayList<>();
 		}
 		List<Long> collect = Arrays.stream(ids.split(","))
@@ -195,7 +194,7 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements ID
 	/**
 	 * 配件获取所属公司
 	 *
-	 * @param tenantId  租户id
+	 * @param tenantId 租户id
 	 * @param deptName 所属公司
 	 * @return
 	 */
@@ -210,4 +209,16 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements ID
 		return R.data(dept);
 	}
 
+	@Override
+	public R<List<Dept>> getDeptListIByName(String tenantId, String deptName) {
+		List<Dept> dept = baseMapper.selectList(new LambdaQueryWrapper<Dept>()
+			.eq(Dept::getParentId, 0)
+			.eq(Dept::getTenantId, AuthUtil.getTenantId())
+			.eq(Dept::getIsDeleted, 0)
+			.eq(Dept::getFullName, deptName)
+			.apply("find_in_set(full_name,'" + deptName + "')")
+		);
+		return R.data(dept);
+	}
+
 }

+ 3 - 0
blade-service/blade-user/src/main/java/org/springblade/system/user/feign/UserClient.java

@@ -60,6 +60,9 @@ public class UserClient implements IUserClient {
 			.eq(User::getIsDeleted, 0)
 			.eq(User::getRoleId, roleId)
 			.eq(User::getTenantId, AuthUtil.getTenantId());
+		if ("883868".equals(AuthUtil.getTenantId())){
+			userLambdaQueryWrapper.eq(User::getDeptId,AuthUtil.getDeptId());
+		}
 		return R.data(service.list(userLambdaQueryWrapper));
 	}
 

+ 9 - 3
blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserSearchServiceImpl.java

@@ -26,6 +26,7 @@ import org.springblade.system.user.mapper.UserMapper;
 import org.springblade.system.user.service.IUserSearchService;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -66,8 +67,13 @@ public class UserSearchServiceImpl extends BaseServiceImpl<UserMapper, User> imp
 	@Override
 	public List<User> getWarehouseKeeper(List<Long> toLongList, String salesCompanyId) {
 		LambdaQueryWrapper<User> queryWrapper = Wrappers.lambdaQuery();
-		toLongList.forEach(id -> queryWrapper.like(User::getRoleId, id).or());
-		queryWrapper.eq(User::getDeptId,salesCompanyId);
-		return this.list(queryWrapper);
+		if (toLongList.size()>0){
+			queryWrapper.in(User::getRoleId,toLongList);
+			queryWrapper.eq(User::getDeptId,salesCompanyId);
+			return this.list(queryWrapper);
+		}else{
+			return new ArrayList<>();
+		}
+
 	}
 }