Ver código fonte

2022年11月7日13:32:17

纪新园 3 anos atrás
pai
commit
155c0aa441

+ 6 - 0
blade-service-api/blade-client-api/src/main/java/org/springblade/client/dto/CorpsDescDto.java

@@ -201,5 +201,11 @@ public class CorpsDescDto implements Serializable {
 	@TableField(exist = false)
 	private String appStatus;
 
+	/**
+	 * 授信额度
+	 */
+	@ApiModelProperty(value = "授信额度")
+	private BigDecimal creditGrant;
+
 
 }

+ 3 - 1
blade-service/blade-client/src/main/java/org/springblade/client/corps/controller/CorpsDescPartsController.java

@@ -83,7 +83,9 @@ public class CorpsDescPartsController extends BladeController {
 				//已收账款
 				corpsDescDto1.setSettlmentAmount(orderList.stream().map(Order::getSettlmentAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
 				//预(收)付款
-				corpsDescDto1.setAdvancePayment(orderList.stream().map(Order::getAdvancePayment).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+				BigDecimal creditGrant = new BigDecimal("0.00");
+				creditGrant = corpsDescDto1.getCreditGrant().subtract(orderList.stream().map(Order::getAdvancePayment).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+				corpsDescDto1.setAdvancePayment(creditGrant);
 			} else {
 				//未收账款
 				corpsDescDto1.setBalanceAmount(new BigDecimal(0));

+ 5 - 4
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsDescServiceImpl.java

@@ -20,10 +20,7 @@ import org.springblade.client.vo.CorpsDescVO;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
-import org.springblade.core.tool.utils.BeanUtil;
-import org.springblade.core.tool.utils.CollectionUtil;
-import org.springblade.core.tool.utils.ObjectUtil;
-import org.springblade.core.tool.utils.StringUtil;
+import org.springblade.core.tool.utils.*;
 import org.springblade.finance.feign.IFinanceClient;
 import org.springblade.purchase.sales.entity.Order;
 import org.springblade.purchase.sales.feign.IOrderDescClient;
@@ -102,6 +99,10 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 			}
 		}
 		corpsDesc.setTenantId(AuthUtil.getTenantId());
+		if (ObjectUtils.isNotNull(corpsDesc.getCname())) {
+			String cName = corpsDesc.getCname().replaceAll(" ","");
+			corpsDesc.setCname(cName);
+		}
 		IPage<CorpsDescVO> page1 = page.setRecords(baseMapper.selectCorpsDescPage(page, corpsDesc));
 		return page1;
 	}

+ 3 - 2
blade-service/blade-client/src/main/java/org/springblade/client/serial/service/impl/TableMessageServiceImpl.java

@@ -118,8 +118,9 @@ public class TableMessageServiceImpl extends ServiceImpl<TableMessageMapper, Tab
 	public TableMessage getMessage(TableMessage tableMessage) {
 		TableMessage table = baseMapper.selectOne(new QueryWrapper<TableMessage>().setEntity(tableMessage));
 		if (table != null && StringUtils.isNotBlank(table.getFileUrl())){
-			FileUtil fileUtil = new FileUtil();
-			String fileByUrl = fileUtil.readFileByUrl(table.getFileUrl());
+//			FileUtil fileUtil = new FileUtil();
+//			String fileByUrl = fileUtil.readFileByUrl(table.getFileUrl());
+			String fileByUrl = FileUtil.readFileByUrl(table.getFileUrl());
 			table.setJsonMessage(fileByUrl);
 		}
 		return table;

+ 3 - 3
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.xml

@@ -2926,8 +2926,8 @@ ORDER BY
     </select>
     <select id="turnoverAnalysis" resultType="java.util.Map">
         SELECT
-            ifnull( sum( balance_amount ), 0 ) as income,
-            ifnull( sum( balance_amount ), 0 ) as expenditure,
+            ifnull( sum( debit_amount ), 0 ) as income,
+            ifnull( sum( debit_amount ), 0 ) as expenditure,
             ifnull( sum( gross_profit ), 0 ) as profit,
             ifnull( sum( cost_amount ), 0 ) as cost
         FROM
@@ -2971,7 +2971,7 @@ ORDER BY
             and busines_date between date_sub(now(),interval 6 month) and now();
         </if>
         <if test="order.corpType != null and order.corpType != '' and order.corpType == 2">
-            AND busines_date between date_sub(now(),interval 2 month) and now();
+            AND busines_date between date_sub(now(),interval 3 month) and now();
         </if>
     </select>
     <update id="updateStockGoods" parameterType="org.springblade.stock.entity.StockGoods">

+ 13 - 4
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/partsapp/AppPartsController.java

@@ -43,7 +43,6 @@ import org.springblade.purchase.sales.entity.Order;
 import org.springblade.purchase.sales.entity.OrderItems;
 import org.springblade.purchase.sales.service.IOrderItemsService;
 import org.springblade.purchase.sales.service.IOrderService;
-import org.springblade.purchase.sales.vo.OrderSettlementVo;
 import org.springblade.purchase.sales.vo.OrderVO;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.web.bind.annotation.*;
@@ -113,7 +112,17 @@ public class AppPartsController extends BladeController {
 		lambdaQueryWrapper.eq(Order::getIsDeleted, 0);//订单是否有效
 		lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderNo()), Order::getOrderNo, order.getOrderNo());//订单号
 		lambdaQueryWrapper.eq(Func.isNotEmpty(order.getStorageId()), Order::getStorageId, order.getStorageId());//仓库id
-		lambdaQueryWrapper.like(Func.isNotEmpty(order.getCorpId()), Order::getCorpId, order.getCorpId());//客户id
+		if (ObjectUtils.isNotNull(order.getCorpsName())) {
+			String corpsName = order.getCorpsName().replaceAll(" ","");
+			List<Long> ids = corpsDescClient.listCorpIdByName(corpsName);
+			if (ObjectUtils.isNotNull(ids) && ids.size() > 0) {
+				lambdaQueryWrapper.in(Order::getCorpId, ids);//客户id
+			} else {
+				lambdaQueryWrapper.isNull(Order::getCorpId);
+			}
+		} else {
+			lambdaQueryWrapper.like(Func.isNotEmpty(order.getCorpId()), Order::getCorpId, order.getCorpId());//客户id
+		}
 		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getContractStartDate()), Order::getBusinesDate, order.getContractStartDate());//合同日期开始
 		lambdaQueryWrapper.le(Func.isNotEmpty(order.getContractEndDate()), Order::getBusinesDate, order.getContractEndDate());//合同日期结束
 		lambdaQueryWrapper.like(Func.isNotEmpty(order.getSrcOrderNo()), Order::getSrcOrderNo, order.getSrcOrderNo());//订单来源
@@ -408,8 +417,8 @@ public class AppPartsController extends BladeController {
 	@GetMapping("/turnoverAnalysis")
 	@ApiOperation(value = "app营业分析", notes = "传入参数")
 	public R<Map<String, Object>> turnoverAnalysis(@RequestParam("type") String type,
-												   @RequestParam(value = "statusDate",required = false) String statusDate,
-												   @RequestParam(value = "endDate",required = false) String endDate) {
+												   @RequestParam(value = "statusDate", required = false) String statusDate,
+												   @RequestParam(value = "endDate", required = false) String endDate) {
 		Map<String, Object> map = new HashMap<>();
 		//销售
 		BigDecimal income = new BigDecimal("0.00");

+ 39 - 12
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -2092,27 +2092,40 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					if ("XS".equals(order.getBillType())) {
 						surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().subtract(orderItems.getStorageInQuantity()));
 						balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
-						balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
+						if(new BigDecimal("0.00").equals(r.getData().getSurplusRouteQuantity())){
+							balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPurchasePrice(), MathContext.DECIMAL32));
+						}else{
+							balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
+						}
 						stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity), MathContext.DECIMAL32);
 						r.getData().setOutQuantity(r.getData().getOutQuantity().add(orderItems.getStorageInQuantity()));
 						r.getData().setOutAmount(r.getData().getOutAmount().add(orderItems.getAmount()));
+
+						costAmount = costAmount.add(stockPrice.multiply(orderItems.getStorageInQuantity()));
+						BigDecimal grossProfits =  orderItems.getPrice().subtract(orderItems.getPurchasePrice());
+						grossProfit = grossProfit.add(orderItems.getStorageInQuantity().multiply(grossProfits));
+
 					} else {
 						surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().add(orderItems.getStorageInQuantity()));
 						balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
-						balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
+						if(new BigDecimal("0.00").equals(r.getData().getSurplusRouteQuantity())){
+							balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPurchasePrice(), MathContext.DECIMAL32));
+						}else{
+							balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
+						}
 						stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity), MathContext.DECIMAL32);
 						r.getData().setInQuantity(r.getData().getInQuantity().add(orderItems.getStorageInQuantity()));
 						r.getData().setInAmount(r.getData().getInAmount().add(orderItems.getAmount()));
+
+						costAmount = costAmount.add(orderItems.getPrice().multiply(orderItems.getStorageInQuantity()));
+						grossProfit = grossProfit.add(new BigDecimal("0.00"));
+
 					}
 					r.getData().setSurplusRouteQuantity(surplusRouteQuantity);
 					r.getData().setBalanceQuantity(balanceQuantity);
 					r.getData().setBalanceAmount(balanceAmount);
 					r.getData().setStockPrice(stockPrice);
 					stockGoodsClient.updateStock(r.getData());
-
-					costAmount = costAmount.add(r.getData().getStockPrice().multiply(orderItems.getStorageInQuantity()));
-					grossProfit = grossProfit.add(orderItems.getStorageInQuantity().multiply(orderItems.getPrice()));
-
 				}else{
 					StockGoods stockGoods = new StockGoods();
 					if ("CG".equals(order.getBillType())){
@@ -2423,22 +2436,39 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				BigDecimal balanceQuantity = new BigDecimal("0.00");
 				BigDecimal balanceAmount = new BigDecimal("0.00");
 				//获取本商品库存
-				R<StockGoodsVO> r = stockGoodsClient.selectStock(null, orderItems.getStorageId(), orderItems.getItemId(), null, null, null, null, null, null);
+				R<StockGoodsVO> r = stockGoodsClient.selectStockParts(null, orderItems.getStorageId(), orderItems.getItemId(), null, null, null, null, null, null);
 				if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
 					if ("XS".equals(order.getBillType())) {
 						surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().subtract(orderItems.getStorageInQuantity()));
 						balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
-						balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
+						if(new BigDecimal("0.00").equals(r.getData().getSurplusRouteQuantity())){
+							balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPurchasePrice(), MathContext.DECIMAL32));
+						}else{
+							balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
+						}
 						stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity), MathContext.DECIMAL32);
 						r.getData().setOutQuantity(r.getData().getOutQuantity().add(orderItems.getStorageInQuantity()));
 						r.getData().setOutAmount(r.getData().getOutAmount().add(orderItems.getAmount()));
+
+						costAmount = costAmount.add(stockPrice.multiply(orderItems.getStorageInQuantity()));
+						BigDecimal grossProfits =  orderItems.getPrice().subtract(orderItems.getPurchasePrice());
+						grossProfit = grossProfit.add(orderItems.getStorageInQuantity().multiply(grossProfits));
+
 					} else {
 						surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().add(orderItems.getStorageInQuantity()));
 						balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
-						balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
+						if(new BigDecimal("0.00").equals(r.getData().getSurplusRouteQuantity())){
+							balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPurchasePrice(), MathContext.DECIMAL32));
+						}else{
+							balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
+						}
 						stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity), MathContext.DECIMAL32);
 						r.getData().setInQuantity(r.getData().getInQuantity().add(orderItems.getStorageInQuantity()));
 						r.getData().setInAmount(r.getData().getInAmount().add(orderItems.getAmount()));
+
+						costAmount = costAmount.add(stockPrice.multiply(orderItems.getStorageInQuantity()));
+						grossProfit = grossProfit.add(new BigDecimal("0.00"));
+
 					}
 					r.getData().setSurplusRouteQuantity(surplusRouteQuantity);
 					r.getData().setBalanceQuantity(balanceQuantity);
@@ -2446,9 +2476,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					r.getData().setStockPrice(stockPrice);
 					stockGoodsClient.updateStock(r.getData());
 
-					costAmount = costAmount.add(r.getData().getStockPrice().multiply(orderItems.getStorageInQuantity()));
-					grossProfit = grossProfit.add(orderItems.getStorageInQuantity().multiply(orderItems.getPrice()));
-
 				}else{
 					StockGoods stockGoods = new StockGoods();
 					if ("CG".equals(order.getBillType())){