You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
173 lines
7.6 KiB
Java
173 lines
7.6 KiB
Java
package com.glxp.api.service.collect;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.github.pagehelper.PageHelper;
|
|
import com.glxp.api.common.res.BaseResponse;
|
|
import com.glxp.api.dao.collect.IoCollectCodeBackMapper;
|
|
import com.glxp.api.dao.collect.IoCollectCodeMapper;
|
|
import com.glxp.api.dao.collect.IoCollectOrderBizBackupMapper;
|
|
import com.glxp.api.entity.collect.IoCollectCode;
|
|
import com.glxp.api.entity.collect.IoCollectCodeBackup;
|
|
import com.glxp.api.entity.collect.IoCollectOrderBiz;
|
|
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.CollectOrderUploadCountRequest;
|
|
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 javax.annotation.Resource;
|
|
import java.math.BigDecimal;
|
|
import java.util.*;
|
|
|
|
|
|
@Service
|
|
public class IoCollectOrderBizBackupService extends ServiceImpl<IoCollectOrderBizBackupMapper, IoCollectOrderBizBackup> {
|
|
|
|
|
|
@Resource
|
|
IoCollectOrderBizBackupMapper ioCollectOrderBizBackupMapper;
|
|
@Resource
|
|
private ErpBasicClient erpBasicClient;
|
|
@Resource
|
|
private IoCollectCodeBackMapper ioCollectCodeBackMapper;
|
|
|
|
public List<CollectOrderBizResponse> filterList(CollectOrderBizRequest collectOrderRequest) {
|
|
if (collectOrderRequest == null) {
|
|
return Collections.emptyList();
|
|
}
|
|
if (collectOrderRequest.getPage() != null) {
|
|
int offset = (collectOrderRequest.getPage() - 1) * collectOrderRequest.getLimit();
|
|
PageHelper.offsetPage(offset, collectOrderRequest.getLimit());
|
|
}
|
|
List<CollectOrderBizResponse> data = ioCollectOrderBizBackupMapper.filterList(collectOrderRequest);
|
|
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;
|
|
|
|
Integer fifoSplitOneCount = 0;
|
|
Integer fifoSplitTwoCount = 0;
|
|
Integer fifoSplitThreeCount = 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) {
|
|
collectOrderBizResponse.setCount(collectOrderBizResponse.getCount() == null ? 0 : collectOrderBizResponse.getCount());
|
|
collectOrderBizResponse.setScanCount(collectOrderBizResponse.getScanCount() == null ? 0 : collectOrderBizResponse.getScanCount());
|
|
|
|
|
|
|
|
if(2 == collectOrderBizResponse.getUploadStatus()){
|
|
for (String buyType : buyTypeSales) {
|
|
if (buyType.equals(collectOrderBizResponse.getBusType())) {
|
|
// salesCount += collectOrderBizResponse.getCount();
|
|
salesScanCount ++;
|
|
}
|
|
}
|
|
for (String buyType : buyTypeBuyer) {
|
|
if (buyType.equals(collectOrderBizResponse.getBusType())) {
|
|
// buyerCount += collectOrderBizResponse.getCount();
|
|
// 只有已上传的码才是正确的码
|
|
buyerScanCount ++;
|
|
}
|
|
}
|
|
if(collectOrderBizResponse.getFifoSplit() == 1){
|
|
fifoSplitOneCount ++;
|
|
}else if(collectOrderBizResponse.getFifoSplit() == 2){
|
|
fifoSplitTwoCount ++;
|
|
}else if(collectOrderBizResponse.getFifoSplit() == 3){
|
|
fifoSplitThreeCount ++;
|
|
|
|
}
|
|
}
|
|
codeCount++;
|
|
|
|
}
|
|
|
|
// 计算采购率和销售率
|
|
|
|
// 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.setBuyerScanCount(buyerScanCount);
|
|
collectOrderUploadCountResponse.setSalesScanCount(salesScanCount);
|
|
collectOrderUploadCountResponse.setCodeCount(codeCount);
|
|
// collectOrderUploadCountResponse.setCount(buyerCount+salesCount);
|
|
|
|
collectOrderUploadCountResponse.setFifoSplitOneCount(fifoSplitOneCount);
|
|
collectOrderUploadCountResponse.setFifoSplitTwoCount(fifoSplitTwoCount);
|
|
collectOrderUploadCountResponse.setFifoSplitThreeCount(fifoSplitThreeCount);
|
|
|
|
}
|
|
|
|
public static void main(String[] args) {
|
|
System.out.println(new BigDecimal(0).setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
}
|
|
|
|
|
|
public List<IoCollectOrderBizBackup> listByBillNo(String billNo) {
|
|
List<IoCollectOrderBizBackup> list = super.list(Wrappers.lambdaQuery(IoCollectOrderBizBackup.class)
|
|
.eq(IoCollectOrderBizBackup::getOrderIdFk, billNo)
|
|
);
|
|
return list;
|
|
}
|
|
|
|
public List<CollectOrderBizResponse> filterListByBillNo(CollectOrderBizRequest collectOrderRequest) {
|
|
List<CollectOrderBizResponse> data = ioCollectOrderBizBackupMapper.filterList(collectOrderRequest);
|
|
return data;
|
|
}
|
|
|
|
|
|
}
|