Browse Source

Merge remote-tracking branch 'origin/develop' into develop

FengChaoYu 3 months ago
parent
commit
e3ef33eba4

+ 49 - 5
mall-server-api/src/main/java/com/gree/mall/manager/logic/big/BigLogic.java

@@ -9,16 +9,27 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.gree.mall.manager.bean.admin.AdminUserCom;
 import com.gree.mall.manager.bean.big.*;
+import com.gree.mall.manager.bean.es.OrderBaseEs;
 import com.gree.mall.manager.enums.IsYesNoEnum;
 import com.gree.mall.manager.enums.UserTypeEnum;
 import com.gree.mall.manager.logic.common.CommonLogic;
+import com.gree.mall.manager.logic.workorder.OrderBaseCountLogic;
 import com.gree.mall.manager.plus.entity.*;
 import com.gree.mall.manager.plus.service.*;
 import com.gree.mall.manager.utils.HttpUtils;
 import com.gree.mall.manager.utils.RedisUtil;
 import com.gree.mall.manager.utils.StringUtil;
 import io.swagger.annotations.ApiModel;
+import org.elasticsearch.index.query.BoolQueryBuilder;
+import org.elasticsearch.index.query.QueryBuilder;
+import org.elasticsearch.index.query.QueryBuilders;
+import org.elasticsearch.search.aggregations.AggregationBuilders;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
+import org.springframework.data.elasticsearch.core.SearchHits;
+import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
+import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
@@ -88,7 +99,12 @@ public class BigLogic {
     @Autowired
     WebsitPartsSalesService websitPartsSalesService;
 
+    @Autowired
+    ElasticsearchRestTemplate elasticsearchRestTemplate;
+
 
+    @Autowired
+    OrderBaseCountLogic orderBaseCountLogic;
 
     @Autowired
     WebsitPartsNewRefundManageService websitPartsNewRefundManageService;
@@ -590,17 +606,21 @@ public class BigLogic {
 
         List<PgOrderBase> pgOrderBases = pgOrderBaseService.lambdaQuery()
                 .in(!StringUtil.isEmpty(adminUser.getCompanyWechatId()), PgOrderBase::getCompanyWechatId, adminUser.getCompanyWechatId())
-                .in(!CollectionUtils.isEmpty(adminUser.getAdminWebsitIds()) &&  !adminUser.getIsMaster(), PgOrderBase::getWebsitId, adminUser.getAdminWebsitIds())
+                .in(!CollectionUtils.isEmpty(adminUser.getAdminWebsitIds()) , PgOrderBase::getWebsitId, adminUser.getAdminWebsitIds())
                 .notIn(PgOrderBase::getOrderStatus, "YQX","FWZT","YCGB","FWQX","FL")
                 .between(PgOrderBase::getCreateTime, DateUtil.offsetDay(DateUtil.beginOfDay(new Date()), -30), new Date())
                 .select(PgOrderBase::getOrderSmallTypeText, PgOrderBase::getId, PgOrderBase::getTotalNum, PgOrderBase::getUndoneNum, PgOrderBase::getCreateTime,
-                        PgOrderBase::getSaleType).list();
+                        PgOrderBase::getSaleType,PgOrderBase::getOverTime,PgOrderBase::getWebsitOverTime,PgOrderBase::getOrderStatus).list();
 
         List<LargeWorkerOrderDateBean> largeWorkerOrderDateBeans = new ArrayList<>();
 
         List<String> status = new ArrayList<>();
         status.add("YWG");
         status.add("YJS");
+        status.add("GCSZX");
+        status.add("WDWG");
+        status.add("YWGO");
+        status.add("LRCD");
 
 
         for (OrderSmallType orderSmallType : orderSmallTypes) {
@@ -613,15 +633,39 @@ public class BigLogic {
 
             for (int i = 29; i > -1; i--) {
 
+                BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
+
+                if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(adminUser.getAdminWebsitIds())) {
+                    List<QueryBuilder> should = queryBuilder.should();
+                    should.add(QueryBuilders.termsQuery("create_websit_id", adminUser.getAdminWebsitIds()));
+                    should.add(QueryBuilders.termsQuery("websit_id", adminUser.getAdminWebsitIds()));
+                }
+
                 DateTime startDay = DateUtil.beginOfDay(DateUtil.offsetDay(new Date(), -1 * i));
 
                 DateTime endDay = DateUtil.endOfDay(startDay);
 
-                Integer integer = pgOrderBases.stream().filter(item -> item.getCreateTime().before(endDay)
-                        && item.getCreateTime().after(startDay) && status.contains(item.getOrderStatus())
+   /*             Integer integer = pgOrderBases.stream().filter(item ->  status.contains(item.getOrderStatus())
+                        && item.getOverTime().before(endDay)
+                        && item.getOverTime().after(startDay)
                         && item.getOrderSmallTypeText().equals(largeWorkerOrderDateBean.getLx())
                 )
                         .map(PgOrderBase::getTotalNum).reduce(Integer::sum).orElse(0);
+*/
+                //完工单
+                NativeSearchQuery searchQueryWGD = new NativeSearchQueryBuilder()
+                        .withQuery(queryBuilder)
+                        .withPageable(PageRequest.of(1, 1))
+                        .addAggregation(orderBaseCountLogic.getAggs(AggregationBuilders.filter("wgd", QueryBuilders.boolQuery()
+                                .must(QueryBuilders.termsQuery("order_status",status))
+                                .must(QueryBuilders.termsQuery("order_small_type_text",orderSmallType.getOrderSmallTypeText()))
+                                .must(QueryBuilders.rangeQuery("over_time")
+                                        .gte(DateUtil.format(startDay,"yyyy-MM-dd HH:mm:ss"))
+                                        .lte(DateUtil.format(endDay,"yyyy-MM-dd HH:mm:ss")))
+                        )))
+                        .build();
+                SearchHits responseWGD = elasticsearchRestTemplate.search(searchQueryWGD, OrderBaseEs.class);
+
 
 
                 Integer integerWwg = pgOrderBases.stream().filter(item -> item.getCreateTime().before(endDay)
@@ -630,7 +674,7 @@ public class BigLogic {
                 )
                         .map(PgOrderBase::getTotalNum).reduce(Integer::sum).orElse(0);
 
-                unitNum.add(integer);
+                unitNum.add(Convert.toInt(orderBaseCountLogic.getWorkerOrderCountResult(responseWGD.getAggregations(),"wgd")));
                 unitNumWwg.add(integerWwg);
             }
 

+ 1 - 1
mall-server-api/src/main/java/com/gree/mall/manager/logic/comlist/ComListLogic.java

@@ -343,7 +343,7 @@ public class ComListLogic {
 //                    }
                 //});
 
-                String ossUrl = ossUtil.getAccessUrl() + filePath;
+                String ossUrl = ossUtil.getAccessUrl2() + filePath;
                 Map<String, Object> mp = new HashMap<>();
                 mp.put("websitNumber", websitNumber);
                 mp.put("filePath", ossUrl);

+ 8 - 4
mall-server-api/src/main/java/com/gree/mall/manager/logic/common/WechatLogic.java

@@ -660,7 +660,7 @@ public class WechatLogic {
         //开始分账
         try {
             profitSettlementSharing(settlementOrder.getOrderId(), settlementOrder.getTranscationId(), map, mapPhone,
-                    settlementOrder.getCompanyWechatId(), "B", settlementOrder.getConfigId());
+                    settlementOrder.getCompanyWechatId(), "B", settlementOrder.getConfigId(),settlementOrder.getWorkerOrderId());
 
             settlementOrder.setStatus(SettlementStatusNewEnum.OK.toString());
             settlementOrder.setSettlementTime(new Date());
@@ -701,7 +701,7 @@ public class WechatLogic {
         //开始分账
         try {
             profitSettlementSharing(settlementOrder.getOrderId(), settlementOrder.getTranscationId(), map, mapPhone,
-                    settlementOrder.getCompanyWechatId(), "B", settlementOrder.getConfigId());
+                    settlementOrder.getCompanyWechatId(), "B", settlementOrder.getConfigId(),settlementOrder.getWorkerOrderId());
 
             settlementOrder.setStatus(SettlementStatusNewEnum.OK.toString());
             settlementOrder.setSettlementTime(new Date());
@@ -729,7 +729,7 @@ public class WechatLogic {
      * @throws WxPayException
      */
     private void profitSettlementSharing(String orderSharingId, String transactionId, Map<String, BigDecimal> amountMap,
-                                         Map<String, String> phoneMap, String companyWechatId, String source, String config) throws WxPayException {
+                                         Map<String, String> phoneMap, String companyWechatId, String source, String config,String workerOrdderId) throws WxPayException {
 
         List<Map<String, Object>> list = new ArrayList<>();
 
@@ -742,11 +742,15 @@ public class WechatLogic {
             if (shareAmount.doubleValue() == 0) {
                 continue;
             }
+
+
+            String str = StringUtil.isEmpty(workerOrdderId)?"":",工单号:"+workerOrdderId;
+
             Map<String, Object> receiver = new HashMap<>();
             receiver.put("type", "PERSONAL_SUB_OPENID");
             receiver.put("account", openId);
             receiver.put("amount", ProfitSharingReceiverRequest.yuanToFen(shareAmount.toString()));
-            receiver.put("description", "销售返佣给" + workerUserPhone + ",金额:" + shareAmount + "元");
+            receiver.put("description", "辅材配件款"  + ":" + shareAmount + "元"+str);
             list.add(receiver);
         }
 

+ 3 - 2
mall-server-api/src/main/java/com/gree/mall/manager/logic/workorder/OrderBaseCountLogic.java

@@ -85,7 +85,8 @@ public class OrderBaseCountLogic {
         List<Long> jxzList = new ArrayList<>();
         List<Long> qtsmList = new ArrayList<>();
 
-        List<String> orderStatus = new ArrayList<>();
+        List<String> orderStatus = new ArrayList<>
+                ();
 
         orderStatus.add("YWG");
         orderStatus.add("GCSZX");
@@ -279,7 +280,7 @@ public class OrderBaseCountLogic {
                         .subAggregation(AggregationBuilders.sum("mac_sum").field("total_num")));
     }
 
-    private long getWorkerOrderCountResult(Aggregations aggregations, String name) {
+    public long getWorkerOrderCountResult(Aggregations aggregations, String name) {
         StringBuffer sb = new StringBuffer();
         ParsedFilter parsedFilter = aggregations.get(name);
         //总服务单数