From 781994dff1a0bb5724efa7c1a9503941034e08b0 Mon Sep 17 00:00:00 2001 From: liuy <37787198+LiuyCodes@users.noreply.github.com> Date: Wed, 28 May 2025 22:26:21 +0800 Subject: [PATCH] =?UTF-8?q?(defeatletedata):=20=E6=96=B0=E5=A2=9E=E9=94=80?= =?UTF-8?q?=E5=94=AE=E8=AE=A2=E5=8D=95=E5=8F=96=E6=B6=88=E7=AD=BE=E8=AF=81?= =?UTF-8?q?=E5=92=8C=E5=88=A0=E9=99=A4=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 cancelSignatureSoSaleReadExcel20250528V2 方法,用于取消销售订单签证并删除 - 新增 abandonmentReviewSoSaleinvoice2505282107 方法,用于弃审并删除销售发票- 新增 cancelSignatureSoSaleReadExcel2505282140V2 方法,用于取消销售订单签证并删除 - 在 DeleteU8cDataUtilEntity 中添加 csaleid 和 fstatus 字段 - 在 DeleteU8cDataUtilDao 中添加新的查询方法 - 优化现有的删除逻辑,提高处理效率 --- .../frame/deletedata/DeleteU8cDataUtil.java | 289 +++++++++++++++++- .../deletedata/dao/DeleteU8cDataUtilDao.java | 15 + .../dao/impl/DeleteU8cDataUtilDaoImpl.java | 12 + .../entity/DeleteU8cDataUtilEntity.java | 20 ++ .../entity/DeleteU8cDataUtilEntity.xml | 76 +++++ 5 files changed, 410 insertions(+), 2 deletions(-) diff --git a/service/src/main/java/com/hzya/frame/deletedata/DeleteU8cDataUtil.java b/service/src/main/java/com/hzya/frame/deletedata/DeleteU8cDataUtil.java index 522d4e44..7bd4c1ec 100644 --- a/service/src/main/java/com/hzya/frame/deletedata/DeleteU8cDataUtil.java +++ b/service/src/main/java/com/hzya/frame/deletedata/DeleteU8cDataUtil.java @@ -80,6 +80,10 @@ public class DeleteU8cDataUtil { // saleOutSign("'0001A110000000001TH6', '0001A1100000000VKCOK'"); // cancelSignatureSoSaleReadExcelV2(); + + cancelSignatureSoSaleReadExcel20250528V2(); + abandonmentReviewSoSaleinvoice2505282107(); + cancelSignatureSoSaleReadExcel2505282140V2(); } } } @@ -879,7 +883,7 @@ public class DeleteU8cDataUtil { JsonRootBean jsonRootBean = new JsonRootBean(); jsonRootBean.setDeleteinfo(deleteinfo); jsonRootBean.setQueryinfo(queryinfo); - sendU8C("http://39.170.109.90:8088/u8cloud/api/so/saleorder/delete", JSON.toJSONString(jsonRootBean), 1); +// sendU8C("http://39.170.109.90:8088/u8cloud/api/so/saleorder/delete", JSON.toJSONString(jsonRootBean), 1); } catch (Exception e) { e.printStackTrace(); } @@ -1020,7 +1024,7 @@ public class DeleteU8cDataUtil { JsonRootBean jsonRootBean = new JsonRootBean(); jsonRootBean.setDeleteinfo(deleteinfo); jsonRootBean.setQueryinfo(queryinfo); - sendU8C("http://39.170.109.90:8088/u8cloud/api/so/saleorder/delete", JSON.toJSONString(jsonRootBean), vreceiptcodeList.size()); +// sendU8C("http://39.170.109.90:8088/u8cloud/api/so/saleorder/delete", JSON.toJSONString(jsonRootBean), vreceiptcodeList.size()); } } } @@ -1049,4 +1053,285 @@ public class DeleteU8cDataUtil { } return resultMap; } + + + /** + * 销售出库单取消签证并删除 + */ + public void cancelSignatureSoSaleReadExcel20250528V2() { + try { + //确定销售订单范围、19648 + List deleteU8cDataUtilEntities = deleteU8cDataUtilDao.cancelSignatureSoSaleReadExcel20250528V2(); + + //按100行拆分 + List> lists = SplitListByCountUtil.splitListByCount(deleteU8cDataUtilEntities, 100); + if (lists.size() > 0) { + for (int i = 0; i < lists.size(); i++) { + List deleteU8cDataUtilEntities1 = lists.get(i); + //逗号拼接 + String concatenatedIds = deleteU8cDataUtilEntities1.stream().map(DeleteU8cDataUtilEntity::getCsaleid).map(csaleid -> "'" + csaleid + "'").collect(Collectors.joining(",")); + + //根据销售订单主键,查询对应的销售出库单 + DeleteIcGeneralHVo deleteIcGeneralHVo = new DeleteIcGeneralHVo(); + deleteIcGeneralHVo.setDataSourceCode("lets_u8c"); + deleteIcGeneralHVo.setCfirstbillhids(concatenatedIds); + deleteIcGeneralHVo.setFbillflag("3");//签字状态 + List soSaleinvoiceEntities = deleteU8cDataUtilDao.queryIcGeneralHByCancelSignatureV2(deleteIcGeneralHVo); + Map> stringListMap = groupByDbilldatev2(soSaleinvoiceEntities); + + if (stringListMap.size() > 0) { + for (Map.Entry> entry : stringListMap.entrySet()) { + String key = entry.getKey(); + List valueList = entry.getValue(); + List vreceiptcodeList = valueList.stream().map(DeleteU8cDataUtilEntity::getVbillcode).collect(Collectors.toList()); + + String[] split = key.split("@@@@"); + + //批量销售出库单取消签字 + Deleteinfo deleteinfo = new Deleteinfo(); + deleteinfo.setCoperator("tbadmin"); + + Queryinfo queryinfo = new Queryinfo(); + queryinfo.setCorp(split[1]); + queryinfo.setDate_begin(split[0]); + queryinfo.setDate_end(split[0]); + queryinfo.setBillcode(vreceiptcodeList); + + JsonRootBean jsonRootBean = new JsonRootBean(); + jsonRootBean.setUnsignInfo(deleteinfo); + jsonRootBean.setQueryInfo(queryinfo); + sendU8C("http://39.170.109.90:8088/u8cloud/api/ic/saleout/unsign", JSON.toJSONString(jsonRootBean), vreceiptcodeList.size()); + } + } + + //根据销售订单主键,查询对应的销售出库单 + DeleteIcGeneralHVo deleteIcGeneralHVo2 = new DeleteIcGeneralHVo(); + deleteIcGeneralHVo2.setDataSourceCode("lets_u8c"); + deleteIcGeneralHVo2.setCfirstbillhids(concatenatedIds); + deleteIcGeneralHVo2.setFbillflag("2");//自由状态 + List soSaleinvoiceEntities2 = deleteU8cDataUtilDao.queryIcGeneralHByCancelSignatureV2(deleteIcGeneralHVo2); + Map> stringListMap2 = groupByDbilldatev2(soSaleinvoiceEntities2); + if (stringListMap2.size() > 0) { + for (Map.Entry> entry : stringListMap.entrySet()) { + String key = entry.getKey(); + List valueList = entry.getValue(); + List vreceiptcodeList = valueList.stream().map(DeleteU8cDataUtilEntity::getVbillcode).collect(Collectors.toList()); + + String[] split = key.split("@@@@"); + + //批量销售出库单删除 + Deleteinfo deleteinfo2 = new Deleteinfo(); + deleteinfo2.setCoperator("tbadmin"); + + Queryinfo queryinfo2 = new Queryinfo(); + queryinfo2.setCorp(split[1]); + queryinfo2.setDate_begin(split[0]); + queryinfo2.setDate_end(split[0]); + queryinfo2.setBillcode(vreceiptcodeList); + + JsonRootBean jsonRootBean2 = new JsonRootBean(); + jsonRootBean2.setDeleteInfo(deleteinfo2); + jsonRootBean2.setQueryInfo(queryinfo2); + sendU8C("http://39.170.109.90:8088/u8cloud/api/ic/saleout/delete", JSON.toJSONString(jsonRootBean2), vreceiptcodeList.size()); + } + } + } + } + + //验证是否还存在需要取消签字并删除的销售出库单 + List soSaleinvoiceEntitieAll = new ArrayList<>(); + List> lists2 = SplitListByCountUtil.splitListByCount(deleteU8cDataUtilEntities, 999); + for (int i = 0; i < lists2.size(); i++) { + List deleteU8cDataUtilEntities1 = lists2.get(i); + String concatenatedIds = deleteU8cDataUtilEntities1.stream().map(DeleteU8cDataUtilEntity::getCsaleid).map(csaleid -> "'" + csaleid + "'").collect(Collectors.joining(",")); + DeleteIcGeneralHVo deleteIcGeneralHVo = new DeleteIcGeneralHVo(); + deleteIcGeneralHVo.setDataSourceCode("lets_u8c"); + deleteIcGeneralHVo.setCfirstbillhids(concatenatedIds); + List soSaleinvoiceEntities = deleteU8cDataUtilDao.queryIcGeneralHByCancelSignatureV2(deleteIcGeneralHVo); + soSaleinvoiceEntitieAll.addAll(soSaleinvoiceEntities); + } + if (soSaleinvoiceEntitieAll.size() > 0) { + Thread.sleep(10000); + cancelSignatureSoSaleReadExcel20250528V2(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * 弃审销售发票,并删除销售发票 + */ + public void abandonmentReviewSoSaleinvoice2505282107() { + try { + //确定销售订单范围、19648 + List deleteU8cDataUtilEntities = deleteU8cDataUtilDao.cancelSignatureSoSaleReadExcel20250528V2(); + List> lists = SplitListByCountUtil.splitListByCount(deleteU8cDataUtilEntities, 100); + if (lists.size() > 0) { + for (int i = 0; i < lists.size(); i++) { + List deleteU8cDataUtilEntities1 = lists.get(i); + String concatenatedIds = deleteU8cDataUtilEntities1.stream().map(DeleteU8cDataUtilEntity::getCsaleid).map(csaleid -> "'" + csaleid + "'").collect(Collectors.joining(",")); + //取消审核销售发票 + DeleteU8cDataUtilEntity soSaleinvoiceEntity = new DeleteU8cDataUtilEntity(); + soSaleinvoiceEntity.setDataSourceCode("lets_u8c"); + soSaleinvoiceEntity.setCsaleid(concatenatedIds); + soSaleinvoiceEntity.setFstatus("2");//审批状态 + List soSaleinvoiceEntities = deleteU8cDataUtilDao.querySoSaleinvoiceByCancelApprovalV2(soSaleinvoiceEntity); + Map> stringListMap = groupByDbilldate(soSaleinvoiceEntities); + for (Map.Entry> entry : stringListMap.entrySet()) { + String key = entry.getKey(); + List valueList = entry.getValue(); + List vreceiptcodeList = valueList.stream().map(DeleteU8cDataUtilEntity::getVreceiptcode).collect(Collectors.toList()); + + String[] split = key.split("@@@@"); + + Map stringStringMap = new HashMap<>(); + stringStringMap.put("approvid", "tbadmin"); + + Map stringStringMap2 = new HashMap<>(); + stringStringMap2.put("corp", split[1]); + stringStringMap2.put("code", vreceiptcodeList); + stringStringMap2.put("date_begin", split[0]); + stringStringMap2.put("date_end", split[0]); + + Map> stringStringMap3 = new HashMap<>(); + stringStringMap3.put("approveinfo", stringStringMap); + stringStringMap3.put("queryinfo", stringStringMap2); + sendU8C("http://39.170.109.90:8088/u8cloud/api/so/saleinvoice/unapprove", JSON.toJSONString(stringStringMap3), vreceiptcodeList.size()); + } + + //删除销售发票 + DeleteU8cDataUtilEntity soSaleinvoiceEntity2 = new DeleteU8cDataUtilEntity(); + soSaleinvoiceEntity2.setDataSourceCode("lets_u8c"); + soSaleinvoiceEntity2.setFstatus("1");//自由状态 + soSaleinvoiceEntity2.setCsaleid(concatenatedIds); + List soSaleinvoiceEntities2 = deleteU8cDataUtilDao.querySoSaleinvoiceByCancelApprovalV2(soSaleinvoiceEntity2); + logger.info("条数:{}", soSaleinvoiceEntities2.size()); + if (soSaleinvoiceEntities2 != null && soSaleinvoiceEntities2.size() > 0) { + List> splitListByCount = SplitListByCountUtil.splitListByCount(soSaleinvoiceEntities2, 100); + for (int j = 0; j < splitListByCount.size(); j++) { + List deleteU8cDataUtilEntities2 = splitListByCount.get(j); + Map> stringListMap2 = groupByDbilldate(deleteU8cDataUtilEntities2); + for (Map.Entry> entry : stringListMap2.entrySet()) { + String key = entry.getKey(); + List valueList = entry.getValue(); + List vreceiptcodeList = valueList.stream().map(DeleteU8cDataUtilEntity::getVreceiptcode).collect(Collectors.toList()); + + String[] split = key.split("@@@@"); + + Map objectMap = new HashMap<>(); + objectMap.put("coperator", "tbadmin"); + + Map objectMap2 = new HashMap<>(); + objectMap2.put("corp", split[1]); + objectMap2.put("date_begin", split[0]); + objectMap2.put("date_end", split[0]); + objectMap2.put("code", vreceiptcodeList); + + Map objectMap3 = new HashMap<>(); + objectMap3.put("deleteinfo", objectMap); + objectMap3.put("queryinfo", objectMap2); + + sendU8C("http://39.170.109.90:8088/u8cloud/api/so/saleinvoice/delete", JSON.toJSONString(objectMap3), vreceiptcodeList.size()); + } + } + } + } + } + + //判断是否还存在需要删除的发票 + List soSaleinvoiceEntities2All = new ArrayList<>(); + List deleteU8cDataUtilEntities2 = deleteU8cDataUtilDao.cancelSignatureSoSaleReadExcel20250528V2(); + List> lists2 = SplitListByCountUtil.splitListByCount(deleteU8cDataUtilEntities2, 999); + for (int i = 0; i < lists2.size(); i++) { + List deleteU8cDataUtilEntities1 = lists2.get(i); + String concatenatedIds = deleteU8cDataUtilEntities1.stream().map(DeleteU8cDataUtilEntity::getCsaleid).map(csaleid -> "'" + csaleid + "'").collect(Collectors.joining(",")); + + DeleteU8cDataUtilEntity soSaleinvoiceEntity2 = new DeleteU8cDataUtilEntity(); + soSaleinvoiceEntity2.setDataSourceCode("lets_u8c"); + soSaleinvoiceEntity2.setCsaleid(concatenatedIds); + List soSaleinvoiceEntities2 = deleteU8cDataUtilDao.querySoSaleinvoiceByCancelApprovalV2(soSaleinvoiceEntity2); + soSaleinvoiceEntities2All.addAll(soSaleinvoiceEntities2); + } + if (soSaleinvoiceEntities2All.size() > 0) { + Thread.sleep(10000); + abandonmentReviewSoSaleinvoice2505282107(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + + /** + * 销售订单取消签字+删除 + */ + public void cancelSignatureSoSaleReadExcel2505282140V2() { + try { + //确定销售订单范围、19648 + List deleteU8cDataUtilEntities = deleteU8cDataUtilDao.cancelSignatureSoSaleReadExcel20250528V2(); + if (deleteU8cDataUtilEntities.size() > 0) { + List> lists = SplitListByCountUtil.splitListByCount(deleteU8cDataUtilEntities, 100); + for (int i = 0; i < lists.size(); i++) { + List deleteU8cDataUtilEntities1 = lists.get(i); + String concatenatedIds = deleteU8cDataUtilEntities1.stream().map(DeleteU8cDataUtilEntity::getCsaleid).map(csaleid -> "'" + csaleid + "'").collect(Collectors.joining(",")); + //销售订单取消审核 + DeleteSoSaleVo deleteSoSaleVo = new DeleteSoSaleVo(); + deleteSoSaleVo.setDataSourceCode("lets_u8c"); + deleteSoSaleVo.setCsaleids(concatenatedIds); + deleteSoSaleVo.setFstatus(2L); + List deleteU8cDataUtilEntities2 = deleteU8cDataUtilDao.querySoSaleByDeletev2(deleteSoSaleVo); + Map> deleteU8cDataUtilEntitiesMap = groupByDbilldatev2(deleteU8cDataUtilEntities2); + if (deleteU8cDataUtilEntitiesMap.size() > 0) { + for (Map.Entry> entry : deleteU8cDataUtilEntitiesMap.entrySet()) { + String key = entry.getKey(); + List valueList = entry.getValue(); + List vreceiptcodeList = valueList.stream().map(DeleteU8cDataUtilEntity::getVreceiptcode).collect(Collectors.toList()); + + String[] split = key.split("@@@@"); + + //批量销售订单取消审核 + JsonRootBeanCancelSignature jsonRootBeanCancelSignature = new JsonRootBeanCancelSignature(); + + QueryinfoCancelSignature queryinfoCancelSignature = new QueryinfoCancelSignature(); + queryinfoCancelSignature.setDate_begin(split[0]); + queryinfoCancelSignature.setDate_end(split[0]); + queryinfoCancelSignature.setCorp(split[1]); + queryinfoCancelSignature.setCode(vreceiptcodeList); + + ApproveinfoCancelSignature approveinfoCancelSignature = new ApproveinfoCancelSignature(); + approveinfoCancelSignature.setApprovid("tbadmin"); + + jsonRootBeanCancelSignature.setApproveinfo(approveinfoCancelSignature); + jsonRootBeanCancelSignature.setQueryinfo(queryinfoCancelSignature); + sendU8C("http://39.170.109.90:8088/u8cloud/api/so/saleorder/unapprove", JSON.toJSONString(jsonRootBeanCancelSignature), vreceiptcodeList.size()); + } + } + } + } + + List deleteU8cDataUtilEntities22All = new ArrayList<>(); + List deleteU8cDataUtilEntities2 = deleteU8cDataUtilDao.cancelSignatureSoSaleReadExcel20250528V2(); + if (deleteU8cDataUtilEntities2 != null) { + List> lists = SplitListByCountUtil.splitListByCount(deleteU8cDataUtilEntities, 999); + for (int i = 0; i < lists.size(); i++) { + List deleteU8cDataUtilEntities1 = lists.get(i); + String concatenatedIds = deleteU8cDataUtilEntities1.stream().map(DeleteU8cDataUtilEntity::getCsaleid).map(csaleid -> "'" + csaleid + "'").collect(Collectors.joining(",")); + + DeleteSoSaleVo deleteSoSaleVo = new DeleteSoSaleVo(); + deleteSoSaleVo.setDataSourceCode("lets_u8c"); + deleteSoSaleVo.setCsaleids(concatenatedIds); + deleteSoSaleVo.setFstatus(2L); + List deleteU8cDataUtilEntities22 = deleteU8cDataUtilDao.querySoSaleByDeletev2(deleteSoSaleVo); + deleteU8cDataUtilEntities22All.addAll(deleteU8cDataUtilEntities22); + } + } + if (deleteU8cDataUtilEntities22All.size() > 0) { + Thread.sleep(10000); + cancelSignatureSoSaleReadExcel2505282140V2(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } } diff --git a/service/src/main/java/com/hzya/frame/deletedata/dao/DeleteU8cDataUtilDao.java b/service/src/main/java/com/hzya/frame/deletedata/dao/DeleteU8cDataUtilDao.java index 5b80b6e7..e0b636ad 100644 --- a/service/src/main/java/com/hzya/frame/deletedata/dao/DeleteU8cDataUtilDao.java +++ b/service/src/main/java/com/hzya/frame/deletedata/dao/DeleteU8cDataUtilDao.java @@ -86,4 +86,19 @@ public interface DeleteU8cDataUtilDao extends IBaseDao querySoSaleinvoiceByCancelApproval(DeleteU8cDataUtilEntity deleteU8cDataUtilEntity) throws Exception; + + /** + * 查询需要处理的销售订单 + * + * @author liuyang + */ + List cancelSignatureSoSaleReadExcel20250528V2() throws Exception; + + + /** + * 查询需要审批的销售发票 + * + * @author liuyang + */ + List querySoSaleinvoiceByCancelApprovalV2(DeleteU8cDataUtilEntity deleteU8cDataUtilEntity) throws Exception; } \ No newline at end of file diff --git a/service/src/main/java/com/hzya/frame/deletedata/dao/impl/DeleteU8cDataUtilDaoImpl.java b/service/src/main/java/com/hzya/frame/deletedata/dao/impl/DeleteU8cDataUtilDaoImpl.java index 090cb134..3b276dfb 100644 --- a/service/src/main/java/com/hzya/frame/deletedata/dao/impl/DeleteU8cDataUtilDaoImpl.java +++ b/service/src/main/java/com/hzya/frame/deletedata/dao/impl/DeleteU8cDataUtilDaoImpl.java @@ -80,5 +80,17 @@ public class DeleteU8cDataUtilDaoImpl extends MybatisGenericDao querySoSaleinvoiceByCancelApproval(DeleteU8cDataUtilEntity soSaleinvoiceEntity) throws Exception { return query("com.hzya.frame.deletedata.dao.impl.DeleteU8cDataUtilDaoImpl.querySoSaleinvoiceByCancelApproval", soSaleinvoiceEntity); } + + @DS("lets_u8c") + @Override + public List cancelSignatureSoSaleReadExcel20250528V2() throws Exception { + return query("com.hzya.frame.deletedata.dao.impl.DeleteU8cDataUtilDaoImpl.cancelSignatureSoSaleReadExcel20250528V2", new DeleteU8cDataUtilEntity()); + } + + @DS("lets_u8c") + @Override + public List querySoSaleinvoiceByCancelApprovalV2(DeleteU8cDataUtilEntity deleteU8cDataUtilEntity) throws Exception { + return query("com.hzya.frame.deletedata.dao.impl.DeleteU8cDataUtilDaoImpl.querySoSaleinvoiceByCancelApprovalV2", deleteU8cDataUtilEntity); + } } diff --git a/service/src/main/java/com/hzya/frame/deletedata/entity/DeleteU8cDataUtilEntity.java b/service/src/main/java/com/hzya/frame/deletedata/entity/DeleteU8cDataUtilEntity.java index e26bcf89..c17dcc2d 100644 --- a/service/src/main/java/com/hzya/frame/deletedata/entity/DeleteU8cDataUtilEntity.java +++ b/service/src/main/java/com/hzya/frame/deletedata/entity/DeleteU8cDataUtilEntity.java @@ -20,6 +20,26 @@ public class DeleteU8cDataUtilEntity extends BaseEntity { private String dwbm; // private String vouchid; + private String csaleid; + + private String fstatus; + + public String getFstatus() { + return fstatus; + } + + public void setFstatus(String fstatus) { + this.fstatus = fstatus; + } + + public String getCsaleid() { + return csaleid; + } + + public void setCsaleid(String csaleid) { + this.csaleid = csaleid; + } + public String getDjbh() { return djbh; } diff --git a/service/src/main/java/com/hzya/frame/deletedata/entity/DeleteU8cDataUtilEntity.xml b/service/src/main/java/com/hzya/frame/deletedata/entity/DeleteU8cDataUtilEntity.xml index 59770a0e..2113f8b0 100644 --- a/service/src/main/java/com/hzya/frame/deletedata/entity/DeleteU8cDataUtilEntity.xml +++ b/service/src/main/java/com/hzya/frame/deletedata/entity/DeleteU8cDataUtilEntity.xml @@ -10,6 +10,8 @@ + + @@ -109,6 +111,9 @@ AND cfirstbillhid in (${cfirstbillhids}) ) and a.dr = 0 + + and a.fbillflag = #{fbillflag} + + + + +