diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java index a37f810..40041ce 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java @@ -157,6 +157,8 @@ public class SysUser extends BaseEntity { private Long laborCost; + private Double workTime; + /** * 数据权限 当前角色ID diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaAttendanceController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaAttendanceController.java index 739f178..62728e8 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaAttendanceController.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaAttendanceController.java @@ -1,8 +1,12 @@ package com.ruoyi.oa.controller; +import java.util.Calendar; +import java.util.Date; import java.util.List; import java.util.Arrays; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.oa.domain.LaborCostData; import com.ruoyi.oa.domain.vo.SysUserVo; import lombok.RequiredArgsConstructor; import javax.servlet.http.HttpServletResponse; @@ -38,10 +42,35 @@ public class SysOaAttendanceController extends BaseController { private final ISysOaAttendanceService iSysOaAttendanceService; + + /** + * 获取当前月的天数 + * @return + */ + @GetMapping("/date") + public R date() { + + Calendar calendar = Calendar.getInstance(); + calendar.setTime(DateUtils.getNowDate()); + Long dateLength = (long) calendar.getActualMaximum(Calendar.DAY_OF_MONTH); + + return R.ok(dateLength); + } + + + /** + * 获取当前月的天数 + * @return + */ + @GetMapping("/calc/{time}") + public R> calc(@PathVariable("time") Date time) { + return R.ok(iSysOaAttendanceService.workerCalc(time)); + } + + /** * 查询人员考勤列表 */ - @SaCheckPermission("system:oaAttendance:list") @GetMapping("/list") public TableDataInfo list(SysOaAttendanceBo bo, PageQuery pageQuery) { return iSysOaAttendanceService.queryPageList(bo, pageQuery); @@ -52,7 +81,6 @@ public class SysOaAttendanceController extends BaseController { /** * 查询人员考勤列表 */ - @SaCheckPermission("system:oaAttendance:list") @GetMapping("/worker/list") public R> workerList(SysOaAttendanceBo bo) { @@ -63,7 +91,6 @@ public class SysOaAttendanceController extends BaseController { /** * 导出人员考勤列表 */ - @SaCheckPermission("system:oaAttendance:export") @Log(title = "人员考勤", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(SysOaAttendanceBo bo, HttpServletResponse response) { @@ -76,7 +103,6 @@ public class SysOaAttendanceController extends BaseController { * * @param id 主键 */ - @SaCheckPermission("system:oaAttendance:query") @GetMapping("/{id}") public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) { @@ -86,7 +112,6 @@ public class SysOaAttendanceController extends BaseController { /** * 新增人员考勤 */ - @SaCheckPermission("system:oaAttendance:add") @Log(title = "人员考勤", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() @@ -97,7 +122,6 @@ public class SysOaAttendanceController extends BaseController { /** * 修改人员考勤 */ - @SaCheckPermission("system:oaAttendance:edit") @Log(title = "人员考勤", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() @@ -110,7 +134,6 @@ public class SysOaAttendanceController extends BaseController { * * @param ids 主键串 */ - @SaCheckPermission("system:oaAttendance:remove") @Log(title = "人员考勤", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public R remove(@NotEmpty(message = "主键不能为空") @@ -122,7 +145,6 @@ public class SysOaAttendanceController extends BaseController { /** * 新增人员考勤 */ - @SaCheckPermission("system:oaAttendance:add") @Log(title = "人员考勤", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping("/insertBatch") diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/LaborCostData.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/LaborCostData.java new file mode 100644 index 0000000..3cd3307 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/LaborCostData.java @@ -0,0 +1,31 @@ +package com.ruoyi.oa.domain; + +import com.ruoyi.common.core.domain.BaseEntity; +import com.ruoyi.oa.domain.vo.SysOaAttendanceVo; +import com.ruoyi.oa.domain.vo.SysOaProjectVo; +import com.ruoyi.oa.domain.vo.SysUserVo; +import lombok.Data; + +import java.util.List; + +@Data +public class LaborCostData extends BaseEntity { + + // 对应用户 + private SysUserVo sysUser; + + // 计算月份 + private Long generateMonth; + + // 当前月的工作量 + private Double workTimes; + + // 捆绑的项目列表 + private List projects; + + // 当月的所有签到信息 + private List attendances; + + + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SysOaAttendance.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SysOaAttendance.java index 62e2988..7c36bbd 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SysOaAttendance.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SysOaAttendance.java @@ -39,11 +39,11 @@ public class SysOaAttendance extends BaseEntity { /** * 时长(天)1|0.5 */ - private Long dayLength; + private Double dayLength; /** * 时长(小时) */ - private Long hour; + private Double hour; /** * 备注 */ diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaOutWarehouseBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaOutWarehouseBo.java index 169389b..1c6559f 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaOutWarehouseBo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaOutWarehouseBo.java @@ -33,7 +33,6 @@ public class SysOaOutWarehouseBo extends BaseEntity { /** * 出库后对应的项目id */ - @NotNull(message = "项目id不能为空",groups = { AddGroup.class }) private Long projectId; /** diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaAttendanceVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaAttendanceVo.java index a58daf9..3fc39fd 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaAttendanceVo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaAttendanceVo.java @@ -5,6 +5,7 @@ import com.alibaba.excel.annotation.ExcelProperty; import com.ruoyi.common.annotation.ExcelDictFormat; import com.ruoyi.common.convert.ExcelDictConvert; import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.oa.domain.SysOaAttendance; import com.ruoyi.oa.domain.SysOaProject; import lombok.Data; @@ -17,7 +18,7 @@ import lombok.Data; */ @Data @ExcelIgnoreUnannotated -public class SysOaAttendanceVo { +public class SysOaAttendanceVo extends SysOaAttendance { private static final long serialVersionUID = 1L; @@ -50,14 +51,14 @@ public class SysOaAttendanceVo { */ @ExcelProperty(value = "时长", converter = ExcelDictConvert.class) @ExcelDictFormat(readConverterExp = "天=") - private Long dayLength; + private Double dayLength; /** * 时长(小时) */ @ExcelProperty(value = "时长", converter = ExcelDictConvert.class) @ExcelDictFormat(readConverterExp = "小=时") - private Long hour; + private Double hour; /** * 备注 @@ -71,5 +72,11 @@ public class SysOaAttendanceVo { private String color; + private Long count; + + // 单个工作时间 + private Double workTimes; + + private String projectName; } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaOutWarehouseListVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaOutWarehouseListVo.java index d2d35b8..e542724 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaOutWarehouseListVo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaOutWarehouseListVo.java @@ -2,6 +2,7 @@ package com.ruoyi.oa.domain.vo; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; +import com.ruoyi.common.core.domain.BaseEntity; import lombok.Data; import java.util.List; @@ -15,7 +16,7 @@ import java.util.List; */ @Data @ExcelIgnoreUnannotated -public class SysOaOutWarehouseListVo { +public class SysOaOutWarehouseListVo extends BaseEntity { /** * ID 编号 */ diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaOutWarehouseVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaOutWarehouseVo.java index 7a6e736..838170e 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaOutWarehouseVo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaOutWarehouseVo.java @@ -55,5 +55,10 @@ public class SysOaOutWarehouseVo extends BaseEntity { /** 项目名 */ private String projectName; + /** 库存信息 */ + private SysOaWarehouseVo warehouse; + + /** 项目信息 */ + private SysOaProjectVo project; } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaProjectVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaProjectVo.java index ce128f2..49dd977 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaProjectVo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaProjectVo.java @@ -186,4 +186,9 @@ public class SysOaProjectVo { */ private String color; + + /** + * 此项目数量 用户报工功能 + */ + private Long count; } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaTaskVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaTaskVo.java index 879a910..3f28b0b 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaTaskVo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaTaskVo.java @@ -108,5 +108,9 @@ public class SysOaTaskVo { * */ private List workerList; + /** + * 此任务总成本 + */ + private Double projectCostTotal; } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaWarehouseVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaWarehouseVo.java index c7d5284..84a4e7e 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaWarehouseVo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaWarehouseVo.java @@ -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.oa.domain.SysOaWarehouse; import lombok.Data; import java.util.Date; @@ -17,7 +18,7 @@ import java.util.Date; */ @Data @ExcelIgnoreUnannotated -public class SysOaWarehouseVo { +public class SysOaWarehouseVo extends SysOaWarehouse { private static final long serialVersionUID = 1L; 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 c1cf5f4..09d5a93 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 @@ -3,6 +3,10 @@ package com.ruoyi.oa.mapper; import com.ruoyi.oa.domain.SysOaAttendance; import com.ruoyi.oa.domain.vo.SysOaAttendanceVo; import com.ruoyi.common.core.mapper.BaseMapperPlus; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; /** * 人员考勤Mapper接口 @@ -12,4 +16,5 @@ import com.ruoyi.common.core.mapper.BaseMapperPlus; */ public interface SysOaAttendanceMapper extends BaseMapperPlus { + List selectVoListAndTime(@Param("userId") Long userId, @Param("firstDay") Date firstDay, @Param("lastDay") Date lastDay); } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaProjectMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaProjectMapper.java index e648689..6e3b169 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaProjectMapper.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaProjectMapper.java @@ -22,4 +22,5 @@ public interface SysOaProjectMapper extends BaseMapperPlus selectPageOutList(@Param("page") Page page,@Param(Constants.WRAPPER) Wrapper queryWrapper); + } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaWarehouseMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaWarehouseMapper.java index 76310a3..1ce2061 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaWarehouseMapper.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaWarehouseMapper.java @@ -12,4 +12,11 @@ import com.ruoyi.common.core.mapper.BaseMapperPlus; */ public interface SysOaWarehouseMapper extends BaseMapperPlus { + /** + * + * 查询已经被逻辑删除的数据 + * @param warehouseId + * @return + */ + SysOaWarehouseVo selectVoByIdAndXml(Long warehouseId); } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaAttendanceService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaAttendanceService.java index 9cacbef..61c569d 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaAttendanceService.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaAttendanceService.java @@ -1,5 +1,6 @@ package com.ruoyi.oa.service; +import com.ruoyi.oa.domain.LaborCostData; import com.ruoyi.oa.domain.vo.SysOaAttendanceVo; import com.ruoyi.oa.domain.bo.SysOaAttendanceBo; import com.ruoyi.common.core.page.TableDataInfo; @@ -7,6 +8,7 @@ import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.oa.domain.vo.SysUserVo; import java.util.Collection; +import java.util.Date; import java.util.List; /** @@ -47,7 +49,25 @@ public interface ISysOaAttendanceService { */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + /** + * 工人列表 + * @param bo + * @return + */ List workerList(SysOaAttendanceBo bo); + /** + * 批量插入 + * @param bo + * @return + */ int insertBatch(SysOaAttendanceBo bo); + + /** + * 人力成本计算接口 + * + * @param time 时间 + */ + List workerCalc(Date time); + } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaProjectService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaProjectService.java index ad02254..1262e21 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaProjectService.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaProjectService.java @@ -49,4 +49,6 @@ public interface ISysOaProjectService { Boolean deleteWithValidByIds(Collection ids, Boolean isValid); TableDataInfo queryOutWarePageList(SysOaOutWarehouseBo bo, PageQuery pageQuery); + + } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaAttendanceServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaAttendanceServiceImpl.java index 9307733..0d3d6cd 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaAttendanceServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaAttendanceServiceImpl.java @@ -6,12 +6,15 @@ 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.common.utils.DateUtils; +import com.ruoyi.oa.domain.LaborCostData; import com.ruoyi.oa.domain.vo.SysOaProjectVo; import com.ruoyi.oa.domain.vo.SysUserVo; import com.ruoyi.oa.service.ISysOaProjectService; import com.ruoyi.system.mapper.SysUserRoleMapper; import com.ruoyi.system.service.ISysUserService; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.oa.domain.bo.SysOaAttendanceBo; @@ -22,6 +25,7 @@ import com.ruoyi.oa.service.ISysOaAttendanceService; import java.time.LocalDate; import java.util.*; +import java.util.stream.Collectors; /** * 人员考勤Service业务层处理 @@ -29,6 +33,7 @@ import java.util.*; * @author hdka * @date 2024-11-05 */ +@Slf4j @RequiredArgsConstructor @Service public class SysOaAttendanceServiceImpl implements ISysOaAttendanceService { @@ -182,4 +187,64 @@ public class SysOaAttendanceServiceImpl implements ISysOaAttendanceService { } return 1; } + + + /** + * 计算人力成本 + * + * @param time 月份 + * @return + */ + @Override + public List workerCalc(Date time) { + + String firstDay = DateUtils.parseDateToStr("yyyy-MM-01", time); + + String format = "yyyy-MM-"; + // 计算某月的天数 + Calendar calendar = Calendar.getInstance(); + calendar.setTime(time); + String dateLength = String.valueOf(calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); + // 将字符串拼接 + format +=dateLength; + String lastDay = DateUtils.parseDateToStr(format, time); + // 查询所有的工人 + List userIds = sysUserRoleMapper.selectUserIdsByRoleId(1852970465740505090L); + + + List costDataList = new ArrayList<>(); + for (Long userId : userIds) { + SysUserVo sysUser = BeanUtil.toBean(sysUserService.selectUserById(userId), SysUserVo.class); + SysOaAttendanceVo sysOaAttendanceVo = new SysOaAttendanceVo(); + sysOaAttendanceVo.setUserId(sysUser.getUserId()); + + // 查询某月记录 + List sysOaAttendanceVos = baseMapper.selectVoListAndTime(userId, DateUtils.parseDate(firstDay),DateUtils.parseDate(lastDay)); + + List projectVos = new ArrayList<>(); + + Double workTimes = 0.0; + System.out.println(sysOaAttendanceVos); + for (SysOaAttendanceVo oaAttendanceVo : sysOaAttendanceVos) { + SysOaProjectVo sysOaProjectVo = projectService.queryById(oaAttendanceVo.getProjectId()); + oaAttendanceVo.setColor(sysOaProjectVo.getColor()); + oaAttendanceVo.setSysOaProjectVo(sysOaProjectVo); + oaAttendanceVo.setProjectName(sysOaProjectVo.getProjectName()); + projectVos.add(sysOaProjectVo); + workTimes+=oaAttendanceVo.getWorkTimes(); + + } + projectVos.stream().distinct().collect(Collectors.toList()); + LaborCostData laborCostData = new LaborCostData(); + laborCostData.setProjects(projectVos); + laborCostData.setAttendances(sysOaAttendanceVos); + laborCostData.setSysUser(sysUser); + laborCostData.setWorkTimes(workTimes); + costDataList.add(laborCostData); + } + + + + return costDataList; + } } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaOutWarehouseServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaOutWarehouseServiceImpl.java index 941514f..044cb90 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaOutWarehouseServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaOutWarehouseServiceImpl.java @@ -15,11 +15,14 @@ import com.ruoyi.oa.domain.SysOaWarehouse; import com.ruoyi.oa.domain.bo.SysOaOutWarehouseBo2; import com.ruoyi.oa.domain.bo.SysOaOutWarehouseBoList; import com.ruoyi.oa.domain.vo.SysOaOutWarehouseListVo; +import com.ruoyi.oa.domain.vo.SysOaProjectVo; +import com.ruoyi.oa.domain.vo.SysOaWarehouseVo; import com.ruoyi.oa.mapper.SysOaProjectMapper; import com.ruoyi.oa.mapper.SysOaWarehouseMapper; import com.ruoyi.oa.service.ISysOaWarehouseService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.catalina.security.SecurityUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.oa.domain.bo.SysOaOutWarehouseBo; @@ -28,10 +31,7 @@ import com.ruoyi.oa.domain.SysOaOutWarehouse; import com.ruoyi.oa.mapper.SysOaOutWarehouseMapper; import com.ruoyi.oa.service.ISysOaOutWarehouseService; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Collection; +import java.util.*; import static cn.hutool.core.bean.BeanUtil.*; @@ -61,7 +61,16 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService { */ @Override public SysOaOutWarehouseVo queryById(Long id){ - return baseMapper.selectVoById(id); + SysOaOutWarehouseVo sysOaOutWarehouseVo = baseMapper.selectVoById(id); + SysOaWarehouseVo sysOaWarehouse = warehouseMapper.selectVoByIdAndXml(sysOaOutWarehouseVo.getWarehouseId()); + SysOaProjectVo sysOaProject = projectMapper.selectVoById(sysOaOutWarehouseVo.getProjectId()); + sysOaOutWarehouseVo.setWarehouse(sysOaWarehouse); + + // 出库可能不关联项目 + if (Objects.nonNull(sysOaProject)){ + sysOaOutWarehouseVo.setProject(sysOaProject); + } + return sysOaOutWarehouseVo; } @@ -104,13 +113,11 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService { pageQuery.setPageSize(Integer.MAX_VALUE); } pageQuery.setPageNum((pageQuery.getPageNum() - 1)*pageQuery.getPageSize()); - List selectList = baseMapper.defineSelectList(bo, pageQuery); IPage page = new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize()); page.setRecords(selectList); page.setTotal(total); - log.info(String.valueOf(total)); return TableDataInfo.build(page); } @@ -140,7 +147,10 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService { */ @Override public Boolean insertByBo(SysOaOutWarehouseBo bo) { + bo.setCreateTime(new Date()); + bo.setUpdateTime(new Date()); SysOaOutWarehouse decrease = toBean(bo, SysOaOutWarehouse.class); + validEntityBeforeSave(decrease); SysOaWarehouse warehouse = warehouseMapper.selectById(decrease.getWarehouseId()); // 1 如果对应仓库表项目数量-将要出库数量<0,出库失败, 繁殖 , 增加该条 @@ -152,6 +162,7 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService { } else { warehouse.setInventory(warehouse.getInventory() - decrease.getAmount()); + warehouse.setUpdateTime(new Date()); warehouseMapper.updateById(warehouse); } @@ -167,17 +178,21 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService { Long projectId = boList.getProjectId(); - if (projectId == null) { - throw new Error("项目ID不能为空,新增出库失败"); - } List list = boList.getOutWareHouseList(); + if (projectId != null) { + list.forEach((sysOaOutWarehouseBo2 -> { + sysOaOutWarehouseBo2.setProjectId(projectId); + SysOaOutWarehouseBo sysOaOutWarehouse = toBean(sysOaOutWarehouseBo2, SysOaOutWarehouseBo.class); + insertByBo(sysOaOutWarehouse); + })); - list.forEach((sysOaOutWarehouseBo2 -> { + }else{ + list.forEach((sysOaOutWarehouseBo2 -> { + SysOaOutWarehouseBo sysOaOutWarehouse = toBean(sysOaOutWarehouseBo2, SysOaOutWarehouseBo.class); + insertByBo(sysOaOutWarehouse); + })); + } - sysOaOutWarehouseBo2.setProjectId(projectId); - SysOaOutWarehouseBo sysOaOutWarehouse = toBean(sysOaOutWarehouseBo2, SysOaOutWarehouseBo.class); - insertByBo(sysOaOutWarehouse); - })); return true; } @@ -251,12 +266,10 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService { //需要增加的对应物料数量 LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.in(SysOaOutWarehouse::getId, ids.toArray()); - - List sysOaOutWarehouses = baseMapper.selectList(lqw); //出库表中的所有删除的数据 - - sysOaOutWarehouses.forEach(sysOaOutWarehouse -> { //其中一条 - - + //出库表中的所有删除的数据 + List sysOaOutWarehouses = baseMapper.selectList(lqw); + //其中一条 + sysOaOutWarehouses.forEach(sysOaOutWarehouse -> { //选出相对应的 库存表中那一条的数据 LambdaQueryWrapper lqw2 = Wrappers.lambdaQuery(); lqw2.eq(SysOaWarehouse::getId, sysOaOutWarehouse.getWarehouseId()); @@ -266,8 +279,7 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService { warehouse.setInventory(warehouse.getInventory() + sysOaOutWarehouse.getAmount()); warehouseMapper.updateById(warehouse); }); - boolean flag = baseMapper.deleteBatchIds(ids) > 0; - return flag; + return baseMapper.deleteBatchIds(ids) > 0; } /** @@ -281,7 +293,7 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService { lqw.eq(SysOaOutWarehouse::getProjectId, projectId); List sysOaOutWarehouseVos = baseMapper.selectVoList(lqw); for (SysOaOutWarehouseVo sysOaOutWarehouseVo :sysOaOutWarehouseVos) { - sysOaOutWarehouseVo.setWarehouseName(warehouseMapper.selectById(sysOaOutWarehouseVo.getWarehouseId()).getName()); + sysOaOutWarehouseVo.setWarehouseName(warehouseMapper.selectVoByIdAndXml((sysOaOutWarehouseVo.getWarehouseId())).getName()); } return TableDataInfo.build(sysOaOutWarehouseVos); } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaTaskServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaTaskServiceImpl.java index 52c7b79..8274232 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaTaskServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaTaskServiceImpl.java @@ -14,11 +14,15 @@ 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.SysOaTaskUser; +import com.ruoyi.oa.domain.bo.SysOaAttendanceBo; import com.ruoyi.oa.domain.bo.SysOaTaskUserBo; +import com.ruoyi.oa.domain.vo.SysOaAttendanceVo; import com.ruoyi.oa.domain.vo.SysOaTaskUserVo; import com.ruoyi.oa.domain.vo.SysUserVo; import com.ruoyi.oa.mapper.SysOaTaskUserMapper; +import com.ruoyi.oa.service.ISysOaAttendanceService; import com.ruoyi.oa.service.ISysOaTaskUserService; import com.ruoyi.system.service.ISysDictTypeService; import com.ruoyi.system.service.ISysUserService; @@ -58,6 +62,9 @@ public class SysOaTaskServiceImpl implements ISysOaTaskService { @Autowired private ISysUserService userService; + @Autowired + private ISysOaAttendanceService attendanceService; + /** * 查询任务管理 */ @@ -129,6 +136,7 @@ public class SysOaTaskServiceImpl implements ISysOaTaskService { lqw.eq(StringUtils.isNotEmpty(bo.getProjectId().toString()), SysOaTask::getProjectId, bo.getProjectId()); lqw.eq(StringUtils.isNotBlank(bo.getTaskType()),SysOaTask::getTaskType, bo.getTaskType()); List sysOaTaskVos = baseMapper.selectVoList(lqw); + Long projectId = bo.getProjectId(); // 添加负责人列表 for (SysOaTaskVo sysOaTaskVo : sysOaTaskVos) { @@ -136,11 +144,33 @@ public class SysOaTaskServiceImpl implements ISysOaTaskService { lambdaQueryWrapper.eq(SysOaTaskUser::getTaskId, sysOaTaskVo.getTaskId()); List sysOaTaskUserVos = taskUserMapper.selectVoList(lambdaQueryWrapper); List sysUserList = new ArrayList<>(); + + // 计算总成本 + Double projectCostTotal = 0.0; + for (SysOaTaskUserVo sysOaTaskUserVo : sysOaTaskUserVos) { SysUser sysUser = userService.selectUserById(sysOaTaskUserVo.getUserId()); + + // 查询当前用户对于此项目的工作时长 + SysOaAttendanceBo attendance = new SysOaAttendanceBo(); + attendance.setUserId(sysOaTaskUserVo.getUserId()); + attendance.setProjectId(projectId); + + List sysOaAttendanceVos = attendanceService.queryList(attendance); + + // 写入时间 + Double workTime = 0.0; + for (SysOaAttendanceVo sysOaAttendanceVo : sysOaAttendanceVos) { + workTime+=sysOaAttendanceVo.getDayLength(); + } + + projectCostTotal+=workTime*sysUser.getLaborCost(); + sysUser.setWorkTime(workTime); + sysUserList.add(sysUser); } sysOaTaskVo.setWorkerList(sysUserList); + sysOaTaskVo.setProjectCostTotal(projectCostTotal); } return sysOaTaskVos; } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaWarehouseServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaWarehouseServiceImpl.java index 3003554..3641611 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaWarehouseServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaWarehouseServiceImpl.java @@ -127,13 +127,7 @@ public class SysOaWarehouseServiceImpl implements ISysOaWarehouseService { if(isValid){ //TODO 做一些业务上的校验,判断是否需要校验 } - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.in(SysOaWarehouse::getId, ids); - List sysOaWarehouses = baseMapper.selectList(lqw); - sysOaWarehouses.forEach(sysOaWarehouse -> { - sysOaWarehouse.setDelFlag(1L); - }); - return baseMapper.updateBatchById(sysOaWarehouses); + return baseMapper.deleteBatchIds(ids)>0; } } diff --git a/ruoyi-oa/src/main/resources/mapper/oa/SysOaAttendanceMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/SysOaAttendanceMapper.xml index 8e1468d..5f82f1a 100644 --- a/ruoyi-oa/src/main/resources/mapper/oa/SysOaAttendanceMapper.xml +++ b/ruoyi-oa/src/main/resources/mapper/oa/SysOaAttendanceMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -17,7 +17,33 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + + diff --git a/ruoyi-oa/src/main/resources/mapper/oa/SysOaOutWarehouseMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/SysOaOutWarehouseMapper.xml index 8399a63..1c2e6dc 100644 --- a/ruoyi-oa/src/main/resources/mapper/oa/SysOaOutWarehouseMapper.xml +++ b/ruoyi-oa/src/main/resources/mapper/oa/SysOaOutWarehouseMapper.xml @@ -27,15 +27,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ware.remark as remark, ware.warehouse_id as warehouseId, project.project_name as projectName, - warehouse.name as warehouseName + warehouse.name as warehouseName, + ware.create_time, + ware.create_by from sys_oa_out_warehouse ware - join - sys_oa_project project on ware.project_id = project.project_id - - join sys_oa_warehouse warehouse on warehouse.id = ware.warehouse_id - + left join sys_oa_project project on ware.project_id = project.project_id + left join sys_oa_warehouse warehouse on warehouse.id = ware.warehouse_id + ware.del_flag='0' and project.project_name like concat('%', #{bo.projectName}, '%') @@ -68,12 +68,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" count(*) from sys_oa_out_warehouse ware - join - sys_oa_project project on ware.project_id = project.project_id + left join sys_oa_project project on ware.project_id = project.project_id - join sys_oa_warehouse warehouse on warehouse.id = ware.warehouse_id + left join sys_oa_warehouse warehouse on warehouse.id = ware.warehouse_id + ware.del_flag = '0' and project.project_name like concat('%', #{bo.projectName}, '%') diff --git a/ruoyi-oa/src/main/resources/mapper/oa/SysOaProjectMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/SysOaProjectMapper.xml index be0399f..b49c143 100644 --- a/ruoyi-oa/src/main/resources/mapper/oa/SysOaProjectMapper.xml +++ b/ruoyi-oa/src/main/resources/mapper/oa/SysOaProjectMapper.xml @@ -33,6 +33,34 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -60,4 +88,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + diff --git a/ruoyi-oa/src/main/resources/mapper/oa/SysOaWarehouseMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/SysOaWarehouseMapper.xml index de6fb4f..f70a888 100644 --- a/ruoyi-oa/src/main/resources/mapper/oa/SysOaWarehouseMapper.xml +++ b/ruoyi-oa/src/main/resources/mapper/oa/SysOaWarehouseMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -20,5 +20,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index 7196d54..43211d2 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -65,8 +65,11 @@ u.del_flag, u.login_ip, u.login_date, + u.labor_cost, u.create_by, u.create_time, + u.bank_card, + u.id_card, u.remark, d.dept_id, d.parent_id, diff --git a/ruoyi-ui/src/api/oa/oaAttendance.js b/ruoyi-ui/src/api/oa/oaAttendance.js index 04d3b08..e7d6deb 100644 --- a/ruoyi-ui/src/api/oa/oaAttendance.js +++ b/ruoyi-ui/src/api/oa/oaAttendance.js @@ -9,6 +9,25 @@ export function listOaAttendance(query) { }) } + +// 查询人员考勤列表 +export function workCalc(time) { + return request({ + url: '/oa/oaAttendance/calc/'+time, + method: 'get', + }) +} + + + +// 查询人员考勤列表 +export function getDateLength() { + return request({ + url: '/oa/oaAttendance/date', + method: 'get', + }) +} + // 查询人员考勤详细 export function getOaAttendance(id) { return request({ diff --git a/ruoyi-ui/src/assets/logo/logo.png b/ruoyi-ui/src/assets/logo/logo.png index 9bd6cc8..37263d3 100644 Binary files a/ruoyi-ui/src/assets/logo/logo.png and b/ruoyi-ui/src/assets/logo/logo.png differ diff --git a/ruoyi-ui/src/router/index.js b/ruoyi-ui/src/router/index.js index 4aa3bf5..3bd3cc2 100644 --- a/ruoyi-ui/src/router/index.js +++ b/ruoyi-ui/src/router/index.js @@ -147,6 +147,7 @@ export const dynamicRoutes = [ } ] }, + { path: '/system/dict-data', component: Layout, @@ -161,6 +162,21 @@ export const dynamicRoutes = [ } ] }, + + { + path: '/oa/warehouse-data', + component: Layout, + hidden: true, + permissions: ['system:dict:list'], + children: [ + { + path: 'index/:warehouseId(\\d+)', + component: () => import('@/views/oa/oaWarehouse/data'), + name: 'Data', + meta: { title: '出库数据', activeMenu: '/oa/oaWarehouse' } + } + ] + }, { path: '/remind', component: Layout, @@ -251,6 +267,20 @@ export const dynamicRoutes = [ } ] }, + { + path: '/project/closure', + component: Layout, + hidden: true, + permissions: ['workflow:process:query'], + children: [ + { + path: 'detail/:projectId(\\d+)', + component: () => import('@/views/oa/closure/index'), + name: 'closure', + meta: { title: '项目结项', activeMenu: '/project/project' } + } + ] + }, ] // 防止连续点击多次路由报错 diff --git a/ruoyi-ui/src/views/index.vue b/ruoyi-ui/src/views/index.vue index c205f68..999ba3c 100644 --- a/ruoyi-ui/src/views/index.vue +++ b/ruoyi-ui/src/views/index.vue @@ -7,34 +7,35 @@ -
+
-
流程发起
+
项目管理
-
- +
+ + -
我的流程
+
人员考勤
-
- +
+ -
待办任务
+
通知公告
-
- +
+ -
已办任务
+
财务管理
diff --git a/ruoyi-ui/src/views/oa/attendance/index.vue b/ruoyi-ui/src/views/oa/attendance/index.vue index ea61281..d6234d9 100644 --- a/ruoyi-ui/src/views/oa/attendance/index.vue +++ b/ruoyi-ui/src/views/oa/attendance/index.vue @@ -7,7 +7,7 @@ - + {{ index + 1 }} @@ -15,7 +15,7 @@ {{ item.nickName }} - @@ -72,6 +72,152 @@ + + + + + 计算月份: + + +
+ + +
+
+ + + 计算 + +
+ + + + + + + + + + + + + + + + + + + +
+

员工个人财务与签到报告 - {{calcUser.nickName}}

+ + +
+

员工姓名: {{calcUser.nickName}}

+

职位: 员工

+
+ + +

{{date.getMonth()}} 月度工作签到情况

+ + + + + + + + {{calcUser.nickName}} + + + + {{calcUser.laborCost}} + + + + {{calcUser.laborCost*calcResultItem.workTimes}} + + + + + + + + + + + + + + + + + +
+ + + + 关闭 + +
+
@@ -80,7 +226,8 @@ import {listWorker} from "@/api/system/user"; import {listProject, updateProject} from "@/api/oa/project"; import {listOaAttendance} from "@/api/oa/oaAttendance"; -import {addBatchOaAttendance, addOaAttendance} from "../../../api/oa/oaAttendance"; +import {addBatchOaAttendance, addOaAttendance, getDateLength, workCalc} from "../../../api/oa/oaAttendance"; +import item from "../../../layout/components/Sidebar/Item.vue"; export default { name: "Project", @@ -91,12 +238,19 @@ export default { selectIndex: new Date().getDate(), // 用户列表 userList: [], + // 计算结果 + calcFlag:false, // 项目列表 projectList: [], loading: true, selectHead: new Date().getDate(), + // 当前月的天数 + dateLength:31, + // 计算提交月份 + date:new Date(), // 提交表单 form: {}, + showCalc:false, // 查询参数 userQueryParams: { pageNum: 1, @@ -106,6 +260,8 @@ export default { status: undefined, deptId: undefined }, + calcUser:{ + }, queryParams:{ pageNum: 1, pageSize: 50, @@ -116,6 +272,7 @@ export default { projectQueryParams: { pageNum: 1, pageSize: 10, + projectStatus:0, projectName: undefined, projectNum: undefined, beginTime: undefined, @@ -125,17 +282,48 @@ export default { // 日期范围 dateRange: [], selectAll: true, + calcResult:[], + calcResultItem:{}, + calcResultUser:{}, + calcResultAttendances:[], + calcResultProject:{}, } }, mounted() { - const day = new Date().getDate(); + }, created() { - + this.getDate(); this.getList(); }, methods: { + + // 查看计算结果 + handleCalc(row){ + this.showCalc = true; + this.calcUser = row + + this.calcResultItem = this.calcResult.filter(item=>item.sysUser.userId===this.calcUser.userId)[0] + this.calcResultAttendances = this.calcResultItem.attendances + console.log(this.calcResultItem) + }, + + // 计算 + calcWork(){ + + workCalc(this.date).then(res=>{ + this.calcResult = res.data; + this.calcFlag = true; + }) + }, + + getDate(){ + getDateLength().then(res => { + this.dateLength = res.data; + }) + }, + selectAttendDay(item,index, index2) { this.selectIndex = index2; this.selectAll = false; @@ -153,7 +341,6 @@ export default { getList() { this.loading = true; listOaAttendance(this.queryParams).then(res=>{ - console.log(res.data) this.userList = res.data; this.total = res.total; }); diff --git a/ruoyi-ui/src/views/oa/closure/index.vue b/ruoyi-ui/src/views/oa/closure/index.vue new file mode 100644 index 0000000..581cd84 --- /dev/null +++ b/ruoyi-ui/src/views/oa/closure/index.vue @@ -0,0 +1,160 @@ + + + + diff --git a/ruoyi-ui/src/views/oa/oaOutWarehouse/index.vue b/ruoyi-ui/src/views/oa/oaOutWarehouse/index.vue index 8e9294f..e68bb12 100644 --- a/ruoyi-ui/src/views/oa/oaOutWarehouse/index.vue +++ b/ruoyi-ui/src/views/oa/oaOutWarehouse/index.vue @@ -53,20 +53,35 @@ - + - - + + + + + + + @@ -81,10 +96,128 @@ @pagination="getList" /> + + + + + + + + + {{outDetail.id}} + + + + + {{ outDetail.amount }} + + + + + {{ warehouseDetail.name }} + + + + + {{ outDetail.createBy }} + + + + + {{ outDetail.createTime }} + + + + + {{projectDetail==null?'未关联项目':projectDetail.projectName}} + + + + + {{outDetail.remark==null?'空':outDetail.remark}} + + + + + + + + + {{ projectDetail.projectNum }} + + + + + {{outDetail.id}} + + + + + {{projectDetail.projectStatus==0?'未完结':'结项'}} + + + + + {{projectDetail.remark==null?'空':projectDetail.remark}} + + + + + + + + + + + + + + + + @@ -98,6 +231,19 @@ + + + + + 请选择物料 - {{item.inventory}} + {{ item.inventory }} @@ -187,7 +333,7 @@ - + @@ -229,7 +375,16 @@ export default { return { // 抽屉 drawer: false, - + // 查看详情弹窗 + outDetail:{}, + // 弹窗标志 + detail:false, + // 绑定项目详情 + projectDetail:{}, + // 物料信息详情 + warehouseDetail:{}, + // 出库列表 + outWareHouseList: [], // 按钮loading buttonLoading: false, // 遮罩层 @@ -254,8 +409,11 @@ export default { title: "", // 选择对象 searchItem: {}, + // 是否显示弹出层 open: false, + // 是否绑定项目 + projectFlag: false, // 库存查询参数 warehouseParams: { pageSize: 999, @@ -264,11 +422,12 @@ export default { // 查询参数 queryParams: { pageNum: 1, - pageSize: 10, - projectName: undefined, + pageSize: 10 }, // 表单参数 - form: {}, + form: { + productId: '' + }, // 表单校验 rules: { amount: [ @@ -287,10 +446,15 @@ export default { /** 查询仓库出库列表 */ getList() { this.loading = true; + + listOaOutWarehouse(this.queryParams).then(res => { + this.outWareHouseList = res.rows + this.total = res.total + this.loading = false + }) + listProject(this.queryParams).then(response => { this.projectList = response.rows - this.total = response.total; - this.loading = false; }); }, @@ -400,6 +564,7 @@ export default { addDomain() { this.form.outWareHouseList.push({ value: '', + warehouseId: '', key: Date.now() }); }, @@ -410,8 +575,8 @@ export default { } }, - handleGetInventory(e,index){ - this.form.outWareHouseList[index].inventory = this.oaWarehouseList[this.oaWarehouseList.findIndex(item=>item.id===e)].inventory + handleGetInventory(e, index) { + this.form.outWareHouseList[index].inventory = this.oaWarehouseList[this.oaWarehouseList.findIndex(item => item.id === e)].inventory console.log(this.form.outWareHouseList[index]) }, @@ -432,6 +597,12 @@ export default { }; }, + getOaOutWarehouseList(){ + listOaWarehouse(this.warehouseParams).then(res => { + this.oaWarehouseList = res.rows + }) + }, + remoteMethod(query) { this.warehouseParams.name = query this.selectLoading = true; @@ -454,6 +625,19 @@ export default { this.drawer = true; this.loading = false; }) + }, + + // 查看出库单独条目详情 + showDetail(row){ + getOaOutWarehouse(row.id).then(response => { + console.log(response.data); + this.outDetail = response.data; + + this.projectDetail = response.data.project; + this.warehouseDetail = response.data.warehouse; + }) + this.detail=true; + } } }; diff --git a/ruoyi-ui/src/views/oa/oaWarehouse/data.vue b/ruoyi-ui/src/views/oa/oaWarehouse/data.vue new file mode 100644 index 0000000..b5c2797 --- /dev/null +++ b/ruoyi-ui/src/views/oa/oaWarehouse/data.vue @@ -0,0 +1,180 @@ + + + + + diff --git a/ruoyi-ui/src/views/oa/oaWarehouse/index.vue b/ruoyi-ui/src/views/oa/oaWarehouse/index.vue index 706f8b3..36d3347 100644 --- a/ruoyi-ui/src/views/oa/oaWarehouse/index.vue +++ b/ruoyi-ui/src/views/oa/oaWarehouse/index.vue @@ -91,7 +91,16 @@ - + + + + + + diff --git a/ruoyi-ui/src/views/oa/project/index.vue b/ruoyi-ui/src/views/oa/project/index.vue index 4aeca37..be40a91 100644 --- a/ruoyi-ui/src/views/oa/project/index.vue +++ b/ruoyi-ui/src/views/oa/project/index.vue @@ -166,11 +166,22 @@ 实施 + + 结项 + { - console.log(res.rows) this.workerList = res.rows.filter(item => { return item.nickName.toLowerCase() .indexOf(query.toLowerCase()) > -1;