YZProjectCloud/yanzhu-bigscreen/src/api/detail.js

188 lines
4.8 KiB
JavaScript

import request from "@/utils/request";
import { tryToJson } from "../utils/tools";
import $dt from "dayjs";
const groupByCraftType = (data) => {
return request({
url: "/manage/proProjectInfoSubdeptsUsers/groupByCraftType",
method: "get",
params: data,
});
};
const groupByCraftTypeByAttendance = (data) => {
return request({
url: "/manage/proProjectInfoSubdeptsUsers/groupByCraftTypeByAttendance",
method: "get",
params: data,
});
};
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,
});
};
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;
}
if (!it.startDate) {
it.finish = "未开始";
it.finishState = 4;
}
};
const milestoneList = (data) => {
return new Promise((resolve) => {
return request({
url: "/manage/milestone/list",
method: "get",
params: data,
}).then((d) => {
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;
updateItemState(it);
return it;
});
resolve(tmps);
});
});
};
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--;
}
data2.year=y;
data2.month=m;
var ajaxs=[request({
url: `/manage/costOutput/selectYearAndMonth`,
method: 'post',
data:data
}),
request({
url: `/manage/costOutput/selectYearAndMonth`,
method: 'post',
data:data2
})];
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;
}
});
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);
})
})
}
export default {
groupByCraftType,
groupByCraftTypeByAttendance,
subdeptsUsersList,
attendanceUbiDataList,
milestoneList,
costOutputSelectYearAndMonth
};