dev_xd
姜玉琦 2025-05-07 00:38:20 +08:00
commit ea16bd847c
9 changed files with 700 additions and 720 deletions

View File

@ -27,25 +27,13 @@
</div>
</div>
<certificate-bar-chart
:data="certificateData"
:height="100"
></certificate-bar-chart>
<certificate-bar-chart :data="certificateData" :height="100"></certificate-bar-chart>
<div class="rank-chart" style="height: calc(100% - 224px)">
<div class="rank-chart-title">监控列表</div>
<div class="list-max" style="height: calc(100% - 63px)">
<div
class="list-min"
id="listMin"
@mouseout="listMinMouseout"
@mouseover="listMinMouseover"
>
<div
class="list-for"
v-for="(item, i) in listData"
@click="onTowerCraneList(i)"
>
<div class="list-min" id="listMin" @mouseout="listMinMouseout" @mouseover="listMinMouseover">
<div class="list-for" :key="i" v-for="(item, i) in listData" @click="onTowerCraneList(i)">
<div :class="index == i ? 'list-con active' : 'list-con'">
<div class="list-top">
<div class="list-img">
@ -53,16 +41,13 @@
</div>
<div class="list-info">
<div class="list-info-name">
设备名称<span>{{ item.deviceName }}</span>
设备名称
<span>{{ item.deviceName }}</span>
</div>
<div class="list-info-name">
设备状态
<span class="list-info-state" v-if="item.deviceState != 0"
>离线</span
>
<span class="list-info-state active" v-if="item.deviceState == 0"
>在线</span
>
<span class="list-info-state" v-if="item.deviceState != 0">线</span>
<span class="list-info-state active" v-if="item.deviceState == 0">线</span>
</div>
</div>
</div>
@ -70,29 +55,34 @@
<el-row>
<el-col :span="10">
<div class="list-details">
司机<span v-cloak>{{ item.driverName }}</span>
司机
<span v-cloak>{{ item.driverName }}</span>
</div>
</el-col>
<el-col :span="14">
<div class="list-details">
电话<span v-cloak>{{ item.driverPhone }}</span>
电话
<span v-cloak>{{ item.driverPhone }}</span>
</div>
</el-col>
<el-col :span="10">
<div class="list-details">
安全员<span v-cloak>{{ item.safetyOfficerName }}</span>
安全员
<span v-cloak>{{ item.safetyOfficerName }}</span>
</div>
</el-col>
<el-col :span="14">
<div class="list-details">
电话<span v-cloak>{{ item.safetyOfficerPhone }}</span>
电话
<span v-cloak>{{ item.safetyOfficerPhone }}</span>
</div>
</el-col>
</el-row>
</div>
<div class="list-time">
最后一次启用时间<span v-cloak>{{ item.lastEnabledTime }}</span>
最后一次启用时间
<span v-cloak>{{ item.lastEnabledTime }}</span>
</div>
</div>
</div>
@ -176,11 +166,7 @@
</el-col>
</el-row>
<div class="safe-tower-crane-max">
<div
class="safe-tower-crane-min"
@mouseout="listMinMouseout"
@mouseover="listMinMouseover"
>
<div class="safe-tower-crane-min" @mouseout="listMinMouseout" @mouseover="listMinMouseover">
<el-row>
<el-col :span="2">
<div class="safe-tower-left" @click="safeTowerLeft"></div>
@ -228,20 +214,13 @@
<div class="survey-oil-hr"></div>
<div class="survey-oil-text">报警类型</div>
</div>
<div
class="analyse-number-max"
id="afootOverflowType"
@mouseout="listMinMouseoutType"
@mouseover="listMinMouseoverType"
>
<div
class="glr-login-number-max analyse-num-max"
v-for="item in warningList"
>
<div class="analyse-number-max" id="afootOverflowType" @mouseout="listMinMouseoutType" @mouseover="listMinMouseoverType">
<div :key="index" class="glr-login-number-max analyse-num-max" v-for="(item,index) in warningList">
<div class="glr-login-number-bgd glr-login-number-red-bgd"></div>
<div class="glr-login-number analyse-login-numbe">
<div v-cloak>
<img src="images/text_red_spot.png" />{{ item.warnType }}
<img src="images/text_red_spot.png" />
{{ item.warnType }}
</div>
<div class="glr-rate-value glr-rate-red-value">
<span v-cloak>{{ item.warnCount }}</span>
@ -258,33 +237,17 @@
<div class="analyse-text">正在发生</div>
</div>
<div class="afoot-content safe-afoot-content">
<div
class="afoot-overflow safe-afoot-overflow"
id="afootOverflow"
@mouseout="warningListMinMouseout"
@mouseover="warningListMinMouseover"
>
<div class="afoot-overflow safe-afoot-overflow" id="afootOverflow" @mouseout="warningListMinMouseout" @mouseover="warningListMinMouseover">
<div v-if="warningData.length == 0" class="not-data"></div>
<div
v-if="warningData.length > 0"
class="afoot-con-for"
style="height: 180px"
v-for="item in warningData"
>
<div class="afoot-machinery-nam safe-afoot-machinery-nam" v-cloak>
{{ item.warn_context }}
</div>
<div :key="idx" v-if="warningData.length > 0" class="afoot-con-for" style="height: 180px" v-for="(item,idx) in warningData">
<div class="afoot-machinery-nam safe-afoot-machinery-nam" v-cloak>{{ item.warn_context }}</div>
<div class="afoot-machinery-info">
<div class="afoot-machinery-img">
<img :src="item.images" v-if="item.images" />
</div>
<div class="afoot-machinery-data">
<div class="afoot-machinery-state" v-cloak>
预警值{{ item.warn_value }}
</div>
<div class="afoot-machinery-time" v-cloak>
{{ item.warn_time }}
</div>
<div class="afoot-machinery-state" v-cloak>{{ item.warn_value }}</div>
<div class="afoot-machinery-time" v-cloak>{{ item.warn_time }}</div>
</div>
</div>
</div>
@ -309,7 +272,9 @@
</div>
<div class="xhz-current-value-data">
<div>高度</div>
<p><span v-cloak v-html="footInfo.foot0"></span> m</p>
<p>
<span v-cloak v-html="footInfo.foot0"></span> m
</p>
</div>
</div>
</el-col>
@ -322,7 +287,9 @@
</div>
<div class="xhz-current-value-data">
<div>楼层</div>
<p><span v-cloak v-html="footInfo.foot1"></span> </p>
<p>
<span v-cloak v-html="footInfo.foot1"></span>
</p>
</div>
</div>
</el-col>
@ -335,7 +302,9 @@
</div>
<div class="xhz-current-value-data">
<div>当前人数</div>
<p><span v-cloak v-html="footInfo.foot2"></span> </p>
<p>
<span v-cloak v-html="footInfo.foot2"></span>
</p>
</div>
</div>
</el-col>
@ -348,7 +317,9 @@
</div>
<div class="xhz-current-value-data">
<div>当前载重</div>
<p><span v-cloak v-html="footInfo.foot3"></span> t</p>
<p>
<span v-cloak v-html="footInfo.foot3"></span> t
</p>
</div>
</div>
</el-col>
@ -361,7 +332,9 @@
</div>
<div class="xhz-current-value-data">
<div>倾角1</div>
<p><span v-cloak v-html="footInfo.foot4"></span> °</p>
<p>
<span v-cloak v-html="footInfo.foot4"></span> °
</p>
</div>
</div>
</el-col>
@ -374,7 +347,9 @@
</div>
<div class="xhz-current-value-data">
<div>倾角2</div>
<p><span v-cloak v-html="footInfo.foot5"></span> °</p>
<p>
<span v-cloak v-html="footInfo.foot5"></span> °
</p>
</div>
</div>
</el-col>
@ -387,7 +362,9 @@
</div>
<div class="xhz-current-value-data">
<div>风速</div>
<p><span v-cloak v-html="footInfo.foot6"></span> m/s</p>
<p>
<span v-cloak v-html="footInfo.foot6"></span> m/s
</p>
</div>
</div>
</el-col>
@ -400,7 +377,9 @@
</div>
<div class="xhz-current-value-data">
<div>速度</div>
<p><span v-cloak v-html="footInfo.foot7"></span> m/s</p>
<p>
<span v-cloak v-html="footInfo.foot7"></span> m/s
</p>
</div>
</div>
</el-col>
@ -413,7 +392,9 @@
</div>
<div class="xhz-current-value-data">
<div>速度方向</div>
<p><span v-cloak v-html="footInfo.foot8"></span></p>
<p>
<span v-cloak v-html="footInfo.foot8"></span>
</p>
</div>
</div>
</el-col>
@ -427,11 +408,7 @@
<div class="xhz-current-value-data">
<div>前门状态</div>
<p>
<span
:class="footInfo.foot9 == '打开' ? 'open' : 'close'"
v-cloak
v-html="footInfo.foot9"
></span>
<span :class="footInfo.foot9 == '打开' ? 'open' : 'close'" v-cloak v-html="footInfo.foot9"></span>
</p>
</div>
</div>
@ -446,11 +423,7 @@
<div class="xhz-current-value-data">
<div>后门状态</div>
<p>
<span
:class="footInfo.foot10 == '打开' ? 'open' : 'close'"
v-cloak
v-html="footInfo.foot10"
></span>
<span :class="footInfo.foot10 == '打开' ? 'open' : 'close'" v-cloak v-html="footInfo.foot10"></span>
</p>
</div>
</div>
@ -462,9 +435,11 @@
</template>
<script>
import debounce from "lodash.debounce";
import "@/components/tower-crane-value-1";
import "@/components/tower-crane-value-2";
import debounce from 'lodash.debounce'
import '@/components/tower-crane-value-1'
import '@/components/tower-crane-value-2'
import '@/components/dumbwaiter-1.js'
import '@/components/dumbwaiter-2.js'
export default {
data() {
return {
@ -477,8 +452,8 @@ export default {
index: 0,
//
dumbwaiterValue: {},
comName: "dumbwaiter-1",
direction: "right",
comName: 'dumbwaiter-1',
direction: 'right',
deviceId: 0,
topInfo: {
top0: 0,
@ -500,8 +475,8 @@ export default {
foot6: 10,
foot7: 10,
foot8: 10,
foot9: "",
foot10: "",
foot9: '',
foot10: '',
},
warningData: [],
dayWarnCount: 22,
@ -513,114 +488,112 @@ export default {
warningInterval: undefined,
forIndex: 0,
warningData: [],
};
}
},
mounted() {
this.$store.dispatch("ChangeNav", 308);
this.$bus.$on("projectChange", (prj) => {
this.selProject = prj;
this.init();
});
this.selProject = this.$store.getters.selProject;
this.init();
this.$store.dispatch('ChangeNav', 308)
this.$bus.$on('projectChange', (prj) => {
this.selProject = prj
this.init()
})
this.selProject = this.$store.getters.selProject
this.init()
},
created() {},
methods: {
init() {
this.certificateData = JSON.parse(
'[{"text":"在线数量","value":5},{"text":"离线数量","value":1}]'
);
this.certificateData = JSON.parse('[{"text":"在线数量","value":5},{"text":"离线数量","value":1}]')
this.listData = JSON.parse(
'[{"createUserid":null,"ratedSpeed":"1.8","delFlag":"0","deviceId":"3223081738","deviceName":"2#-2","ratedPeopleCount":"9","entryTime":"2024-03-09 15:35:42","lastEnabledTime":"2024-03-09 15:35:42","safetyOfficerName":"马宁","maxHeight":120.5,"createTime":"2023-09-12 18:25:13","cageSize":"800*800","ratedLoad":"2000","safetyOfficerPhone":"18629159632","driverName":"张巧团","driverPhone":"17324808902","id":5,"deviceState":"0","projectId":"98"},{"createUserid":null,"ratedSpeed":"4.9","delFlag":"0","deviceId":"3223081741","deviceName":"3223081741","ratedPeopleCount":"9","entryTime":"2024-03-09 15:35:42","lastEnabledTime":"2024-03-10 10:32:49","safetyOfficerName":"马宁","maxHeight":160.2,"createTime":"2023-09-12 18:25:13","cageSize":"800*800","ratedLoad":"2000","safetyOfficerPhone":"18629159632","driverName":null,"driverPhone":null,"id":6,"deviceState":"0","projectId":"98"},{"createUserid":null,"ratedSpeed":"4.9","delFlag":"0","deviceId":"3223081748","deviceName":"3223081748","ratedPeopleCount":"9","entryTime":"2024-03-09 15:35:42","lastEnabledTime":"2024-03-10 10:46:36","safetyOfficerName":"马宁","maxHeight":187.2,"createTime":"2023-09-12 18:25:13","cageSize":"800*800","ratedLoad":"2000","safetyOfficerPhone":"18629159632","driverName":null,"driverPhone":null,"id":7,"deviceState":"0","projectId":"98"},{"createUserid":null,"ratedSpeed":"1.6","delFlag":"0","deviceId":"3223081722","deviceName":"3#-1","ratedPeopleCount":"9","entryTime":null,"lastEnabledTime":"2024-03-10 09:48:34","safetyOfficerName":"马宁","maxHeight":122.9,"createTime":"2023-09-12 18:25:13","cageSize":"800*800","ratedLoad":"2000","safetyOfficerPhone":"18629159632","driverName":"高军平","driverPhone":"15139573902","id":8,"deviceState":"0","projectId":"98"},{"createUserid":null,"ratedSpeed":"1.6","delFlag":"0","deviceId":"3223081749","deviceName":"3#-2","ratedPeopleCount":"9","entryTime":null,"lastEnabledTime":"2024-03-09 13:47:07","safetyOfficerName":"马宁","maxHeight":124.8,"createTime":"2023-09-12 18:25:13","cageSize":null,"ratedLoad":"2000","safetyOfficerPhone":"18629159632","driverName":"郭伟娟","driverPhone":"15239586568","id":9,"deviceState":"0","projectId":"98"}]'
);
)
this.warningList = [
{ warnType: "报警类型A", warnCount: 4 },
{ warnType: "报警类型B", warnCount: 4 },
{ warnType: "报警类型C", warnCount: 4 },
{ warnType: "报警类型D", warnCount: 4 },
{ warnType: "报警类型E", warnCount: 4 },
{ warnType: "报警类型F", warnCount: 4 },
{ warnType: "报警类型G", warnCount: 4 },
{ warnType: "报警类型H", warnCount: 4 },
];
{ warnType: '报警类型A', warnCount: 4 },
{ warnType: '报警类型B', warnCount: 4 },
{ warnType: '报警类型C', warnCount: 4 },
{ warnType: '报警类型D', warnCount: 4 },
{ warnType: '报警类型E', warnCount: 4 },
{ warnType: '报警类型F', warnCount: 4 },
{ warnType: '报警类型G', warnCount: 4 },
{ warnType: '报警类型H', warnCount: 4 },
]
this.warningData = [
{
warn_value: "预警A",
images: ["images/831.jpg"],
warn_context: "告警内容",
warn_time: "24-02-02 14:00",
project_abbreviation: "xxx项目",
warn_value: '预警A',
images: ['images/831.jpg'],
warn_context: '告警内容',
warn_time: '24-02-02 14:00',
project_abbreviation: 'xxx项目',
},
{
warn_value: "预警A",
images: ["images/831.jpg"],
warn_context: "告警内容",
time: "24-02-02 14:00",
project_abbreviation: "xxx项目",
warn_value: '预警A',
images: ['images/831.jpg'],
warn_context: '告警内容',
time: '24-02-02 14:00',
project_abbreviation: 'xxx项目',
},
{
warn_value: "预警A",
images: ["images/831.jpg"],
warn_context: "告警内容",
time: "24-02-02 14:00",
project_abbreviation: "xxx项目",
warn_value: '预警A',
images: ['images/831.jpg'],
warn_context: '告警内容',
time: '24-02-02 14:00',
project_abbreviation: 'xxx项目',
},
];
]
//list
if (this.listData.length > 0) {
this.interval = setInterval(this.automaticRoll, 10000);
this.interval = setInterval(this.automaticRoll, 10000)
}
//
this.warningTypeInterval = setInterval(this.automaticRollType, 5000);
this.warningTypeInterval = setInterval(this.automaticRollType, 5000)
//
this.warningInterval = setInterval(this.safeAutomaticRoll, 5000);
this.index = 0;
this.deviceId = this.listData[0].id;
this.updateDumbwaiterValue();
this.warningInterval = setInterval(this.safeAutomaticRoll, 5000)
this.index = 0
this.deviceId = this.listData[0].id
this.updateDumbwaiterValue()
},
onTowerCraneList(n) {
this.index = n;
this.deviceId = this.listData[n].id;
this.index = n
this.deviceId = this.listData[n].id
//
this.direction = "right";
if (this.comName == "dumbwaiter-1") {
this.comName = "dumbwaiter-2";
this.direction = 'right'
if (this.comName == 'dumbwaiter-1') {
this.comName = 'dumbwaiter-2'
} else {
this.comName = "dumbwaiter-1";
this.comName = 'dumbwaiter-1'
}
},
//
listMinMouseover() {
clearInterval(this.interval);
clearInterval(this.interval)
},
listMinMouseout() {
this.interval = setInterval(this.automaticRoll, 10000);
this.interval = setInterval(this.automaticRoll, 10000)
},
automaticRoll() {
//
if (this.direction == "right") {
if (this.direction == 'right') {
if (this.index == this.listData.length - 1) {
this.index = 0;
this.index = 0
} else {
this.index = this.index + 1;
this.index = this.index + 1
}
} else {
if (this.index == 0) {
this.index = this.listData.length - 1;
this.index = this.listData.length - 1
} else {
this.index = this.index - 1;
this.index = this.index - 1
}
}
if (this.comName == "dumbwaiter-1") {
this.comName = "dumbwaiter-2";
if (this.comName == 'dumbwaiter-1') {
this.comName = 'dumbwaiter-2'
} else {
this.comName = "dumbwaiter-1";
this.comName = 'dumbwaiter-1'
}
var height = $(".list-for").innerHeight();
$("#listMin").animate({ scrollTop: height * this.index + "px" });
this.deviceId = this.listData[this.index].deviceId;
this.updateDumbwaiterValue();
var height = $('.list-for').innerHeight()
$('#listMin').animate({ scrollTop: height * this.index + 'px' })
this.deviceId = this.listData[this.index].deviceId
this.updateDumbwaiterValue()
},
updateDumbwaiterValue() {
this.dumbwaiterValue = {
@ -631,57 +604,54 @@ export default {
liftingHeight: this.listData[this.index].ratedPeopleCount,
runningSpeed: this.listData[this.index].ratedSpeed,
enterTime: this.listData[this.index].entryTime,
};
}
},
safeTowerLeft() {
this.direction = "left";
this.automaticRoll();
this.direction = 'left'
this.automaticRoll()
},
safeTowerRight() {
//
this.direction = "right";
this.automaticRoll();
this.direction = 'right'
this.automaticRoll()
},
//
automaticRollType() {
var height = $(".glr-login-number-max").innerHeight();
if (
$("#afootOverflowType").scrollTop() ==
height * this.warningList.length - $("#afootOverflowType").innerHeight()
) {
this.warningTypeIndex = 0;
var height = $('.glr-login-number-max').innerHeight()
if ($('#afootOverflowType').scrollTop() == height * this.warningList.length - $('#afootOverflowType').innerHeight()) {
this.warningTypeIndex = 0
} else {
this.warningTypeIndex = this.warningTypeIndex + 1;
this.warningTypeIndex = this.warningTypeIndex + 1
}
$("#afootOverflowType").animate({
scrollTop: height * this.warningTypeIndex + "px",
});
$('#afootOverflowType').animate({
scrollTop: height * this.warningTypeIndex + 'px',
})
},
listMinMouseoverType() {
clearInterval(this.warningTypeInterval);
clearInterval(this.warningTypeInterval)
},
listMinMouseoutType() {
this.warningTypeInterval = setInterval(this.automaticRollType, 5000);
this.warningTypeInterval = setInterval(this.automaticRollType, 5000)
},
//
safeAutomaticRoll() {
var height = $(".safe-afoot-overflow").innerHeight();
var height = $('.safe-afoot-overflow').innerHeight()
if (this.forIndex == this.warningData.length) {
this.forIndex = 0;
this.forIndex = 0
} else {
this.forIndex = this.forIndex + 1;
this.forIndex = this.forIndex + 1
}
$("#afootOverflow").animate({ scrollTop: height * this.forIndex + "px" });
$('#afootOverflow').animate({ scrollTop: height * this.forIndex + 'px' })
},
warningListMinMouseover() {
clearInterval(this.warningInterval);
clearInterval(this.warningInterval)
},
warningListMinMouseout() {
this.warningInterval = setInterval(this.safeAutomaticRoll, 5000);
this.warningInterval = setInterval(this.safeAutomaticRoll, 5000)
},
},
};
}
</script>
<style lang="less">

View File

@ -347,32 +347,32 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="groupBYProject" parameterType="ProCostOutput" resultMap="ProCostOutputResult">
select x.id,x.remark,x.money,y.money money2,x.month from (
select a.dict_value id, a.dict_label remark,sum(b.money) money,count(a.id) month ,'总投资' cost_type from ( SELECT a.id,c.dict_label,c.dict_value
FROM sur_project a,sys_dict_data c
where a.isDel=0
FROM pro_project_info a,sys_dict_data c
where a.is_Del=0
<if test="costType==1">
and a.projectType=c.dict_value and c.dict_type='project_category'
and a.project_type=c.dict_value and c.dict_type='project_category'
</if>
<if test="costType==2">
and a.projiectLevel=c.dict_value and c.dict_type='project_level'
and a.project_level=c.dict_value and c.dict_type='project_level'
</if>
<if test="id!=null and id>0"> and a.deptId = #{id}</if>
) a
left join (select project_id,money from sur_project_cost_output where cost_type=1) b on a.id=b.project_id
left join (select project_id,money from pro_cost_output where cost_type=1) b on a.id=b.project_id
group by a.dict_value,a.dict_label ) x,
(
select a.dict_value id, a.dict_label remark,sum(b.money) money,count(a.id) month ,'年度' cost_type from (
SELECT a.id,c.dict_label,c.dict_value
FROM sur_project a,sys_dict_data c
where a.isDel=0
FROM pro_project_info a,sys_dict_data c
where a.is_Del=0
<if test="costType==1">
and a.projectType=c.dict_value and c.dict_type='project_category'
and a.project_type=c.dict_value and c.dict_type='project_category'
</if>
<if test="costType==2">
and a.projiectLevel=c.dict_value and c.dict_type='project_level'
and a.project_level=c.dict_value and c.dict_type='project_level'
</if>
<if test="id!=null and id>0"> and a.deptId = #{id}</if>
) a
left join (select project_id,money from sur_project_cost_output where cost_type=2 and year=#{year}) b on a.id=b.project_id
left join (select project_id,money from pro_cost_output where cost_type=2 and year=#{year}) b on a.id=b.project_id
group by a.dict_value,a.dict_label
)y where x.id=y.id
</select>

View File

@ -425,7 +425,7 @@ public class AttendanceJgwTask {
String filePath= resourcesConfig.getUploadPath();
try {
String name=FileUtil.getName(photo);
return "/jgw"+FileUtils.writeBytes(buffer, filePath+"/jgw",name);
return "/jgw/"+FileUtils.writeBytes(buffer, filePath+"/jgw",name);
}catch (Exception ex){
return "";
}
@ -827,7 +827,7 @@ public class AttendanceJgwTask {
private void doSyncWorker(JSONObject jo, long startId, QuartzProjectAttendanceCfg it) {
String appId=jo.getString("appId");
String token=jo.getString("token");
String projectId=jo.getString("projectId");
String projectId=jo.getString("appProjectId");
String path="/webapi/project/findAddWorkerByProject";
String time = System.currentTimeMillis() + "";
String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"&timestamp=" + time;
@ -913,7 +913,7 @@ public class AttendanceJgwTask {
private void doSyncProContractor(JSONObject jo, long startId, QuartzProjectAttendanceCfg it) {
String appId=jo.getString("appId");
String token=jo.getString("token");
String projectId=jo.getString("projectId");
String projectId=jo.getString("appProjectId");
String path="/webapi/project/findProContractorByProjectId";
String time = System.currentTimeMillis() + "";
String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"&timestamp=" + time;
@ -972,7 +972,7 @@ public class AttendanceJgwTask {
private void doSyncDirectlyUnderGroup(JSONObject jo, long startId, QuartzProjectAttendanceCfg it) {
String appId=jo.getString("appId");
String token=jo.getString("token");
String projectId=jo.getString("projectId");
String projectId=jo.getString("appProjectId");
String phone=jo.getString("phone");
String subcontractorId=getSubcontractor(appId,token,phone);
String path="/webapi/project/findDirectlyUnderTeam";
@ -1031,7 +1031,7 @@ public class AttendanceJgwTask {
private void doSyncGroup(JSONObject jo, long startId, QuartzProjectAttendanceCfg it) {
String appId=jo.getString("appId");
String token=jo.getString("token");
String projectId=jo.getString("projectId");
String projectId=jo.getString("appProjectId");
String path="/webapi/project/findTeamByProjectId";
String time = System.currentTimeMillis() + "";
String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"&timestamp=" + time;
@ -1134,7 +1134,7 @@ public class AttendanceJgwTask {
private void doSyncAttendanceData(JSONObject jo, String startId, QuartzProjectAttendanceCfg it) {
String appId=jo.getString("appId");
String token=jo.getString("token");
String projectId=jo.getString("projectId");
String projectId=jo.getString("appProjectId");
String startTime=jo.getString("startTime");
String endTime=jo.getString("endTime");
String path="/webapi/project/findAttendanceByProject";

View File

@ -409,6 +409,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="subDeptId!=null and subDeptId>0">
and sp.dis_dept_id=#{subDeptId}
</if>
<if test='proType != null and proType != "" and proType != "0"'> and sp.project_Type = #{proType}</if>
<if test="prjIds !=null and prjIds.size()>0">
and c.project_id in
<foreach collection="prjIds" item="item" index="index" open="(" close=")" separator=",">
@ -451,7 +452,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="todayAttendance" parameterType="QuartzProjectAttendanceData" resultMap="SurProjectAttendanceDataResult">
select ady.* from sur_project_attendance_data_${year} ady
left join sur_project sp on sp.id = ady.projectId
left join pro_project_info sp on sp.id = ady.projectId
where sp.is_Del=0
<if test="projectId!=null and projectId>0">
and ady.projectId=#{projectId}
@ -468,6 +469,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="deptId!=null and deptId>0">
and sp.dis_dept_id=#{deptId}
</if>
<if test='proType != null and proType != "" and proType != "0"'> and sp.project_Type = #{proType}</if>
<if test="prjIds !=null and prjIds.size()>0">
and ady.projectId in
<foreach collection="prjIds" item="item" index="index" open="(" close=")" separator=",">
@ -503,14 +505,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="projectId!=null and projectId>0">
and projectId=#{projectId}
</if>
and projectId in (select id from sur_project sp where sp.isDel=0
and projectId in (select id from pro_project_info sp where sp.is_Del=0
<if test="deptId!=null and deptId>0">
and sp.deptId=#{deptId}
and sp.dis_dept_id=#{deptId}
</if>
<if test="attendanceTime != null and attendanceTime != ''"> and date(ady.attendance_time) =date(#{attendanceTime})</if>
<if test='proType != null and proType != "" and proType != "0"'> and sp.projectType = #{proType}</if>
<if test='proType != null and proType != "" and proType != "0"'> and sp.project_type = #{proType}</if>
<if test="prjIds !=null and prjIds.size()>0">
and ady.projectId in
<foreach collection="prjIds" item="item" index="index" open="(" close=")" separator=",">

View File

@ -507,7 +507,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and c.project_id=#{projectId}
</if>
<if test="deptId!=null and deptId>0">
and c.project_id in (SELECT id FROM sur_project WHERE deptid=#{deptId})
and c.project_id in (SELECT id FROM pro_project_info WHERE dis_dept_id=#{deptId})
</if>
<if test="prjIds !=null and prjIds.size()>0">
and c.project_id in
@ -538,7 +538,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and c.project_id=#{projectId}
</if>
<if test="deptId!=null and deptId>0">
and c.project_id in (SELECT id FROM sur_project WHERE deptid=#{deptId})
and c.project_id in (SELECT id FROM pro_project_info WHERE dis_dept_id=#{deptId})
</if>
<if test="prjIds !=null and prjIds.size()>0">
and c.project_id in
@ -595,7 +595,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="deptId!=null and deptId>0">
and sp.dis_dept_id=#{deptId}
</if>
<if test='proType != null and proType != "" and proType != "0"'> and sp.project_Type = #{proType}</if>
<if test="prjIds !=null and prjIds.size()>0">
and b.project_id in
<foreach collection="prjIds" item="item" index="index" open="(" close=")" separator=",">
@ -641,7 +641,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="deptId!=null and deptId>0">
and p.dis_dept_id=#{deptId}
</if>
<if test='proType != null and proType != "" and proType != "0"'> and p.projectType = #{proType}</if>
<if test='proType != null and proType != "" and proType != "0"'> and p.project_Type = #{proType}</if>
<if test="prjIds !=null and prjIds.size()>0">
and b.project_id in
<foreach collection="prjIds" item="item" index="index" open="(" close=")" separator=",">
@ -691,6 +691,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="deptId!=null and deptId>0">
and p.dis_dept_id=#{deptId}
</if>
<if test='proType != null and proType != "" and proType != "0"'> and p.project_Type = #{proType}</if>
<if test="prjIds !=null and prjIds.size()>0">
and b.project_id in
<foreach collection="prjIds" item="item" index="index" open="(" close=")" separator=",">
@ -726,6 +727,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="deptId!=null and deptId>0">
and sp.dis_dept_id=#{deptId}
</if>
<if test='proType != null and proType != "" and proType != "0"'> and sp.project_Type = #{proType}</if>
<if test="prjIds !=null and prjIds.size()>0">
and b.project_id in
<foreach collection="prjIds" item="item" index="index" open="(" close=")" separator=",">

View File

@ -24,8 +24,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectSysApplyConfigVo">
select sac.id, sac.cfg_type, sac.cfg_id, sac.app_id, sac.public_key, sac.private_key, sac.project_id, sp.projectName, sac.dept_id, sd.dept_name as deptName, sac.is_del, sac.create_by, sac.create_time, sac.update_by, sac.update_time, sac.remark from sys_apply_config sac
left join sur_project sp on sac.project_id = sp.id
select sac.id, sac.cfg_type, sac.cfg_id, sac.app_id, sac.public_key, sac.private_key, sac.project_id, sp.project_name, sac.dept_id, sd.dept_name as deptName, sac.is_del, sac.create_by, sac.create_time, sac.update_by, sac.update_time, sac.remark from sys_apply_config sac
left join pro_project_info sp on sac.project_id = sp.id
left join sys_dept sd on sac.dept_id = sd.dept_id
</sql>
@ -35,7 +35,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="cfgId != null "> and sac.cfg_id = #{cfgId}</if>
<if test="cfgType != null "> and sac.cfg_type = #{cfgType}</if>
<if test="appId != null "> and sac.app_id like concat('%', #{appId}, '%')</if>
<if test="projectName != null "> and sp.projectName like concat('%', #{projectName}, '%')</if>
<if test="projectName != null "> and sp.project_name like concat('%', #{projectName}, '%')</if>
<if test="deptName != null "> and sd.dept_name like concat('%', #{deptName}, '%')</if>
<if test="isDel != null and isDel != ''"> and sac.is_del = #{isDel}</if>
</where>

View File

@ -89,14 +89,14 @@
<!-- 添加或修改考勤配置对话框 -->
<el-dialog :title="title" v-model="open" width="800px" append-to-body :close-on-click-modal="false" :close-on-press-escape="false">
<el-form ref="attendance_cfgRef" :model="form" :rules="rules" label-width="100px" :key="data.formKey">
<el-form ref="attendance_cfgRef" :model="form" :rules="rules" label-width="120px" :key="data.formKey">
<el-form-item label="所属项目" prop="projectId">
<el-select :disabled="data.currentPrjId != ''||data.mode=='edit'" v-model="form.projectId" placeholder="请选择项目">
<el-select :disabled="data.currentPrjId != ''||data.mode=='edit'" v-model="form.projectId" placeholder="请选择项目" style="width:300px;">
<el-option v-for="prj in data.projects" :key="prj.id" :label="prj.projectName" :value="prj.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="考勤厂商" prop="vendorsCode">
<el-select v-model="form.vendorsCode" placeholder="请选择厂商" @change="vendorsCodeChange">
<el-select v-model="form.vendorsCode" placeholder="请选择厂商" @change="vendorsCodeChange" :disabled="data.mode=='edit'">
<el-option v-for="dict in attendance_vendors" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
</el-select>
</el-form-item>
@ -123,6 +123,12 @@
</el-form-item>
</template>
<template v-if="form.vendorsCode=='jgw'">
<el-form-item label="项目经理手机" prop="phone">
<el-input v-model="form.phone" placeholder="项目经理手机" clearable />
</el-form-item>
</template>
<el-form-item label="已启用" prop="enabled">
<el-switch v-model="form.enabled" :active-value="1" :inactive-value="0" />
</el-form-item>