Browse Source

fix 指令多次生成和用户管理功能

master
周俊杰 1 year ago
parent
commit
14472eca34
  1. 11
      acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java
  2. 2
      acs/nladmin-system/src/main/java/org/nl/acs/heartbeat/HeartbeatConfig.java
  3. 1
      acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceManageDto.java
  4. 5
      acs/nladmin-system/src/main/java/org/nl/acs/order/rest/ProduceshiftorderController.java
  5. 3
      acs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java
  6. 1
      acs/nladmin-system/src/main/java/org/nl/modules/logicflow/service/impl/StageServiceImpl.java
  7. 1
      acs/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCreateInst.java
  8. 2
      acs/nladmin-system/src/main/java/org/nl/modules/system/rest/UserController.java
  9. 4
      acs/nladmin-system/src/main/java/org/nl/modules/system/service/impl/UserServiceImpl.java
  10. 7
      acs/nladmin-system/src/main/java/org/nl/start/auto/run/NDCSocketConnectionAutoRun.java
  11. 56
      acs/nladmin-system/src/main/resources/logback-spring.xml
  12. 177
      acs/nladmin-ui/src/views/acs/device/driver/lnsh/lnsh_press.vue
  13. 4
      acs/nladmin-ui/src/views/acs/instruction/index.vue
  14. 4
      acs/nladmin-ui/src/views/acs/task/index.vue
  15. 2
      acs/nladmin-ui/src/views/monitor/lucene/index.vue
  16. 5
      acs/nladmin-ui/src/views/system/user/index.vue

11
acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java

@ -26,6 +26,7 @@ import org.nl.modules.system.util.CodeUtil;
import org.nl.modules.wql.util.SpringContextHolder;
import org.nl.start.auto.run.NDCSocketConnectionAutoRun;
import org.slf4j.MDC;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
@ -36,10 +37,12 @@ import java.util.Map;
@Service
@RequiredArgsConstructor
public class NDCAgvServiceImpl implements NDCAgvService {
private final DeviceAppService deviceAppService;
private final ParamService acsConfigService;
private final AcsToWmsService acsToWmsService;
@Autowired
DeviceAppService deviceAppService;
@Autowired
ParamService acsConfigService;
@Autowired
AcsToWmsService acsToWmsService;
private final DeviceExecuteLogService logServer;

2
acs/nladmin-system/src/main/java/org/nl/acs/heartbeat/HeartbeatConfig.java

@ -5,6 +5,6 @@ public class HeartbeatConfig {
/**
* 最大心跳时常
*/
public static Integer max_alive_time_millions = 1000 * 30;
public static Integer max_alive_time_millions = 1000;
}

1
acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceManageDto.java

@ -1,7 +1,6 @@
package org.nl.acs.opc;
import cn.hutool.core.util.ObjectUtil;
import eu.bitwalker.useragentutils.DeviceType;
import lombok.Data;
import java.util.*;

5
acs/nladmin-system/src/main/java/org/nl/acs/order/rest/ProduceshiftorderController.java

@ -4,6 +4,7 @@ package org.nl.acs.order.rest;
import org.nl.acs.order.service.ProduceshiftorderService;
import org.nl.acs.order.service.dto.ProduceshiftorderDto;
import org.nl.modules.logging.annotation.Log;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
@ -26,8 +27,8 @@ import lombok.extern.slf4j.Slf4j;
@RequestMapping("/api/produceshiftorder")
@Slf4j
public class ProduceshiftorderController {
private final ProduceshiftorderService produceshiftorderService;
@Autowired
ProduceshiftorderService produceshiftorderService;
@GetMapping
@Log("查询工单信息")

3
acs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java

@ -83,6 +83,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
private DeviceAppService deviceAppService;
@Autowired
private RouteLineService routelineserver;
@Lazy
@Autowired
private AcsToWmsService acstowmsService;
@Autowired
@ -155,7 +156,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
@Override
public Map<String, Object> queryAllByCache(Map whereJson, Pageable page) {
this.reload();
// this.reload();
String task_code = (String) whereJson.get("task_code");
String vehicle_code = (String) whereJson.get("vehicle_code");
String material_type = (String) whereJson.get("material_type");

1
acs/nladmin-system/src/main/java/org/nl/modules/logicflow/service/impl/StageServiceImpl.java

@ -3,7 +3,6 @@ package org.nl.modules.logicflow.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor;

1
acs/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCreateInst.java

@ -331,6 +331,7 @@ public class AutoCreateInst {
try {
instructionService.create(instdto);
} catch (Exception e) {
log.error("agv创建指令异常", e);
acsTask.setRemark(e.getMessage());
taskserver.updateByCodeFromCache(acsTask);
continue;

2
acs/nladmin-system/src/main/java/org/nl/modules/system/rest/UserController.java

@ -109,7 +109,7 @@ public class UserController {
public ResponseEntity<Object> create(@Validated @RequestBody User resources){
checkLevel(resources);
// 默认密码 123456
resources.setPassword(SaSecureUtil.md5BySalt("123456", "salt"));
resources.setPassword(SaSecureUtil.md5BySalt(resources.getPassword(), "salt"));
userService.create(resources);
return new ResponseEntity<>(HttpStatus.CREATED);
}

4
acs/nladmin-system/src/main/java/org/nl/modules/system/service/impl/UserServiceImpl.java

@ -15,6 +15,7 @@
*/
package org.nl.modules.system.service.impl;
import cn.dev33.satoken.secure.SaSecureUtil;
import cn.hutool.core.util.StrUtil;
import lombok.RequiredArgsConstructor;
import org.nl.modules.common.config.FileProperties;
@ -135,6 +136,7 @@ public class UserServiceImpl implements UserService {
clone.setPhone(resources.getPhone());
clone.setNickName(resources.getNickName());
clone.setGender(resources.getGender());
clone.setPassword(SaSecureUtil.md5BySalt(resources.getPassword(), "salt"));
userRepository.save(clone);
// 清除缓存
@ -169,7 +171,7 @@ public class UserServiceImpl implements UserService {
}
@Override
@Cacheable(key = "'username:' + #p0")
// @Cacheable(key = "'username:' + #p0")
public UserDto findByName(String userName) {
User user = userRepository.findByUsername(userName);
if (user == null) {

7
acs/nladmin-system/src/main/java/org/nl/start/auto/run/NDCSocketConnectionAutoRun.java

@ -68,7 +68,8 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
ParamService paramService;
@Autowired
AutoRunService autoRunService;
@Autowired
AcsToWmsService acsToWmsService;
public NDCSocketConnectionAutoRun() {
this.recordTime = new Date((new Date()).getTime() - (long) this.recordTimeOut);
@ -86,10 +87,10 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
System.out.println("1楼NDCAgv链接开始");
ParamService ParamService = SpringContextHolder.getBean(ParamServiceImpl.class);
InstructionService instructionService = SpringContextHolder.getBean(InstructionServiceImpl.class);
AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsServiceImpl.class);
// AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsService.class);
NDCAgvService NDCAgvService = SpringContextHolder.getBean(NDCAgvService.class);
DeviceAppService deviceAppService = SpringContextHolder.getBean(DeviceAppService.class);
DeviceService deviceService = SpringContextHolder.getBean(DeviceService.class);
// DeviceService deviceService = SpringContextHolder.getBean(DeviceService.class);
DeviceExecuteLogService logServer = SpringContextHolder.getBean(DeviceExecuteLogService.class);
ip = paramService.findByCode(org.nl.acs.AcsConfig.AGVURL).getValue();
port = Integer.parseInt(paramService.findByCode(AcsConfig.AGVPORT).getValue());

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

@ -73,8 +73,35 @@ https://juejin.cn/post/6844903775631572999
<springProfile name="dev">
<root level="info">
<appender-ref ref="asyncLuceneAppender"/>
<appender-ref ref="CONSOLE"/>
<appender-ref ref="asyncFileAppender"/>
</root>
<logger name="jdbc" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="org.springframework" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="org.hibernate" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="org.quartz" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="com.google" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="org.redisson" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="org.nl.modules.wql" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="org.springframework.data" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="org.jinterop" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
</springProfile>
<!--测试环境:打印控制台-->
<springProfile name="test">
@ -93,5 +120,32 @@ https://juejin.cn/post/6844903775631572999
<appender-ref ref="asyncLuceneAppender"/>
<appender-ref ref="asyncFileAppender"/>
</root>
<logger name="jdbc" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="org.springframework" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="org.hibernate" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="org.quartz" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="com.google" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="org.redisson" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="org.nl.modules.wql" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="org.springframework.data" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="org.jinterop" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
</springProfile>
</configuration>

177
acs/nladmin-ui/src/views/acs/device/driver/lnsh/lnsh_press.vue

@ -159,68 +159,6 @@
</el-form>
</el-card>
<el-card class="box-card" shadow="never">
<div slot="header" class="clearfix">
<span class="role-span">交互相关</span>
</div>
<div class="crud-opts2" style="margin-bottom: 5px;">
<span class="crud-opts-right2">
<!--左侧插槽-->
<slot name="left" />
<el-button
slot="left"
class="filter-item"
type="primary"
icon="el-icon-plus"
size="mini"
@click="insertdtl()"
>
新增一行
</el-button>
</span>
</div>
<div class="app-container">
<el-table :data="modeform.tableData" border fit highlight-current-row style="width: 100%;" class="tb-edit">
<el-table-column label="mode" prop="模式" width="180">
<template scope="scope">
<el-input-number value="3" :min="3" v-model="scope.row.mode" size="mini" />
<span v-show="scope.row.edit">{{ scope.row.mode }}</span>
</template>
</el-table-column>
<el-table-column label="request" prop="请求方法" width="500">
<template scope="scope">
<el-select
v-model="scope.row.request"
filterable
clearable
placeholder="请选择"
style="width: 450px"
>
<el-option
v-for="item in requestMethodList"
:key="item.code"
:label="item.name"
:value="item.code"
/>
</el-select>
</template>
</el-table-column>
<el-table-column align="center" label="操作" width="170" >
<template scope="scope">
<el-button
type="danger"
class="filter-item"
size="mini"
icon="el-icon-delete"
@click.native.prevent="deleteRow(scope.$index, modeform.tableData)"
/>
</template>
</el-table-column>
</el-table>
</div>
</el-card>
<el-card class="box-card" shadow="never">
<div slot="header" class="clearfix">
<span class="role-span">PLC读取字段</span>
@ -356,61 +294,8 @@ export default {
dataOpcservers: [],
dataOpcPlcs: [],
deviceList: [],
requestMethodList: [],
data1: [],
data2: [],
modeform: {
tableData: [
{
mode: '3',
request: 'order_verify'
},
{
mode: '4',
request: 'order_finish'
},
{
mode: '5',
request: 'apply_put_full_vehicle'
},
{
mode: '6',
request: 'apply_put_empty_vehicle'
},
{
mode: '7',
request: 'apply_take_empty_vehicle'
},
{
mode: '8',
request: 'apply_take_full_vehicle'
},
{
mode: '9',
request: 'apply_force_take_full_vehicle'
},
{
mode: '10',
request: 'apply_force_take_full_vehicle_in_storage'
},
{
mode: '11',
request: 'barcode_success_apply'
},
{
mode: '12',
request: 'get_vehicle_info'
},
{
mode: '13',
request: 'force_no_package'
},
{
mode: '14',
request: 'apply_labelling'
}
]
},
form: {
inspect_in_stocck: true,
ignore_pickup_check: true,
@ -451,13 +336,6 @@ export default {
}
this.data1 = data.rs
this.data2 = data.ws
if (data.modeform) {
const arr = Object.keys(data.modeform)
//
if (arr.length > 0) {
this.modeform.tableData = data.modeform
}
}
this.sliceItem()
})
selectPlcList().then(data => {
@ -471,19 +349,9 @@ export default {
deviceCrud.selectDeviceList().then(data => {
this.deviceList = data
})
deviceCrud.selectRequestMethodList().then(data => {
this.requestMethodList = data
})
})
},
methods: {
insertdtl() {
this.modeform.tableData.push({mode: '', request: '' })
},
deleteRow(index, rows) {
debugger
rows.splice(index, 1)
},
finishReadEdit(data) {
// code,mode
if (data.code.indexOf('mode') !== -1) {
@ -572,53 +440,20 @@ export default {
if (this.data2[val].code.indexOf('to_material_code') !== -1) {
this.data2[val].db = beforeStr + '.STRING58.50'
}
if (this.data2[val].code.indexOf('to_brick_code') !== -1) {
this.data2[val].db = beforeStr + '.STRING112.50'
}
if (this.data2[val].code.indexOf('to_formula') !== -1) {
this.data2[val].db = beforeStr + '.STRING164.50'
}
if (this.data2[val].code.indexOf('to_product_code') !== -1) {
this.data2[val].db = beforeStr + '.W216'
this.data2[val].db = beforeStr + '.W108'
}
if (this.data2[val].code.indexOf('to_AlongSide') !== -1) {
this.data2[val].db = beforeStr + '.W218'
this.data2[val].db = beforeStr + '.W110'
}
if (this.data2[val].code.indexOf('to_BshortSide') !== -1) {
this.data2[val].db = beforeStr + '.W220'
this.data2[val].db = beforeStr + '.W112'
}
if (this.data2[val].code.indexOf('to_Htrapezoidal') !== -1) {
this.data2[val].db = beforeStr + '.W222'
this.data2[val].db = beforeStr + '.W114'
}
if (this.data2[val].code.indexOf('to_Wthickness') !== -1) {
this.data2[val].db = beforeStr + '.W224'
}
if (this.data2[val].code.indexOf('to_size_error') !== -1) {
this.data2[val].db = beforeStr + '.REAL228'
}
if (this.data2[val].code.indexOf('to_single_weight') !== -1) {
this.data2[val].db = beforeStr + '.REAL232'
}
if (this.data2[val].code.indexOf('to_drawing_address') !== -1) {
this.data2[val].db = beforeStr + '.REAL236'
}
if (this.data2[val].code.indexOf('to_standard_weight') !== -1) {
this.data2[val].db = beforeStr + '.REAL240'
}
if (this.data2[val].code.indexOf('to_detection_error') !== -1) {
this.data2[val].db = beforeStr + '.REAL244'
}
if (this.data2[val].code.indexOf('to_standard_size_height1') !== -1) {
this.data2[val].db = beforeStr + '.REAL248'
}
if (this.data2[val].code.indexOf('to_standard_size_height2') !== -1) {
this.data2[val].db = beforeStr + '.REAL252'
}
if (this.data2[val].code.indexOf('to_standard_size_height3') !== -1) {
this.data2[val].db = beforeStr + '.REAL256'
}
if (this.data2[val].code.indexOf('to_standard_size_height4') !== -1) {
this.data2[val].db = beforeStr + '.REAL260'
this.data2[val].db = beforeStr + '.W116'
}
}
}
@ -683,7 +518,7 @@ export default {
parentForm.is_route = true
parentForm.plc_id = this.plc_id
parentForm.opc_id = this.opc_id
updateConfig(parentForm, this.form, this.modeform, this.data1, this.data2).then(res => {
updateConfig(parentForm, this.form, this.data1, this.data2).then(res => {
this.notify('保存成功', 'success')
this.configLoading = false
}).catch(err => {

4
acs/nladmin-ui/src/views/acs/instruction/index.vue

@ -70,7 +70,7 @@
</div>
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission">
<el-button
<!-- <el-button
slot="right"
class="filter-item"
size="mini"
@ -79,7 +79,7 @@
@click="reload"
>
同步
</el-button>
</el-button> -->
</crudOperation>
<!--表单组件-->
<el-dialog

4
acs/nladmin-ui/src/views/acs/task/index.vue

@ -68,7 +68,7 @@
>
新增
</el-button>
<el-button
<!-- <el-button
slot="right"
class="filter-item"
size="mini"
@ -77,7 +77,7 @@
@click="reload"
>
同步
</el-button>
</el-button> -->
</crudOperation>
<!--表单组件-->
<el-dialog :close-on-click-modal="false" :visible.sync="formDia" :title="crud.status.title" width="500px">

2
acs/nladmin-ui/src/views/monitor/lucene/index.vue

@ -16,7 +16,7 @@
<!-- <el-table-column v-if="false" prop="id" label="id"/>-->
<el-table-column prop="operate" width="50" label="操作" />
<el-table-column prop="device_code" label="设备号" min-width="130" show-overflow-tooltip />
<!-- <el-table-column prop="trace_id" label="链路追踪" /> -->
<el-table-column prop="trace_id" label="链路追踪" />
<el-table-column prop="task_code" label="任务编号" />
<el-table-column prop="instruct_code" label="指令编号" />
<el-table-column prop="method" label="方法" />

5
acs/nladmin-ui/src/views/system/user/index.vue

@ -96,6 +96,9 @@
<el-radio label="女"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="密码" prop="password">
<el-input v-model="form.password" style="width: 200px;" show-password auto-complete="new-password" />
</el-form-item>
<el-form-item label="状态">
<el-radio-group v-model="form.enabled" :disabled="form.id === user.id">
<el-radio
@ -256,7 +259,7 @@ export default {
])
},
created() {
this.crud.msg.add = '新增成功,默认密码:123456'
this.crud.msg.add = '新增成功'
},
mounted: function() {
const that = this

Loading…
Cancel
Save