管理员
2 years ago
6 changed files with 0 additions and 517 deletions
@ -1,77 +0,0 @@ |
|||||
|
|
||||
package org.nl.wms.pdm.rest; |
|
||||
|
|
||||
|
|
||||
import com.alibaba.fastjson.JSONObject; |
|
||||
import io.swagger.annotations.Api; |
|
||||
import io.swagger.annotations.ApiOperation; |
|
||||
import lombok.RequiredArgsConstructor; |
|
||||
import lombok.extern.slf4j.Slf4j; |
|
||||
import org.nl.modules.logging.annotation.Log; |
|
||||
import org.nl.wms.pdm.service.DeviceService; |
|
||||
import org.nl.wms.pdm.service.dto.DeviceDto; |
|
||||
import org.springframework.data.domain.Pageable; |
|
||||
import org.springframework.http.HttpStatus; |
|
||||
import org.springframework.http.ResponseEntity; |
|
||||
import org.springframework.validation.annotation.Validated; |
|
||||
import org.springframework.web.bind.annotation.*; |
|
||||
|
|
||||
import java.util.Map; |
|
||||
|
|
||||
/** |
|
||||
* @author geng by |
|
||||
* @date 2022-05-25 |
|
||||
**/ |
|
||||
@RestController |
|
||||
@RequiredArgsConstructor |
|
||||
@Api(tags = "生产设备管理") |
|
||||
@RequestMapping("/api/device") |
|
||||
@Slf4j |
|
||||
public class DeviceController { |
|
||||
|
|
||||
private final DeviceService deviceService; |
|
||||
|
|
||||
@GetMapping |
|
||||
@Log("查询生产设备") |
|
||||
@ApiOperation("查询生产设备") |
|
||||
//@SaCheckPermission("device:list")
|
|
||||
public ResponseEntity<Object> query(@RequestParam Map whereJson, Pageable page){ |
|
||||
return new ResponseEntity<>(deviceService.queryAll(whereJson,page),HttpStatus.OK); |
|
||||
} |
|
||||
|
|
||||
@PostMapping |
|
||||
@Log("新增生产设备") |
|
||||
@ApiOperation("新增生产设备") |
|
||||
//@SaCheckPermission("device:add")
|
|
||||
public ResponseEntity<Object> create(@Validated @RequestBody DeviceDto dto){ |
|
||||
deviceService.create(dto); |
|
||||
return new ResponseEntity<>(HttpStatus.CREATED); |
|
||||
} |
|
||||
|
|
||||
@PutMapping |
|
||||
@Log("修改生产设备") |
|
||||
@ApiOperation("修改生产设备") |
|
||||
//@SaCheckPermission("device:edit")
|
|
||||
public ResponseEntity<Object> update(@Validated @RequestBody DeviceDto dto){ |
|
||||
deviceService.update(dto); |
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT); |
|
||||
} |
|
||||
|
|
||||
@Log("删除生产设备") |
|
||||
@ApiOperation("删除生产设备") |
|
||||
//@SaCheckPermission("device:del")
|
|
||||
@DeleteMapping |
|
||||
public ResponseEntity<Object> delete(@RequestBody Long[] ids) { |
|
||||
deviceService.deleteAll(ids); |
|
||||
return new ResponseEntity<>(HttpStatus.OK); |
|
||||
} |
|
||||
|
|
||||
@PutMapping("/changeActive") |
|
||||
@Log("修改点位启用状态") |
|
||||
@ApiOperation("修改点位启用状态") |
|
||||
public ResponseEntity<Object> changeActive(@RequestBody JSONObject json) { |
|
||||
deviceService.changeActive(json); |
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT); |
|
||||
} |
|
||||
|
|
||||
} |
|
@ -1,69 +0,0 @@ |
|||||
|
|
||||
package org.nl.wms.pdm.service; |
|
||||
|
|
||||
import com.alibaba.fastjson.JSONArray; |
|
||||
import com.alibaba.fastjson.JSONObject; |
|
||||
import org.nl.wms.pdm.service.dto.DeviceDto; |
|
||||
import org.springframework.data.domain.Pageable; |
|
||||
|
|
||||
import java.util.List; |
|
||||
import java.util.Map; |
|
||||
|
|
||||
/** |
|
||||
* @description 服务接口 |
|
||||
* @author geng by |
|
||||
* @date 2022-05-25 |
|
||||
**/ |
|
||||
public interface DeviceService { |
|
||||
|
|
||||
/** |
|
||||
* 查询数据分页 |
|
||||
* @param whereJson 条件 |
|
||||
* @param page 分页参数 |
|
||||
* @return Map<String,Object> |
|
||||
*/ |
|
||||
Map<String,Object> queryAll(Map whereJson, Pageable page); |
|
||||
|
|
||||
/** |
|
||||
* 查询所有数据不分页 |
|
||||
* @param whereJson 条件参数 |
|
||||
* @return List<DeviceDto> |
|
||||
*/ |
|
||||
List<DeviceDto> queryAll(Map whereJson); |
|
||||
|
|
||||
/** |
|
||||
* 根据ID查询 |
|
||||
* @param device_id ID |
|
||||
* @return Device |
|
||||
*/ |
|
||||
DeviceDto findById(Long device_id); |
|
||||
|
|
||||
/** |
|
||||
* 根据编码查询 |
|
||||
* @param code code |
|
||||
* @return Device |
|
||||
*/ |
|
||||
DeviceDto findByCode(String code); |
|
||||
|
|
||||
|
|
||||
/** |
|
||||
* 创建 |
|
||||
* @param dto / |
|
||||
*/ |
|
||||
void create(DeviceDto dto); |
|
||||
|
|
||||
/** |
|
||||
* 编辑 |
|
||||
* @param dto / |
|
||||
*/ |
|
||||
void update(DeviceDto dto); |
|
||||
|
|
||||
/** |
|
||||
* 多选删除 |
|
||||
* @param ids / |
|
||||
*/ |
|
||||
void deleteAll(Long[] ids); |
|
||||
|
|
||||
|
|
||||
void changeActive(JSONObject json); |
|
||||
} |
|
@ -1,141 +0,0 @@ |
|||||
|
|
||||
package org.nl.wms.pdm.service.impl; |
|
||||
|
|
||||
|
|
||||
import cn.hutool.core.date.DateUtil; |
|
||||
import cn.hutool.core.map.MapUtil; |
|
||||
import cn.hutool.core.util.IdUtil; |
|
||||
import cn.hutool.core.util.ObjectUtil; |
|
||||
import cn.hutool.core.util.StrUtil; |
|
||||
import com.alibaba.fastjson.JSON; |
|
||||
import com.alibaba.fastjson.JSONArray; |
|
||||
import com.alibaba.fastjson.JSONObject; |
|
||||
import lombok.RequiredArgsConstructor; |
|
||||
import lombok.extern.slf4j.Slf4j; |
|
||||
|
|
||||
|
|
||||
import org.nl.modules.common.exception.BadRequestException; |
|
||||
import org.nl.modules.common.utils.SecurityUtils; |
|
||||
import org.nl.modules.wql.WQL; |
|
||||
import org.nl.modules.wql.core.bean.WQLObject; |
|
||||
import org.nl.modules.wql.util.WqlUtil; |
|
||||
import org.nl.wms.pdm.service.DeviceService; |
|
||||
import org.nl.wms.pdm.service.dto.DeviceDto; |
|
||||
|
|
||||
import org.springframework.data.domain.Pageable; |
|
||||
import org.springframework.stereotype.Service; |
|
||||
import org.springframework.transaction.annotation.Transactional; |
|
||||
|
|
||||
import java.util.List; |
|
||||
import java.util.Map; |
|
||||
|
|
||||
/** |
|
||||
* @author geng by |
|
||||
* @description 服务实现 |
|
||||
* @date 2022-05-25 |
|
||||
**/ |
|
||||
@Service |
|
||||
@RequiredArgsConstructor |
|
||||
@Slf4j |
|
||||
public class DeviceServiceImpl implements DeviceService { |
|
||||
|
|
||||
@Override |
|
||||
public Map<String, Object> queryAll(Map whereJson, Pageable page) { |
|
||||
String search = MapUtil.getStr(whereJson, "search"); |
|
||||
JSONObject map = new JSONObject(); |
|
||||
map.put("flag", "1"); |
|
||||
if (!StrUtil.isEmpty(search)) { |
|
||||
map.put("search", "%" + search + "%"); |
|
||||
} |
|
||||
JSONObject json = WQL.getWO("PDM_BI_DEVICE01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "device.device_model, device.device_code"); |
|
||||
return json; |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
public List<DeviceDto> queryAll(Map whereJson) { |
|
||||
WQLObject wo = WQLObject.getWQLObject("pdm_bi_device"); |
|
||||
JSONArray arr = wo.query().getResultJSONArray(0); |
|
||||
if (ObjectUtil.isNotEmpty(arr)) return arr.toJavaList(DeviceDto.class); |
|
||||
return null; |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
public DeviceDto findById(Long device_id) { |
|
||||
WQLObject wo = WQLObject.getWQLObject("pdm_bi_device"); |
|
||||
JSONObject json = wo.query("device_id = '" + device_id + "'").uniqueResult(0); |
|
||||
if (ObjectUtil.isNotEmpty(json)) { |
|
||||
return json.toJavaObject(DeviceDto.class); |
|
||||
} |
|
||||
return null; |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
public DeviceDto findByCode(String code) { |
|
||||
WQLObject wo = WQLObject.getWQLObject("pdm_bi_device"); |
|
||||
JSONObject json = wo.query("device_code ='" + code + "'").uniqueResult(0); |
|
||||
if (ObjectUtil.isNotEmpty(json)) { |
|
||||
return json.toJavaObject(DeviceDto.class); |
|
||||
} |
|
||||
return null; |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
@Transactional(rollbackFor = Exception.class) |
|
||||
public void create(DeviceDto dto) { |
|
||||
Long currentUserId = SecurityUtils.getCurrentUserId(); |
|
||||
String nickName = SecurityUtils.getCurrentNickName(); |
|
||||
String now = DateUtil.now(); |
|
||||
//编码唯一性校验
|
|
||||
String device_code = dto.getDevice_code(); |
|
||||
DeviceDto byCode = this.findByCode(device_code); |
|
||||
if (ObjectUtil.isNotEmpty(byCode)) throw new BadRequestException("编码已存在!"); |
|
||||
dto.setDevice_id(IdUtil.getSnowflake(1, 1).nextId()); |
|
||||
dto.setCreate_id(currentUserId); |
|
||||
dto.setCreate_name(nickName); |
|
||||
dto.setCreate_time(now); |
|
||||
|
|
||||
WQLObject wo = WQLObject.getWQLObject("pdm_bi_device"); |
|
||||
JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto)); |
|
||||
wo.insert(json); |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
@Transactional(rollbackFor = Exception.class) |
|
||||
public void update(DeviceDto dto) { |
|
||||
DeviceDto entity = this.findById(dto.getDevice_id()); |
|
||||
if (entity == null) throw new BadRequestException("被删除或无权限,操作失败!"); |
|
||||
|
|
||||
//编码唯一性校验
|
|
||||
WQLObject wo = WQLObject.getWQLObject("pdm_bi_device"); |
|
||||
String where = "is_delete = '0' and device_code = '" + dto.getDevice_code() + "' and device_id != '" + dto.getDevice_id() + "'"; |
|
||||
|
|
||||
JSONObject jsonObject = wo.query(where).uniqueResult(0); |
|
||||
if (ObjectUtil.isNotEmpty(jsonObject)) { |
|
||||
throw new BadRequestException("编码已存在!"); |
|
||||
} |
|
||||
|
|
||||
|
|
||||
JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto)); |
|
||||
wo.update(json); |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
@Transactional(rollbackFor = Exception.class) |
|
||||
public void deleteAll(Long[] ids) { |
|
||||
WQLObject wo = WQLObject.getWQLObject("pdm_bi_device"); |
|
||||
for (Long device_id : ids) { |
|
||||
wo.delete("device_id = '" + device_id + "'"); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
public void changeActive(JSONObject json) { |
|
||||
String is_used = "1"; |
|
||||
if (StrUtil.equals("1", json.getString("is_used"))) { |
|
||||
is_used = "0"; |
|
||||
} |
|
||||
json.put("is_used", is_used); |
|
||||
WQLObject.getWQLObject("PDM_BI_Device").update(json); |
|
||||
} |
|
||||
|
|
||||
} |
|
Binary file not shown.
@ -1,74 +0,0 @@ |
|||||
import request from '@/utils/request' |
|
||||
|
|
||||
export function add(data) { |
|
||||
return request({ |
|
||||
url: 'api/device', |
|
||||
method: 'post', |
|
||||
data |
|
||||
}) |
|
||||
} |
|
||||
|
|
||||
export function del(ids) { |
|
||||
return request({ |
|
||||
url: 'api/device/', |
|
||||
method: 'delete', |
|
||||
data: ids |
|
||||
}) |
|
||||
} |
|
||||
|
|
||||
export function edit(data) { |
|
||||
return request({ |
|
||||
url: 'api/device', |
|
||||
method: 'put', |
|
||||
data |
|
||||
}) |
|
||||
} |
|
||||
|
|
||||
export function getWorkprocedure() { |
|
||||
return request({ |
|
||||
url: 'api/device/getWorkprocedure', |
|
||||
method: 'get' |
|
||||
}) |
|
||||
} |
|
||||
|
|
||||
export function getItemByDevice(data) { |
|
||||
return request({ |
|
||||
url: 'api/device/getItemByDevice', |
|
||||
method: 'post', |
|
||||
data |
|
||||
}) |
|
||||
} |
|
||||
|
|
||||
export function savaDeviceItem(data) { |
|
||||
return request({ |
|
||||
url: 'api/device/savaDeviceItem', |
|
||||
method: 'post', |
|
||||
data |
|
||||
}) |
|
||||
} |
|
||||
|
|
||||
export function getItemByDeviceId(data) { |
|
||||
return request({ |
|
||||
url: 'api/device/getItemByDeviceId', |
|
||||
method: 'post', |
|
||||
data |
|
||||
}) |
|
||||
} |
|
||||
|
|
||||
export function copyAdd(data) { |
|
||||
return request({ |
|
||||
url: 'api/device/copyAdd', |
|
||||
method: 'post', |
|
||||
data |
|
||||
}) |
|
||||
} |
|
||||
|
|
||||
export function changeActive(data) { |
|
||||
return request({ |
|
||||
url: 'api/device/changeActive', |
|
||||
method: 'put', |
|
||||
data |
|
||||
}) |
|
||||
} |
|
||||
|
|
||||
export default { add, edit, del, getWorkprocedure, getItemByDeviceId, copyAdd, changeActive } |
|
@ -1,156 +0,0 @@ |
|||||
<template> |
|
||||
<div class="app-container"> |
|
||||
<!--工具栏--> |
|
||||
<div class="head-container"> |
|
||||
<div v-if="crud.props.searchToggle"> |
|
||||
<!-- 搜索 --> |
|
||||
<label class="el-form-item-label">模糊搜索</label> |
|
||||
<el-input |
|
||||
v-model="query.search" |
|
||||
clearable |
|
||||
size="small" |
|
||||
placeholder="请输入设备编码或名称" |
|
||||
style="width: 220px;" |
|
||||
class="filter-item" |
|
||||
/> |
|
||||
<rrOperation :crud="crud" /> |
|
||||
</div> |
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'--> |
|
||||
<crudOperation :permission="permission" /> |
|
||||
<!--表单组件--> |
|
||||
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="500px"> |
|
||||
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="80px"> |
|
||||
<el-form-item label="设备编码" prop="device_code"> |
|
||||
<el-input v-model="form.device_code" style="width: 370px;" /> |
|
||||
</el-form-item> |
|
||||
<el-form-item label="设备名称" prop="device_name"> |
|
||||
<el-input v-model="form.device_name" style="width: 370px;" /> |
|
||||
</el-form-item> |
|
||||
<el-form-item label="设备型号"> |
|
||||
<el-input v-model="form.device_model" style="width: 370px;" /> |
|
||||
</el-form-item> |
|
||||
<el-form-item label="设备产能"> |
|
||||
<el-input v-model="form.productivity" type="number" oninput="value = value.replace(/[^\d]/g, '')" style="width: 370px;" /> |
|
||||
</el-form-item> |
|
||||
<el-form-item label="外部编码"> |
|
||||
<el-input v-model="form.extend_code" style="width: 370px;" /> |
|
||||
</el-form-item> |
|
||||
<el-form-item label="备注"> |
|
||||
<el-input v-model="form.remark" :rows="3" type="textarea" style="width: 370px;" /> |
|
||||
</el-form-item> |
|
||||
</el-form> |
|
||||
<div slot="footer" class="dialog-footer"> |
|
||||
<el-button type="text" @click="crud.cancelCU">取消</el-button> |
|
||||
<el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">确认</el-button> |
|
||||
</div> |
|
||||
</el-dialog> |
|
||||
<!--表格渲染--> |
|
||||
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" @selection-change="crud.selectionChangeHandler"> |
|
||||
<el-table-column type="selection" width="55" /> |
|
||||
<el-table-column prop="device_code" label="设备编码" /> |
|
||||
<el-table-column prop="device_name" label="设备名称" min-width="100" show-overflow-tooltip /> |
|
||||
<el-table-column prop="device_model" label="设备型号" min-width="100" show-overflow-tooltip > |
|
||||
<template slot-scope="scope"> |
|
||||
{{ dict.label.pdm_device_type[scope.row.device_model] }} |
|
||||
</template> |
|
||||
</el-table-column> |
|
||||
<el-table-column prop="productivity" label="设备产能" /> |
|
||||
<el-table-column label="是否启用" align="center" prop="is_used"> |
|
||||
<template slot-scope="scope"> |
|
||||
<el-switch |
|
||||
:value="format_is_used(scope.row.is_used)" |
|
||||
active-color="#409EFF" |
|
||||
inactive-color="#F56C6C" |
|
||||
@change="changeEnabled(scope.row, scope.row.is_used)" |
|
||||
/> |
|
||||
</template> |
|
||||
</el-table-column> |
|
||||
<el-table-column prop="remark" label="备注" /> |
|
||||
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right"> |
|
||||
<template slot-scope="scope"> |
|
||||
<udOperation |
|
||||
:data="scope.row" |
|
||||
:permission="permission" |
|
||||
/> |
|
||||
</template> |
|
||||
</el-table-column> |
|
||||
</el-table> |
|
||||
<!--分页组件--> |
|
||||
<pagination /> |
|
||||
</div> |
|
||||
</div> |
|
||||
</template> |
|
||||
|
|
||||
<script> |
|
||||
import crudDevice from '@/api/wms/pdm/device' |
|
||||
import CRUD, { presenter, header, form, crud } from '@crud/crud' |
|
||||
import rrOperation from '@crud/RR.operation' |
|
||||
import crudOperation from '@crud/CRUD.operation' |
|
||||
import udOperation from '@crud/UD.operation' |
|
||||
import pagination from '@crud/Pagination' |
|
||||
|
|
||||
const defaultForm = { device_id: null, device_code: null, device_name: null, device_model: null, workprocedure_id: null, extend_code: null, devicebill_id: null, remark: null, is_active: null, create_id: null, create_name: null, create_time: null, is_delete: null, productivity: null } |
|
||||
export default { |
|
||||
name: 'Device', |
|
||||
components: { pagination, crudOperation, rrOperation, udOperation }, |
|
||||
dicts: ['pdm_device_type'], |
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()], |
|
||||
cruds() { |
|
||||
return CRUD({ title: '生产设备', url: 'api/device', idField: 'device_id', sort: 'device_id,desc', |
|
||||
optShow: { |
|
||||
add: true, |
|
||||
edit: false, |
|
||||
del: false, |
|
||||
reset: true, |
|
||||
download: false |
|
||||
}, |
|
||||
crudMethod: { ...crudDevice }}) |
|
||||
}, |
|
||||
data() { |
|
||||
return { |
|
||||
permission: { |
|
||||
}, |
|
||||
rules: { |
|
||||
device_code: [ |
|
||||
{ required: true, message: '设备编码不能为空', trigger: 'blur' } |
|
||||
], |
|
||||
device_name: [ |
|
||||
{ required: true, message: '设备名称不能为空', trigger: 'blur' } |
|
||||
] |
|
||||
} |
|
||||
} |
|
||||
}, |
|
||||
methods: { |
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据 |
|
||||
[CRUD.HOOK.beforeRefresh]() { |
|
||||
return true |
|
||||
}, |
|
||||
changeEnabled(data, val) { |
|
||||
let msg = '此操作将停用设备,是否继续!' |
|
||||
if (val !== '1') { |
|
||||
msg = '此操作将启用设备,是否继续!' |
|
||||
} |
|
||||
this.$confirm(msg, '提示', { |
|
||||
confirmButtonText: '确定', |
|
||||
cancelButtonText: '取消', |
|
||||
type: 'warning' |
|
||||
}).then(() => { |
|
||||
crudDevice.changeActive(data).then(res => { |
|
||||
this.crud.toQuery() |
|
||||
this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS) |
|
||||
}).catch(() => { |
|
||||
data.is_used = !data.is_used |
|
||||
}) |
|
||||
}).catch(() => { |
|
||||
}) |
|
||||
}, |
|
||||
format_is_used(is_used) { |
|
||||
return is_used === '1' |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
</script> |
|
||||
|
|
||||
<style scoped> |
|
||||
|
|
||||
</style> |
|
Loading…
Reference in new issue