opt:优化手持出库单据实时查询
This commit is contained in:
@@ -1,6 +1,5 @@
|
|||||||
package org.nl.wms.dispatch_manage.point.service;
|
package org.nl.wms.dispatch_manage.point.service;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import org.nl.wms.dispatch_manage.point.service.dao.SchBasePoint;
|
import org.nl.wms.dispatch_manage.point.service.dao.SchBasePoint;
|
||||||
|
|
||||||
@@ -31,10 +30,11 @@ public interface ISchBasePointService extends IService<SchBasePoint> {
|
|||||||
* @param regionCode 点位类型
|
* @param regionCode 点位类型
|
||||||
* @param getLockType 锁定状态
|
* @param getLockType 锁定状态
|
||||||
* @param sortType 点位排序规则1:升序2:降序
|
* @param sortType 点位排序规则1:升序2:降序
|
||||||
@param pointType 0空载具1满载具
|
* @param pointType 0空载具1满载具
|
||||||
|
* @param pointCode 点位编码
|
||||||
* @return List<SchBasePoint>
|
* @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);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -113,17 +113,22 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
|||||||
* @param getLockType 锁定状态
|
* @param getLockType 锁定状态
|
||||||
* @param sortType 点位排序规则1:升序2:降序
|
* @param sortType 点位排序规则1:升序2:降序
|
||||||
* @param pointType 0空载具1满载具
|
* @param pointType 0空载具1满载具
|
||||||
|
* @param pointCode 点位编码
|
||||||
* @return List<SchBasePoint>
|
* @return List<SchBasePoint>
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<SchBasePoint> checkEndPointTask(String regionCode, String getLockType, String sortType, String
|
public List<SchBasePoint> checkEndPointTask(String regionCode, String getLockType, String sortType, String
|
||||||
pointType) {
|
pointType, String pointCode) {
|
||||||
Set<String> pointSets;
|
Set<String> pointSets;
|
||||||
List<SchBaseTask> taskList;
|
List<SchBaseTask> taskList;
|
||||||
List<SchBasePoint> returList = new ArrayList<>();
|
List<SchBasePoint> returList = new ArrayList<>();
|
||||||
LambdaQueryWrapper<SchBasePoint> queryWrapper = new LambdaQueryWrapper<SchBasePoint>()
|
LambdaQueryWrapper<SchBasePoint> queryWrapper = new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getIs_used, true);
|
||||||
.eq(SchBasePoint::getIs_used, true)
|
if (StringUtils.isNotBlank(regionCode)) {
|
||||||
.eq(SchBasePoint::getRegion_code, regionCode);
|
queryWrapper.eq(SchBasePoint::getRegion_code, regionCode);
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(pointCode)) {
|
||||||
|
queryWrapper.eq(SchBasePoint::getCode, pointCode);
|
||||||
|
}
|
||||||
if (StringUtils.isNotEmpty(getLockType)) {
|
if (StringUtils.isNotEmpty(getLockType)) {
|
||||||
queryWrapper.eq(SchBasePoint::getLock_type, getLockType);
|
queryWrapper.eq(SchBasePoint::getLock_type, getLockType);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package org.nl.wms.pm_manage.form_data.service.impl;
|
package org.nl.wms.pm_manage.form_data.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
@@ -269,30 +270,30 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
|
|||||||
public com.baomidou.mybatisplus.extension.plugins.pagination.Page<PmFormDataDto> queryTree(FormDataQuery query, PageQuery pageQuery) {
|
public com.baomidou.mybatisplus.extension.plugins.pagination.Page<PmFormDataDto> queryTree(FormDataQuery query, PageQuery pageQuery) {
|
||||||
Page page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize());
|
Page page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize());
|
||||||
page.setOrderBy("id DESC");
|
page.setOrderBy("id DESC");
|
||||||
List<PmFormDataDto> pmFormDataList = this.baseMapper.queryTree2(query);
|
if (StringUtils.isNotBlank(query.getCode())) {
|
||||||
if (!CollectionUtils.isEmpty(pmFormDataList)) {
|
|
||||||
handleFormDatas(pmFormDataList);
|
|
||||||
} else {
|
|
||||||
//根据单据编号查询Erp单据
|
//根据单据编号查询Erp单据
|
||||||
List<SyncFormMapping> list = iSyncFormMappingService.list(new LambdaQueryWrapper<SyncFormMapping>().eq(SyncFormMapping::getForm_type, query.getForm_type()));
|
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();
|
JSONArray mappingJson = list.get(0).getMapping_json();
|
||||||
String mappingString = JSON.toJSONString(mappingJson);
|
String mappingString = JSON.toJSONString(mappingJson);
|
||||||
syncErpBillsScheduleService.syncData(mappingString, list.get(0).getForm_type(), list.get(0).getDtl_split(), query.getCode());
|
syncErpBillsScheduleService.syncData(mappingString, list.get(0).getForm_type(), list.get(0).getDtl_split(), query.getCode());
|
||||||
List<PmFormDataDto> pmFormData = this.baseMapper.queryTree2(query);
|
List<PmFormDataDto> pmFormData = this.baseMapper.queryTree2(query);
|
||||||
if (!CollectionUtils.isEmpty(pmFormData)) {
|
if (ObjectUtil.isNotEmpty(pmFormData)) {
|
||||||
handleFormDatas(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());
|
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.setRecords(pmFormData);
|
||||||
dtoPage.setTotal(pmFormData.size());
|
dtoPage.setTotal(pmFormData.size());
|
||||||
return dtoPage;
|
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());
|
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);
|
dtoPage.setRecords(pmFormDataList);
|
||||||
return dtoPage;
|
return dtoPage;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -79,14 +79,14 @@ public class ApplyShelfScheduleService {
|
|||||||
List<SchBasePoint> cxPointLists = iSchBasePointService.checkEndPointTask(
|
List<SchBasePoint> cxPointLists = iSchBasePointService.checkEndPointTask(
|
||||||
StatusEnum.REGION_INFO.code("二楼AGV产线对接位"),
|
StatusEnum.REGION_INFO.code("二楼AGV产线对接位"),
|
||||||
StatusEnum.LOCK.code("无锁"),
|
StatusEnum.LOCK.code("无锁"),
|
||||||
StatusEnum.SORT_TYPE.code("升序"), "0");
|
StatusEnum.SORT_TYPE.code("升序"), "0", null);
|
||||||
if (ObjectUtils.isNotEmpty(cxPointLists)) {
|
if (ObjectUtils.isNotEmpty(cxPointLists)) {
|
||||||
startPointCode = cxPointLists.get(0).getCode();
|
startPointCode = cxPointLists.get(0).getCode();
|
||||||
vehicleCode = cxPointLists.get(0).getVehicle_code();
|
vehicleCode = cxPointLists.get(0).getVehicle_code();
|
||||||
List<SchBasePoint> ctuPointList = iSchBasePointService.checkEndPointTask(
|
List<SchBasePoint> ctuPointList = iSchBasePointService.checkEndPointTask(
|
||||||
StatusEnum.REGION_INFO.code("二楼CTU货架对接位"),
|
StatusEnum.REGION_INFO.code("二楼CTU货架对接位"),
|
||||||
StatusEnum.LOCK.code("无锁"),
|
StatusEnum.LOCK.code("无锁"),
|
||||||
StatusEnum.SORT_TYPE.code("升序"), null
|
StatusEnum.SORT_TYPE.code("升序"), null, null
|
||||||
);
|
);
|
||||||
if (ObjectUtils.isNotEmpty(ctuPointList)) {
|
if (ObjectUtils.isNotEmpty(ctuPointList)) {
|
||||||
endPointCode = ctuPointList.get(0).getCode();
|
endPointCode = ctuPointList.get(0).getCode();
|
||||||
@@ -96,7 +96,7 @@ public class ApplyShelfScheduleService {
|
|||||||
endPointCode = iSchBasePointService.checkEndPointTask(
|
endPointCode = iSchBasePointService.checkEndPointTask(
|
||||||
StatusEnum.REGION_INFO.code("二楼CTU货架对接位"),
|
StatusEnum.REGION_INFO.code("二楼CTU货架对接位"),
|
||||||
StatusEnum.LOCK.code("无锁"),
|
StatusEnum.LOCK.code("无锁"),
|
||||||
StatusEnum.SORT_TYPE.code("升序"), null
|
StatusEnum.SORT_TYPE.code("升序"), null, null
|
||||||
).get(0).getCode();
|
).get(0).getCode();
|
||||||
}
|
}
|
||||||
if (StringUtils.isNotBlank(startPointCode) && StringUtils.isNotBlank(endPointCode)) {
|
if (StringUtils.isNotBlank(startPointCode) && StringUtils.isNotBlank(endPointCode)) {
|
||||||
|
|||||||
@@ -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.IPmFormDataService;
|
||||||
import org.nl.wms.pm_manage.form_data.service.dao.PmFormData;
|
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.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.dao.SyncFormMapping;
|
||||||
import org.nl.wms.sync_manage.service.form_mapping.impl.SyncFormMappingServiceImpl;
|
import org.nl.wms.sync_manage.service.form_mapping.impl.SyncFormMappingServiceImpl;
|
||||||
import org.slf4j.MDC;
|
import org.slf4j.MDC;
|
||||||
@@ -133,7 +132,7 @@ public class SyncErpBillsScheduleService {
|
|||||||
// 获取当前日期
|
// 获取当前日期
|
||||||
String today = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
|
String today = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
|
||||||
Calendar calendar = Calendar.getInstance();
|
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 sevenDaysAgo = new SimpleDateFormat("yyyy-MM-dd").format(calendar.getTime());
|
||||||
String filterString;
|
String filterString;
|
||||||
if (StringUtils.isNotBlank(billCode)) {
|
if (StringUtils.isNotBlank(billCode)) {
|
||||||
@@ -188,7 +187,7 @@ public class SyncErpBillsScheduleService {
|
|||||||
// 获取当前日期
|
// 获取当前日期
|
||||||
String timeEnd = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
|
String timeEnd = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
|
||||||
Calendar calendar = Calendar.getInstance();
|
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());
|
String timeStart = new SimpleDateFormat("yyyy-MM-dd").format(calendar.getTime());
|
||||||
if (StringUtils.isNotBlank(start) && StringUtils.isNotBlank(end)) {
|
if (StringUtils.isNotBlank(start) && StringUtils.isNotBlank(end)) {
|
||||||
timeStart = start;
|
timeStart = start;
|
||||||
@@ -300,15 +299,16 @@ public class SyncErpBillsScheduleService {
|
|||||||
if (exitFormDataList.contains(id)) {
|
if (exitFormDataList.contains(id)) {
|
||||||
//单据明细
|
//单据明细
|
||||||
if (StringUtils.isBlank(f.getCode())) {
|
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)
|
//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>()
|
formDataService.update(new LambdaUpdateWrapper<PmFormData>()
|
||||||
.set(PmFormData::getMaterial_id, f.getMaterial_id())
|
.set(PmFormData::getMaterial_id, f.getMaterial_id())
|
||||||
.set(PmFormData::getQty, f.getQty())
|
.set(PmFormData::getQty, f.getQty())
|
||||||
//todo 确认分配数量是多少
|
//todo 确认分配数量是多少
|
||||||
.set(PmFormData::getAssign_qty,BigDecimal.ZERO)
|
.set(PmFormData::getAssign_qty, BigDecimal.ZERO)
|
||||||
.set(PmFormData::getUnit_id, f.getUnit_id())
|
.set(PmFormData::getUnit_id, f.getUnit_id())
|
||||||
.set(PmFormData::getForm_data, JSON.toJSONString(f.getForm_data()))
|
.set(PmFormData::getForm_data, JSON.toJSONString(f.getForm_data()))
|
||||||
.set(PmFormData::getPlan_qty, f.getPlan_qty())
|
.set(PmFormData::getPlan_qty, f.getPlan_qty())
|
||||||
@@ -318,6 +318,7 @@ public class SyncErpBillsScheduleService {
|
|||||||
.eq(PmFormData::getId, id));
|
.eq(PmFormData::getId, id));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
//单据明细
|
//单据明细
|
||||||
if (StringUtils.isBlank(f.getCode())) {
|
if (StringUtils.isBlank(f.getCode())) {
|
||||||
|
|||||||
@@ -106,9 +106,9 @@ public class TaskScheduleService {
|
|||||||
if (targetSize == t.size()) {
|
if (targetSize == t.size()) {
|
||||||
//创建agv任务
|
//创建agv任务
|
||||||
// 终点满足条件
|
// 终点满足条件
|
||||||
List<SchBasePoint> endPointList = iSchBasePointService.list(new LambdaQueryWrapper<SchBasePoint>()
|
List<SchBasePoint> endPointList = iSchBasePointService.checkEndPointTask(null,
|
||||||
.eq(SchBasePoint::getLock_type, StatusEnum.LOCK.code("无锁"))
|
StatusEnum.LOCK.code("无锁"),
|
||||||
.eq(SchBasePoint::getCode, targetCode));
|
StatusEnum.SORT_TYPE.code("升序"), "0",targetCode);
|
||||||
if (ObjectUtils.isEmpty(endPointList)) {
|
if (ObjectUtils.isEmpty(endPointList)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user