diff --git a/modules/bmw/src/main/java/com/bonus/bmw/person/controller/InOutController.java b/modules/bmw/src/main/java/com/bonus/bmw/person/controller/InOutController.java index cdcd2c4..17b3220 100644 --- a/modules/bmw/src/main/java/com/bonus/bmw/person/controller/InOutController.java +++ b/modules/bmw/src/main/java/com/bonus/bmw/person/controller/InOutController.java @@ -103,4 +103,11 @@ public class InOutController { } + // 出场证明,工资结算申请书 + @PostMapping("/exitRoute") + @Log(title = "出场证明,工资结算申请书上传", businessType = BusinessType.UPDATE) + @ResponseBody + public R exitRoute(@RequestBody BasePersonBean bean) { + return service.exitRoute(bean); + } } diff --git a/modules/bmw/src/main/java/com/bonus/bmw/person/dao/InOutDao.java b/modules/bmw/src/main/java/com/bonus/bmw/person/dao/InOutDao.java index 02fbbaa..e7677b4 100644 --- a/modules/bmw/src/main/java/com/bonus/bmw/person/dao/InOutDao.java +++ b/modules/bmw/src/main/java/com/bonus/bmw/person/dao/InOutDao.java @@ -93,4 +93,6 @@ public interface InOutDao { * 一年未在场 */ List getOneYearNotInPlace(); + + int exitRoute(BasePersonBean bean); } diff --git a/modules/bmw/src/main/java/com/bonus/bmw/person/entity/BasePersonBean.java b/modules/bmw/src/main/java/com/bonus/bmw/person/entity/BasePersonBean.java index 087b633..e25f042 100644 --- a/modules/bmw/src/main/java/com/bonus/bmw/person/entity/BasePersonBean.java +++ b/modules/bmw/src/main/java/com/bonus/bmw/person/entity/BasePersonBean.java @@ -244,6 +244,10 @@ public class BasePersonBean { private String exitVideoPath; private String exitSignPath; + private String exitProvePath; + + private String salaryApplicationPath; + private List idNumberList; @Excel(name = "务工类型 * ",required = true) diff --git a/modules/bmw/src/main/java/com/bonus/bmw/person/service/InOutService.java b/modules/bmw/src/main/java/com/bonus/bmw/person/service/InOutService.java index 98bba4a..b3d5c1f 100644 --- a/modules/bmw/src/main/java/com/bonus/bmw/person/service/InOutService.java +++ b/modules/bmw/src/main/java/com/bonus/bmw/person/service/InOutService.java @@ -30,4 +30,11 @@ public interface InOutService { * @return */ R bindContractId(BasePersonBean bean); + + /** + * 出场证明,工资结算申请书 + * @param bean + * @return + */ + R exitRoute(BasePersonBean bean); } diff --git a/modules/bmw/src/main/java/com/bonus/bmw/person/service/InOutServiceImpl.java b/modules/bmw/src/main/java/com/bonus/bmw/person/service/InOutServiceImpl.java index 5837501..fb1420c 100644 --- a/modules/bmw/src/main/java/com/bonus/bmw/person/service/InOutServiceImpl.java +++ b/modules/bmw/src/main/java/com/bonus/bmw/person/service/InOutServiceImpl.java @@ -198,6 +198,10 @@ public class InOutServiceImpl implements InOutService { o.setUserId(bean.getUserId()); o.setExitExamineRemark(bean.getExitExamineRemark()); o.setExitStatus("1"); + o.setExitVideoPath(idNumbers.getExitVideoPath()); + o.setExitSignPath(idNumbers.getExitSignPath()); + o.setExitProvePath(idNumbers.getExitProvePath()); + o.setSalaryApplicationPath(idNumbers.getSalaryApplicationPath()); int index = dao.batchPersonOutCheck(o); x += index; //结束暂退,结束红灯 @@ -299,6 +303,12 @@ public class InOutServiceImpl implements InOutService { return index >= 1 ? R.ok(Constants.UPDATE_SUCCESS) : R.fail(Constants.UPDATE_FAIL); } + @Override + public R exitRoute(BasePersonBean bean) { + int i = dao.exitRoute(bean); + return i > 0 ? R.ok("成功") : R.fail("失败"); + } + private List basePersonListThread(List list) { list.forEach(c->{ Map map = StringUtils.getBirthdayAgeSex(c.getIdNumber()); diff --git a/modules/bmw/src/main/resources/mapper/person/InOutMapper.xml b/modules/bmw/src/main/resources/mapper/person/InOutMapper.xml index 238a9cc..7d8dfe4 100644 --- a/modules/bmw/src/main/resources/mapper/person/InOutMapper.xml +++ b/modules/bmw/src/main/resources/mapper/person/InOutMapper.xml @@ -92,7 +92,8 @@ exit_time = #{exitTime},exit_examine_time = #{exitTime},exit_examine_remark = #{exitExamineRemark},is_force = '1' where id_number = #{idNumber} and is_active = 1; - update bm_worker_ein_history set is_active = 0,exit_video_path = #{exitVideoPath},exit_sign_path = #{exitSignPath} where id_number = #{idNumber} and is_active = 1; + update bm_worker_ein_history set is_active = 0,exit_video_path = #{exitVideoPath},exit_sign_path = #{exitSignPath},exit_prove_path = #{exitProvePath},salary_application_Path = #{salaryApplicationPath} + where id_number = #{idNumber} and is_active = 1; update bm_worker_contract set is_active = 0 where idCard = #{idNumber}; update bm_worker_contract_details set is_active = 0 where id_card = #{idNumber}; update bm_worker_contract_witness set is_active = 0 where id_number = #{idNumber}; @@ -129,6 +130,18 @@ update bm_worker_ein_history set contract_id = #{contractId} where id_number = #{idNumber} and ein_time = #{einTime} + + update bm_worker_ein_history set + id_number = #{idNumber} + + ,exit_prove_path = #{exitProvePath} + + + ,salary_application_Path = #{salaryApplicationPath} + + where id_number = #{idNumber} and ein_time = #{einTime} and is_active = 1 + + ' + + node = '' + ''; } else { - node = '' + + node = '' + ''; } return node; @@ -236,7 +236,7 @@ function evaluateView(name, idNumber, einTime, exitTime, proName, postName) { * 勾选批量出厂人员后弹出页面 * */ function batchOutApplyView() { - let width = "70%"; + let width = "80%"; let height = "80%"; let checkedArr = getAllCheckedValue(); var layerIndex = layer.open({ diff --git a/modules/bmw/src/main/resources/static/js/work/Person/InOutSpace/exitProvePath.js b/modules/bmw/src/main/resources/static/js/work/Person/InOutSpace/exitProvePath.js new file mode 100644 index 0000000..6b82f64 --- /dev/null +++ b/modules/bmw/src/main/resources/static/js/work/Person/InOutSpace/exitProvePath.js @@ -0,0 +1,101 @@ +let upload,checkupFilePath,idNumbers,einTimes; +function setData(idNumber,einTime){ + idNumbers =idNumber; + einTimes = einTime; + layui.use(['form', 'laydate', 'upload', 'element'], function () { + let form = layui.form; //只有执行了这一步,部分表单元素才会自动修饰成功 + upload = layui.upload; + form.render(); + + var uploadup = upload.render({ + elem: '#checkup_img', + url: fileUrl + '/file/upload', //改成您自己的上传接口 + multiple: false, //是否允许多文件上传,默认未false + dataType: "json", + exts: 'pdf|PDF', + auto: true, //是否自动上传 ,默认为true + number: 1, //限制为1张 + size: 1024*30, //最大文件大小,单位k + bindAction: '#hideUploadCheckup', //绑定的按钮 + field: 'file', //传到后台的字段名,默认file + choose: function (obj) { + flag = false; + // 清空现有预览和文件信息 + $('#checkupProve').empty(); + checkupFilePath = ''; // 确保清除旧的文件路径 + + obj.preview(function (index, file, result) { + $("#previewCheckupProve").css("display", ""); + var previewImgSrc = "../../../../img/filetype/pdf.png"; // 预览图片源 + + $('#checkupProve').append( + '
' + + '' + file.name + '' + + '
' + (file.name.length > 8 ? (file.name.substr(0, 8) + "..") : file.name) + '
' + + '
' + ); + }); + }, + done: function (data) { + if(data.code === 200) { + layer.msg('上传成功'); + checkupFilePath = data.data.url; + } else { + layer.msg('上传失败'); + $('#checkupProve').empty(); + checkupFilePath = ''; + } + }, + error: function (e) { + layer.msg('上传失败'); + $('#checkupProve').empty(); + checkupFilePath = ''; + console.log(e) + } + }); + }); +} + +function nextClick(e){ + if(checkupFilePath == ''){ + layer.msg('请上出场证明'); + return; + } + let loadingMsg = layer.msg('数据请求中,请稍候...', {icon: 16, scrollbar: false, time: 0, shade: [0.8, '#393D49']}); + // form请求地址 + let formUrl = ctxPath + "/inOutSpace/exitRoute"; + var data = { + idNumber: idNumbers, + einTime: einTimes, + exitProvePath: checkupFilePath + }; + $.ajax({ + type: 'POST', + async: false, // 默认异步true,false表示同步 + url: formUrl, // 请求地址 + contentType: "application/json; charset=utf-8", + dataType: 'json', // 服务器返回数据类型 + data: JSON.stringify(data), //获取提交的表单字段 + success: function (data) { + if (data.code == 200) { + layer.close(loadingMsg); // 关闭提示层 + parent.layer.closeAll(); + window.parent.location.reload(); + } else { + layer.alert(data.msg); + } + }, + error: function (XMLHttpRequest, textStatus, e) { + layer.close(loadingMsg); + layer.msg('数据请求发生异常,请稍后重试', {icon: 16, scrollbar: false}); + } + }); + +} + +//设置弹窗关闭 +function reloading() { + var index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引 + parent.layer.close(index); //再执行关闭 + window.parent.location.reload(); +} \ No newline at end of file diff --git a/modules/bmw/src/main/resources/static/js/work/Person/InOutSpace/salaryApplicationPath.js b/modules/bmw/src/main/resources/static/js/work/Person/InOutSpace/salaryApplicationPath.js new file mode 100644 index 0000000..05dbed2 --- /dev/null +++ b/modules/bmw/src/main/resources/static/js/work/Person/InOutSpace/salaryApplicationPath.js @@ -0,0 +1,101 @@ +let upload,checkupFilePath,idNumbers,einTimes; +function setData(idNumber,einTime){ + idNumbers =idNumber; + einTimes = einTime; + layui.use(['form', 'laydate', 'upload', 'element'], function () { + let form = layui.form; //只有执行了这一步,部分表单元素才会自动修饰成功 + upload = layui.upload; + form.render(); + + var uploadup = upload.render({ + elem: '#checkup_img', + url: fileUrl + '/file/upload', //改成您自己的上传接口 + multiple: false, //是否允许多文件上传,默认未false + dataType: "json", + exts: 'pdf|PDF', + auto: true, //是否自动上传 ,默认为true + number: 1, //限制为1张 + size: 1024*30, //最大文件大小,单位k + bindAction: '#hideUploadCheckup', //绑定的按钮 + field: 'file', //传到后台的字段名,默认file + choose: function (obj) { + flag = false; + // 清空现有预览和文件信息 + $('#checkupProve').empty(); + checkupFilePath = ''; // 确保清除旧的文件路径 + + obj.preview(function (index, file, result) { + $("#previewCheckupProve").css("display", ""); + var previewImgSrc = "../../../../img/filetype/pdf.png"; // 预览图片源 + + $('#checkupProve').append( + '
' + + '' + file.name + '' + + '
' + (file.name.length > 8 ? (file.name.substr(0, 8) + "..") : file.name) + '
' + + '
' + ); + }); + }, + done: function (data) { + if(data.code === 200) { + layer.msg('上传成功'); + checkupFilePath = data.data.url; + } else { + layer.msg('上传失败'); + $('#checkupProve').empty(); + checkupFilePath = ''; + } + }, + error: function (e) { + layer.msg('上传失败'); + $('#checkupProve').empty(); + checkupFilePath = ''; + console.log(e) + } + }); + }); +} + +function nextClick(e){ + if(checkupFilePath == ''){ + layer.msg('请上出场证明'); + return; + } + let loadingMsg = layer.msg('数据请求中,请稍候...', {icon: 16, scrollbar: false, time: 0, shade: [0.8, '#393D49']}); + // form请求地址 + let formUrl = ctxPath + "/inOutSpace/exitRoute"; + var data = { + idNumber: idNumbers, + einTime: einTimes, + salaryApplicationPath: checkupFilePath + }; + $.ajax({ + type: 'POST', + async: false, // 默认异步true,false表示同步 + url: formUrl, // 请求地址 + contentType: "application/json; charset=utf-8", + dataType: 'json', // 服务器返回数据类型 + data: JSON.stringify(data), //获取提交的表单字段 + success: function (data) { + if (data.code == 200) { + layer.close(loadingMsg); // 关闭提示层 + parent.layer.closeAll(); + window.parent.location.reload(); + } else { + layer.alert(data.msg); + } + }, + error: function (XMLHttpRequest, textStatus, e) { + layer.close(loadingMsg); + layer.msg('数据请求发生异常,请稍后重试', {icon: 16, scrollbar: false}); + } + }); + +} + +//设置弹窗关闭 +function reloading() { + var index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引 + parent.layer.close(index); //再执行关闭 + window.parent.location.reload(); +} \ No newline at end of file diff --git a/modules/bmw/src/main/resources/static/pages/work/Person/AttendanceMachine/personEntryList.js b/modules/bmw/src/main/resources/static/pages/work/Person/AttendanceMachine/personEntryList.js index 9f27556..825320f 100644 --- a/modules/bmw/src/main/resources/static/pages/work/Person/AttendanceMachine/personEntryList.js +++ b/modules/bmw/src/main/resources/static/pages/work/Person/AttendanceMachine/personEntryList.js @@ -136,7 +136,7 @@ function init(){ } }, { - "width": "7%", + "width": "8%", "data": "", "defaultContent": "", "orderable": false, @@ -163,7 +163,7 @@ function init(){ }, { "data": "", - "width":"5%", + "width":"8%", "defaultContent": "", "orderable": false, "render": function (data, type, row) { @@ -190,7 +190,11 @@ function init(){ html += buttonUpdate(idNumber, "", pers); if(checkupFilePath){ html += buttonCheckup(idNumber,checkupFilePath, "", pers); + html += buttonCheckDataEns(idNumber, "", pers); + }else{ + html += buttonCheckDataEn(idNumber, "", pers); } + return html; } } @@ -439,4 +443,46 @@ function checkup(){ area: [width, height], maxmin: false, }); +} + +function buttonCheckDataEn(idNumber, permission, pers){ + if(permission != ""){ + if ($.inArray(permission, pers) < 0) { + return ""; + } + } + var btn = $(""); + return btn.prop("outerHTML"); +} + +function buttonCheckDataEns(idNumber, permission, pers){ + if(permission != ""){ + if ($.inArray(permission, pers) < 0) { + return ""; + } + } + var btn = $(""); + return btn.prop("outerHTML"); +} + +/** + * 查看 + * */ +function checkViewEn(idNumber) { + localStorage.setItem("idNumber", idNumber); + let width = "80%"; + let height = "90%"; + var index = layer.open({ + title: ['出入场记录', 'color:#3B70A1;background-color:#E8ECEB;font-size:20px'], + type: 2, + content: '../InOutSpace/InOutRecordList.html', + area: [width, height], + maxmin: false, + success: function (layero, index) { + + }, + yes: function (index, layero) { + + } + }); } \ No newline at end of file diff --git a/modules/bmw/src/main/resources/static/pages/work/Person/InOutSpace/InOutRecordList.html b/modules/bmw/src/main/resources/static/pages/work/Person/InOutSpace/InOutRecordList.html index 9c93810..a8c49e2 100644 --- a/modules/bmw/src/main/resources/static/pages/work/Person/InOutSpace/InOutRecordList.html +++ b/modules/bmw/src/main/resources/static/pages/work/Person/InOutSpace/InOutRecordList.html @@ -40,6 +40,8 @@ 入场时间 出场时间 合同绑定号 + 出场证明 + 工资结算申请书 操作 diff --git a/modules/bmw/src/main/resources/static/pages/work/Person/InOutSpace/exitProvePath.html b/modules/bmw/src/main/resources/static/pages/work/Person/InOutSpace/exitProvePath.html new file mode 100644 index 0000000..b747664 --- /dev/null +++ b/modules/bmw/src/main/resources/static/pages/work/Person/InOutSpace/exitProvePath.html @@ -0,0 +1,47 @@ + + + + + 出场证明-上传 + + + + + +
+
+ +
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+
+ +
+
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/modules/bmw/src/main/resources/static/pages/work/Person/InOutSpace/salaryApplicationPath.html b/modules/bmw/src/main/resources/static/pages/work/Person/InOutSpace/salaryApplicationPath.html new file mode 100644 index 0000000..ef374f7 --- /dev/null +++ b/modules/bmw/src/main/resources/static/pages/work/Person/InOutSpace/salaryApplicationPath.html @@ -0,0 +1,47 @@ + + + + + 出场证明-上传 + + + + + +
+
+ +
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+
+ +
+
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/readme.text b/readme.text index 4a13f37..bf217ea 100644 --- a/readme.text +++ b/readme.text @@ -1,9 +1,9 @@ 系统部署注意事项 -1.修改public.js +1.修改publicJs.js 2.IpAndPathConfig环境配置更换一下 3.勾选prod环境 4.file的FFmpeg路径修改 -5.PersonComprehensiveController 中的downloads方法修改一下“获取操作系统类型并确定基础路径” +5.PersonComprehensiveController 中的 downloads 方法修改一下“获取操作系统类型并确定基础路径” ================================================================ 正式环境需要修改推送同一平台的的地址 UnifiedPlatformConfig.java - 已取消,其他文件和合并了 正式环境需要查询计划数据地址 PlanDataConfig.java - 已取消