工序管理

公用下拉列表
字典修改
菜单必填修改
This commit is contained in:
fl 2025-03-31 18:19:07 +08:00
parent 55f292ddd1
commit d98157c169
18 changed files with 685 additions and 18 deletions

View File

@ -0,0 +1,107 @@
package com.bonus.imgTool.basic.controller;
import com.bonus.imgTool.annotation.DecryptAndVerify;
import com.bonus.imgTool.annotation.LogAnnotation;
import com.bonus.imgTool.basic.service.ProcessService;
import com.bonus.imgTool.basic.vo.ProcessVo;
import com.bonus.imgTool.basic.vo.dto.ProcessDto;
import com.bonus.imgTool.system.vo.EncryptedReq;
import com.bonus.imgTool.utils.ServerResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* @author fly
*/
@RestController
@RequestMapping("/basic/process/")
@Slf4j
public class ProcessController {
@Resource
private ProcessService service;
@GetMapping(value = "getProcessList")
@DecryptAndVerify(decryptedClass = ProcessDto.class)//加解密统一管理
@LogAnnotation(operModul = "工序管理", operation = "查询列表", operDesc = "系统级事件",operType="查询")
// @PreAuthorize("@pms.hasPermission('sys:process:query')" )
public ServerResponse getProcessList(EncryptedReq<ProcessDto> data) {
try {
List<ProcessVo> list = service.getProcessList(data.getData());
return ServerResponse.createSuccess(list);
}catch (Exception e){
log.error(e.toString(),e);
}
return ServerResponse.createErroe("操作失败");
}
@PostMapping(value = "insertProcess")
@DecryptAndVerify(decryptedClass = ProcessDto.class)//加解密统一管理
@LogAnnotation(operModul = "工序管理", operation = "新增工序", operDesc = "系统级事件",operType="新增")
// @PreAuthorize("@pms.hasPermission('sys:process:add')" )
public ServerResponse insertProcess(EncryptedReq<ProcessDto> data) {
try {
ProcessDto bean = data.getData();
int i = service.getProcessById(bean);
if (i>0) {
return ServerResponse.createErroe("工序"+bean.getProcessName() + ""+bean.getProfessionName()+"专业下已存在");
}
return service.insertProcess(bean);
}catch (Exception e){
log.error(e.toString(),e);
}
return ServerResponse.createErroe("操作失败");
}
@PostMapping(value = "updateProcess")
@DecryptAndVerify(decryptedClass = ProcessDto.class)//加解密统一管理
@LogAnnotation(operModul = "工序管理", operation = "修改工序", operDesc = "系统级事件",operType="修改")
// @PreAuthorize("@pms.hasPermission('sys:process:update')" )
public ServerResponse updateProcess(EncryptedReq<ProcessDto> data) {
try {
ProcessDto bean = data.getData();
int i = service.getProcessById(bean);
if (i>0) {
return ServerResponse.createErroe("工序"+bean.getProcessName() + ""+bean.getProfessionName()+"专业下已存在");
}
return service.updateProcess(bean);
}catch (Exception e){
log.error(e.toString(),e);
}
return ServerResponse.createErroe("操作失败");
}
@PostMapping(value = "updateProcessStatus")
@DecryptAndVerify(decryptedClass = ProcessDto.class)//加解密统一管理
@LogAnnotation(operModul = "工序管理", operation = "工序状态", operDesc = "系统级事件",operType="修改")
// @PreAuthorize("@pms.hasPermission('sys:process:update')" )
public ServerResponse updateProcessStatus(EncryptedReq<ProcessDto> data) {
try {
ProcessDto bean = data.getData();
return service.updateProcessStatus(bean);
}catch (Exception e){
log.error(e.toString(),e);
}
return ServerResponse.createErroe("操作失败");
}
@DeleteMapping(value = "delProcessById")
@DecryptAndVerify(decryptedClass = ProcessDto.class)//加解密统一管理
@LogAnnotation(operModul = "工序管理", operation = "删除工序", operDesc = "系统级事件",operType="删除")
// @PreAuthorize("@pms.hasPermission('sys:process:update')" )
public ServerResponse delProcessById(EncryptedReq<ProcessDto> data) {
try {
ProcessDto bean = data.getData();
return service.delProcessById(bean);
}catch (Exception e){
log.error(e.toString(),e);
}
return ServerResponse.createErroe("操作失败");
}
}

View File

@ -0,0 +1,22 @@
package com.bonus.imgTool.basic.dao;
import com.bonus.imgTool.basic.vo.ProcessVo;
import com.bonus.imgTool.basic.vo.dto.ProcessDto;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface ProcessDao {
List<ProcessVo> getProcessList(ProcessDto data);
int insertProcess(ProcessDto bean);
int getProcessById(ProcessDto bean);
int updateProcess(ProcessDto bean);
int updateProcessStatus(ProcessDto bean);
int delProcessById(ProcessDto bean);
}

View File

@ -0,0 +1,23 @@
package com.bonus.imgTool.basic.service;
import com.bonus.imgTool.basic.vo.ProcessVo;
import com.bonus.imgTool.basic.vo.dto.ProcessDto;
import com.bonus.imgTool.utils.ServerResponse;
import java.util.List;
public interface ProcessService {
List<ProcessVo> getProcessList(ProcessDto data);
int getProcessById(ProcessDto bean);
ServerResponse insertProcess(ProcessDto bean);
ServerResponse updateProcess(ProcessDto bean);
ServerResponse updateProcessStatus(ProcessDto bean);
ServerResponse delProcessById(ProcessDto bean);
}

View File

@ -0,0 +1,89 @@
package com.bonus.imgTool.basic.service.impl;
import com.bonus.imgTool.basic.dao.ProcessDao;
import com.bonus.imgTool.basic.service.ProcessService;
import com.bonus.imgTool.basic.vo.ProcessVo;
import com.bonus.imgTool.basic.vo.dto.ProcessDto;
import com.bonus.imgTool.system.vo.LoginUser;
import com.bonus.imgTool.utils.ServerResponse;
import com.bonus.imgTool.utils.UserUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class ProcessServiceImpl implements ProcessService {
private static final Logger log = LoggerFactory.getLogger("SelectServiceImpl");
@Resource
private ProcessDao dao;
@Override
public List<ProcessVo> getProcessList(ProcessDto data) {
return dao.getProcessList(data);
}
@Override
public int getProcessById(ProcessDto bean) {
return dao.getProcessById(bean);
}
@Override
public ServerResponse insertProcess(ProcessDto bean) {
LoginUser loginUser = UserUtil.getLoginUser();
bean.setCreateUserId(loginUser.getId());
bean.setCreateUserName(loginUser.getUsername());
int num= dao.insertProcess(bean);
if(num>0){
return ServerResponse.createSuccess("新增成功",num);
}else{
return ServerResponse.createErroe("新增失败");
}
}
@Override
public ServerResponse updateProcess(ProcessDto bean) {
LoginUser loginUser = UserUtil.getLoginUser();
bean.setUpdateUserId(loginUser.getId());
bean.setUpdateUserName(loginUser.getUsername());
int num= dao.updateProcess(bean);
if(num>0){
return ServerResponse.createSuccess("修改成功",num);
}else{
return ServerResponse.createErroe("修改失败");
}
}
@Override
public ServerResponse updateProcessStatus(ProcessDto bean) {
LoginUser loginUser = UserUtil.getLoginUser();
bean.setUpdateUserId(loginUser.getId());
bean.setUpdateUserName(loginUser.getUsername());
int num= dao.updateProcessStatus(bean);
if(num>0){
return ServerResponse.createSuccess("修改工序状态成功",num);
}else{
return ServerResponse.createErroe("修改工序状态失败");
}
}
@Override
public ServerResponse delProcessById(ProcessDto bean) {
LoginUser loginUser = UserUtil.getLoginUser();
bean.setUpdateUserId(loginUser.getId());
bean.setUpdateUserName(loginUser.getUsername());
int num= dao.delProcessById(bean);
if(num>0){
return ServerResponse.createSuccess("删除工序成功",num);
}else{
return ServerResponse.createErroe("删除工序失败");
}
}
}

View File

@ -0,0 +1,52 @@
package com.bonus.imgTool.basic.vo;
import lombok.Data;
/**
* @className:SelectDto
* @author:cwchen
* @date:2024-07-19-13:14
* @version:1.0
* @description:下拉选-dto
*/
@Data
public class ProcessVo {
/**
* 专业id
*/
private Long professionId;
/**
* 专业名称
*/
private String professionName;
/**
* 工序id
*/
private Long processId;
/**
* 工序名称
*/
private String processName;
/**
* 状态
*/
private String status;
/**
* 创建时间
*/
private String createTime;
/**
* 关键字
*/
private String keyWord;
}

View File

@ -0,0 +1,67 @@
package com.bonus.imgTool.basic.vo.dto;
import lombok.Data;
/**
* @className:SelectDto
* @author:cwchen
* @date:2024-07-19-13:14
* @version:1.0
* @description:下拉选-dto
*/
@Data
public class ProcessDto {
/**
* 专业id
*/
private Long professionId;
/**
* 专业名称
*/
private String professionName;
/**
* 工序id
*/
private Long processId;
/**
* 工序名称
*/
private String processName;
/**
* 状态
*/
private String status;
/**
* 关键字
*/
private String keyWord;
/**
* 创建人
*/
private Long createUserId;
/**
* 创建人
*/
private String createUserName;
/**
* 修改人
*/
private Long updateUserId;
/**
* 修改人
*/
private String updateUserName;
}

View File

@ -0,0 +1,89 @@
package com.bonus.imgTool.system.controller;
import com.bonus.imgTool.annotation.DecryptAndVerify;
import com.bonus.imgTool.annotation.LogAnnotation;
import com.bonus.imgTool.system.service.DictService;
import com.bonus.imgTool.system.service.SelectService;
import com.bonus.imgTool.system.vo.Dict;
import com.bonus.imgTool.system.vo.EncryptedReq;
import com.bonus.imgTool.system.vo.SelectVo;
import com.bonus.imgTool.system.vo.dto.SelectDto;
import com.bonus.imgTool.utils.ServerResponse;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
* @author fly
*/
@RestController
@RequestMapping("/sys/select/")
@Slf4j
public class SelectController {
@Resource
private SelectService service;
@PostMapping(value = "getDictSelect")
@DecryptAndVerify(decryptedClass = SelectDto.class)//加解密统一管理
@LogAnnotation(operModul = "字典管理", operation = "查询列表", operDesc = "系统级事件",operType="查询")
public ServerResponse getDictSelect(EncryptedReq<SelectDto> data) {
try {
List<SelectVo> list = service.getDictSelect(data.getData());
// List<SelectVo> list = Lists.newArrayList();
// setDictsList(0L, dictsAll, list);
return ServerResponse.createSuccess(list);
}catch (Exception e){
log.error(e.toString(),e);
}
return ServerResponse.createErroe("操作失败");
}
@GetMapping(value = "getProfessionSelect")
@DecryptAndVerify(decryptedClass = SelectDto.class)//加解密统一管理
@LogAnnotation(operModul = "专业查询", operation = "下拉框", operDesc = "系统级事件",operType="查询")
public ServerResponse getProfessionSelect(EncryptedReq<SelectDto> data) {
try {
List<SelectVo> list = service.getProfessionSelect(data.getData());
return ServerResponse.createSuccess(list);
}catch (Exception e){
log.error(e.toString(),e);
}
return ServerResponse.createErroe("操作失败");
}
@GetMapping(value = "getProcessSelect")
@DecryptAndVerify(decryptedClass = SelectDto.class)//加解密统一管理
@LogAnnotation(operModul = "工序查询", operation = "下拉框", operDesc = "系统级事件",operType="查询")
public ServerResponse getProcessSelect(EncryptedReq<SelectDto> data) {
try {
List<SelectVo> list = service.getProcessSelect(data.getData());
return ServerResponse.createSuccess(list);
}catch (Exception e){
log.error(e.toString(),e);
}
return ServerResponse.createErroe("操作失败");
}
private void setDictsList(Long pId, List<Dict> dictsAll, List<Dict> list) {
for (Dict bean : dictsAll) {
if (bean.getParentId().equals(pId)) {
list.add(bean);
if (dictsAll.stream().filter(p -> p.getParentId().equals(bean.getId())).findAny() != null) {
setDictsList(bean.getId(), dictsAll, list);
}
}
}
}
}

View File

@ -0,0 +1,17 @@
package com.bonus.imgTool.system.dao;
import com.bonus.imgTool.system.vo.SelectVo;
import com.bonus.imgTool.system.vo.dto.SelectDto;
import org.apache.ibatis.annotations.*;
import java.util.List;
import java.util.Map;
@Mapper
public interface SelectDao {
List<SelectVo> getDictSelect(@Param("bean")SelectDto data);
List<SelectVo> getProfessionSelect(SelectDto data);
List<SelectVo> getProcessSelect(SelectDto data);
}

View File

@ -0,0 +1,18 @@
package com.bonus.imgTool.system.service;
import com.bonus.imgTool.system.vo.Dict;
import com.bonus.imgTool.system.vo.SelectVo;
import com.bonus.imgTool.system.vo.dto.SelectDto;
import com.bonus.imgTool.utils.ServerResponse;
import java.util.List;
public interface SelectService {
List<SelectVo> getDictSelect(SelectDto data);
List<SelectVo> getProfessionSelect(SelectDto data);
List<SelectVo> getProcessSelect(SelectDto data);
}

View File

@ -0,0 +1,43 @@
package com.bonus.imgTool.system.service.impl;
import com.bonus.imgTool.system.dao.DictDao;
import com.bonus.imgTool.system.dao.SelectDao;
import com.bonus.imgTool.system.service.DictService;
import com.bonus.imgTool.system.service.SelectService;
import com.bonus.imgTool.system.vo.Dict;
import com.bonus.imgTool.system.vo.SelectVo;
import com.bonus.imgTool.system.vo.dto.SelectDto;
import com.bonus.imgTool.utils.ServerResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class SelectServiceImpl implements SelectService {
private static final Logger log = LoggerFactory.getLogger("SelectServiceImpl");
@Resource
private SelectDao dao;
@Override
public List<SelectVo> getDictSelect(SelectDto data) {
return dao.getDictSelect(data);
}
@Override
public List<SelectVo> getProfessionSelect(SelectDto data) {
return dao.getProfessionSelect(data);
}
@Override
public List<SelectVo> getProcessSelect(SelectDto data) {
return dao.getProcessSelect(data);
}
}

View File

@ -0,0 +1,13 @@
package com.bonus.imgTool.system.vo;
import com.bonus.imgTool.base.entity.PageEntity;
import lombok.Data;
@Data
public class SelectVo extends PageEntity {
private static final long serialVersionUID = -2431140186410912787L;
private Long id;
private String name;
}

View File

@ -12,9 +12,13 @@ import lombok.Data;
@Data
public class SelectDto {
/** 字段编码*/
private String code;
private Long id;
private Long pid;
/** 字段编码*/
private String code;
}

View File

@ -37,7 +37,7 @@ spring.http.multipart.maxRequestSize=10000Mb
token.expire.seconds=7200
#\u6587\u4EF6\u4E0A\u4F20
spring.servlet.multipart.enabled=true
zhly.aq.enable=true
zhly.aq.enable=false
#\u6587\u4EF6\u8FC7\u6EE4
zhly.aq.file.suffix=woff,js,css,html,woff2,lang,map,png,jpg
#\u9759\u6001\u8D44\u6E90 \u4E0D\u62E6\u622A

View File

@ -0,0 +1,84 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bonus.imgTool.basic.dao.ProcessDao">
<sql id="where">
<where>
</where>
</sql>
<insert id="insertProcess">
insert into tb_gx(gx_id,gx_name,major_id,create_user_id,create_user_name)
values(#{processId},#{processName},#{professionId},#{createUserId},#{createUserName})
</insert>
<update id="updateProcess">
update tb_gx
<set>
<if test="processName != null">
gx_name = #{processName},
</if>
<if test="professionId != null">
major_id = #{professionId},
</if>
update_user_id = #{updateUserId},
update_user_name = #{updateUserName}
</set>
where gx_id = #{processId}
</update>
<update id="updateProcessStatus">
update tb_gx
<set>
<if test="status != null">
is_use = #{status},
</if>
update_user_id = #{updateUserId},
update_user_name = #{updateUserName}
</set>
where gx_id = #{processId}
</update>
<delete id="delProcessById">
update tb_gx
<set>
is_active= 0,
update_user_id = #{updateUserId},
update_user_name = #{updateUserName}
</set>
where gx_id = #{processId}
</delete>
<select id="getProcessList" resultType="com.bonus.imgTool.basic.vo.ProcessVo">
SELECT
tg.gx_id as processId,
tg.gx_name as processName,
tg.major_id as professionId,
sd.dict_name as professionName,
is_use as status,
tg.create_time
FROM
tb_gx tg
LEFT JOIN sys_distinct sd ON sd.p_id = 108
AND tg.major_id = sd.dict_value and del_flag = 0
<where>
tg.is_active = 1
<if test="keyWord != null and keyWord != ''">
and
(
locate(#{keyWord},tg.gx_name)
or locate(#{keyWord},sd.dict_name)
)
</if>
</where>
</select>
<select id="getProcessById" resultType="java.lang.Integer">
select count(1) from
tb_gx where major_id = #{professionId} and gx_name = #{processName} and is_active = 1
<if test="processId != null">
and gx_id != #{processId}
</if>
</select>
</mapper>

View File

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bonus.imgTool.system.dao.SelectDao">
<sql id="where">
<where>
</where>
</sql>
<select id="getDictSelect" resultType="com.bonus.imgTool.system.vo.SelectVo">
select
t.id,
t.dict_name as name
from sys_distinct t
<where>
t.del_flag = 0
<if test="bean.pid != null">
and t.p_id = #{bean.pid}
</if>
</where>
order by t.dict_sort
</select>
<select id="getProfessionSelect" resultType="com.bonus.imgTool.system.vo.SelectVo">
select
t.id,
t.dict_name as name
from sys_distinct t
where p_id in (
select id from sys_distinct where dict_code = 'profession'
)
</select>
<select id="getProcessSelect" resultType="com.bonus.imgTool.system.vo.SelectVo">
select
t.gx_id as id,
t.gx_name as name
from tb_gx t
<where>
major_id = #{pid}
</where>
</select>
</mapper>

View File

@ -84,10 +84,10 @@ function getDeviceChildTypeSelect() {
}
// 字典-下拉选
function getDistinctSelect() {
function getDistinctSelect(obj) {
let data = [];
let url = dataUrl + "/sys/select/getDistinctSelect"
let obj = {}
let url = dataUrl + "/sys/select/getDictSelect"
// let obj = {}
let params = {
encryptedData: encryptCBC(JSON.stringify(obj))
}

View File

@ -3,7 +3,8 @@ let distinctList = [];
function setParams(params) {
idParam = JSON.parse(params).id;
distinctList = getDistinctSelect();
let obj = {pid:0}
distinctList = getDistinctSelect(obj);
setSelectValue(distinctList, 'parentId');
layui.use(['form', 'layer'], function () {
layer = layui.layer;

View File

@ -12,7 +12,7 @@
<form class="layui-form form-horizontal" onsubmit="return false" id="form">
<fieldset>
<div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>上级菜单</label>
<label class="layui-form-label">上级菜单</label>
<div class="layui-input-inline">
<select id="parentId" name="parentId" class="form-control input-sm layui-select" lay-verify="required"></select>
</div>
@ -41,7 +41,7 @@
</div>
</div>
<div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label"><i style="padding: 0 10px;" id="lj">*</i>链接</label>
<label class="layui-form-label">链接</label>
<div class="layui-input-inline">
<input class="form-control layui-input" placeholder="名称" type="text" name="href" id="href" maxlength="80">
</div>
@ -98,38 +98,31 @@
console.log($("#type").val())
if ($("#type").val() === "1"){
$("#href").attr("lay-verify", "required");
$("#href").removeAttr("lay-verify");
document.getElementById("qx").style.display = "none";
}else if ($("#type").val() === "2") {
$("#permission").attr("lay-verify", "required");
document.getElementById("lj").style.display = "none";
}else {
$("#href").removeAttr("lay-verify");
$("#permission").removeAttr("lay-verify");
document.getElementById("qx").style.display = "none";
document.getElementById("lj").style.display = "none";
}
form.on('select(type)', function(data){
debugger
console.log(data.value)
if (data.value === "1") {
$("#href").attr("lay-verify", "required");
$("#href").removeAttr("lay-verify");
$("#permission").removeAttr("lay-verify");
document.getElementById("qx").style.display = "none";
document.getElementById("lj").style.display = "inline";
} else if (data.value === "2") {
$("#href").removeAttr("lay-verify");
$("#permission").attr("lay-verify", "required");
document.getElementById("lj").style.display = "none";
document.getElementById("qx").style.display = "inline";
} else {
$("#href").removeAttr("lay-verify");
$("#permission").removeAttr("lay-verify");
document.getElementById("qx").style.display = "none";
document.getElementById("lj").style.display = "none";
}
});