Browse Source

2024年10月25日17:19:24

纪新园 1 year ago
parent
commit
09c23eb076

+ 31 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/excel/GoodsDescExportExcel.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;
 
 import java.io.Serializable;
@@ -68,6 +69,36 @@ public class GoodsDescExportExcel implements Serializable {
 	private String goodsDescription;
 
 	/**
+	 * 花纹
+	 */
+	@ExcelProperty(value = "花纹")
+	private String brandItem;
+
+	/**
+	 * 防爆(0否,1是)
+	 */
+	@ExcelProperty(value = "防爆(0否,1是)")
+	private Integer explosionProof;
+
+	/**
+	 * 静音棉
+	 */
+	@ExcelProperty(value = "静音棉")
+	private String originalFactory;
+
+	/**
+	 * 自修补
+	 */
+	@ExcelProperty(value = "自修补")
+	private String selfRecovery;
+
+	/**
+	 * 尺寸
+	 */
+	@ExcelProperty(value = "尺寸")
+	private String goodsSize;
+
+	/**
 	 * 商品IDS
 	 */
 	@ExcelProperty(value = "商品IDS")

+ 6 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/excel/GoodsExcel.java

@@ -137,4 +137,10 @@ public class GoodsExcel implements Serializable {
 	@ExcelProperty(value = "配套标记")
 	private String matchedMarkings;
 
+	/**
+	 * 商品IDS
+	 */
+	@ExcelProperty(value = "商品IDS")
+	private String goodIds;
+
 }

+ 3 - 0
blade-service/blade-los/src/main/java/org/springblade/los/Util/MagicValues.java

@@ -23,7 +23,10 @@ public class MagicValues {
 	public static final String PAID = "付费";
 	public static final String SETTLEMENT_CENTER = "结算中心";
 	public static final String MEET = "应付";
+	public static final String MEET_BILL = "应付-账单";
 	public static final String RECEIVABLE = "应收";
+
+	public static final String RECEIVABLE_BILL = "应收-账单";
 	public static final String DISPATCH_NOTICE = "派车通知单";
 	public static final String INCOMING_NOTIFICATION = "入货通知";
 	public static final String SALES_REPORT = "销售报告";

+ 33 - 5
blade-service/blade-los/src/main/java/org/springblade/los/app/service/impl/IndexServiceImpl.java

@@ -17,9 +17,11 @@ import org.springblade.los.business.sea.mapper.BillsMapper;
 import org.springblade.los.finance.fee.entity.FeeCenter;
 import org.springblade.los.finance.fee.mapper.FeeCenterMapper;
 import org.springblade.los.finance.fee.mapper.FinAccBillsMapper;
+import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -38,28 +40,54 @@ public class IndexServiceImpl implements IndexService {
 	private final FinAccBillsMapper finAccBillsMapper;
 	private final FeeCenterMapper feeCenterMapper;
 	private final IDeptUtils deptUtils;
+	private final ISysClient sysClient;
 
 	@Override
 	public R profit(String type, String startDate, String endDate) {
 		BigDecimal amountD = new BigDecimal("0.00");
 		BigDecimal amountC = new BigDecimal("0.00");
-		List<Bills> billsList = billsMapper.selectList(new LambdaQueryWrapper<Bills>()
+		LambdaQueryWrapper<Bills> lambdaQueryWrapper = new LambdaQueryWrapper<Bills>()
 			.eq(Bills::getTenantId, AuthUtil.getTenantId())
 			.eq(Bills::getIsDeleted, 0)
-			.eq(AuthUtil.getUserRole().contains("业务员"), Bills::getSrcId, AuthUtil.getUserId())
 			.apply("find_in_set(bill_type,'DD,MM')")
 			.eq(ObjectUtils.isNotNull(type), Bills::getBranchId, type)
 			.ge(ObjectUtils.isNotNull(startDate), Bills::getBillDate, startDate)
-			.le(ObjectUtils.isNotNull(endDate), Bills::getBillDate, endDate));
+			.le(ObjectUtils.isNotNull(endDate), Bills::getBillDate, endDate);
+		String jurisdiction = sysClient.getParamService("data.jurisdiction");
+		if ("1".equals(jurisdiction)) {
+			if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("老板")
+				&& !AuthUtil.getUserRole().contains("副总") && !AuthUtil.getUserRole().contains("财务")
+				&& !AuthUtil.getUserRole().contains("经理")) {
+				if (AuthUtil.getUserRole().contains("操作经理")) {
+					lambdaQueryWrapper.like(Bills::getOperatorDept, AuthUtil.getDeptId());
+				} else if (AuthUtil.getUserRole().contains("操作员")) {
+					lambdaQueryWrapper.like(Bills::getOperatorId, AuthUtil.getUserId());
+				} else if (AuthUtil.getUserRole().contains("销售经理")) {
+					lambdaQueryWrapper.like(Bills::getSrcDeptId, AuthUtil.getDeptId());
+				} else if (AuthUtil.getUserRole().contains("业务员")) {
+					lambdaQueryWrapper.like(Bills::getSrcId, AuthUtil.getUserId());
+				} else {
+					lambdaQueryWrapper.eq(Bills::getCreateUser, AuthUtil.getUserId());
+				}
+				lambdaQueryWrapper.eq(Bills::getBranchId, deptUtils.getDeptPid());
+			}
+		}
+		List<Bills> billsList = billsMapper.selectList(lambdaQueryWrapper);
 		amountD = billsList.stream().map(Bills::getAmountDrLoc).reduce(BigDecimal.ZERO, BigDecimal::add);
 		amountC = billsList.stream().map(Bills::getAmountCrLoc).reduce(BigDecimal.ZERO, BigDecimal::add);
-		List<Amends> amendsList = amendsMapper.selectList(new LambdaQueryWrapper<Amends>()
+		List<Long> billIds = new ArrayList<>();
+		if (!billsList.isEmpty()) {
+			billIds = billsList.stream().map(Bills::getId).collect(Collectors.toList());
+		}
+		LambdaQueryWrapper<Amends> amendsLambdaQueryWrapper = new LambdaQueryWrapper<Amends>()
 			.eq(Amends::getTenantId, AuthUtil.getTenantId())
 			.eq(Amends::getIsDeleted, 0)
+			.in(!billIds.isEmpty(), Amends::getOrigId, billIds)
 			.apply("find_in_set(business_type,'SEA,SIA,AEA,AIA')")
 			.eq(ObjectUtils.isNotNull(type), Amends::getBranchId, type)
 			.ge(ObjectUtils.isNotNull(startDate), Amends::getBillDate, startDate)
-			.le(ObjectUtils.isNotNull(endDate), Amends::getBillDate, endDate));
+			.le(ObjectUtils.isNotNull(endDate), Amends::getBillDate, endDate);
+		List<Amends> amendsList = amendsMapper.selectList(amendsLambdaQueryWrapper);
 		if (!amendsList.isEmpty()) {
 			List<Long> ids = amendsList.stream().map(Amends::getId).collect(Collectors.toList());
 			List<FeeCenter> feeCenterList = feeCenterMapper.selectList(new LambdaQueryWrapper<FeeCenter>()

+ 16 - 13
blade-service/blade-los/src/main/java/org/springblade/los/basic/corps/service/impl/BCorpsServiceImpl.java

@@ -21,7 +21,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import io.seata.spring.annotation.GlobalTransactional;
 import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
@@ -32,7 +31,6 @@ import org.springblade.los.basic.corps.entity.*;
 import org.springblade.los.basic.corps.mapper.CorpsMapper;
 import org.springblade.los.basic.corps.service.*;
 import org.springblade.los.basic.corps.vo.BCorpsVO;
-import org.springblade.los.business.aea.entity.AeaBills;
 import org.springblade.los.excel.BCorpsExcel;
 import org.springblade.system.feign.ISysClient;
 import org.springblade.system.user.entity.User;
@@ -92,14 +90,14 @@ public class BCorpsServiceImpl extends ServiceImpl<CorpsMapper, BCorps> implemen
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public R submit(BCorps bCorpss) throws Exception{
-		Object object = StringTools.handle(bCorpss,"BCorps");
+	public R submit(BCorps bCorpss) throws Exception {
+		Object object = StringTools.handle(bCorpss, "BCorps");
 		BCorps bCorps = JSONObject.parseObject(JSONObject.toJSONString(object), BCorps.class);
 		String deptId = "";
 		String deptName = "";
 		String branchId = deptUtils.getDeptPid() + "";
 		//获取部门ids对应中文名
-		if (ObjectUtils.isNotNull(deptUtils.getDeptPid()+"")) {
+		if (ObjectUtils.isNotNull(deptUtils.getDeptPid() + "")) {
 			deptId = AuthUtil.getDeptId();
 			R<List<String>> res = sysClient.getDeptNames(AuthUtil.getDeptId());
 			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
@@ -161,7 +159,7 @@ public class BCorpsServiceImpl extends ServiceImpl<CorpsMapper, BCorps> implemen
 				throw new RuntimeException("简称不允许重复");
 			}
 			BCorps bCorps1 = baseMapper.selectById(bCorps.getId());
-			if (bCorps1 != null){
+			if (bCorps1 != null) {
 				if (!bCorps1.getCnName().equals(bCorps.getCnName())) {
 					BCorpsRename item = new BCorpsRename();
 					item.setPid(bCorps.getId());
@@ -418,14 +416,15 @@ public class BCorpsServiceImpl extends ServiceImpl<CorpsMapper, BCorps> implemen
 				.eq(BCorps::getUscc, item.getUscc())
 				.eq(BCorps::getTenantId, AuthUtil.getTenantId())
 				.eq(BCorps::getIsDeleted, 0));
-			long cname = baseMapper.selectCount(new LambdaQueryWrapper<BCorps>()
+			/*long cname = baseMapper.selectCount(new LambdaQueryWrapper<BCorps>()
 				.eq(BCorps::getCnName, item.getCnName())
 				.eq(BCorps::getTenantId, AuthUtil.getTenantId())
 				.eq(BCorps::getIsDeleted, 0));
 			long uscc = baseMapper.selectCount(new LambdaQueryWrapper<BCorps>()
 				.eq(BCorps::getUscc, item.getUscc())
 				.eq(BCorps::getTenantId, AuthUtil.getTenantId())
-				.eq(BCorps::getIsDeleted, 0));
+				.eq(BCorps::getIsDeleted, 0));*/
+			String corpTypeName = "";
 			if (corps == null) {
 				BeanUtil.copy(item, bCorps);
 				//首字母为空
@@ -434,12 +433,12 @@ public class BCorpsServiceImpl extends ServiceImpl<CorpsMapper, BCorps> implemen
 					String initials = getSpells(bCorps.getCnName());
 					bCorps.setInitials(initials.substring(0, 1));
 				}
-				if (cname > 0) {
+				/*if (cname > 0) {
 					throw new RuntimeException("中文名称" + bCorps.getCnName() + "不允许重复");
 				}
 				if (uscc > 0) {
 					throw new RuntimeException("统一社会信用代码" + bCorps.getUscc() + "不允许重复");
-				}
+				}*/
 				bCorps.setCreateTime(new Date());
 				bCorps.setCreateUser(AuthUtil.getUserId());
 				bCorps.setCreateUserName(AuthUtil.getUserName());
@@ -452,12 +451,13 @@ public class BCorpsServiceImpl extends ServiceImpl<CorpsMapper, BCorps> implemen
 				}
 				this.saveOrUpdate(bCorps);
 			} else {
-				if (cname > 1) {
+				/*if (cname > 1) {
 					throw new RuntimeException("中文名称" + bCorps.getCnName() + "不允许重复");
 				}
 				if (uscc > 1) {
 					throw new RuntimeException("统一社会信用代码" + bCorps.getUscc() + "不允许重复");
-				}
+				}*/
+				corpTypeName = corps.getCorpTypeName();
 				bCorps.setUpdateUser(AuthUtil.getUserId());
 				bCorps.setUpdateTime(new Date());
 				bCorps.setUpdateUserName(AuthUtil.getUserName());
@@ -476,12 +476,15 @@ public class BCorpsServiceImpl extends ServiceImpl<CorpsMapper, BCorps> implemen
 			}
 			//客户类别对应
 			if (ObjectUtils.isNotNull(item.getCorpTypeName())) {
+				if (ObjectUtils.isNotNull(corpTypeName)) {
+					item.setCorpTypeName(item.getCorpTypeName() + "," + corpTypeName);
+				}
 				List<BCorpsTypeDefine> bCorpsTypeDefineList = bCorpsTypeDefineService.list(new LambdaQueryWrapper<BCorpsTypeDefine>()
 					.eq(BCorpsTypeDefine::getIsDeleted, 0)
 					.eq(BCorpsTypeDefine::getTenantId, AuthUtil.getTenantId())
 					.apply(ObjectUtils.isNotNull(item.getCorpTypeName()), "find_in_set(cn_name,'" + item.getCorpTypeName() + "')"));
 				if (!bCorpsTypeDefineList.isEmpty()) {
-					bCorps.setCorpTypeName(bCorpsTypeDefineList.stream().map(BCorpsTypeDefine::getCnName).collect(Collectors.joining()));
+					bCorps.setCorpTypeName(bCorpsTypeDefineList.stream().map(BCorpsTypeDefine::getCnName).collect(Collectors.joining(",")));
 					List<Long> ids = bCorpsTypeDefineList.stream().map(BCorpsTypeDefine::getId).collect(Collectors.toList());
 					List<BCorpsTypes> bCorpsTypesList = new ArrayList<>();
 					StringBuilder typeIds = new StringBuilder();

File diff suppressed because it is too large
+ 934 - 255
blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/service/impl/ReportsServiceImpl.java


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

@@ -463,25 +463,7 @@ public class GoodsDescServiceImpl extends ServiceImpl<GoodsDescMapper, PjGoodsDe
 			goodsDesc.setOriginalFactory(e.getOriginalFactory());
 			goodsDesc.setSelfRecovery(e.getSelfRecovery());
 			goodsDesc.setGoodsSize(e.getGoodsSize());
-			PjGoodsDesc one = goodsDescList.stream().filter(i -> i.getCname().equals(e.getCname())).findFirst().orElse(null);
-			if (one == null) {
-				if (count > 0) {
-					throw new ServiceException(goodsDesc.getCode() + "编码已存在");
-				}
-				if (countName > 0) {
-					throw new ServiceException(goodsDesc.getCname() + "名称已存在");
-				}
-				goodsDesc.setTenantId(AuthUtil.getTenantId());
-				goodsDesc.setCreateTime(new Date());
-				goodsDesc.setCreateUser(AuthUtil.getUserId());
-				goodsDesc.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
-			} else {
-				if (count > 1) {
-					throw new ServiceException(goodsDesc.getCode() + "编码已存在");
-				}
-				if (countName > 1) {
-					throw new ServiceException(goodsDesc.getCname() + "名称已存在");
-				}
+			if(ObjectUtils.isNotNull(e.getGoodIds())){
 				BigDecimal balanceQuantity = stockDescList.stream().filter(item -> item.getCname().equals(e.getCname()))
 					.map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);
 				if (balanceQuantity.compareTo(new BigDecimal("0")) != 0) {
@@ -490,7 +472,37 @@ public class GoodsDescServiceImpl extends ServiceImpl<GoodsDescMapper, PjGoodsDe
 				goodsDesc.setCnameInt(getCnameInt(goodsDesc.getCname()));
 				goodsDesc.setUpdateTime(new Date());
 				goodsDesc.setUpdateUser(AuthUtil.getUserId());
-				goodsDesc.setId(one.getId());
+				goodsDesc.setId(Long.parseLong(e.getGoodIds()));
+			}else{
+				PjGoodsDesc one = goodsDescList.stream().filter(i -> i.getCname().equals(e.getCname())).findFirst().orElse(null);
+				if (one == null) {
+					if (count > 0) {
+						throw new ServiceException(goodsDesc.getCode() + "编码已存在");
+					}
+					if (countName > 0) {
+						throw new ServiceException(goodsDesc.getCname() + "名称已存在");
+					}
+					goodsDesc.setTenantId(AuthUtil.getTenantId());
+					goodsDesc.setCreateTime(new Date());
+					goodsDesc.setCreateUser(AuthUtil.getUserId());
+					goodsDesc.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+				} else {
+					if (count > 1) {
+						throw new ServiceException(goodsDesc.getCode() + "编码已存在");
+					}
+					if (countName > 1) {
+						throw new ServiceException(goodsDesc.getCname() + "名称已存在");
+					}
+					BigDecimal balanceQuantity = stockDescList.stream().filter(item -> item.getCname().equals(e.getCname()))
+						.map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);
+					if (balanceQuantity.compareTo(new BigDecimal("0")) != 0) {
+						goodsDesc.setWhether(null);
+					}
+					goodsDesc.setCnameInt(getCnameInt(goodsDesc.getCname()));
+					goodsDesc.setUpdateTime(new Date());
+					goodsDesc.setUpdateUser(AuthUtil.getUserId());
+					goodsDesc.setId(one.getId());
+				}
 			}
 			pjGoodsDescList.add(goodsDesc);
 		}

Some files were not shown because too many files changed in this diff