oa二期内容更新

This commit is contained in:
2024-12-16 11:27:43 +08:00
parent de37820973
commit 5cbeeee3a1
19 changed files with 490 additions and 188 deletions

View File

@@ -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);

View File

@@ -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());
}
/**
* 新增项目管理
*/

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -191,4 +191,9 @@ public class SysOaProjectVo {
* 此项目数量 用户报工功能
*/
private Long count;
/**
* 人力资源成本
*/
private Double laborCost;
}

View File

@@ -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);
}

View File

@@ -51,4 +51,11 @@ public interface ISysOaProjectService {
TableDataInfo<SysOaOutWarehouseListVo> queryOutWarePageList(SysOaOutWarehouseBo bo, PageQuery pageQuery);
/**
* 获取每个项目当月的人力资源成本(人天)
* @return
*/
List<SysOaProjectVo> getProjectDataByMonth();
}

View File

@@ -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;
}

View File

@@ -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<>();

View File

@@ -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));
}
}

View File

@@ -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') &lt;= date_format(#{endTime},'%Y-%m-%d %H:%i:%s')

View File

@@ -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>