opt: 优化库存查询
This commit is contained in:
@@ -50,6 +50,7 @@ public class EasOutInBillController {
|
|||||||
*/
|
*/
|
||||||
@PostMapping("/audit")
|
@PostMapping("/audit")
|
||||||
@Log("审核")
|
@Log("审核")
|
||||||
|
@SaIgnore
|
||||||
//@SaCheckPermission("@el.check(EasOutInBill:edit')")
|
//@SaCheckPermission("@el.check(EasOutInBill:edit')")
|
||||||
public CommonResult audit(@RequestBody Set<String> ids) {
|
public CommonResult audit(@RequestBody Set<String> ids) {
|
||||||
if (ids == null || ids.isEmpty()) {
|
if (ids == null || ids.isEmpty()) {
|
||||||
|
|||||||
@@ -7,13 +7,13 @@
|
|||||||
FROM
|
FROM
|
||||||
EAS_NOBLE.V_UC_OUTINBILL
|
EAS_NOBLE.V_UC_OUTINBILL
|
||||||
WHERE DJZT = '提交'
|
WHERE DJZT = '提交'
|
||||||
AND TO_DATE(cjsj, 'YYYY-MM-DD') >= TRUNC(SYSDATE) - INTERVAL '90' DAY(3)
|
AND TO_DATE(cjsj, 'YYYY-MM-DD') >= TRUNC(SYSDATE) - INTERVAL '91' DAY(3)
|
||||||
</select>
|
</select>
|
||||||
<select id="selectSrmPageWithInventory" resultType="org.nl.wms.database.eas.dao.EasOutInBillDetail">
|
<select id="selectSrmPageWithInventory" resultType="org.nl.wms.database.eas.dao.EasOutInBillDetail">
|
||||||
SELECT
|
SELECT
|
||||||
*
|
*
|
||||||
FROM V_WMS_INBILL_THIRD
|
FROM V_WMS_INBILL_THIRD
|
||||||
WHERE DJZT='未入库' AND CJSJ >= DATE_SUB(CURDATE(), INTERVAL 90 DAY)
|
WHERE DJZT='未入库' AND CJSJ >= DATE_SUB(CURDATE(), INTERVAL 91 DAY)
|
||||||
</select>
|
</select>
|
||||||
<select id="selectByConditions" resultType="org.nl.wms.database.eas.dao.InventoryInfo">
|
<select id="selectByConditions" resultType="org.nl.wms.database.eas.dao.InventoryInfo">
|
||||||
SELECT
|
SELECT
|
||||||
|
|||||||
@@ -53,35 +53,35 @@ public class EasOutInBillDetailServiceImpl extends ServiceImpl<EasOutInBillDetai
|
|||||||
.eq(ObjectUtil.isNotEmpty(params), EasOutInBillDetail::getDjid, params.getDjid())
|
.eq(ObjectUtil.isNotEmpty(params), EasOutInBillDetail::getDjid, params.getDjid())
|
||||||
);
|
);
|
||||||
List<EasOutInBillDetail> easOutInBillDetailList = result.getRecords();
|
List<EasOutInBillDetail> easOutInBillDetailList = result.getRecords();
|
||||||
// List<InventoryInfo> inventoryInfoList = queryInventoryInfoList(easOutInBillDetailList);
|
List<InventoryInfo> inventoryInfoList = queryInventoryInfoList(easOutInBillDetailList);
|
||||||
// easOutInBillDetailList.forEach(bill -> {
|
easOutInBillDetailList.forEach(bill -> {
|
||||||
// //查询库存信息
|
//查询库存信息
|
||||||
// List<InventoryInfo> matchedInventory = inventoryInfoList.stream()
|
List<InventoryInfo> matchedInventory = inventoryInfoList.stream()
|
||||||
// .filter(inventory -> {
|
.filter(inventory -> {
|
||||||
// boolean isMatched = true;
|
boolean isMatched = true;
|
||||||
// if (bill.getZzbm() != null && !bill.getZzbm().isEmpty()) {
|
if (bill.getZzbm() != null && !bill.getZzbm().isEmpty()) {
|
||||||
// isMatched &= Objects.equals(inventory.getZzbm(), bill.getZzbm());
|
isMatched &= Objects.equals(inventory.getZzbm(), bill.getZzbm());
|
||||||
// }
|
}
|
||||||
// if (bill.getCkbm() != null && !bill.getCkbm().isEmpty()) {
|
if (bill.getCkbm() != null && !bill.getCkbm().isEmpty()) {
|
||||||
// isMatched &= Objects.equals(inventory.getCkbm(), bill.getCkbm());
|
isMatched &= Objects.equals(inventory.getCkbm(), bill.getCkbm());
|
||||||
// }
|
}
|
||||||
// if (bill.getWlbm() != null && !bill.getWlbm().isEmpty()) {
|
if (bill.getWlbm() != null && !bill.getWlbm().isEmpty()) {
|
||||||
// isMatched &= Objects.equals(inventory.getWlbm(), bill.getWlbm());
|
isMatched &= Objects.equals(inventory.getWlbm(), bill.getWlbm());
|
||||||
// }
|
}
|
||||||
// // 批次
|
// 批次
|
||||||
// if (bill.getPc() != null && !bill.getPc().isEmpty()) {
|
if (bill.getPc() != null && !bill.getPc().isEmpty()) {
|
||||||
// isMatched &= Objects.equals(inventory.getPc(), bill.getPc());
|
isMatched &= Objects.equals(inventory.getPc(), bill.getPc());
|
||||||
// }
|
}
|
||||||
// // 跟踪号
|
// 跟踪号
|
||||||
// if (bill.getTrackno() != null && !bill.getTrackno().isEmpty()) {
|
if (bill.getTrackno() != null && !bill.getTrackno().isEmpty()) {
|
||||||
// isMatched &= Objects.equals(inventory.getTrackno(), bill.getTrackno());
|
isMatched &= Objects.equals(inventory.getTrackno(), bill.getTrackno());
|
||||||
// }
|
}
|
||||||
// if (bill.getKwbm() != null && !bill.getKwbm().isEmpty()) {
|
if (bill.getKwbm() != null && !bill.getKwbm().isEmpty()) {
|
||||||
// isMatched &= Objects.equals(inventory.getKwbm(), bill.getKwbm());
|
isMatched &= Objects.equals(inventory.getKwbm(), bill.getKwbm());
|
||||||
// }
|
}
|
||||||
// return isMatched;
|
return isMatched;
|
||||||
// })
|
})
|
||||||
// .collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
// List<InventoryInfo> matchedInventory = inventoryInfoList.stream()
|
// List<InventoryInfo> matchedInventory = inventoryInfoList.stream()
|
||||||
// .filter(inventory -> Objects.equals(inventory.getZzbm(), bill.getZzbm())
|
// .filter(inventory -> Objects.equals(inventory.getZzbm(), bill.getZzbm())
|
||||||
// && Objects.equals(inventory.getCkbm(), bill.getCkbm())
|
// && Objects.equals(inventory.getCkbm(), bill.getCkbm())
|
||||||
@@ -91,12 +91,12 @@ public class EasOutInBillDetailServiceImpl extends ServiceImpl<EasOutInBillDetai
|
|||||||
// && Objects.equals(inventory.getKwbm(), bill.getKwbm()))
|
// && Objects.equals(inventory.getKwbm(), bill.getKwbm()))
|
||||||
// .collect(Collectors.toList());
|
// .collect(Collectors.toList());
|
||||||
//将库存数量赋值给单据
|
//将库存数量赋值给单据
|
||||||
// Optional<InventoryInfo> minKcsl = matchedInventory.stream()
|
Optional<InventoryInfo> minKcsl = matchedInventory.stream()
|
||||||
// .min(Comparator.comparing(InventoryInfo::getKcsl));
|
.min(Comparator.comparing(InventoryInfo::getKcsl));
|
||||||
// minKcsl.ifPresent(m -> {
|
minKcsl.ifPresent(m -> {
|
||||||
// bill.setKcsl(m.getKcsl());
|
bill.setKcsl(m.getKcsl());
|
||||||
// });
|
});
|
||||||
// });
|
});
|
||||||
result.setRecords(easOutInBillDetailList);
|
result.setRecords(easOutInBillDetailList);
|
||||||
return CommonPage.getPage(result);
|
return CommonPage.getPage(result);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -248,9 +248,12 @@ public class EasOutInBillServiceImpl extends ServiceImpl<EasOutInBillMapper, Eas
|
|||||||
List<EasOutInBillDto> easOutInBillList = easOutInBillMapper.queryBillList(ids);
|
List<EasOutInBillDto> easOutInBillList = easOutInBillMapper.queryBillList(ids);
|
||||||
//所有明细表
|
//所有明细表
|
||||||
List<EasOutInBillDetailDto> easOutInBillDetailList = easOutInBillDetailMapper.queryBillDetailList(ids);
|
List<EasOutInBillDetailDto> easOutInBillDetailList = easOutInBillDetailMapper.queryBillDetailList(ids);
|
||||||
|
long count= easOutInBillDetailList.stream().filter(r->r.getQty().compareTo(BigDecimal.ZERO)==0).count();
|
||||||
|
if(count==easOutInBillDetailList.size()){
|
||||||
|
throw new BadRequestException("该单据无任何出入库操作,请检查");
|
||||||
|
}
|
||||||
//报文组合
|
//报文组合
|
||||||
if (CollectionUtils.isNotEmpty(easOutInBillList)) {
|
if (CollectionUtils.isNotEmpty(easOutInBillList)) {
|
||||||
|
|
||||||
easOutInBillList.forEach(b -> {
|
easOutInBillList.forEach(b -> {
|
||||||
List<EasOutInBillDetailDto> billDetails = easOutInBillDetailList.stream().filter(d ->
|
List<EasOutInBillDetailDto> billDetails = easOutInBillDetailList.stream().filter(d ->
|
||||||
Objects.equals(d.getDjid(), b.getBillId())).collect(Collectors.toList());
|
Objects.equals(d.getDjid(), b.getBillId())).collect(Collectors.toList());
|
||||||
@@ -284,8 +287,8 @@ public class EasOutInBillServiceImpl extends ServiceImpl<EasOutInBillMapper, Eas
|
|||||||
try {
|
try {
|
||||||
EasData easData = new EasData();
|
EasData easData = new EasData();
|
||||||
easData.setData(bill);
|
easData.setData(bill);
|
||||||
// String billJson = com.alibaba.fastjson.JSON.toJSONString(easData, SerializerFeature.WriteMapNullValue);
|
String billJson = com.alibaba.fastjson.JSON.toJSONString(easData, SerializerFeature.WriteMapNullValue);
|
||||||
// wmsToEasService.sendWebService(billJson);
|
wmsToEasService.sendWebService(billJson);
|
||||||
easOutInBillMapper.update(null, new UpdateWrapper<EasOutInBill>().set("djzt", "审核").set("update_id", SecurityUtils.getCurrentUserId()).set("update_name", SecurityUtils.getCurrentNickName()).set("update_time", DateUtil.format(DateUtil.beginOfDay(DateUtil.date()), "yyyy-MM-dd")).eq("djid", bill.getBillId()));
|
easOutInBillMapper.update(null, new UpdateWrapper<EasOutInBill>().set("djzt", "审核").set("update_id", SecurityUtils.getCurrentUserId()).set("update_name", SecurityUtils.getCurrentNickName()).set("update_time", DateUtil.format(DateUtil.beginOfDay(DateUtil.date()), "yyyy-MM-dd")).eq("djid", bill.getBillId()));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("推送Eas单据失败,单据号为:[" + bill.getBillId() + "]异常原因:" + e.toString());
|
log.error("推送Eas单据失败,单据号为:[" + bill.getBillId() + "]异常原因:" + e.toString());
|
||||||
@@ -302,8 +305,8 @@ public class EasOutInBillServiceImpl extends ServiceImpl<EasOutInBillMapper, Eas
|
|||||||
public void syncSrmAuditBills(List<EasOutInBillDto> bills) {
|
public void syncSrmAuditBills(List<EasOutInBillDto> bills) {
|
||||||
for (EasOutInBillDto bill : bills) {
|
for (EasOutInBillDto bill : bills) {
|
||||||
try {
|
try {
|
||||||
// String billJson = com.alibaba.fastjson.JSON.toJSONString(bill, SerializerFeature.WriteMapNullValue);
|
String billJson = com.alibaba.fastjson.JSON.toJSONString(bill, SerializerFeature.WriteMapNullValue);
|
||||||
// wmsToSrmService.sendWebPostData(billJson);
|
wmsToSrmService.sendWebPostData(billJson);
|
||||||
easOutInBillMapper.update(null, new UpdateWrapper<EasOutInBill>().set("djzt", "审核").set("update_id", SecurityUtils.getCurrentUserId()).set("update_name", SecurityUtils.getCurrentNickName()).set("update_time", DateUtil.format(DateUtil.beginOfDay(DateUtil.date()), "yyyy-MM-dd")).eq("djid", bill.getBillId()));
|
easOutInBillMapper.update(null, new UpdateWrapper<EasOutInBill>().set("djzt", "审核").set("update_id", SecurityUtils.getCurrentUserId()).set("update_name", SecurityUtils.getCurrentNickName()).set("update_time", DateUtil.format(DateUtil.beginOfDay(DateUtil.date()), "yyyy-MM-dd")).eq("djid", bill.getBillId()));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("推送Eas单据失败,单据号为:[" + bill.getBillId() + "]异常原因:" + e.toString());
|
log.error("推送Eas单据失败,单据号为:[" + bill.getBillId() + "]异常原因:" + e.toString());
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ public class EasBillSchedule {
|
|||||||
* eas单据数据同步
|
* eas单据数据同步
|
||||||
*/
|
*/
|
||||||
@Async("taskExecutor")
|
@Async("taskExecutor")
|
||||||
//@Scheduled(cron = "0/30 * * * * *")
|
@Scheduled(cron = "0/30 * * * * *")
|
||||||
public void getEasOutInBills() {
|
public void getEasOutInBills() {
|
||||||
// 获取eas视图查询未提交的单据
|
// 获取eas视图查询未提交的单据
|
||||||
List<EasOutInBillDetail> easOutInBillDetails = easOutInBillDetailMapper.selectPageWithInventory();
|
List<EasOutInBillDetail> easOutInBillDetails = easOutInBillDetailMapper.selectPageWithInventory();
|
||||||
@@ -129,10 +129,13 @@ public class EasBillSchedule {
|
|||||||
LambdaQueryWrapper<EasOutInBill> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<EasOutInBill> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
queryWrapper.lt(EasOutInBill::getCjsj, days);
|
queryWrapper.lt(EasOutInBill::getCjsj, days);
|
||||||
List<EasOutInBill> oldBills = easOutInBillService.list(queryWrapper);
|
List<EasOutInBill> oldBills = easOutInBillService.list(queryWrapper);
|
||||||
Set<String> ids = oldBills.stream().map(EasOutInBill::getDjid).collect(Collectors.toSet());
|
if(CollectionUtils.isNotEmpty(oldBills))
|
||||||
easOutInBillDetailMapper.deleteInfo(days);
|
{
|
||||||
if (CollectionUtils.isNotEmpty(ids)) {
|
Set<String> ids = oldBills.stream().map(EasOutInBill::getDjid).collect(Collectors.toSet());
|
||||||
easOutInBillDetailMapper.deleteDetail(ids);
|
if (CollectionUtils.isNotEmpty(ids)) {
|
||||||
|
easOutInBillDetailMapper.deleteDetail(ids);
|
||||||
|
}
|
||||||
|
easOutInBillDetailMapper.deleteInfo(days);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
server:
|
server:
|
||||||
port: 8012
|
port: 8011
|
||||||
#配置数据源
|
#配置数据源
|
||||||
spring:
|
spring:
|
||||||
autoconfigure:
|
autoconfigure:
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
server:
|
server:
|
||||||
port: 8012
|
port: 8011
|
||||||
#配置数据源
|
#配置数据源
|
||||||
spring:
|
spring:
|
||||||
autoconfigure:
|
autoconfigure:
|
||||||
@@ -20,18 +20,22 @@ spring:
|
|||||||
username: ${DB_USER:wms_third}
|
username: ${DB_USER:wms_third}
|
||||||
password: ${DB_PWD:NOBLElift@!#wms}
|
password: ${DB_PWD:NOBLElift@!#wms}
|
||||||
type: com.alibaba.druid.pool.DruidDataSource
|
type: com.alibaba.druid.pool.DruidDataSource
|
||||||
|
# driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
|
||||||
|
# url: jdbc:log4jdbc:mysql://${DB_HOST:10.10.188.30}:${DB_PORT:3306}/${DB_NAME:nuoli_v1.0}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
|
||||||
|
# username: ${DB_USER:wms_third}
|
||||||
|
# password: ${DB_PWD:NOBLElift@!#wms}
|
||||||
|
# type: com.alibaba.druid.pool.DruidDataSource
|
||||||
oracle_eas:
|
oracle_eas:
|
||||||
driver-class-name: oracle.jdbc.OracleDriver
|
driver-class-name: oracle.jdbc.OracleDriver
|
||||||
url: jdbc:oracle:thin:@localhost:1521:orcl
|
url: jdbc:oracle:thin:@localhost:1521:orcl
|
||||||
username: ${DB_USER:user1}
|
username: ${DB_USER:user1}
|
||||||
password: ${DB_PWD:Noble12319}
|
password: ${DB_PWD:Noble12319}
|
||||||
type: com.alibaba.druid.pool.DruidDataSource
|
type: com.alibaba.druid.pool.DruidDataSource
|
||||||
sqlserver:
|
# driver-class-name: oracle.jdbc.OracleDriver
|
||||||
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
|
# url: jdbc:oracle:thin:@192.168.100.97:1521:orcl
|
||||||
url: jdbc:sqlserver://10.93.41.2\WINCC;DatabaseName=马钢_RH
|
# username: ${DB_USER:stuser}
|
||||||
username: ${DB_USER:sa}
|
# password: ${DB_PWD:stuser123}
|
||||||
password: ${DB_PWD:123}
|
# type: com.alibaba.druid.pool.DruidDataSource
|
||||||
type: com.alibaba.druid.pool.DruidDataSource
|
|
||||||
redis:
|
redis:
|
||||||
#数据库索引
|
#数据库索引
|
||||||
host: ${REDIS_HOST:127.0.0.1}
|
host: ${REDIS_HOST:127.0.0.1}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ server:
|
|||||||
relaxed-path-chars: [ '|','{','}','[',']' ] #字符问题: https://blog.csdn.net/weixin_41996632/article/details/90715118
|
relaxed-path-chars: [ '|','{','}','[',']' ] #字符问题: https://blog.csdn.net/weixin_41996632/article/details/90715118
|
||||||
spring:
|
spring:
|
||||||
profiles:
|
profiles:
|
||||||
active: dev
|
active: devLocal
|
||||||
datasource:
|
datasource:
|
||||||
druid:
|
druid:
|
||||||
initial-size: 5 #初始化时建立物理连接的个数
|
initial-size: 5 #初始化时建立物理连接的个数
|
||||||
@@ -205,7 +205,7 @@ jetcache:
|
|||||||
easConfig:
|
easConfig:
|
||||||
host: http://192.168.100.100:8080//ormrpc/services/
|
host: http://192.168.100.100:8080//ormrpc/services/
|
||||||
user: user
|
user: user
|
||||||
password: Noble123!9
|
password: NOBLE123!9
|
||||||
datacenter: test
|
datacenter: test
|
||||||
wsdlService: WSNLMESFacade
|
wsdlService: WSNLMESFacade
|
||||||
operationName: dealTask
|
operationName: dealTask
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ public class EventTest {
|
|||||||
public void webServiceTest() {
|
public void webServiceTest() {
|
||||||
String http="http://188.188.5.18:6888/ormrpc/services/";
|
String http="http://188.188.5.18:6888/ormrpc/services/";
|
||||||
String user = "user"; //用户
|
String user = "user"; //用户
|
||||||
String password = "noble123666"; //密码
|
String password = "NOBLE123666"; //密码
|
||||||
String datacenter = "cs"; //数据中心
|
String datacenter = "cs"; //数据中心
|
||||||
String wsdlservice = "WSNLMESFacade"; //服务
|
String wsdlservice = "WSNLMESFacade"; //服务
|
||||||
String operationName = "dealTask"; //方法
|
String operationName = "dealTask"; //方法
|
||||||
|
|||||||
Reference in New Issue
Block a user