2024-12-07 12:49:34 +08:00
|
|
|
import request from "@/utils/request";
|
2024-12-17 22:57:59 +08:00
|
|
|
import { tryToJson } from "../utils/tools";
|
|
|
|
import $dt from "dayjs";
|
2024-12-07 12:49:34 +08:00
|
|
|
|
|
|
|
const groupByCraftType = (data) => {
|
2024-12-17 22:57:59 +08:00
|
|
|
return request({
|
|
|
|
url: "/manage/proProjectInfoSubdeptsUsers/groupByCraftType",
|
|
|
|
method: "get",
|
|
|
|
params: data,
|
|
|
|
});
|
|
|
|
};
|
2024-12-07 12:49:34 +08:00
|
|
|
|
2024-12-17 22:57:59 +08:00
|
|
|
const groupByCraftTypeByAttendance = (data) => {
|
|
|
|
return request({
|
|
|
|
url: "/manage/proProjectInfoSubdeptsUsers/groupByCraftTypeByAttendance",
|
|
|
|
method: "get",
|
|
|
|
params: data,
|
|
|
|
});
|
|
|
|
};
|
2024-12-07 12:49:34 +08:00
|
|
|
|
2024-12-17 22:57:59 +08:00
|
|
|
const subdeptsUsersList = (data) => {
|
|
|
|
return request({
|
|
|
|
url: "/manage/proProjectInfoSubdeptsUsers/list",
|
|
|
|
method: "get",
|
|
|
|
params: data,
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
|
|
|
const attendanceUbiDataList = (data) => {
|
|
|
|
return request({
|
|
|
|
url: "/manage/attendanceUbiData/list",
|
|
|
|
method: "get",
|
|
|
|
params: data,
|
|
|
|
});
|
|
|
|
};
|
2025-03-30 22:04:10 +08:00
|
|
|
|
|
|
|
const photographyList = (proId) => {
|
|
|
|
return request({
|
2025-05-08 00:21:11 +08:00
|
|
|
url: "/manage/photography/finaList/" + proId,
|
|
|
|
method: "get",
|
2025-03-30 22:04:10 +08:00
|
|
|
});
|
|
|
|
};
|
|
|
|
|
2024-12-17 22:57:59 +08:00
|
|
|
const updateItemState = (it) => {
|
|
|
|
let dt0 = +$dt($dt(new Date()).format("YYYY-MM-DD")); //当时时间
|
|
|
|
let dt1 = it.planStartDate ? +$dt(it.planStartDate) : 0; //计划开始
|
|
|
|
let dt2 = it.planEndDate ? +$dt(it.planEndDate) : 0; //计划结束
|
|
|
|
let dt3 = it.startDate ? +$dt(it.startDate) : 0; //实际开始
|
|
|
|
let dt4 = it.endDate ? +$dt(it.endDate) : 0; //实际结束
|
|
|
|
if (!it.planStartDate) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (it.endDate) {
|
|
|
|
if (!it.planEndDate) {
|
|
|
|
it.finish = "正常完成";
|
|
|
|
it.finishState = 3;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (dt4 > dt2) {
|
|
|
|
it.finish = "逾期完成";
|
|
|
|
it.finishState = 1;
|
|
|
|
} else {
|
|
|
|
it.finish = "正常完成";
|
|
|
|
it.finishState = 3;
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (it.startDate) {
|
|
|
|
if (!it.planEndDate) {
|
|
|
|
it.finish = "进行中";
|
|
|
|
it.finishState = 2;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (dt2 < dt0) {
|
|
|
|
it.finish = "逾期" + (dt0 - dt2) / 3600 / 1000 / 24 + "天";
|
|
|
|
it.finishState = 1;
|
|
|
|
} else {
|
|
|
|
it.finish = "进行中";
|
|
|
|
it.finishState = 2;
|
|
|
|
}
|
|
|
|
return;
|
2024-12-07 12:49:34 +08:00
|
|
|
}
|
|
|
|
|
2024-12-17 22:57:59 +08:00
|
|
|
if (!it.startDate) {
|
|
|
|
it.finish = "未开始";
|
|
|
|
it.finishState = 4;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
const milestoneList = (data) => {
|
|
|
|
return new Promise((resolve) => {
|
2024-12-07 12:49:34 +08:00
|
|
|
return request({
|
2024-12-17 22:57:59 +08:00
|
|
|
url: "/manage/milestone/list",
|
2024-12-07 12:49:34 +08:00
|
|
|
method: "get",
|
2024-12-17 22:57:59 +08:00
|
|
|
params: data,
|
|
|
|
}).then((d) => {
|
2025-05-08 00:21:11 +08:00
|
|
|
let tmps = (d.rows || []).map((it) => {
|
|
|
|
it.nodeText = it.nodeName || "";
|
|
|
|
it.planStartDate = it.scheduledStart;
|
|
|
|
it.planEndDate = it.scheduledEnd;
|
|
|
|
it.startDate = it.actualStart;
|
|
|
|
it.endDate = it.actualEnd;
|
2024-12-17 22:57:59 +08:00
|
|
|
updateItemState(it);
|
|
|
|
return it;
|
|
|
|
});
|
|
|
|
resolve(tmps);
|
2024-12-07 12:49:34 +08:00
|
|
|
});
|
2024-12-17 22:57:59 +08:00
|
|
|
});
|
|
|
|
};
|
2024-12-24 23:41:35 +08:00
|
|
|
|
2025-05-08 00:21:11 +08:00
|
|
|
const costOutputSelectYearAndMonth = (data) => {
|
|
|
|
return new Promise((reslove) => {
|
|
|
|
let data2 = { ...data };
|
|
|
|
let y = data2.year;
|
|
|
|
let m = data2.month - 1;
|
|
|
|
if (m == 0) {
|
|
|
|
m = 12;
|
|
|
|
y--;
|
2024-12-24 23:41:35 +08:00
|
|
|
}
|
2025-05-08 00:21:11 +08:00
|
|
|
data2.year = y;
|
|
|
|
data2.month = m;
|
|
|
|
var ajaxs = [
|
|
|
|
request({
|
2024-12-24 23:41:35 +08:00
|
|
|
url: `/manage/costOutput/selectYearAndMonth`,
|
2025-05-08 00:21:11 +08:00
|
|
|
method: "post",
|
|
|
|
data: data,
|
2024-12-24 23:41:35 +08:00
|
|
|
}),
|
|
|
|
request({
|
|
|
|
url: `/manage/costOutput/selectYearAndMonth`,
|
2025-05-08 00:21:11 +08:00
|
|
|
method: "post",
|
|
|
|
data: data2,
|
|
|
|
}),
|
|
|
|
];
|
2024-12-24 23:41:35 +08:00
|
|
|
|
2025-05-08 00:21:11 +08:00
|
|
|
axios.all(ajaxs).then((res) => {
|
|
|
|
let d = res[0];
|
|
|
|
const getValue = (tmps, type) => {
|
|
|
|
let objs = tmps.filter((d) => d.costType == type);
|
|
|
|
return objs.length > 0 ? objs[0] : {};
|
|
|
|
};
|
|
|
|
let tmps = (d.data || []).map((it) => {
|
|
|
|
it.money = it.money ? it.money / 10000.0 : 0;
|
|
|
|
return it;
|
|
|
|
});
|
|
|
|
let y = data.year;
|
|
|
|
let m = data.month;
|
|
|
|
//if(m==0){
|
|
|
|
// m=12;
|
|
|
|
// y--;
|
|
|
|
//}
|
|
|
|
let tmps2 = (res[1].data || []).map((it) => {
|
|
|
|
it.money = it.money ? it.money / 10000.0 : 0;
|
|
|
|
return it;
|
|
|
|
});
|
|
|
|
let curM = tmps.filter(
|
|
|
|
(it) => it.costType == 9 && it.year == y && it.month == m
|
|
|
|
);
|
|
|
|
curM = curM.length > 0 ? curM[0] : {};
|
|
|
|
|
|
|
|
let totalObjs = tmps.filter((it) => it.costType == 9);
|
|
|
|
let total = 0;
|
|
|
|
totalObjs.forEach((it) => {
|
|
|
|
if (it.money) {
|
|
|
|
total += it.money;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
let yearObjs = tmps.filter((it) => it.costType == 9 && it.year == y);
|
|
|
|
let totalY = 0;
|
|
|
|
yearObjs.forEach((it) => {
|
|
|
|
if (it.money) {
|
|
|
|
totalY += it.money;
|
2024-12-24 23:41:35 +08:00
|
|
|
}
|
2025-05-08 00:21:11 +08:00
|
|
|
});
|
|
|
|
let obj = {
|
|
|
|
totalInv: getValue(tmps, 1).money || 0, //总投资
|
|
|
|
curYear: getValue(tmps, 2).money || 0, //年总投资
|
|
|
|
contract1: getValue(tmps, 3).money || 0, //合同金额
|
|
|
|
contract2: getValue(tmps, 4).money || 0, //合同支付金额
|
|
|
|
contract3: getValue(tmps, 5).money || 0, //合同挂账金额
|
|
|
|
safety1: getValue(tmps, 6).money || 0, //安措金额
|
|
|
|
safety2: getValue(tmps, 7).money || 0, //安措支付金额
|
|
|
|
safety3: getValue(tmps, 8).money || 0, //安措挂账金额
|
|
|
|
curMonth: curM.money || 0, //当月投资
|
|
|
|
totalMonth: total, //开累投资
|
|
|
|
totalYear: totalY, //本年完成
|
|
|
|
};
|
|
|
|
reslove(obj);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
};
|
|
|
|
const groupByComany = (data) => {
|
|
|
|
return request({
|
|
|
|
url: `/manage/bgscreen/attendance/groupByComany`,
|
|
|
|
data: data,
|
|
|
|
method: "post",
|
|
|
|
});
|
|
|
|
};
|
|
|
|
const groupAllByComany = (data) => {
|
|
|
|
return request({
|
|
|
|
url: `/manage/bgscreen/attendance/groupAllByComany`,
|
|
|
|
data: data,
|
|
|
|
method: "post",
|
|
|
|
});
|
|
|
|
};
|
2025-05-08 23:56:13 +08:00
|
|
|
// 查询劳务实名制管理列表
|
|
|
|
const listAttendance = (query) => {
|
|
|
|
return request({
|
|
|
|
url: "/manage/bgscreen/attendance/list",
|
|
|
|
method: "get",
|
|
|
|
params: query,
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
|
|
|
const groupByWorkerState = (data) => {
|
|
|
|
return request({
|
|
|
|
url: "/manage/bgscreen/attendance/groupByWorkerState",
|
|
|
|
method: "get",
|
|
|
|
params: data,
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
|
|
|
const queryWorkerByState = (data) => {
|
|
|
|
return request({
|
|
|
|
url: "/manage/bgscreen/attendance/queryWorkerByState",
|
|
|
|
method: "get",
|
|
|
|
params: data,
|
|
|
|
});
|
|
|
|
};
|
2024-12-24 23:41:35 +08:00
|
|
|
|
2024-12-17 22:57:59 +08:00
|
|
|
export default {
|
|
|
|
groupByCraftType,
|
|
|
|
groupByCraftTypeByAttendance,
|
|
|
|
subdeptsUsersList,
|
|
|
|
attendanceUbiDataList,
|
2025-03-30 22:04:10 +08:00
|
|
|
photographyList,
|
2024-12-17 22:57:59 +08:00
|
|
|
milestoneList,
|
2025-05-08 00:21:11 +08:00
|
|
|
costOutputSelectYearAndMonth,
|
|
|
|
groupByComany,
|
|
|
|
groupAllByComany,
|
2025-05-08 23:56:13 +08:00
|
|
|
listAttendance,
|
|
|
|
groupByWorkerState,
|
|
|
|
queryWorkerByState,
|
2024-12-17 22:57:59 +08:00
|
|
|
};
|