oa二期内容更新
This commit is contained in:
@@ -146,6 +146,7 @@ public class SysOaFinanceController extends BaseController {
|
||||
outMap.put("financeType", '0');
|
||||
outMap.put("beginTime", firstDay);
|
||||
outMap.put("endTime", lastDay);
|
||||
outMap.put("payType",bo.getPayType());
|
||||
BigDecimal financeOutReduce = iSysOaFinanceService.findFinanceByTime(bo, outMap);
|
||||
|
||||
//收入
|
||||
@@ -153,6 +154,7 @@ public class SysOaFinanceController extends BaseController {
|
||||
comeMap.put("financeType", '1');
|
||||
comeMap.put("beginTime", firstDay);
|
||||
comeMap.put("endTime", lastDay);
|
||||
comeMap.put("payType",bo.getPayType());
|
||||
BigDecimal financeComeReduce = iSysOaFinanceService.findFinanceByTime(bo, comeMap);
|
||||
//收入减支出
|
||||
BigDecimal subtract = financeComeReduce.subtract(financeOutReduce);
|
||||
|
||||
@@ -77,6 +77,17 @@ public class SysOaProjectController extends BaseController {
|
||||
return R.ok(iSysOaProjectService.queryById(projectId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取项目管理详细信息
|
||||
*
|
||||
* @param projectId 主键
|
||||
*/
|
||||
@GetMapping("/projectDataByMonth")
|
||||
public R<List<SysOaProjectVo>> getProjectDataByMonth() {
|
||||
return R.ok(iSysOaProjectService.getProjectDataByMonth());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增项目管理
|
||||
*/
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.ruoyi.oa.domain.bo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import lombok.Data;
|
||||
@@ -9,6 +10,7 @@ import javax.validation.constraints.*;
|
||||
import java.util.Date;
|
||||
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
/**
|
||||
* 文件存储业务对象 sys_oa_file
|
||||
@@ -46,4 +48,11 @@ public class SysOaFileBo extends BaseEntity {
|
||||
private String remark;
|
||||
|
||||
|
||||
/**
|
||||
* 查询月份
|
||||
*/
|
||||
private String queryCreateTime;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.ruoyi.common.annotation.ExcelDictFormat;
|
||||
import com.ruoyi.common.convert.ExcelDictConvert;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import java.util.Date;
|
||||
|
||||
@@ -17,7 +18,7 @@ import java.util.Date;
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class SysOaFileVo {
|
||||
public class SysOaFileVo extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@@ -36,7 +37,7 @@ public class SysOaFileVo {
|
||||
/**
|
||||
* 文件类型0打卡1出入库
|
||||
*/
|
||||
@ExcelProperty(value = "文件类型0打卡1出入库", converter = ExcelDictConvert.class)
|
||||
@ExcelProperty(value = "文件类型", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(dictType = "file_status")
|
||||
private Long status;
|
||||
|
||||
|
||||
@@ -191,4 +191,9 @@ public class SysOaProjectVo {
|
||||
* 此项目数量 用户报工功能
|
||||
*/
|
||||
private Long count;
|
||||
|
||||
/**
|
||||
* 人力资源成本
|
||||
*/
|
||||
private Double laborCost;
|
||||
}
|
||||
|
||||
@@ -12,6 +12,9 @@ import com.ruoyi.oa.domain.vo.SysOaProjectVo;
|
||||
import com.ruoyi.common.core.mapper.BaseMapperPlus;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 项目管理Mapper接口
|
||||
*
|
||||
@@ -23,4 +26,7 @@ public interface SysOaProjectMapper extends BaseMapperPlus<SysOaProjectMapper, S
|
||||
Page<SysOaOutWarehouseListVo> selectPageOutList(@Param("page") Page<SysOaOutWarehouseListVo> page,@Param(Constants.WRAPPER) Wrapper<SysOaProject> queryWrapper);
|
||||
|
||||
|
||||
List<SysOaProjectVo> getProjectDataByMonth(@Param("firstDay") Date firstDay, @Param("lastDay") Date lastDay);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -51,4 +51,11 @@ public interface ISysOaProjectService {
|
||||
TableDataInfo<SysOaOutWarehouseListVo> queryOutWarePageList(SysOaOutWarehouseBo bo, PageQuery pageQuery);
|
||||
|
||||
|
||||
/**
|
||||
* 获取每个项目当月的人力资源成本(人天)
|
||||
* @return
|
||||
*/
|
||||
List<SysOaProjectVo> getProjectDataByMonth();
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -63,6 +63,7 @@ public class SysOaFileServiceImpl implements ISysOaFileService {
|
||||
LambdaQueryWrapper<SysOaFile> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFileUrl()), SysOaFile::getFileUrl, bo.getFileUrl());
|
||||
lqw.eq(bo.getStatus() != null, SysOaFile::getStatus, bo.getStatus());
|
||||
lqw.like(bo.getQueryCreateTime() != null, SysOaFile::getCreateTime, bo.getQueryCreateTime());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
|
||||
@@ -91,6 +91,7 @@ public class SysOaFinanceServiceImpl implements ISysOaFinanceService {
|
||||
paramsMap.put("financeType", params.get("financeType"));
|
||||
paramsMap.put("beginTime", params.get("beginTime"));
|
||||
paramsMap.put("endTime", params.get("endTime"));
|
||||
paramsMap.put("payType", params.get("payType"));
|
||||
List<SysOaFinance> financeByTime = baseMapper.findFinanceByTime(paramsMap);
|
||||
//遍历子表,将价格遍历为数组并用map方法求和,该方法类型使用map比较妥当
|
||||
ArrayList<BigDecimal> objects = new ArrayList<>();
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.ruoyi.oa.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
@@ -127,6 +128,18 @@ public class SysOaProjectServiceImpl implements ISysOaProjectService {
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当月每个项目的人力资源成本
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<SysOaProjectVo> getProjectDataByMonth() {
|
||||
Date date = new Date();
|
||||
|
||||
List<SysOaProjectVo> projectVos = baseMapper.getProjectDataByMonth(getFirstDay(date),getLastDay(date));
|
||||
return projectVos;
|
||||
}
|
||||
|
||||
private QueryWrapper<SysOaProject> buildOutWareQueryWrapper(SysOaOutWarehouseBo bo) {
|
||||
QueryWrapper<SysOaProject> lqw = Wrappers.query();
|
||||
lqw.like(StringUtils.isNotBlank(bo.getProjectName()), "sop.projec_name", bo.getProjectName());
|
||||
@@ -134,4 +147,23 @@ public class SysOaProjectServiceImpl implements ISysOaProjectService {
|
||||
lqw.orderByDesc("sop.create_time");
|
||||
return lqw;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private Date getFirstDay(Date time){
|
||||
String firstDay = DateUtils.parseDateToStr("yyyy-MM-01", time);
|
||||
return DateUtils.parseDate(firstDay);
|
||||
}
|
||||
|
||||
private Date getLastDay(Date time){
|
||||
String format = "yyyy-MM-";
|
||||
// 计算某月的天数
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.setTime(time);
|
||||
String dateLength = String.valueOf(calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
|
||||
// 将字符串拼接
|
||||
format +=dateLength;
|
||||
|
||||
return DateUtils.parseDate(DateUtils.parseDateToStr(format, time));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -105,6 +105,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<select id="findFinanceByTime" resultMap="SysOaFinanceResult">
|
||||
<include refid="selectFinanceVo" />
|
||||
where a.finance_type = #{financeType}
|
||||
<if test=" payType!=NULL and payType!=null and payType !='0' ">
|
||||
and a.pay_type = #{payType}
|
||||
</if>
|
||||
and a.project_id = 0
|
||||
and date_format(a.finance_time,'%Y-%m-%d %H:%i:%s') >= date_format(#{beginTime},'%Y-%m-%d %H:%i:%s')
|
||||
and date_format(a.finance_time,'%Y-%m-%d %H:%i:%s') <= date_format(#{endTime},'%Y-%m-%d %H:%i:%s')
|
||||
|
||||
@@ -59,6 +59,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="count" column="count"/>
|
||||
<result property="laborCost" column="labor_cost"/>
|
||||
|
||||
</resultMap>
|
||||
|
||||
|
||||
@@ -87,7 +89,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
${ew.getCustomSqlSegment}
|
||||
</select>
|
||||
|
||||
|
||||
<select id="getProjectDataByMonth" resultType="com.ruoyi.oa.domain.vo.SysOaProjectVo">
|
||||
select sum(soa.day_length+soa.hour/8) as labor_cost ,color,sop.project_name from sys_oa_project sop
|
||||
left join sys_oa_attendance soa on sop.project_id = soa.project_id
|
||||
where soa.create_time between #{firstDay} and #{lastDay}
|
||||
and soa.del_flag = '0'
|
||||
group by sop.project_id
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user