12-22-项目绩效
This commit is contained in:
@ -48,6 +48,11 @@ public class BusProjectXmjxVo implements Serializable {
|
|||||||
@ExcelProperty(value = "合同产值")
|
@ExcelProperty(value = "合同产值")
|
||||||
private BigDecimal htcz;
|
private BigDecimal htcz;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 已完成产值百分比
|
||||||
|
*/
|
||||||
|
private BigDecimal ywcczbfb;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 系数
|
* 系数
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -27,6 +27,7 @@ import org.dromara.project.service.IBusProjectZyzbService;
|
|||||||
import org.dromara.system.mapper.SysUserMapper;
|
import org.dromara.system.mapper.SysUserMapper;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Propagation;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
@ -430,11 +431,12 @@ public class BusProjectXmjxServiceImpl extends ServiceImpl<BusProjectXmjxMapper,
|
|||||||
//项目负责人绩效
|
//项目负责人绩效
|
||||||
if (vo.getXmfzr() != null && (vo.getJxxs() != null && vo.getJxxs().compareTo(BigDecimal.ZERO) > 0)){
|
if (vo.getXmfzr() != null && (vo.getJxxs() != null && vo.getJxxs().compareTo(BigDecimal.ZERO) > 0)){
|
||||||
//总金额 * 项目系数 * 项目负责人系数 (万元)
|
//总金额 * 项目系数 * 项目负责人系数 (万元)
|
||||||
vo.setXmfzjx(vo.getHtcz().multiply(vo.getXs()).multiply(vo.getJxxs()).setScale(6, RoundingMode.HALF_UP));
|
vo.setXmfzjx(BigDecimal.valueOf(Double.parseDouble(vo.getHtcz().multiply(vo.getXs()).multiply(vo.getJxxs()).setScale(6, RoundingMode.HALF_UP).toPlainString())));
|
||||||
}else {
|
}else {
|
||||||
vo.setXmfzjx(BigDecimal.ZERO);
|
vo.setXmfzjx(BigDecimal.ZERO);
|
||||||
}
|
}
|
||||||
//专业
|
//专业
|
||||||
|
BigDecimal ywcczbfb = BigDecimal.ZERO;//已完成产值百分比 所有专业已完成产值百分比 * 专业占比 相加 = 这个项目的产值真实完成百分比
|
||||||
for (BusProjectZyzbVo zyszVo : zyszVos) {
|
for (BusProjectZyzbVo zyszVo : zyszVos) {
|
||||||
//如果这条专业数据的关联id和当前绩效id一致
|
//如果这条专业数据的关联id和当前绩效id一致
|
||||||
if (Objects.equals(zyszVo.getMainId(), vo.getId())){
|
if (Objects.equals(zyszVo.getMainId(), vo.getId())){
|
||||||
@ -443,7 +445,7 @@ public class BusProjectXmjxServiceImpl extends ServiceImpl<BusProjectXmjxMapper,
|
|||||||
vo.getHtcz().multiply(vo.getXs())
|
vo.getHtcz().multiply(vo.getXs())
|
||||||
.multiply(zyszVo.getZyzb())
|
.multiply(zyszVo.getZyzb())
|
||||||
.multiply(sjcz)
|
.multiply(sjcz)
|
||||||
.setScale(6, RoundingMode.HALF_UP)//万元,保留6位小数,四舍五入
|
.setScale(6, RoundingMode.HALF_UP).stripTrailingZeros()//万元,保留6位小数,四舍五入
|
||||||
);
|
);
|
||||||
zsjcz = zsjcz.add(zyszVo.getSjcz());
|
zsjcz = zsjcz.add(zyszVo.getSjcz());
|
||||||
|
|
||||||
@ -452,7 +454,7 @@ public class BusProjectXmjxServiceImpl extends ServiceImpl<BusProjectXmjxMapper,
|
|||||||
vo.getHtcz().multiply(vo.getXs())
|
vo.getHtcz().multiply(vo.getXs())
|
||||||
.multiply(zyszVo.getZyzb())
|
.multiply(zyszVo.getZyzb())
|
||||||
.multiply(jscz)
|
.multiply(jscz)
|
||||||
.setScale(6, RoundingMode.HALF_UP)
|
.setScale(6, RoundingMode.HALF_UP).stripTrailingZeros()
|
||||||
);
|
);
|
||||||
zjscz = zjscz.add(zyszVo.getJscz());
|
zjscz = zjscz.add(zyszVo.getJscz());
|
||||||
|
|
||||||
@ -461,12 +463,12 @@ public class BusProjectXmjxServiceImpl extends ServiceImpl<BusProjectXmjxMapper,
|
|||||||
vo.getHtcz().multiply(vo.getXs())
|
vo.getHtcz().multiply(vo.getXs())
|
||||||
.multiply(zyszVo.getZyzb())
|
.multiply(zyszVo.getZyzb())
|
||||||
.multiply(shcz)
|
.multiply(shcz)
|
||||||
.setScale(6, RoundingMode.HALF_UP)
|
.setScale(6, RoundingMode.HALF_UP).stripTrailingZeros()
|
||||||
);
|
);
|
||||||
zshcz = zshcz.add(zyszVo.getShcz());
|
zshcz = zshcz.add(zyszVo.getShcz());
|
||||||
|
|
||||||
//计算审核绩效 审核产值 * 绩效系数
|
//计算审核绩效 审核产值 * 绩效系数
|
||||||
zyszVo.setShjx(zyszVo.getShcz().multiply(jx).setScale(6, RoundingMode.HALF_UP));
|
zyszVo.setShjx(zyszVo.getShcz().multiply(jx).setScale(6, RoundingMode.HALF_UP).stripTrailingZeros());
|
||||||
zshjx = zshjx.add(zyszVo.getShjx());
|
zshjx = zshjx.add(zyszVo.getShjx());
|
||||||
//通过历史记录构建人员详情
|
//通过历史记录构建人员详情
|
||||||
BusProjectXmjxRyxq shTemp = null;
|
BusProjectXmjxRyxq shTemp = null;
|
||||||
@ -482,39 +484,39 @@ public class BusProjectXmjxServiceImpl extends ServiceImpl<BusProjectXmjxMapper,
|
|||||||
shRyxq.setZyId(zyszVo.getId());//专业ID
|
shRyxq.setZyId(zyszVo.getId());//专业ID
|
||||||
shRyxq.setZyName(zyszVo.getZymc());//专业名称
|
shRyxq.setZyName(zyszVo.getZymc());//专业名称
|
||||||
shRyxq.setJsgw("审核");//角色岗位
|
shRyxq.setJsgw("审核");//角色岗位
|
||||||
shRyxq.setWcjd(historyVo.getWcjd());//进度h
|
shRyxq.setWcjd(historyVo.getWcjd());//进度
|
||||||
shRyxq.setUserId(historyVo.getUserId());//人员ID
|
shRyxq.setUserId(historyVo.getUserId());//人员ID
|
||||||
shRyxq.setSgsj(historyVo.getCreateTime());
|
shRyxq.setSgsj(historyVo.getCreateTime());
|
||||||
shRyxq.setGtsj(historyVo.getGtsj());
|
shRyxq.setGtsj(historyVo.getGtsj());
|
||||||
if (shTemp == null){
|
if (shTemp == null){
|
||||||
shRyxq.setCz(zyszVo.getShcz().multiply(historyVo.getWcjd()).setScale(6, RoundingMode.HALF_UP));//产值 * 对应完成度
|
shRyxq.setCz(zyszVo.getShcz().multiply(historyVo.getWcjd()).setScale(6, RoundingMode.HALF_UP).stripTrailingZeros());//产值 * 对应完成度
|
||||||
shRyxq.setJx(zyszVo.getShjx().multiply(historyVo.getWcjd()).setScale(6, RoundingMode.HALF_UP));//设计的绩效
|
shRyxq.setJx(zyszVo.getShjx().multiply(historyVo.getWcjd()).setScale(6, RoundingMode.HALF_UP).stripTrailingZeros());//设计的绩效
|
||||||
//计算剩余产值和绩效
|
//计算剩余产值和绩效
|
||||||
shRyxq.setSycz(zyszVo.getShcz().subtract(shRyxq.getCz()));
|
shRyxq.setSycz((zyszVo.getShcz().subtract(shRyxq.getCz())).stripTrailingZeros());
|
||||||
shRyxq.setSyjx(zyszVo.getShjx().subtract(shRyxq.getJx()));
|
shRyxq.setSyjx((zyszVo.getShjx().subtract(shRyxq.getJx())).stripTrailingZeros());
|
||||||
}else {
|
}else {
|
||||||
//基数则为上一个元素的剩余产值和绩效
|
//基数则为上一个元素的剩余产值和绩效
|
||||||
shRyxq.setCz(shTemp.getSycz().multiply(shRyxq.getWcjd()).setScale(6, RoundingMode.HALF_UP));//产值 * 对应完成度
|
shRyxq.setCz(shTemp.getSycz().multiply(shRyxq.getWcjd()).setScale(6, RoundingMode.HALF_UP).stripTrailingZeros());//产值 * 对应完成度
|
||||||
shRyxq.setJx(shTemp.getSyjx().multiply(shRyxq.getWcjd()).setScale(6, RoundingMode.HALF_UP));//设计的绩效
|
shRyxq.setJx(shTemp.getSyjx().multiply(shRyxq.getWcjd()).setScale(6, RoundingMode.HALF_UP).stripTrailingZeros());//设计的绩效
|
||||||
//计算剩余产值和绩效
|
//计算剩余产值和绩效
|
||||||
shRyxq.setSycz(shTemp.getSycz().subtract(shRyxq.getCz()));
|
shRyxq.setSycz((shTemp.getSycz().subtract(shRyxq.getCz())).stripTrailingZeros());
|
||||||
shRyxq.setSyjx(shTemp.getSyjx().subtract(shRyxq.getJx()));
|
shRyxq.setSyjx((shTemp.getSyjx().subtract(shRyxq.getJx())).stripTrailingZeros());
|
||||||
}
|
}
|
||||||
shywccz = shywccz.add(shRyxq.getCz());
|
shywccz = shywccz.add(shRyxq.getCz());
|
||||||
shywcjx = shywcjx.add(shRyxq.getJx());
|
shywcjx = shywcjx.add(shRyxq.getJx());
|
||||||
shRyxq.setZcz(zyszVo.getShcz());
|
shRyxq.setZcz(zyszVo.getShcz().stripTrailingZeros());
|
||||||
shRyxq.setZjx(zyszVo.getShjx());
|
shRyxq.setZjx(zyszVo.getShjx().stripTrailingZeros());
|
||||||
shTemp = shRyxq;
|
shTemp = shRyxq;
|
||||||
ryxqs.add(shRyxq);
|
ryxqs.add(shRyxq);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
zyszVo.setShywccz(shywccz);
|
zyszVo.setShywccz(shywccz.stripTrailingZeros());
|
||||||
zyszVo.setShywcjx(shywcjx);
|
zyszVo.setShywcjx(shywcjx.stripTrailingZeros());
|
||||||
zyszVo.setShsycz(zyszVo.getShcz().subtract(shywccz));//审核剩余产值
|
zyszVo.setShsycz((zyszVo.getShcz().subtract(shywccz)).stripTrailingZeros());//审核剩余产值
|
||||||
zyszVo.setShsyjx(zyszVo.getShjx().subtract(shywcjx));//审核剩余绩效
|
zyszVo.setShsyjx((zyszVo.getShjx().subtract(shywcjx)).stripTrailingZeros());//审核剩余绩效
|
||||||
|
|
||||||
//计算校审绩效 校审产值 * 绩效系数
|
//计算校审绩效 校审产值 * 绩效系数
|
||||||
zyszVo.setJsjx(zyszVo.getJscz().multiply(jx).setScale(6, RoundingMode.HALF_UP));
|
zyszVo.setJsjx(zyszVo.getJscz().multiply(jx).setScale(6, RoundingMode.HALF_UP).stripTrailingZeros());
|
||||||
zjsjx = zjsjx.add(zyszVo.getJsjx());
|
zjsjx = zjsjx.add(zyszVo.getJsjx());
|
||||||
//通过历史记录构建人员详情
|
//通过历史记录构建人员详情
|
||||||
BusProjectXmjxRyxq jsTemp = null;
|
BusProjectXmjxRyxq jsTemp = null;
|
||||||
@ -536,35 +538,35 @@ public class BusProjectXmjxServiceImpl extends ServiceImpl<BusProjectXmjxMapper,
|
|||||||
jsRyxq.setSgsj(historyVo.getCreateTime());
|
jsRyxq.setSgsj(historyVo.getCreateTime());
|
||||||
jsRyxq.setGtsj(historyVo.getGtsj());
|
jsRyxq.setGtsj(historyVo.getGtsj());
|
||||||
if (jsTemp == null){
|
if (jsTemp == null){
|
||||||
jsRyxq.setCz(zyszVo.getJscz().multiply(historyVo.getWcjd()).setScale(6, RoundingMode.HALF_UP));//产值 * 对应完成度
|
jsRyxq.setCz(zyszVo.getJscz().multiply(historyVo.getWcjd()).setScale(6, RoundingMode.HALF_UP).stripTrailingZeros());//产值 * 对应完成度
|
||||||
jsRyxq.setJx(zyszVo.getJsjx().multiply(historyVo.getWcjd()).setScale(6, RoundingMode.HALF_UP));//设计的绩效
|
jsRyxq.setJx(zyszVo.getJsjx().multiply(historyVo.getWcjd()).setScale(6, RoundingMode.HALF_UP).stripTrailingZeros());//设计的绩效
|
||||||
//计算剩余产值和绩效
|
//计算剩余产值和绩效
|
||||||
jsRyxq.setSycz(zyszVo.getJscz().subtract(jsRyxq.getCz()));
|
jsRyxq.setSycz((zyszVo.getJscz().subtract(jsRyxq.getCz())).stripTrailingZeros());
|
||||||
jsRyxq.setSyjx(zyszVo.getJsjx().subtract(jsRyxq.getJx()));
|
jsRyxq.setSyjx((zyszVo.getJsjx().subtract(jsRyxq.getJx())).stripTrailingZeros());
|
||||||
}else {
|
}else {
|
||||||
//基数则为上一个元素的剩余产值和绩效
|
//基数则为上一个元素的剩余产值和绩效
|
||||||
jsRyxq.setCz(jsTemp.getSycz().multiply(jsRyxq.getWcjd()).setScale(6, RoundingMode.HALF_UP));//产值 * 对应完成度
|
jsRyxq.setCz(jsTemp.getSycz().multiply(jsRyxq.getWcjd()).setScale(6, RoundingMode.HALF_UP).stripTrailingZeros());//产值 * 对应完成度
|
||||||
jsRyxq.setJx(jsTemp.getSyjx().multiply(jsRyxq.getWcjd()).setScale(6, RoundingMode.HALF_UP));//设计的绩效
|
jsRyxq.setJx(jsTemp.getSyjx().multiply(jsRyxq.getWcjd()).setScale(6, RoundingMode.HALF_UP).stripTrailingZeros());//设计的绩效
|
||||||
//计算剩余产值和绩效
|
//计算剩余产值和绩效
|
||||||
jsRyxq.setSycz(jsTemp.getSycz().subtract(jsRyxq.getCz()));
|
jsRyxq.setSycz((jsTemp.getSycz().subtract(jsRyxq.getCz())).stripTrailingZeros());
|
||||||
jsRyxq.setSyjx(jsTemp.getSyjx().subtract(jsRyxq.getJx()));
|
jsRyxq.setSyjx((jsTemp.getSyjx().subtract(jsRyxq.getJx())).stripTrailingZeros());
|
||||||
}
|
}
|
||||||
jsywccz = jsywccz.add(jsRyxq.getCz());
|
jsywccz = jsywccz.add(jsRyxq.getCz());
|
||||||
jsywcjx = jsywcjx.add(jsRyxq.getJx());
|
jsywcjx = jsywcjx.add(jsRyxq.getJx());
|
||||||
jsRyxq.setZcz(zyszVo.getJscz());
|
jsRyxq.setZcz(zyszVo.getJscz().stripTrailingZeros());
|
||||||
jsRyxq.setZjx(zyszVo.getJsjx());
|
jsRyxq.setZjx(zyszVo.getJsjx().stripTrailingZeros());
|
||||||
jsTemp = jsRyxq;
|
jsTemp = jsRyxq;
|
||||||
ryxqs.add(jsRyxq);
|
ryxqs.add(jsRyxq);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
zyszVo.setJsywccz(jsywccz);
|
zyszVo.setJsywccz(jsywccz.stripTrailingZeros());
|
||||||
zyszVo.setJsywcjx(jsywcjx);
|
zyszVo.setJsywcjx(jsywcjx.stripTrailingZeros());
|
||||||
zyszVo.setJssycz(zyszVo.getJscz().subtract(jsywccz));//校审剩余产值
|
zyszVo.setJssycz((zyszVo.getJscz().subtract(jsywccz)).stripTrailingZeros());//校审剩余产值
|
||||||
zyszVo.setJssyjx(zyszVo.getJsjx().subtract(jsywcjx));//校审剩余绩效
|
zyszVo.setJssyjx((zyszVo.getJsjx().subtract(jsywcjx)).stripTrailingZeros());//校审剩余绩效
|
||||||
|
|
||||||
//计算设计绩效 设计产值 * 绩效系数
|
//计算设计绩效 设计产值 * 绩效系数
|
||||||
BigDecimal sjywccz = BigDecimal.ZERO;//设计已完成产值
|
BigDecimal sjywccz = BigDecimal.ZERO;//设计已完成产值
|
||||||
zyszVo.setSjjx(zyszVo.getSjcz().multiply(jx).setScale(6, RoundingMode.HALF_UP));
|
zyszVo.setSjjx(zyszVo.getSjcz().multiply(jx).setScale(6, RoundingMode.HALF_UP).stripTrailingZeros());
|
||||||
zsjjx = zsjjx.add(zyszVo.getSjjx());
|
zsjjx = zsjjx.add(zyszVo.getSjjx());
|
||||||
//通过历史记录构建人员详情
|
//通过历史记录构建人员详情
|
||||||
BusProjectXmjxRyxq sjTemp = null;
|
BusProjectXmjxRyxq sjTemp = null;
|
||||||
@ -584,44 +586,67 @@ public class BusProjectXmjxServiceImpl extends ServiceImpl<BusProjectXmjxMapper,
|
|||||||
sjRyxq.setSgsj(historyVo.getCreateTime());
|
sjRyxq.setSgsj(historyVo.getCreateTime());
|
||||||
sjRyxq.setGtsj(historyVo.getGtsj());
|
sjRyxq.setGtsj(historyVo.getGtsj());
|
||||||
if (sjTemp == null){
|
if (sjTemp == null){
|
||||||
sjRyxq.setCz(zyszVo.getSjcz().multiply(historyVo.getWcjd()).setScale(6, RoundingMode.HALF_UP));//产值 * 对应完成度
|
sjRyxq.setCz(zyszVo.getSjcz().multiply(historyVo.getWcjd()).setScale(6, RoundingMode.HALF_UP).stripTrailingZeros());//产值 * 对应完成度
|
||||||
sjRyxq.setJx(zyszVo.getSjjx().multiply(historyVo.getWcjd()).setScale(6, RoundingMode.HALF_UP));//设计的绩效
|
sjRyxq.setJx(zyszVo.getSjjx().multiply(historyVo.getWcjd()).setScale(6, RoundingMode.HALF_UP).stripTrailingZeros());//设计的绩效
|
||||||
//计算剩余产值和绩效
|
//计算剩余产值和绩效
|
||||||
sjRyxq.setSycz(zyszVo.getSjcz().subtract(sjRyxq.getCz()));
|
sjRyxq.setSycz((zyszVo.getSjcz().subtract(sjRyxq.getCz())).stripTrailingZeros());
|
||||||
sjRyxq.setSyjx(zyszVo.getSjjx().subtract(sjRyxq.getJx()));
|
sjRyxq.setSyjx((zyszVo.getSjjx().subtract(sjRyxq.getJx())).stripTrailingZeros());
|
||||||
}else {
|
}else {
|
||||||
//基数则为上一个元素的剩余产值和绩效
|
//基数则为上一个元素的剩余产值和绩效
|
||||||
sjRyxq.setCz(sjTemp.getSycz().multiply(sjRyxq.getWcjd()).setScale(6, RoundingMode.HALF_UP));//产值 * 对应完成度
|
sjRyxq.setCz(sjTemp.getSycz().multiply(sjRyxq.getWcjd()).setScale(6, RoundingMode.HALF_UP).stripTrailingZeros());//产值 * 对应完成度
|
||||||
sjRyxq.setJx(sjTemp.getSyjx().multiply(sjRyxq.getWcjd()).setScale(6, RoundingMode.HALF_UP));//设计的绩效
|
sjRyxq.setJx(sjTemp.getSyjx().multiply(sjRyxq.getWcjd()).setScale(6, RoundingMode.HALF_UP).stripTrailingZeros());//设计的绩效
|
||||||
//计算剩余产值和绩效
|
//计算剩余产值和绩效
|
||||||
sjRyxq.setSycz(sjTemp.getSycz().subtract(sjRyxq.getCz()));
|
sjRyxq.setSycz((sjTemp.getSycz().subtract(sjRyxq.getCz())).stripTrailingZeros());
|
||||||
sjRyxq.setSyjx(sjTemp.getSyjx().subtract(sjRyxq.getJx()));
|
sjRyxq.setSyjx((sjTemp.getSyjx().subtract(sjRyxq.getJx())).stripTrailingZeros());
|
||||||
}
|
}
|
||||||
sjywccz = sjywccz.add(sjRyxq.getCz());
|
sjywccz = sjywccz.add(sjRyxq.getCz());
|
||||||
sjywcjx = sjywcjx.add(sjRyxq.getJx());
|
sjywcjx = sjywcjx.add(sjRyxq.getJx());
|
||||||
sjRyxq.setZcz(zyszVo.getSjcz());
|
sjRyxq.setZcz(zyszVo.getSjcz().stripTrailingZeros());
|
||||||
sjRyxq.setZjx(zyszVo.getSjjx());
|
sjRyxq.setZjx(zyszVo.getSjjx().stripTrailingZeros());
|
||||||
sjTemp = sjRyxq;
|
sjTemp = sjRyxq;
|
||||||
ryxqs.add(sjRyxq);
|
ryxqs.add(sjRyxq);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
zyszVo.setSjywccz(sjywccz);
|
zyszVo.setSjywccz(sjywccz.stripTrailingZeros());
|
||||||
zyszVo.setSjywcjx(sjywcjx);
|
zyszVo.setSjywcjx(sjywcjx.stripTrailingZeros());
|
||||||
zyszVo.setSjsycz(zyszVo.getSjcz().subtract(sjywccz));
|
zyszVo.setSjsycz((zyszVo.getSjcz().subtract(sjywccz)).stripTrailingZeros());
|
||||||
zyszVo.setSjsyjx(zyszVo.getSjjx().subtract(sjywcjx));//设计剩余绩效
|
zyszVo.setSjsyjx((zyszVo.getSjjx().subtract(sjywcjx)).stripTrailingZeros());//设计剩余绩效
|
||||||
|
|
||||||
//添加数组
|
//添加数组
|
||||||
zyszVos1.add(zyszVo);//专业详情
|
zyszVos1.add(zyszVo);//专业详情
|
||||||
|
|
||||||
|
//计算项目的产值完成百分比 所有专业完成 = 100 一个专业 设计的产值全部完成占80 校审产值全部完成占15 审核产值全部完成占5
|
||||||
|
//设计产值已完成百分比
|
||||||
|
BigDecimal sjczywcbfb = sjywccz.divide(zyszVo.getSjcz(), 2, RoundingMode.HALF_UP);//设计已完成产值/设计产值=设计产值已完成百分比 1.00
|
||||||
|
//设计已完成百分比 * 设计绩效系数0.8 = 设计真实完成比
|
||||||
|
BigDecimal sjzswcb = sjczywcbfb.multiply(sjcz);
|
||||||
|
|
||||||
|
//校审产值已完成百分比
|
||||||
|
BigDecimal jsczywcbfb = jsywccz.divide(zyszVo.getJscz(), 2, RoundingMode.HALF_UP);//校审已完成产值/校审产值=校审已完成百分比 1.00
|
||||||
|
//校审已完成百分比 * 校审绩效系数0.15 = 校审真实完成比
|
||||||
|
BigDecimal jszswcb = jsczywcbfb.multiply(jscz);
|
||||||
|
|
||||||
|
//审核产值已完成百分比
|
||||||
|
BigDecimal shczywcbfb = shywccz.divide(zyszVo.getShcz(), 2, RoundingMode.HALF_UP);//审核已完成产值/审核产值=审核已完成百分比 1.00
|
||||||
|
//审核已完成百分比 * 审核绩效系数0.05 = 审核真实完成比
|
||||||
|
BigDecimal shzswcb = shczywcbfb.multiply(shcz);
|
||||||
|
|
||||||
|
//设计+校审+审核 * 专业占比 = 专业占比完成比
|
||||||
|
BigDecimal zyzbwcb = (sjzswcb.add(jszswcb).add(shzswcb)).multiply(zyszVo.getZyzb()).setScale(2, RoundingMode.HALF_UP);
|
||||||
|
|
||||||
|
ywcczbfb = ywcczbfb.add(zyzbwcb);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
vo.setZsjcz(zsjcz.setScale(6, RoundingMode.HALF_UP));
|
vo.setZsjcz(zsjcz.setScale(6, RoundingMode.HALF_UP).stripTrailingZeros());
|
||||||
vo.setZjscz(zjscz.setScale(6, RoundingMode.HALF_UP));
|
vo.setZjscz(zjscz.setScale(6, RoundingMode.HALF_UP).stripTrailingZeros());
|
||||||
vo.setZshcz(zshcz.setScale(6, RoundingMode.HALF_UP));
|
vo.setZshcz(zshcz.setScale(6, RoundingMode.HALF_UP).stripTrailingZeros());
|
||||||
|
|
||||||
vo.setZsjjx(zsjjx.setScale(6, RoundingMode.HALF_UP));
|
vo.setZsjjx(zsjjx.setScale(6, RoundingMode.HALF_UP).stripTrailingZeros());
|
||||||
vo.setZjsjx(zjsjx.setScale(6, RoundingMode.HALF_UP));
|
vo.setZjsjx(zjsjx.setScale(6, RoundingMode.HALF_UP).stripTrailingZeros());
|
||||||
vo.setZshjx(zshjx.setScale(6, RoundingMode.HALF_UP));
|
vo.setZshjx(zshjx.setScale(6, RoundingMode.HALF_UP).stripTrailingZeros());
|
||||||
|
|
||||||
|
vo.setYwcczbfb(ywcczbfb.stripTrailingZeros());
|
||||||
|
|
||||||
Collections.reverse(zyszVos1);//颠倒顺序
|
Collections.reverse(zyszVos1);//颠倒顺序
|
||||||
vo.setZyszVos(zyszVos1);//专业详情
|
vo.setZyszVos(zyszVos1);//专业详情
|
||||||
@ -630,6 +655,7 @@ public class BusProjectXmjxServiceImpl extends ServiceImpl<BusProjectXmjxMapper,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional(propagation = Propagation.REQUIRES_NEW)
|
||||||
public void addHistory(BusProjectZyzbBo zyszBo){
|
public void addHistory(BusProjectZyzbBo zyszBo){
|
||||||
//向项目人员绩效完成历史添加数据 一条数据要添加3个岗位的历史数据
|
//向项目人员绩效完成历史添加数据 一条数据要添加3个岗位的历史数据
|
||||||
BusProjectXmjxWcjdHistoryBo sjHistoryBo = new BusProjectXmjxWcjdHistoryBo();
|
BusProjectXmjxWcjdHistoryBo sjHistoryBo = new BusProjectXmjxWcjdHistoryBo();
|
||||||
|
|||||||
Reference in New Issue
Block a user