Browse Source

Merge remote-tracking branch 'origin/ecp' into ecp

纪新园 2 weeks ago
parent
commit
b23b8c76b9

+ 141 - 0
blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/zcrm/customer/entity/ViewItemSel.java

@@ -0,0 +1,141 @@
+package com.gubersail.dealer.admin.api.zcrm.customer.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 料品档案
+ *
+ * @author your-name
+ * @since 2025-07-30
+ */
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@TableName("zcrm_view_item_sel")
+public class ViewItemSel extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	@JsonProperty("ORG_ID")
+	@TableField("ORG_ID")
+	private Long orgId;
+
+	@JsonProperty("ORG_CODE")
+	@TableField("ORG_CODE")
+	private String orgCode;
+
+	@JsonProperty("ORG_NAME")
+	@TableField("ORG_NAME")
+	private String orgName;
+
+	@JsonProperty("Item_ID")
+	@TableField("Item_ID")
+	private Long itemId;
+
+	@JsonProperty("Item_Code")
+	@TableField("Item_Code")
+	private String itemCode;
+
+	@JsonProperty("Item_Name")
+	@TableField("Item_Name")
+	private String itemName;
+
+	@JsonProperty("Item_PECS")
+	@TableField("Item_PECS")
+	private String itemPecs;
+
+	@JsonProperty("Item_Description")
+	@TableField("Item_Description")
+	private String itemDescription;
+
+	@JsonProperty("Item_Code1")
+	@TableField("Item_Code1")
+	private String itemCode1;
+
+	@JsonProperty("Item_Code2")
+	@TableField("Item_Code2")
+	private String itemCode2;
+
+	@JsonProperty("MainItemCategory_ID")
+	@TableField("MainItemCategory_ID")
+	private Long mainItemCategoryId;
+
+	@JsonProperty("MainItemCategory_Code")
+	@TableField("MainItemCategory_Code")
+	private String mainItemCategoryCode;
+
+	@JsonProperty("MainItemCategory_Name")
+	@TableField("MainItemCategory_Name")
+	private String mainItemCategoryName;
+
+	@JsonProperty("InventoryInfo_ID")
+	@TableField("InventoryInfo_ID")
+	private Long inventoryInfoId;
+
+	@JsonProperty("InventoryInfo_Code")
+	@TableField("InventoryInfo_Code")
+	private String inventoryInfoCode;
+
+	@JsonProperty("InventoryInfo_Name")
+	@TableField("InventoryInfo_Name")
+	private String inventoryInfoName;
+
+	@JsonProperty("Warehouse_ID")
+	@TableField("Warehouse_ID")
+	private Long warehouseId;
+
+	@JsonProperty("Warehouse_Code")
+	@TableField("Warehouse_Code")
+	private String warehouseCode;
+
+	@JsonProperty("Warehouse_Name")
+	@TableField("Warehouse_Name")
+	private String warehouseName;
+
+	@JsonProperty("Saleser_ID")
+	@TableField("Saleser_ID")
+	private Long saleserId;
+
+	@JsonProperty("Saleser_CODE")
+	@TableField("Saleser_CODE")
+	private String saleserCode;
+
+	@JsonProperty("Saleser_NAME")
+	@TableField("Saleser_NAME")
+	private String saleserName;
+
+	@JsonProperty("ShipmentWarehouse_ID")
+	@TableField("ShipmentWarehouse_ID")
+	private Long shipmentWarehouseId;
+
+	@JsonProperty("ShipmentWarehouse_Code")
+	@TableField("ShipmentWarehouse_Code")
+	private String shipmentWarehouseCode;
+
+	@JsonProperty("ShipmentWarehouse_Name")
+	@TableField("ShipmentWarehouse_Name")
+	private String shipmentWarehouseName;
+
+	/* ===== 处理 JSON 中大小写不一致的字段 ===== */
+
+	@JsonProperty("createdon")
+	@TableField("createdon")
+	private LocalDateTime createdOn;
+
+	@JsonProperty("ModifiedOn")
+	@TableField("ModifiedOn")
+	private LocalDateTime modifiedOn;
+
+	/* ===== 临时字段 ===== */
+	@JsonProperty("Item_Price")
+	@TableField("Item_Price")
+	private BigDecimal itemPrice;
+}

+ 89 - 0
blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/zcrm/customer/entity/ViewWhqohSel.java

@@ -0,0 +1,89 @@
+package com.gubersail.dealer.admin.api.zcrm.customer.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+import java.math.BigDecimal;
+
+/**
+ * @author Rain
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@TableName("zcrm_view_whqoh_sel")
+public class ViewWhqohSel extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	@JsonProperty("ORG_ID")
+	@TableField("ORG_ID")
+	private Long orgId;
+
+	@JsonProperty("ORG_CODE")
+	@TableField("ORG_CODE")
+	private String orgCode;
+
+	@JsonProperty("ORG_NAME")
+	@TableField("ORG_NAME")
+	private String orgName;
+
+	@JsonProperty("Item_ID")
+	@TableField("Item_ID")
+	private Long itemId;
+
+	@JsonProperty("Item_Code")
+	@TableField("Item_Code")
+	private String itemCode;
+
+	@JsonProperty("Item_Name")
+	@TableField("Item_Name")
+	private String itemName;
+
+	@JsonProperty("Item_PECS")
+	@TableField("Item_PECS")
+	private String itemPecs;
+
+	@JsonProperty("Item_Description")
+	@TableField("Item_Description")
+	private String itemDescription;
+
+	@JsonProperty("InventoryInfo_ID")
+	@TableField("InventoryInfo_ID")
+	private Long inventoryInfoId;
+
+	@JsonProperty("InventoryInfo_Code")
+	@TableField("InventoryInfo_Code")
+	private String inventoryInfoCode;
+
+	@JsonProperty("InventoryInfo_Name")
+	@TableField("InventoryInfo_Name")
+	private String inventoryInfoName;
+
+	@JsonProperty("Warehouse_ID")
+	@TableField("Warehouse_ID")
+	private Long warehouseId;
+
+	@JsonProperty("Warehouse_Code")
+	@TableField("Warehouse_Code")
+	private String warehouseCode;
+
+	@JsonProperty("Warehouse_Name")
+	@TableField("Warehouse_Name")
+	private String warehouseName;
+
+	@JsonProperty("StorageType_ID")
+	@TableField("StorageType_ID")
+	private Integer storageTypeId;
+
+	@JsonProperty("StorageType_Name")
+	@TableField("StorageType_Name")
+	private String storageTypeName;
+
+	@JsonProperty("StoreQty")
+	@TableField("StoreQty")
+	private BigDecimal storeQty;
+}

+ 40 - 15
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/fc/customer/impl/FcCustomerDescServiceImpl.java

@@ -12,10 +12,13 @@ import com.gubersail.admin.corp.mapper.CorpsTypeDescMapper;
 import com.gubersail.admin.corp.service.ICorpsTypeService;
 import com.gubersail.admin.fc.customer.mapper.FcCustomerDescMapper;
 import com.gubersail.admin.fc.customer.service.FcCustomerDescService;
+import com.gubersail.admin.zcrm.customer.mapper.ViewCustomerSelMapper;
 import com.gubersail.dealer.admin.api.corps.entity.*;
 import com.gubersail.dealer.admin.api.fc.customer.entity.FcCustomerDesc;
 import com.gubersail.dealer.admin.api.fc.customer.vo.FcCustomerDescVo;
+import com.gubersail.dealer.admin.api.zcrm.customer.entity.ViewCustomerSel;
 import lombok.AllArgsConstructor;
+import org.springblade.core.secure.BladeUser;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
@@ -27,6 +30,7 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.ObjectUtils;
 
+import java.time.LocalDateTime;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -50,6 +54,9 @@ public class FcCustomerDescServiceImpl extends ServiceImpl<FcCustomerDescMapper,
 	private final CorpsTypeDescMapper corpsTypeDescMapper;
 
 
+	private final ViewCustomerSelMapper viewCustomerSelMapper;
+
+
 	@Override
 	public IPage<FcCustomerDescVo> selectCorpsDescPage(IPage<FcCustomerDescVo> page, FcCustomerDescVo corpsDesc) {
 		if (StringUtils.isNotBlank(corpsDesc.getCorpsTypeId())) {
@@ -83,23 +90,23 @@ public class FcCustomerDescServiceImpl extends ServiceImpl<FcCustomerDescMapper,
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public R submit(FcCustomerDescVo corpsDesc) {
-		Long userId = SecureUtil.getUserId();
+		BladeUser bladeUser = AuthUtil.getUser();
 		Date date = new Date();
 		List<FcCustomerDesc> pjCorpsDesc = baseMapper.selectList(new LambdaQueryWrapper<FcCustomerDesc>()
-			.eq(FcCustomerDesc::getTenantId, AuthUtil.getTenantId())
+			.eq(FcCustomerDesc::getTenantId, bladeUser.getTenantId())
 			.eq(FcCustomerDesc::getIsDeleted, 0)
-			.eq(FcCustomerDesc::getSalesCompanyId, AuthUtil.getTenantId())
+			.eq(FcCustomerDesc::getSalesCompanyId, bladeUser.getTenantId())
 			.eq(FcCustomerDesc::getCname, corpsDesc.getCname()));
 		if (corpsDesc.getId() == null) {
 			if (!pjCorpsDesc.isEmpty()) {
 				throw new RuntimeException("客户" + corpsDesc.getCname() + "已存在,请勿重复添加!");
 			}
-			corpsDesc.setTenantId(SecureUtil.getTenantId());
-			corpsDesc.setCreateDept(Long.valueOf(SecureUtil.getDeptId()));
+			corpsDesc.setTenantId(bladeUser.getTenantId());
+			corpsDesc.setCreateDept(Long.valueOf(bladeUser.getDeptId()));
 			corpsDesc.setCreateTime(date);
-			corpsDesc.setCreateUser(userId);
-			corpsDesc.setSalesCompanyId(Long.valueOf(AuthUtil.getDeptId()));
-			corpsDesc.setSalesCompanyName(sysClient.getDept(Long.valueOf(AuthUtil.getDeptId())).getData().getFullName());
+			corpsDesc.setCreateUser(bladeUser.getUserId());
+			corpsDesc.setSalesCompanyId(Long.valueOf(bladeUser.getDeptId()));
+			corpsDesc.setSalesCompanyName(sysClient.getDept(Long.valueOf(bladeUser.getDeptId())).getData().getFullName());
 			corpsDesc.setEnableOrNot(1);
 			baseMapper.insert(corpsDesc);
 		} else {
@@ -107,29 +114,47 @@ public class FcCustomerDescServiceImpl extends ServiceImpl<FcCustomerDescMapper,
 			if (!pjCorpsDesc.isEmpty() && !ids.contains(corpsDesc.getId())) {
 				throw new RuntimeException("客户" + corpsDesc.getCname() + "已存在,请勿重复添加!");
 			}
-			corpsDesc.setTenantId(SecureUtil.getTenantId());
+			corpsDesc.setTenantId(bladeUser.getTenantId());
 			corpsDesc.setUpdateTime(date);
-			corpsDesc.setCreateDept(Long.valueOf(SecureUtil.getDeptId()));
-			corpsDesc.setUpdateUser(AuthUtil.getUserId());
+			corpsDesc.setCreateDept(Long.valueOf(bladeUser.getDeptId()));
+			corpsDesc.setUpdateUser(bladeUser.getUserId());
 			baseMapper.updateById(corpsDesc);
 		}
 		Long pId = corpsDesc.getId();
 		String tenantId = corpsDesc.getTenantId();
 		//保存客户联系人信息
-		R saveOrUpdateAttn = this.saveOrUpdateAttn(corpsDesc, userId, pId, tenantId, date);
+		R saveOrUpdateAttn = this.saveOrUpdateAttn(corpsDesc, bladeUser.getUserId(), pId, tenantId, date);
 		if (saveOrUpdateAttn.getCode() != 200) {
 			TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
 			return saveOrUpdateAttn;
 		}
 
 		//保存客户地址信息
-		this.saveOrUpdateAddr(corpsDesc, userId, pId, tenantId, date);
+		this.saveOrUpdateAddr(corpsDesc, bladeUser.getUserId(), pId, tenantId, date);
 
 		//保存客户文件信息
-		this.saveOrUpdateFiles(corpsDesc, userId, pId, tenantId, date);
+		this.saveOrUpdateFiles(corpsDesc, bladeUser.getUserId(), pId, tenantId, date);
 
 		//保存客户与类别对应关系
-		this.saveOrUpdateTypeDesc(corpsDesc, userId, pId, date, tenantId);
+		this.saveOrUpdateTypeDesc(corpsDesc, bladeUser.getUserId(), pId, date, tenantId);
+		long count = viewCustomerSelMapper.selectCount(new LambdaQueryWrapper<ViewCustomerSel>().eq(ViewCustomerSel::getCustomerId, corpsDesc.getId()));
+		if (count <= 0) {
+			ViewCustomerSel viewCustomerSel = new ViewCustomerSel();
+			viewCustomerSel.setOrgId(1002504294421734L);
+			viewCustomerSel.setOrgCode("001");
+			viewCustomerSel.setOrgName("库比森轮胎(江苏)有限公司");
+			viewCustomerSel.setCustomerId(corpsDesc.getId());
+			viewCustomerSel.setCustomerCode(String.valueOf(corpsDesc.getId()));
+			viewCustomerSel.setCustomerName(corpsDesc.getCname());
+			viewCustomerSel.setCustomercategoryId(Long.valueOf(corpsDesc.getCorpsTypeId()));
+			viewCustomerSel.setCustomercategoryCode(String.valueOf(corpsDesc.getCorpsTypeId()));
+			viewCustomerSel.setCustomercategoryName(corpsDesc.getCorpsTypeName());
+			viewCustomerSel.setRemark(corpsDesc.getRemarks());
+			viewCustomerSel.setCreateDept(Long.valueOf(bladeUser.getDeptId()));
+			viewCustomerSel.setCreateTime(LocalDateTime.now());
+			viewCustomerSel.setCreateUser(bladeUser.getUserId());
+			viewCustomerSelMapper.insert(viewCustomerSel);
+		}
 
 		return R.data(corpsDesc);
 	}

+ 3 - 0
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/fc/customer/mapper/FcCustomerDescMapper.xml

@@ -47,6 +47,9 @@
         <if test="corpsDesc.corpType!=null and corpsDesc.corpType != ''">
             and corp_type like CONCAT(CONCAT('%', #{corpsDesc.corpType}), '%')
         </if>
+        <if test="corpsDesc.brandName!=null and corpsDesc.brandName != ''">
+            and brand_name like CONCAT(CONCAT('%', #{corpsDesc.brandName}), '%')
+        </if>
         <if test="corpsDesc.checkStatus != null and corpsDesc.checkStatus != ''">
             and check_status = #{corpsDesc.checkStatus}
         </if>

+ 56 - 1
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/inventory/impl/StockDescServiceImpl.java

@@ -1,9 +1,16 @@
 package com.gubersail.admin.inventory.impl;
 
+import cn.hutool.core.util.IdUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gubersail.admin.inventory.mapper.StockDescMapper;
 import com.gubersail.admin.inventory.service.IStockDescService;
+import com.gubersail.admin.zcrm.customer.mapper.ViewItemSelMapper;
+import com.gubersail.admin.zcrm.customer.mapper.ViewWhqohSelMapper;
 import com.gubersail.dealer.admin.api.inventory.entity.PjStockDesc;
+import com.gubersail.dealer.admin.api.zcrm.customer.entity.ViewCustomerSel;
+import com.gubersail.dealer.admin.api.zcrm.customer.entity.ViewItemSel;
+import com.gubersail.dealer.admin.api.zcrm.customer.entity.ViewWhqohSel;
 import lombok.AllArgsConstructor;
 import org.springblade.common.enums.CommonEnum;
 import org.springblade.common.enums.NumberEnum;
@@ -15,6 +22,8 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
 
+import java.time.LocalDateTime;
+import java.util.Date;
 import java.util.Objects;
 
 
@@ -25,6 +34,11 @@ import java.util.Objects;
 @AllArgsConstructor
 public class StockDescServiceImpl extends ServiceImpl<StockDescMapper, PjStockDesc> implements IStockDescService {
 
+	private final ViewItemSelMapper viewItemSelMapper;
+
+	private final ViewWhqohSelMapper viewWhqohSelMapper;
+
+
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
@@ -40,10 +54,51 @@ public class StockDescServiceImpl extends ServiceImpl<StockDescMapper, PjStockDe
 				return R.fail(601, "数据已被其他用户更新,请刷新后重试");
 			}
 		}
+		if (Objects.isNull(stockDesc.getGoodsId())) {
+			stockDesc.setGoodsId(IdUtil.getSnowflakeNextId());
+		}
 		stockDesc.setTenantId(bladeUser.getTenantId());
 		stockDesc.setUserAndDept(bladeUser);
 		stockDesc.setStatus(CommonEnum.ONE.info);
 		boolean result = this.saveOrUpdate(stockDesc);
+		// u9 中间表插入,u9启用后删除
+		long count = viewItemSelMapper.selectCount(new LambdaQueryWrapper<ViewItemSel>().eq(ViewItemSel::getItemId, stockDesc.getId()));
+		if (count <= 0) {
+			Date nowDate = new Date();
+			ViewItemSel itemSel = new ViewItemSel();
+			itemSel.setOrgId(1002504294421734L);
+			itemSel.setOrgCode("001");
+			itemSel.setOrgName("库比森轮胎(江苏)有限公司");
+			itemSel.setItemId(stockDesc.getGoodsId());
+			itemSel.setItemCode(stockDesc.getCode());
+			itemSel.setItemName(stockDesc.getCname());
+			itemSel.setItemPecs(stockDesc.getTypeNo());
+			itemSel.setItemDescription(stockDesc.getProductDescription());
+			itemSel.setMainItemCategoryId(Long.valueOf(stockDesc.getGoodsTypeId()));
+			itemSel.setMainItemCategoryCode(stockDesc.getGoodsTypeId().substring(10));
+			itemSel.setMainItemCategoryName(stockDesc.getGoodsTypeName());
+			// todo: 缺少品牌,因u9中间表没有字段
+			itemSel.setCreateDept(Long.valueOf(bladeUser.getDeptId()));
+			itemSel.setCreateTime(nowDate);
+			itemSel.setCreateUser(bladeUser.getUserId());
+			viewItemSelMapper.insert(itemSel);
+			// 库存数据
+			ViewWhqohSel viewWhqohSel = new ViewWhqohSel();
+			viewWhqohSel.setOrgId(1002504294421734L);
+			viewWhqohSel.setOrgCode("001");
+			viewWhqohSel.setOrgName("库比森轮胎(江苏)有限公司");
+			viewWhqohSel.setItemId(stockDesc.getGoodsId());
+			viewWhqohSel.setItemCode(stockDesc.getCode());
+			viewWhqohSel.setItemName(stockDesc.getCname());
+			viewWhqohSel.setItemPecs(stockDesc.getTypeNo());
+			viewWhqohSel.setItemDescription(stockDesc.getProductDescription());
+			viewWhqohSel.setWarehouseId(stockDesc.getStorageId());
+			viewWhqohSel.setWarehouseName(stockDesc.getStorageName());
+			viewWhqohSel.setWarehouseCode(String.valueOf(stockDesc.getStorageId()).substring(10));
+			viewWhqohSel.setStoreQty(stockDesc.getBalanceQuantity());
+			// todo: 缺少库存单位,需要增加库区
+			viewWhqohSelMapper.insert(viewWhqohSel);
+		}
 		return result ? R.data(stockDesc.getId(), "提交成功") : R.fail("提交失败");
 	}
 
@@ -89,7 +144,7 @@ public class StockDescServiceImpl extends ServiceImpl<StockDescMapper, PjStockDe
 
 	private R<String> verifyVersion (PjStockDesc stockDesc) {
 		if (Objects.isNull(stockDesc.getId())) {
-			return R.fail("请求缺少重要参数,请刷新后重试");
+			return null;
 		}
 		PjStockDesc srcStock = this.getById(stockDesc.getId());
 		if (!stockDesc.getVersion().equals(srcStock.getVersion())) {

+ 10 - 0
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/zcrm/customer/mapper/ViewItemSelMapper.java

@@ -0,0 +1,10 @@
+package com.gubersail.admin.zcrm.customer.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gubersail.dealer.admin.api.zcrm.customer.entity.ViewItemSel;
+
+/**
+ * @author Rain
+ */
+public interface ViewItemSelMapper extends BaseMapper<ViewItemSel> {
+}

+ 10 - 0
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/zcrm/customer/mapper/ViewItemSelMapper.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gubersail.admin.zcrm.customer.mapper.ViewItemSelMapper">
+
+
+
+
+
+
+</mapper>

+ 11 - 0
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/zcrm/customer/mapper/ViewWhqohSelMapper.java

@@ -0,0 +1,11 @@
+package com.gubersail.admin.zcrm.customer.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gubersail.dealer.admin.api.zcrm.customer.entity.ViewWhqohSel;
+
+/**
+ * @author Rain
+ */
+public interface ViewWhqohSelMapper extends BaseMapper<ViewWhqohSel> {
+
+}

+ 10 - 0
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/zcrm/customer/mapper/ViewWhqohSelMapper.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gubersail.admin.zcrm.customer.mapper.ViewWhqohSelMapper">
+
+
+
+
+
+
+</mapper>