Browse Source

opt:更新pc点位查询,叠盘任务增加相同点位限制

master
zds 4 months ago
parent
commit
fc418ce8d6
  1. 5
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/AcsToWmsServiceImpl.java
  2. 16
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/controller/SchBasePointController.java
  3. 4
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/ISchBasePointService.java
  4. 11
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.java
  5. 48
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.xml
  6. 4
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dto/SchBasePointDto.java
  7. 17
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dto/SchBasePointQuery.java
  8. 42
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java
  9. 1
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/ISchBaseTaskService.java
  10. 3
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/impl/SchBaseTaskServiceImpl.java
  11. 22
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/POINTTask.java
  12. 3
      lms/nladmin-ui/src/views/wms/sch/point/PointDialog.vue
  13. 42
      lms/nladmin-ui/src/views/wms/sch/point/index.vue

5
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/AcsToWmsServiceImpl.java

@ -1,5 +1,6 @@
package org.nl.wms.ext.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.http.HttpStatus;
@ -206,13 +207,15 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
@Override
public BaseResponse notify(JSONObject param) {
String requestNo = param.getString("requestNo");
log.info("notifyAcs - 请求参数 {}", param);
log.info(DateUtil.now()+"notifyAcs - 请求参数 {}", param);
if(param.getInteger("type")==1){
//叠盘机高度同步
SchBasePoint schBasePoint= pointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
.eq(SchBasePoint::getPoint_code, param.getString("device_code")));
log.info(DateUtil.now()+"notifyAcs - 请求参数中:"+schBasePoint.getVehicle_qty()+"------>"+param.getInteger("number"));
schBasePoint.setVehicle_qty(param.getInteger("number"));
pointService.update(schBasePoint);
log.info(DateUtil.now()+"notifyAcs - 请求参数后 {}", schBasePoint.toString());
}else if(param.getInteger("type")==2) {
// 输送线看板展示字段同步
for (String key : param.keySet()) {

16
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/controller/SchBasePointController.java

@ -18,6 +18,7 @@ import org.nl.wms.ext.service.AcsToWmsService;
import org.nl.wms.ext.service.dto.to.BaseResponse;
import org.nl.wms.sch.point.service.ISchBasePointService;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
import org.nl.wms.sch.point.service.dto.SchBasePointQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@ -49,19 +50,8 @@ public class SchBasePointController {
@Log("查询点位管理")
@ApiOperation("查询点位管理")
//@SaCheckPermission("@el.check('schBasePoint:list')")
public ResponseEntity<Object> query(@RequestParam Map whereJson, PageQuery page){
String userName=SecurityUtils.getCurrentUsername();
UserQuery query=new UserQuery();
query.setBlurry(userName);
PageQuery pageQuery=new PageQuery();
List<SysUserDetail> userDetail = userService.getUserDetail(query, pageQuery);
List<String> roles=new ArrayList();
for(SysRole role:userDetail.get(0).getRoles()){
if(ObjectUtil.isNotEmpty(role.getRemark())){
roles.add(role.getRemark());
}
}
return new ResponseEntity<>(TableDataInfo.build(schBasePointService.queryAll(whereJson,page,roles)),HttpStatus.OK);
public ResponseEntity<Object> query(SchBasePointQuery whereJson, PageQuery page){
return new ResponseEntity<>(TableDataInfo.build(schBasePointService.queryAll(whereJson,page)),HttpStatus.OK);
}
@PostMapping

4
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/ISchBasePointService.java

@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import org.nl.common.domain.query.PageQuery;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
import org.nl.wms.sch.point.service.dto.SchBasePointDto;
import org.nl.wms.sch.point.service.dto.SchBasePointQuery;
import java.util.List;
import java.util.Map;
@ -23,7 +25,7 @@ public interface ISchBasePointService extends IService<SchBasePoint> {
* @param pageable 分页参数
* @return IPage<SchBasePoint>
*/
IPage<SchBasePoint> queryAll(Map whereJson, PageQuery pageable,List<String> roles);
IPage<SchBasePointDto> queryAll(SchBasePointQuery whereJson, PageQuery pageable);
/**
* 创建

11
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.java

@ -1,9 +1,10 @@
package org.nl.wms.sch.point.service.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
import org.nl.wms.sch.point.service.dto.SchBasePointDto;
import org.nl.wms.sch.point.service.dto.SchBasePointQuery;
import java.util.List;
@ -19,4 +20,10 @@ public interface SchBasePointMapper extends BaseMapper<SchBasePoint> {
* @param used
*/
void batchChangeUsed(List<String> pointCodes, Boolean used);
/**
* 分页查找
* @return
*/
IPage<SchBasePointDto> queryPoint(IPage<SchBasePointDto> pages, SchBasePointQuery query);
}

48
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.xml

@ -12,4 +12,52 @@
</foreach>
</where>
</update>
<select id="queryPoint" resultType="org.nl.wms.sch.point.service.dto.SchBasePointDto">
SELECT
p.*,
workorder_two.moname,
workorder_two.status
FROM
sch_base_point p
LEFT JOIN (
SELECT
two.moname,
two.palletSN,
two.status
FROM
pdm_bd_workorder_two two
GROUP BY
two.palletSN,
two.moname,
two.status
ORDER BY
two.moname,
two.palletSN,
two.status
) workorder_two ON workorder_two.palletSN = p.vehicle_code2
WHERE 1=1
<if test="query.blurry != null">
and p.point_code like CONCAT('%', #{query.blurry}, '%')
</if>
<if test="query.region_code != null">
and p.region_code = #{query.region_code}
</if>
<if test="query.vehicle_code != null">
and p.vehicle_code like CONCAT('%', #{query.vehicle_code}, '%')
</if>
<if test="query.vehicle_code2 != null">
and p.vehicle_code2 like CONCAT('%', #{query.vehicle_code2}, '%')
</if>
<if test="query.is_used != null">
and p.is_used = #{query.is_used}
</if>
<if test="query.lock_type == false">
and (p.ing_task_code IS NULL or p.ing_task_code = '')
</if>
<if test="query.lock_type == true">
and (p.ing_task_code IS NOT NULL and p.ing_task_code != '')
</if>
ORDER BY p.region_code ASC, p.point_code ASC
</select>
</mapper>

4
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dto/SchBasePointDto.java

@ -113,4 +113,8 @@ public class SchBasePointDto implements Serializable {
/** 修改时间 */
private String update_time;
private String moname;
private String status;
}

17
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dto/SchBasePointQuery.java

@ -1,12 +1,27 @@
package org.nl.wms.sch.point.service.dto;
import lombok.Data;
import org.nl.common.domain.query.BaseQuery;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
import java.io.Serializable;
/**
* @author lyd
* @date 2023-05-15
**/
public class SchBasePointQuery extends BaseQuery<SchBasePoint> {
@Data
public class SchBasePointQuery implements Serializable {
private String blurry;
private String region_code;
private String vehicle_code;
private String vehicle_code2;
private Boolean is_used;
private Boolean lock_type;
}

42
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java

@ -19,8 +19,11 @@ import org.nl.wms.sch.group.service.dao.mapper.SchBaseVehiclematerialgroupMapper
import org.nl.wms.sch.point.service.ISchBasePointService;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
import org.nl.wms.sch.point.service.dao.mapper.SchBasePointMapper;
import org.nl.wms.sch.point.service.dto.SchBasePointDto;
import org.nl.wms.sch.point.service.dto.SchBasePointQuery;
import org.nl.wms.sch.region.service.dao.SchBaseRegion;
import org.nl.wms.sch.region.service.dao.mapper.SchBaseRegionMapper;
import org.nl.wms.sch.report.service.dto.ReportDto;
import org.nl.wms.sch.task.service.dao.SchBaseTask;
import org.nl.wms.sch.task_manage.GeneralDefinition;
import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
@ -50,38 +53,9 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
private SchBaseVehiclematerialgroupMapper vehiclematerialgroupMapper;
@Override
public IPage<SchBasePoint> queryAll(Map whereJson, PageQuery page,List<String> roles){
String blurry = ObjectUtil.isNotEmpty(whereJson.get("blurry")) ? whereJson.get("blurry").toString() : null;
String workshop_code = ObjectUtil.isNotEmpty(whereJson.get("workshop_code")) ? whereJson.get("workshop_code").toString() : null;
String region_code = ObjectUtil.isNotEmpty(whereJson.get("region_code")) ? whereJson.get("region_code").toString() : null;
String point_type = ObjectUtil.isNotEmpty(whereJson.get("point_type")) ? whereJson.get("point_type").toString() : null;
String point_status = ObjectUtil.isNotEmpty(whereJson.get("point_status")) ? whereJson.get("point_status").toString() : null;
String vehicle_code = ObjectUtil.isNotEmpty(whereJson.get("vehicle_code")) ? whereJson.get("vehicle_code").toString() : null;
String vehicle_code2 = ObjectUtil.isNotEmpty(whereJson.get("vehicle_code2")) ? whereJson.get("vehicle_code2").toString() : null;
Boolean is_used = ObjectUtil.isNotEmpty(whereJson.get("is_used")) ? Boolean.valueOf(whereJson.get("is_used").toString()) : null;
Boolean lock_type = ObjectUtil.isNotEmpty(whereJson.get("lock_type")) ? Boolean.valueOf(whereJson.get("lock_type").toString()) : false;
Boolean parent_point = ObjectUtil.isNotEmpty(whereJson.get("parent_point")) ? Boolean.valueOf(whereJson.get("parent_point").toString()) : false;
LambdaQueryWrapper<SchBasePoint> lam = new LambdaQueryWrapper<>();
lam.like(ObjectUtil.isNotEmpty(blurry), SchBasePoint::getPoint_code, blurry)
.eq(ObjectUtil.isNotEmpty(workshop_code), SchBasePoint::getWorkshop_code, workshop_code)
.in(ObjectUtil.isNotEmpty(roles),SchBasePoint::getWorkshop_code,roles)
.eq(ObjectUtil.isNotEmpty(region_code), SchBasePoint::getRegion_code, region_code)
.eq(ObjectUtil.isNotEmpty(point_type), SchBasePoint::getPoint_type, point_type)
.eq(ObjectUtil.isNotEmpty(point_status), SchBasePoint::getPoint_status, point_status)
.eq(ObjectUtil.isNotEmpty(is_used), SchBasePoint::getIs_used, is_used)
.like(ObjectUtil.isNotEmpty(vehicle_code), SchBasePoint::getVehicle_code, vehicle_code)
.like(ObjectUtil.isNotEmpty(vehicle_code2), SchBasePoint::getVehicle_code2, vehicle_code2)
.and(!lock_type, slam -> slam.isNull(SchBasePoint::getIng_task_code)
.or()
.eq(SchBasePoint::getIng_task_code, ""))
.and(lock_type, slam -> slam.isNotNull(SchBasePoint::getIng_task_code)
.ne(SchBasePoint::getIng_task_code, ""))
.orderByAsc(SchBasePoint::getRegion_code)
.orderByAsc(SchBasePoint::getPoint_type)
.orderByAsc(SchBasePoint::getPoint_code)
.apply(parent_point, "point_code = parent_point_code");
IPage<SchBasePoint> pages = new Page<>(page.getPage() + 1, page.getSize());
pointMapper.selectPage(pages, lam);
public IPage<SchBasePointDto> queryAll(SchBasePointQuery whereJson, PageQuery pageQuery){
IPage<SchBasePointDto> pages = new Page<>(pageQuery.getPage() + 1, pageQuery.getSize());
pages = pointMapper.queryPoint(pages, whereJson);
return pages;
}
@ -123,7 +97,6 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
@Override
public void update(SchBasePoint entity) {
log.info("管理端手动变更点位信息:{}",entity.toString());
String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
String now = DateUtil.now();
@ -135,12 +108,12 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
SchBaseRegion baseRegion = regionMapper.selectById(entity.getRegion_code());
entity.setRegion_name(baseRegion.getRegion_name());
}
log.info("update管理端变更点位信息为:{}",entity.toString());
pointMapper.updateById(entity);
}
@Override
public void updateByPc(SchBasePoint entity) {
log.info("管理端手动变更点位信息:{}",entity.toString());
String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
String now = DateUtil.now();
@ -174,6 +147,7 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
}
}
entity.setIs_has_workder(false);
log.info("updateByPc管理端变更点位信息为:{}",entity.toString());
pointMapper.updateById(entity);
}

1
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/ISchBaseTaskService.java

@ -67,6 +67,7 @@ public interface ISchBaseTaskService extends IService<SchBaseTask> {
*/
Integer findUnFinishTasksByPoint_code2(String task_code, String point_code2);
/**
* 根据任务号和子托盘查询未完成的任务
* @param task_code

3
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/impl/SchBaseTaskServiceImpl.java

@ -134,7 +134,8 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
.and(slam -> slam.eq(SchBaseTask::getPoint_code1, point_code2)
.or()
.eq(SchBaseTask::getPoint_code2, point_code2))
.eq(SchBaseTask::getIs_delete, false);
.eq(SchBaseTask::getIs_delete, false)
.gt(point_code2.startsWith("DKT"),SchBaseTask::getTask_status, TaskStatus.APPLY.getCode());
Integer schBaseTasks = schBaseTaskMapper.selectCount(lam);
return schBaseTasks;
}

22
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/POINTTask.java

@ -99,15 +99,18 @@ public class POINTTask extends AbstractTask {
log.info("分配终点点位"+task.getPoint_code2()+"已存在已存在载具!");
continue;
}
// 获取任务
Integer taskList = taskService.findUnFinishTasksByPoint_code2(task.getTask_code(),task.getPoint_code2());
if(taskList>0){
task.setRemark("分配终点点位"+task.getPoint_code2()+"已存在未完成任务!");
taskService.update(task);
// 消息通知
log.info("分配终点点位"+task.getPoint_code2()+"已存在未完成任务!");
continue;
}
// 获取任务
Integer taskList = taskService.findUnFinishTasksByPoint_code2(task.getTask_code(),task.getPoint_code2());
if(taskList>0){
task.setRemark("分配终点点位"+task.getPoint_code2()+"已存在未完成任务!");
if(task.getPoint_code2().startsWith("DKT")){
task.setPoint_code2(nextSchBasePoint.getPoint_code());
}
taskService.update(task);
// 消息通知
log.info("分配终点点位"+task.getPoint_code2()+"已存在未完成任务!");
continue;
}
//复制对象
SchBaseTask acs_task = BeanUtil.copyProperties(task,SchBaseTask.class);
@ -137,6 +140,9 @@ public class POINTTask extends AbstractTask {
now_num++;
}else{
task.setRemark("下发acs失败:"+result.toString());
if(task.getPoint_code2().startsWith("DKT")){
task.setPoint_code2(nextSchBasePoint.getPoint_code());
}
taskService.update(task);
}
}

3
lms/nladmin-ui/src/views/wms/sch/point/PointDialog.vue

@ -93,8 +93,7 @@ export default {
url: 'api/schBasePoint',
optShow: {},
query: {
is_used: true,
parent_point: true
is_used: true
}
})
},

42
lms/nladmin-ui/src/views/wms/sch/point/index.vue

@ -60,22 +60,6 @@
/>
</el-select>
</el-form-item>
<el-form-item label="点位类型">
<el-select
v-model="query.point_type"
clearable
size="mini"
placeholder="点位类型"
class="filter-item"
@change="hand"
>
<el-option
v-for="item in pointTypesList"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="母托盘编码">
<el-input
v-model="query.vehicle_code"
@ -181,22 +165,6 @@
<el-form-item label="点位名称" prop="point_name" disabled >
<el-input v-model="form.point_name" style="width: 370px;" />
</el-form-item>
<el-form-item v-if="pointStatusDialogList.length > 0" label="点位状态" prop="point_status">
<el-select
v-model="form.point_status"
size="mini"
placeholder="点位状态"
class="filter-item"
style="width: 370px;"
clearable
>
<el-option
v-for="item in pointStatusDialogList"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item v-show="pointTypesDialogList.length > 0" label="点位类型" prop="device_point_type">
<el-select
v-model="form.point_type"
@ -258,11 +226,11 @@
{{ scope.row.ing_task_code?'是':'否' }}
</template>
</el-table-column>
<el-table-column prop="parent_point_code" label="父点位编码" :min-width="flexWidth('parent_point_code',crud.data,'父点位编码')" />
<el-table-column prop="ing_task_code" label="在执行的任务标识" :min-width="flexWidth('ing_task_code',crud.data,'在执行的任务标识')" />
<el-table-column prop="ing_task_code" label="当前任务编码" :min-width="flexWidth('ing_task_code',crud.data,'当前任务编码')" />
<el-table-column prop="row_num" label="排" :min-width="flexWidth('row_num',crud.data,'排')" />
<el-table-column prop="col_num" label="列" :min-width="flexWidth('col_num',crud.data,'列')" />
<el-table-column prop="layer_num" label="层" :min-width="flexWidth('layer_num',crud.data,'层')" />
<el-table-column prop="parent_point_code" label="父点位编码" :min-width="flexWidth('parent_point_code',crud.data,'父点位编码')" />
<el-table-column prop="is_auto" label="是否自动" :min-width="flexWidth('is_auto',crud.data,'是否自动')">
<template slot-scope="scope">
{{ scope.row.is_auto?'是':'否' }}
@ -483,12 +451,6 @@ export default {
}
return false
},
showButton(point_status) {
if (point_status && point_status === '2') {
return true
}
return false
},
toView(row) {
if (row) {
this.$refs.viewDialog.setParentData(row)

Loading…
Cancel
Save