opt:优化手持出库单据实时查询

This commit is contained in:
2025-03-05 11:46:14 +08:00
parent b293f3c3b9
commit ee755f4c8b
6 changed files with 59 additions and 52 deletions

View File

@@ -1,6 +1,5 @@
package org.nl.wms.dispatch_manage.point.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.wms.dispatch_manage.point.service.dao.SchBasePoint;
@@ -31,10 +30,11 @@ public interface ISchBasePointService extends IService<SchBasePoint> {
* @param regionCode 点位类型
* @param getLockType 锁定状态
* @param sortType 点位排序规则1升序2降序
@param pointType 0空载具1满载具
* @return List<SchBasePoint>
* @param pointType 0空载具1满载具
* @param pointCode 点位编码
* @return List<SchBasePoint>
*/
List<SchBasePoint> checkEndPointTask(String regionCode, String getLockType,String sortType,String pointType);
List<SchBasePoint> checkEndPointTask(String regionCode, String getLockType, String sortType, String
pointType, String pointCode);
}

View File

@@ -113,17 +113,22 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
* @param getLockType 锁定状态
* @param sortType 点位排序规则1升序2降序
* @param pointType 0空载具1满载具
* @param pointCode 点位编码
* @return List<SchBasePoint>
*/
@Override
public List<SchBasePoint> checkEndPointTask(String regionCode, String getLockType, String sortType, String
pointType) {
pointType, String pointCode) {
Set<String> pointSets;
List<SchBaseTask> taskList;
List<SchBasePoint> returList = new ArrayList<>();
LambdaQueryWrapper<SchBasePoint> queryWrapper = new LambdaQueryWrapper<SchBasePoint>()
.eq(SchBasePoint::getIs_used, true)
.eq(SchBasePoint::getRegion_code, regionCode);
LambdaQueryWrapper<SchBasePoint> queryWrapper = new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getIs_used, true);
if (StringUtils.isNotBlank(regionCode)) {
queryWrapper.eq(SchBasePoint::getRegion_code, regionCode);
}
if (StringUtils.isNotBlank(pointCode)) {
queryWrapper.eq(SchBasePoint::getCode, pointCode);
}
if (StringUtils.isNotEmpty(getLockType)) {
queryWrapper.eq(SchBasePoint::getLock_type, getLockType);
}

View File

@@ -1,6 +1,7 @@
package org.nl.wms.pm_manage.form_data.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@@ -269,29 +270,29 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
public com.baomidou.mybatisplus.extension.plugins.pagination.Page<PmFormDataDto> queryTree(FormDataQuery query, PageQuery pageQuery) {
Page page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize());
page.setOrderBy("id DESC");
List<PmFormDataDto> pmFormDataList = this.baseMapper.queryTree2(query);
if (!CollectionUtils.isEmpty(pmFormDataList)) {
handleFormDatas(pmFormDataList);
} else {
if (StringUtils.isNotBlank(query.getCode())) {
//根据单据编号查询Erp单据
List<SyncFormMapping> list = iSyncFormMappingService.list(new LambdaQueryWrapper<SyncFormMapping>().eq(SyncFormMapping::getForm_type, query.getForm_type()));
if (ObjectUtils.isNotEmpty(list)) {
JSONArray mappingJson = list.get(0).getMapping_json();
String mappingString = JSON.toJSONString(mappingJson);
syncErpBillsScheduleService.syncData(mappingString, list.get(0).getForm_type(), list.get(0).getDtl_split(), query.getCode());
List<PmFormDataDto> pmFormData = this.baseMapper.queryTree2(query);
if (!CollectionUtils.isEmpty(pmFormData)) {
handleFormDatas(pmFormData);
}
com.baomidou.mybatisplus.extension.plugins.pagination.Page<PmFormDataDto> dtoPage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page.getPages(), page.getPageSize(), page.getTotal());
dtoPage.setRecords(pmFormData);
dtoPage.setTotal(pmFormData.size());
return dtoPage;
JSONArray mappingJson = list.get(0).getMapping_json();
String mappingString = JSON.toJSONString(mappingJson);
syncErpBillsScheduleService.syncData(mappingString, list.get(0).getForm_type(), list.get(0).getDtl_split(), query.getCode());
List<PmFormDataDto> pmFormData = this.baseMapper.queryTree2(query);
if (ObjectUtil.isNotEmpty(pmFormData)) {
handleFormDatas(pmFormData);
}
com.baomidou.mybatisplus.extension.plugins.pagination.Page<PmFormDataDto> dtoPage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page.getPages(), page.getPageSize(), page.getTotal());
dtoPage.setRecords(pmFormData);
dtoPage.setTotal(pmFormData.size());
return dtoPage;
} else {
List<PmFormDataDto> pmFormDataList = this.baseMapper.queryTree2(query);
if (ObjectUtil.isNotEmpty(pmFormDataList)) {
handleFormDatas(pmFormDataList);
}
com.baomidou.mybatisplus.extension.plugins.pagination.Page<PmFormDataDto> dtoPage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page.getPages(), page.getPageSize(), page.getTotal());
dtoPage.setRecords(pmFormDataList);
return dtoPage;
}
com.baomidou.mybatisplus.extension.plugins.pagination.Page<PmFormDataDto> dtoPage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page.getPages(), page.getPageSize(), page.getTotal());
dtoPage.setRecords(pmFormDataList);
return dtoPage;
}

View File

@@ -79,14 +79,14 @@ public class ApplyShelfScheduleService {
List<SchBasePoint> cxPointLists = iSchBasePointService.checkEndPointTask(
StatusEnum.REGION_INFO.code("二楼AGV产线对接位"),
StatusEnum.LOCK.code("无锁"),
StatusEnum.SORT_TYPE.code("升序"), "0");
StatusEnum.SORT_TYPE.code("升序"), "0", null);
if (ObjectUtils.isNotEmpty(cxPointLists)) {
startPointCode = cxPointLists.get(0).getCode();
vehicleCode = cxPointLists.get(0).getVehicle_code();
List<SchBasePoint> ctuPointList = iSchBasePointService.checkEndPointTask(
StatusEnum.REGION_INFO.code("二楼CTU货架对接位"),
StatusEnum.LOCK.code("无锁"),
StatusEnum.SORT_TYPE.code("升序"), null
StatusEnum.SORT_TYPE.code("升序"), null, null
);
if (ObjectUtils.isNotEmpty(ctuPointList)) {
endPointCode = ctuPointList.get(0).getCode();
@@ -96,7 +96,7 @@ public class ApplyShelfScheduleService {
endPointCode = iSchBasePointService.checkEndPointTask(
StatusEnum.REGION_INFO.code("二楼CTU货架对接位"),
StatusEnum.LOCK.code("无锁"),
StatusEnum.SORT_TYPE.code("升序"), null
StatusEnum.SORT_TYPE.code("升序"), null, null
).get(0).getCode();
}
if (StringUtils.isNotBlank(startPointCode) && StringUtils.isNotBlank(endPointCode)) {

View File

@@ -24,7 +24,6 @@ import org.nl.wms.external_system.erp.dto.ErpSec;
import org.nl.wms.pm_manage.form_data.service.IPmFormDataService;
import org.nl.wms.pm_manage.form_data.service.dao.PmFormData;
import org.nl.wms.pm_manage.form_data.service.dao.mapper.PmFormDataMapper;
import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr;
import org.nl.wms.sync_manage.service.form_mapping.dao.SyncFormMapping;
import org.nl.wms.sync_manage.service.form_mapping.impl.SyncFormMappingServiceImpl;
import org.slf4j.MDC;
@@ -133,7 +132,7 @@ public class SyncErpBillsScheduleService {
// 获取当前日期
String today = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH, -80);
calendar.add(Calendar.DAY_OF_MONTH, -15);
String sevenDaysAgo = new SimpleDateFormat("yyyy-MM-dd").format(calendar.getTime());
String filterString;
if (StringUtils.isNotBlank(billCode)) {
@@ -188,7 +187,7 @@ public class SyncErpBillsScheduleService {
// 获取当前日期
String timeEnd = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH, -80);
calendar.add(Calendar.DAY_OF_MONTH, -15);
String timeStart = new SimpleDateFormat("yyyy-MM-dd").format(calendar.getTime());
if (StringUtils.isNotBlank(start) && StringUtils.isNotBlank(end)) {
timeStart = start;
@@ -300,22 +299,24 @@ public class SyncErpBillsScheduleService {
if (exitFormDataList.contains(id)) {
//单据明细
if (StringUtils.isBlank(f.getCode())) {
PmFormData existDtlData = formDataService.getOne(new QueryWrapper<PmFormData>().eq("id",id).select("qty"));
PmFormData existDtlData = formDataService.getOne(new QueryWrapper<PmFormData>().eq("id", id).select("qty"));
//同步修改未出库单据
if (existDtlData.getQty().compareTo(BigDecimal.ZERO) > 0||f.getPlan_qty().compareTo(f.getAssign_qty()) > 0)
{
formDataService.update(new LambdaUpdateWrapper<PmFormData>()
.set(PmFormData::getMaterial_id, f.getMaterial_id())
.set(PmFormData::getQty, f.getQty())
//todo 确认分配数量是多少
.set(PmFormData::getAssign_qty,BigDecimal.ZERO)
.set(PmFormData::getUnit_id, f.getUnit_id())
.set(PmFormData::getForm_data, JSON.toJSONString(f.getForm_data()))
.set(PmFormData::getPlan_qty, f.getPlan_qty())
.set(PmFormData::getBar_code, f.getBar_code())
.set(PmFormData::getUpdate_name, DateUtil.now())
.set(PmFormData::getUpdate_name, SecurityUtils.getCurrentNickName())
.eq(PmFormData::getId, id));
//existDtlData.getQty().compareTo(BigDecimal.ZERO) > 0||f.getPlan_qty().compareTo(f.getAssign_qty()) > 0
if (existDtlData.getQty() != null) {
if (existDtlData.getQty().compareTo(BigDecimal.ZERO) > 0) {
formDataService.update(new LambdaUpdateWrapper<PmFormData>()
.set(PmFormData::getMaterial_id, f.getMaterial_id())
.set(PmFormData::getQty, f.getQty())
//todo 确认分配数量是多少
.set(PmFormData::getAssign_qty, BigDecimal.ZERO)
.set(PmFormData::getUnit_id, f.getUnit_id())
.set(PmFormData::getForm_data, JSON.toJSONString(f.getForm_data()))
.set(PmFormData::getPlan_qty, f.getPlan_qty())
.set(PmFormData::getBar_code, f.getBar_code())
.set(PmFormData::getUpdate_name, DateUtil.now())
.set(PmFormData::getUpdate_name, SecurityUtils.getCurrentNickName())
.eq(PmFormData::getId, id));
}
}
}
} else {

View File

@@ -106,9 +106,9 @@ public class TaskScheduleService {
if (targetSize == t.size()) {
//创建agv任务
// 终点满足条件
List<SchBasePoint> endPointList = iSchBasePointService.list(new LambdaQueryWrapper<SchBasePoint>()
.eq(SchBasePoint::getLock_type, StatusEnum.LOCK.code("无锁"))
.eq(SchBasePoint::getCode, targetCode));
List<SchBasePoint> endPointList = iSchBasePointService.checkEndPointTask(null,
StatusEnum.LOCK.code("无锁"),
StatusEnum.SORT_TYPE.code("升序"), "0",targetCode);
if (ObjectUtils.isEmpty(endPointList)) {
return;
}