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<Long> workPlaceCodes = null;
List<UserWorkResponse> page; List<UserWorkResponse> page;
log.error("collectOrderRequest"+collectOrderRequest); log.error("collectOrderRequest"+collectOrderRequest);
Page<IoCollectOrderResponse> orderResponses = ioCollectOrderBackupService.filterorderStatsList(collectOrderRequest); List<IoCollectOrderResponse> orderResponses = ioCollectOrderBackupService.filterorderStatsList(collectOrderRequest);
return ResultVOUtils.success(orderResponses); 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); List<CollectOrderBizResponse> getOrderCodeDetails(CollectOrderBizRequest collectOrderRequest);
Integer getScanCount(String billNo);
} }

@ -287,4 +287,22 @@ public class IoCollectOrderBackup implements Serializable {
@TableField(value = "summaryNo") @TableField(value = "summaryNo")
@ApiModelProperty(value = "汇总单号") @ApiModelProperty(value = "汇总单号")
private String summaryNo; 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; private Integer scanCount;
/** /**
* *
*/ */
@ -209,7 +212,7 @@ public class CollectOrderBizResponse {
private Integer isSplit; private Integer isSplit;
private Integer notCodeType; private Integer notCodeType;
private Integer sumScanCount;
// /** // /**
// * 未赋码数量 // * 未赋码数量

@ -210,17 +210,13 @@ public class IoCollectOrderResponse {
private Integer storard; private Integer storard;
/** /**
* *
*/ */
private Integer codingStatus; private Integer codingStatus;
@TableField(value = "summaryNo") @TableField(value = "summaryNo")
@ApiModelProperty(value = "汇总单号") @ApiModelProperty(value = "汇总单号")
private String summaryNo; 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.plugins.pagination.Page;
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.github.pagehelper.PageInfo;
import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.Constant; 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.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.PageSimpleResponse;
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.CollectOrderUploadCountResponse;
@ -789,57 +791,20 @@ public class IoCollectOrderBackupService extends ServiceImpl<IoCollectOrderBacku
@Resource @Resource
private BasicProductsDao basicProductsDao; 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> data = ioCollectOrderBackupMapper.filterorderStatsList(collectOrderRequest);
List<IoCollectOrderResponse> filteredData = new ArrayList<>();
for (IoCollectOrderResponse ioCollectOrderResponse : data) { 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.setScanRate(getScanRate(ioCollectOrderResponse.getScanCount(), ioCollectOrderResponse.getShouldCount()));
ioCollectOrderResponse.setShouldCount(shouldCount);
ioCollectOrderResponse.setScanRate(getScanRate(shouldCount, newScanCount));
ioCollectOrderResponse.setStorard(newScanCount.equals(shouldCount) ? 1 : 0);
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; return data;
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;
} }

@ -1,17 +1,22 @@
package com.glxp.api.service.collect; 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.core.toolkit.Wrappers;
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.common.res.BaseResponse;
import com.glxp.api.dao.basic.BasicProductsDao;
import com.glxp.api.dao.collect.IoCollectOrderBizBackupMapper; 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.entity.collect.IoCollectOrderBizBackup;
import com.glxp.api.http.ErpBasicClient; 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.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 com.glxp.api.util.IntUtil;
import io.swagger.models.auth.In; import io.swagger.models.auth.In;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -69,4 +74,45 @@ public class IoCollectOrderBizBackupService extends ServiceImpl<IoCollectOrderBi
return data; 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 //设置 应该扫码数量 shouldCount
if (data.size() > 0) { if (data.size() > 0) {
for (CollectOrderBizResponse collectOrderBizResponse : data) { for (CollectOrderBizResponse collectOrderBizResponse : data) {
List<BasicProductsEntity> productList = basicProductsDao.selectList( collectOrderBizResponse.setShouldCount(setShouldCount(collectOrderBizResponse));
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);
if (collectOrderBizResponse.getScanCount() == null) { if (collectOrderBizResponse.getScanCount() == null) {
collectOrderBizResponse.setScanCount(0); collectOrderBizResponse.setScanCount(0);
} }
@ -239,4 +215,32 @@ public class IoCollectOrderBizService extends ServiceImpl<IoCollectOrderBizMappe
} }
return data; 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); BeanUtils.copyProperties(collectOrder, ioCollectOrderBackup);
ioCollectOrderBackup.setCheckCodeStatus(0); ioCollectOrderBackup.setCheckCodeStatus(0);
ioCollectOrderBackup.setCheckCodeConfirm(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); ioCollectOrderBackupService.save(ioCollectOrderBackup);
//todo 备份码表 //todo 备份码表
IoCollectOrder finalCollectOrder = collectOrder; 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) @Transactional(rollbackFor = Exception.class)
public void confirmFinishOrder(CollectOrderRequest collectOrderRequest, AuthAdmin authAdmin) { public void confirmFinishOrder(CollectOrderRequest collectOrderRequest, AuthAdmin authAdmin) {

@ -193,6 +193,9 @@
icob.shipperName, icob.shipperName,
icob.thrBusType, icob.thrBusType,
icob.shipper, icob.shipper,
icob.shouldCount,
icob.scanCount,
icob.storard,
icob.tagMsg, icob.tagMsg,
sys_workplace_document.busName busTypeName, sys_workplace_document.busName busTypeName,
sw.workplaceName, sw.workplaceName,
@ -280,6 +283,10 @@
<if test="uploadStatus != null"> <if test="uploadStatus != null">
and icob.uploadStatus = #{uploadStatus} and icob.uploadStatus = #{uploadStatus}
</if> </if>
<if test="storard != null">
and icob.storard = #{storard}
</if>
<if test="keyWords != null and keyWords != ''"> <if test="keyWords != null and keyWords != ''">
and (icob.billNo like concat( #{keyWords}, '%') and (icob.billNo like concat( #{keyWords}, '%')
or icob.fromCorp like concat('%', #{keyWords}, '%') or icob.fromCorp like concat('%', #{keyWords}, '%')
@ -322,4 +329,5 @@
GROUP BY icob.billNo GROUP BY icob.billNo
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>
</mapper> </mapper>

@ -11,6 +11,7 @@
bp.prepnSpec, bp.prepnSpec,
bp.manufactory, bp.manufactory,
bu.notCodeType, bu.notCodeType,
SUM(icobb.scanCount) OVER (PARTITION BY icobb.ybbm) as sumScanCount,
COALESCE(bp.bzgg,bp.ggxh) AS spec COALESCE(bp.bzgg,bp.ggxh) AS spec
FROM io_collect_order_biz_backup icobb FROM io_collect_order_biz_backup icobb
left join basic_udirel bu on icobb.relId = bu.id left join basic_udirel bu on icobb.relId = bu.id
@ -86,5 +87,10 @@
</where> </where>
group by icobb.relId,icobb.batchNo group by icobb.relId,icobb.batchNo
</select> </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> </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', CALL Pro_Temp_ColumnWork('sys_workplace_document', 'coercionSubmit',
'tinyint NULL DEFAULT NULL COMMENT ''是否允许强制提交单据10''', 'tinyint NULL DEFAULT NULL COMMENT ''是否允许强制提交单据10''',
1); 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