1、单据上传页面逻辑优化

dev_2.5_optimize_250306
qiuyt 4 months ago
parent 74ece86c74
commit a18e59294e

@ -209,7 +209,7 @@ public class IoCollectOrderBackupController extends BaseController {
collectOrderUploadCountResponse.setAlreadyUploadingCount(alreadyUploadingCount); collectOrderUploadCountResponse.setAlreadyUploadingCount(alreadyUploadingCount);
collectOrderUploadCountResponse.setUploadingFailCount(uploadingFailCount); collectOrderUploadCountResponse.setUploadingFailCount(uploadingFailCount);
// 总上传码数量 获取采购上传率 销售上传率 计算 // 总上传码数量 获取采购上传率 销售上传率 计算
ioCollectOrderBizBackupService.calculatedUploadRate(collectOrderUploadCountRequest, collectOrderUploadCountResponse); ioCollectOrderBackupService.calculatedUploadRate(collectOrderUploadCountRequest, collectOrderUploadCountResponse);
return ResultVOUtils.success(collectOrderUploadCountResponse); return ResultVOUtils.success(collectOrderUploadCountResponse);
} }

@ -3,6 +3,8 @@ package com.glxp.api.dao.collect;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.collect.IoCollectOrderBackup; import com.glxp.api.entity.collect.IoCollectOrderBackup;
import com.glxp.api.req.collect.CollectOrderRequest; import com.glxp.api.req.collect.CollectOrderRequest;
import com.glxp.api.req.collect.CollectOrderUploadCountRequest;
import com.glxp.api.res.collect.CollectOrderBizResponse;
import com.glxp.api.res.collect.IoCollectOrderResponse; import com.glxp.api.res.collect.IoCollectOrderResponse;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -12,5 +14,6 @@ import java.util.List;
public interface IoCollectOrderBackupMapper extends BaseMapper<IoCollectOrderBackup> { public interface IoCollectOrderBackupMapper extends BaseMapper<IoCollectOrderBackup> {
List<IoCollectOrderResponse> filterList(CollectOrderRequest collectOrderRequest); List<IoCollectOrderResponse> filterList(CollectOrderRequest collectOrderRequest);
List<IoCollectOrderResponse> getList(CollectOrderUploadCountRequest collectOrderUploadCountRequest);
} }

@ -15,6 +15,5 @@ public interface IoCollectOrderBizBackupMapper extends BaseMapper<IoCollectOrder
List<CollectOrderBizResponse> filterList(CollectOrderBizRequest collectOrderRequest); List<CollectOrderBizResponse> filterList(CollectOrderBizRequest collectOrderRequest);
List<CollectOrderBizResponse> getList(CollectOrderUploadCountRequest collectOrderUploadCountRequest);
} }

@ -17,10 +17,20 @@ public class CollectOrderUploadCountResponse {
private BigDecimal buyerCentage; private BigDecimal buyerCentage;
private BigDecimal salesCentage; private BigDecimal salesCentage;
private Integer codeCount; private Integer codeCount;
private Integer buyerScanCount; private Integer buyerScanCount;
private Integer salesScanCount; private Integer salesScanCount;
private Integer buyerScanCountReturn ; private Integer buyerScanCountReturn ;
private Integer salesScanCountReturn ; private Integer salesScanCountReturn ;
private Integer buyerScanSumCount;
private Integer salesScanSumCount;
private Integer buyerScanSumCountReturn ;
private Integer salesScanSumCountReturn ;
private Integer count; private Integer count;
/** /**
* *

@ -184,7 +184,10 @@ public class IoCollectOrderResponse {
private Integer checkCodeStatus; private Integer checkCodeStatus;
private Integer ledNum; private Integer ledNum;
/**
*
*/
private Integer relCodeCount;
public String getFromName() { public String getFromName() {

@ -3,6 +3,7 @@ package com.glxp.api.service.collect;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -32,10 +33,12 @@ import com.glxp.api.http.ErpBasicClient;
import com.glxp.api.http.sync.SpGetHttpClient; import com.glxp.api.http.sync.SpGetHttpClient;
import com.glxp.api.req.collect.CollectOrderBizRequest; import com.glxp.api.req.collect.CollectOrderBizRequest;
import com.glxp.api.req.collect.CollectOrderRequest; import com.glxp.api.req.collect.CollectOrderRequest;
import com.glxp.api.req.collect.CollectOrderUploadCountRequest;
import com.glxp.api.req.collect.PostCollectOrderRequest; import com.glxp.api.req.collect.PostCollectOrderRequest;
import com.glxp.api.req.inout.ReviewFinishRequest; import com.glxp.api.req.inout.ReviewFinishRequest;
import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.res.collect.CollectOrderBizResponse; import com.glxp.api.res.collect.CollectOrderBizResponse;
import com.glxp.api.res.collect.CollectOrderUploadCountResponse;
import com.glxp.api.res.collect.IoCollectOrderResponse; import com.glxp.api.res.collect.IoCollectOrderResponse;
import com.glxp.api.service.auth.InvWarehouseService; import com.glxp.api.service.auth.InvWarehouseService;
import com.glxp.api.service.auth.SysWorkplaceService; import com.glxp.api.service.auth.SysWorkplaceService;
@ -54,6 +57,7 @@ import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -181,7 +185,7 @@ public class IoCollectOrderBackupService extends ServiceImpl<IoCollectOrderBacku
SysWorkplaceDocumentEntity sysWorkplaceDocumentEntity = sysWorkplaceDocumentService.findByWorkplaceCode(collectOrder.getWorkPlaceCode(), collectOrder.getBusType()); SysWorkplaceDocumentEntity sysWorkplaceDocumentEntity = sysWorkplaceDocumentService.findByWorkplaceCode(collectOrder.getWorkPlaceCode(), collectOrder.getBusType());
// 如果是null 就可能是上货工位进行医保上传 // 如果是null 就可能是上货工位进行医保上传
if(Objects.isNull(sysWorkplaceDocumentEntity)){ if (Objects.isNull(sysWorkplaceDocumentEntity)) {
sysWorkplaceDocumentEntity = sysWorkplaceDocumentService.filterListExhibitGoods(collectOrder.getWorkPlaceCode(), collectOrder.getBusType()); sysWorkplaceDocumentEntity = sysWorkplaceDocumentService.filterListExhibitGoods(collectOrder.getWorkPlaceCode(), collectOrder.getBusType());
} }
@ -427,13 +431,13 @@ public class IoCollectOrderBackupService extends ServiceImpl<IoCollectOrderBacku
for (CollectOrderBizResponse collectOrderBizResponse : orderRequest.getCollectOrderList().get(0).getCollectOrderBizResponseList()) { for (CollectOrderBizResponse collectOrderBizResponse : orderRequest.getCollectOrderList().get(0).getCollectOrderBizResponseList()) {
long count = ioCollectCodeBackService.count( long count = ioCollectCodeBackService.count(
new QueryWrapper<IoCollectCodeBackup>() new QueryWrapper<IoCollectCodeBackup>()
.eq("billNo",collectOrderBizResponse.getBillNo()) .eq("billNo", collectOrderBizResponse.getBillNo())
.eq("fifoSplit","1").or().eq("fifoSplit","4") .eq("fifoSplit", "1").or().eq("fifoSplit", "4")
.last("limit 1") .last("limit 1")
); );
if(count >0){ if (count > 0) {
collectOrderBizResponse.setTrdnFlag("1"); collectOrderBizResponse.setTrdnFlag("1");
}else { } else {
collectOrderBizResponse.setTrdnFlag("0"); collectOrderBizResponse.setTrdnFlag("0");
} }
@ -650,4 +654,123 @@ public class IoCollectOrderBackupService extends ServiceImpl<IoCollectOrderBacku
return collectOrderBizResponses; return collectOrderBizResponses;
} }
/**
*
*/
public void calculatedUploadRate(CollectOrderUploadCountRequest collectOrderUploadCountRequest, CollectOrderUploadCountResponse collectOrderUploadCountResponse) {
List<IoCollectOrderResponse> list = ioCollectOrderBackupMapper.getList(collectOrderUploadCountRequest);
Map<String, String[]> buyTypeMap = new HashMap<>();
Integer buyerScanCount = 0;
Integer salesScanCount = 0;
Integer buyerScanCountReturn = 0;
Integer salesScanCountReturn = 0;
Integer buyerScanSumCount = 0;
Integer salesScanSumCount = 0;
Integer buyerScanSumCountReturn = 0;
Integer salesScanSumCountReturn = 0;
BigDecimal buyerCentage = new BigDecimal(0);
BigDecimal salesCentage = new BigDecimal(0);
Integer codeCount = 0;
Integer fifoSplitOneCount = 0;
Integer fifoSplitTwoCount = 0;
String sum = "sum";
if (list != null && list.size() > 0) {
BaseResponse<Map<String, String[]>> baseResponse = erpBasicClient.getBuyType("thirdId");
if (baseResponse.getCode() == 20000) {
buyTypeMap = baseResponse.getData();
}
Map<String, Integer> map = new HashMap();
for (IoCollectOrderResponse collectOrderResponse : list) {
for (Map.Entry<String, String[]> entry : buyTypeMap.entrySet()) {
String key = entry.getKey();
if(ArrayUtil.isEmpty(entry.getValue())){
continue;
}
String result = String.join(", ", entry.getValue());
if (result.contains(collectOrderResponse.getBusType())) {
int count = 0;
if (collectOrderResponse.getRelCodeCount() != null && collectOrderResponse.getRelCodeCount() > 0) {
count += collectOrderResponse.getRelCodeCount();
} else {
count++;
}
if (2 == collectOrderResponse.getUploadStatus()) {
map.put(key, count);
}
map.put(key+sum, count);
}
}
if (collectOrderResponse.getRelCodeCount() != null && collectOrderResponse.getRelCodeCount() > 0) {
codeCount += collectOrderResponse.getRelCodeCount();
} else {
codeCount++;
}
}
// 数据做处理
for (Map.Entry<String, Integer> entry : map.entrySet()) {
String key = entry.getKey();
Integer value = entry.getValue();
if (key.equals("buyType_3502")) {
buyerScanCount += value;
} else if (key.equals("buyType_3504")) {
buyerScanCountReturn += value;
} else if (key.equals("buyType_3505")) {
salesScanCount += value;
} else if (key.equals("buyType_35051")) {
salesScanCount += value;
} else if (key.equals("buyType_3506")) {
salesScanCountReturn += value;
}
if (key.equals("buyType_3502"+sum)) {
buyerScanSumCount += value;
} else if (key.equals("buyType_3504"+sum)) {
buyerScanSumCountReturn += value;
} else if (key.equals("buyType_3505"+sum)) {
salesScanSumCount += value;
} else if (key.equals("buyType_35051"+sum)) {
salesScanSumCount += value;
} else if (key.equals("buyType_3506"+sum)) {
salesScanSumCountReturn += value;
}
}
}
collectOrderUploadCountResponse.setBuyerCentage(buyerCentage);
collectOrderUploadCountResponse.setSalesCentage(salesCentage);
collectOrderUploadCountResponse.setBuyerScanCount(buyerScanCount);
collectOrderUploadCountResponse.setSalesScanCount(salesScanCount);
collectOrderUploadCountResponse.setBuyerScanCountReturn(buyerScanCountReturn);
collectOrderUploadCountResponse.setSalesScanCountReturn(salesScanCountReturn);
collectOrderUploadCountResponse.setBuyerScanSumCount(buyerScanSumCount);
collectOrderUploadCountResponse.setSalesScanSumCount(salesScanSumCount);
collectOrderUploadCountResponse.setBuyerScanSumCountReturn(buyerScanSumCountReturn);
collectOrderUploadCountResponse.setSalesScanSumCountReturn(salesScanSumCountReturn);
collectOrderUploadCountResponse.setCodeCount(codeCount);
collectOrderUploadCountResponse.setFifoSplitOneCount(fifoSplitOneCount);
collectOrderUploadCountResponse.setFifoSplitTwoCount(fifoSplitTwoCount);
}
} }

@ -12,6 +12,7 @@ import com.glxp.api.req.collect.CollectOrderBizRequest;
import com.glxp.api.req.collect.CollectOrderUploadCountRequest; 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 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;
@ -39,98 +40,10 @@ public class IoCollectOrderBizBackupService extends ServiceImpl<IoCollectOrderBi
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 buyerScanCount = 0;
Integer salesScanCount = 0;
BigDecimal buyerCentage = new BigDecimal(0);
BigDecimal salesCentage = new BigDecimal(0);
Integer codeCount = 0;
Integer fifoSplitOneCount = 0;
Integer fifoSplitTwoCount = 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();
if(collectOrderBizResponse.getRelCodeCount() != null && collectOrderBizResponse.getRelCodeCount() >0){
buyerScanCount += collectOrderBizResponse.getRelCodeCount();
}else {
buyerScanCount ++;
}
}
}
for (String buyType : buyTypeBuyer) {
if (buyType.equals(collectOrderBizResponse.getBusType())) {
// buyerCount += collectOrderBizResponse.getCount();
// 只有已上传的码才是正确的码
if(collectOrderBizResponse.getRelCodeCount() != null && collectOrderBizResponse.getRelCodeCount() >0){
salesScanCount += collectOrderBizResponse.getRelCodeCount();
}else {
salesScanCount ++;
}
}
}
if(collectOrderBizResponse.getFifoSplit() == 1
){
fifoSplitOneCount ++;
}else if(collectOrderBizResponse.getFifoSplit() == 2){
fifoSplitTwoCount ++;
}else if(collectOrderBizResponse.getFifoSplit() == 3){
fifoSplitTwoCount ++;
}else if(collectOrderBizResponse.getFifoSplit() == 4){
fifoSplitOneCount ++;
}
}
if(collectOrderBizResponse.getRelCodeCount() != null && collectOrderBizResponse.getRelCodeCount() >0){
codeCount += collectOrderBizResponse.getRelCodeCount();
}else {
codeCount ++;
}
}
}
collectOrderUploadCountResponse.setBuyerCentage(buyerCentage);
collectOrderUploadCountResponse.setSalesCentage(salesCentage);
collectOrderUploadCountResponse.setBuyerScanCount(buyerScanCount);
collectOrderUploadCountResponse.setSalesScanCount(salesScanCount);
collectOrderUploadCountResponse.setCodeCount(codeCount);
collectOrderUploadCountResponse.setFifoSplitOneCount(fifoSplitOneCount);
collectOrderUploadCountResponse.setFifoSplitTwoCount(fifoSplitTwoCount);
}
public static void main(String[] args) {
System.out.println(new BigDecimal(0).setScale(2, BigDecimal.ROUND_HALF_UP));
}
public List<IoCollectOrderBizBackup> listByBillNo(String billNo) { public List<IoCollectOrderBizBackup> listByBillNo(String billNo) {
List<IoCollectOrderBizBackup> list = super.list(Wrappers.lambdaQuery(IoCollectOrderBizBackup.class) List<IoCollectOrderBizBackup> list = super.list(Wrappers.lambdaQuery(IoCollectOrderBizBackup.class)
.eq(IoCollectOrderBizBackup::getOrderIdFk, billNo) .eq(IoCollectOrderBizBackup::getOrderIdFk, billNo)

@ -148,4 +148,20 @@
order by case when icob.orderTime is null then icob.createTime else icob.orderTime end desc order by case when icob.orderTime is null then icob.createTime else icob.orderTime end desc
</select> </select>
<select id="getList" resultType="com.glxp.api.res.collect.IoCollectOrderResponse">
SELECT
bac.*,(SELECT
sum(IF( relCodeCount > 0, relCodeCount, 1 )) FROM io_collect_code_backup code_ba
LEFT JOIN io_collect_order_backup bac ON code_ba.billNo = bac.billNo ) as relCodeCount
FROM
io_collect_order_backup bac
<where>
<if test="startTime != '' and startTime != null and endTime != '' and endTime != null">
AND bac.updateTime BETWEEN #{startTime} AND #{endTime}
</if>
</where>
</select>
</mapper> </mapper>

@ -39,18 +39,5 @@
</where> </where>
group by icobb.id group by icobb.id
</select> </select>
<select id="getList" resultType="com.glxp.api.res.collect.CollectOrderBizResponse">
SELECT
biz_bac.* ,bac.busType,bac.uploadStatus,code_ba.fifoSplit,code_ba.relCodeCount
FROM
io_collect_code_backup code_ba LEFT JOIN io_collect_order_backup bac ON code_ba.billNo = bac.billNo
LEFT JOIN io_collect_order_biz_backup biz_bac ON biz_bac.orderIdFk = bac.billNo
<where>
<if test="startTime != '' and startTime != null and endTime != '' and endTime != null">
AND bac.updateTime BETWEEN #{startTime} AND #{endTime}
</if>
</where>
group by code_ba.id
</select>
</mapper> </mapper>

Loading…
Cancel
Save