|
|
@ -3,15 +3,20 @@ package com.glxp.api.service.collect;
|
|
|
|
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
|
|
|
|
|
import com.glxp.api.common.res.BaseResponse;
|
|
|
|
import com.glxp.api.dao.collect.IoCollectOrderBizBackupMapper;
|
|
|
|
import com.glxp.api.dao.collect.IoCollectOrderBizBackupMapper;
|
|
|
|
import com.glxp.api.entity.collect.IoCollectOrderBizBackup;
|
|
|
|
import com.glxp.api.entity.collect.IoCollectOrderBizBackup;
|
|
|
|
|
|
|
|
import com.glxp.api.http.ErpBasicClient;
|
|
|
|
import com.glxp.api.req.collect.CollectOrderBizRequest;
|
|
|
|
import com.glxp.api.req.collect.CollectOrderBizRequest;
|
|
|
|
|
|
|
|
import com.glxp.api.req.collect.CollectOrderUploadCountRequest;
|
|
|
|
import com.glxp.api.res.collect.CollectOrderBizResponse;
|
|
|
|
import com.glxp.api.res.collect.CollectOrderBizResponse;
|
|
|
|
|
|
|
|
import com.glxp.api.res.collect.CollectOrderUploadCountResponse;
|
|
|
|
|
|
|
|
import io.swagger.models.auth.In;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
import java.util.Collections;
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Service
|
|
|
|
@Service
|
|
|
@ -20,6 +25,8 @@ public class IoCollectOrderBizBackupService extends ServiceImpl<IoCollectOrderBi
|
|
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
@Resource
|
|
|
|
IoCollectOrderBizBackupMapper ioCollectOrderBizBackupMapper;
|
|
|
|
IoCollectOrderBizBackupMapper ioCollectOrderBizBackupMapper;
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
|
|
|
private ErpBasicClient erpBasicClient;
|
|
|
|
|
|
|
|
|
|
|
|
public List<CollectOrderBizResponse> filterList(CollectOrderBizRequest collectOrderRequest) {
|
|
|
|
public List<CollectOrderBizResponse> filterList(CollectOrderBizRequest collectOrderRequest) {
|
|
|
|
if (collectOrderRequest == null) {
|
|
|
|
if (collectOrderRequest == null) {
|
|
|
@ -32,4 +39,79 @@ public class IoCollectOrderBizBackupService extends ServiceImpl<IoCollectOrderBi
|
|
|
|
List<CollectOrderBizResponse> data = ioCollectOrderBizBackupMapper.filterList(collectOrderRequest);
|
|
|
|
List<CollectOrderBizResponse> data = ioCollectOrderBizBackupMapper.filterList(collectOrderRequest);
|
|
|
|
return data;
|
|
|
|
return data;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 计算上传率
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
public void CalculatedUploadRate(CollectOrderUploadCountRequest collectOrderUploadCountRequest, CollectOrderUploadCountResponse collectOrderUploadCountResponse) {
|
|
|
|
|
|
|
|
List<CollectOrderBizResponse> list = ioCollectOrderBizBackupMapper.getList(collectOrderUploadCountRequest);
|
|
|
|
|
|
|
|
Map<String, String[]> buyTypeMap = new HashMap<>();
|
|
|
|
|
|
|
|
List<String> buyTypeBuyer = new ArrayList<>();
|
|
|
|
|
|
|
|
List<String> buyTypeSales = new ArrayList<>();
|
|
|
|
|
|
|
|
Integer buyerCount = 0;
|
|
|
|
|
|
|
|
Integer salesCount = 0;
|
|
|
|
|
|
|
|
Integer buyerScanCount = 0;
|
|
|
|
|
|
|
|
Integer salesScanCount = 0;
|
|
|
|
|
|
|
|
BigDecimal buyerCentage = new BigDecimal(0);
|
|
|
|
|
|
|
|
BigDecimal salesCentage = new BigDecimal(0);
|
|
|
|
|
|
|
|
Integer codeCount = 0;
|
|
|
|
|
|
|
|
if (list != null && list.size() > 0) {
|
|
|
|
|
|
|
|
BaseResponse<Map<String, String[]>> baseResponse = erpBasicClient.getBuyType("thirdId");
|
|
|
|
|
|
|
|
if (baseResponse.getCode() == 20000) {
|
|
|
|
|
|
|
|
buyTypeMap = baseResponse.getData();
|
|
|
|
|
|
|
|
buyTypeBuyer = new ArrayList<>(Arrays.asList(buyTypeMap.get("buyType_3501")));
|
|
|
|
|
|
|
|
buyTypeBuyer.addAll(Arrays.asList(buyTypeMap.get("buyType_3502")));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
buyTypeSales = new ArrayList<>(Arrays.asList(buyTypeMap.get("buyType_3505")));
|
|
|
|
|
|
|
|
buyTypeSales.addAll(Arrays.asList(buyTypeMap.get("buyType_3506")));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (CollectOrderBizResponse collectOrderBizResponse : list) {
|
|
|
|
|
|
|
|
for (String buyType : buyTypeBuyer) {
|
|
|
|
|
|
|
|
if (buyType.equals(collectOrderBizResponse.getBusType())) {
|
|
|
|
|
|
|
|
buyerCount += collectOrderBizResponse.getCount();
|
|
|
|
|
|
|
|
// 只有已上传的码才是正确的码
|
|
|
|
|
|
|
|
if (2 == collectOrderBizResponse.getUploadStatus()) {
|
|
|
|
|
|
|
|
buyerScanCount += collectOrderBizResponse.getScanCount();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
for (String buyType : buyTypeSales) {
|
|
|
|
|
|
|
|
if (buyType.equals(collectOrderBizResponse.getBusType())) {
|
|
|
|
|
|
|
|
salesCount += collectOrderBizResponse.getCount();
|
|
|
|
|
|
|
|
if (2 == collectOrderBizResponse.getUploadStatus()) {
|
|
|
|
|
|
|
|
salesScanCount += collectOrderBizResponse.getScanCount();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 计算采购率和销售率
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BigDecimal buyerCountBigDecimal = BigDecimal.valueOf(buyerCount);
|
|
|
|
|
|
|
|
BigDecimal buyerScanCountBigDecimal = BigDecimal.valueOf(buyerScanCount);
|
|
|
|
|
|
|
|
if(buyerCountBigDecimal.equals(new BigDecimal(0))){
|
|
|
|
|
|
|
|
buyerCentage = new BigDecimal(0).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
|
|
|
}else {
|
|
|
|
|
|
|
|
buyerCentage = buyerScanCountBigDecimal.divide(buyerCountBigDecimal,4, BigDecimal.ROUND_HALF_UP ).multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BigDecimal salesCountBigDecimal = BigDecimal.valueOf(salesCount);
|
|
|
|
|
|
|
|
BigDecimal salesScanCountBigDecimal = BigDecimal.valueOf(salesScanCount);
|
|
|
|
|
|
|
|
if(salesCountBigDecimal.equals(new BigDecimal(0))){
|
|
|
|
|
|
|
|
salesCentage = new BigDecimal(0).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
|
|
|
}else {
|
|
|
|
|
|
|
|
salesCentage = salesScanCountBigDecimal.divide(salesCountBigDecimal,4, BigDecimal.ROUND_HALF_UP ).multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
codeCount = buyerScanCount + salesScanCount;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
collectOrderUploadCountResponse.setBuyerCentage(buyerCentage);
|
|
|
|
|
|
|
|
collectOrderUploadCountResponse.setSalesCentage(salesCentage);
|
|
|
|
|
|
|
|
collectOrderUploadCountResponse.setCodeCount(codeCount);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static void main(String[] args) {
|
|
|
|
|
|
|
|
System.out.println(new BigDecimal(0).setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|