Browse Source

提交客户

ioioio 4 years ago
parent
commit
af3658eeae

+ 5 - 0
blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/CorpsDesc.java

@@ -298,5 +298,10 @@ public class CorpsDesc implements Serializable {
 	@ApiModelProperty(value = "包装要求")
 	private String packageRemarks;
 
+	@ApiModelProperty(value = "币种")
+	private String current;
+
+	@ApiModelProperty(value = "账单名称")
+	private String billName;
 
 }

+ 60 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/controller/CorpsDescController.java

@@ -12,8 +12,10 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
+import org.springblade.client.corps.excel.CorpsCompanyExcel;
 import org.springblade.client.corps.excel.CorpsExcel;
 import org.springblade.client.corps.excel.CorpsImport;
+import org.springblade.client.corps.excel.CorpsSupplierExcel;
 import org.springblade.client.corps.service.ICorpsDescService;
 import org.springblade.client.entity.CorpsDesc;
 import org.springblade.client.entity.GoodsDesc;
@@ -183,6 +185,64 @@ public class CorpsDescController extends BladeController {
 		return corpsDescService.importUser(excelList,false,corpType);
 	}
 
+	/**
+	 * 导入公司主体信息
+	 *
+	 * */
+	@PostMapping("/import-company-desc")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "导入公司主体", notes = "传入excel")
+	public R importCompanyDesc(@RequestParam("file") MultipartFile file)
+	{
+		List<CorpsCompanyExcel> excelList = ExcelUtil.read(file, CorpsCompanyExcel.class);
+		if(CollectionUtils.isEmpty(excelList))
+		{
+			throw new SecurityException("数据不能为空");
+		}
+		return corpsDescService.importCompanyDesc(excelList,false,"GS");
+	}
+
+	/**
+	 * 导入供应商信息
+	 *
+	 * */
+	@PostMapping("/import-supplier-desc")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "导入供应商信息", notes = "传入excel")
+	public R importSupplierDesc(@RequestParam("file") MultipartFile file)
+	{
+		List<CorpsSupplierExcel> excelList = ExcelUtil.read(file, CorpsSupplierExcel.class);
+		if(CollectionUtils.isEmpty(excelList))
+		{
+			throw new SecurityException("数据不能为空");
+		}
+		return corpsDescService.importSupplierDesc(excelList,false,"GYS");
+	}
+
+	/**
+	 * 导出公司主体信息
+	 *
+	 * */
+	@GetMapping("/export-supplier-template")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "导出模板")
+	public void exportSupplierTemplate(HttpServletResponse response) {
+		List<CorpsSupplierExcel> list = new ArrayList<>();
+		ExcelUtil.export(response, "导入模板-供应商资料", "导入数据表", list, CorpsSupplierExcel.class);
+	}
+
+	/**
+	 * 导出公司主体信息
+	 *
+	 * */
+	@GetMapping("/export-company-template")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "导出模板")
+	public void exportCompanyTemplate(HttpServletResponse response) {
+		List<CorpsCompanyExcel> list = new ArrayList<>();
+		ExcelUtil.export(response, "导入模板-公司主体信息", "导入数据表", list, CorpsCompanyExcel.class);
+	}
+
 
 	/**
 	 * 导出模板

+ 46 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/excel/CorpsCompanyExcel.java

@@ -0,0 +1,46 @@
+package org.springblade.client.corps.excel;
+
+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 lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class CorpsCompanyExcel implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	@ExcelProperty("公司编号(必填)")
+	private String code;
+
+	@ExcelProperty("公司主体名称(必填)")
+	private String cname;
+
+	@ExcelProperty("公司分类(必填)")
+	private String type;
+
+	@ExcelProperty("账单名称")
+	private String billName;
+
+	@ExcelProperty("开户银行")
+	private String accountBank;
+
+	@ExcelProperty("银行账号")
+	private String accountNo;
+
+	@ExcelProperty("外币币种")
+	private String current;
+
+	@ExcelProperty("外币开户银行")
+	private String accountBankFcy;
+
+	@ExcelProperty("外币银行账号")
+	private String accountNoFcy;
+
+
+}

+ 6 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/excel/CorpsExcel.java

@@ -53,6 +53,9 @@ public class CorpsExcel implements Serializable {
 	@ExcelProperty("公司地址")
 	private String addr;
 
+	@ExcelProperty("收货地址")
+	private String addressList;
+
 	@ExcelProperty("账户名称")
 	private String accountName;
 
@@ -65,6 +68,9 @@ public class CorpsExcel implements Serializable {
 	@ExcelProperty("外币账户名称")
 	private String accountNameFcy;
 
+	@ExcelProperty("外币币种")
+	private String current;
+
 	@ExcelProperty("外币开户银行")
 	private String accountBankFcy;
 

+ 52 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/excel/CorpsSupplierExcel.java

@@ -0,0 +1,52 @@
+package org.springblade.client.corps.excel;
+
+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 lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class CorpsSupplierExcel implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	@ExcelProperty("供应商编号(必填)")
+	private String code;
+
+	@ExcelProperty("供应商名称(必填)")
+	private String cname;
+
+	@ExcelProperty("供应商分类(必填)")
+	private String type;
+
+	@ExcelProperty("所属公司")
+    private String belongtocompany;
+
+	@ExcelProperty("供应商地址")
+	private String addr;
+
+	@ExcelProperty("账单名称")
+	private String billName;
+
+	@ExcelProperty("开户银行")
+	private String accountBank;
+
+	@ExcelProperty("银行账号")
+	private String accountNo;
+
+	@ExcelProperty("外币币种")
+	private String current;
+
+	@ExcelProperty("外币开户银行")
+	private String accountBankFcy;
+
+	@ExcelProperty("外币银行账号")
+	private String accountNoFcy;
+
+
+}

+ 21 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/ICorpsDescService.java

@@ -16,7 +16,9 @@
  */
 package org.springblade.client.corps.service;
 
+import org.springblade.client.corps.excel.CorpsCompanyExcel;
 import org.springblade.client.corps.excel.CorpsExcel;
+import org.springblade.client.corps.excel.CorpsSupplierExcel;
 import org.springblade.client.entity.CorpsDesc;
 import org.springblade.client.entity.GoodsDesc;
 import org.springblade.client.vo.CorpsDescVO;
@@ -95,4 +97,23 @@ public interface ICorpsDescService extends IService<CorpsDesc> {
 	 */
 	R importUser(List<CorpsExcel> data,Boolean isCovered,String corpType);
 
+	/**
+	 * 导入客户联系人
+	 *
+	 * @param data
+	 * @param
+	 * @return
+	 */
+	R importCompanyDesc(List<CorpsCompanyExcel> data, Boolean isCovered, String corpType);
+
+	/**
+	 * 导入客户联系人
+	 *
+	 * @param data
+	 * @param
+	 * @return
+	 */
+	R importSupplierDesc(List<CorpsSupplierExcel> data, Boolean isCovered, String corpType);
+
+
 }

+ 192 - 3
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsDescServiceImpl.java

@@ -8,7 +8,10 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.AllArgsConstructor;
+import org.springblade.client.corps.excel.CorpsCompanyExcel;
 import org.springblade.client.corps.excel.CorpsExcel;
+import org.springblade.client.corps.excel.CorpsSupplierExcel;
+import org.springblade.client.corps.mapper.CorpsAddrMapper;
 import org.springblade.client.corps.mapper.CorpsDescMapper;
 import org.springblade.client.corps.mapper.CorpsTypeDescMapper;
 import org.springblade.client.corps.mapper.CorpsTypeMapper;
@@ -47,8 +50,10 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 	private CorpsTypeServiceImpl corpsTypeService;
 	private CorpsTypeMapper corpsTypeMapper;
 	private CorpsAddrServiceImpl corpsAddrService;
-	@Autowired
-	private CorpsTypeDescMapper middleMapper;
+
+	private final CorpsTypeDescMapper middleMapper;
+
+	private final CorpsAddrMapper corpsAddrMapper;
 
 	@Override
 	public IPage<CorpsDescVO> selectCorpsDescPage(IPage<CorpsDescVO> page, CorpsDescVO corpsDesc) {
@@ -209,10 +214,11 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 					corpsDesc.setCompanytype(e.getCompanytype());
 					corpsDesc.setPosition(e.getPosition());
 					corpsDesc.setCorpsTypeId(String.valueOf(corpsType.getId()));
-					corpsDesc.setCorpType(corpType);
+					corpsDesc.setCorpType("KH");
 					//名称相等视为重复数据
 					LambdaQueryWrapper<CorpsDesc> queryWrapper = new LambdaQueryWrapper<>();
 					queryWrapper.eq(CorpsDesc::getCname,corpsDesc.getCname());
+					queryWrapper.eq(CorpsDesc::getCorpType,"KH");
 					queryWrapper.eq(CorpsDesc::getIsDeleted,0);
 					CorpsDesc selectOne = baseMapper.selectOne(queryWrapper);
 					if(selectOne==null)
@@ -229,6 +235,25 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 						middle.setCreateUser(AuthUtil.getUserId());
 						middle.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
 						middleMapper.insert(middle);
+
+						//绑定收货地址
+						String addressList = e.getAddressList();
+						String[] split = addressList.split("-");
+						List<String> list = Arrays.asList(split);
+						if(CollectionUtils.isNotEmpty(list))
+						{
+							list.forEach(lt->{
+								CorpsAddr corpsAddr=new CorpsAddr();
+								corpsAddr.setPid(corpsDesc.getId());
+								corpsAddr.setAddr(lt);
+								corpsAddr.setCreateTime(new Date());
+								corpsAddr.setCreateUser(AuthUtil.getUserId());
+								corpsAddrMapper.insert(corpsAddr);
+							});
+
+
+						}
+
 					}
 					else
 					{
@@ -262,6 +287,170 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 		}
 	}
 
+	@Override
+	@Transactional
+	public R importCompanyDesc(List<CorpsCompanyExcel> data, Boolean isCovered, String corpType)
+	{
+		try {
+			if(org.springframework.util.CollectionUtils.isEmpty(data))
+			{
+				throw new SecurityException("导入数据不能为空");
+			}
+			List<Boolean> countList=new ArrayList<>();
+
+			data.forEach(e->{
+				String type = e.getType();
+				CorpsType corpsType = corpsTypeMapper.selectCorpsTypeCname(type, AuthUtil.getTenantId());
+				if(corpsType!=null)
+				{
+					countList.add(true);
+					CorpsDesc corpsDesc=new CorpsDesc();
+					corpsDesc.setCode(e.getCode());
+					corpsDesc.setCname(e.getCname());
+					corpsDesc.setAccountBank(e.getAccountBank());
+					corpsDesc.setAccountNo(e.getAccountNo());
+					corpsDesc.setAccountBankFcy(e.getAccountBankFcy());
+					corpsDesc.setTenantId(AuthUtil.getTenantId());
+					corpsDesc.setAccountNoFcy(e.getAccountNoFcy());
+					corpsDesc.setCorpsTypeId(String.valueOf(corpsType.getId()));
+					corpsDesc.setCorpType("GS");
+					//名称相等视为重复数据
+					LambdaQueryWrapper<CorpsDesc> queryWrapper = new LambdaQueryWrapper<>();
+					queryWrapper.eq(CorpsDesc::getCname,corpsDesc.getCname());
+					queryWrapper.eq(CorpsDesc::getIsDeleted,0);
+					queryWrapper.eq(CorpsDesc::getCorpType,"GS");
+					CorpsDesc selectOne = baseMapper.selectOne(queryWrapper);
+					if(selectOne==null)
+					{
+						corpsDesc.setCorpType("GS");
+						corpsDesc.setCreateTime(new Date());
+						corpsDesc.setCreateUser(AuthUtil.getUserId());
+						corpsDesc.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+						baseMapper.insert(corpsDesc);
+
+						CorpsTypeDesc middle=new CorpsTypeDesc();
+						middle.setCorpId(corpsDesc.getId());
+						middle.setCorpTypeId(corpsType.getId());
+						middle.setCreateTime(new Date());
+						middle.setCreateUser(AuthUtil.getUserId());
+						middle.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+						middleMapper.insert(middle);
+					}
+					else
+					{
+						corpsDesc.setCorpType("GS");
+						corpsDesc.setId(selectOne.getId());
+						corpsDesc.setUpdateTime(new Date());
+						corpsDesc.setUpdateUser(AuthUtil.getUserId());
+						baseMapper.updateById(corpsDesc);
+					}
+				}
+				else
+				{
+					countList.add(false);
+				}
+			});
+			List<Boolean> booleanList = countList.stream().filter(e -> e == true).collect(Collectors.toList());
+			if(data.size()>booleanList.size())
+			{
+				return R.fail("导入中的数据,输入的公司分类不存在或者未填分类字段");
+			}
+			else if(data.size()==booleanList.size())
+			{
+				return R.success("导入成功");
+			}
+			else
+			{
+				throw new SecurityException("导入失败,请仔细检查导入数据");
+			}
+
+		} catch (Exception e) {
+			throw new SecurityException("请检查导入数据");
+		}
+	}
+
+	@Override
+	@Transactional
+	public R importSupplierDesc(List<CorpsSupplierExcel> data, Boolean isCovered, String corpType)
+	{
+		try {
+			if(org.springframework.util.CollectionUtils.isEmpty(data))
+			{
+				throw new SecurityException("导入数据不能为空");
+			}
+			List<Boolean> countList=new ArrayList<>();
+
+			data.forEach(e->{
+				String type = e.getType();
+				CorpsType corpsType = corpsTypeMapper.selectCorpsTypeCname(type, AuthUtil.getTenantId());
+				if(corpsType!=null)
+				{
+					countList.add(true);
+					CorpsDesc corpsDesc=new CorpsDesc();
+					corpsDesc.setCode(e.getCode());
+					corpsDesc.setCname(e.getCname());
+					corpsDesc.setAccountBank(e.getAccountBank());
+					corpsDesc.setAccountNo(e.getAccountNo());
+					corpsDesc.setAccountBankFcy(e.getAccountBankFcy());
+					corpsDesc.setTenantId(AuthUtil.getTenantId());
+					corpsDesc.setAccountNoFcy(e.getAccountNoFcy());
+					corpsDesc.setCorpsTypeId(String.valueOf(corpsType.getId()));
+					corpsDesc.setCorpType("GYS");
+					//名称相等视为重复数据
+					LambdaQueryWrapper<CorpsDesc> queryWrapper = new LambdaQueryWrapper<>();
+					queryWrapper.eq(CorpsDesc::getCname,corpsDesc.getCname());
+					queryWrapper.eq(CorpsDesc::getIsDeleted,0);
+					queryWrapper.eq(CorpsDesc::getCorpType,"GYS");
+					CorpsDesc selectOne = baseMapper.selectOne(queryWrapper);
+					if(selectOne==null)
+					{
+						corpsDesc.setCorpType("GYS");
+						corpsDesc.setCreateTime(new Date());
+						corpsDesc.setCreateUser(AuthUtil.getUserId());
+						corpsDesc.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+						baseMapper.insert(corpsDesc);
+
+						CorpsTypeDesc middle=new CorpsTypeDesc();
+						middle.setCorpId(corpsDesc.getId());
+						middle.setCorpTypeId(corpsType.getId());
+						middle.setCreateTime(new Date());
+						middle.setCreateUser(AuthUtil.getUserId());
+						middle.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+						middleMapper.insert(middle);
+					}
+					else
+					{
+						corpsDesc.setCorpType("GYS");
+						corpsDesc.setId(selectOne.getId());
+						corpsDesc.setUpdateTime(new Date());
+						corpsDesc.setUpdateUser(AuthUtil.getUserId());
+						baseMapper.updateById(corpsDesc);
+					}
+				}
+				else
+				{
+					countList.add(false);
+				}
+			});
+			List<Boolean> booleanList = countList.stream().filter(e -> e == true).collect(Collectors.toList());
+			if(data.size()>booleanList.size())
+			{
+				return R.fail("导入中的数据,输入的公司分类不存在或者未填分类字段");
+			}
+			else if(data.size()==booleanList.size())
+			{
+				return R.success("导入成功");
+			}
+			else
+			{
+				throw new SecurityException("导入失败,请仔细检查导入数据");
+			}
+
+		} catch (Exception e) {
+			throw new SecurityException("请检查导入数据");
+		}
+	}
+
 
 	/**
 	 * 保护客户联系人信息