Browse Source

完善

master
张江玮 2 years ago
parent
commit
b183a782f3
  1. 4
      acs/hd/nladmin-system/src/main/resources/logback-spring.xml
  2. 16
      lms/hd/nladmin-system/src/main/java/org/nl/wms/pad/rest/PadController.java
  3. 19
      lms/hd/nladmin-system/src/main/java/org/nl/wms/pad/service/impl/PadServiceImpl.java
  4. 2
      lms/hd/nladmin-system/src/main/java/org/nl/wms/sch/service/wql/QSCH_BASE_POINT.wql
  5. BIN
      lms/hd/nladmin-system/src/main/java/org/nl/wms/sch/service/wql/sch.xls
  6. 28
      lms/hd/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CallTask.java
  7. 15
      lms/hd/nladmin-system/src/main/java/org/nl/wms/sch/tasks/SendTask.java
  8. 5
      lms/hd/nladmin-system/src/main/resources/logback-spring.xml
  9. 30
      lms/hd/nladmin-system/src/test/java/org/nl/PointTest.java
  10. 4
      lms/qd/src/views/wms/sch/point/index.vue
  11. 61
      lms/qd/src/views/wms/sch/task/index.vue

4
acs/hd/nladmin-system/src/main/resources/logback-spring.xml

@ -12,7 +12,7 @@ https://juejin.cn/post/6844903775631572999
<contextName>nlAdmin</contextName>
<property name="log.charset" value="utf-8"/>
<property name="log.pattern"
value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) - %gray(%msg%n)"/>
value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) - %cyan(%msg%n)"/>
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
<springProperty scope="context" name="lokiUrl" source="loki.url"/>
<springProperty scope="context" name="systemName" source="loki.systemName"/>
@ -86,7 +86,7 @@ https://juejin.cn/post/6844903775631572999
<springProfile name="dev">
<root level="info">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="lokiAppender" />
<appender-ref ref="lokiAppender"/>
</root>
<!--logmanage -->
<logger name="org.nl.acs.log.service.impl.DeviceExecuteLogServiceImpl" level="info" additivity="false">

16
lms/hd/nladmin-system/src/main/java/org/nl/wms/pad/rest/PadController.java

@ -90,7 +90,7 @@ public class PadController {
public ResponseEntity<JSONObject> point(@RequestBody JSONObject param) {
// 参数校验
String regionId = param.getString("region");
if (StrUtil.isEmpty(regionId)) {
if (StrUtil.isBlank(regionId)) {
JSONObject resultJSON = new JSONObject();
resultJSON.put("code", "0");
resultJSON.put("desc", "区域不能为空");
@ -111,15 +111,15 @@ public class PadController {
@ApiOperation("查询物料")
public ResponseEntity<JSONObject> material(@RequestBody JSONObject param) {
// 参数校验
String point_id = param.getString("device_id");
if (StrUtil.isEmpty(point_id)) {
String pointId = param.getString("device_id");
if (StrUtil.isBlank(pointId)) {
JSONObject resultJSON = new JSONObject();
resultJSON.put("code", "0");
resultJSON.put("desc", "点位不能为空");
return new ResponseEntity<>(resultJSON, HttpStatus.OK);
}
return new ResponseEntity<>(padService.material(point_id), HttpStatus.OK);
return new ResponseEntity<>(padService.material(pointId), HttpStatus.OK);
}
/**
@ -136,7 +136,7 @@ public class PadController {
public ResponseEntity<JSONObject> bindPoint(@RequestBody JSONObject param) {
// 参数校验
String type = param.getString("type");
if (StrUtil.isEmpty(type)) {
if (StrUtil.isBlank(type)) {
JSONObject resultJSON = new JSONObject();
resultJSON.put("code", "0");
resultJSON.put("desc", "操作类型不能为空");
@ -144,14 +144,14 @@ public class PadController {
}
String pointCode = param.getString("device_code");
String materialType = param.getString("material_type");
if (StrUtil.equals(type, "1")) {
if (StrUtil.isEmpty(pointCode)) {
if ("1".equals(type)) {
if (StrUtil.isBlank(pointCode)) {
JSONObject resultJSON = new JSONObject();
resultJSON.put("code", "0");
resultJSON.put("desc", "设备不能为空");
return new ResponseEntity<>(resultJSON, HttpStatus.OK);
}
if (StrUtil.isEmpty(materialType)) {
if (StrUtil.isBlank(materialType)) {
JSONObject resultJSON = new JSONObject();
resultJSON.put("code", "0");
resultJSON.put("desc", "物料不能为空");

19
lms/hd/nladmin-system/src/main/java/org/nl/wms/pad/service/impl/PadServiceImpl.java

@ -32,6 +32,8 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.stream.Collectors;
/**
* 徐工手持服务实现
@ -238,11 +240,14 @@ public class PadServiceImpl implements PadService {
switch (type) {
case "1":
// 判断是否是限定物料
String pointMaterialType = point.getString("material_type");
boolean isEmptyMaterial = StrUtil.equals(materialType, "14");
if (!isEmptyMaterial
&& !StrUtil.equals(pointMaterialType, "14")
&& !StrUtil.equals(pointMaterialType, materialType)) {
List<String> materialTypes = WQLObject
.getWQLObject("sch_base_point_material")
.query("point_id = " + point.getLong("point_id"))
.getResultJSONArray(0)
.stream()
.map(o -> ((JSONObject) o).getString("material"))
.collect(Collectors.toList());
if (!materialTypes.contains(materialType)) {
resultJSON.put("code", "0");
resultJSON.put("desc", "该点位不能存放这种物料");
return resultJSON;
@ -250,7 +255,7 @@ public class PadServiceImpl implements PadService {
// 修改点位
point.put("current_material_type", materialType);
point.put("point_status", isEmptyMaterial ? "00" : "01");
point.put("point_status", "01");
point.put("update_optid", SecurityUtils.getCurrentUserId());
point.put("update_optname", SecurityUtils.getCurrentUsername());
point.put("update_time", DateUtil.now());
@ -258,7 +263,7 @@ public class PadServiceImpl implements PadService {
break;
case "2":
// 清空点位
point.put("current_material_type", "14");
point.put("current_material_type", null);
point.put("point_status", "00");
point.put("update_optid", SecurityUtils.getCurrentUserId());
point.put("update_optname", SecurityUtils.getCurrentUsername());

2
lms/hd/nladmin-system/src/main/java/org/nl/wms/sch/service/wql/QSCH_BASE_POINT.wql

@ -94,7 +94,7 @@
LEFT JOIN sys_dict_detail d4 ON point.point_status = d4.value and d4.name='sch_point_status'
LEFT JOIN SCH_BASE_Region prev_region ON point.prev_region_id = prev_region.region_id
LEFT JOIN SCH_BASE_Region next_region ON point.next_region_id = next_region.region_id
LEFT JOIN sys_dict_detail d6 ON point.current_material_type = d6.`value` AND d6.`name` = 'current_material_type'
LEFT JOIN sys_dict_detail d6 ON point.current_material_type = d6.`value` AND d6.`name` = 'material_type'
WHERE
point.is_delete = '0'
OPTION 输入.region_id <> ""

BIN
lms/hd/nladmin-system/src/main/java/org/nl/wms/sch/service/wql/sch.xls

Binary file not shown.

28
lms/hd/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CallTask.java

@ -62,7 +62,7 @@ public class CallTask extends AbstractAcsTask {
@Override
public String createTask(JSONObject param) {
String nextPointCode = param.getString("next_point_code");
String materialType = param.getString("call_material_type");
String materialType = param.getString("material_type");
// 判断点位是否存在
JSONObject nextPoint = WQLObject
@ -73,6 +73,16 @@ public class CallTask extends AbstractAcsTask {
throw new BadRequestException("未找到该点位");
}
// 判断点位有没有被锁定
if (!StrUtil.equals(nextPoint.getString("lock_type"), "00")) {
throw new BadRequestException("该点位已被锁定");
}
// 判断点位是否为空位
if (!StrUtil.equals(nextPoint.getString("point_status"), "00")) {
throw new BadRequestException("该点位不是空位");
}
// 查询点位的叫料区域
String startRegionId = nextPoint.getString("prev_region_id");
if (StrUtil.isEmpty(startRegionId)) {
@ -91,16 +101,6 @@ public class CallTask extends AbstractAcsTask {
throw new BadRequestException("该点位不能呼叫这种物料");
}
// 判断点位有没有被锁定
if (!StrUtil.equals(nextPoint.getString("lock_type"), "00")) {
throw new BadRequestException("该点位已被锁定");
}
// 判断点位是否为空位
if (!StrUtil.equals(nextPoint.getString("point_status"), "00")) {
throw new BadRequestException("该点位不是空位");
}
// 查询叫料区域存放此物料的排
JSONArray colArray = WQL
.getWO("SEND_TASK")
@ -122,8 +122,10 @@ public class CallTask extends AbstractAcsTask {
.process()
.uniqueResult(0);
// 点位不为空 且 点位未锁定,则为合适的叫料点位
if (ObjectUtil.isNotEmpty(tempPoint) && StrUtil.equals(tempPoint.getString("lock_type"), "00")) {
// 点位不为空 且 点位未锁定 且 点位上的物料和需要的物料一致,则为合适的叫料点位
if (ObjectUtil.isNotEmpty(tempPoint)
&& "00".equals(tempPoint.getString("lock_type"))
&& materialType.equals(tempPoint.getString("current_material_type"))) {
startPoint = tempPoint;
break;
}

15
lms/hd/nladmin-system/src/main/java/org/nl/wms/sch/tasks/SendTask.java

@ -140,7 +140,7 @@ public class SendTask extends AbstractAcsTask {
// 起点置空 解锁
startPoint.put("point_status", "00");
startPoint.put("lock_type", "00");
startPoint.put("current_material_type", "14");
startPoint.put("current_material_type", null);
startPoint.put("update_optid", userId);
startPoint.put("update_optname", username);
startPoint.put("update_time", now);
@ -178,12 +178,6 @@ public class SendTask extends AbstractAcsTask {
throw new BadRequestException("未找到该点位");
}
// 查询点位的送料区域
String nextRegionId = startPoint.getString("next_region_id");
if (StrUtil.isEmpty(nextRegionId)) {
throw new BadRequestException("该点位没有送料区域");
}
// 判断点位有没有被锁定
if (!StrUtil.equals(startPoint.getString("lock_type"), "00")) {
throw new BadRequestException("该点位已被锁定");
@ -194,6 +188,13 @@ public class SendTask extends AbstractAcsTask {
throw new BadRequestException("该点位是空位");
}
// 查询点位的送料区域
String nextRegionId = startPoint.getString("next_region_id");
if (StrUtil.isEmpty(nextRegionId)) {
throw new BadRequestException("该点位没有送料区域");
}
// 查送料点位(出入库顺序升序)
JSONObject nextPoint;
String currentMaterialType = startPoint.getString("current_material_type");

5
lms/hd/nladmin-system/src/main/resources/logback-spring.xml

@ -21,7 +21,7 @@ https://juejin.cn/post/6844903775631572999
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${log.pattern}</pattern>
<charset>${log.charset}</charset>
<!-- <charset>${log.charset}</charset>-->
</encoder>
<!-- 转为JSON https://www.zoleet.com/details/328.html-->
@ -64,6 +64,7 @@ https://juejin.cn/post/6844903775631572999
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>${log.charset}</charset>
</encoder>
</appender>
@ -115,7 +116,7 @@ https://juejin.cn/post/6844903775631572999
<!--生产环境:打印控制台和输出到文件-->
<springProfile name="prod">
<root level="off">
<root level="info">
<appender-ref ref="asyncFileAppender"/>
</root>
</springProfile>

30
lms/hd/nladmin-system/src/test/java/org/nl/PointTest.java

@ -21,6 +21,7 @@ public class PointTest {
@Test
public void test01() {
WQLObject point_table = WQLObject.getWQLObject("sch_base_point");
WQLObject pm_table = WQLObject.getWQLObject("sch_base_point_material");
// JSONObject point = new JSONObject();
// point.put("region_id", "1628275194667864064");
// point.put("point_type", "00");
@ -49,19 +50,24 @@ public class PointTest {
// point_table.insert(point);
// }
// }
JSONArray points = point_table
.query("region_id = 1628275194667864064")
.getResultJSONArray(0);
WQLObject pm_table = WQLObject.getWQLObject("sch_base_point_material");
JSONObject pm = new JSONObject();
String[] materials = new String[]{"08", "09", "10", "11", "12", "13"};
// JSONArray points = point_table
// .query("region_id = 1628275194667864064")
// .getResultJSONArray(0);
// WQLObject pm_table = WQLObject.getWQLObject("sch_base_point_material");
// JSONObject pm = new JSONObject();
// String[] materials = new String[]{"08", "09", "10", "11", "12", "13"};
// for (Object o : points) {
// pm.put("point_id", ((JSONObject) o).getLongValue("point_id"));
// for (String material : materials) {
// pm.put("pm_id", IdUtil.getSnowflake(1L, 1L).nextId());
// pm.put("material", material);
// pm_table.insert(pm);
// }
// }
JSONArray points = point_table.query("region_id = 1628275194667864064").getResultJSONArray(0);
for (Object o : points) {
pm.put("point_id", ((JSONObject) o).getLongValue("point_id"));
for (String material : materials) {
pm.put("pm_id", IdUtil.getSnowflake(1L, 1L).nextId());
pm.put("material", material);
pm_table.insert(pm);
}
pm_table.delete("point_id = " + ((JSONObject) o).getString("point_id") + " AND material IN ('11', '12', '13')");
}
}
}

4
lms/qd/src/views/wms/sch/point/index.vue

@ -189,7 +189,7 @@
clearable
>
<el-option
v-for="item in dict.current_material_type"
v-for="item in dict.material_type"
:key="item.id"
:label="item.label"
:value="item.value"
@ -352,7 +352,7 @@ import pagination from '@crud/Pagination'
const defaultForm = { device_point_type: null, point_id: null, is_host: null, point_code: null, point_name: null, area_type: null, point_type: '00', point_status: '00', lock_type: '00', vehicle_code: null, source_id: null, remark: null, is_used: null, is_delete: null, create_id: null, create_name: null, create_time: null, update_optid: null, update_optname: null, update_time: null, material_type: [], region_id: null, prev_region_id: null, next_region_id: null, seq: 0, current_material_type: null, col: 1 }
export default {
name: 'Point',
dicts: ['sch_point_type', 'sch_area_type', 'sch_point_status', 'is_used', 'd_lock_type', 'SCH_TASK_TYPE_DTL', 'storagevehicle_type', 'IS_HOST', 'device_point_type', 'material_type', 'current_material_type'],
dicts: ['sch_point_type', 'sch_area_type', 'sch_point_status', 'is_used', 'd_lock_type', 'SCH_TASK_TYPE_DTL', 'storagevehicle_type', 'IS_HOST', 'device_point_type', 'material_type'],
components: { pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {

61
lms/qd/src/views/wms/sch/task/index.vue

@ -122,12 +122,12 @@
/>
</el-select>
</el-form-item>
<rrOperation />
<rrOperation/>
</el-form>
</div>
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" />
<crudOperation :permission="permission"/>
<!--表格渲染-->
<el-table
ref="table"
@ -137,30 +137,30 @@
style="width: 100%;"
@selection-change="crud.selectionChangeHandler"
>
<el-table-column type="selection" width="50" />
<el-table-column v-if="false" prop="taskdtl_id" label="任务标识" />
<el-table-column prop="task_code" label="任务编码" />
<el-table-column v-if="false" prop="task_type" label="任务类型" />
<el-table-column prop="task_type_name" label="任务类型" />
<el-table-column v-if="false" prop="taskdtl_type" label="任务明细" />
<el-table-column v-if="false" prop="taskdtl_type_name" label="任务明细" />
<el-table-column v-if="false" prop="task_status" label="任务状态" />
<el-table-column prop="task_status_name" label="任务状态" width="95px" :formatter="formatTaskStatusName" />
<el-table-column type="selection" width="50"/>
<el-table-column v-if="false" prop="taskdtl_id" label="任务标识"/>
<el-table-column prop="task_code" label="任务编码"/>
<el-table-column v-if="false" prop="task_type" label="任务类型"/>
<el-table-column prop="task_type_name" label="任务类型"/>
<el-table-column v-if="false" prop="taskdtl_type" label="任务明细"/>
<el-table-column v-if="false" prop="taskdtl_type_name" label="任务明细"/>
<el-table-column v-if="false" prop="task_status" label="任务状态"/>
<el-table-column prop="task_status_name" label="任务状态" width="95px" :formatter="formatTaskStatusName"/>
<!--
<el-table-column v-if="false" prop="finished_type" label="完成方式" />
-->
<!-- <el-table-column prop="finished_type_name" label="完成方式" :formatter="formatFinishTypeName"/>-->
<el-table-column prop="start_area_name" label="起始区域" width="95" show-overflow-tooltip />
<el-table-column prop="start_point_code" label="起点编码" width="85" />
<el-table-column prop="start_area_name" label="起始区域" width="95" show-overflow-tooltip/>
<el-table-column prop="start_point_code" label="起点编码" width="85"/>
<el-table-column prop="start_point_name" label="起点名称" width="105" show-overflow-tooltip/>
<el-table-column prop="next_area_name" label="下一区域" width="95" show-overflow-tooltip />
<el-table-column prop="next_point_code" label="下一点编码" width="90" />
<el-table-column prop="next_area_name" label="下一区域" width="95" show-overflow-tooltip/>
<el-table-column prop="next_point_code" label="下一点编码" width="90"/>
<el-table-column prop="next_point_name" label="下一点名称" width="105" show-overflow-tooltip/>
<el-table-column v-if="false" prop="material_code" label="物料编码" />
<el-table-column prop="remark" label="备注" width="120" show-overflow-tooltip />
<el-table-column v-if="false" prop="update_by" label="修改者" />
<el-table-column prop="create_time" label="创建时间" width="135" />
<el-table-column prop="update_time" label="修改时间" width="135" />
<el-table-column v-if="false" prop="material_code" label="物料编码"/>
<el-table-column prop="remark" label="备注" width="120" show-overflow-tooltip/>
<el-table-column v-if="false" prop="update_by" label="修改者"/>
<el-table-column prop="create_time" label="创建时间" width="135"/>
<el-table-column prop="update_time" label="修改时间" width="135"/>
<el-table-column
v-permission="['admin','instruction:edit','instruction:del']"
fixed="right"
@ -171,21 +171,21 @@
<template slot-scope="scope">
<el-dropdown trigger="click" @command="handleCommand">
<span class="el-dropdown-link">
<i class="el-icon-menu" />
<i class="el-icon-menu"/>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'d')">下发</el-dropdown-item>
<el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'a')">完成</el-dropdown-item>
<!-- <el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'b')">取消</el-dropdown-item>-->
<!-- <el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'b')">取消</el-dropdown-item>-->
<!-- <el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'c')">拉回</el-dropdown-item>-->
<!-- <el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'e')">详情</el-dropdown-item>-->
<!-- <el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'e')">详情</el-dropdown-item>-->
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<pagination />
<pagination/>
</div>
<el-dialog
title="任务详情"
@ -229,7 +229,14 @@ export default {
sort: 'taskdtl_id,desc',
crudMethod: { ...crudTask },
query: {
task_code:'',vehicle_code:'',start_point_code:'',next_point_code:'',task_type:'',taskdtl_type:'',finished_type:'',task_status:""
task_code: '',
vehicle_code: '',
start_point_code: '',
next_point_code: '',
task_type: '',
taskdtl_type: '',
finished_type: '',
task_status: '-1'
},
optShow: {
add: false,
@ -251,9 +258,7 @@ export default {
taskStatusList: [],
taskTypeList: [],
finishTypeList: [],
permission: {
},
permission: {},
rules: {}
}
},

Loading…
Cancel
Save