Browse Source

提交发版

1021934019@qq.com 4 years ago
parent
commit
de877db872

+ 1 - 1
blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/GoodsDesc.java

@@ -219,7 +219,7 @@ public class GoodsDesc implements Serializable {
 
 
 	@ApiModelProperty(value = "箱重量")
-	private String cartonWeight;
+	private BigDecimal cartonWeight;
 
 
 

+ 1 - 0
blade-service-api/blade-project-api/src/main/java/org/springblade/project/entity/ServiceProject.java

@@ -118,6 +118,7 @@ public class ServiceProject  implements Serializable {
 
 	private BigDecimal costReturn;
 
+	private BigDecimal superaddition;
 	//客户联系人名称
 	@TableField(exist = false)
 	private String corpNames;

+ 2 - 0
blade-service-api/blade-project-api/src/main/java/org/springblade/project/entity/ServiceProjectItem.java

@@ -130,6 +130,8 @@ public class ServiceProjectItem extends TenantEntity implements Serializable {
 
 	private BigDecimal costReturn;
 
+	private BigDecimal superaddition;
+
 	private Integer projectType;
     @TableField(exist = false)
 	private BigDecimal grossIncome;

+ 27 - 0
blade-service/blade-client/src/main/java/org/springblade/client/goods/controller/GoodsDescController.java

@@ -39,6 +39,7 @@ import org.springblade.client.entity.*;
 import org.springblade.client.goods.enums.GoodsTypeEnum;
 import org.springblade.client.goods.excel.GoodsExcel;
 import org.springblade.client.goods.excel.GoodsImport;
+import org.springblade.client.goods.excel.GoodsInfoExcel;
 import org.springblade.client.goods.service.IGoodsFilesService;
 import org.springblade.client.goods.service.IGoodsPriceService;
 import org.springblade.core.excel.util.ExcelUtil;
@@ -298,4 +299,30 @@ public class GoodsDescController extends BladeController {
 		ExcelUtil.export(response, "导入模板", "导入数据表", list, GoodsExcel.class);
 	}
 
+
+	/**
+	 * 导出模板
+	 */
+	@GetMapping("/export-template-info")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "导出模板")
+	public void exportGoodsInfo(HttpServletResponse response) {
+		List<GoodsInfoExcel> list = new ArrayList<>();
+		ExcelUtil.export(response, "导出模板", "导出数据表", list, GoodsInfoExcel.class);
+	}
+
+	/**
+	 * 导入产品信息
+	 */
+	@PostMapping("/import-desc-info")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "导入商品资料", notes = "传入excel")
+	public R importDescInfo(MultipartFile file) {
+		List<GoodsInfoExcel> excelList = ExcelUtil.read(file, GoodsInfoExcel.class);
+		if(CollectionUtils.isEmpty(excelList))
+		{
+			throw new SecurityException("数据不能为空");
+		}
+		return goodsDescService.importGoodsInfo(excelList,false);
+	}
 }

+ 73 - 0
blade-service/blade-client/src/main/java/org/springblade/client/goods/excel/GoodsInfoExcel.java

@@ -0,0 +1,73 @@
+package org.springblade.client.goods.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 javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+import java.math.BigDecimal;
+/**
+ * 商品信息
+ * */
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class GoodsInfoExcel implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	@ExcelProperty("商品编码(必填)")
+	private String code;
+
+	@ExcelProperty("商品名称(必填)")
+	private String cname;
+
+	@ExcelProperty("产品分类(必填)")
+	private String type;
+
+	@ExcelProperty("花纹(必填)")
+	private String brandItem;
+
+	@ExcelProperty("品牌(必填)")
+	private String brand;
+
+	@ExcelProperty("规格(必填)")
+	private String typeNo;
+
+	@ExcelProperty("规格1(必填)")
+	private String specsOne;
+
+	@ExcelProperty("规格2(必填)")
+	private String specsTwo;
+
+	@ExcelProperty("级别(必填)")
+	private String level;
+
+	@ExcelProperty("产地(必填)")
+	private String placeProduction;
+
+	@ExcelProperty("三包")
+	private String threeGuarantees;
+
+	@ExcelProperty("供应商(必填)")
+	private String corpName;
+
+	@ExcelProperty("备注")
+	private String remarks;
+
+	@ExcelProperty("箱体积(必填)")
+	private BigDecimal cntrVolumn;
+
+	@ExcelProperty("箱重量(必填)")
+	private BigDecimal cartonWeight;
+
+
+
+
+
+
+
+}

+ 6 - 0
blade-service/blade-client/src/main/java/org/springblade/client/goods/service/IGoodsDescService.java

@@ -19,6 +19,7 @@ package org.springblade.client.goods.service;
 import org.springblade.client.corps.excel.CorpsExcel;
 import org.springblade.client.entity.GoodsDesc;
 import org.springblade.client.goods.excel.GoodsExcel;
+import org.springblade.client.goods.excel.GoodsInfoExcel;
 import org.springblade.client.vo.GoodsDescVO;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -93,4 +94,9 @@ public interface IGoodsDescService extends IService<GoodsDesc> {
 	 * @return
 	 */
 	R importGoods(List<GoodsExcel> data, Boolean isCovered);
+
+	/**
+	 * 导入产品信息
+	 * */
+	R importGoodsInfo(List<GoodsInfoExcel> data,Boolean isCovered);
 }

+ 69 - 0
blade-service/blade-client/src/main/java/org/springblade/client/goods/service/impl/GoodsDescServiceImpl.java

@@ -27,6 +27,7 @@ import lombok.AllArgsConstructor;
 import org.springblade.client.entity.*;
 import org.springblade.client.feign.ICorpsDescClient;
 import org.springblade.client.goods.excel.GoodsExcel;
+import org.springblade.client.goods.excel.GoodsInfoExcel;
 import org.springblade.client.goods.mapper.*;
 import org.springblade.client.goods.service.IGoodsDescService;
 import org.springblade.client.vo.GoodsDescVO;
@@ -35,6 +36,7 @@ import org.springblade.core.mp.support.Condition;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -425,4 +427,71 @@ public class GoodsDescServiceImpl extends ServiceImpl<GoodsDescMapper, GoodsDesc
 
 	}
 
+	@Override
+	public R importGoodsInfo(List<GoodsInfoExcel> data, Boolean isCovered) {
+		if(org.springframework.util.CollectionUtils.isEmpty(data))
+		{
+			throw new SecurityException("导入数据不能为空");
+		}
+		StringBuffer errMsg= new StringBuffer();
+
+		for(int i=0;i<data.size();i++)
+		{
+			GoodsInfoExcel goodsExcel = data.get(i);
+			String type = goodsExcel.getType();
+			GoodsType goodsType = goodsTypeMapper.selectGoodsTypeCname(type, AuthUtil.getTenantId());
+			if(goodsType==null)
+			{
+				errMsg.append("第"+i+"行未添加分类或者分类不存在,");
+			}
+		}
+
+		data.forEach(e->{
+			String type = e.getType();
+			GoodsType goodsType = goodsTypeMapper.selectGoodsTypeCname(type, AuthUtil.getTenantId());
+			if(goodsType!=null)
+			{
+				GoodsDesc goodsDesc=new GoodsDesc();
+				BeanUtils.copyProperties(e,goodsDesc);
+
+				//获取供应商
+				goodsDesc.setCorpName(e.getCorpName());
+				goodsDesc.setCntrVolumn(e.getCntrVolumn());
+				goodsDesc.setCartonWeight(e.getCartonWeight());
+				goodsDesc.setType(0L);
+				goodsDesc.setGoodsTypeId(String.valueOf(goodsType.getId()));
+				//如果名称相等 就认为重复
+				LambdaQueryWrapper<GoodsDesc> queryWrapper = new LambdaQueryWrapper<>();
+				queryWrapper.eq(GoodsDesc::getTenantId,AuthUtil.getTenantId());
+				queryWrapper.eq(GoodsDesc::getCname,goodsDesc.getCname());
+				queryWrapper.eq(GoodsDesc::getIsDeleted,0);
+				GoodsDesc one = goodsDescMapper.selectOne(queryWrapper);
+
+				if(one==null)
+				{
+					goodsDesc.setCreateTime(new Date());
+					goodsDesc.setCreateUser(AuthUtil.getUserId());
+					goodsDesc.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+					goodsDescMapper.insert(goodsDesc);
+
+					GoodsTypeDesc goodsTypeDes=new GoodsTypeDesc();
+					goodsTypeDes.setGoodsId(goodsDesc.getId());
+					goodsTypeDes.setGoodsTypeId(goodsType.getId());
+					goodsTypeDes.setCreateTime(new Date());
+					goodsTypeDes.setCreateUser(AuthUtil.getUserId());
+					goodsTypeDes.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+					goodsTypeDescMapper.insert(goodsTypeDes);
+				}
+				else
+				{
+					goodsDesc.setId(one.getId());
+					goodsDesc.setUpdateTime(new Date());
+					goodsDesc.setUpdateUser(AuthUtil.getUserId());
+					goodsDescMapper.updateById(goodsDesc);
+				}
+			}
+		});
+		return R.success("ok");
+	}
+
 }

+ 2 - 0
blade-service/blade-project/src/main/java/org/springblade/project/service/impl/ServiceProjectServiceImpl.java

@@ -217,9 +217,11 @@ public class ServiceProjectServiceImpl extends ServiceImpl<ServiceProjectMapper,
 		BigDecimal totalServiceCharge = serviceProjectItems.stream().filter(e -> e.getServiceCharge() != null).map(ServiceProjectItem::getServiceCharge).reduce(BigDecimal.ZERO, BigDecimal::add);
 		BigDecimal totalMatMoney = serviceProjectItems.stream().filter(e -> e.getMatMoney() != null).map(ServiceProjectItem::getMatMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
 		BigDecimal totalCostReturn = serviceProjectItems.stream().filter(e -> e.getCostReturn() != null).map(ServiceProjectItem::getCostReturn).reduce(BigDecimal.ZERO, BigDecimal::add);
+		BigDecimal superaddition = serviceProjectItems.stream().filter(e -> e.getSuperaddition() != null).map(ServiceProjectItem::getSuperaddition).reduce(BigDecimal.ZERO, BigDecimal::add);
 		serviceProject.setServiceCharge(totalServiceCharge);
 		serviceProject.setMatMoney(totalMatMoney);
 		serviceProject.setCostReturn(totalCostReturn);
+		serviceProject.setSuperaddition(superaddition);
 		serviceProjectMapper.updateById(serviceProject);
 	}
 

+ 14 - 0
blade-service/blade-user/src/main/java/org/springblade/system/user/controller/UserController.java

@@ -17,8 +17,10 @@
 package org.springblade.system.user.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.StringUtils;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -100,6 +102,18 @@ public class UserController {
 		return R.data(userVO);
 	}
 
+	@GetMapping("/userList")
+	public R  userList(UserVO userVO)
+	{
+		LambdaQueryWrapper<User> lambdaQueryWrapper=new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.like(StringUtils.isNotBlank(userVO.getRealName()),User::getRealName,userVO.getRealName())
+			.eq(User::getTenantId,AuthUtil.getTenantId())
+			.eq(User::getIsDeleted,0);
+		return  R.data(userService.list(lambdaQueryWrapper));
+	}
+
+
+
 	/**
 	 * 用户列表
 	 */