Compare commits

..

No commits in common. "57100e633358b6e3c4e020dc798ddbc22ff9b042" and "e7a43b98330b464ee0d416ba166f56551679e8ae" have entirely different histories.

4 changed files with 127 additions and 233 deletions

View File

@ -30,7 +30,6 @@ import java.io.FileInputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.stream.Collectors;
@ -61,66 +60,39 @@ public class DeleteU8cDataUtil {
private static Integer MARK2 = 0;
CountDownLatch latch = new CountDownLatch(2);
@PostConstruct
public void init() {
// deleteTargetU8cData();
deleteTargetU8cData();
}
public void deleteTargetU8cData() {
Thread thread000 = new Thread(new Runnable() {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
// Thread thread = new Thread(new Runnable() {
// @Override
// public void run() {
// synchronized (LOCK_OBJECT) {
// if (MARK == 0) {
// MARK = 1;
// //删除销售出库单
//// cancelSignatureSoSaleReadExcel20250528V2();
// //反审核销售订单
//// cancelSignatureSoSaleReadExcel2505282140V2();
// }
// }
// latch.countDown();
// }
// }, "反审核销售订单 2025-05-30");
// thread.start();
//
// Thread thread2 = new Thread(new Runnable() {
// @Override
// public void run() {
// synchronized (LOCK_OBJECT2) {
// if (MARK2 == 0) {
// MARK2 = 1;
// //删除销售发票
//// abandonmentReviewSoSaleinvoice2505282107();
// }
// }
// latch.countDown();
// }
// }, "删除销售发票 2025-05-30");
// thread2.start();
synchronized (LOCK_OBJECT) {
if (MARK == 0) {
MARK = 1;
//删除销售出库单
cancelSignatureSoSaleReadExcel20250528V2();
}
}
}
}, "删除销售出库单 2025-05-29");
thread.start();
try {
//等待两个线程都完成
// latch.await();
//在两个线程都完成后执行反审核销售订单方法
// cancelSignatureSoSaleReadExcel2505282140V2();
//修复销售订单部门字段错误问题
// repairSoSaleDepartment();
//销售订单审核
// salesOrderReviewV2();
} catch (Exception e) {
e.printStackTrace();
// Thread.currentThread().interrupt();
// throw new RuntimeException("等待线程完成时中断", e);
Thread thread2 = new Thread(new Runnable() {
@Override
public void run() {
synchronized (LOCK_OBJECT2) {
if (MARK2 == 0) {
MARK2 = 1;
//删除销售发票
abandonmentReviewSoSaleinvoice2505282107();
}
}
}, "U8C单据逻辑处理销售订单审核");
thread000.start();
}
}, "删除销售发票 2025-05-29");
thread2.start();
}
/**
@ -573,8 +545,6 @@ public class DeleteU8cDataUtil {
}
}
private Object lockObject = new Object();
/**
* 2024年8月8日 10:54:48
* 推送U8C销售订单方法
@ -582,7 +552,6 @@ public class DeleteU8cDataUtil {
* @author liuyang
*/
public void sendU8C(String url, String param, Integer number) throws Exception {
synchronized (lockObject) {
logger.info("入参:" + param);
long l = System.currentTimeMillis();
String result = HttpRequest.post(url).header("usercode", "admin1").header("password", "f7fcde654e968541cc803c4b08c30abb").header("system", "lz1").header("trantype", "code").body(param)//表单内容
@ -595,7 +564,6 @@ public class DeleteU8cDataUtil {
// result = String.valueOf(jsonObject.get("attribute"));
// System.out.println(result);
}
}
/**
* 弃审应收单
@ -1148,7 +1116,7 @@ public class DeleteU8cDataUtil {
List<DeleteU8cDataUtilEntity> soSaleinvoiceEntities2 = deleteU8cDataUtilDao.queryIcGeneralHByCancelSignatureV2(deleteIcGeneralHVo2);
Map<String, List<DeleteU8cDataUtilEntity>> stringListMap2 = groupByDbilldatev2(soSaleinvoiceEntities2);
if (stringListMap2.size() > 0) {
for (Map.Entry<String, List<DeleteU8cDataUtilEntity>> entry : stringListMap2.entrySet()) {
for (Map.Entry<String, List<DeleteU8cDataUtilEntity>> entry : stringListMap.entrySet()) {
String key = entry.getKey();
List<DeleteU8cDataUtilEntity> valueList = entry.getValue();
List<String> vreceiptcodeList = valueList.stream().map(DeleteU8cDataUtilEntity::getVbillcode).collect(Collectors.toList());
@ -1202,7 +1170,7 @@ public class DeleteU8cDataUtil {
try {
//确定销售订单范围19648
List<DeleteU8cDataUtilEntity> deleteU8cDataUtilEntities = deleteU8cDataUtilDao.cancelSignatureSoSaleReadExcel20250528V2();
List<List<DeleteU8cDataUtilEntity>> lists = SplitListByCountUtil.splitListByCount(deleteU8cDataUtilEntities, 500);
List<List<DeleteU8cDataUtilEntity>> lists = SplitListByCountUtil.splitListByCount(deleteU8cDataUtilEntities, 100);
if (lists.size() > 0) {
for (int i = 0; i < lists.size(); i++) {
List<DeleteU8cDataUtilEntity> deleteU8cDataUtilEntities1 = lists.get(i);
@ -1298,15 +1266,16 @@ public class DeleteU8cDataUtil {
}
}
/**
* 销售订单取消签字
* 销售订单取消签字+删除
*/
public void cancelSignatureSoSaleReadExcel2505282140V2() {
try {
//确定销售订单范围19648
List<DeleteU8cDataUtilEntity> deleteU8cDataUtilEntities = deleteU8cDataUtilDao.cancelSignatureSoSaleReadExcel20250528V2();
if (deleteU8cDataUtilEntities.size() > 0) {
List<List<DeleteU8cDataUtilEntity>> lists = SplitListByCountUtil.splitListByCount(deleteU8cDataUtilEntities, 500);
List<List<DeleteU8cDataUtilEntity>> lists = SplitListByCountUtil.splitListByCount(deleteU8cDataUtilEntities, 100);
for (int i = 0; i < lists.size(); i++) {
List<DeleteU8cDataUtilEntity> deleteU8cDataUtilEntities1 = lists.get(i);
String concatenatedIds = deleteU8cDataUtilEntities1.stream().map(DeleteU8cDataUtilEntity::getCsaleid).map(csaleid -> "'" + csaleid + "'").collect(Collectors.joining(","));
@ -1401,12 +1370,6 @@ public class DeleteU8cDataUtil {
deleteU8cDataUtilDao.updateCdeptid(updateSoSaleCdeptId);
}
}
List<DeleteU8cDataUtilEntity> deleteU8cDataUtilEntities2 = deleteU8cDataUtilDao.cancelSignatureSoSaleReadExcel20250528V2();
if (deleteU8cDataUtilEntities2 != null && deleteU8cDataUtilEntities2.size() > 0) {
//还存在部门字段错误的数据行重新执行修复确保目标数据被完全修复
repairSoSaleDepartment();
}
} catch (Exception e) {
e.printStackTrace();
}
@ -1418,8 +1381,7 @@ public class DeleteU8cDataUtil {
public void salesOrderReviewV2() {
try {
//确定销售订单范围19648
//注意️这里只能审核已经修复完毕的销售订单并且处理自由状态
List<DeleteU8cDataUtilEntity> deleteU8cDataUtilEntities = deleteU8cDataUtilDao.cancelSignatureSoSaleReadExcel20250528V3();
List<DeleteU8cDataUtilEntity> deleteU8cDataUtilEntities = deleteU8cDataUtilDao.cancelSignatureSoSaleReadExcel20250528V2();
if (deleteU8cDataUtilEntities.size() > 0) {
List<List<DeleteU8cDataUtilEntity>> lists = SplitListByCountUtil.splitListByCount(deleteU8cDataUtilEntities, 100);
for (int i = 0; i < lists.size(); i++) {
@ -1429,7 +1391,7 @@ public class DeleteU8cDataUtil {
DeleteSoSaleVo deleteSoSaleVo = new DeleteSoSaleVo();
deleteSoSaleVo.setDataSourceCode("lets_u8c");
deleteSoSaleVo.setCsaleids(concatenatedIds);
deleteSoSaleVo.setFstatus("1");//自由状态
deleteSoSaleVo.setFstatus("1");
List<DeleteU8cDataUtilEntity> deleteU8cDataUtilEntities2 = deleteU8cDataUtilDao.querySoSaleByDeletev2(deleteSoSaleVo);
Map<String, List<DeleteU8cDataUtilEntity>> deleteU8cDataUtilEntitiesMap = groupByDbilldatev2(deleteU8cDataUtilEntities2);
if (deleteU8cDataUtilEntitiesMap.size() > 0) {
@ -1460,18 +1422,14 @@ public class DeleteU8cDataUtil {
}
}
//再次确认是否存在已经修复完毕但未审核的销售订单
List<DeleteU8cDataUtilEntity> deleteU8cDataUtilEntities22All = new ArrayList<>();
List<DeleteU8cDataUtilEntity> deleteU8cDataUtilEntities2 = deleteU8cDataUtilDao.cancelSignatureSoSaleReadExcel20250528V3();
if (deleteU8cDataUtilEntities2 != null && deleteU8cDataUtilEntities2.size() > 0) {
List<List<DeleteU8cDataUtilEntity>> lists = SplitListByCountUtil.splitListByCount(deleteU8cDataUtilEntities2, 999);
List<DeleteU8cDataUtilEntity> deleteU8cDataUtilEntities2 = deleteU8cDataUtilDao.cancelSignatureSoSaleReadExcel20250528V2();
if (deleteU8cDataUtilEntities2 != null) {
List<List<DeleteU8cDataUtilEntity>> lists = SplitListByCountUtil.splitListByCount(deleteU8cDataUtilEntities, 999);
for (int i = 0; i < lists.size(); i++) {
List<DeleteU8cDataUtilEntity> deleteU8cDataUtilEntities1 = lists.get(i);
String concatenatedIds = deleteU8cDataUtilEntities1.stream().map(DeleteU8cDataUtilEntity::getCsaleid).map(csaleid -> "'" + csaleid + "'").collect(Collectors.joining(","));
if (concatenatedIds == null || "".equals(concatenatedIds.trim())) {
throw new Exception("concatenatedIds == null || \"\".equals(concatenatedIds)");
}
DeleteSoSaleVo deleteSoSaleVo = new DeleteSoSaleVo();
deleteSoSaleVo.setDataSourceCode("lets_u8c");
deleteSoSaleVo.setCsaleids(concatenatedIds);
@ -1494,89 +1452,89 @@ public class DeleteU8cDataUtil {
*
* @author liuyang
*/
// public void unApprovalDeleteAccountsReceivable() {
// try {
// //确定销售订单范围19648
// List<DeleteU8cDataUtilEntity> deleteU8cDataUtilEntities = deleteU8cDataUtilDao.cancelSignatureSoSaleReadExcel20250528V2();
// if (deleteU8cDataUtilEntities.size() > 0) {
// List<List<DeleteU8cDataUtilEntity>> lists = SplitListByCountUtil.splitListByCount(deleteU8cDataUtilEntities, 500);
// for (int i = 0; i < lists.size(); i++) {
// List<DeleteU8cDataUtilEntity> deleteU8cDataUtilEntities1 = lists.get(i);
// String concatenatedIds = deleteU8cDataUtilEntities1.stream().map(DeleteU8cDataUtilEntity::getCsaleid).map(csaleid -> "'" + csaleid + "'").collect(Collectors.joining(","));
// //查询需要弃审的应收单
// Map<String, List<Map<String, String>>> mapList = new HashMap();
// List<Map<String, String>> mapList1 = new ArrayList<>();
//
// DeleteSoSaleVo deleteSoSaleVo = new DeleteSoSaleVo();
// deleteSoSaleVo.setCsaleid(concatenatedIds);
// deleteSoSaleVo.setSpzt("1");
// List<ArapDjzbVo> arapDjzbVos = deleteU8cDataUtilDao.abandonmentAccountsReceivableDocV2(deleteSoSaleVo);
// if (arapDjzbVos != null && arapDjzbVos.size() > 0) {
// for (int j = 0; j < arapDjzbVos.size(); j++) {
// ArapDjzbVo arapDjzbVo = arapDjzbVos.get(j);
//
// Map<String, String> stringStringMap = new HashMap<>();
// stringStringMap.put("djbh", arapDjzbVo.getDjbh());//单据编码
// stringStringMap.put("dwbm", arapDjzbVo.getUnitcode());//公司编码
// stringStringMap.put("operatedate", arapDjzbVo.getDjrq());//单据日期
// stringStringMap.put("operatorid", "18846145294");//操作人编码
// mapList1.add(stringStringMap);
// }
// }
//
// if (mapList1.size() > 0) {
// mapList.put("bills", mapList1);
//// sendU8C("http://39.170.109.90:8088/u8cloud/api/arap/ys/unaudit", JSON.toJSONString(mapList), mapList1.size());
// }
//
// //删除应收单
// DeleteSoSaleVo deleteSoSaleVo2 = new DeleteSoSaleVo();
// deleteSoSaleVo2.setCsaleid(concatenatedIds);
//// deleteSoSaleVo2.setSpzt("1");
// deleteSoSaleVo2.setSpztnull("1");//a.spzt is null
// List<ArapDjzbVo> arapDjzbVos2 = deleteU8cDataUtilDao.abandonmentAccountsReceivableDocV2(deleteSoSaleVo2);
// for (int j = 0; j < arapDjzbVos2.size(); j++) {
// ArapDjzbVo arapDjzbVo = arapDjzbVos2.get(j);
//
// Map<String, String> stringStringMap = new HashMap<>();
// stringStringMap.put("coperator", "tbadmin");
//
// Map<String, String> stringStringMap2 = new HashMap<>();
// stringStringMap2.put("dwbm", arapDjzbVo.getUnitcode());
// stringStringMap2.put("djbh_from", arapDjzbVo.getDjbh());
// stringStringMap2.put("djbh_to", arapDjzbVo.getDjbh());
//
// Map<String, Map<String, String>> stringStringMap3 = new HashMap<>();
// stringStringMap3.put("deleteinfo", stringStringMap);
// stringStringMap3.put("queryinfo", stringStringMap2);
//// sendU8C("http://39.170.109.90:8088/u8cloud/api/arap/ys/delete", JSON.toJSONString(stringStringMap3), 1);
// }
// }
// }
//
// //判断是否存在失败的应收单
// List<ArapDjzbVo> arapDjzbVosAll = new ArrayList<>();
// List<DeleteU8cDataUtilEntity> deleteU8cDataUtilEntities2 = deleteU8cDataUtilDao.cancelSignatureSoSaleReadExcel20250528V2();
// if (deleteU8cDataUtilEntities2.size() > 0) {
// List<List<DeleteU8cDataUtilEntity>> lists = SplitListByCountUtil.splitListByCount(deleteU8cDataUtilEntities2, 999);
// for (int i = 0; i < lists.size(); i++) {
// List<DeleteU8cDataUtilEntity> deleteU8cDataUtilEntities1 = lists.get(i);
// String concatenatedIds = deleteU8cDataUtilEntities1.stream().map(DeleteU8cDataUtilEntity::getCsaleid).map(csaleid -> "'" + csaleid + "'").collect(Collectors.joining(","));
//
// DeleteSoSaleVo deleteSoSaleVo = new DeleteSoSaleVo();
// deleteSoSaleVo.setCsaleid(concatenatedIds);
// deleteSoSaleVo.setSpzt("0,1,2,null");
// List<ArapDjzbVo> arapDjzbVos = deleteU8cDataUtilDao.abandonmentAccountsReceivableDocV2(deleteSoSaleVo);
// arapDjzbVosAll.addAll(arapDjzbVos);
// }
// }
// if (arapDjzbVosAll.size() > 0) {
// unApprovalDeleteAccountsReceivable();
// }
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
public void unApprovalDeleteAccountsReceivable() {
try {
//确定销售订单范围19648
List<DeleteU8cDataUtilEntity> deleteU8cDataUtilEntities = deleteU8cDataUtilDao.cancelSignatureSoSaleReadExcel20250528V2();
if (deleteU8cDataUtilEntities.size() > 0) {
List<List<DeleteU8cDataUtilEntity>> lists = SplitListByCountUtil.splitListByCount(deleteU8cDataUtilEntities, 500);
for (int i = 0; i < lists.size(); i++) {
List<DeleteU8cDataUtilEntity> deleteU8cDataUtilEntities1 = lists.get(i);
String concatenatedIds = deleteU8cDataUtilEntities1.stream().map(DeleteU8cDataUtilEntity::getCsaleid).map(csaleid -> "'" + csaleid + "'").collect(Collectors.joining(","));
//查询需要弃审的应收单
Map<String, List<Map<String, String>>> mapList = new HashMap();
List<Map<String, String>> mapList1 = new ArrayList<>();
DeleteSoSaleVo deleteSoSaleVo = new DeleteSoSaleVo();
deleteSoSaleVo.setCsaleid(concatenatedIds);
deleteSoSaleVo.setSpzt("1");
List<ArapDjzbVo> arapDjzbVos = deleteU8cDataUtilDao.abandonmentAccountsReceivableDocV2(deleteSoSaleVo);
if (arapDjzbVos != null && arapDjzbVos.size() > 0) {
for (int j = 0; j < arapDjzbVos.size(); j++) {
ArapDjzbVo arapDjzbVo = arapDjzbVos.get(j);
Map<String, String> stringStringMap = new HashMap<>();
stringStringMap.put("djbh", arapDjzbVo.getDjbh());//单据编码
stringStringMap.put("dwbm", arapDjzbVo.getUnitcode());//公司编码
stringStringMap.put("operatedate", arapDjzbVo.getDjrq());//单据日期
stringStringMap.put("operatorid", "18846145294");//操作人编码
mapList1.add(stringStringMap);
}
}
if (mapList1.size() > 0) {
mapList.put("bills", mapList1);
// sendU8C("http://39.170.109.90:8088/u8cloud/api/arap/ys/unaudit", JSON.toJSONString(mapList), mapList1.size());
}
//删除应收单
DeleteSoSaleVo deleteSoSaleVo2 = new DeleteSoSaleVo();
deleteSoSaleVo2.setCsaleid(concatenatedIds);
// deleteSoSaleVo2.setSpzt("1");
deleteSoSaleVo2.setSpztnull("1");//a.spzt is null
List<ArapDjzbVo> arapDjzbVos2 = deleteU8cDataUtilDao.abandonmentAccountsReceivableDocV2(deleteSoSaleVo2);
for (int j = 0; j < arapDjzbVos2.size(); j++) {
ArapDjzbVo arapDjzbVo = arapDjzbVos2.get(j);
Map<String, String> stringStringMap = new HashMap<>();
stringStringMap.put("coperator", "tbadmin");
Map<String, String> stringStringMap2 = new HashMap<>();
stringStringMap2.put("dwbm", arapDjzbVo.getUnitcode());
stringStringMap2.put("djbh_from", arapDjzbVo.getDjbh());
stringStringMap2.put("djbh_to", arapDjzbVo.getDjbh());
Map<String, Map<String, String>> stringStringMap3 = new HashMap<>();
stringStringMap3.put("deleteinfo", stringStringMap);
stringStringMap3.put("queryinfo", stringStringMap2);
// sendU8C("http://39.170.109.90:8088/u8cloud/api/arap/ys/delete", JSON.toJSONString(stringStringMap3), 1);
}
}
}
//判断是否存在失败的应收单
List<ArapDjzbVo> arapDjzbVosAll = new ArrayList<>();
List<DeleteU8cDataUtilEntity> deleteU8cDataUtilEntities2 = deleteU8cDataUtilDao.cancelSignatureSoSaleReadExcel20250528V2();
if (deleteU8cDataUtilEntities2.size() > 0) {
List<List<DeleteU8cDataUtilEntity>> lists = SplitListByCountUtil.splitListByCount(deleteU8cDataUtilEntities2, 999);
for (int i = 0; i < lists.size(); i++) {
List<DeleteU8cDataUtilEntity> deleteU8cDataUtilEntities1 = lists.get(i);
String concatenatedIds = deleteU8cDataUtilEntities1.stream().map(DeleteU8cDataUtilEntity::getCsaleid).map(csaleid -> "'" + csaleid + "'").collect(Collectors.joining(","));
DeleteSoSaleVo deleteSoSaleVo = new DeleteSoSaleVo();
deleteSoSaleVo.setCsaleid(concatenatedIds);
deleteSoSaleVo.setSpzt("0,1,2,null");
List<ArapDjzbVo> arapDjzbVos = deleteU8cDataUtilDao.abandonmentAccountsReceivableDocV2(deleteSoSaleVo);
arapDjzbVosAll.addAll(arapDjzbVos);
}
}
if (arapDjzbVosAll.size() > 0) {
unApprovalDeleteAccountsReceivable();
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 汇总相同时间+公司的单据

View File

@ -121,11 +121,4 @@ public interface DeleteU8cDataUtilDao extends IBaseDao<DeleteU8cDataUtilEntity,
* @author liuyang
*/
List<ArapDjzbVo> abandonmentAccountsReceivableDocV2(DeleteSoSaleVo deleteSoSaleVo) throws Exception;
/**
* 查询已经修复完毕的销售订单
*
* @author liuyang
*/
List<DeleteU8cDataUtilEntity> cancelSignatureSoSaleReadExcel20250528V3() throws Exception;
}

View File

@ -58,12 +58,6 @@ public class DeleteU8cDataUtilDaoImpl extends MybatisGenericDao<DeleteU8cDataUti
@DS("lets_u8c")
@Override
public List<DeleteU8cDataUtilEntity> querySoSaleByDeletev2(DeleteSoSaleVo deleteSoSaleVo) throws Exception {
if (deleteSoSaleVo.getCsaleids() == null || "".equals(deleteSoSaleVo.getCsaleids())) {
throw new Exception("deleteSoSaleVo.getCsaleids() == null || \"\".equals(deleteSoSaleVo.getCsaleids())");
}
// if (deleteSoSaleVo.getFstatus() == null || "".equals(deleteSoSaleVo.getFstatus())) {
// throw new Exception("deleteSoSaleVo.getFstatus() == null || \"\".equals(deleteSoSaleVo.getFstatus())");
// }
return query("com.hzya.frame.deletedata.dao.impl.DeleteU8cDataUtilDaoImpl.querySoSaleByDeletev2", deleteSoSaleVo);
}
@ -114,10 +108,5 @@ public class DeleteU8cDataUtilDaoImpl extends MybatisGenericDao<DeleteU8cDataUti
public List<ArapDjzbVo> abandonmentAccountsReceivableDocV2(DeleteSoSaleVo deleteSoSaleVo) throws Exception {
return (List<ArapDjzbVo>) selectList("com.hzya.frame.deletedata.dao.impl.DeleteU8cDataUtilDaoImpl.abandonmentAccountsReceivableDocV2", deleteSoSaleVo);
}
@DS("lets_u8c")
@Override
public List<DeleteU8cDataUtilEntity> cancelSignatureSoSaleReadExcel20250528V3() throws Exception {
return query("com.hzya.frame.deletedata.dao.impl.DeleteU8cDataUtilDaoImpl.cancelSignatureSoSaleReadExcel20250528V3", new DeleteU8cDataUtilEntity());
}
}

View File

@ -311,7 +311,7 @@
AND a.cdeptid NOT IN ( SELECT pk_deptdoc FROM bd_deptdoc WHERE deptname = '业务部门' AND dr = 0 )
AND a.cdeptid IS NOT NULL
and a.pk_corp != c.pk_corp
-- and a.csaleid = '1015A11000000000SIO8'
-- and a.csaleid = '1001A1100000000FC70H'
</select>
<!--查询审批状态下的销售发票-->
@ -431,51 +431,5 @@
<result property="unitcode" column="unitcode" jdbcType="VARCHAR"/>
<result property="djrq" column="djrq" jdbcType="VARCHAR"/>
</resultMap>
<select id="cancelSignatureSoSaleReadExcel20250528V3" resultMap="get-DeleteU8cDataUtilEntity-result" parameterType="com.hzya.frame.deletedata.entity.DeleteU8cDataUtilEntity">
SELECT-- 单据主键
a.csaleid,
-- 单据编码
a.vreceiptcode,
-- 单据对应公司主键
a.pk_corp,
-- 单据对应公司名称
b.unitname,
-- 单据对应公司编码
b.unitcode,
-- 单据对应的业务流程主键
a.cbiztype,
-- 单据对应的业务流程名称
d.businame,
-- 部门主键
a.cdeptid,
-- 部门名称
c.deptname,
-- 部门对应公司主键
c.pk_corp pk_corp2
FROM
so_sale a
LEFT JOIN bd_corp b ON a.PK_CORP = b.PK_CORP
LEFT JOIN bd_deptdoc c ON c.pk_deptdoc = a.cdeptid
LEFT JOIN bd_busitype d ON d.pk_busitype = a.cbiztype
WHERE
a.cbiztype IN (
SELECT
pk_busitype
FROM
bd_busitype
WHERE
( businame = 'TOC无源件退货入库' OR businame = 'TOC无源件退款' OR businame = 'TOC销售' OR businame = 'TOC冲发出商品' OR businame = 'TOC确认收入' OR businame = 'TOC销售退货' OR businame = 'TOC销售退款' )
)
AND a.dr = 0
AND a.dbilldate >= '2025-05-01'
AND a.dbilldate &lt;= '2025-05-31'
AND a.cdeptid NOT IN ( SELECT pk_deptdoc FROM bd_deptdoc WHERE deptname = '业务部门' AND dr = 0 )
AND a.cdeptid IS NOT NULL
AND a.pk_corp = c.pk_corp
and a.fstatus in (1)
-- and a.csaleid = '1015A11000000000SIO8'
</select>
</mapper>