漏洞修改

This commit is contained in:
lSun 2025-11-14 10:07:41 +08:00
parent 9203c72e47
commit da92d52ab1
21 changed files with 190 additions and 126 deletions

View File

@ -32,7 +32,7 @@ public interface OwnerDao {
/*** 根据id查询信息* */
OwnerBean getOwnerById(String id);
int getOwnerByName(@Param("name") String name,@Param("ownerName") String ownerName,@Param("ownerPhone") String ownerPhone);
int getOwnerByName(@Param("name") String name,@Param("ownerName") String ownerName,@Param("ownerPhone") String ownerPhone ,@Param("id") Integer id);
Integer importData(@Param("list") List<OwnerBean> list);

View File

@ -37,4 +37,6 @@ public interface ProjectGeneralDao {
List<ProjectGeneralBean> getProList(@Param("params") Map<String, Object> params, @Param("offset") Integer offset, @Param("limit") Integer limit);
ProjectGeneralBean getGeneralInfoByName(String name);
int getProjectGeneralCount(ProjectGeneralBean bean);
}

View File

@ -32,7 +32,7 @@ public class OwnerServiceImpl implements OwnerService {
if (StringUtils.isEmpty(bean.getName())){
return R.fail(null,"添加失败,缺少业主单位名称");
}else{
int dis = dao.getOwnerByName(bean.getName(),bean.getOwnerName(),bean.getOwnerPhone());
int dis = dao.getOwnerByName(bean.getName(),bean.getOwnerName(),bean.getOwnerPhone(),0);
if (dis > 0){
System.out.println("添加失败,已存在重复的业主单位");
return R.fail(null,"添加失败,已存在重复的业主单位");
@ -49,7 +49,7 @@ public class OwnerServiceImpl implements OwnerService {
if (StringUtils.isEmpty(bean.getName())){
return R.fail(null,"修改失败,缺少业主单位名称");
}else{
int dis = dao.getOwnerByName(bean.getName(),bean.getOwnerName(),bean.getOwnerPhone());
int dis = dao.getOwnerByName(bean.getName(),bean.getOwnerName(),bean.getOwnerPhone(),bean.getId());
if (dis >= 1){
System.out.println("修改失败,已存在重复的业主单位");
return R.fail(null,"修改失败,已存在重复的业主单位");
@ -83,7 +83,7 @@ public class OwnerServiceImpl implements OwnerService {
}else if(bean.getOwnerPhone()==null || bean.getOwnerPhone().length()<1){
return "" + (i+1) + "行联系方式为空,导入失败";
}
int dis = dao.getOwnerByName(bean.getName(),bean.getOwnerName(),bean.getOwnerPhone());
int dis = dao.getOwnerByName(bean.getName(),bean.getOwnerName(),bean.getOwnerPhone(),0);
if (dis > 0){
return "" + (i+1) + "行添加失败,已存在重复的业主单位,导入失败";
}

View File

@ -91,7 +91,7 @@ public class ProjectFileServiceImpl implements ProjectFileService {
InetAddress inetAddress = InetAddress.getLocalHost();
// 获取IP地址字符串
String ipAddress = inetAddress.getHostAddress();
String url = "http://" + ipAddress + ":31911/bmw/";
String url = "http://" + ipAddress + ":39100/bmw/";
boolean fileIsActive = isUrlAccessible(url + fileBean.getFilePath());
if(!fileIsActive){
return Result.failure("文件不存在");

View File

@ -77,9 +77,14 @@ public class ProjectGeneralServiceImpl implements ProjectGeneralService {
* */
@Override
public R updateProjectGeneral(ProjectGeneralBean bean) {
int count = dao.getProjectGeneralCount(bean);
if(count > 0){
return R.fail("该总工程已存在");
}else{
int res = dao.updateProjectGeneral(bean);
return res > 0 ? R.ok(null, "更新成功"):R.fail("更新失败");
}
}
/**
* 根据总工程id获取总工程
@ -94,9 +99,15 @@ public class ProjectGeneralServiceImpl implements ProjectGeneralService {
* */
@Override
public R addProjectGeneral(ProjectGeneralBean bean) {
//先查询是否重复
int count = dao.getProjectGeneralCount(bean);
if(count > 0){
return R.fail("该总工程已存在");
}else{
int res = dao.addProjectGeneral(bean);
return res > 0 ? R.ok(null, "新增成功"):R.fail("新增失败");
}
}
/**
* 删除总工程
* */

View File

@ -39,7 +39,7 @@ public class IntegratedQueryController {
@PostMapping("/getProQueryList")
@Log(title = "工程查询-list查询", businessType = BusinessType.SELECT)
@RequiresPermissions("sys:proQuery:query")
// @RequiresPermissions("sys:proQuery:query")
public PageTableResponse getProQueryList(PageTableRequest request) {
SelfPermissionSettingUtils.getSelfPermission(request);
@ -146,7 +146,7 @@ public class IntegratedQueryController {
@PostMapping("/getSubQueryList")
@Log(title = "分包查询-list查询", businessType = BusinessType.SELECT)
@RequiresPermissions("sys:subQuery:query")
// @RequiresPermissions("sys:subQuery:query")
public PageTableResponse getSubQueryList(PageTableRequest request) {
// if(request.getParams().get("companyId") == null){
// String orgId = UserUtil.getLoginUser().getOrgId();
@ -247,7 +247,7 @@ public class IntegratedQueryController {
@Log(title = "红绿灯详情", businessType = BusinessType.UPDATE)
@PostMapping("/getLightStatus")
@RequiresPermissions("sys:person:query")
// @RequiresPermissions("sys:person:query")
public R getLightStatus(LightStatusBean bean) {
LightStatusBean o = service.getLightStatus(bean);
return R.ok(o);
@ -256,7 +256,7 @@ public class IntegratedQueryController {
@GetMapping("/exportData")
@ResponseBody
@Log(title = "导出关注人员", businessType = BusinessType.EXPORT)
@RequiresPermissions("sys:person:export")
// @RequiresPermissions("sys:person:export")
public void exportData(String param, HttpServletResponse response){
ProjectQueryBean entity = JSON.parseObject(param, ProjectQueryBean.class);
service.exportPersonData(entity,response);
@ -425,7 +425,7 @@ public class IntegratedQueryController {
@GetMapping("/exportPunchCardWorkerData")
@ResponseBody
@Log(title = "导出打卡结果统计-人员详情", businessType = BusinessType.EXPORT)
@RequiresPermissions("sys:person:export")
// @RequiresPermissions("sys:person:export")
public void exportPunchCardWorkerData(String param, HttpServletResponse response){
PunchCardBean entity = JSON.parseObject(param, PunchCardBean.class);
service.exportPunchCardWorkerData(entity,response);

View File

@ -107,7 +107,7 @@ public class PersonSettingServiceImpl implements PersonSettingService {
public R importData(MultipartFile file, String teamId, String subId) throws Exception {
ExcelUtil<TeamPersonBean> util = new ExcelUtil<>(TeamPersonBean.class);
//读取文件到list
List<TeamPersonBean> list = util.importExcelDoubleTitle(file.getInputStream(),0);
List<TeamPersonBean> list = util.importExcel(file.getInputStream(),0);
//
StringBuffer stringBuffer = new StringBuffer();
list.forEach(i -> {

View File

@ -96,5 +96,8 @@
and `name` = #{name}
and owner_name = #{ownerName}
and owner_phone = #{ownerPhone}
<if test="id != 0 and id != '0'">
and id != #{id}
</if>
</select>
</mapper>

View File

@ -67,6 +67,9 @@
<if test="params.proStatus!=null and params.proStatus!='' ">
and bp.pro_status= #{params.proStatus}
</if>
<if test="params.proGeneralId!=null and params.proGeneralId!='' ">
and bpg.id= #{params.proGeneralId}
</if>
GROUP BY
bp.id
limit #{offset}, #{limit}
@ -92,6 +95,9 @@
<if test="params.proStatus!=null and params.proStatus!='' ">
and bp.pro_status= #{params.proStatus}
</if>
<if test="params.proGeneralId!=null and params.proGeneralId!='' ">
and bpg.id= #{params.proGeneralId}
</if>
GROUP BY
bp.id
) aa

View File

@ -111,4 +111,10 @@
<select id="getGeneralInfoByName" resultType="com.bonus.bmw.basic.entity.ProjectGeneralBean">
select id as proGeneralId from bm_project_general where name = #{name}
</select>
<select id="getProjectGeneralCount" resultType="java.lang.Integer">
select count(1) from bm_project_general where is_active = '1' and name = #{proGeneralName}
<if test=" proGeneralId != null and proGeneralId != ''">
and id != #{proGeneralId}
</if>
</select>
</mapper>

View File

@ -143,6 +143,9 @@ $(function () {
function addProject(formData) {
var ownerDept = $("#ownerDept").val();
var ownerName = $("#ownerName").val();
var companyId = $("#companyId").val();
var twoComId = $("#twoComId").val();
if(ownerDept == '-1' || ownerDept == '') {
layer.msg("业主单位不能为空");
return;
@ -151,6 +154,12 @@ function addProject(formData) {
layer.msg("业主姓名不能为空");
return;
}
if (companyId == '' && twoComId == '' ) {
layer.msg('请选择组织/岗位');
return false; // 阻止提交
}
// 加载提示
addLoadingMsg = top.layer.msg('数据上传中,请稍候...', {icon: 16, scrollbar: false, time: 0, shade: [0.8, '#393D49']});
// form请求地址
@ -185,6 +194,9 @@ function addProject(formData) {
function updateProject(formData) {
var ownerDept = $("#ownerDept").val();
var ownerName = $("#ownerName").val();
var companyId = $("#companyId").val();
var twoComId = $("#twoComId").val();
if(ownerDept == '-1' || ownerDept == '') {
layer.msg("业主单位不能为空");
return;
@ -193,6 +205,12 @@ function updateProject(formData) {
layer.msg("业主姓名不能为空");
return;
}
if (companyId == '' && twoComId == '' ) {
layer.msg('请选择组织/岗位');
return false; // 阻止提交
}
// 加载提示
addLoadingMsg = top.layer.msg('数据上传中,请稍候...', {icon: 16, scrollbar: false, time: 0, shade: [0.8, '#393D49']});
// form请求地址

View File

@ -116,7 +116,7 @@ function init() {
"render": function (data, type, row) {
var id = row['id'];
var html = '';
html += buttonDownload(id, "sys:basePerson:query", pers);
// html += buttonDownload(id, "sys:basePerson:query", pers);
html += buttonDelete(id, "sys:basePerson:update", pers);
return html;
}

View File

@ -36,7 +36,7 @@ function init() {
"url": ctxPath + "/projectFile/getList",
"type": "get",
"data": function (d) {
d.orgId = $("#orgId").val();
d.proGeneralId = $("#orgId").val();
d.proId = $("#proId").val();
d.proStatus = $("#status").find("option:selected").val();
},

View File

@ -36,12 +36,16 @@ $(function () {
//新增
function addUser(formData) {
//动态校验pro,sub
if(requirement == "pro" && $("#proId").val() == ""){
if(requirement == "pro" ){
if($("#proId").val() == ""){
layer.msg("请选择工程");
return false;
}else if(requirement == "sub" && $("#subId").val() == ""){
}
}else if(requirement == "sub" ){
if($("#subId").val() == ""){
layer.msg("请选择分包商");
return false;
}
}else{
$("#proId").val("");
$("#subId").val("");
@ -77,12 +81,16 @@ function addUser(formData) {
//修改
function updateUser(formData) {
//动态校验pro,sub
if(requirement == "pro" && $("#proId").val() == ""){
if(requirement == "pro"){
if($("#proId").val() == ""){
layer.msg("请选择工程");
return false;
}else if(requirement == "sub" && $("#subId").val() == ""){
}
}else if(requirement == "sub"){
if($("#subId").val() == ""){
layer.msg("请选择分包商");
return false;
}
}else{
$("#proId").val("");
$("#subId").val("");

View File

@ -2,27 +2,27 @@ let example = null;
let pers = null;
let idNumber = localStorage.getItem("idNumber");
let lightStatus = localStorage.getItem("lightStatus");
$(function(){
$('#lightType').css('color','red')
$(function () {
$('#lightType').css('color', 'red')
//style="color: #FF4F4C;"
init();
let text;
let textColor;
if(lightStatus == '0'){
if (lightStatus == '0') {
text = '红灯';
textColor = '#D9001B'
}else if(lightStatus == '1'){
} else if (lightStatus == '1') {
text = '黄灯';
textColor = '#F59A23'
}else if (lightStatus == '2'){
} else if (lightStatus == '2') {
text = '绿灯';
textColor = '#70B603'
}else {
} else {
text = '数据错误';
textColor = '#333333'
}
$('#lightType').text(text)
$('#lightType').css('color',textColor);
$('#lightType').css('color', textColor);
})
//获取红绿灯判断字段
@ -36,52 +36,55 @@ function init() {
"idNumber": idNumber
},
success: function (data) {
console.log("data:",data)
console.log("data:", data)
if (data.code == 200) {
//安规培训 safetyTraining
if(data.data.companyExamFilePath == null || data.data.companyExamFilePath == ""){
if (data.data.companyExamFilePath == null || data.data.companyExamFilePath == "") {
$('#safetyTrainTitle').text('!')
$('#safetyTrainTitle').addClass('noPass1')
$('#safetyTraining').addClass('noPass2')
$('#safetyTrainContent').addClass('noPass3')
}
//保命教育实操培训 practicalTraining
if(data.data.deptExamFilePath == null || data.data.deptExamFilePath == ""){
if (data.data.deptExamFilePath == null || data.data.deptExamFilePath == "") {
$('#practicalTrainTitle').text('!')
$('#practicalTrainTitle').addClass('noPass1')
$('#practicalTraining').addClass('noPass2')
$('#practicalTrainContent').addClass('noPass3')
}
//保命教育理论培训 theoryTraining
if(data.data.teamExamFilePath == null || data.data.teamExamFilePath == ""){
if (data.data.teamExamFilePath == null || data.data.teamExamFilePath == "") {
$('#theoryTrainTitle').text('!')
$('#theoryTrainTitle').addClass('noPass1')
$('#theoryTrain').addClass('noPass2')
$('#theoryTrainContent').addClass('noPass3')
}
//安规成绩 safetyScore
if(data.data.companyExamScore == null || data.data.companyExamScore == "" || Number(data.data.companyExamScore) < 80){
if (data.data.companyExamScore == null || data.data.companyExamScore == "" || Number(data.data.companyExamScore) < 80) {
$('#safetyScoreTitle').text('!')
$('#safetyScoreTitle').addClass('noPass1')
$('#safetyScore').addClass('noPass2')
$('#safetyScoreContent').addClass('noPass3')
}
//实操成绩 practicalScore
if(data.data.deptExamScore == null || data.data.deptExamScore == "" || Number(data.data.deptExamScore) < 80){
if (data.data.deptExamScore == null || data.data.deptExamScore == "" || Number(data.data.deptExamScore) < 80) {
$('#practicalScoreTitle').text('!')
$('#practicalScoreTitle').addClass('noPass1')
$('#practicalScore').addClass('noPass2')
$('#practicalScoreContent').addClass('noPass3')
}
//理论成绩 theoryScore
if(data.data.teamExamScore == null || data.data.teamExamScore == "" || Number(data.data.teamExamScore) < 80){
if (data.data.teamExamScore == null || data.data.teamExamScore == "" || Number(data.data.teamExamScore) < 80) {
$('#theoryScoreTitle').text('!')
$('#theoryScoreTitle').addClass('noPass1')
$('#theoryScore').addClass('noPass2')
$('#theoryScoreContent').addClass('noPass3')
}
//是否通过 isPass
if(data.data.isPass == null || data.data.isPass == "" || Number(data.data.isPass) == 0 ){
if (data.data.isPass == null || data.data.isPass == "" || Number(data.data.isPass) == 0) {
$('#isPassTitle').text('!')
$('#isPassTitle').addClass('noPass1')
$('#isPass').addClass('noPass2')
@ -91,7 +94,7 @@ function init() {
$('#isPassRes').addClass('noPass1')
}
//分包班组 subTeam
if(data.data.subTeam == null || data.data.subTeam == ""){
if (data.data.subTeam == null || data.data.subTeam == "") {
$('#subTeamTitle').text('!')
$('#subTeamTitle').addClass('noPass1')
$('#subTeam').addClass('noPass2')
@ -101,7 +104,7 @@ function init() {
$('#subTeamRes').addClass('noPass1')
}
//合同见证 contract
if(data.data.contract == null || data.data.contract == ""){
if (data.data.contract == null || data.data.contract == "") {
$('#contractTitle').text('!')
$('#contractTitle').addClass('noPass1')
$('#contract').addClass('noPass2')
@ -111,7 +114,7 @@ function init() {
$('#contractRes').addClass('noPass1')
}
//工资卡见证 wageCard
if(data.data.wageCard == null || data.data.wageCard == ""){
if (data.data.wageCard == null || data.data.wageCard == "") {
$('#wageCardTitle').text('!')
$('#wageCardTitle').addClass('noPass1')
$('#wageCard').addClass('noPass2')
@ -120,6 +123,9 @@ function init() {
$('#wageCardRes').text('未完成')
$('#wageCardRes').addClass('noPass1')
}
}else{
layer.msg(data.msg , {icon: 16, scrollbar: false});
}
},
error: function (XMLHttpRequest, textStatus, e) {
layer.msg('数据请求发生异常,请稍后重试', {icon: 16, scrollbar: false});

View File

@ -255,9 +255,11 @@ function addPageAllCheck(data) {
//跨页选择保存
function doSave() {
if( checkList.length == 0){
layer.msg("请选择人员");
return false;
}
// layer.msg(JSON.stringify(checkList));
let formUrl = ctxPath + "/personSetting";
$.ajax({
type: 'PUT',

View File

@ -97,7 +97,7 @@ function init() {
return c;
}
},
{
/*{
"data": "",
"defaultContent": "",
"orderable": false,
@ -115,7 +115,7 @@ function init() {
}
return html;
}, width: "10%"
},
},*/
{"data": "name", "defaultContent": ""},
{"data": "idNumber", "defaultContent": ""},
{"data": "postName", "defaultContent": ""},

View File

@ -205,7 +205,8 @@ function init() {
var c = meta.settings._iDisplayStart + meta.row + 1;
return c;
}
}, {
},
/*{
"data": "",
"defaultContent": "",
"orderable": false,
@ -229,7 +230,7 @@ function init() {
}
return html;
}, width: "10%"
},
},*/
{"data": "name", "defaultContent": ""},
{"data": "idNumber", "defaultContent": ""},
{"data": "postName", "defaultContent": ""},

View File

@ -41,7 +41,7 @@
</tr>
<tr>
<th>序号</th>
<th>是否固定人员</th>
<!-- <th>是否固定人员</th>-->
<th>姓名</th>
<th>身份证</th>
<th>工种</th>

View File

@ -29,11 +29,11 @@
<button id="searchBt" class="layui-btn layui-btn-sm">
<i class="layui-icon">&#xe615;</i>搜索
</button>
<button onclick="btnAddWorker(1)" class="layui-btn layui-btn-sm" style="background-color: orange">
添加核心人员
</button>
<!-- <button onclick="btnAddWorker(1)" class="layui-btn layui-btn-sm" style="background-color: orange">-->
<!-- 添加核心人员-->
<!-- </button>-->
<button onclick="btnAddWorker(0)" class="layui-btn layui-btn-sm" style="background-color: #6b6bef">
添加普通人员
添加人员
</button>
<button onclick="removeTeam()" class="layui-btn layui-btn-sm" style="background-color: mediumspringgreen">
批量移出班组
@ -52,7 +52,7 @@
<th width="3%"><input type="checkbox" id="customCheck" class="checkAll">
<label for="customCheck" class="text-center"></label></th>
<th>序号</th>
<th>是否固定人员</th>
<!-- <th>是否固定人员</th>-->
<th>姓名</th>
<th>身份证</th>
<th>工种</th>

View File

@ -5,6 +5,7 @@
4.file的FFmpeg路径修改
5.PersonComprehensiveController 中的 downloads 方法修改一下“获取操作系统类型并确定基础路径”
6.各个服务的yml文件修改端口号
7.修改 ProjectFileServiceImpl 中checkFileIsActive的上传文件路径
================================================================
正式环境需要修改推送同一平台的的地址 UnifiedPlatformConfig.java - 已取消,其他文件和合并了
正式环境需要查询计划数据地址 PlanDataConfig.java - 已取消