人员出入场信息管理-合同编号管理

This commit is contained in:
lSun 2025-06-23 17:51:06 +08:00
parent 038af166cc
commit 247b1894d2
9 changed files with 104 additions and 18 deletions

View File

@ -136,7 +136,7 @@ public class ContractController {
if (count == 1){
ar = R.ok();
}else if(count == -1){
ar = R.fail("合同编号要根据工程名称去生成,请先选择工程名称");
ar = R.fail("合同编号要根据工程,分包、班组名称去生成,请先在“人员入场”中配置工程,分包、班组名称");
} else {
ar = R.fail(Constants.INSERT_FAIL);
}

View File

@ -52,7 +52,7 @@ public class ContractServiceImpl implements ContractService {
}
if(i>0){
String proId = bean.getProId();
if(!StringUtils.isEmpty(proId)){
if (!StringUtils.isEmpty(proId) && !"null".equalsIgnoreCase(proId)){
String proName = personComprehensiveDao.getProNme(proId);
String abbreviation = getInitialsUpperCaseWithPinyin(proName);
int contractNum =personComprehensiveDao.getContractNum();

View File

@ -445,6 +445,17 @@ public class PersonComprehensiveServiceImp implements PersonComprehensiveService
}
//第四页数据添加 上传合同 //合同签完不能改
if (o.getIsHaveWage() == 0 && StringUtils.isNotEmpty(o.getContractCode())) {
if(Objects.equals(o.getContractCode(), "1111")){
String proId = o.getProId();
if (!StringUtils.isEmpty(proId)) {
String proName = dao.getProNme(proId);
String abbreviation = getInitialsUpperCaseWithPinyin(proName);
int contractNum = dao.getContractNum();
String dateStr = DateUtil.format(DateUtil.date(), "yyyyMMdd"); // 使用 Hutool DateUtil
String contractCode = abbreviation + dateStr + contractNum;
o.setContractCode(contractCode);
}
}
dao.replacePersonContractData(o);
}
if (StringUtils.isNotEmpty(o.getProId())) {

View File

@ -140,10 +140,11 @@
FROM bm_no_signal_team bnst
LEFT JOIN bm_team_user_relation btur ON btur.team_id = bnst.team_id AND btur.is_active = '1'
LEFT JOIN bm_worker bw ON bw.id_number = btur.id_number AND bw.IS_ACTIVE = '1'
LEFT JOIN bm_worker_ein_history bweh on bweh.id_number = bw.id_number AND bweh.is_active ='1'
LEFT JOIN bm_no_signal_team_person bnstp ON bnstp.id_number = bw.id_number AND bnstp.IS_ACTIVE = '1'
LEFT JOIN bm_worker_photo bwp1 ON bwp1.ID_NUMBER = bw.id_number AND bwp1.IS_ACTIVE = '1'
LEFT JOIN bm_worker_contract bwc ON bwc.idCard = bw.id_number AND bwc.is_active = '1' AND CURRENT_DATE() BETWEEN contractValidDate AND contractInvalidDate
WHERE bnst.is_active = '1' AND bw.id_number is not null AND bnst.id = #{params.id}
WHERE bnst.is_active = '1' AND bw.id_number is not null AND bweh.exit_status ='-1' AND bnst.id = #{params.id}
<if test="params.keyWord != null and params.keyWord != '' ">
and (
bw.`name` like concat('%', #{params.keyWord}, '%')
@ -167,10 +168,11 @@
FROM bm_no_signal_team bnst
LEFT JOIN bm_team_user_relation btur ON btur.team_id = bnst.team_id AND btur.is_active = '1'
LEFT JOIN bm_worker bw ON bw.id_number = btur.id_number AND bw.IS_ACTIVE = '1'
LEFT JOIN bm_worker_ein_history bweh on bweh.id_number = bw.id_number AND bweh.is_active ='1'
LEFT JOIN bm_no_signal_team_person bnstp ON bnstp.id_number = bw.id_number AND bnstp.IS_ACTIVE = '1'
LEFT JOIN bm_worker_photo bwp1 ON bwp1.ID_NUMBER = bw.id_number AND bwp1.IS_ACTIVE = '1'
LEFT JOIN bm_worker_contract bwc ON bwc.idCard = bw.id_number AND bwc.is_active = '1' AND CURRENT_DATE() BETWEEN contractValidDate AND contractInvalidDate
WHERE bnst.is_active = '1' AND bnst.id = #{params.id}
WHERE bnst.is_active = '1' AND bweh.exit_status ='-1' AND bnst.id = #{params.id}
<if test="params.keyWord != null and params.keyWord != '' ">
and (
bw.`name` like concat('%', #{params.keyWord}, '%')
@ -288,7 +290,7 @@
FROM bm_no_signal_team_person bnstp
LEFT JOIN bm_worker bw ON bw.id_number = bnstp.id_number AND bw.IS_ACTIVE = '1'
WHERE bnstp.IS_ACTIVE = '1' AND bnstp.signal_team_id = #{params.id}
<if test="params.stopTime != null and params.stopTime != '' ">
<if test="params.keyWord != null and params.keyWord != '' ">
bw.`name` like concat('%', #{params.keyWord}, '%')
</if>
limit #{offset}, #{limit}
@ -303,7 +305,7 @@
FROM bm_no_signal_team_person bnstp
LEFT JOIN bm_worker bw ON bw.id_number = bnstp.id_number AND bw.IS_ACTIVE = '1'
WHERE bnstp.IS_ACTIVE = '1' AND bnstp.signal_team_id = #{params.id}
<if test="params.stopTime != null and params.stopTime != '' ">
<if test="params.keyWord != null and params.keyWord != '' ">
bw.`name` like concat('%', #{params.keyWord}, '%')
</if>
) a

View File

@ -351,7 +351,10 @@ function uploadContractWitnessView(proId,idNumber,id,workerName, workerPostId) {
});
})
}else{
localStorage.setItem("proId", proId);
localStorage.setItem("idNumber", idNumber);
localStorage.setItem("workerName", "");
localStorage.setItem("workerPostId", "");
localStorage.setItem("delId", "-1");
localStorage.setItem("contractId", contractId);
var height = '700px';

View File

@ -197,11 +197,19 @@ function startTimeMethod(startTime,stopTime) {
, done: function (value, date) {//时间回调
var startDate = new Date($('#' + startTime).val());
var endDate = new Date($('#' + stopTime).val());
var noSignalTeamStartDate = new Date(noSignalTeamStartTime)
var noSignalTeamStopDate = new Date(noSignalTeamStopTime)
if (startDate != null) {
if (endDate != null) {
if (endDate < startDate) {
layer.msg('结束时间应大于开始时间', {icon: 0},);
$("#" + stopTime).val("");
if((startDate > noSignalTeamStopDate) || (startDate < noSignalTeamStartDate)){
layer.msg('请选择无信号班组设置的有效时间(' +noSignalTeamStartTime+ ' ~ ' + noSignalTeamStopTime + '之间)', {icon: 0,time: 6000},);
$("#" + startTime).val("");
}else{
if (endDate != null) {
if (endDate < startDate) {
layer.msg('结束时间应大于开始时间', {icon: 0},);
$("#" + stopTime).val("");
}
}
}
}
@ -219,11 +227,20 @@ function stopTimeMethod(startTime,stopTime) {
, done: function (value, date) {//时间回调
var startDate = new Date($('#' + startTime).val());
var endDate = new Date($('#' + stopTime).val());
var noSignalTeamStartDate = new Date(noSignalTeamStartTime)
var noSignalTeamStopDate = new Date(noSignalTeamStopTime)
if (startDate != null) {
if (endDate != null) {
if (endDate < startDate) {
layer.msg('结束时间应大于开始时间', {icon: 0});
if((endDate > noSignalTeamStopDate) || (endDate < noSignalTeamStartDate)){
layer.msg('请选择无信号班组设置的有效时间(' +noSignalTeamStartTime+ ' ~ ' + noSignalTeamStopTime + '之间)', {icon: 0,time: 6000},);
$("#" + stopTime).val("");
}else{
if (endDate < startDate) {
layer.msg('结束时间应大于开始时间', {icon: 0});
$("#" + stopTime).val("");
}
}
}
}

View File

@ -17,6 +17,13 @@ layui.use(['layer','laydate','form'], function () {
, type: 'date' //选择时间类型 可选值:year(年) month(年月) date(年月日) time(时分秒) datetime(年月日时分秒)
, trigger: 'click'
, format: 'yyyy-MM-dd' //时间格式 常用时间格式:yyyy-MM-dd HH:mm:ss
, min: (function () {
var date = new Date();
var year = date.getFullYear();
var month = ('0' + (date.getMonth() + 1)).slice(-2); // 月份从0开始
var day = ('0' + date.getDate()).slice(-2);
return year + '-' + month + '-' + day;
})()
, btns: ['clear', 'now', 'confirm'] //选择框右下角显示的按钮 清除-现在-确定
, done: function (value, date) {//时间回调
var startDate = new Date($('#startTime').val());
@ -36,6 +43,13 @@ layui.use(['layer','laydate','form'], function () {
, type: 'date' //选择时间类型 可选值:year(年) month(年月) date(年月日) time(时分秒) datetime(年月日时分秒)
, trigger: 'click'
, format: 'yyyy-MM-dd' //时间格式 常用时间格式:yyyy-MM-dd HH:mm:ss
, min: (function () {
var date = new Date();
var year = date.getFullYear();
var month = ('0' + (date.getMonth() + 1)).slice(-2); // 月份从0开始
var day = ('0' + date.getDate()).slice(-2);
return year + '-' + month + '-' + day;
})()
, btns: ['clear', 'now', 'confirm'] //选择框右下角显示的按钮 清除-现在-确定
, done: function (value, date) {//时间回调
var startDate = new Date($('#startTime').val());

View File

@ -506,7 +506,7 @@ function completeClick(){
//上传合同
contractId,
uploadContractSwitch: uploadContractSwitch, //上传合同 是否填写
contractCode: '0001-zdsc', //上传合同 合同编号
contractCode: contractRef, //上传合同 合同编号
laborContractType: contractTermType, //上传合同 合同期限类型
contractValidDate: contractStartTime, //上传合同 合同签订日期
contractInvalidDate: contractEndTime, //上传合同 合同终止日期
@ -630,6 +630,13 @@ function keyContentRequired(){
var phone = $('#phone').val()//手机号码
var proId = $('#proId').val(); //工程
var checkupDate = $('#checkupDate').val(); //体检日期
if(checkupDate === '' || checkupDate === 'null' || checkupDate == null){
layer.alert('未填写体检日期',{icon: 0})
$('#checkupDate').focus()
return false
}
if(postId === -1 || postId === '-1' || postId === 'null'){
layer.alert('未选择工种',{icon: 0})
$('#postId').focus()
@ -837,7 +844,9 @@ function uploadWageCardRequired(){
//上传合同 非空验证
function uploadContractRequired(){
var imgNum = $('#demoContract img').length //合同见证照片
var contractRef = $('#contractRef').val() //合同编号
//合同编号用原来的前端输入,并存后端生成。
// var contractRef = $('#contractRef').val() //合同编号
var contractTermType = $('#contractTermType').val() //合同期限类型
var contractStartTime = $('#contractStartTime').val() //合同签订日期
var contractEndTime = $('#contractEndTime').val() //合同终止日期
@ -1735,8 +1744,21 @@ function nextClick(e){
}
}
let contractTf = true;
let contractRef = $('#contractRef').val() //合同编号
contractTf = uploadContractRequired();
let contractRef = $('#demoContract img').length;
if(contractRef > 0){
$('#contractRef').val("1111")
let teamTf= teamAndProChooseRequired();
if(teamTf){
contractTf = uploadContractRequired();
}else{
contractTf = false;
}
}else{
$('#contractRef').val('')
}
// let contractRef = $('#contractRef').val() //合同编号
// contractTf = uploadContractRequired();
// if(contractRef != '' && contractRef != 'null' && contractRef != null){
// contractTf = uploadContractRequired();
// }

View File

@ -599,6 +599,13 @@ function keyContentRequired() {
var phone = $("#phone").val(); //手机号码
var proId = $("#proId").val(); //工程
var checkupDate = $('#checkupDate').val(); //体检日期
if(checkupDate === '' || checkupDate === 'null' || checkupDate == null){
layer.alert('未填写体检日期',{icon: 0})
$('#checkupDate').focus()
return false
}
if (postId === -1 || postId === "-1" || postId === "null") {
layer.alert("未选择工种", { icon: 0 });
$("#postId").focus();
@ -2004,8 +2011,18 @@ function nextClick(e) {
) {
contractTf = uploadContractRequired();
}else{
layer.alert("合同编号为空,请在合同管理先上传合同", { icon: 0 });
return false;
var imgNum = $("#demoContract img").length;
if(imgNum > 0){
$('#contractRef').val("1111")
let teamTf= teamAndProChooseRequired();
if(teamTf){
contractTf = uploadContractRequired();
}else{
contractTf = false;
}
}
// layer.alert("合同编号为空,请在合同管理先上传合同", { icon: 0 });
// return false;
}
if (contractTf) {
completeClick();