4/9 代码优化1.0

dev_2.5_mutiscan
wangwei 3 months ago
parent 6936e65961
commit 4a8f320746

@ -248,8 +248,12 @@ public class IoCollectOrderBackupController extends BaseController {
List<Long> workPlaceCodes = null;
List<UserWorkResponse> page;
log.error("collectOrderRequest"+collectOrderRequest);
Page<IoCollectOrderResponse> orderResponses = ioCollectOrderBackupService.filterorderStatsList(collectOrderRequest);
return ResultVOUtils.success(orderResponses);
List<IoCollectOrderResponse> orderResponses = ioCollectOrderBackupService.filterorderStatsList(collectOrderRequest);
PageInfo<IoCollectOrderResponse> pageInfo = new PageInfo<>(orderResponses);
PageSimpleResponse<IoCollectOrderResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(orderResponses);
return ResultVOUtils.success(pageSimpleResponse);
}

@ -18,4 +18,5 @@ public interface IoCollectOrderBizBackupMapper extends BaseMapper<IoCollectOrder
List<CollectOrderBizResponse> getOrderCodeDetails(CollectOrderBizRequest collectOrderRequest);
Integer getScanCount(String billNo);
}

@ -287,4 +287,22 @@ public class IoCollectOrderBackup implements Serializable {
@TableField(value = "summaryNo")
@ApiModelProperty(value = "汇总单号")
private String summaryNo;
@TableField(value = "storard")
@ApiModelProperty(value = "是否达标")
private Integer storard;
@TableField(value = "shouldCount")
@ApiModelProperty(value = "应扫码数量")
private Integer shouldCount;
@TableField(value = "scanCount")
@ApiModelProperty(value = "实际扫码数量")
private Integer scanCount;
}

@ -78,6 +78,9 @@ public class CollectOrderBizResponse {
*/
private Integer scanCount;
/**
*
*/
@ -209,7 +212,7 @@ public class CollectOrderBizResponse {
private Integer isSplit;
private Integer notCodeType;
private Integer sumScanCount;
// /**
// * 未赋码数量

@ -210,17 +210,13 @@ public class IoCollectOrderResponse {
private Integer storard;
/**
*
*/
private Integer codingStatus;
@TableField(value = "summaryNo")
@ApiModelProperty(value = "汇总单号")
private String summaryNo;

@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.Constant;
@ -37,6 +38,7 @@ 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.inout.ReviewFinishRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.res.collect.CollectOrderBizResponse;
import com.glxp.api.res.collect.CollectOrderUploadCountResponse;
@ -789,57 +791,20 @@ public class IoCollectOrderBackupService extends ServiceImpl<IoCollectOrderBacku
@Resource
private BasicProductsDao basicProductsDao;
public Page<IoCollectOrderResponse> filterorderStatsList(CollectOrderRequest collectOrderRequest) {
public List<IoCollectOrderResponse> filterorderStatsList(CollectOrderRequest collectOrderRequest) {
if (collectOrderRequest.getPage() != null) {
int offset = (collectOrderRequest.getPage() - 1) * collectOrderRequest.getLimit();
PageHelper.offsetPage(offset, collectOrderRequest.getLimit());
}
List<IoCollectOrderResponse> data = ioCollectOrderBackupMapper.filterorderStatsList(collectOrderRequest);
List<IoCollectOrderResponse> filteredData = new ArrayList<>();
for (IoCollectOrderResponse ioCollectOrderResponse : data) {
Integer newScanCount = 0;
Integer shouldCount = 0;
List<IoCollectOrderBizBackup> orderBizBackups = ioCollectOrderBizBackupService.listByBillNo(ioCollectOrderResponse.getBillNo());
for (IoCollectOrderBizBackup collectOrderBizResponse : orderBizBackups) {
newScanCount += (collectOrderBizResponse.getScanCount() != null) ? collectOrderBizResponse.getScanCount() : 0;
shouldCount += getCount(collectOrderBizResponse);
}
ioCollectOrderResponse.setScanCount(newScanCount);
ioCollectOrderResponse.setShouldCount(shouldCount);
ioCollectOrderResponse.setScanRate(getScanRate(shouldCount, newScanCount));
ioCollectOrderResponse.setStorard(newScanCount.equals(shouldCount) ? 1 : 0);
ioCollectOrderResponse.setScanRate(getScanRate(ioCollectOrderResponse.getScanCount(), ioCollectOrderResponse.getShouldCount()));
if (collectOrderRequest.getStorard() == null){
filteredData.add(ioCollectOrderResponse);
}else if (collectOrderRequest.getStorard() == 1){
if (ioCollectOrderResponse.getStorard() == 1) {
filteredData.add(ioCollectOrderResponse);
}
}else if (collectOrderRequest.getStorard() == 0){
if (ioCollectOrderResponse.getStorard() == 0) {
filteredData.add(ioCollectOrderResponse);
}
}
}
Integer pageNum = collectOrderRequest.getPage() != null ? collectOrderRequest.getPage() : 1;
Integer pageSize = collectOrderRequest.getLimit() != null ? collectOrderRequest.getLimit() : 10;
int total = filteredData.size();
int totalPages = (int) Math.ceil((double) total / pageSize);
int start = (pageNum - 1) * pageSize;
int end = Math.min(start + pageSize, total);
List<IoCollectOrderResponse> pageData = filteredData.subList(start, end);
Page<IoCollectOrderResponse> page = new Page<>();
page.setCurrent(pageNum);
page.setSize(pageSize);
page.setTotal(total);
page.setPages(totalPages);
page.setRecords(pageData);
return page;
return data;
}

@ -1,17 +1,22 @@
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.basic.BasicProductsDao;
import com.glxp.api.dao.collect.IoCollectOrderBizBackupMapper;
import com.glxp.api.entity.basic.BasicProductsEntity;
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 com.glxp.api.util.IntUtil;
import io.swagger.models.auth.In;
import org.springframework.stereotype.Service;
@ -69,4 +74,45 @@ public class IoCollectOrderBizBackupService extends ServiceImpl<IoCollectOrderBi
return data;
}
public List<IoCollectOrderBizBackup> listByBillNos(List<String> billNoList) {
QueryWrapper<IoCollectOrderBizBackup> queryWrapper = new QueryWrapper<>();
queryWrapper.in("orderIdFk", billNoList);
return this.list(queryWrapper);
}
@Resource
private BasicProductsDao basicProductsDao;
public Integer setShouldCount(IoCollectOrderBizBackup ioCollectOrderBizBackup){
List<BasicProductsEntity> productList = basicProductsDao.selectList(
new LambdaQueryWrapper<BasicProductsEntity>()
.eq(BasicProductsEntity::getYbbm, ioCollectOrderBizBackup.getYbbm())
.eq(BasicProductsEntity::getPackLevel, "1"));
BasicProductsEntity product = productList.get(0);
Integer myBhxjsl = product.getBhxjsl();
Integer shouldCount = 0;
double quotient = (double) ioCollectOrderBizBackup.getCount() / myBhxjsl;
int integerPart = (int) quotient;
if (quotient == integerPart) {
if (integerPart == 0) {
if (ioCollectOrderBizBackup.getAutoTagStatus() != 2) {
shouldCount = 1;
}
} else {
shouldCount = integerPart;
}
} else {
if (IntUtil.value(ioCollectOrderBizBackup.getAutoTagStatus()) == 2) {
shouldCount = 0;
} else {
shouldCount = integerPart + 1;
}
}
return shouldCount;
}
public Integer getScanCount(String billNo){
return ioCollectOrderBizBackupMapper.getScanCount(billNo);
}
}

@ -57,31 +57,7 @@ public class IoCollectOrderBizService extends ServiceImpl<IoCollectOrderBizMappe
//设置 应该扫码数量 shouldCount
if (data.size() > 0) {
for (CollectOrderBizResponse collectOrderBizResponse : data) {
List<BasicProductsEntity> productList = basicProductsDao.selectList(
new LambdaQueryWrapper<BasicProductsEntity>()
.eq(BasicProductsEntity::getYbbm, collectOrderBizResponse.getYbbm())
.eq(BasicProductsEntity::getPackLevel, "1"));
BasicProductsEntity product = productList.get(0);
Integer myBhxjsl = product.getBhxjsl();
Integer shouldCount = 0;
double quotient = (double) collectOrderBizResponse.getCount() / myBhxjsl;
int integerPart = (int) quotient;
if (quotient == integerPart) {
if (integerPart == 0) {
if (collectOrderBizResponse.getAutoTagStatus() != 2) {
shouldCount = 1;
}
} else {
shouldCount = integerPart;
}
} else {
if (IntUtil.value(collectOrderBizResponse.getAutoTagStatus()) == 2) {
shouldCount = 0;
} else {
shouldCount = integerPart + 1;
}
}
collectOrderBizResponse.setShouldCount(shouldCount);
collectOrderBizResponse.setShouldCount(setShouldCount(collectOrderBizResponse));
if (collectOrderBizResponse.getScanCount() == null) {
collectOrderBizResponse.setScanCount(0);
}
@ -239,4 +215,32 @@ public class IoCollectOrderBizService extends ServiceImpl<IoCollectOrderBizMappe
}
return data;
}
public Integer setShouldCount(CollectOrderBizResponse collectOrderBizResponse){
List<BasicProductsEntity> productList = basicProductsDao.selectList(
new LambdaQueryWrapper<BasicProductsEntity>()
.eq(BasicProductsEntity::getYbbm, collectOrderBizResponse.getYbbm())
.eq(BasicProductsEntity::getPackLevel, "1"));
BasicProductsEntity product = productList.get(0);
Integer myBhxjsl = product.getBhxjsl();
Integer shouldCount = 0;
double quotient = (double) collectOrderBizResponse.getCount() / myBhxjsl;
int integerPart = (int) quotient;
if (quotient == integerPart) {
if (integerPart == 0) {
if (collectOrderBizResponse.getAutoTagStatus() != 2) {
shouldCount = 1;
}
} else {
shouldCount = integerPart;
}
} else {
if (IntUtil.value(collectOrderBizResponse.getAutoTagStatus()) == 2) {
shouldCount = 0;
} else {
shouldCount = integerPart + 1;
}
}
return shouldCount;
}
}

@ -733,6 +733,16 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
BeanUtils.copyProperties(collectOrder, ioCollectOrderBackup);
ioCollectOrderBackup.setCheckCodeStatus(0);
ioCollectOrderBackup.setCheckCodeConfirm(0);
Integer shouldCount = setStorar(collectOrder).get(0);
Integer scanCount = setStorar(collectOrder).get(1);
ioCollectOrderBackup.setScanCount(scanCount);
ioCollectOrderBackup.setShouldCount(shouldCount);
if (shouldCount == scanCount){
ioCollectOrderBackup.setStorard(1);
}else {
ioCollectOrderBackup.setStorard(0);
}
ioCollectOrderBackupService.save(ioCollectOrderBackup);
//todo 备份码表
IoCollectOrder finalCollectOrder = collectOrder;
@ -755,6 +765,19 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
}
}
private List<Integer> setStorar(IoCollectOrder collectOrder) {
ArrayList<Integer> integers = new ArrayList<>();
List<IoCollectOrderBizBackup> orderBizBackups = ioCollectOrderBizBackupService.listByBillNo(collectOrder.getBillNo());
Integer count = 0;
for (IoCollectOrderBizBackup ioCollectOrderBizBackup : orderBizBackups){
count += ioCollectOrderBizBackupService.setShouldCount(ioCollectOrderBizBackup);
}
Integer scanCount = ioCollectOrderBizBackupService.getScanCount(collectOrder.getBillNo());
integers.add(count);
integers.add(scanCount);
return integers;
}
@Transactional(rollbackFor = Exception.class)
public void confirmFinishOrder(CollectOrderRequest collectOrderRequest, AuthAdmin authAdmin) {

@ -193,6 +193,9 @@
icob.shipperName,
icob.thrBusType,
icob.shipper,
icob.shouldCount,
icob.scanCount,
icob.storard,
icob.tagMsg,
sys_workplace_document.busName busTypeName,
sw.workplaceName,
@ -280,6 +283,10 @@
<if test="uploadStatus != null">
and icob.uploadStatus = #{uploadStatus}
</if>
<if test="storard != null">
and icob.storard = #{storard}
</if>
<if test="keyWords != null and keyWords != ''">
and (icob.billNo like concat( #{keyWords}, '%')
or icob.fromCorp like concat('%', #{keyWords}, '%')
@ -322,4 +329,5 @@
GROUP BY icob.billNo
order by case when icob.orderTime is null then icob.createTime else icob.orderTime end desc
</select>
</mapper>

@ -11,6 +11,7 @@
bp.prepnSpec,
bp.manufactory,
bu.notCodeType,
SUM(icobb.scanCount) OVER (PARTITION BY icobb.ybbm) as sumScanCount,
COALESCE(bp.bzgg,bp.ggxh) AS spec
FROM io_collect_order_biz_backup icobb
left join basic_udirel bu on icobb.relId = bu.id
@ -86,5 +87,10 @@
</where>
group by icobb.relId,icobb.batchNo
</select>
<select id="getScanCount" resultType="java.lang.Integer">
SELECT
COALESCE(SUM(icobb.scanCount), 0) AS totalScanCount
FROM io_collect_order_biz_backup icobb
where icobb.orderIdFk = #{billNo}
</select>
</mapper>

@ -5620,3 +5620,15 @@ CALL Modify_index('yb_uploading_log', 'updateTime', 'idx_yb_uploading_log_update
CALL Pro_Temp_ColumnWork('sys_workplace_document', 'coercionSubmit',
'tinyint NULL DEFAULT NULL COMMENT ''是否允许强制提交单据10''',
1);
CALL Pro_Temp_ColumnWork('io_collect_order_backup', 'storard',
'tinyint NULL DEFAULT NULL COMMENT ''是否达标10''',
1);
CALL Pro_Temp_ColumnWork('io_collect_order_backup', 'shouldCount',
'int NULL DEFAULT NULL COMMENT ''应扫码数量''',
1);
CALL Pro_Temp_ColumnWork('io_collect_order_backup', 'scanCount',
'int NULL DEFAULT NULL COMMENT ''扫码数量''',
1);

Loading…
Cancel
Save