diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaCostAllVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaCostAllVo.java index 7a7df66..0993f33 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaCostAllVo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaCostAllVo.java @@ -29,15 +29,15 @@ public class SysOaCostAllVo { private Long materialId; - private Object materialVo; + private Object materialCost; private Long userId; - private Object userVo; + private Object userCost; private Long claimId; - private Object claimVo; + private Object claimCost; private Long financeId; diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaAttendanceMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaAttendanceMapper.java index 42c60fc..0b4a893 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaAttendanceMapper.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaAttendanceMapper.java @@ -32,4 +32,10 @@ public interface SysOaAttendanceMapper extends BaseMapperPlus selectPageVo(Page build, @Param(Constants.WRAPPER) Wrapper lqw); SysOaClaimVo selectSysOaClaimVoByProcInsId(String procInsId); + + Double getClaimCost(Long claimId); } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaCostServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaCostServiceImpl.java index 72285d8..2e8fccf 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaCostServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaCostServiceImpl.java @@ -9,6 +9,7 @@ import com.ruoyi.common.core.domain.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.oa.domain.SysOaAttendance; import com.ruoyi.oa.domain.SysOaProject; import com.ruoyi.oa.domain.vo.*; import com.ruoyi.oa.mapper.*; @@ -42,6 +43,8 @@ public class SysOaCostServiceImpl implements ISysOaCostService { private final SysOaWarehouseMapper warehouseMapper; + private final SysOaAttendanceMapper attendanceMapper; + /** * 查询项目成本分析 @@ -134,29 +137,39 @@ public class SysOaCostServiceImpl implements ISysOaCostService { */ @Override - public TableDataInfo AllList(String projectName, String createTime) { + public TableDataInfo AllList(String projectName, String createTime) { // 包括每个项目的成本分析,每个都有这几种类型,即每个项目返回几列数据 + List alls = baseMapper.AllList(projectName,createTime); + log.info("alls:{}",alls); List allVos = new java.util.ArrayList<>(Collections.emptyList()); if (alls.isEmpty()) return TableDataInfo.build(allVos); for (SysOaCostAll all : alls) { SysOaCostAllVo allVo = BeanUtil.toBean(all, SysOaCostAllVo.class); + log.info("allVo:{}", allVo); - // 车间用工 - if (allVo.getCostType() == 1) { - allVo.setUserVo(userMapper.selectUserById(allVo.getUserId())); - } else if (allVo.getCostType() == 2) { // 差旅花费 - allVo.setClaimVo(claimMapper.selectSysOaClaimVoById(allVo.getClaimId())); + if (allVo.getCostType() == null) allVo.setCost(0.0); + // 车间用工 + else {if (allVo.getCostType() == 1) { //根据出勤,计算人天数 + Double days = attendanceMapper.getAttendanceDay(allVo.getUserId(), allVo.getProjectId()); + Long laborCost = userMapper.selectUserById(allVo.getUserId()).getLaborCost(); + if (days == null || laborCost == null) allVo.setUserCost(0.0); + else allVo.setUserCost(days * laborCost); + } else if (allVo.getCostType() == 2) { // 差旅花费 差旅花费 = 该项目下的所有差旅费用 + allVo.setClaimCost(claimMapper.getClaimCost(allVo.getClaimId())); - } else if (allVo.getCostType() == 3) { // 库房物料 - allVo.setMaterialVo(warehouseMapper.selectVoById(allVo.getMaterialId())); + } else if (allVo.getCostType() == 3) { // 库房物料 物料花费 =物料价格*数量 + SysOaWarehouseVo warehouseVo = warehouseMapper.selectVoById(allVo.getMaterialId()); + if (warehouseVo == null) allVo.setMaterialCost(0.0); + else allVo.setMaterialCost(warehouseVo.getInventory() * warehouseVo.getPrice()); } else if (allVo.getCostType() == 4) { // 其他 } else if (allVo.getCostType() == 5) { // 接待 - } + }} + // 往vos里面加 allVos.add(allVo); } return TableDataInfo.build(allVos); @@ -167,12 +180,12 @@ public class SysOaCostServiceImpl implements ISysOaCostService { */ @Override public TableDataInfo getDetail(Long projectId) { - log.info("查询projectId = {}", projectId); +// log.info("查询projectId = {}", projectId); // LambdaQueryWrapper lqw = Wrappers.lambdaQuery(SysOaCost.class); // lqw.eq(SysOaCost::getProjectId,projectId); // List costs = baseMapper.selectList(lqw); List costs = baseMapper.getListByProjectId(projectId); - log.info("查询costs = {}", costs); +// log.info("查询costs = {}", costs); if (costs.isEmpty()) { return TableDataInfo.build(); @@ -188,15 +201,15 @@ public class SysOaCostServiceImpl implements ISysOaCostService { log.info("sysOaCostList = {}", sysOaCostList); if(cost.getCostType() == 1) { - log.info("查询useVo = {}", userMapper.selectUserById(cost.getUserId())); +// log.info("查询useVo = {}", userMapper.selectUserById(cost.getUserId())); sysOaCostList.setUserVo(userMapper.selectUserById(cost.getUserId())); sysOaCostRow.getUserCostList().add(sysOaCostList); } else if(cost.getCostType() == 2) { - log.info("查询claimMapperVo = {}", claimMapper.selectSysOaClaimVoById(cost.getClaimId())); +// log.info("查询claimMapperVo = {}", claimMapper.selectSysOaClaimVoById(cost.getClaimId())); sysOaCostList.setClaimVo(claimMapper.selectSysOaClaimVoById(cost.getClaimId())); sysOaCostRow.getClaimList().add(sysOaCostList); } else if(cost.getCostType() == 3) { - log.info("查询warehouseMapperVo = {}",warehouseMapper.selectVoById(cost.getMaterialId())); +// log.info("查询warehouseMapperVo = {}",warehouseMapper.selectVoById(cost.getMaterialId())); sysOaCostList.setMaterialVo(warehouseMapper.selectVoById(cost.getMaterialId())); sysOaCostRow.getMaterialList().add(sysOaCostList); } else{ @@ -204,7 +217,7 @@ public class SysOaCostServiceImpl implements ISysOaCostService { } } - log.info("sysOaCostRow = {}", sysOaCostRow); +// log.info("sysOaCostRow = {}", sysOaCostRow); List rows = new java.util.ArrayList<>(Collections.singletonList(sysOaCostRow)); return TableDataInfo.build(rows); diff --git a/ruoyi-oa/src/main/resources/mapper/oa/SysOaAttendanceMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/SysOaAttendanceMapper.xml index eecbeed..0933cb9 100644 --- a/ruoyi-oa/src/main/resources/mapper/oa/SysOaAttendanceMapper.xml +++ b/ruoyi-oa/src/main/resources/mapper/oa/SysOaAttendanceMapper.xml @@ -151,6 +151,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND attendance_day = #{attendanceDay} + delete from sys_oa_attendance where attendance_day = #{day} @@ -158,4 +159,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and create_time > #{firstDay} + + + + diff --git a/ruoyi-oa/src/main/resources/mapper/oa/SysOaClaimMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/SysOaClaimMapper.xml index 336df36..90ace48 100644 --- a/ruoyi-oa/src/main/resources/mapper/oa/SysOaClaimMapper.xml +++ b/ruoyi-oa/src/main/resources/mapper/oa/SysOaClaimMapper.xml @@ -168,6 +168,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join sys_oa_project sop on soc.project_id = sop.project_id where soc.proc_ins_id = #{procInsId} + diff --git a/ruoyi-oa/src/main/resources/mapper/oa/SysOaCostMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/SysOaCostMapper.xml index 1c41e41..e52c9c0 100644 --- a/ruoyi-oa/src/main/resources/mapper/oa/SysOaCostMapper.xml +++ b/ruoyi-oa/src/main/resources/mapper/oa/SysOaCostMapper.xml @@ -22,8 +22,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"