Browse Source

20230517 18:39

wangzhuo 2 years ago
parent
commit
62a5edd8d1
20 changed files with 394 additions and 36 deletions
  1. 1 1
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/Order.java
  2. 18 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjCorpsDesc.java
  3. 12 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjOrder.java
  4. 4 4
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryServiceImpl.java
  5. 0 3
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/controller/CorpsAddrController.java
  6. 46 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/controller/CorpsDescController.java
  7. 18 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/mapper/CorpsDescMapper.java
  8. 14 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/mapper/CorpsDescMapper.xml
  9. 13 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/service/ICorpsDescService.java
  10. 17 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/service/impl/CorpsAddrServiceImpl.java
  11. 182 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/service/impl/CorpsDescServiceImpl.java
  12. 1 10
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/goods/controller/GoodsDescController.java
  13. 2 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/goods/service/impl/GoodsDescServiceImpl.java
  14. 2 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/impl/OrderServiceImpl.java
  15. 4 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/productLaunch/service/impl/ProductLaunchServiceImpl.java
  16. 5 5
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/controller/ShipController.java
  17. 1 1
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/service/IShipService.java
  18. 19 3
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/service/impl/ShipServiceImpl.java
  19. 19 8
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/shoppingCart/service/impl/ShoppingCartServiceImpl.java
  20. 16 1
      blade-service/blade-system/src/main/java/org/springblade/system/controller/DeptController.java

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

@@ -726,7 +726,7 @@ public class Order implements Serializable {
 	/**
 	 * 本次使用返利
 	 */
-	private BigDecimal thisUsedProfit = new BigDecimal("0");
+	private BigDecimal thisUsedProfit;
 	/**
 	 * 产生返利
 	 */

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

@@ -197,4 +197,22 @@ public class PjCorpsDesc implements Serializable {
 	@TableField(exist = false)
 	private List<PjCorpsFiles> corpsFilesList;
 
+	/**
+	 * 联系人
+	 */
+	@TableField(exist = false)
+	private String attn;
+
+	/**
+	 * 地址
+	 */
+	@TableField(exist = false)
+	private String addr;
+
+	/**
+	 * 详情
+	 */
+	@TableField(exist = false)
+	private String details;
+
 }

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

@@ -329,4 +329,16 @@ public class PjOrder implements Serializable {
 	 */
 	@ApiModelProperty(value = "收银宝平台流水号")
 	private String oldTrxId;
+
+	/**
+	 * 共享公司id
+	 */
+	@ApiModelProperty(value = "共享公司id")
+	private Long sharedCompanyId;
+
+	/**
+	 * 共享公司名称
+	 */
+	@ApiModelProperty(value = "共享公司名称")
+	private String sharedCompanyName;
 }

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

@@ -549,7 +549,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 		}
 
 		//销售-发货-生成凭证, 如果销售订单号为空, 则代表是手动录入的发货单,不可以参与生成凭证
-		if ("681169".equals(AuthUtil.getTenantId()) && "GN".equals(delivery.getTradeType())
+		/*if ("681169".equals(AuthUtil.getTenantId()) && "GN".equals(delivery.getTradeType())
 			&& delivery.getDeliveryType().equals(DeliveryEnum.TAKE.getType())) {
 
 			//=============生成凭证所需信息==============
@@ -622,7 +622,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 					throw new SecurityException(exception.getMessage());
 				}
 			}
-		}
+		}*/
 		return R.data(delivery);
 	}
 
@@ -909,7 +909,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 		}
 
 		//工厂发货凭证
-		/*if ("681169".equals(select.getTenantId())) {
+		if ("681169".equals(select.getTenantId())) {
 			String accountName = select.getBelongCompany();
 			if ("A青岛达沃特轮胎有限公司".equals(accountName)) {
 				accountName = "青岛达沃特轮胎有限公司";
@@ -924,7 +924,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 					throw new SecurityException(exception.getMessage());
 				}
 			}
-		}*/
+		}
 
 	}
 

+ 0 - 3
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/controller/CorpsAddrController.java

@@ -189,9 +189,6 @@ public class CorpsAddrController extends BladeController {
 	@ApiOperationSupport(order = 10)
 	@ApiOperation(value = "新增或修改", notes = "传入corpsAddr")
 	public R submitAddr(@Valid @RequestBody PjCorpsAddr corpsAddr) {
-		if (ObjectUtil.isEmpty(corpsAddr.getId())){
-			throw new RuntimeException("缺少必要参数");
-		}
 		//根据当前登录人获得客户
 		PjCorpsDesc corpsDesc;
 		PjCorpsAttn corpsAttn = corpsAttnService.getAttn(AuthUtil.getUserId());

+ 46 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/controller/CorpsDescController.java

@@ -37,6 +37,8 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.CollectionUtil;
 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.corps.service.ICorpsTypeDescService;
 import org.springblade.salesPart.corps.service.ICorpsTypeService;
@@ -70,6 +72,7 @@ public class CorpsDescController extends BladeController {
 	private final ICorpsDescService corpsDescService;
 	private final ICorpsTypeDescService corpsTypeDescService;
 	private final ICorpsTypeService corpsTypeService;
+	private final ICorpsAttnService corpsAttnService;
 
 	/**
 	 * 详情
@@ -306,4 +309,47 @@ public class CorpsDescController extends BladeController {
 		return R.data(list);
 	}
 
+	/**
+	 * 小程序客户详情
+	 */
+	@GetMapping("/appDetails")
+	@ApiOperationSupport(order = 15)
+	@ApiOperation(value = "新增或修改", notes = "传入corpsDesc")
+	public R appDetails() {
+		return corpsDescService.getDetails();
+	}
+
+	/**
+	 * 小程序新增或修改客户
+	 */
+	@PostMapping("/appSubmit")
+	@ApiOperationSupport(order = 16)
+	@ApiOperation(value = "新增或修改", notes = "传入corpsDesc")
+	public R appSubmit(@Valid @RequestBody PjCorpsDesc corpsDesc) {
+		if (StringUtils.isBlank(corpsDesc.getTenantId())) {
+			corpsDesc.setTenantId(SecureUtil.getTenantId());
+		}
+		return corpsDescService.saveCorpsDesc(corpsDesc);
+	}
+
+	/**
+	 * 客户校验是否为空
+	 */
+	@GetMapping("/validationCorpEmpty")
+	@ApiOperationSupport(order = 17)
+	@ApiOperation(value = "下拉", notes = "传入corpsDesc")
+	public R validationCorpEmpty() {
+		//根据当前登录人获得客户
+		PjCorpsAttn corpsAttn = corpsAttnService.getAttn(AuthUtil.getUserId());
+		if (ObjectUtil.isNotEmpty(corpsAttn)){
+			PjCorpsDesc corpsDesc = corpsDescService.getCorpsDesc(corpsAttn.getPid());
+			if (ObjectUtil.isEmpty(corpsDesc)){
+				throw new RuntimeException("请先维护客户资料");
+			}
+		}else {
+			throw new RuntimeException("请先维护客户资料");
+		}
+		return R.success("操作成功");
+	}
+
 }

+ 18 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/mapper/CorpsDescMapper.java

@@ -16,9 +16,11 @@
  */
 package org.springblade.salesPart.corps.mapper;
 
+import com.baomidou.mybatisplus.annotation.SqlParser;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Param;
+import org.springblade.client.entity.CorpsDesc;
 import org.springblade.salesPart.entity.PjCorpsDesc;
 import org.springblade.salesPart.vo.CorpsDescVO;
 
@@ -41,4 +43,20 @@ public interface CorpsDescMapper extends BaseMapper<PjCorpsDesc> {
 	 */
 	List<CorpsDescVO> selectCorpsDescPage(IPage page, @Param("corpsDesc") CorpsDescVO corpsDesc);
 
+	/**
+	 * 查询客户名称
+	 *
+	 * @return
+	 */
+	PjCorpsDesc selectCorpsDescCname(@Param("cname") String cname,
+								   @Param("tenantId") String tenantId);
+
+
+	/**
+	 * 查询客户信息
+	 *
+	 * @return
+	 */
+	@SqlParser(filter=true)
+	PjCorpsDesc getCorpId(@Param("id") Long id);
 }

+ 14 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/mapper/CorpsDescMapper.xml

@@ -103,4 +103,18 @@
         </if>
     </select>
 
+    <select id="selectCorpsDescCname" resultMap="corpsDescResultMap">
+        select id, cname
+        from pjpf_corps_desc
+        where is_deleted = 0
+          and cname = #{cname}
+          and tenant_id = #{tenantId}
+    </select>
+
+    <select id="getCorpId" resultMap="corpsDescResultMap">
+        select *
+        from pjpf_corps_desc
+        where is_deleted = 0
+          and id = #{id}
+    </select>
 </mapper>

+ 13 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/service/ICorpsDescService.java

@@ -19,6 +19,7 @@ package org.springblade.salesPart.corps.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Param;
+import org.springblade.client.entity.CorpsDesc;
 import org.springblade.core.tool.api.R;
 import org.springblade.salesPart.entity.PjCorpsDesc;
 import org.springblade.salesPart.excel.CorpsDescImportExcel;
@@ -97,4 +98,16 @@ public interface ICorpsDescService extends IService<PjCorpsDesc> {
 	 * 根据客户联系人获得客户
 	 */
 	PjCorpsDesc getCorpsDesc(Long id);
+
+	/**
+	 * 小程序新增或修改 客户详情
+	 * @param corpsDesc
+	 * @return
+	 */
+	R saveCorpsDesc(PjCorpsDesc corpsDesc);
+
+	/**
+	 * 小程序客户详情
+	 */
+	R getDetails();
 }

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

@@ -16,12 +16,17 @@
  */
 package org.springblade.salesPart.corps.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 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.PjCorpsAddr;
+import org.springblade.salesPart.entity.PjCorpsAttn;
+import org.springblade.salesPart.entity.PjCorpsDesc;
 import org.springblade.salesPart.vo.CorpsAddrVO;
 import org.springblade.salesPart.corps.mapper.CorpsAddrMapper;
 import org.springblade.salesPart.corps.service.ICorpsAddrService;
@@ -81,6 +86,18 @@ public class CorpsAddrServiceImpl extends ServiceImpl<CorpsAddrMapper, PjCorpsAd
 			throw new SecurityException("数据异常请联系管理员");
 		}
 
+		if (corpsAddr.getDefaultAddres().equals("1")){
+			LambdaQueryWrapper<PjCorpsAddr> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+			lambdaQueryWrapper.eq(PjCorpsAddr::getTenantId, AuthUtil.getTenantId())
+				.eq(PjCorpsAddr::getIsDeleted, 0)
+				.eq(PjCorpsAddr::getPid, corpsAddr.getPid())
+				.eq(PjCorpsAddr::getDefaultAddres, "1");
+
+			PjCorpsAddr pjCorpsAddr = baseMapper.selectOne(lambdaQueryWrapper);
+			pjCorpsAddr.setDefaultAddres("0");
+			baseMapper.updateById(pjCorpsAddr);
+		}
+
 		if (corpsAddr.getId() == null) {
 			corpsAddr.setCreateTime(new Date());
 			corpsAddr.setCreateUser(AuthUtil.getUserId());

+ 182 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/service/impl/CorpsDescServiceImpl.java

@@ -26,6 +26,9 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import io.seata.spring.annotation.GlobalTransactional;
 import lombok.AllArgsConstructor;
+import org.springblade.client.entity.CorpsAddr;
+import org.springblade.client.entity.CorpsAttn;
+import org.springblade.client.entity.CorpsDesc;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
@@ -409,6 +412,183 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, PjCorpsDe
 	}
 
 	/**
+	 * 小程序客户详情
+	 */
+	@Override
+	public R getDetails() {
+		PjCorpsAttn corpsAttn = corpsAttnService.getOne(new LambdaQueryWrapper<PjCorpsAttn>().eq(PjCorpsAttn::getIsDeleted, 0)
+			.eq(PjCorpsAttn::getTenantId, AuthUtil.getTenantId())
+			.eq(PjCorpsAttn::getUserId, AuthUtil.getUserId()));
+		if (ObjectUtils.isNotNull(corpsAttn)) {
+			PjCorpsDesc corpsDesc = baseMapper.getCorpId(corpsAttn.getPid());
+			if (ObjectUtils.isNotNull(corpsDesc)) {
+				PjCorpsAddr corpsAddr = corpsAddrService.getOne(new LambdaQueryWrapper<PjCorpsAddr>().eq(PjCorpsAddr::getIsDeleted, 0)
+					.eq(PjCorpsAddr::getTenantId, AuthUtil.getTenantId())
+					.eq(PjCorpsAddr::getPid, corpsDesc.getId())
+					.eq(PjCorpsAddr::getDefaultAddres, "1"));
+				corpsDesc.setAttn(corpsAttn.getCname());
+				corpsDesc.setTel(corpsAttn.getTel());
+				corpsDesc.setAddr(corpsAddr.getBelongtoarea());
+				corpsDesc.setDetails(corpsAddr.getDetailedAddress());
+				return R.data(corpsDesc);
+			} else {
+				CorpsDesc corpsDesc1 = new CorpsDesc();
+				R<User> res = userClient.userInfoById(AuthUtil.getUserId());
+				if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
+					corpsDesc1.setTel(res.getData().getPhone());
+				}
+				return R.data(corpsDesc1);
+			}
+		} else {
+			CorpsDesc corpsDesc1 = new CorpsDesc();
+			R<User> res = userClient.userInfoById(AuthUtil.getUserId());
+			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
+				corpsDesc1.setTel(res.getData().getPhone());
+			}
+			return R.data(corpsDesc1);
+		}
+	}
+
+	/**
+	 * 小程序新增或修改 客户详情
+	 * @param corpsDesc
+	 * @return
+	 */
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
+	public R saveCorpsDesc(PjCorpsDesc corpsDesc) {
+		Long userId = SecureUtil.getUserId();
+		Long deptId = Long.valueOf(AuthUtil.getDeptId());
+		String deptName = sysClient.getDept(Long.valueOf(AuthUtil.getDeptId())).getData().getFullName();
+		Date date = new Date();
+
+		//保存客户信息
+		corpsDesc.setCorpType("KH");
+		if (StringUtils.isBlank(corpsDesc.getCname())) {
+			return R.data(200, "error", "客户名称不能为空");
+		}
+
+		PjCorpsDesc pjCorpsDesc = baseMapper.selectCorpsDescCname(corpsDesc.getCname(), AuthUtil.getTenantId());
+		if (ObjectUtils.isNotNull(pjCorpsDesc)) {
+			pjCorpsDesc.setSalesCompanyId(deptId);
+			pjCorpsDesc.setSalesCompanyName(deptName);
+			baseMapper.updateById(pjCorpsDesc);
+
+			PjCorpsAttn corpsAttn = corpsAttnService.getOne(new LambdaQueryWrapper<PjCorpsAttn>().eq(PjCorpsAttn::getIsDeleted, 0)
+				.eq(PjCorpsAttn::getTenantId, AuthUtil.getTenantId())
+				.eq(PjCorpsAttn::getPid, pjCorpsDesc.getId())
+				.eq(PjCorpsAttn::getTel, corpsDesc.getTel()));
+			if (ObjectUtils.isNotNull(corpsAttn)) {
+				corpsAttn.setCname(corpsDesc.getAttn());
+				corpsAttn.setTel(corpsDesc.getTel());
+				corpsAttn.setSalesCompanyId(deptId);
+				corpsAttn.setSalesCompanyName(deptName);
+				corpsAttnService.updateById(corpsAttn);
+			} else {
+				//保存客户联系人信息
+				PjCorpsAttn corpsAttn1 = new PjCorpsAttn();
+				User user = userClient.loginByAccount("", corpsDesc.getTel(), "4", AuthUtil.getTenantId());
+				if (ObjectUtils.isNotNull(user)) {
+					corpsAttn1.setUserId(user.getId());
+				}
+				corpsAttn1.setCname(corpsDesc.getAttn());
+				corpsAttn1.setTel(corpsDesc.getTel());
+				corpsAttn1.setTenantId(AuthUtil.getTenantId());
+				corpsAttn1.setPid(pjCorpsDesc.getId());
+				corpsAttn1.setCreateTime(new Date());
+				corpsAttn1.setCreateUser(AuthUtil.getUserId());
+				corpsAttn1.setSalesCompanyId(deptId);
+				corpsAttn1.setSalesCompanyName(deptName);
+				corpsAttnService.save(corpsAttn1);
+			}
+
+			PjCorpsAddr corpsAddr = corpsAddrService.getOne(new LambdaQueryWrapper<PjCorpsAddr>().eq(PjCorpsAddr::getIsDeleted, 0)
+				.eq(PjCorpsAddr::getTenantId, AuthUtil.getTenantId())
+				.eq(PjCorpsAddr::getPid, pjCorpsDesc.getId())
+				.eq(PjCorpsAddr::getDefaultAddres, "1")
+				.eq(PjCorpsAddr::getTel, corpsDesc.getTel()));
+			if (ObjectUtils.isNotNull(corpsAddr)) {
+				corpsAddr.setContacts(corpsDesc.getAttn());
+				corpsAddr.setTel(corpsDesc.getTel());
+				corpsAddr.setBelongtoarea(corpsDesc.getAddr());
+				corpsAddr.setDetailedAddress(corpsDesc.getDetails());
+				corpsAddr.setSalesCompanyId(deptId);
+				corpsAddr.setSalesCompanyName(deptName);
+				corpsAddrService.updateById(corpsAddr);
+			} else {
+				//保存客户地址信息
+				PjCorpsAddr corpsAddr1 = new PjCorpsAddr();
+				corpsAddr1.setContacts(corpsDesc.getAttn());
+				corpsAddr1.setTel(corpsDesc.getTel());
+				corpsAddr1.setBelongtoarea(corpsDesc.getAddr());
+				corpsAddr1.setDetailedAddress(corpsDesc.getDetails());
+				corpsAddr1.setTenantId(AuthUtil.getTenantId());
+				corpsAddr1.setPid(pjCorpsDesc.getId());
+				corpsAddr1.setCreateTime(new Date());
+				corpsAddr1.setTenantId(AuthUtil.getTenantId());
+				corpsAddr1.setCreateUser(AuthUtil.getUserId());
+				corpsAddr1.setSalesCompanyId(deptId);
+				corpsAddr1.setSalesCompanyName(deptName);
+				corpsAddr.setDefaultAddres("1");
+				corpsAddrService.save(corpsAddr1);
+			}
+		} else {
+			if (null == corpsDesc.getId()) {
+				corpsDesc.setTenantId(SecureUtil.getTenantId());
+				corpsDesc.setCreateDept(Long.valueOf(SecureUtil.getDeptId()));
+				corpsDesc.setCreateTime(date);
+				corpsDesc.setCreateUser(userId);
+				corpsDesc.setPriceSystem("售价1");
+				corpsDesc.setSalesCompanyId(deptId);
+				corpsDesc.setSalesCompanyName(deptName);
+				baseMapper.insert(corpsDesc);
+				Long pId = corpsDesc.getId();
+				String tenantId = corpsDesc.getTenantId();
+
+				//保存客户联系人信息
+				PjCorpsAttn corpsAttn = new PjCorpsAttn();
+				User user = userClient.loginByAccount("", corpsDesc.getTel(), "4", AuthUtil.getTenantId());
+				if (ObjectUtils.isNotNull(user)) {
+					corpsAttn.setUserId(user.getId());
+				}
+				corpsAttn.setCname(corpsDesc.getAttn());
+				corpsAttn.setTel(corpsDesc.getTel());
+				corpsAttn.setTenantId(AuthUtil.getTenantId());
+				corpsAttn.setPid(corpsDesc.getId());
+				corpsAttn.setCreateTime(new Date());
+				corpsAttn.setTenantId(AuthUtil.getTenantId());
+				corpsAttn.setCreateUser(AuthUtil.getUserId());
+				corpsAttn.setSalesCompanyId(deptId);
+				corpsAttn.setSalesCompanyName(deptName);
+				corpsAttnService.save(corpsAttn);
+
+				//保存客户地址信息
+				PjCorpsAddr corpsAddr = new PjCorpsAddr();
+				corpsAddr.setContacts(corpsDesc.getAttn());
+				corpsAddr.setTel(corpsDesc.getTel());
+				corpsAddr.setBelongtoarea(corpsDesc.getAddr());
+				corpsAddr.setDetailedAddress(corpsDesc.getDetails());
+				corpsAddr.setTenantId(AuthUtil.getTenantId());
+				corpsAddr.setPid(corpsDesc.getId());
+				corpsAddr.setCreateTime(new Date());
+				corpsAddr.setTenantId(AuthUtil.getTenantId());
+				corpsAddr.setCreateUser(AuthUtil.getUserId());
+				corpsAddr.setDefaultAddres("1");
+				corpsAddrService.save(corpsAddr);
+				//保存客户与类别对应关系
+				this.saveOrUpdateTypeDesc(corpsDesc, userId, pId, date, tenantId);
+			} else {
+				corpsDesc.setUpdateTime(new Date());
+				corpsDesc.setUpdateUser(AuthUtil.getUserId());
+				baseMapper.updateById(corpsDesc);
+			}
+
+		}
+		return R.data(corpsDesc);
+	}
+
+	/**
 	 * 根据客户名和类型查询客户
 	 *
 	 * @param cname
@@ -425,6 +605,8 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, PjCorpsDe
 		return baseMapper.selectOne(new QueryWrapper<>(corpsDesc));
 	}
 
+
+
 	/**
 	 * 保存客户联系人信息
 	 *

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

@@ -114,6 +114,7 @@ public class GoodsDescController extends BladeController {
 
 		lambdaQueryWrapper.eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
 			.eq(PjGoodsDesc::getIsDeleted, 0)
+			.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())//商品名称
@@ -136,16 +137,6 @@ public class GoodsDescController extends BladeController {
 				e.setGoodsTypeName(typeStr.toString().replace("[", "").replace("]", ""));
 			}
 
-			//获得所属公司
-			if (StringUtil.isNotBlank(e.getSalesCompanyName())) {
-				R<Dept> dept = iSysClient.getDept(e.getSalesCompanyId());
-				if (ObjectUtil.isNotEmpty(dept)) {
-					e.setSalesCompanyName(dept.getData().getFullName());
-				} else {
-					throw new SecurityException("请输入正确的所属公司");
-				}
-			}
-
 		});
 		return R.data(pages);
 	}

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

@@ -108,12 +108,14 @@ public class GoodsDescServiceImpl extends ServiceImpl<GoodsDescMapper, PjGoodsDe
 			goodsDesc.setCreateTime(new Date());
 			goodsDesc.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
 			goodsDesc.setTenantId(AuthUtil.getTenantId());
+			goodsDesc.setSalesCompanyName(iSysClient.getDeptName(goodsDesc.getSalesCompanyId()).getData());
 			baseMapper.insert(goodsDesc);
 		} else {
 			goodsDesc.setUpdateUser(AuthUtil.getUserId());
 			goodsDesc.setUpdateTime(new Date());
 			goodsDesc.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
 			goodsDesc.setTenantId(AuthUtil.getTenantId());
+			goodsDesc.setSalesCompanyName(iSysClient.getDeptName(goodsDesc.getSalesCompanyId()).getData());
 			baseMapper.updateById(goodsDesc);
 		}
 		this.saveType(goodsDesc.getId(), goodsDesc.getGoodsTypeId());

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

@@ -270,6 +270,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		pjShip.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
 		pjShip.setCreateUser(AuthUtil.getUserId());
 		pjShip.setCreateTime(new Date());
+		pjShip.setSalesCompanyId(pjOrder.getSharedCompanyId());
+		pjShip.setSalesCompanyName(pjOrder.getSharedCompanyName());
 		shipMapper.insert(pjShip);
 
 		//修改销售状态为待发货

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

@@ -72,6 +72,10 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 		PjProductLaunch detail = baseMapper.selectById(productLaunch.getId());
 
 		detail.setFilesList(productLaunchFilesService.list(new QueryWrapper<PjProductLaunchFiles>().eq("pid", productLaunch.getId()).eq("is_deleted", 0)));
+
+		if (ObjectUtil.isEmpty(detail.getSharedCompany())){
+			detail.setSharedCompany(" ");
+		}
 		return detail;
 	}
 

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

@@ -228,10 +228,10 @@ public class ShipController extends BladeController {
 	/**
 	 * 出库完成
 	 */
-	@GetMapping("/outboundCompleted")
+	@PostMapping("/outboundCompleted")
 	@ApiOperationSupport(order = 10)
 	@ApiOperation(value = "出库完成", notes = "传入ship")
-	public R outboundCompleted(PjShip ship){
+	public R outboundCompleted(@Valid @RequestBody PjShip ship){
 		return shipService.outboundCompleted(ship);
 	}
 
@@ -251,11 +251,11 @@ public class ShipController extends BladeController {
 	/**
 	 * 入库完成
 	 */
-	@GetMapping("/WarehousingComplete")
+	@PostMapping("/warehousingComplete")
 	@ApiOperationSupport(order = 12)
 	@ApiOperation(value = "入库完成", notes = "传入ship")
-	public R WarehousingComplete(PjShip ship){
-		return shipService.WarehousingComplete(ship);
+	public R warehousingComplete(@Valid @RequestBody PjShip ship){
+		return shipService.warehousingComplete(ship);
 	}
 
 }

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

@@ -86,6 +86,6 @@ public interface IShipService extends IService<PjShip> {
 	 * @param ship
 	 * @return
 	 */
-	R WarehousingComplete(PjShip ship);
+	R warehousingComplete(PjShip ship);
 
 }

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

@@ -36,6 +36,7 @@ import org.springblade.salesPart.order.mapper.OrderMapper;
 import org.springblade.salesPart.productLaunch.mapper.ProductLaunchMapper;
 import org.springblade.salesPart.ship.mapper.ShipItemsMapper;
 import org.springblade.salesPart.stock.mapper.StockDescMapper;
+import org.springblade.salesPart.storage.mapper.StorageDescMapper;
 import org.springblade.salesPart.vo.ShipVO;
 import org.springblade.salesPart.ship.mapper.ShipMapper;
 import org.springblade.salesPart.ship.service.IShipService;
@@ -81,6 +82,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 	private final ProductLaunchMapper productLaunchMapper;
 	private final HistoryMapper historyMapper;
 	private final IUserClient userClient;
+	private final StorageDescMapper storageDescMapper;
 
 	/**
 	 * 获取收发货订单详情
@@ -143,6 +145,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 
 		//库管员名称
 		ship.setStockClerkName(userClient.userInfoById(ship.getStockClerkId()).getData().getRealName());
+		ship.setStorageName(storageDescMapper.selectById(ship.getStorageId()).getCname());
 
 		if (ship.getId() == null){
 			// 获取系统编号
@@ -156,8 +159,18 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 			ship.setCreateUser(AuthUtil.getUserId());
 			ship.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
 			ship.setTenantId(AuthUtil.getTenantId());
+			if (ship.getBizTypeName().equals(OrderTypeEnum.SHGD.getType())){
+				ship.setStatusName(OrderTypeEnum.TREATWAREHOUSING.getType());
+			}else {
+				ship.setStatusName(OrderTypeEnum.TOBESHIPPEDOUT.getType());
+			}
 			baseMapper.insert(ship);
 		}else {
+			if (ship.getBizTypeName().equals(OrderTypeEnum.SHGD.getType())){
+				ship.setStatusName(OrderTypeEnum.TREATWAREHOUSING.getType());
+			}else {
+				ship.setStatusName(OrderTypeEnum.TOBESHIPPEDOUT.getType());
+			}
 			ship.setUpdateUser(AuthUtil.getUserId());
 			ship.setUpdateTime(new Date());
 			baseMapper.updateById(ship);
@@ -182,7 +195,10 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 			});
 			ship.setShipItemsList(ship.getShipItemsList());
 			ship.setNumberRows(ship.getShipItemsList().size());
+
+			ship.setGoodsTotalNum(ship.getShipItemsList().stream().filter(e ->e.getGoodsNum() != null).map(PjShipItems::getGoodsNum).reduce(BigDecimal.ZERO,BigDecimal::add));
 		}
+		baseMapper.updateById(ship);
 
 		return R.data(ship);
 	}
@@ -465,7 +481,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
-	public R WarehousingComplete(PjShip ship) {
+	public R warehousingComplete(PjShip ship) {
 		ship.setStatusName(OrderTypeEnum.RECEIVED.getType());
 		if (ship.getId() == null){
 			// 获取系统编号
@@ -504,13 +520,13 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				}
 
 				//修改采购明细
-				PjOrderItems orderItems = orderItemsMapper.selectById(item.getSrcItemId());
+				/*PjOrderItems orderItems = orderItemsMapper.selectById(item.getSrcItemId());
 				if (ObjectUtil.isNotEmpty(orderItems)){
 					orderItems.setSendNum(item.getSendNum());
 					orderItemsMapper.updateById(orderItems);
 				}else {
 					throw new RuntimeException("数据异常请联系管理员");
-				}
+				}*/
 
 				//获得商品
 				PjGoodsDesc goodsDesc = goodsDescMapper.selectById(item.getGoodsId());

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

@@ -133,7 +133,16 @@ public class ShoppingCartServiceImpl extends ServiceImpl<ShoppingCartMapper, PjS
 			}
 
 			PjCorpsDesc finalCorpsDesc = corpsDesc;
+
+			// 获取系统编号
+			R billNo = serialClient.getBillNo("WB", "WB", "WB");
+			if (billNo.getCode() != 200){
+				TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+				throw new RuntimeException("生成系统编号失败");
+			}
+
 			list.forEach(map -> {
+				Integer i = 1;
 				String k = (String) map.get("name");
 				if (StringUtil.isNotBlank(k)) {
 
@@ -143,13 +152,14 @@ public class ShoppingCartServiceImpl extends ServiceImpl<ShoppingCartMapper, PjS
 
 					//保存销售主表信息
 					PjOrder order = new PjOrder();
-					// 获取系统编号
-					R billNo = serialClient.getBillNo(OrderTypeEnum.SALES.getType(), OrderTypeEnum.SALES.getType(), OrderTypeEnum.SALES.getType());
-					if (billNo.getCode() != 200){
-						TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-						throw new RuntimeException("生成系统编号失败");
+
+					if (list.size() == 1){//如果只有一个公司,订单编号和主编号一致
+						order.setOrdNo((String) billNo.getData());
+					}else {
+						order.setOrdNo(billNo.getData() + "-" + i);
 					}
-					order.setOrdNo((String) billNo.getData());
+					order.setSrcOrdNo((String) billNo.getData());
+
 					order.setCreateUser(AuthUtil.getUserId());
 
 					//处理部门
@@ -230,11 +240,12 @@ public class ShoppingCartServiceImpl extends ServiceImpl<ShoppingCartMapper, PjS
 							order.setFreight(new BigDecimal(5));
 						}
 						order.setTotalMoney(totalMoney);
-
+						order.setSharedCompanyId(shoppingCartList.get(0).getSharedCompanyId());
+						order.setSharedCompanyName(shoppingCartList.get(0).getSharedCompanyName());
 					}
-
 					orderMapper.updateById(order);
 				}
+				i++;
 			});
 
 		}else {

+ 16 - 1
blade-service/blade-system/src/main/java/org/springblade/system/controller/DeptController.java

@@ -120,7 +120,6 @@ public class DeptController extends BladeController {
 			.eq(Dept::getParentId, 0)
 			.eq(Dept::getTenantId, AuthUtil.getTenantId())
 			.eq(Dept::getIsDeleted, 0)
-			.ne(Dept::getId ,AuthUtil.getDeptId())
 		);
 		return R.data(DeptWrapper.build().listNodeVO(list));
 	}
@@ -216,4 +215,20 @@ public class DeptController extends BladeController {
 		return R.data(dept);
 	}
 
+	/**
+	 * 顶级部门列表
+	 */
+	@GetMapping("/deptList")
+	@PreAuth(AuthConstant.PERMIT_ALL)
+	public R<List<DeptVO>> deptList(Dept dept) {
+		List<Dept> list = deptService.list(new LambdaQueryWrapper<Dept>()
+			.eq(ObjectUtil.isNotEmpty(dept.getDeptCategory()), Dept::getDeptCategory, dept.getDeptCategory())
+			.eq(Dept::getParentId, 0)
+			.eq(Dept::getTenantId, AuthUtil.getTenantId())
+			.eq(Dept::getIsDeleted, 0)
+			.ne(Dept::getId ,AuthUtil.getDeptId())
+		);
+		return R.data(DeptWrapper.build().listNodeVO(list));
+	}
+
 }