ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DataStatisticsController.java
@@ -1,14 +1,107 @@ package com.ruoyi.web.controller.api; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.core.domain.R; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.model.TCrmSupplier; import com.ruoyi.system.model.TErpProcurement; import com.ruoyi.system.query.DataStatisticsQuery; import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.TCrmSupplierService; import com.ruoyi.system.service.TErpProcurementService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.time.LocalDate; import java.util.HashMap; import java.util.List; import java.util.Map; @Api(tags = "数据统计") @RestController @RequestMapping("/t-crm-branch-area") @RequestMapping("/data-statistics") public class DataStatisticsController { private final TErpProcurementService erpProcurementService; private final TokenService tokenService; private final ISysUserService sysUserService; private final TCrmSupplierService crmSupplierService; @Autowired public DataStatisticsController(TErpProcurementService erpProcurementService, TokenService tokenService, ISysUserService sysUserService, TCrmSupplierService crmSupplierService) { this.erpProcurementService = erpProcurementService; this.tokenService = tokenService; this.sysUserService = sysUserService; this.crmSupplierService = crmSupplierService; } /** * 供应商采购统计 */ @ApiOperation(value = "供应商采购统计") @PostMapping(value = "/supplierProcurementStatistics") public R<Map<String, Object>> supplierProcurementStatistics(@Validated @RequestBody DataStatisticsQuery query) { Long userId = tokenService.getLoginUser().getUserId(); String startTime = null; String endTime = null; switch (query.getTimeType()){ case 1: startTime = LocalDate.now() + " 00:00:00"; endTime = LocalDate.now() + " 23:59:59"; break; case 2: startTime = LocalDate.now().minusDays(1) + " 00:00:00"; endTime = LocalDate.now().minusDays(1) + " 23:59:59"; break; case 3: startTime = LocalDate.now().minusDays(6) + " 00:00:00"; endTime = LocalDate.now() + " 23:59:59"; break; case 4: startTime = LocalDate.now().minusMonths(6) + " 00:00:00"; endTime = LocalDate.now() + " 23:59:59"; break; case 5: startTime = LocalDate.now().minusYears(1) + " 00:00:00"; endTime = LocalDate.now() + " 23:59:59"; break; } TCrmSupplier crmSupplier = crmSupplierService.getOne(Wrappers.lambdaQuery(TCrmSupplier.class) .eq(TCrmSupplier::getUserId, userId)); Map<String, Object> map = new HashMap<>(); List<TErpProcurement> orderTotal = erpProcurementService.list(Wrappers.lambdaQuery(TErpProcurement.class) .eq(TErpProcurement::getSupplierId, crmSupplier.getId()) .in(TErpProcurement::getStatus, 3,4,5)); map.put("orderTotal", orderTotal.size()); // 总数 List<TErpProcurement> orderQuantity = erpProcurementService.list(Wrappers.lambdaQuery(TErpProcurement.class) .eq(TErpProcurement::getSupplierId, crmSupplier.getId()) .between(TErpProcurement::getPayTime, startTime, endTime) .in(TErpProcurement::getStatus, 3,4,5)); map.put("orderQuantity", orderQuantity.size()); // 订单数 if(CollectionUtils.isEmpty(orderTotal)){ map.put("orderMoney", 0); // 订单金额 map.put("commissionMoney", 0); // 分佣金额 }else { // orderQuantity.stream(). // map.put("commissionMoney", ); // map.put("orderMoney", ); } return R.ok(); } } ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysOrderController.java
@@ -1,69 +1,32 @@ package com.ruoyi.web.controller.api; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.lkl.laop.sdk.exception.SDKException; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.ip.IpUtils; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.dto.TSysOrderDto; import com.ruoyi.system.model.*; import com.ruoyi.system.query.TErpGoodsWarehouseQuery; import com.ruoyi.system.model.TCrmClinic; import com.ruoyi.system.model.TSysAppUser; import com.ruoyi.system.model.TSysOrder; import com.ruoyi.system.model.TSysOrderGoods; import com.ruoyi.system.query.TSysAppUserQuery; import com.ruoyi.system.query.TSysEducationalInfoQuery; import com.ruoyi.system.query.TSysOrderQuery; import com.ruoyi.system.service.*; import com.ruoyi.system.service.TCrmClinicService; import com.ruoyi.system.service.TSysAppUserService; import com.ruoyi.system.service.TSysOrderGoodsService; import com.ruoyi.system.service.TSysOrderService; import com.ruoyi.system.vo.TSysOrderDetailVo; import com.ruoyi.system.vo.TSysOrderPageVo; import com.ruoyi.web.core.config.LakalaConfig; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.SneakyThrows; import org.apache.commons.codec.binary.Base64; import org.apache.commons.io.IOUtils; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.conn.ClientConnectionManager; import org.apache.http.conn.scheme.Scheme; import org.apache.http.conn.scheme.SchemeRegistry; import org.apache.http.conn.ssl.SSLSocketFactory; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import java.io.*; import java.math.BigDecimal; import java.math.RoundingMode; import java.nio.charset.StandardCharsets; import java.security.*; import java.security.cert.*; import java.security.spec.InvalidKeySpecException; import java.security.spec.PKCS8EncodedKeySpec; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.ThreadPoolExecutor; import java.util.stream.Collectors; /** * <p> @@ -74,7 +37,7 @@ * @since 2025-08-20 */ @RestController @RequestMapping("") @RequestMapping("/sys-order") @Api(tags = "订单管理") public class TSysOrderController { ruoyi-system/src/main/java/com/ruoyi/system/model/TErpProcurement.java
@@ -128,6 +128,10 @@ @TableField("merchant_no") private String merchantNo; @ApiModelProperty(value = "供应商分佣金额") @TableField("supplier_money") private BigDecimal supplierMoney; /** * 新增执行 */ ruoyi-system/src/main/java/com/ruoyi/system/query/DataStatisticsQuery.java
New file @@ -0,0 +1,19 @@ package com.ruoyi.system.query; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotNull; import java.io.Serializable; @Data @ApiModel(value = "数据统计查询参数DataStatisticsQuery") public class DataStatisticsQuery implements Serializable { @NotNull(message = "时间类型不能为空") @ApiModelProperty(value = "时间类型 1=今日 2=昨天 3=最近七天 4=最近半年 5=最近一年") private Integer timeType; } ruoyi-system/src/main/resources/mapper/system/TErpProcurementMapper.xml
@@ -11,6 +11,7 @@ <result column="pay_number" property="payNumber" /> <result column="pay_transaction_id" property="payTransactionId" /> <result column="status" property="status" /> <result column="supplier_money" property="supplierMoney" /> <result column="create_time" property="createTime" /> <result column="update_time" property="updateTime" /> <result column="create_by" property="createBy" />