add:增加一键解锁点位功能
This commit is contained in:
@@ -164,36 +164,89 @@ https://juejin.cn/post/6844903775631572999
|
|||||||
|
|
||||||
<!--生产环境:打印控制台和输出到文件-->
|
<!--生产环境:打印控制台和输出到文件-->
|
||||||
<springProfile name="prod">
|
<springProfile name="prod">
|
||||||
<root level="info">
|
<root level="debug">
|
||||||
|
<appender-ref ref="asyncLuceneAppender"/>
|
||||||
|
<appender-ref ref="CONSOLE"/>
|
||||||
|
</root>
|
||||||
|
<logger name="com.baomidou.mybatisplus.core.MybatisConfiguration" level="ERROR" additivity="false">
|
||||||
<appender-ref ref="asyncLuceneAppender"/>
|
<appender-ref ref="asyncLuceneAppender"/>
|
||||||
<appender-ref ref="asyncFileAppender"/>
|
<appender-ref ref="asyncFileAppender"/>
|
||||||
</root>
|
</logger>
|
||||||
<logger name="jdbc" level="ERROR" additivity="true">
|
<logger name="org.redisson.command.RedisExecutor" level="ERROR" additivity="false">
|
||||||
|
<appender-ref ref="asyncLuceneAppender"/>
|
||||||
|
<appender-ref ref="asyncFileAppender"/>
|
||||||
|
</logger>
|
||||||
|
<logger name="org.reflections.Reflections" level="ERROR" additivity="false">
|
||||||
|
<appender-ref ref="asyncLuceneAppender"/>
|
||||||
|
<appender-ref ref="asyncFileAppender"/>
|
||||||
|
</logger>
|
||||||
|
<logger name="org.redisson.connection.ClientConnectionsEntry" level="ERROR" additivity="false">
|
||||||
|
<appender-ref ref="asyncLuceneAppender"/>
|
||||||
|
<appender-ref ref="asyncFileAppender"/>
|
||||||
|
</logger>
|
||||||
|
<logger name="org.mybatis.spring.mapper.ClassPathMapperScanner" level="ERROR" additivity="false">
|
||||||
|
<appender-ref ref="asyncLuceneAppender"/>
|
||||||
<appender-ref ref="asyncFileAppender"/>
|
<appender-ref ref="asyncFileAppender"/>
|
||||||
</logger>
|
</logger>
|
||||||
<logger name="org.springframework" level="ERROR" additivity="true">
|
<logger name="org.springframework" level="ERROR" additivity="true">
|
||||||
<appender-ref ref="asyncFileAppender"/>
|
<appender-ref ref="CONSOLE"/>
|
||||||
|
</logger>
|
||||||
|
<logger name="com.baomidou.dynamic.datasource.DynamicRoutingDataSource" level="INFO" additivity="true">
|
||||||
|
<appender-ref ref="CONSOLE"/>
|
||||||
|
</logger>
|
||||||
|
<logger name="org.redisson.connection.pool.MasterPubSubConnectionPool" level="INFO" additivity="true">
|
||||||
|
<appender-ref ref="CONSOLE"/>
|
||||||
|
</logger>
|
||||||
|
<logger name="org.redisson.connection.pool.MasterConnectionPool" level="INFO" additivity="true">
|
||||||
|
<appender-ref ref="CONSOLE"/>
|
||||||
|
</logger>
|
||||||
|
<logger name="org.redisson.Version" level="INFO" additivity="true">
|
||||||
|
<appender-ref ref="CONSOLE"/>
|
||||||
|
</logger>
|
||||||
|
<logger name="com.alibaba.druid.pool.DruidDataSource" level="INFO" additivity="true">
|
||||||
|
<appender-ref ref="CONSOLE"/>
|
||||||
|
</logger>
|
||||||
|
<logger name="org.nl.config.RedisConfig" level="INFO" additivity="true">
|
||||||
|
<appender-ref ref="CONSOLE"/>
|
||||||
|
</logger>
|
||||||
|
<logger name="org.apache" level="ERROR" additivity="true">
|
||||||
|
<appender-ref ref="CONSOLE"/>
|
||||||
</logger>
|
</logger>
|
||||||
<logger name="org.hibernate" level="ERROR" additivity="true">
|
<logger name="org.hibernate" level="ERROR" additivity="true">
|
||||||
<appender-ref ref="asyncFileAppender"/>
|
<appender-ref ref="CONSOLE"/>
|
||||||
|
</logger>
|
||||||
|
<logger name="io.netty" level="ERROR" additivity="true">
|
||||||
|
<appender-ref ref="CONSOLE"/>
|
||||||
|
</logger>
|
||||||
|
<logger name="jdbc" level="ERROR" additivity="true">
|
||||||
|
<appender-ref ref="CONSOLE"/>
|
||||||
|
</logger>
|
||||||
|
<logger name="io.lettuce" level="ERROR" additivity="true">
|
||||||
|
<appender-ref ref="CONSOLE"/>
|
||||||
|
</logger>
|
||||||
|
<logger name="com.fasterxml" level="ERROR" additivity="true">
|
||||||
|
<appender-ref ref="CONSOLE"/>
|
||||||
</logger>
|
</logger>
|
||||||
<logger name="org.quartz" level="ERROR" additivity="true">
|
<logger name="org.quartz" level="ERROR" additivity="true">
|
||||||
<appender-ref ref="asyncFileAppender"/>
|
<appender-ref ref="CONSOLE"/>
|
||||||
</logger>
|
</logger>
|
||||||
<logger name="com.google" level="ERROR" additivity="true">
|
<logger name="com.google" level="ERROR" additivity="true">
|
||||||
<appender-ref ref="asyncFileAppender"/>
|
<appender-ref ref="CONSOLE"/>
|
||||||
</logger>
|
</logger>
|
||||||
<logger name="org.redisson" level="ERROR" additivity="true">
|
<logger name="springfox" level="ERROR" additivity="true">
|
||||||
<appender-ref ref="asyncFileAppender"/>
|
<appender-ref ref="CONSOLE"/>
|
||||||
</logger>
|
</logger>
|
||||||
<logger name="org.nl.modules.wql" level="ERROR" additivity="true">
|
<logger name="log4jdbc" level="ERROR" additivity="true">
|
||||||
<appender-ref ref="asyncFileAppender"/>
|
<appender-ref ref="CONSOLE"/>
|
||||||
</logger>
|
</logger>
|
||||||
<logger name="org.springframework.data" level="ERROR" additivity="true">
|
<logger name="nl.basjes" level="ERROR" additivity="true">
|
||||||
<appender-ref ref="asyncFileAppender"/>
|
<appender-ref ref="CONSOLE"/>
|
||||||
</logger>
|
</logger>
|
||||||
<logger name="org.jinterop" level="ERROR" additivity="true">
|
<logger name="com.yomahub.tlog.id.snowflake.UniqueIdGenerator" level="ERROR" additivity="true">
|
||||||
<appender-ref ref="asyncFileAppender"/>
|
<appender-ref ref="CONSOLE"/>
|
||||||
|
</logger>
|
||||||
|
<logger name="com.yomahub.tlog.core.rpc.TLogRPCHandler" level="ERROR" additivity="true">
|
||||||
|
<appender-ref ref="CONSOLE"/>
|
||||||
</logger>
|
</logger>
|
||||||
</springProfile>
|
</springProfile>
|
||||||
|
|
||||||
|
|||||||
@@ -128,8 +128,8 @@
|
|||||||
size="mini"
|
size="mini"
|
||||||
type="warning"
|
type="warning"
|
||||||
icon="el-icon-circle-close"
|
icon="el-icon-circle-close"
|
||||||
:loading="downloadLoading"
|
:disabled="crud.selections.length === 0"
|
||||||
@click="relse"
|
@click="relse(crud.selections)"
|
||||||
>一键解锁出库点
|
>一键解锁出库点
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
@@ -513,8 +513,12 @@ export default {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
relse() {
|
relse(data) {
|
||||||
crudSchBaseRegion.relse()
|
const ids = data.map(r => r.point_code)
|
||||||
|
crudSchBasePoint.relse(ids).then(res => {
|
||||||
|
this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||||
|
this.crud.toQuery()
|
||||||
|
})
|
||||||
},
|
},
|
||||||
getPointTypeList(id, flag) {
|
getPointTypeList(id, flag) {
|
||||||
crudSchBaseRegion.getPointTypeSelectById(id).then(res => {
|
crudSchBaseRegion.getPointTypeSelectById(id).then(res => {
|
||||||
|
|||||||
@@ -56,4 +56,12 @@ export function changeLock(data) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export default { add, edit, del, changeUsed, getPointList, getRegionPoints, changeLock }
|
export function relse(data) {
|
||||||
|
return request({
|
||||||
|
url: 'api/schBasePoint/relse',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export default { add, edit, del, changeUsed, getPointList, getRegionPoints, changeLock, relse }
|
||||||
|
|||||||
@@ -197,9 +197,9 @@ public class MdMeMaterialbaseServiceImpl extends ServiceImpl<MdMeMaterialbaseMap
|
|||||||
}
|
}
|
||||||
List<Structattr> insertList = new ArrayList<>();
|
List<Structattr> insertList = new ArrayList<>();
|
||||||
Set<String> existCodesInFile = new HashSet<>();
|
Set<String> existCodesInFile = new HashSet<>();
|
||||||
final String SECT_ID = "1985610807760785408";
|
final String SECT_ID = "2005471899915784192";
|
||||||
final String SECT_CODE = "1BC";
|
final String SECT_CODE = "1BCDJQ";
|
||||||
final String SECT_NAME = "1楼半成品";
|
final String SECT_NAME = "1楼半成品待检区";
|
||||||
final String STOR_ID = "1985609997907791872";
|
final String STOR_ID = "1985609997907791872";
|
||||||
final String STOR_CODE = "firstfloorBC";
|
final String STOR_CODE = "firstfloorBC";
|
||||||
final String STOR_NAME = "1楼半成品";
|
final String STOR_NAME = "1楼半成品";
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ import org.nl.wms.sch_manage.enums.StatusEnum;
|
|||||||
import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
||||||
import org.nl.wms.warehouse_manage.record.service.IStIvtStructivtflowService;
|
import org.nl.wms.warehouse_manage.record.service.IStIvtStructivtflowService;
|
||||||
import org.nl.wms.warehouse_manage.record.service.dao.StIvtStructivtflow;
|
import org.nl.wms.warehouse_manage.record.service.dao.StIvtStructivtflow;
|
||||||
|
import org.nl.wms.warehouse_manage.record.service.dao.mapper.StIvtStructivtflowMapper;
|
||||||
import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService;
|
import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService;
|
||||||
import org.nl.wms.warehouse_manage.service.dao.GroupPlate;
|
import org.nl.wms.warehouse_manage.service.dao.GroupPlate;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -82,10 +83,11 @@ public class StructattrServiceImpl extends ServiceImpl<StructattrMapper, Structa
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IStSectStrategyService iStSectStrategyService;
|
private IStSectStrategyService iStSectStrategyService;
|
||||||
|
@Autowired
|
||||||
|
private StIvtStructivtflowMapper stIvtStructivtflowMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPage<Structattr> queryAll(Map whereJson, PageQuery page) {
|
public IPage<Structattr> queryAll(Map whereJson, PageQuery page) {
|
||||||
|
|
||||||
String search = (String) whereJson.get("search");
|
String search = (String) whereJson.get("search");
|
||||||
String stor_id = (String) whereJson.get("stor_id");
|
String stor_id = (String) whereJson.get("stor_id");
|
||||||
String sect_id = (String) whereJson.get("sect_id");
|
String sect_id = (String) whereJson.get("sect_id");
|
||||||
@@ -146,6 +148,29 @@ public class StructattrServiceImpl extends ServiceImpl<StructattrMapper, Structa
|
|||||||
return structattrMapper.selectPage(new Page<>(page.getPage() + 1, page.getSize()), queryWrapper);
|
return structattrMapper.selectPage(new Page<>(page.getPage() + 1, page.getSize()), queryWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void syncStorageVehicleCode() {
|
||||||
|
//查询st_ivt_structivtflow表范围为update_time大于'2026-06-14 10:18:00'的数据,
|
||||||
|
//根据update_time升序遍历集合,如果growth=true则代表新增库存,把vehicle_code更新到st_ivt_structattr表的storagevehicle_code字段中;
|
||||||
|
//如果growth==false则代表减少库存,把vehicle_code更新到st_ivt_structattr表的storagevehicle_code字段为NULL;
|
||||||
|
List<StIvtStructivtflow> list = stIvtStructivtflowMapper.selectList(
|
||||||
|
new LambdaQueryWrapper<StIvtStructivtflow>()
|
||||||
|
.gt(StIvtStructivtflow::getUpdate_time, "2026-06-14 10:18:00")
|
||||||
|
.orderByAsc(StIvtStructivtflow::getUpdate_time)
|
||||||
|
);
|
||||||
|
for (StIvtStructivtflow r : list) {
|
||||||
|
LambdaUpdateWrapper<Structattr> updateWrapper = new LambdaUpdateWrapper<>();
|
||||||
|
updateWrapper.set(Structattr::getUpdate_time, DateUtil.now());
|
||||||
|
if (Boolean.TRUE.equals(r.getGrowth())) {
|
||||||
|
updateWrapper.set(Structattr::getStoragevehicle_code, r.getVehicle_code());
|
||||||
|
} else {
|
||||||
|
updateWrapper.set(Structattr::getStoragevehicle_code, null);
|
||||||
|
}
|
||||||
|
updateWrapper.eq(Structattr::getStruct_code, r.getStruct_code());
|
||||||
|
this.update(updateWrapper);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 超托库位搜索条件
|
* 超托库位搜索条件
|
||||||
*/
|
*/
|
||||||
@@ -255,6 +280,9 @@ public class StructattrServiceImpl extends ServiceImpl<StructattrMapper, Structa
|
|||||||
if (ObjectUtil.isEmpty(dto.getWidth())) {
|
if (ObjectUtil.isEmpty(dto.getWidth())) {
|
||||||
lambdaUpdateWrapper.set(Structattr::getWidth, null);
|
lambdaUpdateWrapper.set(Structattr::getWidth, null);
|
||||||
}
|
}
|
||||||
|
if (ObjectUtil.isEmpty(dto.getWidth())) {
|
||||||
|
lambdaUpdateWrapper.set(Structattr::getWidth, null);
|
||||||
|
}
|
||||||
if (ObjectUtil.isEmpty(dto.getStoragevehicle_code())) {
|
if (ObjectUtil.isEmpty(dto.getStoragevehicle_code())) {
|
||||||
lambdaUpdateWrapper.set(Structattr::getStoragevehicle_code, null);
|
lambdaUpdateWrapper.set(Structattr::getStoragevehicle_code, null);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -108,4 +108,11 @@ public class SchBasePointController {
|
|||||||
schBasePointService.changeLock(points);
|
schBasePointService.changeLock(points);
|
||||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Log("释放出库点")
|
||||||
|
@PostMapping("/relse")
|
||||||
|
public ResponseEntity<Object> relse(@RequestBody List<String> pointCodes) {
|
||||||
|
schBasePointService.relse(pointCodes);
|
||||||
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -113,4 +113,11 @@ public interface ISchBasePointService extends IService<SchBasePoint> {
|
|||||||
*/
|
*/
|
||||||
List<SchBasePoint> checkEndPointTask(String regionCode, String getLockType, String sortType, String
|
List<SchBasePoint> checkEndPointTask(String regionCode, String getLockType, String sortType, String
|
||||||
pointType, String pointCode, String vehicleIsNull, boolean isFourPoint);
|
pointType, String pointCode, String vehicleIsNull, boolean isFourPoint);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 释放出库点
|
||||||
|
*
|
||||||
|
* @param pointCodes 点位编码列表
|
||||||
|
*/
|
||||||
|
void relse(List<String> pointCodes);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -217,6 +217,25 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
|||||||
return pointMapper.selectByIdLock(id);
|
return pointMapper.selectByIdLock(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public void relse(List<String> pointCodes) {
|
||||||
|
String now = DateUtil.now();
|
||||||
|
String userId = SecurityUtils.getCurrentUserId();
|
||||||
|
String nickName = SecurityUtils.getCurrentNickName();
|
||||||
|
LambdaUpdateWrapper<SchBasePoint> wrapper = new LambdaUpdateWrapper<>();
|
||||||
|
wrapper.in(SchBasePoint::getPoint_code, pointCodes)
|
||||||
|
.set(SchBasePoint::getLock_up, false)
|
||||||
|
.set(SchBasePoint::getPoint_status, "1")
|
||||||
|
.set(SchBasePoint::getIs_has_workder,"0")
|
||||||
|
.set(SchBasePoint::getVehicle_code, null)
|
||||||
|
.set(SchBasePoint::getUpdate_id, userId)
|
||||||
|
.set(SchBasePoint::getUpdate_name, nickName)
|
||||||
|
.set(SchBasePoint::getUpdate_time, now);
|
||||||
|
this.update(wrapper);
|
||||||
|
log.info(nickName+"在:"+now+",手动一键解锁了出库区点位:"+pointCodes);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void unLockPoint(String point_code) {
|
public void unLockPoint(String point_code) {
|
||||||
this.update(
|
this.update(
|
||||||
|
|||||||
Reference in New Issue
Block a user