Browse Source

20230531 17:42

wangzhuo 2 years ago
parent
commit
086175132c

+ 3 - 3
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/excel/CorpsDescImportExcel.java

@@ -39,12 +39,12 @@ public class CorpsDescImportExcel implements Serializable {
 	/**
 	 * 发货仓库
 	 */
-	@ExcelProperty(value = "发货仓库")
+	@ExcelProperty(value = "发货仓库(必填)")
 	private String deliveryWarehouseName;
 	/**
 	 * 商城价格
 	 */
-	@ExcelProperty(value = "商城价格")
+	@ExcelProperty(value = "商城价格(必填)")
 	private String priceSystem;
 
 	/**
@@ -56,7 +56,7 @@ public class CorpsDescImportExcel implements Serializable {
 	/**
 	 * 业务员名称
 	 */
-	@ExcelProperty(value = "业务员")
+	@ExcelProperty(value = "业务员(必填)")
 	private String salesmanName;
 
 	/**

+ 41 - 4
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/excel/SupplierImportExcel.java

@@ -4,6 +4,7 @@ import com.alibaba.excel.annotation.ExcelProperty;
 import com.alibaba.excel.annotation.write.style.ColumnWidth;
 import com.alibaba.excel.annotation.write.style.ContentRowHeight;
 import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 /**
@@ -24,15 +25,51 @@ public class SupplierImportExcel {
 	private String cname;
 
 	/**
-	 * 电话
+	 * 供应商分类
 	 */
-	@ExcelProperty(value = "电话")
-	private String tel;
-
+	@ExcelProperty(value = "类别(必填)")
+	private String type;
 
 	/**
 	 * 业务员名称
 	 */
 	@ExcelProperty(value = "业务员")
 	private String salesmanName;
+
+	/**
+	 * 电话
+	 */
+	@ExcelProperty(value = "供应商电话")
+	private String tel;
+
+	/**
+	 * 联系人
+	 */
+	@ExcelProperty(value = "联系人")
+	private String attnCname;
+
+	/**
+	 * 电话
+	 */
+	@ExcelProperty(value = "电话")
+	private String attnTel;
+
+	/**
+	 * 地址
+	 */
+	@ExcelProperty(value = "地址(用,分割)")
+	private String belongtoarea;
+
+	/**
+	 * 详细地址
+	 */
+	@ExcelProperty(value = "详细地址")
+	private String detailedAddress;
+
+	/**
+	 * 默认地址(1 默认地址)
+	 */
+	@ExcelProperty(value = "是否默认地址(是或否)")
+	private String defaultAddres;
+
 }

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

@@ -230,7 +230,7 @@ public class CorpsDescController extends BladeController {
 	/**
 	 * 导入客户资料
 	 */
-	@GetMapping("/corpsImport")
+	@PostMapping("/corpsImport")
 	@ApiOperationSupport(order = 9)
 	@ApiOperation(value = "导入客户资料", notes = "传入corpsDesc")
 	public R corpsImport(@RequestParam("file") MultipartFile file){
@@ -250,13 +250,13 @@ public class CorpsDescController extends BladeController {
 	public void corpsExport(HttpServletResponse response) {
 		List<CorpsDescImportExcel> list = new ArrayList<>();
 		System.out.println(response);
-		ExcelUtil.export(response, "下载模板客户资料", "导入数据表", list, CorpsDescImportExcel.class);
+		ExcelUtil.export(response, "导入模板-客户资料", "导入数据表", list, CorpsDescImportExcel.class);
 	}
 
 	/**
 	 * 导入供应商资料
 	 */
-	@GetMapping("/supplierImport")
+	@PostMapping("/supplierImport")
 	@ApiOperationSupport(order = 11)
 	@ApiOperation(value = "导入供应商资料", notes = "传入corpsDesc")
 	public R supplierImport(@RequestParam("file") MultipartFile file){

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

@@ -147,11 +147,6 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, PjCorpsDe
 		corpsDesc.setIsDeleted(0);
 		corpsDesc.setStrTenantId(Arrays.asList(AuthUtil.getDeptId().split(",")));
 
-		/*String role = AuthUtil.getUserRole();
-		if (!role.contains("管理员")){
-
-		}*/
-
 		IPage<CorpsDescVO> page1 = page.setRecords(baseMapper.selectCorpsDescPage(page, corpsDesc));
 		return page1;
 
@@ -242,6 +237,14 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, PjCorpsDe
 							throw new SecurityException("请输入正确的业务员");
 						}
 					}
+					//获得所属公司
+					R<Dept> dept = sysClient.getDept(Long.valueOf(AuthUtil.getDeptId()));
+					if (ObjectUtil.isNotEmpty(dept)) {
+						corpsDesc.setSalesCompanyId(dept.getData().getId());
+						corpsDesc.setSalesCompanyName(dept.getData().getFullName());
+					} else {
+						throw new SecurityException("数据异常请联系管理员");
+					}
 
 					corpsDesc.setCreditLimit(e.getCreditLimit());
 					corpsDesc.setUseCreditLimit(e.getUseCreditLimit());
@@ -269,7 +272,9 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, PjCorpsDe
 						corpsDesc.setCreateTime(new Date());
 						corpsDesc.setCreateUser(AuthUtil.getUserId());
 						corpsDesc.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+
 						baseMapper.insert(corpsDesc);
+
 						PjCorpsTypeDesc middle = new PjCorpsTypeDesc();
 						middle.setCorpId(corpsDesc.getId());
 						middle.setCorpTypeId(corpsType.getId());
@@ -319,45 +324,130 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, PjCorpsDe
 			List<Boolean> countList = new ArrayList<>();
 
 			data.forEach(e -> {
-				countList.add(true);
-				PjCorpsDesc corpsDesc = new PjCorpsDesc();
-				corpsDesc.setCname(e.getCname());
-				corpsDesc.setTel(e.getTel());
-				corpsDesc.setTenantId(AuthUtil.getTenantId());
-
-				//获得业务员
-				if (StringUtils.isNotBlank(e.getSalesmanName())){
-					List<User> user = userClient.userInfoByName(e.getSalesmanName(), AuthUtil.getTenantId());
-					if (ObjectUtils.isNotNull(user)) {
-						corpsDesc.setSalesmanId(user.get(0).getId());
-						corpsDesc.setSalesmanName(user.get(0).getRealName());
-					}else {
-						throw new SecurityException("请输入正确的业务员");
+				String type = e.getType();
+				PjCorpsType corpsType = corpsTypeMapper.selectCorpsTypeCname(type, AuthUtil.getTenantId());
+				if (corpsType != null){
+					countList.add(true);
+					PjCorpsDesc corpsDesc = new PjCorpsDesc();
+					corpsDesc.setCname(e.getCname());
+					corpsDesc.setTel(e.getTel());
+					corpsDesc.setTenantId(AuthUtil.getTenantId());
+
+					//获得业务员
+					if (StringUtils.isNotBlank(e.getSalesmanName())){
+						List<User> user = userClient.userInfoByName(e.getSalesmanName(), AuthUtil.getTenantId());
+						if (ObjectUtils.isNotNull(user)) {
+							corpsDesc.setSalesmanId(user.get(0).getId());
+							corpsDesc.setSalesmanName(user.get(0).getRealName());
+						}else {
+							throw new SecurityException("请输入正确的业务员");
+						}
+					}
+					//获得所属公司
+					R<Dept> dept = sysClient.getDept(Long.valueOf(AuthUtil.getDeptId()));
+					if (ObjectUtil.isNotEmpty(dept)) {
+						corpsDesc.setSalesCompanyId(dept.getData().getId());
+						corpsDesc.setSalesCompanyName(dept.getData().getFullName());
+					} else {
+						throw new SecurityException("数据异常请联系管理员");
+					}
+
+					corpsDesc.setCorpsTypeId(String.valueOf(corpsType.getId()));
+					corpsDesc.setCorpType("GYS");
+					//名称相等视为重复数据
+					LambdaQueryWrapper<PjCorpsDesc> queryWrapper = new LambdaQueryWrapper<>();
+					queryWrapper.eq(PjCorpsDesc::getCname, corpsDesc.getCname());
+					queryWrapper.like(PjCorpsDesc::getCorpType, "GYS");
+					queryWrapper.eq(PjCorpsDesc::getIsDeleted, 0);
+					PjCorpsDesc selectOne = baseMapper.selectOne(queryWrapper);
+					if (selectOne == null) {
+						corpsDesc.setCreateTime(new Date());
+						corpsDesc.setCreateUser(AuthUtil.getUserId());
+						corpsDesc.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+						baseMapper.insert(corpsDesc);
+
+						PjCorpsTypeDesc middle = new PjCorpsTypeDesc();
+						middle.setCorpId(corpsDesc.getId());
+						middle.setCorpTypeId(corpsType.getId());
+						middle.setCreateTime(new Date());
+						middle.setCreateUser(AuthUtil.getUserId());
+						middle.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+						corpsTypeDescMapper.insert(middle);
+					} else {
+						corpsDesc.setId(selectOne.getId());
+						corpsDesc.setUpdateTime(new Date());
+						corpsDesc.setUpdateUser(AuthUtil.getUserId());
+						baseMapper.updateById(corpsDesc);
+					}
+
+					//保存联系人
+					if (ObjectUtil.isEmpty(e.getAttnCname())){
+						LambdaQueryWrapper<PjCorpsAttn> corpsAttnLambdaQueryWrapper = new LambdaQueryWrapper<>();
+						corpsAttnLambdaQueryWrapper.eq(PjCorpsAttn::getTenantId, AuthUtil.getTenantId())
+							.eq(PjCorpsAttn::getCname, e.getAttnCname())
+							.eq(PjCorpsAttn::getPid, corpsDesc.getId())
+							.eq(PjCorpsAttn::getIsDeleted, 0);
+						PjCorpsAttn corpsAttn = corpsAttnService.getOne(corpsAttnLambdaQueryWrapper);
+
+						corpsAttn.setPid(corpsDesc.getId());
+						corpsAttn.setCname(e.getAttnCname());
+						corpsAttn.setTel(e.getAttnTel());
+						if (corpsAttn.getId() == null) {
+							corpsAttn.setTenantId(AuthUtil.getTenantId());
+							corpsAttn.setCreateTime(new Date());
+							corpsAttn.setCreateUser(AuthUtil.getUserId());
+							corpsAttnService.save(corpsAttn);
+						} else {
+							corpsAttn.setTenantId(AuthUtil.getTenantId());
+							corpsAttn.setUpdateTime(new Date());
+							corpsAttn.setUpdateUser(AuthUtil.getUserId());
+							corpsAttnService.updateById(corpsAttn);
+						}
+					}
+
+					//保存地址
+					if (ObjectUtil.isEmpty(e.getDetailedAddress())){
+
+						if (ObjectUtil.isNotEmpty(e.getDefaultAddres()) && "是".equals(e.getDefaultAddres())){
+							LambdaQueryWrapper<PjCorpsAddr> corpsAttnLambdaQueryWrapper = new LambdaQueryWrapper<>();
+							corpsAttnLambdaQueryWrapper.eq(PjCorpsAddr::getTenantId, AuthUtil.getTenantId())
+								.eq(PjCorpsAddr::getDefaultAddres, "1")
+								.eq(PjCorpsAddr::getPid, corpsDesc.getId())
+								.eq(PjCorpsAddr::getIsDeleted, 0);
+							PjCorpsAddr corpsAddr = corpsAddrService.getOne(corpsAttnLambdaQueryWrapper);
+							if (ObjectUtil.isEmpty(corpsAddr)){
+								corpsAddr.setPid(corpsDesc.getId());
+								corpsAddr.setBelongtoarea(e.getBelongtoarea());
+								corpsAddr.setDetailedAddress(e.getDetailedAddress());
+								corpsAddr.setDefaultAddres("1");
+								corpsAddr.setTenantId(AuthUtil.getTenantId());
+								corpsAddr.setCreateTime(new Date());
+								corpsAddr.setCreateUser(AuthUtil.getUserId());
+								corpsAddrService.save(corpsAddr);
+							}else {
+								throw new RuntimeException(corpsDesc.getCname() + "已存在默认地址");
+							}
+						}else if (ObjectUtil.isNotEmpty(e.getDefaultAddres()) && "否".equals(e.getDefaultAddres())){
+							PjCorpsAddr corpsAddr = new PjCorpsAddr();
+							corpsAddr.setPid(corpsDesc.getId());
+							corpsAddr.setBelongtoarea(e.getBelongtoarea());
+							corpsAddr.setDetailedAddress(e.getDetailedAddress());
+							corpsAddr.setDefaultAddres("0");
+							corpsAddr.setTenantId(AuthUtil.getTenantId());
+							corpsAddr.setCreateTime(new Date());
+							corpsAddr.setCreateUser(AuthUtil.getUserId());
+							corpsAddrService.save(corpsAddr);
+						}
 					}
-				}
 
-				corpsDesc.setCorpType("GYS");
-				//名称相等视为重复数据
-				LambdaQueryWrapper<PjCorpsDesc> queryWrapper = new LambdaQueryWrapper<>();
-				queryWrapper.eq(PjCorpsDesc::getCname, corpsDesc.getCname());
-				queryWrapper.like(PjCorpsDesc::getCorpType, "GYS");
-				queryWrapper.eq(PjCorpsDesc::getIsDeleted, 0);
-				PjCorpsDesc selectOne = baseMapper.selectOne(queryWrapper);
-				if (selectOne == null) {
-					corpsDesc.setCreateTime(new Date());
-					corpsDesc.setCreateUser(AuthUtil.getUserId());
-					corpsDesc.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
-					baseMapper.insert(corpsDesc);
 				} else {
-					corpsDesc.setId(selectOne.getId());
-					corpsDesc.setUpdateTime(new Date());
-					corpsDesc.setUpdateUser(AuthUtil.getUserId());
-					baseMapper.updateById(corpsDesc);
+					countList.add(false);
 				}
-
 			});
 			List<Boolean> booleanList = countList.stream().filter(e -> e == true).collect(Collectors.toList());
-			if (data.size() == booleanList.size()) {
+			if (data.size() > booleanList.size()) {
+				return R.fail("导入中的数据,分类字段不存在或者未填分类字段");
+			} else if (data.size() == booleanList.size()) {
 				return R.success("导入成功");
 			} else {
 				throw new SecurityException("导入失败,请仔细检查导入数据");

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

@@ -237,7 +237,7 @@ public class GoodsDescController extends BladeController {
 	@ApiOperation(value = "导出模板")
 	public void exportPrice(HttpServletResponse response) {
 		List<GoodsExcel> list = new ArrayList<>();
-		ExcelUtil.export(response, "导模板-商品信息", "导入数据表", list, GoodsExcel.class);
+		ExcelUtil.export(response, "导模板-商品信息", "导入数据表", list, GoodsExcel.class);
 	}
 
 	/**