Merge remote-tracking branch 'origin/master'

This commit is contained in:
fl 2025-04-01 17:28:05 +08:00
commit 9a0922bdb1
10 changed files with 151 additions and 71 deletions

View File

@ -5,13 +5,17 @@ import com.bonus.imgTool.annotation.LogAnnotation;
import com.bonus.imgTool.basic.service.ProcessService; import com.bonus.imgTool.basic.service.ProcessService;
import com.bonus.imgTool.basic.vo.ProcessVo; import com.bonus.imgTool.basic.vo.ProcessVo;
import com.bonus.imgTool.basic.vo.dto.ProcessDto; import com.bonus.imgTool.basic.vo.dto.ProcessDto;
import com.bonus.imgTool.model.SysUser;
import com.bonus.imgTool.system.vo.EncryptedReq; import com.bonus.imgTool.system.vo.EncryptedReq;
import com.bonus.imgTool.utils.ServerResponse; import com.bonus.imgTool.utils.ServerResponse;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
@ -30,13 +34,29 @@ public class ProcessController {
@LogAnnotation(operModul = "工序管理", operation = "查询列表", operDesc = "系统级事件",operType="查询") @LogAnnotation(operModul = "工序管理", operation = "查询列表", operDesc = "系统级事件",operType="查询")
// @PreAuthorize("@pms.hasPermission('sys:process:query')" ) // @PreAuthorize("@pms.hasPermission('sys:process:query')" )
public ServerResponse getProcessList(EncryptedReq<ProcessDto> data) { public ServerResponse getProcessList(EncryptedReq<ProcessDto> data) {
PageHelper.startPage(data.getData().getPage(), data.getData().getLimit());
try { try {
List<ProcessVo> list = service.getProcessList(data.getData()); List<ProcessVo> list = service.getProcessList(data.getData());
return ServerResponse.createSuccess(list); PageInfo<ProcessVo> pageInfo = new PageInfo<>(list);
return ServerResponse.createSuccessPage(pageInfo,data.getData().getPage(),data.getData().getLimit());
}catch (Exception e){ }catch (Exception e){
log.error(e.toString(),e); log.error(e.toString(),e);
} }
return ServerResponse.createErroe("操作失败"); return ServerResponse.createErrorPage(data.getData().getPage(),data.getData().getLimit());
}
@GetMapping(value = "getProcessDetail")
@DecryptAndVerify(decryptedClass = ProcessDto.class)//加解密统一管理
@LogAnnotation(operModul = "工序管理", operation = "查询单个工序",operType="查询")
// @PreAuthorize("@pms.hasPermission('sys:process:query')" )
public ServerResponse getProcessDetail(EncryptedReq<ProcessDto> data) {
try {
ProcessVo processVo = service.getProcessDetail(data.getData());
return ServerResponse.createSuccess(processVo);
}catch (Exception e){
log.error(e.toString(),e);
}
return ServerResponse.createErroe("获取数据失败");
} }
@PostMapping(value = "insertProcess") @PostMapping(value = "insertProcess")

View File

@ -9,6 +9,7 @@ import java.util.List;
@Mapper @Mapper
public interface ProcessDao { public interface ProcessDao {
List<ProcessVo> getProcessList(ProcessDto data); List<ProcessVo> getProcessList(ProcessDto data);
ProcessVo getProcessDetail(ProcessDto data);
int insertProcess(ProcessDto bean); int insertProcess(ProcessDto bean);

View File

@ -10,6 +10,7 @@ import java.util.List;
public interface ProcessService { public interface ProcessService {
List<ProcessVo> getProcessList(ProcessDto data); List<ProcessVo> getProcessList(ProcessDto data);
ProcessVo getProcessDetail(ProcessDto data);
int getProcessById(ProcessDto bean); int getProcessById(ProcessDto bean);

View File

@ -29,6 +29,11 @@ public class ProcessServiceImpl implements ProcessService {
return dao.getProcessList(data); return dao.getProcessList(data);
} }
@Override
public ProcessVo getProcessDetail(ProcessDto data) {
return dao.getProcessDetail(data);
}
@Override @Override
public int getProcessById(ProcessDto bean) { public int getProcessById(ProcessDto bean) {
return dao.getProcessById(bean); return dao.getProcessById(bean);

View File

@ -1,5 +1,6 @@
package com.bonus.imgTool.basic.vo.dto; package com.bonus.imgTool.basic.vo.dto;
import com.bonus.imgTool.base.entity.PageEntity;
import lombok.Data; import lombok.Data;
/** /**
@ -10,7 +11,7 @@ import lombok.Data;
* @description:下拉选-dto * @description:下拉选-dto
*/ */
@Data @Data
public class ProcessDto { public class ProcessDto extends PageEntity {
/** /**

View File

@ -9,8 +9,8 @@
</sql> </sql>
<insert id="insertProcess"> <insert id="insertProcess">
insert into tb_gx(gx_id,gx_name,major_id,create_user_id,create_user_name) insert into tb_gx(gx_name,major_id,create_user_id,create_user_name)
values(#{processId},#{processName},#{professionId},#{createUserId},#{createUserName}) values(#{processName},#{professionId},#{createUserId},#{createUserName})
</insert> </insert>
<update id="updateProcess"> <update id="updateProcess">
@ -55,7 +55,7 @@
tg.major_id as professionId, tg.major_id as professionId,
sd.dict_name as professionName, sd.dict_name as professionName,
is_use as status, is_use as status,
tg.create_time tg.create_time as createTime
FROM FROM
tb_gx tg tb_gx tg
LEFT JOIN sys_distinct sd ON sd.p_id = 108 LEFT JOIN sys_distinct sd ON sd.p_id = 108
@ -79,6 +79,23 @@
and gx_id != #{processId} and gx_id != #{processId}
</if> </if>
</select> </select>
<select id="getProcessDetail" 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 as createTime
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
and tg.gx_id = #{processId}
</where>
</select>
</mapper> </mapper>

View File

@ -6,7 +6,7 @@ let majorList;
function setParams(params) { function setParams(params) {
console.log(params) console.log(params)
idParam = JSON.parse(params).id; idParam = JSON.parse(params).processId;
layui.config({ layui.config({
base: "../../../js/layui-v2.6.8/dtree/", //此处路径请自行处理, 可以使用绝对路径 base: "../../../js/layui-v2.6.8/dtree/", //此处路径请自行处理, 可以使用绝对路径
}).extend({ }).extend({
@ -18,21 +18,21 @@ function setParams(params) {
dtree = layui.dtree; dtree = layui.dtree;
var $ = layui.jquery; var $ = layui.jquery;
majorList = getMajorSelected(); majorList = getMajorSelected();
if (idParam) {
getProcessById();
}
// form.render(); // form.render();
form.render("checkbox","select");//重新渲染页面checkbox控件 form.render("checkbox", "select");//重新渲染页面checkbox控件
form.on('submit(formData)', function (data) { form.on('submit(formData)', function (data) {
data.field.id = $('#id').val(); var str = $('#professionName').val();
console.log( data.field.orgId_select_nodeId); let professionId = str.split(",")[0];
let professionName = str.split(",")[1];
let major = $('#major').val(); data.field.professionId = professionId;
if (!major) { data.field.professionName = professionName;
return layer.alert("请选择专业名", {icon: 2}) if (idParam) {
} data.field.processId = idParam;
let processes = $('#processes').val();
if (!processes) {
return layer.alert("请输入工序名", {icon: 2})
} }
data.field.status = 1;
saveData(data); saveData(data);
}); });
@ -45,14 +45,14 @@ function setParams(params) {
*/ */
function getMajorSelected() { function getMajorSelected() {
let url = ctxPath + '/dicts/type'; let url = ctxPath + '/dicts/type';
let obj = {"type":"profession"} let obj = {"type": "profession"}
let params = { let params = {
encryptedData: encryptCBC(JSON.stringify(obj)) encryptedData: encryptCBC(JSON.stringify(obj))
} }
ajaxRequest(url, "POST", params, true, function () { ajaxRequest(url, "POST", params, false, function () {
}, function (result) { }, function (result) {
if (result.code === 200) { if (result.code === 200) {
setSelectValue(result.data, 'major'); setSelectValue(result.data, 'professionName');
} else { } else {
layer.alert(result.msg, {icon: 2}) layer.alert(result.msg, {icon: 2})
} }
@ -62,12 +62,13 @@ function getMajorSelected() {
} }
function setSelectValue(data){ function setSelectValue(data) {
let html = '<option value="" selected>请选择</option>'; let html = '<option value="" selected>请选择</option>';
$.each(data, function (index, item) { $.each(data, function (index, item) {
html += '<option value="' + item.id + '">' + item.dictName + '</option>'; let optionValue = item.dictValue + ',' + item.dictName;
html += '<option value="' + optionValue + '">' + item.dictName + '</option>';
}) })
$('#major').empty().append(html); $('#professionName').empty().append(html);
layui.form.render(); layui.form.render();
} }
@ -78,16 +79,20 @@ function saveData2() {
// 保存数据 // 保存数据
function saveData(data) { function saveData(data) {
let loadingMsg = layer.msg('数据上传中,请稍候...', {icon: 16, scrollbar: false, time: 0}); let loadingMsg = layer.msg('数据上传中,请稍候...', {icon: 16, scrollbar: false, time: 0});
let url = dataUrl + "/users/addTemp"; let url = dataUrl + "/basic/process/insertProcess";
let params = data.field; let params = data.field;
var arr_box = [];//固定复选框 var arr_box = [];//固定复选框
$('#cbGuDing input[type=checkbox]:checked').each(function () { $('#cbGuDing input[type=checkbox]:checked').each(function () {
arr_box.push($(this).val()); arr_box.push($(this).val());
}); });
console.log(arr_box) console.log(arr_box)
/* params={ if (params.processId != null) {
encryptedData:encryptCBC(JSON.stringify(params)) data.field.status = null;
}*/ url = dataUrl + "/basic/process/updateProcess";
}
params = {
encryptedData: encryptCBC(JSON.stringify(params))
}
ajaxRequest(url, "POST", params, true, function () { ajaxRequest(url, "POST", params, true, function () {
$('.save').addClass("layui-btn-disabled").attr("disabled", true); $('.save').addClass("layui-btn-disabled").attr("disabled", true);
$('.cancel').addClass("layui-btn-disabled").attr("disabled", true); $('.cancel').addClass("layui-btn-disabled").attr("disabled", true);
@ -108,6 +113,44 @@ function saveData(data) {
error(xhr) error(xhr)
}); });
} }
// 根据id获取用户信息
function getProcessById() {
let loadingMsg = layer.msg("数据加载中,请稍候...", {icon: 16, scrollbar: false, time: 0,});
let url = dataUrl + "/basic/process/getProcessDetail";
let params = {
processId: idParam
}
console.log(params)
params = {
encryptedData: encryptCBC(JSON.stringify(params))
}
ajaxRequest(url, "GET", params, true, function () {
}, function (result) {
layer.close(loadingMsg); // 关闭提示层
if (result.code === 200) {
console.log(result)
setFormData(result.data);
} else if (result.code === 500) {
layer.alert(result.msg, {icon: 2})
}
}, function (xhr) {
layer.close(loadingMsg); // 关闭提示层
error(xhr)
});
}
// 设置表单内容
function setFormData(data) {
console.log("data:", data)
if (data) {
$('#processName').val(data.processName)
let optionValue = data.professionId + ',' + data.professionName;
$('#professionName').val(optionValue); // 使用 jQuery 的 .val() 方法设置选中值
form.render('select');
}
}
// 关闭页面 // 关闭页面
function closePage(type) { function closePage(type) {
let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引 let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引

View File

@ -14,22 +14,22 @@ layui.config({
layui.form.render(); layui.form.render();
pages(1, 10, 1); pages(1, 10, 1);
form.on('switch(is-state)', function (obj) { form.on('switch(is-state)', function (obj) {
console.log(obj); console.log(JSON.stringify(obj) + "obj");
let url = dataUrl + "/users/updateEnableState"; let url = dataUrl + "/basic/process/updateProcessStatus";
let params = { let params = {
'id': this.value, 'processId': obj.value,
'state': obj.elem.checked ? 1 : 0 'status': obj.elem.checked ? 1 : 0
}
params={
encryptedData:encryptCBC(JSON.stringify(params))
} }
// params={
// encryptedData:encryptCBC(JSON.stringify(params))
// }
ajaxRequest(url, "POST", params, true, function () {}, function (result) { ajaxRequest(url, "POST", params, true, function () {}, function (result) {
console.log(result) console.log(result)
reloadData(); reloadData();
if (result.status === 200) { if (result.status === 200) {
parent.layer.msg(result.data, {icon: 1}) parent.layer.msg("操作成功", {icon: 1})
} else if (result.status === 204) { } else if (result.status === 204) {
parent.layer.alert(result.msg, {icon: 2}) parent.layer.alert("操作失败", {icon: 2})
} }
}, function (xhr) { }, function (xhr) {
error(xhr) error(xhr)
@ -39,8 +39,8 @@ layui.config({
function pages(pageNum, pageSize, typeNum) { function pages(pageNum, pageSize, typeNum) {
let params = getReqParams(pageNum, pageSize, typeNum); let params = getReqParams(pageNum, pageSize, typeNum);
let url = dataUrl + "/users/getList" let url = dataUrl + "/basic/process/getProcessList"
ajaxRequest(url, "POST", params, true, function () { ajaxRequest(url, "GET", params, true, function () {
}, function (result) { }, function (result) {
console.log(result); console.log(result);
if (result.code === 200) { if (result.code === 200) {
@ -94,17 +94,17 @@ function initTable(dataList, limit, page) {
return (page - 1) * limit + d.LAY_INDEX; return (page - 1) * limit + d.LAY_INDEX;
} }
}, },
{field: "loginName", title: "专业", unresize: true, align: "center"}, {field: "professionName", title: "专业", unresize: true, align: "center"},
{field: "username", title: "工序", unresize: true, align: "center"}, {field: "processName", title: "工序", unresize: true, align: "center"},
{field: "state", title: "状态", align: "center",templet: '#is-state'}, {field: "status", title: "状态", align: "center",templet: '#is-state'},
{field: "createTime", title: "创建时间", align: "center",templet: 'center'}, {field: "createTime", title: "创建时间", align: "center",templet: 'center'},
{title: "操作", unresize: true, width: 300, align: "center", {title: "操作", unresize: true, width: 300, align: "center",
templet: function (d) { templet: function (d) {
let html = ''; let html = '';
// let updaetpwd="<a class=\"layui-icon layui-icon-password\" style='cursor:pointer;' title='修改密码' onclick=\"resetPwd('" + d.id + "')\"></a>"; // let updaetpwd="<a class=\"layui-icon layui-icon-password\" style='cursor:pointer;' title='修改密码' onclick=\"resetPwd('" + d.id + "')\"></a>";
let del="<a class=\"layui-icon layui-icon-delete\" style='cursor:pointer;' title='删除' onclick=\"delData('" + d.id + "')\"></a>" let del="<a class=\"layui-icon layui-icon-delete\" style='cursor:pointer;' title='删除' onclick=\"delData('" + d.processId + "')\"></a>"
let edit="<a class=\"layui-icon layui-icon-edit\" style='cursor:pointer;' title='修改' onclick=\"addProcesses('" + d.id + "')\"></a>"; let edit="<a class=\"layui-icon layui-icon-edit\" style='cursor:pointer;' title='修改' onclick=\"addProcesses('" + d.processId + "')\"></a>";
html=edit+del; html=edit+del;
if(d.delFlag==1){ if(d.delFlag==1){
return ''; return '';
@ -174,31 +174,35 @@ function reloadData() {
openIframe2("addMajorTemp", title, "child/addMajorForm.html", '800px', '200px', param); openIframe2("addMajorTemp", title, "child/addMajorForm.html", '800px', '200px', param);
}*/ }*/
//新增/修改工序 //新增/修改工序
function addProcesses(id) { function addProcesses(processId) {
let title = '新增工序' let title = '新增工序'
let param = { if (processId) {
'id': id title = '修改工序';
} }
let param = {
'processId': processId
}
console.log(param+"param")
openIframe2("addProcessesTemp", title, "child/addProcessesForm.html", '800px', '300px', param); openIframe2("addProcessesTemp", title, "child/addProcessesForm.html", '800px', '300px', param);
} }
/*删除工序*/ /*删除工序*/
function delData(id) { function delData(processId) {
layer.confirm("确定删除吗?", { layer.confirm("确定删除吗?", {
move: false move: false
}, function () { }, function () {
let loadingMsg = layer.msg('数据删除中,请稍候...', {icon: 16, scrollbar: false, time: 0}); let loadingMsg = layer.msg('数据删除中,请稍候...', {icon: 16, scrollbar: false, time: 0});
let url = dataUrl + "/users/delById"; let url = dataUrl + "/basic/process/delProcessById";
let params = { let params = {
'id': id 'processId': processId
} }
/* params={ params={
encryptedData:encryptCBC(JSON.stringify(params)) encryptedData:encryptCBC(JSON.stringify(params))
}*/ }
ajaxRequest(url, "POST", params, true, function () { ajaxRequest(url, "DELETE", params, true, function () {
}, function (result) { }, function (result) {
layer.close(loadingMsg); // 关闭提示层
if (result.code === 200) { if (result.code === 200) {
layer.close(loadingMsg); // 关闭提示层
parent.layer.msg(result.msg, {icon: 1}) parent.layer.msg(result.msg, {icon: 1})
query() query()
} else if (result.code === 500) { } else if (result.code === 500) {
@ -210,14 +214,3 @@ function delData(id) {
}); });
}) })
} }
/*下拉选表单赋值*/
function setSelectValue(list, selectName) {
let html = '<option value="" selected>单位部门</option>';
$.each(list, function (index, item) {
html += '<option value="' + item.id + '">' + item.name + '</option>';
})
$('#' + selectName).empty().append(html);
layui.form.render();
}

View File

@ -18,12 +18,11 @@
<body> <body>
<div id="main-box"> <div id="main-box">
<form class="layui-form" onsubmit="return false;"> <form class="layui-form" onsubmit="return false;">
<input hidden id="id">
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>专业</label> <label class="layui-form-label"><i style="padding: 0 10px;">*</i>专业</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<select id="major" lay-verify="required" name="major" class="form-control input-sm"> <select id="professionName" lay-verify="required" name="professionName" class="form-control input-sm">
</select> </select>
</div> </div>
</div> </div>
@ -31,7 +30,7 @@
<div class="layui-form-item" style="margin-top: 2%;"> <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"><i style="padding: 0 10px;">*</i>工序</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input class="layui-input" id="processes" name="processes" autocomplete="off" <input class="layui-input" id="processName" name="processName" autocomplete="off"
lay-verify="required" maxlength="10"> lay-verify="required" maxlength="10">
</div> </div>
</div> </div>

View File

@ -61,9 +61,9 @@
</style> </style>
<script type="text/html" id="is-state"> <script type="text/html" id="is-state">
<input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="开|关" <input type="checkbox" name="state" value="{{d.processId}}" lay-skin="switch" lay-text="开|关"
lay-filter="is-state" lay-filter="is-state"
{{ d.state== 1 ? 'checked' : '' }}> {{ d.status== 1 ? 'checked' : '' }}>
</script> </script>
<script src="../../js/system/processes.js" charset="UTF-8" type="text/javascript"></script> <script src="../../js/system/processes.js" charset="UTF-8" type="text/javascript"></script>