From dedb8d8851bda64d105eabd9740dc649a9d21c17 Mon Sep 17 00:00:00 2001 From: wangwei <1610949092@qq.com> Date: Tue, 8 Apr 2025 21:22:44 +0800 Subject: [PATCH] =?UTF-8?q?4/8=20=E6=96=B0=E5=A2=9E=E5=8D=95=E6=8D=AE?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E9=A1=B5=E9=9D=A2=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E7=B1=BB=E5=9E=8B=E5=A2=9E=E5=8A=A0=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E5=BC=BA=E5=88=B6=E6=8F=90=E4=BA=A41.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IoCollectOrderBackupController.java | 13 ++ .../collect/IoCollectOrderBackupMapper.java | 1 + .../basic/SysWorkplaceDocumentEntity.java | 9 ++ .../collect/IoCollectOrderBizBackup.java | 5 + .../api/req/collect/CollectOrderRequest.java | 9 ++ .../basic/SysWorkplaceDocumentResponse.java | 5 + .../res/collect/IoCollectOrderResponse.java | 22 +++ .../collect/IoCollectOrderBackupService.java | 135 +++++++++++++++- .../collect/IoCollectOrderCodeManService.java | 5 +- .../collect/IoCollectOrderService.java | 1 + .../collect/IoCollectOrderBackupMapper.xml | 152 ++++++++++++++++++ src/main/resources/schemas/schema_v2.4.sql | 5 + 12 files changed, 354 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderBackupController.java b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderBackupController.java index 43a3df753..b8eba9f99 100644 --- a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderBackupController.java +++ b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderBackupController.java @@ -2,6 +2,7 @@ package com.glxp.api.controller.collect; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.pagehelper.PageInfo; import com.glxp.api.common.enums.ResultEnum; import com.glxp.api.common.res.BaseResponse; @@ -232,4 +233,16 @@ public class IoCollectOrderBackupController extends BaseController { } + + @PostMapping("/udiwms/basic/collect/orderFinish/orderStats") + public BaseResponse orderStats(@RequestBody CollectOrderRequest collectOrderRequest) { + List workPlaceCodes = null; + List page; + // 上传医保不做登录权限限制 + log.error("collectOrderRequest"+collectOrderRequest); + Page orderResponses = ioCollectOrderBackupService.filterorderStatsList(collectOrderRequest); + + return ResultVOUtils.success(orderResponses); + } + } diff --git a/src/main/java/com/glxp/api/dao/collect/IoCollectOrderBackupMapper.java b/src/main/java/com/glxp/api/dao/collect/IoCollectOrderBackupMapper.java index 9c789fe83..e1587d86b 100644 --- a/src/main/java/com/glxp/api/dao/collect/IoCollectOrderBackupMapper.java +++ b/src/main/java/com/glxp/api/dao/collect/IoCollectOrderBackupMapper.java @@ -20,4 +20,5 @@ public interface IoCollectOrderBackupMapper extends BaseMapperPlus getList(CollectOrderUploadCountRequest collectOrderUploadCountRequest); + List filterorderStatsList(CollectOrderRequest collectOrderRequest); } diff --git a/src/main/java/com/glxp/api/entity/basic/SysWorkplaceDocumentEntity.java b/src/main/java/com/glxp/api/entity/basic/SysWorkplaceDocumentEntity.java index 4c14275fc..9107415d8 100644 --- a/src/main/java/com/glxp/api/entity/basic/SysWorkplaceDocumentEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/SysWorkplaceDocumentEntity.java @@ -228,5 +228,14 @@ public class SysWorkplaceDocumentEntity { @TableField(value = "productType") private Integer productType; + /** + * 强制提交 0否 1是 + */ + @TableField(value = "coercionSubmit") + private Integer coercionSubmit; + + + + } diff --git a/src/main/java/com/glxp/api/entity/collect/IoCollectOrderBizBackup.java b/src/main/java/com/glxp/api/entity/collect/IoCollectOrderBizBackup.java index 153970168..6703d4751 100644 --- a/src/main/java/com/glxp/api/entity/collect/IoCollectOrderBizBackup.java +++ b/src/main/java/com/glxp/api/entity/collect/IoCollectOrderBizBackup.java @@ -228,5 +228,10 @@ public class IoCollectOrderBizBackup implements Serializable { */ @TableField(value = "checkCode") private String checkCode; + + + @TableField(exist = false) + private Integer setShouldCount; + private static final long serialVersionUID = 1L; } diff --git a/src/main/java/com/glxp/api/req/collect/CollectOrderRequest.java b/src/main/java/com/glxp/api/req/collect/CollectOrderRequest.java index bce4b910e..73ee218df 100644 --- a/src/main/java/com/glxp/api/req/collect/CollectOrderRequest.java +++ b/src/main/java/com/glxp/api/req/collect/CollectOrderRequest.java @@ -177,6 +177,15 @@ public class CollectOrderRequest extends ListPageRequest { private Integer returnStatus; + private Integer storard; + + + private String orderStartTime; + private String orderEndTime; + + + + } diff --git a/src/main/java/com/glxp/api/res/basic/SysWorkplaceDocumentResponse.java b/src/main/java/com/glxp/api/res/basic/SysWorkplaceDocumentResponse.java index 45eaea5d2..e0c7cd7d7 100644 --- a/src/main/java/com/glxp/api/res/basic/SysWorkplaceDocumentResponse.java +++ b/src/main/java/com/glxp/api/res/basic/SysWorkplaceDocumentResponse.java @@ -177,5 +177,10 @@ public class SysWorkplaceDocumentResponse { private Integer productType; + /** + * 强制提交 0否 1是 + */ + @TableField(value = "coercionSubmit") + private Integer coercionSubmit; } diff --git a/src/main/java/com/glxp/api/res/collect/IoCollectOrderResponse.java b/src/main/java/com/glxp/api/res/collect/IoCollectOrderResponse.java index f423ac5e5..c2a9640b7 100644 --- a/src/main/java/com/glxp/api/res/collect/IoCollectOrderResponse.java +++ b/src/main/java/com/glxp/api/res/collect/IoCollectOrderResponse.java @@ -194,6 +194,28 @@ public class IoCollectOrderResponse { */ private Integer orderUpStatus; + /** + * 扫码数量 + */ + private Integer scanCount; + + + private Integer shouldCount; + + private String scanRate; + + /** + * 是否达标 + * 1 是 + * 2 否 + */ + private Integer storard; + + + + + + /** * 赋码状态 diff --git a/src/main/java/com/glxp/api/service/collect/IoCollectOrderBackupService.java b/src/main/java/com/glxp/api/service/collect/IoCollectOrderBackupService.java index a0447e7ac..3677e8f92 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOrderBackupService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOrderBackupService.java @@ -8,6 +8,7 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.glxp.api.common.res.BaseResponse; @@ -15,6 +16,7 @@ import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.constant.Constant; import com.glxp.api.constant.ConstantStatus; import com.glxp.api.dao.auth.InvWarehouseDao; +import com.glxp.api.dao.basic.BasicProductsDao; import com.glxp.api.dao.basic.SysWorkplaceBusMapper; import com.glxp.api.dao.collect.IoCollectCodeBackMapper; import com.glxp.api.dao.collect.IoCollectCodeMapper; @@ -23,10 +25,7 @@ import com.glxp.api.dao.inout.IoCodeTempDao; import com.glxp.api.entity.auth.AuthAdmin; import com.glxp.api.entity.auth.InvWarehouseEntity; import com.glxp.api.entity.auth.SysWorkplace; -import com.glxp.api.entity.basic.BasicBussinessTypeEntity; -import com.glxp.api.entity.basic.CompanyProductRelevanceEntity; -import com.glxp.api.entity.basic.SysWorkplaceBus; -import com.glxp.api.entity.basic.SysWorkplaceDocumentEntity; +import com.glxp.api.entity.basic.*; import com.glxp.api.entity.collect.*; import com.glxp.api.entity.inout.IoCodeTempEntity; import com.glxp.api.entity.inout.IoOrderEntity; @@ -61,6 +60,8 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; +import java.math.RoundingMode; +import java.text.DecimalFormat; import java.util.*; import java.util.stream.Collectors; @@ -785,4 +786,130 @@ public class IoCollectOrderBackupService extends ServiceImpl filterorderStatsList(CollectOrderRequest collectOrderRequest) { + + List data = ioCollectOrderBackupMapper.filterorderStatsList(collectOrderRequest); +// for (IoCollectOrderResponse ioCollectOrderResponse : data){ +// Integer newScanCount = 0; +// Integer shouldCount = 0; +// List 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)); +// if (newScanCount == shouldCount){ +// ioCollectOrderResponse.setStorard(1); +// }else { +// ioCollectOrderResponse.setStorard(0); +// } +// } + + + // 筛选 setStorard 为 1 的数据 + List filteredData = new ArrayList<>(); + List filteredData1 = new ArrayList<>(); + List filteredData2 = new ArrayList<>(); + for (IoCollectOrderResponse ioCollectOrderResponse : data) { + Integer newScanCount = 0; + Integer shouldCount = 0; + List 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); + + 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 pageData = filteredData.subList(start, end); + + // 创建分页对象 + Page page = new Page<>(); + page.setCurrent(pageNum); + page.setSize(pageSize); + page.setTotal(total); + page.setPages(totalPages); + page.setRecords(pageData); + + return page; + + } + + public Integer getCount(IoCollectOrderBizBackup collectOrderBizResponse){ + Integer shouldCount = 0; + List productList = basicProductsDao.selectList( + new LambdaQueryWrapper() + .eq(BasicProductsEntity::getYbbm, collectOrderBizResponse.getYbbm()) + .eq(BasicProductsEntity::getPackLevel, "1")); + BasicProductsEntity product = productList.get(0); + Integer myBhxjsl = product.getBhxjsl(); + + 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; + } + + public String getScanRate(Integer scanCount,Integer shouldCount) { + if (scanCount == null || scanCount == 0) { + return 0.00 + "%" ; // 或返回 null 根据业务需求 + } + double v = BigDecimal.valueOf(shouldCount) + .divide(BigDecimal.valueOf(scanCount), 4, RoundingMode.HALF_UP) + .multiply(BigDecimal.valueOf(100)) + .setScale(2, RoundingMode.HALF_UP) + .doubleValue(); + DecimalFormat df = new DecimalFormat("#.00"); + return df.format(v) + "%"; + } } diff --git a/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java b/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java index 16de02f17..c7b5b2cab 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java @@ -57,10 +57,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Date; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; @Service diff --git a/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java b/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java index b23222260..718537881 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java @@ -708,6 +708,7 @@ public class IoCollectOrderService extends ServiceImpl + + diff --git a/src/main/resources/schemas/schema_v2.4.sql b/src/main/resources/schemas/schema_v2.4.sql index 40ad2360a..a2e7f2a3c 100644 --- a/src/main/resources/schemas/schema_v2.4.sql +++ b/src/main/resources/schemas/schema_v2.4.sql @@ -5611,3 +5611,8 @@ CREATE TABLE IF NOT EXISTS `yb_uploading_log` ( CALL Modify_index('yb_uploading_log', 'billNo', 'idx_yb_uploading_log_billNo', 'BTREE'); CALL Modify_index('yb_uploading_log', 'updateTime', 'idx_yb_uploading_log_updateTime', 'BTREE'); + + +CALL Pro_Temp_ColumnWork('sys_workplace_document', 'coercionSubmit', + 'tinyint NULL DEFAULT NULL COMMENT ''是否允许强制提交单据:1:是;0:否''', + 1);