需求开发

This commit is contained in:
liang.chao 2025-04-24 17:39:07 +08:00
parent df0cc43171
commit 1b60f6609a
13 changed files with 272 additions and 16 deletions

View File

@ -246,7 +246,17 @@ public class OrganizationalController extends BaseController<EvaluateBean> {
} }
return ar; return ar;
} }
@RequestMapping(value = "updateName", method = RequestMethod.POST)
@ResponseBody
public AjaxRes updateName(@RequestBody OrganizationalBean bean) {
AjaxRes ar = getAjaxRes();
try {
ar = service.updateName(bean);
} catch (Exception e) {
logger.error(e.toString(), e);
ar.setFailMsg(GlobalConst.DATA_FAIL);
}
return ar;
}
} }

View File

@ -4,6 +4,7 @@ package com.bonus.gs.sub.evaluate.evaluate.dao;
import com.bonus.gs.sub.evaluate.evaluate.beans.EvaluatePersonBean; import com.bonus.gs.sub.evaluate.evaluate.beans.EvaluatePersonBean;
import com.bonus.gs.sub.evaluate.evaluate.beans.OrganizationalBean; import com.bonus.gs.sub.evaluate.evaluate.beans.OrganizationalBean;
import com.bonus.gs.sub.evaluate.evaluate.beans.TeamEvaluateBean; import com.bonus.gs.sub.evaluate.evaluate.beans.TeamEvaluateBean;
import com.bonus.gs.sub.evaluate.manager.utils.AjaxRes;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List; import java.util.List;
@ -166,4 +167,6 @@ public interface OrganizationalDao{
void deleteUserOutData(OrganizationalBean bean); void deleteUserOutData(OrganizationalBean bean);
int getConsIsExistByPro(OrganizationalBean bean); int getConsIsExistByPro(OrganizationalBean bean);
int updateName(OrganizationalBean bean);
} }

View File

@ -66,4 +66,6 @@ public interface OrganizationalService{
AjaxRes addDept(OrganizationalBean bean); AjaxRes addDept(OrganizationalBean bean);
AjaxRes userOutDataFail(OrganizationalBean bean); AjaxRes userOutDataFail(OrganizationalBean bean);
AjaxRes updateName(OrganizationalBean bean);
} }

View File

@ -316,6 +316,19 @@ public class OrganizationalServiceImpl implements OrganizationalService {
return ar; return ar;
} }
@Override
public AjaxRes updateName(OrganizationalBean bean) {
AjaxRes ar = new AjaxRes();
try {
mapper.updateName(bean);
ar.setSucceed("修改成功");
} catch (Exception e) {
ar.setResMsg("修改失败");
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return ar;
}
public static List<OrganizationalBean> buildTree(List<OrganizationalBean> nodes) { public static List<OrganizationalBean> buildTree(List<OrganizationalBean> nodes) {
// 根节点是没有父节点的节点 // 根节点是没有父节点的节点
List<OrganizationalBean> rootNodes = nodes.stream() List<OrganizationalBean> rootNodes = nodes.stream()

View File

@ -49,4 +49,7 @@ public interface UserDao {
String getIsBusinessDivision(Long id); String getIsBusinessDivision(Long id);
void changOldTablePassword(String phone, String password); void changOldTablePassword(String phone, String password);
@Select("select t.*,t.org_id as deptId,sr.`name` as roleName,ifnull(poi.org_type,'0') as orgType from sys_user t LEFT JOIN pm_org_info poi on poi.id = t.org_id LEFT JOIN sys_role_user sru on sru.userId = t.id LEFT JOIN sys_role sr on sr.id = sru.roleId where t.phone = #{phone}")
SysUser findByPhone(String phone);
} }

View File

@ -17,4 +17,6 @@ public interface UserService {
int getUserCount(String username); int getUserCount(String username);
AjaxRes changePassWord(UserDto userDto); AjaxRes changePassWord(UserDto userDto);
SysUser findByPhone(String phone);
} }

View File

@ -36,7 +36,7 @@ public class UserDetailsServiceImpl implements UserDetailsService {
@Override @Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
SysUser sysUser = userService.getUser(username); SysUser sysUser = userService.findByPhone(username);
if (sysUser == null) { if (sysUser == null) {
throw new AuthenticationCredentialsNotFoundException("用户名不存在"); throw new AuthenticationCredentialsNotFoundException("用户名不存在");
} else if (sysUser.getStatus() == Status.LOCKED) { } else if (sysUser.getStatus() == Status.LOCKED) {

View File

@ -96,6 +96,20 @@ public class UserServiceImpl implements UserService {
return ar; return ar;
} }
@Override
public SysUser findByPhone(String phone) {
SysUser user = userDao.findByPhone(phone);
if(user !=null){
String roleIds = userDao.getUserRoles(user.getId());
user.setRoleId(roleIds);
if (StringUtils.isNotBlank(user.getDeptId())) {
String isBusinessDivision = userDao.getIsBusinessDivision(user.getId());
user.setIsBusinessDivision(isBusinessDivision);
}
}
return user;
}
@Override @Override
@Transactional @Transactional
public SysUser updateUser(UserDto userDto) { public SysUser updateUser(UserDto userDto) {

View File

@ -89,6 +89,11 @@
set status = 1 set status = 1
where id = (select team_id from pt_team_exit where id = #{id}) where id = (select team_id from pt_team_exit where id = #{id})
</update> </update>
<update id="updateName">
update pm_org_info
set name=#{name}
where id = #{id}
</update>
<delete id="deleteUserOut"> <delete id="deleteUserOut">
delete delete

View File

@ -0,0 +1,87 @@
let form, layer, dtree;
let objParam;
function setParams(obj) {
objParam = JSON.parse(obj);
$("#name").val(objParam.name);
$("#orgId").val(objParam.id);
layui
.use(["form", "layer"], function () {
form = layui.form;
layer = layui.layer;
form.on("submit(formData)", function (obj) {
updateName(obj);
});
form.render();
});
}
function saveData2() {
$("#formSubmit").trigger("click");
}
// 提交
function updateName(data) {
let loadingMsg = layer.msg("正在提交保存,请稍等...", {
icon: 16,
shade: 0.01,
time: "0",
});
let url = `${ctxPath}` + "/organizational/updateName";
let item = {
id: data.field.orgId,
name: data.field.name,
};
// console.log(JSON.stringify(data)+"data")
$.ajax({
url: url,
type: "POST",
data: JSON.stringify(item),
dataType: "json",
contentType: "application/json",
beforeSend: function () {
$(".save").addClass("layui-btn-disabled").attr("disabled", true);
$(".cancel").addClass("layui-btn-disabled").attr("disabled", true);
},
success: function (result) {
layer.close(loadingMsg); // 关闭提示层
$(".save")
.removeClass("layui-btn-disabled")
.attr("disabled", false);
$(".cancel")
.removeClass("layui-btn-disabled")
.attr("disabled", false);
console.error(result);
if (result.res === 1) {
parent.layer.msg(result.obj, {icon: 1});
closePage(1);
} else {
layer.msg(result.resMsg, {icon: 2});
}
},
error: function (result) {
layer.close(loadingMsg); // 关闭提示层
layer.msg("服务异常,请稍后重试", {
icon: 16,
scrollbar: false,
time: 2000,
});
$(".save")
.removeClass("layui-btn-disabled")
.attr("disabled", false);
$(".cancel")
.removeClass("layui-btn-disabled")
.attr("disabled", false);
},
});
}
// 关闭页面
function closePage(type) {
let index = parent.layer.getFrameIndex(window.name); // 先得到当前 iframe层的索引
if (type === 1) {
window.parent.reloadTreeTable();
}
parent.layer.close(index); // 再执行关闭
}

View File

@ -14,21 +14,21 @@ layui.use(['layer', 'treeTable', 'table'], function () {
var layEvent = obj.event; //当前点击的事件名 var layEvent = obj.event; //当前点击的事件名
if (layEvent === 'add') { if (layEvent === 'add') {
if (Number(data.level) === 1) { // 新增事业部/职能部门 if (Number(data.level) === 1) { // 新增事业部/职能部门
if(roleName == "项目经理"){ if (roleName == "项目经理") {
layer.msg("您没有权限新增事业部/职能部门", {icon: 2}); layer.msg("您没有权限新增事业部/职能部门", {icon: 2});
return; return;
} }
addForm(4, data); addForm(4, data);
} }
if (Number(data.level) === 2) { // 新增项目 if (Number(data.level) === 2) { // 新增项目
if(roleName == "项目经理"){ if (roleName == "项目经理") {
layer.msg("您没有权限新增项目", {icon: 2}); layer.msg("您没有权限新增项目", {icon: 2});
return; return;
} }
addForm(0, data); addForm(0, data);
} }
if (Number(data.level) === 3) { // 新增外包商 if (Number(data.level) === 3) { // 新增外包商
if(roleName == "项目经理"){ if (roleName == "项目经理") {
layer.msg("您没有权限新增外包商", {icon: 2}); layer.msg("您没有权限新增外包商", {icon: 2});
return; return;
} }
@ -38,6 +38,9 @@ layui.use(['layer', 'treeTable', 'table'], function () {
addForm(2, data); addForm(2, data);
} }
} }
if (layEvent === 'edit') {
editForm(data);
}
if (layEvent === 'changeTheTeamLeader') { if (layEvent === 'changeTheTeamLeader') {
addForm(3, data); addForm(3, data);
} }
@ -118,22 +121,26 @@ function initTreeTable() {
let html = ""; let html = "";
if ([1, 2, 3, 4].includes(d.level)) { if ([1, 2, 3, 4].includes(d.level)) {
if(user.roleId == 6 || user.roleId == 5){ if (user.roleId == 6 || user.roleId == 5) {
html += '<a lay-event="add" style="color: #009688;cursor: pointer;font-size: 15px" id="add">新增</a>'; html += '<a lay-event="add" style="color: #009688;cursor: pointer;font-size: 15px" id="add">新增</a>';
html += '&nbsp;&nbsp;&nbsp;&nbsp;';
html += '<a lay-event="edit" style="color: #009688;cursor: pointer;font-size: 15px" id="add">修改名称</a>';
} }
if(user.roleId == 7 && d.level == 4 &&(d.userName == user.nickname || d.parentUserName==user.nickname) ){ if (user.roleId == 7 && d.level == 4 && (d.userName == user.nickname || d.parentUserName == user.nickname)) {
html += '<a lay-event="add" style="color: #009688;cursor: pointer;font-size: 15px" id="add">新增</a>'; html += '<a lay-event="add" style="color: #009688;cursor: pointer;font-size: 15px" id="add">新增</a>';
html += '&nbsp;&nbsp;&nbsp;&nbsp;';
html += '<a lay-event="edit" style="color: #009688;cursor: pointer;font-size: 15px" id="add">修改名称</a>';
} }
if(user.roleId == 7 && d.level == 3 && d.userName == user.nickname){ if (user.roleId == 7 && d.level == 3 && d.userName == user.nickname) {
html += '<a lay-event="add" style="color: #009688;cursor: pointer;font-size: 15px" id="add">新增</a>'; html += '<a lay-event="add" style="color: #009688;cursor: pointer;font-size: 15px" id="add">新增</a>';
html += '&nbsp;&nbsp;&nbsp;&nbsp;';
html += '<a lay-event="edit" style="color: #009688;cursor: pointer;font-size: 15px" id="add">修改名称</a>';
} }
} }
if (d.level === 5) { if (d.level === 5) {
if(user.roleId == 6 || user.roleId == 5){ if (user.roleId == 6 || user.roleId == 5) {
html += '<a lay-event="changeTheTeamLeader" style="color: #009688;cursor: pointer;font-size: 15px" id="changeTheTeamLeader">更换班长</a>'; html += '<a lay-event="changeTheTeamLeader" style="color: #009688;cursor: pointer;font-size: 15px" id="changeTheTeamLeader">更换班长</a>';
} }
if (user.roleId == 7 && d.userName == user.nickname) { if (user.roleId == 7 && d.userName == user.nickname) {
@ -143,7 +150,7 @@ function initTreeTable() {
let parentNode = getParentNode(d, tableData); let parentNode = getParentNode(d, tableData);
parentNode = getParentNode(parentNode, tableData); parentNode = getParentNode(parentNode, tableData);
if (parentNode && parentNode.userName === user.nickname) { if (parentNode && parentNode.userName === user.nickname) {
if(user.roleId == 7){ if (user.roleId == 7) {
html += '<a lay-event="backField" style="color: #009688;cursor: pointer;font-size: 15px;margin-left: 10px" id="backField">退场</a>'; html += '<a lay-event="backField" style="color: #009688;cursor: pointer;font-size: 15px;margin-left: 10px" id="backField">退场</a>';
} }
} }
@ -181,9 +188,9 @@ function addForm(type, obj) {
area = ['70%', '80%']; area = ['70%', '80%'];
} else if (type === 1) { } else if (type === 1) {
area = ['50%', '50%']; area = ['50%', '50%'];
} else if (type === 2){ } else if (type === 2) {
area = ['98%', '98%']; area = ['98%', '98%'];
}else if (type === 3) { } else if (type === 3) {
area = ['98%', '98%']; area = ['98%', '98%'];
} else if (type === 4) { } else if (type === 4) {
area = ['50%', '50%']; area = ['50%', '50%'];
@ -206,6 +213,26 @@ function addForm(type, obj) {
}, },
}); });
} }
function editForm(obj) {
console.log(JSON.stringify(obj)+"lc")
let area = ['50%', '40%'];
let layerIndex = layer.open({
type: 2,
title: '修改名称',
shade: [0],
area: area,
scrollbar: true,
move: false,
anim: 2,
yes: function (index, layero) {
},
content: './editForm.html',
success: function (layero, index) {
let iframeWin = window["layui-layer-iframe" + layerIndex];
iframeWin.setParams(JSON.stringify(obj));
},
});
}
// 退场 1.外包商退场 2.班组退场 // 退场 1.外包商退场 2.班组退场
function back(type, obj) { function back(type, obj) {

View File

@ -0,0 +1,90 @@
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="../../../layui/css/layui.css" />
<link rel="stylesheet" href="../../../layui/layui_ext/dtree/dtree.css">
<link rel="stylesheet" href="../../../layui/layui_ext/dtree/font/dtreefont.css">
<title>修改名称</title>
<style type="text/css">
#main-box {
width: 100%;
height: 100%;
}
.layui-form-label {
width: 120px;
}
.layui-form-item .layui-input-inline {
width: 400px;
}
.required_icon,
th span {
font-size: 16px;
color: red;
margin: 0 5px 0 5px
}
::-webkit-scrollbar {
width: 10px;
}
::-webkit-scrollbar-track {
background: rgb(233 233 233);
border-radius: 10px;
}
::-webkit-scrollbar-thumb {
background: rgb(207 207 207);
border-radius: 10px;
}
::-webkit-scrollbar-thumb:hover {
background: rgb(100, 100, 100);
border-radius: 10px;
}
::-webkit-scrollbar-thumb:active {
background: rgb(68, 68, 68);
border-radius: 10px;
}
</style>
</head>
<body>
<div id="main-box">
<div class="form">
<form class="layui-form" onsubmit="return false;" id="form" onclick="return false;">
<div style="width: 100%;height: 100%">
<input type="hidden" id="orgId" name="orgId">
<div class="layui-form-item" style="margin-top: 1%;display: flex;width: 100%">
<label class="layui-form-label"><span class="required_icon">*</span>名称</label>
<div class="layui-input-inline" style="width: 200px;">
<input type="text" required lay-verify="required" id="name"
name="name" autocomplete="off" class="layui-input">
</div>
</div>
</div>
<button type="submit" id="formSubmit" class="layui-btn" lay-submit="" lay-filter="formData"
style="display: none;"></button>
</form>
</div>
<div style="position:absolute;top: 80%;left: 80%">
<button class="layui-btn layui-btn-primary cancel" onclick="closePage()">取消
</button>
<button class="layui-btn layui-btn-normal save" onclick="saveData2()">保存</button>
</div>
</div>
</body>
<script src="../../../js/publicJs.js"></script>
<script type="text/javascript" src="../../../js/libs/jquery-2.1.1.min.js"></script>
<script type="text/javascript" src="../../../js/jq.js"></script>
<script type="text/javascript" src="../../../js/my/permission.js"></script>
<script src="../../../layui/layui.js"></script>
<script src="../../../layui/layui_ext/dtree/dtree.js"></script>
<script src="../../../js/evaluate/org/editForm.js?v=1"></script>
</html>

View File

@ -261,7 +261,7 @@
uploadDom.push('#uploadBtn' + index) uploadDom.push('#uploadBtn' + index)
innerHtml += `<div style="padding:6px 0;display: flex; align-items: center;"> innerHtml += `<div style="padding:6px 0;display: flex; align-items: center;">
<div style="margin-right: 10px;width: 200px";>${e.title}</div> <div style="margin-right: 10px;width: 200px";>${e.title}</div>
<input type="text" data-value="${tableFieldValueList[index]['standardScore']}" data-id="${dialogLabelInfo[index].field}" name="numberInput" placeholder="请输入大于0的数字" style=";width:180px; padding:1px 5px;" value="${curRows[dialogLabelInfo[index].field]}"> <input type="text" data-value="${tableFieldValueList[index]['standardScore']}" data-id="${dialogLabelInfo[index].field}" name="numberInput" placeholder="请输入" style=";width:180px; padding:1px 5px;" value="${curRows[dialogLabelInfo[index].field]}">
<button type="button" data-index="${index}" data-id="${dialogLabelInfo[index].field}" id="uploadBtn${index}" style="color: #4CAF50; border: none; margin-left: 10px; cursor: pointer;display:${(isFile && isFile.fileName != '') ? 'none' : 'block'}"> <button type="button" data-index="${index}" data-id="${dialogLabelInfo[index].field}" id="uploadBtn${index}" style="color: #4CAF50; border: none; margin-left: 10px; cursor: pointer;display:${(isFile && isFile.fileName != '') ? 'none' : 'block'}">
+ 上传评分依据 + 上传评分依据
</button> </button>