Browse Source

1.销售订单列表权限修改
2.盘点单不能录入负数
3.结算列表导出增加日期条件
4.出库完成增加排序

纪新园 15 hours ago
parent
commit
7e325e6b26

+ 23 - 19
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/OrderController.java

@@ -24,6 +24,7 @@ import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.core.tool.utils.StringUtil;
 import org.springblade.salesPart.annotation.VersionControl;
+import org.springblade.salesPart.check.service.IAuditProecessService;
 import org.springblade.salesPart.corps.service.ICorpsAttnService;
 import org.springblade.salesPart.corps.service.ICorpsDescService;
 import org.springblade.salesPart.entity.*;
@@ -74,6 +75,8 @@ public class OrderController extends BladeController {
 
 	private final IGoodsDescService goodsDescService;
 
+	private final IAuditProecessService auditProecessService;
+
 
 	/**
 	 * 销售详情
@@ -108,7 +111,7 @@ public class OrderController extends BladeController {
 				PjOrder::getGoodsTotalShipNum, PjOrder::getSalesAmount, PjOrder::getRefno, PjOrder::getPrimaryGoodsTotalNum,
 				PjOrder::getPrimaryFundingAmount, PjOrder::getUseAdvanceChargeAmount, PjOrder::getProduceAdvanceChargeAmount, PjOrder::getVersion,
 				PjOrder::getDeliveryBusinesDate, PjOrder::getSalesCompanyId, PjOrder::getBillType, PjOrder::getRemarks,
-				PjOrder::getPaymentRecoveredBalance,PjOrder::getGenerateTask)
+				PjOrder::getPaymentRecoveredBalance, PjOrder::getGenerateTask)
 			.eq(PjOrder::getTenantId, selectedUser.getTenantId())
 			.eq(PjOrder::getIsDeleted, 0)
 			.eq(PjOrder::getBsType, order.getBsType())
@@ -182,21 +185,14 @@ public class OrderController extends BladeController {
 		String userRole = AuthUtil.getUserRole();
 		if (!userRole.contains("admin") && !userRole.contains("老板") && !userRole.contains("客服")) {
 			if (userRole.contains("业务员")) {
-				if (ObjectUtils.isNotNull(userStorageId) && whetherDatabaseSharding) {
-					lambdaQueryWrapper.and(e -> e.eq(PjOrder::getSalerId, selectedUser.getUserId()).or().apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')"));
-					// lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
-				} else {
-					lambdaQueryWrapper.eq(PjOrder::getSalerId, selectedUser.getUserId());
-				}
+				lambdaQueryWrapper.eq(PjOrder::getSalerId, selectedUser.getUserId());
 			} else if (userRole.contains("客户")) {
 				lambdaQueryWrapper.eq(PjOrder::getCreateUser, selectedUser.getUserId());
-			} else if (ObjectUtils.isNotNull(userStorageId) && whetherDatabaseSharding) {
-				lambdaQueryWrapper.apply("find_in_set(storage_id,'" + userStorageId + "')");
 			}
 		}
-/*		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+		if (ObjectUtils.isNotNull(userStorageId) && whetherDatabaseSharding) {
 			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
-		}*/
+		}
 		lambdaQueryWrapper.eq(ObjectUtils.isNotNull(order.getStorageId()), PjOrder::getStorageId, order.getStorageId());
 		IPage<PjOrder> pages = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
 		if (CollectionUtils.isNotEmpty(pages.getRecords())) {
@@ -332,14 +328,18 @@ public class OrderController extends BladeController {
 				" OR (business_source = '额度支付' AND FIND_IN_SET( actual_payment_status, '0,1,2,3,4' )))");
 		}
 		lambdaQueryWrapper.orderByDesc(PjOrder::getCreateTime);
-		if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("老板")) {
-			if (AuthUtil.getUserRole().contains("业务员")) {
-				lambdaQueryWrapper.eq(PjOrder::getSalerId, AuthUtil.getUserId());
-			} else if (AuthUtil.getUserRole().contains("客户")) {
-				lambdaQueryWrapper.eq(PjOrder::getCreateUser, AuthUtil.getUserId());
+		String userStorageId = ParameterUtils.getStorageId();
+		boolean whetherDatabaseSharding = ParameterUtils.whetherDatabaseSharding();
+		// selectedUser
+		String userRole = AuthUtil.getUserRole();
+		if (!userRole.contains("admin") && !userRole.contains("老板") && !userRole.contains("客服")) {
+			if (userRole.contains("业务员")) {
+				lambdaQueryWrapper.eq(PjOrder::getSalerId, exportUser.getUserId());
+			} else if (userRole.contains("客户")) {
+				lambdaQueryWrapper.eq(PjOrder::getCreateUser, exportUser.getUserId());
 			}
 		}
-		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+		if (ObjectUtils.isNotNull(userStorageId) && whetherDatabaseSharding) {
 			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
 		lambdaQueryWrapper.eq(ObjectUtils.isNotNull(order.getStorageId()), PjOrder::getStorageId, order.getStorageId());
@@ -1544,12 +1544,16 @@ public class OrderController extends BladeController {
 	@RepeatSubmit
 	public R voidedDocument(@RequestParam("id") Long id) {
 		PjOrder order = orderService.getById(id);
-		if (order == null){
+		if (order == null) {
 			throw new RuntimeException("未查到单据信息");
 		}
-		if ("已生成".equals(order.getGenerateTask())){
+		if ("已生成".equals(order.getGenerateTask())) {
 			throw new RuntimeException("单据已生成,作废失败");
 		}
+		R financeProcess = auditProecessService.deteleByBillId(order.getId());
+		if (!financeProcess.isSuccess()) {
+			throw new SecurityException("操作失败,请联系管理员");
+		}
 		return R.status(orderService.removeById(id));
 	}
 

+ 14 - 11
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/impl/OrderServiceImpl.java

@@ -1076,6 +1076,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 				item.setBsType(order.getBsType());
 				BigDecimal totalAmount = item.getInventory().multiply(item.getCostprie());
 				if (ObjectUtils.isNotNull(item.getSendNum())) {
+					if (item.getSendNum().compareTo(new BigDecimal("0")) < 0) {
+						throw new RuntimeException("库存数量不能是负数");
+					}
 					BigDecimal profitLossNum = item.getSendNum().subtract(item.getInventory());
 					BigDecimal subTotalMoney = item.getSendNum().multiply(item.getCostprie());
 					BigDecimal profitLossAmount = profitLossNum.multiply(item.getCostprie());
@@ -1261,7 +1264,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 					}
 
 					stockOne.setBalanceQuantity(item.getSendNum());
-					stockOne.setBalanceQuantityHave(item.getSendNumHave());
+					stockOne.setBalanceQuantityHave(item.getSendNum());
 					stockOne.setStoreInventory(stockOne.getBalanceQuantity());
 					stockOne.setInventoryAmount(item.getSubTotalMoney());
 					stockOne.setRebateInventoryAmount(item.getSendNum().multiply(stockOne.getRebatePrice()));
@@ -6272,9 +6275,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 			.eq(PjShip::getOrdId, order.getId())
 			.eq(PjShip::getBizTypeName, "FHRW"));
 		if (ObjectUtils.isNotNull(pjShip)) {
-			if ("已完成".equals(pjShip.getStatusName())){
+			if ("已完成".equals(pjShip.getStatusName())) {
 				throw new RuntimeException("出库已完成,禁止撤销!");
-			}else{
+			} else {
 				shipMapper.deleteById(pjShip.getId());
 			}
 		} else {
@@ -6283,10 +6286,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		PjShip ship = shipMapper.selectOne(new LambdaQueryWrapper<PjShip>().eq(PjShip::getIsDeleted, 0)
 			.eq(PjShip::getOrdId, order.getId())
 			.eq(PjShip::getBizTypeName, "FHGD"));
-		if (ObjectUtils.isNotNull(ship) ){
-			if ("已出库".equals(ship.getStatusName())){
+		if (ObjectUtils.isNotNull(ship)) {
+			if ("已出库".equals(ship.getStatusName())) {
 				throw new RuntimeException("出库已完成,禁止撤销!");
-			}else{
+			} else {
 				shipMapper.deleteById(ship.getId());
 			}
 		}
@@ -7367,19 +7370,19 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 			.eq(PjShip::getOrdId, order.getId())
 			.eq(PjShip::getBizTypeName, "SHRW"));
 		if (ObjectUtils.isNotNull(pjShip)) {
-			if ("已完成".equals(pjShip.getStatusName())){
+			if ("已完成".equals(pjShip.getStatusName())) {
 				throw new RuntimeException("入库已完成,禁止撤销!");
-			}else{
+			} else {
 				shipMapper.deleteById(pjShip.getId());
 			}
 		}
 		PjShip ship = shipMapper.selectOne(new LambdaQueryWrapper<PjShip>().eq(PjShip::getIsDeleted, 0)
 			.eq(PjShip::getOrdId, order.getId())
 			.eq(PjShip::getBizTypeName, "SHGD"));
-		if (ObjectUtils.isNotNull(ship) ){
-			if ("已入库".equals(ship.getStatusName())){
+		if (ObjectUtils.isNotNull(ship)) {
+			if ("已入库".equals(ship.getStatusName())) {
 				throw new RuntimeException("入库已完成,禁止撤销!");
-			}else{
+			} else {
 				shipMapper.deleteById(ship.getId());
 			}
 		}

+ 7 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/settlement/controller/SettlementController.java

@@ -172,13 +172,19 @@ public class SettlementController extends BladeController {
 	public void pjCorpsExport(PjSettlement settlement, HttpServletResponse response) {
 		LambdaQueryWrapper<PjSettlement> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 		lambdaQueryWrapper.eq(ObjectUtils.isNotNull(settlement.getCorpId()), PjSettlement::getCorpId, settlement.getCorpId());
+		lambdaQueryWrapper.like(ObjectUtils.isNotNull(settlement.getCorpName()), PjSettlement::getCorpName, settlement.getCorpName());
 		lambdaQueryWrapper.like(ObjectUtils.isNotNull(settlement.getSysNo()), PjSettlement::getSysNo, settlement.getSysNo());
 		lambdaQueryWrapper.like(ObjectUtils.isNotNull(settlement.getContractNumber()), PjSettlement::getContractNumber, settlement.getContractNumber());
 		lambdaQueryWrapper.eq(ObjectUtils.isNotNull(settlement.getAccountId()), PjSettlement::getAccountId, settlement.getAccountId());
 		lambdaQueryWrapper.eq(ObjectUtils.isNotNull(settlement.getFinanceStatus()), PjSettlement::getFinanceStatus, settlement.getFinanceStatus());
 		lambdaQueryWrapper.eq(ObjectUtils.isNotNull(settlement.getSettlementDate()), PjSettlement::getSettlementDate, settlement.getSettlementDate());
-		lambdaQueryWrapper.eq(ObjectUtils.isNotNull(settlement.getSalesCompanyId()), PjSettlement::getSalesCompanyId, settlement.getSalesCompanyId());
+		lambdaQueryWrapper.eq(PjSettlement::getSalesCompanyId, AuthUtil.getDeptId());//公司
 		lambdaQueryWrapper.eq(ObjectUtils.isNotNull(settlement.getDc()), PjSettlement::getDc, settlement.getDc());
+		if (ObjectUtils.isNotNull(settlement.getSettlementDateList()) && !settlement.getSettlementDateList().isEmpty()) {
+			lambdaQueryWrapper.ge(PjSettlement::getSettlementDate, settlement.getSettlementDateList().get(0));
+			lambdaQueryWrapper.le(PjSettlement::getSettlementDate, settlement.getSettlementDateList().get(1));
+		}
+		lambdaQueryWrapper.eq(PjSettlement::getTenantId, AuthUtil.getTenantId()).eq(PjSettlement::getIsDeleted, 0);
 		lambdaQueryWrapper.orderByDesc(PjSettlement::getCreateTime);
 		List<PjSettlement> list = settlementService.list(lambdaQueryWrapper);
 		for (PjSettlement item : list) {

+ 4 - 3
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/service/impl/ShipServiceImpl.java

@@ -1196,7 +1196,8 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 							if (new BigDecimal("0").compareTo(shipItems.getSendNumFinancing()) == 0) {
 								continue;
 							}
-							List<PjOrderItems> orderItemList = orderItemsList.stream().filter(e -> e.getGoodsId().equals(shipItems.getGoodsId())).collect(Collectors.toList());
+							List<PjOrderItems> orderItemList = orderItemsList.stream().filter(e -> e.getGoodsId().equals(shipItems.getGoodsId()))
+								.sorted(Comparator.comparing(PjOrderItems::getCreateTime)).collect(Collectors.toList());
 							if (orderItemList.isEmpty()) {
 								throw new RuntimeException("商品:" + shipItems.getGoodsName() + "超过" + days + "天未赎回,请确认在出库");
 							}
@@ -2614,7 +2615,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				item.setPattern(goodsDesc.getBrandItem());
 				item.setGoodsDescription(goodsDesc.getGoodsDescription());
 				if ("0".equals(goodsDesc.getWhether())) {//未开启管理批次号
-						item.setDot(null);
+					item.setDot(null);
 				} /*else {//已开启批次号管理
 					if (ObjectUtil.isEmpty(itemExcel.getDot())) {
 						text.append("第").append(i + 2).append("行,商品已开启管理批次号,请填写批次号").append("\n");
@@ -7024,7 +7025,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 			PjGoodsDesc goodsDesc = goodsDescList.stream().filter(e -> e.getCname().equals(item.getGoodsName())).findFirst().orElse(null);
 			shipItems.setDot(item.getDot());
 			if (goodsDesc != null) {
-				if ("0".equals(goodsDesc.getWhether())){
+				if ("0".equals(goodsDesc.getWhether())) {
 					shipItems.setDot(null);
 				}
 			}