Просмотр исходного кода

创融峻合 2023年6月9日08:27:02

纪新园 2 лет назад
Родитель
Сommit
95ebbadbb5
15 измененных файлов с 167 добавлено и 81 удалено
  1. 11 6
      blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/extra/feign/IClaimClient.java
  2. 1 1
      blade-service/blade-check/src/main/java/org/springblade/check/controller/AuditProecessController.java
  3. 1 12
      blade-service/blade-client/src/main/java/org/springblade/client/corps/controller/CorpsDescPartsController.java
  4. 4 4
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryItemsServiceImpl.java
  5. 6 1
      blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/feign/PriceItemClient.java
  6. 11 9
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/DataAnalysisController.java
  7. 4 4
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/feign/OrderDescClient.java
  8. 11 11
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.xml
  9. 6 1
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java
  10. 8 0
      blade-service/trade-finance/src/main/java/org/springblade/finance/mapper/AccMapper.xml
  11. 4 0
      blade-service/trade-purchase/src/main/java/com/trade/purchase/extra/mapper/ClaimMapper.java
  12. 14 0
      blade-service/trade-purchase/src/main/java/com/trade/purchase/extra/mapper/ClaimMapper.xml
  13. 6 3
      blade-service/trade-purchase/src/main/java/com/trade/purchase/extra/service/IClaimService.java
  14. 32 29
      blade-service/trade-purchase/src/main/java/com/trade/purchase/extra/service/impl/ClaimServiceImpl.java
  15. 48 0
      blade-service/trade-purchase/src/main/java/com/trade/purchase/feign/ClaimClient.java

+ 11 - 6
blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/extra/feign/IClaimClient.java

@@ -8,6 +8,8 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 
+import java.math.BigDecimal;
+
 /**
  * @author caifc
  * @date 2021-10-21 22:28
@@ -21,7 +23,8 @@ public interface IClaimClient {
 	String PASS_CHECK = API_PREFIX + "/pass-check";
 	String PASS_CANCEL = API_PREFIX + "/pass-cancel";
 	String UNDER_REVIEW = API_PREFIX + "/under-review";
-	String GET_CLAIM_DETAIL = API_PREFIX + "/getClaimDetail";
+	String GET_CLAIM_DETAILS = API_PREFIX + "/getClaimDetails";
+	String GET_COST = API_PREFIX + "/getCost";
 
 	/**
 	 * 审核通过
@@ -29,7 +32,7 @@ public interface IClaimClient {
 	 * @param id
 	 * @return
 	 */
-	@PostMapping(PASS_CHECK)
+	@GetMapping(PASS_CHECK)
 	R passCheck(@RequestParam("id") Long id);
 
 	/**
@@ -38,7 +41,7 @@ public interface IClaimClient {
 	 * @param id
 	 * @return
 	 */
-	@PostMapping(PASS_CANCEL)
+	@GetMapping(PASS_CANCEL)
 	R passCancel(@RequestParam("id") Long id);
 
 	/**
@@ -47,10 +50,12 @@ public interface IClaimClient {
 	 * @param id
 	 * @return
 	 */
-	@PostMapping(UNDER_REVIEW)
+	@GetMapping(UNDER_REVIEW)
 	R underReview(@RequestParam("id") Long id);
 
-	@PostMapping(GET_CLAIM_DETAIL)
-	Claim getClaimDetail(@RequestBody Claim claim);
+	@PostMapping(GET_CLAIM_DETAILS)
+	Claim getClaimDetails(@RequestBody Claim claim);
 
+	@GetMapping(GET_COST)
+	BigDecimal getCost(@RequestParam("statusDate")String statusDate, @RequestParam("endDate")String endDate);
 }

+ 1 - 1
blade-service/blade-check/src/main/java/org/springblade/check/controller/AuditProecessController.java

@@ -550,7 +550,7 @@ public class AuditProecessController extends BladeController {
 		Claim claim = new Claim();
 		claim.setId(srcBillId);
 		claim.setTenantId(AuthUtil.getTenantId());
-		Claim claimR = claimClient.getClaimDetail(claim);
+		Claim claimR = claimClient.getClaimDetails(claim);
 		if (ObjectUtils.isNotNull(claimR)) {
 			List<ClaimItem> list = claimR.getItemList();
 			if (ObjectUtil.isNotEmpty(list)) {

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

@@ -434,8 +434,6 @@ public class CorpsDescPartsController extends BladeController {
 		int unsales = 0;
 		//流失率
 		BigDecimal lossRate = new BigDecimal("0.00");
-		//平均客单产值
-		BigDecimal averageAmount = new BigDecimal("0.00");
 
 		LambdaQueryWrapper<CorpsDesc> corpsDescQueryWrapper = new LambdaQueryWrapper<>();
 		corpsDescQueryWrapper.eq(CorpsDesc::getIsDeleted, 0).eq(CorpsDesc::getTenantId, AuthUtil.getTenantId()).eq(CorpsDesc::getCorpType, "KH");
@@ -458,17 +456,8 @@ public class CorpsDescPartsController extends BladeController {
 			}
 		}
 		if (unsales > 0){
-			lossRate = lossRate.add(new BigDecimal(unsales).divide(new BigDecimal(corpsDescList.size()),MathContext.DECIMAL32));
+			lossRate = lossRate.add(new BigDecimal(unsales).divide(new BigDecimal(corpsDescList.size()),MathContext.DECIMAL32).multiply(new BigDecimal("100")));
 		}
-		/*Order order = new Order();
-		order.setBillType("XS");
-		order.setTradeType("YPJ");
-		List<Order> orderList = orderDescClient.getByBillNo(order);
-
-		//平均客单产值
-		if(orderList.size() != 0){
-			averageAmount = averageAmount.add(new BigDecimal(corpsDescList.size()/orderList.size(),MathContext.DECIMAL32));
-		}*/
 
 		map.put("sumNumber", corpsDescList.size());
 		map.put("coreCorp", coreCorp);

+ 4 - 4
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryItemsServiceImpl.java

@@ -722,10 +722,10 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
 		stockGoods.setInQuantity(deliveryItems.getActualQuantity());//入库数量
 		stockGoods.setOutQuantity(BigDecimal.ZERO);//出库数量
 		stockGoods.setLockingQuantity(BigDecimal.ZERO);//锁定数量
-		stockGoods.setBalanceQuantity(deliveryItems.getArrivalQuantity());//结余数量
+		stockGoods.setBalanceQuantity(deliveryItems.getActualQuantity());//结余数量
 		stockGoods.setEnRouteQuantity(BigDecimal.ZERO);//在途数量
 		stockGoods.setInAmount(deliveryItems.getDeliveryAmount());//入库金额
-		stockGoods.setSurplusRouteQuantity(deliveryItems.getArrivalQuantity());//可用数量
+		stockGoods.setSurplusRouteQuantity(deliveryItems.getActualQuantity());//可用数量
 		//进口贸易 还需要追加码单重量 和 发票重量
 		if (tradeType.equals(OrderTypeEnum.IMPORT.getType())) {
 			stockGoods.setBillNo(deliveryItems.getBillNo());//提单号
@@ -779,8 +779,8 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
 		} else {
 			stockGoods.setBalanceAmount(deliveryItems.getDeliveryAmount());
 		}
-		if (!new BigDecimal("0.00").equals(stockGoods.getBalanceAmount()) &&
-			!new BigDecimal("0.00").equals(stockGoods.getBalanceQuantity())) {
+		if (stockGoods.getBalanceAmount().compareTo(new BigDecimal("0.00")) > 0  &&
+			stockGoods.getBalanceQuantity().compareTo(new BigDecimal("0.00")) > 0) {
 			stockGoods.setStockPrice(stockGoods.getBalanceAmount().divide(stockGoods.getBalanceQuantity(), MathContext.DECIMAL32));
 		} else {
 			stockGoods.setStockPrice(new BigDecimal("0.00"));

+ 6 - 1
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/feign/PriceItemClient.java

@@ -85,10 +85,15 @@ public class PriceItemClient implements IPriceItemClient {
 				stockGoods.setGoodsId(r.getData().getId());
 				stockGoods.setTenantId(AuthUtil.getTenantId());
 				List<StockGoods> stock = stockGoodsClient.postListStockByCondition(stockGoods);
+				List<Map<String, Object>> mapList1 = priceItemService.getPurchasePrice(SecureUtil.getTenantId(), code);
 				for (StockGoods stockGoods1 : stock) {
 					Map<String, BigDecimal> map = new HashMap<>();
 					map.put("purchasePrice", stockGoods1.getStockPrice());
-					map.put("purchaseRebatePrice", stockGoods1.getStockPrice());
+					if (ObjectUtils.isNotNull(mapList1) && mapList1.size() > 0) {
+						map.put("purchaseRebatePrice", new BigDecimal(mapList1.get(0).get("purchaseRebatePrice").toString()));
+					} else {
+						map.put("purchaseRebatePrice", new BigDecimal("0.00"));
+					}
 					mapList.add(map);
 				}
 			}

+ 11 - 9
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/DataAnalysisController.java

@@ -1,5 +1,6 @@
 package org.springblade.purchase.sales.controller;
 
+import com.trade.purchase.extra.feign.IClaimClient;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -31,6 +32,8 @@ public class DataAnalysisController {
 
 	private final IOrderService orderService;
 
+	private final IClaimClient claimClient;
+
 
 	/**
 	 * app营业分析
@@ -54,14 +57,12 @@ public class DataAnalysisController {
 
 		Map<String, BigDecimal> mapCG = orderService.turnoverAnalysisDWT("CG", null, statusDate, endDate);
 
+		cost = claimClient.getCost(statusDate, endDate);
+
 		income = income.add(mapXS.get("income"));
 
 		expenditure = expenditure.add(mapCG.get("expenditure"));
 
-		cost = cost.add(mapXS.get("cost"));
-
-		profit = profit.add(mapXS.get("profit"));
-
 		Order order = new Order();
 		order.setBillType("XS");
 		order.setTradeType("GN");
@@ -70,20 +71,21 @@ public class DataAnalysisController {
 			averageAmount = averageAmount.add(income.divide(new BigDecimal(orderList.size()), MathContext.DECIMAL32).setScale(2, BigDecimal.ROUND_HALF_UP));
 		}
 		if (!new BigDecimal("0.00").equals(income)){
-			income = income.divide(new BigDecimal("1000"), MathContext.DECIMAL32).setScale(2, BigDecimal.ROUND_HALF_UP);
+			income = income.divide(new BigDecimal("10000"), MathContext.DECIMAL32).setScale(2, BigDecimal.ROUND_HALF_UP);
 		}
 		if (!new BigDecimal("0.00").equals(expenditure)){
-			expenditure = expenditure.divide(new BigDecimal("1000"), MathContext.DECIMAL32).setScale(2, BigDecimal.ROUND_HALF_UP);
+			expenditure = expenditure.divide(new BigDecimal("10000"), MathContext.DECIMAL32).setScale(2, BigDecimal.ROUND_HALF_UP);
 		}
 		if (!new BigDecimal("0.00").equals(profit)){
-			profit = profit.divide(new BigDecimal("1000"), MathContext.DECIMAL32).setScale(2, BigDecimal.ROUND_HALF_UP);
+			profit = profit.divide(new BigDecimal("10000"), MathContext.DECIMAL32).setScale(2, BigDecimal.ROUND_HALF_UP);
 		}
 		if (!new BigDecimal("0.00").equals(cost)){
-			cost = cost.divide(new BigDecimal("1000"), MathContext.DECIMAL32).setScale(2, BigDecimal.ROUND_HALF_UP);
+			cost = cost.divide(new BigDecimal("10000"), MathContext.DECIMAL32).setScale(2, BigDecimal.ROUND_HALF_UP);
 		}
 		if (!new BigDecimal("0.00").equals(averageAmount)){
-			averageAmount = averageAmount.divide(new BigDecimal("1000"), MathContext.DECIMAL32).setScale(2, BigDecimal.ROUND_HALF_UP);
+			averageAmount = averageAmount.divide(new BigDecimal("10000"), MathContext.DECIMAL32).setScale(2, BigDecimal.ROUND_HALF_UP);
 		}
+		profit = income.subtract(expenditure).subtract(cost);
 		map.put("income", income);
 		map.put("expenditure", expenditure);
 		map.put("profit", profit);

+ 4 - 4
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/feign/OrderDescClient.java

@@ -262,15 +262,15 @@ public class OrderDescClient implements IOrderDescClient {
 	}
 
 	@Override
-	@GetMapping(CORP_ANALYSIS)
-	public int corpAnalysis(Order order) {
+	@PostMapping(CORP_ANALYSIS)
+	public int corpAnalysis(@RequestBody Order order) {
 		order.setTenantId(AuthUtil.getTenantId());
 		return iOrderService.corpAnalysis(order);
 	}
 
 	@Override
-	@GetMapping(CORP_ANALYSIS_DWT)
-	public int corpAnalysisDWT(Order order) {
+	@PostMapping(CORP_ANALYSIS_DWT)
+	public int corpAnalysisDWT(@RequestBody Order order) {
 		order.setTenantId(AuthUtil.getTenantId());
 		return iOrderService.corpAnalysisDWT(order);
 	}

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

@@ -3523,7 +3523,7 @@ ORDER BY
             business_order
         where
             is_deleted = 0
-          AND trade_type = 'YPJ'
+          AND trade_type = 'GN'
         <if test="order.corpId != null">
             AND corp_id = #{order.corpId}
         </if>
@@ -3611,19 +3611,19 @@ ORDER BY
             AND bill_type = #{billType}
         </if>
         <if test="type != null and type != '' and type == 1">
-            AND TO_DAYS(busines_date)=TO_DAYS(NOW())
+            AND TO_DAYS(create_time)=TO_DAYS(NOW())
         </if>
         <if test="type != null and type != '' and type == 2">
-            AND YEARWEEK(DATE_FORMAT(busines_date,'%Y-%m-%d'))=YEARWEEK(NOW())
+            AND YEARWEEK(DATE_FORMAT(create_time,'%Y-%m-%d'))=YEARWEEK(NOW())
         </if>
         <if test="type != null and type != '' and type == 3">
-            AND DATE_FORMAT(busines_date,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m')
+            AND DATE_FORMAT(create_time,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m')
         </if>
         <if test="statusDate != null and statusDate != ''">
-            and DATE_FORMAT(busines_date,'%Y-%m-%d') &gt;= DATE_FORMAT(#{statusDate},'%Y-%m-%d')
+            and DATE_FORMAT(create_time,'%Y-%m-%d') &gt;= DATE_FORMAT(#{statusDate},'%Y-%m-%d')
         </if>
         <if test="endDate != null and endDate != ''">
-            and DATE_FORMAT(busines_date,'%Y-%m-%d') &lt;= DATE_FORMAT(#{endDate},'%Y-%m-%d')
+            and DATE_FORMAT(create_time,'%Y-%m-%d') &lt;= DATE_FORMAT(#{endDate},'%Y-%m-%d')
         </if>
     </select>
     <select id="turnoverAnalysisDWTList" resultType="org.springblade.purchase.sales.entity.Order">
@@ -3641,19 +3641,19 @@ ORDER BY
             AND tenant_id = #{tenantId}
         </if>
         <if test="type != null and type != '' and type == 1">
-            AND TO_DAYS(busines_date)=TO_DAYS(NOW())
+            AND TO_DAYS(create_time)=TO_DAYS(NOW())
         </if>
         <if test="type != null and type != '' and type == 2">
-            AND YEARWEEK(DATE_FORMAT(busines_date,'%Y-%m-%d'))=YEARWEEK(NOW())
+            AND YEARWEEK(DATE_FORMAT(create_time,'%Y-%m-%d'))=YEARWEEK(NOW())
         </if>
         <if test="type != null and type != '' and type == 3">
-            AND DATE_FORMAT(busines_date,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m')
+            AND DATE_FORMAT(create_time,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m')
         </if>
         <if test="statusDate != null and statusDate != ''">
-            and DATE_FORMAT(busines_date,'%Y-%m-%d') &gt;= DATE_FORMAT(#{statusDate},'%Y-%m-%d')
+            and DATE_FORMAT(create_time,'%Y-%m-%d') &gt;= DATE_FORMAT(#{statusDate},'%Y-%m-%d')
         </if>
         <if test="endDate != null and endDate != ''">
-            and DATE_FORMAT(busines_date,'%Y-%m-%d') &lt;= DATE_FORMAT(#{endDate},'%Y-%m-%d')
+            and DATE_FORMAT(create_time,'%Y-%m-%d') &lt;= DATE_FORMAT(#{endDate},'%Y-%m-%d')
         </if>
     </select>
     <select id="corpAnalysisDWT" resultType="java.lang.Integer">

+ 6 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -507,7 +507,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				}
 				List<OrderFees> feeList = orderFeesService.list(new LambdaQueryWrapper<OrderFees>().eq(OrderFees::getPid, order.getId()).ne(OrderFees::getItemId, feeId).eq(OrderFees::getIsDeleted, 0));
 				BigDecimal totalFee = feeList.stream().map(OrderFees::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-				grossProfit = grossProfit.subtract(totalFee);
+				if ("681169".equals(AuthUtil.getTenantId())){
+					grossProfit = grossProfit.add(totalFee);
+				}else{
+					grossProfit = grossProfit.subtract(totalFee);
+				}
+
 				//毛利额减去产生返利
 				grossProfit = grossProfit.subtract(order.getCreateProfit() == null ? BigDecimal.ZERO : order.getCreateProfit());
 

+ 8 - 0
blade-service/trade-finance/src/main/java/org/springblade/finance/mapper/AccMapper.xml

@@ -132,8 +132,16 @@
             <if test="acc.userId != null and acc.userId != ''">
                 and BCD.admin_profiles like CONCAT(CONCAT('%', #{acc.userId}), '%')
             </if>
+            and IFNULL(
+            IFNULL( BC.amount, 0 ) - IFNULL( FS.settlementAmount, 0 ) - IFNULL( BO.balance_overpaymen, 0 ) + IFNULL( BCD.opening_amount, 0 ),
+            0
+            ) != 0
         </where>
         GROUP BY FC.Corpid
+        ORDER BY IFNULL(
+        IFNULL( BC.amount, 0 ) - IFNULL( FS.settlementAmount, 0 ) - IFNULL( BO.balance_overpaymen, 0 ) + IFNULL( BCD.opening_amount, 0 ),
+        0
+        ) DESC
     </select>
 
     <select id="SelChargeItem" resultType="org.springblade.finance.vojo.Acc">

+ 4 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/extra/mapper/ClaimMapper.java

@@ -20,6 +20,9 @@ import com.trade.purchase.extra.entity.Claim;
 import com.trade.purchase.extra.vo.ClaimVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -39,4 +42,5 @@ public interface ClaimMapper extends BaseMapper<Claim> {
 	 */
 	List<ClaimVO> selectClaimPage(IPage page, ClaimVO claim);
 
+    BigDecimal getCost(@Param("statusDate")String statusDate, @Param("endDate")String endDate);
 }

+ 14 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/extra/mapper/ClaimMapper.xml

@@ -27,5 +27,19 @@
     <select id="selectClaimPage" resultMap="claimResultMap">
         select * from expense_claim where is_deleted = 0
     </select>
+    <select id="getCost" resultType="java.math.BigDecimal">
+        SELECT
+        ifnull( sum( total_amount ), 0 ) as cost
+        FROM
+        expense_claim
+        WHERE
+        is_deleted = 0
+        <if test="statusDate != null and statusDate != ''">
+            and DATE_FORMAT(claim_date,'%Y-%m-%d') &gt;= DATE_FORMAT(#{statusDate},'%Y-%m-%d')
+        </if>
+        <if test="endDate != null and endDate != ''">
+            and DATE_FORMAT(claim_date,'%Y-%m-%d') &lt;= DATE_FORMAT(#{endDate},'%Y-%m-%d')
+        </if>
+    </select>
 
 </mapper>

+ 6 - 3
blade-service/trade-purchase/src/main/java/com/trade/purchase/extra/service/IClaimService.java

@@ -21,7 +21,9 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.trade.purchase.extra.entity.Claim;
 import com.trade.purchase.extra.vo.ClaimVO;
 import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -87,25 +89,26 @@ public interface IClaimService extends IService<Claim> {
 	 *
 	 * @param id
 	 */
-	void passCheck(Long id);
+	R passCheck(Long id);
 
 	/**
 	 * 审核不通过
 	 *
 	 * @param id
 	 */
-	void passCancel(Long id);
+	R passCancel(Long id);
 
 	/**
 	 * 审核中
 	 *
 	 * @param id
 	 */
-	void underReview(Long id);
+	R underReview(Long id);
 
 	/**
 	 * 生成凭证
 	 */
 	Claim modify(Claim claim);
 
+	BigDecimal getCost(String statusDate, String endDate);
 }

+ 32 - 29
blade-service/trade-purchase/src/main/java/com/trade/purchase/extra/service/impl/ClaimServiceImpl.java

@@ -16,7 +16,6 @@
  */
 package com.trade.purchase.extra.service.impl;
 
-import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -27,7 +26,6 @@ import com.smecloud.apigw.constant.HttpMethod;
 import com.smecloud.apigw.model.ApiRequest;
 import com.smecloud.apigw.model.ApiResult;
 import com.smecloud.apigw.model.ApigwConfig;
-import com.smecloud.apigw.util.SHAUtil;
 import com.trade.purchase.extra.entity.Claim;
 import com.trade.purchase.extra.entity.ClaimItem;
 import com.trade.purchase.extra.entity.JdTenant;
@@ -44,7 +42,6 @@ import com.trade.purchase.vojo.JDYitems;
 import io.seata.spring.annotation.GlobalTransactional;
 import lombok.AllArgsConstructor;
 import lombok.Data;
-import org.apache.commons.codec.binary.Base64;
 import org.springblade.check.dto.AuditProecessDTO;
 import org.springblade.check.entity.AuditPathsActs;
 import org.springblade.check.entity.AuditPathsLevels;
@@ -76,7 +73,6 @@ import java.security.SecureRandom;
 import java.security.cert.X509Certificate;
 import java.text.SimpleDateFormat;
 import java.util.*;
-import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 
 /**
@@ -139,14 +135,14 @@ public class ClaimServiceImpl extends ServiceImpl<ClaimMapper, Claim> implements
 				Claim::getClaimDate, claim.getBeginClaimDate(), claim.getEndClaimDate())
 			.eq(ObjectUtil.isNotEmpty(claim.getUserId()), Claim::getUserId, claim.getUserId())
 			.eq(ObjectUtil.isNotEmpty(claim.getBelongToCorpId()), Claim::getBelongToCorpId, claim.getBelongToCorpId())
-			.eq(ObjectUtil.isNotEmpty(claim.getStatus()),Claim::getStatus, claim.getStatus())
+			.eq(ObjectUtil.isNotEmpty(claim.getStatus()), Claim::getStatus, claim.getStatus())
 			.eq(Claim::getTenantId, AuthUtil.getTenantId())
 			.eq(Claim::getIsDeleted, 0)
 			.orderByDesc(Claim::getCreateTime);
 
 		IPage<Claim> page = baseMapper.selectPage(Condition.getPage(query), leadsQueryWrapper);
 
-		if (ObjectUtil.isNotEmpty(page)){
+		if (ObjectUtil.isNotEmpty(page)) {
 			page.getRecords().forEach(e -> {
 				//获得所属公司名称
 				R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(e.getBelongToCorpId());
@@ -198,11 +194,11 @@ public class ClaimServiceImpl extends ServiceImpl<ClaimMapper, Claim> implements
 				item.setUpdateTime(new Date());
 				claimItemMapper.updateById(item);
 			}
-			i ++;
+			i++;
 		}
 
 		List<CommonFile> fileList = claim.getFileList();
-		if (ObjectUtil.isNotEmpty(fileList)){
+		if (ObjectUtil.isNotEmpty(fileList)) {
 			fileList.forEach(file -> {
 				if (ObjectUtil.isEmpty(file.getId())) {
 					file.setPid(claim.getId());
@@ -236,7 +232,7 @@ public class ClaimServiceImpl extends ServiceImpl<ClaimMapper, Claim> implements
 	@Override
 	public void checkClaim(Claim claim) {
 		Claim detail = baseMapper.selectById(claim);
-		if (detail.getStatus() == 1){
+		if (detail.getStatus() == 1) {
 			throw new SecurityException("订单已开启审核,请勿重复提交");
 		}
 		// 判断是否有审批流,如果审批流已开启就进入审批流,否则直接走申请通过
@@ -264,7 +260,7 @@ public class ClaimServiceImpl extends ServiceImpl<ClaimMapper, Claim> implements
 			List<ClaimItem> list = claimItemMapper.selectList(lambdaQueryWrapper);
 			Claim claim1 = baseMapper.selectById(claim.getId());
 
-			if (CollectionUtil.isEmpty(list)){
+			if (CollectionUtil.isEmpty(list)) {
 				throw new SecurityException("开启审批失败:单据明细不能为空");
 			}
 			//明细总数量
@@ -304,7 +300,7 @@ public class ClaimServiceImpl extends ServiceImpl<ClaimMapper, Claim> implements
 	 * @param id
 	 */
 	@Override
-	public void passCheck(Long id) {
+	public R passCheck(Long id) {
 		Claim claim = baseMapper.selectById(id);
 		if (ObjectUtil.isEmpty(claim)) {
 			throw new SecurityException("审批失败");
@@ -312,13 +308,14 @@ public class ClaimServiceImpl extends ServiceImpl<ClaimMapper, Claim> implements
 		claim.setStatus(3);
 		baseMapper.updateById(claim);
 		editItemStatus(id, 3);
+		return R.success("操作成功");
 	}
 
 	/**
 	 * 审核不通过
 	 */
 	@Override
-	public void passCancel(Long id) {
+	public R passCancel(Long id) {
 		Claim claim = baseMapper.selectById(id);
 		if (ObjectUtil.isEmpty(claim)) {
 			throw new SecurityException("审批失败");
@@ -326,6 +323,7 @@ public class ClaimServiceImpl extends ServiceImpl<ClaimMapper, Claim> implements
 		claim.setStatus(0);
 		baseMapper.updateById(claim);
 		editItemStatus(id, 0);
+		return R.success("操作成功");
 	}
 
 	/**
@@ -334,7 +332,7 @@ public class ClaimServiceImpl extends ServiceImpl<ClaimMapper, Claim> implements
 	 * @param id
 	 */
 	@Override
-	public void underReview(Long id) {
+	public R underReview(Long id) {
 		Claim claim = baseMapper.selectById(id);
 		if (ObjectUtil.isEmpty(claim)) {
 			throw new SecurityException("审批失败");
@@ -342,6 +340,7 @@ public class ClaimServiceImpl extends ServiceImpl<ClaimMapper, Claim> implements
 		claim.setStatus(2);
 		baseMapper.updateById(claim);
 		editItemStatus(id, 2);
+		return R.success("操作成功");
 	}
 
 	private void editItemStatus(Long pid, Integer status) {
@@ -362,17 +361,17 @@ public class ClaimServiceImpl extends ServiceImpl<ClaimMapper, Claim> implements
 
 		String accountName = null;
 
-		if ("681169".equals(AuthUtil.getTenantId())){
+		if ("681169".equals(AuthUtil.getTenantId())) {
 
 			if (claimOne == null) {
 				throw new SecurityException("未查到相关数据,操作失败");
 			}
 
-			if(!ObjectUtil.isNotEmpty(claimOne.getBelongToCorpId())){
+			if (!ObjectUtil.isNotEmpty(claimOne.getBelongToCorpId())) {
 				throw new SecurityException("所属公司不能为空");
 			}
 
-			if (!StringUtil.isNotBlank(claimOne.getSubjectCode())){
+			if (!StringUtil.isNotBlank(claimOne.getSubjectCode())) {
 				throw new SecurityException("科目编码不能为空");
 			}
 
@@ -398,9 +397,8 @@ public class ClaimServiceImpl extends ServiceImpl<ClaimMapper, Claim> implements
 				.eq(JdTenant::getTenantId, AuthUtil.getTenantId())
 				.eq(JdTenant::getAccountName, accountName);
 			JdTenant jdTenant = jdTenantMapper.selectOne(jdTenantLambdaQueryWrapper);
-			if (jdTenant != null)
-			{
-				if (ObjectUtil.isNotEmpty(itemList)){
+			if (jdTenant != null) {
+				if (ObjectUtil.isNotEmpty(itemList)) {
 					try {
 						//财务保存凭证
 						this.ClaimSaveVoucher(claimOne.getPaymentTime(), accountName, claimOne.getSubjectCode(), itemList, claimOne.getUserName());
@@ -416,6 +414,11 @@ public class ClaimServiceImpl extends ServiceImpl<ClaimMapper, Claim> implements
 		return claim;
 	}
 
+	@Override
+	public BigDecimal getCost(String statusDate, String endDate) {
+		return baseMapper.getCost(statusDate,endDate);
+	}
+
 	//财务生成账单
 	public void ClaimSaveVoucher(Date PaymentTime, String accountName, String subjectCode, List<ClaimItem> itemList, String userName) throws Exception {
 		// TODO 临时屏蔽
@@ -465,14 +468,14 @@ public class ClaimServiceImpl extends ServiceImpl<ClaimMapper, Claim> implements
 	}
 
 	//金蝶保存凭证测试-生成凭证
-	public JdyTool.voucher toSaleCollectionJinDie(Date date,String subjectCode, String accountId, String groupName, List<ClaimItem> itemList, String userName) {
+	public JdyTool.voucher toSaleCollectionJinDie(Date date, String subjectCode, String accountId, String groupName, List<ClaimItem> itemList, String userName) {
 		JDYitems item = new JDYitems();
 		item.setDate(new SimpleDateFormat("yyyy-MM-dd").format(date));
 		List<JDYentries> entriesList = new ArrayList<>();
 		List<JDYitems> jdYitems = new ArrayList<>();
 
 		itemList.forEach(claimItem -> {
-			if (!StringUtil.isNotBlank(claimItem.getSubjectName())){
+			if (!StringUtil.isNotBlank(claimItem.getSubjectName())) {
 				throw new SecurityException("明细科目名称不能为空");
 			}
 
@@ -483,9 +486,9 @@ public class ClaimServiceImpl extends ServiceImpl<ClaimMapper, Claim> implements
 			JDYentries d = new JDYentries();
 			d.setDc("1");
 
-			if (null != claimItem.getSubjectName() && !claimItem.getSubjectName().equals("")){
+			if (null != claimItem.getSubjectName() && !claimItem.getSubjectName().equals("")) {
 				d.setAccount_number(claimItem.getSubjectName());
-			}else {
+			} else {
 				throw new SecurityException("科目编码为空");
 			}
 			d.setExplanation(claimItem.getExplanation());
@@ -507,15 +510,15 @@ public class ClaimServiceImpl extends ServiceImpl<ClaimMapper, Claim> implements
 		});
 
 		//金额合计
-		String sumAccount = itemList.stream().map(ClaimItem :: getAmount).reduce(BigDecimal.ZERO, BigDecimal::add).toString();
+		String sumAccount = itemList.stream().map(ClaimItem::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add).toString();
 
 		//财务贷方
 		JDYentries c = new JDYentries();
 		c.setDc("-1");
 
-		if (null != subjectCode && !subjectCode.equals("")){
+		if (null != subjectCode && !subjectCode.equals("")) {
 			c.setAccount_number(subjectCode);
-		}else {
+		} else {
 			throw new SecurityException("科目编码为空");
 		}
 		c.setExplanation(userName + "报销");
@@ -577,12 +580,12 @@ public class ClaimServiceImpl extends ServiceImpl<ClaimMapper, Claim> implements
 		String s = MD5Util.hashMAC(key, secret);
 		Map<String, String> querys = new LinkedHashMap<>();
 		querys.put("app_key", key);
-		querys.put("app_signature",s);
+		querys.put("app_signature", s);
 		request.setQuerys(querys);
 		ApiResult results = ApigwClient.getInstance().send(request);
-     	System.out.println("金蝶返回数据======》"+results.getBody());
+		System.out.println("金蝶返回数据======》" + results.getBody());
 		JSONObject jsonObject = JSONObject.parseObject(results.getBody());
-		System.out.println("app-token======>"+jsonObject.getJSONObject("data").getString("access_token"));
+		System.out.println("app-token======>" + jsonObject.getJSONObject("data").getString("access_token"));
 
 	/*	//获取测试账套token的url
 		String getTokenUrl = "https://api.kingdee.com/auth/user/access_token?client_id=" + jdTenant.getClientId() +

+ 48 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/feign/ClaimClient.java

@@ -0,0 +1,48 @@
+package com.trade.purchase.feign;
+
+import com.trade.purchase.extra.entity.Claim;
+import com.trade.purchase.extra.feign.IClaimClient;
+import com.trade.purchase.extra.feign.ILeadsClient;
+import com.trade.purchase.extra.service.IClaimService;
+import com.trade.purchase.extra.service.ILeadsService;
+import lombok.AllArgsConstructor;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
+
+import java.math.BigDecimal;
+
+@NonDS
+@ApiIgnore()
+@RestController
+@AllArgsConstructor
+public class ClaimClient implements IClaimClient {
+
+	private final IClaimService claimService;
+
+	@Override
+	public R passCheck(Long id) {
+		return claimService.passCheck(id);
+	}
+
+	@Override
+	public R passCancel(Long id) {
+		return claimService.passCancel(id);
+	}
+
+	@Override
+	public R underReview(Long id) {
+		return claimService.underReview(id);
+	}
+
+	@Override
+	public Claim getClaimDetails(Claim claim) {
+		return claimService.getDetail(claim);
+	}
+
+	@Override
+	public BigDecimal getCost(String statusDate, String endDate) {
+		return claimService.getCost(statusDate,endDate);
+	}
+}