三期内容优化
This commit is contained in:
@@ -3,17 +3,14 @@ package com.ruoyi.oa.controller;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import com.alibaba.excel.util.DateUtils;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.ruoyi.oa.domain.CalendarDay;
|
||||
import com.ruoyi.oa.domain.vo.SysHolidayVo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaHolidayListVo;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.ruoyi.common.annotation.RepeatSubmit;
|
||||
@@ -23,7 +20,6 @@ import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import com.ruoyi.common.core.validate.QueryGroup;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.oa.domain.vo.SysOaHolidayVo;
|
||||
@@ -141,4 +137,9 @@ public class SysOaHolidayController extends BaseController {
|
||||
public R<List<SysHolidayVo>> queryList(SysOaHolidayBo bo){
|
||||
return R.ok(iSysOaHolidayService.queryVoList(bo));
|
||||
}
|
||||
|
||||
@GetMapping("/queryOwnList")
|
||||
public List<CalendarDay> queryOwnList(SysOaHolidayBo bo, PageQuery pageQuery){
|
||||
return iSysOaHolidayService.queryOwnList(bo,pageQuery);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,10 +3,9 @@ package com.ruoyi.oa.controller;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
|
||||
import com.ruoyi.oa.domain.bo.SysOaOutWarehouseBo;
|
||||
import com.ruoyi.oa.domain.bo.SysOaWarehouseDetailBo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaOutWarehouseListVo;
|
||||
import com.ruoyi.oa.mapper.SysOaTaskMapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -22,7 +21,6 @@ import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import com.ruoyi.common.core.validate.QueryGroup;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.oa.domain.vo.SysOaProjectVo;
|
||||
@@ -142,7 +140,7 @@ public class SysOaProjectController extends BaseController {
|
||||
*/
|
||||
@SaCheckPermission("oa:project:list")
|
||||
@GetMapping("/outWare/list")
|
||||
public TableDataInfo<SysOaOutWarehouseListVo> outWareList(SysOaOutWarehouseBo bo, PageQuery pageQuery) {
|
||||
public TableDataInfo<SysOaOutWarehouseListVo> outWareList(SysOaWarehouseDetailBo bo, PageQuery pageQuery) {
|
||||
return iSysOaProjectService.queryOutWarePageList(bo, pageQuery);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,11 @@ import java.util.Arrays;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import com.ruoyi.common.excel.ExcelResult;
|
||||
import com.ruoyi.oa.domain.SysOaWarehouseMaster;
|
||||
import com.ruoyi.oa.domain.bo.SysOaWarehouseDetailBo;
|
||||
import com.ruoyi.oa.domain.bo.SysOaWarehouseMasterBo;
|
||||
import com.ruoyi.oa.listener.SysOaWarehouseListener;
|
||||
import com.ruoyi.oa.service.ISysOaWarehouseMasterService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
@@ -44,6 +48,8 @@ public class SysOaWarehouseController extends BaseController {
|
||||
|
||||
private final ISysOaWarehouseService iSysOaWarehouseService;
|
||||
|
||||
private final ISysOaWarehouseMasterService iSysOaWarehouseMasterService;
|
||||
|
||||
/**
|
||||
* 查询仓库管理列表
|
||||
*/
|
||||
@@ -98,6 +104,8 @@ public class SysOaWarehouseController extends BaseController {
|
||||
return toAjax(iSysOaWarehouseService.insertByBo(bo));
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 修改仓库管理
|
||||
*/
|
||||
@@ -130,12 +138,24 @@ public class SysOaWarehouseController extends BaseController {
|
||||
* @param file 导入文件
|
||||
* @param updateSupport 是否更新已存在数据
|
||||
*/
|
||||
@Log(title = "投诉工单导入", businessType = BusinessType.IMPORT)
|
||||
@Log(title = "入库工单导入", businessType = BusinessType.IMPORT)
|
||||
@SaCheckPermission("complaint:complaint:import")
|
||||
@PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
||||
public R<Void> importData(@RequestPart("file") MultipartFile file, boolean updateSupport) throws Exception {
|
||||
ExcelResult<SysOaWarehouseVo> result = ExcelUtil.importExcel(file.getInputStream(), SysOaWarehouseVo.class,
|
||||
new SysOaWarehouseListener(true));
|
||||
SysOaWarehouseMasterBo sysOaWarehouseMaster = new SysOaWarehouseMasterBo();
|
||||
sysOaWarehouseMaster.setType(1L);
|
||||
List<SysOaWarehouseDetailBo> list = new ArrayList<>();
|
||||
result.getList().forEach(item -> {
|
||||
SysOaWarehouseDetailBo bo = new SysOaWarehouseDetailBo();
|
||||
bo.setWarehouseId(item.getId());
|
||||
bo.setAmount(item.getInventory());
|
||||
bo.setSignPrice(item.getPrice());
|
||||
list.add(bo);
|
||||
});
|
||||
sysOaWarehouseMaster.setWarehouseList(list);
|
||||
iSysOaWarehouseMasterService.insertByBo(sysOaWarehouseMaster);
|
||||
return R.ok(result.getAnalysis());
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@ package com.ruoyi.oa.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import com.ruoyi.oa.domain.bo.SysOaOutWarehouseBoList;
|
||||
import com.ruoyi.oa.domain.vo.SysOaOutWarehouseListVo;
|
||||
@@ -19,12 +18,11 @@ import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import com.ruoyi.common.core.validate.QueryGroup;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.oa.domain.vo.SysOaOutWarehouseVo;
|
||||
import com.ruoyi.oa.domain.bo.SysOaOutWarehouseBo;
|
||||
import com.ruoyi.oa.service.ISysOaOutWarehouseService;
|
||||
import com.ruoyi.oa.domain.vo.SysOaWarehouseDetailVo;
|
||||
import com.ruoyi.oa.domain.bo.SysOaWarehouseDetailBo;
|
||||
import com.ruoyi.oa.service.ISysOaWarehouseDetailService;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
@@ -37,9 +35,9 @@ import com.ruoyi.common.core.page.TableDataInfo;
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/oa/oaOutWarehouse")
|
||||
public class SysOaOutWarehouseController extends BaseController {
|
||||
public class SysOaWarehouseDetailController extends BaseController {
|
||||
|
||||
private final ISysOaOutWarehouseService iSysOaOutWarehouseService;
|
||||
private final ISysOaWarehouseDetailService iSysOaWarehouseDetailService;
|
||||
|
||||
|
||||
|
||||
@@ -48,8 +46,8 @@ public class SysOaOutWarehouseController extends BaseController {
|
||||
*/
|
||||
@SaCheckPermission("oa:oaOutWarehouse:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<SysOaOutWarehouseListVo> list(SysOaOutWarehouseBo bo, PageQuery pageQuery) {
|
||||
return iSysOaOutWarehouseService.queryPageList(bo, pageQuery);
|
||||
public TableDataInfo<SysOaOutWarehouseListVo> list(SysOaWarehouseDetailBo bo, PageQuery pageQuery) {
|
||||
return iSysOaWarehouseDetailService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -58,9 +56,9 @@ public class SysOaOutWarehouseController extends BaseController {
|
||||
@SaCheckPermission("oa:oaOutWarehouse:export")
|
||||
@Log(title = "仓库出库", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(SysOaOutWarehouseBo bo, HttpServletResponse response) {
|
||||
List<SysOaOutWarehouseVo> list = iSysOaOutWarehouseService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "仓库出库", SysOaOutWarehouseVo.class, response);
|
||||
public void export(SysOaWarehouseDetailBo bo, HttpServletResponse response) {
|
||||
List<SysOaWarehouseDetailVo> list = iSysOaWarehouseDetailService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "仓库出库", SysOaWarehouseDetailVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -70,9 +68,9 @@ public class SysOaOutWarehouseController extends BaseController {
|
||||
*/
|
||||
@SaCheckPermission("oa:oaOutWarehouse:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<SysOaOutWarehouseVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
public R<SysOaWarehouseDetailVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(iSysOaOutWarehouseService.queryById(id));
|
||||
return R.ok(iSysOaWarehouseDetailService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -82,9 +80,9 @@ public class SysOaOutWarehouseController extends BaseController {
|
||||
*/
|
||||
@SaCheckPermission("oa:oaOutWarehouse:query")
|
||||
@GetMapping("/WarehouseIdList/{WarehouseId}")
|
||||
public TableDataInfo<SysOaOutWarehouseVo> ListByWarehouseId(@NotNull(message = "出库产品ID不能为空")
|
||||
public TableDataInfo<SysOaWarehouseDetailVo> ListByWarehouseId(@NotNull(message = "出库产品ID不能为空")
|
||||
@PathVariable Long WarehouseId) {
|
||||
return iSysOaOutWarehouseService.queryWarehouseIdList(WarehouseId);
|
||||
return iSysOaWarehouseDetailService.queryWarehouseIdList(WarehouseId);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -94,9 +92,9 @@ public class SysOaOutWarehouseController extends BaseController {
|
||||
*/
|
||||
@SaCheckPermission("oa:oaOutWarehouse:query")
|
||||
@GetMapping("/project/{projectId}")
|
||||
public TableDataInfo<SysOaOutWarehouseVo> queryOutWarehouseByProjectId(@NotNull(message = "项目名不能为空")
|
||||
public TableDataInfo<SysOaWarehouseDetailVo> queryOutWarehouseByProjectId(@NotNull(message = "项目名不能为空")
|
||||
@PathVariable Long projectId) {
|
||||
return iSysOaOutWarehouseService.queryOutWarehouseByProjectId(projectId);
|
||||
return iSysOaWarehouseDetailService.queryOutWarehouseByProjectId(projectId);
|
||||
}
|
||||
|
||||
|
||||
@@ -108,22 +106,10 @@ public class SysOaOutWarehouseController extends BaseController {
|
||||
@Log(title = "仓库出库", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody SysOaOutWarehouseBo bo) {
|
||||
return toAjax(iSysOaOutWarehouseService.insertByBo(bo));
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody SysOaWarehouseDetailBo bo) {
|
||||
return toAjax(iSysOaWarehouseDetailService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量新增仓库出库
|
||||
*/
|
||||
@SaCheckPermission("oa:oaOutWarehouse:add")
|
||||
@Log(title = "仓库批量出库",businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/insertOutBatch")
|
||||
public R<Void> addAll(@Validated(AddGroup.class) @RequestBody SysOaOutWarehouseBoList boList) {
|
||||
return toAjax(iSysOaOutWarehouseService.insertByBoList(boList));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 修改仓库出库
|
||||
*/
|
||||
@@ -131,8 +117,8 @@ public class SysOaOutWarehouseController extends BaseController {
|
||||
@Log(title = "仓库出库", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysOaOutWarehouseBo bo) {
|
||||
return toAjax(iSysOaOutWarehouseService.updateByBo(bo));
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysOaWarehouseDetailBo bo) {
|
||||
return toAjax(iSysOaWarehouseDetailService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -145,6 +131,6 @@ public class SysOaOutWarehouseController extends BaseController {
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(iSysOaOutWarehouseService.deleteWithValidByIds(Arrays.asList(ids), true));
|
||||
return toAjax(iSysOaWarehouseDetailService.deleteWithValidByIds(Arrays.asList(ids), true));
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,13 @@
|
||||
package com.ruoyi.oa.controller;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import com.ruoyi.oa.domain.bo.SysOaWarehouseBo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaWarehouseVo;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
@@ -82,6 +86,16 @@ public class SysOaWarehouseMasterController extends BaseController {
|
||||
return toAjax(iSysOaWarehouseMasterService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增仓库管理
|
||||
*/
|
||||
@Log(title = "仓库管理", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/in")
|
||||
public R<Void> addIn(@Validated(AddGroup.class) @RequestBody SysOaWarehouseBo bo) {
|
||||
return toAjax(iSysOaWarehouseMasterService.insertInWarehouse(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改出库单管理
|
||||
*/
|
||||
|
||||
11
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/CalendarDay.java
Normal file
11
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/CalendarDay.java
Normal file
@@ -0,0 +1,11 @@
|
||||
package com.ruoyi.oa.domain;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class CalendarDay {
|
||||
|
||||
private String date; // "2025-03-01" 格式
|
||||
private Integer type; // 0 工作
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.ruoyi.oa.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import liquibase.pro.packaged.J;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.io.Serializable;
|
||||
@@ -10,6 +11,7 @@ import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
/**
|
||||
* 休假管理对象 sys_oa_holiday
|
||||
@@ -36,6 +38,8 @@ public class SysOaHoliday extends BaseEntity {
|
||||
/**
|
||||
* 假期日期
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private Date holidayTime;
|
||||
/**
|
||||
* 假期名称(如果是周日,值为休息日)
|
||||
|
||||
@@ -3,22 +3,19 @@ package com.ruoyi.oa.domain;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 仓库出库对象 sys_oa_out_warehouse
|
||||
* 仓库出库对象 sys_oa_warehouse_detail
|
||||
*
|
||||
* @author liuzongkun999
|
||||
* @date 2024-11-02
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("sys_oa_out_warehouse")
|
||||
public class SysOaOutWarehouse extends BaseEntity {
|
||||
@TableName("sys_oa_warehouse_detail")
|
||||
public class SysOaWarehouseDetail extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
@@ -49,4 +46,9 @@ public class SysOaOutWarehouse extends BaseEntity {
|
||||
@TableLogic
|
||||
private Integer delFlag;
|
||||
|
||||
private Long masterId;
|
||||
|
||||
private Double signPrice;
|
||||
|
||||
|
||||
}
|
||||
@@ -29,6 +29,8 @@ public class SysOaWarehouseMaster extends BaseEntity {
|
||||
*/
|
||||
@TableId(value = "master_id")
|
||||
private Long masterId;
|
||||
|
||||
private String masterNum;
|
||||
/**
|
||||
* 0出库单1入库单
|
||||
*/
|
||||
|
||||
@@ -11,6 +11,7 @@ import java.util.Date;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
/**
|
||||
* 休假管理业务对象 sys_oa_holiday
|
||||
@@ -36,6 +37,8 @@ public class SysOaHolidayBo extends BaseEntity {
|
||||
/**
|
||||
* 假期日期
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private Date holidayTime;
|
||||
|
||||
/**
|
||||
|
||||
@@ -11,7 +11,7 @@ import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 仓库出库业务对象 sys_oa_out_warehouse
|
||||
* 仓库出库业务对象 sys_oa_warehouse_detail
|
||||
*
|
||||
* @author liuzongkun999
|
||||
* @date 2024-11-02
|
||||
|
||||
@@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
/**
|
||||
* 仓库批量出库业务对象 sys_oa_out_warehouse
|
||||
* 仓库批量出库业务对象 sys_oa_warehouse_detail
|
||||
*
|
||||
* @author liuzongkun999
|
||||
* @date 2024-11-05
|
||||
|
||||
@@ -8,12 +8,10 @@ import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 仓库出库业务对象 sys_oa_out_warehouse
|
||||
* 仓库出库业务对象 sys_oa_warehouse_detail
|
||||
*
|
||||
* @author liuzongkun999
|
||||
* @date 2024-11-02
|
||||
@@ -21,7 +19,7 @@ import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class SysOaOutWarehouseBo extends BaseEntity {
|
||||
public class SysOaWarehouseDetailBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
@@ -61,4 +59,8 @@ public class SysOaOutWarehouseBo extends BaseEntity {
|
||||
* 物料名
|
||||
*/
|
||||
private String warehouseName;
|
||||
|
||||
private Double signPrice;
|
||||
|
||||
private Long masterId;
|
||||
}
|
||||
@@ -9,6 +9,8 @@ import javax.validation.constraints.*;
|
||||
import java.util.Date;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
@@ -28,6 +30,8 @@ public class SysOaWarehouseMasterBo extends BaseEntity {
|
||||
*/
|
||||
private Long masterId;
|
||||
|
||||
private String masterNum;
|
||||
|
||||
/**
|
||||
* 0出库单1入库单
|
||||
*/
|
||||
@@ -53,5 +57,10 @@ public class SysOaWarehouseMasterBo extends BaseEntity {
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 涉及物料
|
||||
*/
|
||||
private List<SysOaWarehouseDetailBo> warehouseList;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -54,5 +54,8 @@ public class SysOaHolidayVo {
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date date;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 仓库出库查询对象 sys_oa_out_warehouse
|
||||
* 仓库出库查询对象 sys_oa_warehouse_detail
|
||||
*
|
||||
* @author liuzongkun999
|
||||
* @date 2024-11-02
|
||||
|
||||
@@ -8,14 +8,14 @@ import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 仓库出库视图对象 sys_oa_out_warehouse
|
||||
* 仓库出库视图对象 sys_oa_warehouse_detail
|
||||
*
|
||||
* @author liuzongkun999
|
||||
* @date 2024-11-02
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class SysOaOutWarehouseVo extends BaseEntity {
|
||||
public class SysOaWarehouseDetailVo extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@@ -61,4 +61,11 @@ public class SysOaOutWarehouseVo extends BaseEntity {
|
||||
/** 项目信息 */
|
||||
private SysOaProjectVo project;
|
||||
|
||||
private Double signPrice;
|
||||
|
||||
private Long masterId;
|
||||
|
||||
private String model;
|
||||
private String specifications;
|
||||
|
||||
}
|
||||
@@ -8,7 +8,7 @@ import com.ruoyi.common.annotation.ExcelDictFormat;
|
||||
import com.ruoyi.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
import java.util.Date;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
@@ -29,6 +29,12 @@ public class SysOaWarehouseMasterVo {
|
||||
@ExcelProperty(value = "主键id")
|
||||
private Long masterId;
|
||||
|
||||
/**
|
||||
* 出库单编号
|
||||
*/
|
||||
@ExcelProperty(value = "出库单编号")
|
||||
private String masterNum;
|
||||
|
||||
/**
|
||||
* 0出库单1入库单
|
||||
*/
|
||||
@@ -59,5 +65,12 @@ public class SysOaWarehouseMasterVo {
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 出库列表
|
||||
*/
|
||||
private List<SysOaWarehouseDetailVo> warehouseList;
|
||||
|
||||
private String projectName;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -86,6 +86,4 @@ public class SysOaWarehouseVo extends SysOaWarehouse {
|
||||
private String remark;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -7,11 +7,16 @@ import com.alibaba.excel.event.AnalysisEventListener;
|
||||
import com.ruoyi.common.excel.ExcelListener;
|
||||
import com.ruoyi.common.excel.ExcelResult;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.common.utils.ValidatorUtils;
|
||||
import com.ruoyi.common.utils.spring.SpringUtils;
|
||||
import com.ruoyi.oa.domain.SysOaWarehouseMaster;
|
||||
import com.ruoyi.oa.domain.bo.SysOaWarehouseBo;
|
||||
import com.ruoyi.oa.domain.bo.SysOaWarehouseDetailBo;
|
||||
import com.ruoyi.oa.domain.bo.SysOaWarehouseMasterBo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaWarehouseVo;
|
||||
import com.ruoyi.oa.service.ISysOaArticleService;
|
||||
import com.ruoyi.oa.service.ISysOaWarehouseMasterService;
|
||||
import com.ruoyi.oa.service.ISysOaWarehouseService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@@ -23,15 +28,19 @@ public class SysOaWarehouseListener extends AnalysisEventListener<SysOaWarehouse
|
||||
|
||||
private final ISysOaWarehouseService sysOaWarehouseService;
|
||||
|
||||
private final ISysOaWarehouseMasterService warehouseMasterService;
|
||||
|
||||
private final Boolean isUpdateSupport;
|
||||
|
||||
|
||||
private int successNum = 0;
|
||||
private int failureNum = 0;
|
||||
private List<SysOaWarehouseVo> sysOaWarehouseVos;
|
||||
private final StringBuilder successMsg = new StringBuilder();
|
||||
private final StringBuilder failureMsg = new StringBuilder();
|
||||
|
||||
public SysOaWarehouseListener(Boolean isUpdateSupport) {
|
||||
this.warehouseMasterService = SpringUtils.getBean(ISysOaWarehouseMasterService.class);
|
||||
// String initPassword = SpringUtils.getBean(ISysConfigService.class).selectConfigByKey("sys.user.initPassword");
|
||||
this.sysOaWarehouseService = SpringUtils.getBean(ISysOaWarehouseService.class);
|
||||
this.isUpdateSupport = isUpdateSupport;
|
||||
@@ -43,12 +52,14 @@ public class SysOaWarehouseListener extends AnalysisEventListener<SysOaWarehouse
|
||||
SysOaWarehouseBo bo = new SysOaWarehouseBo();
|
||||
bo.setName(sysOaWarehouseVo.getName());
|
||||
if (Objects.nonNull(sysOaWarehouseVo.getModel())){
|
||||
bo.setModel(sysOaWarehouseVo.getModel());
|
||||
bo.setModel(sysOaWarehouseVo.getModel().trim());
|
||||
bo.setBrand(sysOaWarehouseVo.getBrand().trim());
|
||||
}
|
||||
|
||||
List<SysOaWarehouseVo> complaintVo = this.sysOaWarehouseService.queryList(bo);
|
||||
try {
|
||||
// 验证是否存在这个用户
|
||||
if (complaintVo.size()<=0) {
|
||||
// 验证是否存在这个物料
|
||||
if (complaintVo.isEmpty()) {
|
||||
SysOaWarehouseBo add = BeanUtil.toBean(sysOaWarehouseVo, SysOaWarehouseBo.class);
|
||||
ValidatorUtils.validate(complaintVo);
|
||||
sysOaWarehouseService.insertByBo(add);
|
||||
@@ -61,11 +72,14 @@ public class SysOaWarehouseListener extends AnalysisEventListener<SysOaWarehouse
|
||||
SysOaWarehouseBo update = BeanUtil.toBean(sysOaWarehouseVo, SysOaWarehouseBo.class);
|
||||
update.setId(warehouseVo.getId());
|
||||
update.setInventory(warehouseVo.getInventory()+sysOaWarehouseVo.getInventory());
|
||||
// 价格算加权平均
|
||||
update.setPrice(warehouseVo.getPrice()*warehouseVo.getInventory()+sysOaWarehouseVo.getPrice()*sysOaWarehouseVo.getInventory()/(warehouseVo.getInventory()+sysOaWarehouseVo.getInventory()));
|
||||
ValidatorUtils.validate(complaintVo);
|
||||
sysOaWarehouseService.updateByBo(update);
|
||||
successNum++;
|
||||
successMsg.append("<br/>").append(successNum).append("、物料名称: ").append(update.getName()).append(" 更新成功");
|
||||
}
|
||||
sysOaWarehouseVos.add(sysOaWarehouseVo);
|
||||
} catch (Exception e) {
|
||||
failureNum++;
|
||||
String msg = "<br/>" + failureNum + "、物料名称: " + sysOaWarehouseVo.getName() + " 导入失败:";
|
||||
@@ -96,7 +110,7 @@ public class SysOaWarehouseListener extends AnalysisEventListener<SysOaWarehouse
|
||||
|
||||
@Override
|
||||
public List<SysOaWarehouseVo> getList() {
|
||||
return null;
|
||||
return sysOaWarehouseVos;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
package com.ruoyi.oa.mapper;
|
||||
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.oa.domain.SysOaOutWarehouse;
|
||||
import com.ruoyi.oa.domain.bo.SysOaOutWarehouseBo;
|
||||
import com.ruoyi.oa.domain.bo.SysOaOutWarehouseBo2;
|
||||
import com.ruoyi.oa.domain.vo.SysOaOutWarehouseListVo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaOutWarehouseVo;
|
||||
import com.ruoyi.common.core.mapper.BaseMapperPlus;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 仓库出库Mapper接口
|
||||
*
|
||||
* @author liuzongkun999
|
||||
* @date 2024-11-02
|
||||
*/
|
||||
public interface SysOaOutWarehouseMapper extends BaseMapperPlus<SysOaOutWarehouseMapper, SysOaOutWarehouse, SysOaOutWarehouseVo> {
|
||||
|
||||
/**
|
||||
* 仓库出库筛选(联查)
|
||||
*/
|
||||
List<SysOaOutWarehouseListVo> defineSelectList(@Param(value = "bo") SysOaOutWarehouseBo bo, @Param(value = "page") PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 获取分页的Total值
|
||||
*/
|
||||
Long defineQueryTotal(@Param(value = "bo") SysOaOutWarehouseBo bo, @Param(value = "page") PageQuery pageQuery);
|
||||
|
||||
|
||||
@Select("select * from sys_oa_out_warehouse where project_id = #{projectId} and del_flag = 0")
|
||||
List<SysOaOutWarehouse> List(@Param("projectId") Long projectId);
|
||||
}
|
||||
@@ -4,13 +4,9 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||
import com.ruoyi.oa.domain.SysOaOutWarehouse;
|
||||
import com.ruoyi.oa.domain.SysOaProject;
|
||||
import com.ruoyi.oa.domain.bo.SysOaProjectBo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaCostAllVo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaCostRow;
|
||||
import com.ruoyi.oa.domain.vo.SysOaOutWarehouseListVo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaProjectVo;
|
||||
import com.ruoyi.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.ruoyi.oa.mapper;
|
||||
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.oa.domain.SysOaWarehouseDetail;
|
||||
import com.ruoyi.oa.domain.bo.SysOaWarehouseDetailBo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaOutWarehouseListVo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaWarehouseDetailVo;
|
||||
import com.ruoyi.common.core.mapper.BaseMapperPlus;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 仓库出库Mapper接口
|
||||
*
|
||||
* @author liuzongkun999
|
||||
* @date 2024-11-02
|
||||
*/
|
||||
public interface SysOaWarehouseDetailMapper extends BaseMapperPlus<SysOaWarehouseDetailMapper, SysOaWarehouseDetail, SysOaWarehouseDetailVo> {
|
||||
|
||||
/**
|
||||
* 仓库出库筛选(联查)
|
||||
*/
|
||||
List<SysOaOutWarehouseListVo> defineSelectList(@Param(value = "bo") SysOaWarehouseDetailBo bo, @Param(value = "page") PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 获取分页的Total值
|
||||
*/
|
||||
Long defineQueryTotal(@Param(value = "bo") SysOaWarehouseDetailBo bo, @Param(value = "page") PageQuery pageQuery);
|
||||
|
||||
|
||||
@Select("select * from sys_oa_warehouse_detail where project_id = #{projectId} and del_flag = 0")
|
||||
List<SysOaWarehouseDetail> List(@Param("projectId") Long projectId);
|
||||
}
|
||||
@@ -1,8 +1,12 @@
|
||||
package com.ruoyi.oa.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.oa.domain.SysOaWarehouseMaster;
|
||||
import com.ruoyi.oa.domain.vo.SysOaWarehouseMasterVo;
|
||||
import com.ruoyi.common.core.mapper.BaseMapperPlus;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 出库单管理Mapper接口
|
||||
@@ -12,4 +16,5 @@ import com.ruoyi.common.core.mapper.BaseMapperPlus;
|
||||
*/
|
||||
public interface SysOaWarehouseMasterMapper extends BaseMapperPlus<SysOaWarehouseMasterMapper, SysOaWarehouseMaster, SysOaWarehouseMasterVo> {
|
||||
|
||||
Page<SysOaWarehouseMasterVo> selectVoPagePlus(@Param("page") Page<SysOaWarehouseMasterVo> build, @Param(Constants.WRAPPER) QueryWrapper<SysOaWarehouseMaster> lqw);
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
package com.ruoyi.oa.service;
|
||||
|
||||
import com.ruoyi.oa.domain.CalendarDay;
|
||||
import com.ruoyi.oa.domain.vo.SysHolidayVo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaHolidayListVo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaHolidayVo;
|
||||
import com.ruoyi.oa.domain.bo.SysOaHolidayBo;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
@@ -81,4 +81,14 @@ public interface ISysOaHolidayService {
|
||||
* @return
|
||||
*/
|
||||
Long queryWorkDayNumByMonth(Date payTime);
|
||||
|
||||
/**
|
||||
* 首页接口
|
||||
*
|
||||
* @param bo
|
||||
* @param pageQuery
|
||||
* @return
|
||||
*/
|
||||
List<CalendarDay> queryOwnList(SysOaHolidayBo bo, PageQuery pageQuery);
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.ruoyi.oa.service;
|
||||
|
||||
import com.ruoyi.oa.domain.bo.SysOaOutWarehouseBo;
|
||||
import com.ruoyi.oa.domain.bo.SysOaWarehouseDetailBo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaOutWarehouseListVo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaProjectVo;
|
||||
import com.ruoyi.oa.domain.bo.SysOaProjectBo;
|
||||
@@ -49,7 +49,7 @@ public interface ISysOaProjectService {
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
TableDataInfo<SysOaOutWarehouseListVo> queryOutWarePageList(SysOaOutWarehouseBo bo, PageQuery pageQuery);
|
||||
TableDataInfo<SysOaOutWarehouseListVo> queryOutWarePageList(SysOaWarehouseDetailBo bo, PageQuery pageQuery);
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
package com.ruoyi.oa.service;
|
||||
|
||||
import com.ruoyi.oa.domain.SysOaOutWarehouse;
|
||||
import com.ruoyi.oa.domain.bo.SysOaOutWarehouseBoList;
|
||||
import com.ruoyi.oa.domain.vo.SysOaOutWarehouseListVo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaOutWarehouseVo;
|
||||
import com.ruoyi.oa.domain.bo.SysOaOutWarehouseBo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaWarehouseDetailVo;
|
||||
import com.ruoyi.oa.domain.bo.SysOaWarehouseDetailBo;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
|
||||
@@ -18,34 +17,34 @@ import java.util.List;
|
||||
* @author liuzongkun999
|
||||
* @date 2024-11-02
|
||||
*/
|
||||
public interface ISysOaOutWarehouseService {
|
||||
public interface ISysOaWarehouseDetailService {
|
||||
|
||||
/**
|
||||
* 查询仓库出库
|
||||
*/
|
||||
SysOaOutWarehouseVo queryById(Long id);
|
||||
SysOaWarehouseDetailVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 查询仓库出库产品id的列表
|
||||
*
|
||||
* @param WarehouseId 出库产品id
|
||||
*/
|
||||
TableDataInfo<SysOaOutWarehouseVo> queryWarehouseIdList(Long WarehouseId);
|
||||
TableDataInfo<SysOaWarehouseDetailVo> queryWarehouseIdList(Long WarehouseId);
|
||||
|
||||
/**
|
||||
* 查询仓库出库列表
|
||||
*/
|
||||
TableDataInfo<SysOaOutWarehouseListVo> queryPageList(SysOaOutWarehouseBo bo, PageQuery pageQuery);
|
||||
TableDataInfo<SysOaOutWarehouseListVo> queryPageList(SysOaWarehouseDetailBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询仓库出库列表
|
||||
*/
|
||||
List<SysOaOutWarehouseVo> queryList(SysOaOutWarehouseBo bo);
|
||||
List<SysOaWarehouseDetailVo> queryList(SysOaWarehouseDetailBo bo);
|
||||
|
||||
/**
|
||||
* 新增仓库出库
|
||||
*/
|
||||
Boolean insertByBo(SysOaOutWarehouseBo bo);
|
||||
Boolean insertByBo(SysOaWarehouseDetailBo bo);
|
||||
|
||||
/**
|
||||
* 仓库批量出库
|
||||
@@ -55,7 +54,7 @@ public interface ISysOaOutWarehouseService {
|
||||
/**
|
||||
* 修改仓库出库
|
||||
*/
|
||||
Boolean updateByBo(SysOaOutWarehouseBo bo);
|
||||
Boolean updateByBo(SysOaWarehouseDetailBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除仓库出库信息
|
||||
@@ -63,6 +62,6 @@ public interface ISysOaOutWarehouseService {
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
|
||||
TableDataInfo<SysOaOutWarehouseVo> queryOutWarehouseByProjectId(@NotNull(message = "项目名不能为空") Long projectId);
|
||||
TableDataInfo<SysOaWarehouseDetailVo> queryOutWarehouseByProjectId(@NotNull(message = "项目名不能为空") Long projectId);
|
||||
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.ruoyi.oa.service;
|
||||
|
||||
import com.ruoyi.oa.domain.SysOaWarehouseMaster;
|
||||
import com.ruoyi.oa.domain.bo.SysOaWarehouseBo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaWarehouseMasterVo;
|
||||
import com.ruoyi.oa.domain.bo.SysOaWarehouseMasterBo;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
@@ -46,4 +47,11 @@ public interface ISysOaWarehouseMasterService {
|
||||
* 校验并批量删除出库单管理信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
/**
|
||||
* 单个入库接口
|
||||
* @param bo
|
||||
* @return
|
||||
*/
|
||||
int insertInWarehouse(SysOaWarehouseBo bo);
|
||||
}
|
||||
|
||||
@@ -3,8 +3,6 @@ package com.ruoyi.oa.service.impl;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
@@ -22,11 +20,7 @@ import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.oa.domain.bo.SysOaCostBo;
|
||||
import com.ruoyi.oa.service.ISysOaCostService;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 项目成本分析Service业务层处理
|
||||
@@ -47,7 +41,7 @@ public class SysOaCostServiceImpl implements ISysOaCostService {
|
||||
|
||||
private final SysOaWarehouseMapper warehouseMapper;
|
||||
|
||||
private final SysOaOutWarehouseMapper outWarehouseMapper;
|
||||
private final SysOaWarehouseDetailMapper outWarehouseMapper;
|
||||
|
||||
private final SysOaAttendanceMapper attendanceMapper;
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.ruoyi.oa.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.ruoyi.common.helper.LoginHelper;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
@@ -8,9 +9,13 @@ 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.CalendarDay;
|
||||
import com.ruoyi.oa.domain.vo.SysHolidayVo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaHolidayListVo;
|
||||
import com.ruoyi.workflow.domain.FlowRecord;
|
||||
import com.ruoyi.workflow.service.IWfTaskService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.oa.domain.bo.SysOaHolidayBo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaHolidayVo;
|
||||
@@ -20,6 +25,7 @@ import com.ruoyi.oa.service.ISysOaHolidayService;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalTime;
|
||||
import java.time.YearMonth;
|
||||
import java.time.ZoneId;
|
||||
import java.util.*;
|
||||
@@ -36,6 +42,9 @@ public class SysOaHolidayServiceImpl implements ISysOaHolidayService {
|
||||
|
||||
private final SysOaHolidayMapper baseMapper;
|
||||
|
||||
@Autowired
|
||||
private IWfTaskService taskService;
|
||||
|
||||
/**
|
||||
* 查询休假管理
|
||||
*/
|
||||
@@ -51,6 +60,9 @@ public class SysOaHolidayServiceImpl implements ISysOaHolidayService {
|
||||
public TableDataInfo<SysOaHolidayVo> queryPageList(SysOaHolidayBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<SysOaHoliday> lqw = buildQueryWrapper(bo);
|
||||
Page<SysOaHolidayVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
for (SysOaHolidayVo record : result.getRecords()) {
|
||||
record.setDate(record.getHolidayTime());
|
||||
}
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
@@ -67,7 +79,11 @@ public class SysOaHolidayServiceImpl implements ISysOaHolidayService {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<SysOaHoliday> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(bo.getType() != null, SysOaHoliday::getType, bo.getType());
|
||||
lqw.eq(bo.getHolidayTime() != null, SysOaHoliday::getHolidayTime, bo.getHolidayTime());
|
||||
System.out.println(bo);
|
||||
if (bo.getHolidayTime() != null) {
|
||||
System.out.println("今年考了哈士大夫");
|
||||
lqw.between(SysOaHoliday::getHolidayTime, getFirstDay(bo.getHolidayTime()),getLastDay(bo.getHolidayTime()));
|
||||
}
|
||||
lqw.like(StringUtils.isNotBlank(bo.getName()), SysOaHoliday::getName, bo.getName());
|
||||
return lqw;
|
||||
}
|
||||
@@ -166,7 +182,6 @@ public class SysOaHolidayServiceImpl implements ISysOaHolidayService {
|
||||
Date endDate = DateUtils.addDays(result.getHolidayTime(), days - 1);
|
||||
VoList.add(new SysOaHolidayListVo(result.getHolidayId(), result.getName(), result.getHolidayTime(), endDate, days, result.getType()));
|
||||
}
|
||||
System.out.println(VoList);
|
||||
return VoList;
|
||||
}
|
||||
|
||||
@@ -220,7 +235,6 @@ public class SysOaHolidayServiceImpl implements ISysOaHolidayService {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (int i = 0; i < holidayVoList.size(); i++) {
|
||||
// 格式化日期
|
||||
System.out.println(holidayVoList.get(i).getHolidayTime());
|
||||
String formattedDate = SDF.format(holidayVoList.get(i).getHolidayTime());
|
||||
sb.append(formattedDate);
|
||||
// 在每个日期后面加逗号(最后一个日期后面可选)
|
||||
@@ -244,5 +258,109 @@ public class SysOaHolidayServiceImpl implements ISysOaHolidayService {
|
||||
return baseMapper.queryWorkDayNumByMonth(payTime);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CalendarDay> queryOwnList(SysOaHolidayBo bo, PageQuery pageQuery) {
|
||||
// 1) 查询普通节假日数据
|
||||
LambdaQueryWrapper<SysOaHoliday> lqw = buildQueryWrapper(bo);
|
||||
Page<SysOaHolidayVo> page = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
|
||||
// 把结果先转换成 Map<String, CalendarDay>,方便后续“根据日期覆盖type”
|
||||
// key = "YYYY-MM-DD"
|
||||
Map<String, CalendarDay> dayMap = new HashMap<>();
|
||||
for (SysOaHolidayVo holiday : page.getRecords()) {
|
||||
String dateStr = formatDate(holiday.getHolidayTime()); // 转成 "YYYY-MM-DD"
|
||||
Integer type = holiday.getType(); // 0,1,2,3
|
||||
CalendarDay calendarDay = new CalendarDay();
|
||||
calendarDay.setDate(dateStr);
|
||||
calendarDay.setType(type);
|
||||
dayMap.put(dateStr, calendarDay);
|
||||
}
|
||||
|
||||
// 2) 查询 Flowable - 出差(trip)流程
|
||||
// 假设 flowableQueryService.getApprovedRecords(userId, "trip")
|
||||
// 返回类似: List<FlowRecord>,其中有 startTime、endTime 等
|
||||
List<FlowRecord> tripRecords = taskService.getApprovedRecords(LoginHelper.getUserId(), "trip");
|
||||
// 每条记录都代表一段出差区间,逐天设置 type=4
|
||||
for (FlowRecord record : tripRecords) {
|
||||
fillDateRange(dayMap, record.getStartTime(), record.getEndTime(), 4);
|
||||
}
|
||||
|
||||
// 3) 查询 Flowable - 请假(absence)流程
|
||||
List<FlowRecord> absenceRecords = taskService.getApprovedRecords(LoginHelper.getUserId(), "absence");
|
||||
// 每条记录都代表一段请假区间,逐天设置 type=5
|
||||
for (FlowRecord record : absenceRecords) {
|
||||
fillDateRange(dayMap, record.getStartTime(), record.getEndTime(), 5);
|
||||
}
|
||||
|
||||
// 4) 最终返回列表 (若需要排序,可按日期排序)
|
||||
List<CalendarDay> result = new ArrayList<>(dayMap.values());
|
||||
result.sort(Comparator.comparing(CalendarDay::getDate));
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得当月第一天
|
||||
*/
|
||||
private Date getFirstDay(Date holidayTime){
|
||||
LocalDate localDate = holidayTime.toInstant()
|
||||
.atZone(ZoneId.systemDefault())
|
||||
.toLocalDate();
|
||||
LocalDate firstDay = localDate.withDayOfMonth(1);
|
||||
return Date.from(firstDay.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得最后一天的最后时刻
|
||||
*/
|
||||
private Date getLastDay(Date holidayTime){
|
||||
LocalDate localDate = holidayTime.toInstant()
|
||||
.atZone(ZoneId.systemDefault())
|
||||
.toLocalDate();
|
||||
LocalDate lastDay = localDate.withDayOfMonth(localDate.lengthOfMonth());
|
||||
return Date.from(lastDay.atTime(LocalTime.MAX).atZone(ZoneId.systemDefault()).toInstant());
|
||||
}
|
||||
|
||||
/**
|
||||
* 将 Date 转为 LocalDate(根据系统默认时区)
|
||||
*/
|
||||
private LocalDate convertToLocalDate(Date date) {
|
||||
return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
||||
}
|
||||
|
||||
/**
|
||||
* 按 "yyyy-MM-dd" 格式化 Date
|
||||
*/
|
||||
private String formatDate(Date date) {
|
||||
if (date == null) {
|
||||
return "";
|
||||
}
|
||||
return new SimpleDateFormat("yyyy-MM-dd").format(date);
|
||||
}
|
||||
|
||||
/**
|
||||
* 将 [startTime, endTime] 区间内每一天的 type 覆盖为指定的 newType
|
||||
*/
|
||||
private void fillDateRange(Map<String, CalendarDay> dayMap, Date startTime, Date endTime, int newType) {
|
||||
// 转成 LocalDate 方便遍历
|
||||
LocalDate start = convertToLocalDate(startTime);
|
||||
LocalDate end = convertToLocalDate(endTime);
|
||||
|
||||
// 逐天循环
|
||||
for (LocalDate d = start; !d.isAfter(end); d = d.plusDays(1)) {
|
||||
String dateStr = d.toString(); // "2025-03-01"
|
||||
CalendarDay existingDay = dayMap.get(dateStr);
|
||||
if (existingDay != null) {
|
||||
// 如果已有记录,就覆盖type
|
||||
existingDay.setType(newType);
|
||||
} else {
|
||||
// 如果没有记录,就新建
|
||||
CalendarDay calendarDay = new CalendarDay();
|
||||
calendarDay.setDate(dateStr);
|
||||
calendarDay.setType(newType);
|
||||
dayMap.put(dateStr, calendarDay);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -9,7 +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.bo.SysOaOutWarehouseBo;
|
||||
import com.ruoyi.oa.domain.bo.SysOaWarehouseDetailBo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaOutWarehouseListVo;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -123,7 +123,7 @@ public class SysOaProjectServiceImpl implements ISysOaProjectService {
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<SysOaOutWarehouseListVo> queryOutWarePageList(SysOaOutWarehouseBo bo, PageQuery pageQuery) {
|
||||
public TableDataInfo<SysOaOutWarehouseListVo> queryOutWarePageList(SysOaWarehouseDetailBo bo, PageQuery pageQuery) {
|
||||
Page<SysOaOutWarehouseListVo> page = baseMapper.selectPageOutList(pageQuery.build(), this.buildOutWareQueryWrapper(bo));
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
@@ -153,7 +153,7 @@ public class SysOaProjectServiceImpl implements ISysOaProjectService {
|
||||
return projectVos;
|
||||
}
|
||||
|
||||
private QueryWrapper<SysOaProject> buildOutWareQueryWrapper(SysOaOutWarehouseBo bo) {
|
||||
private QueryWrapper<SysOaProject> buildOutWareQueryWrapper(SysOaWarehouseDetailBo bo) {
|
||||
QueryWrapper<SysOaProject> lqw = Wrappers.query();
|
||||
lqw.like(StringUtils.isNotBlank(bo.getProjectName()), "sop.projec_name", bo.getProjectName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getWarehouseName()), "sow.name", bo.getWarehouseName());
|
||||
|
||||
@@ -1,16 +1,12 @@
|
||||
package com.ruoyi.oa.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
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.SysOaProject;
|
||||
import com.ruoyi.oa.domain.SysOaWarehouse;
|
||||
import com.ruoyi.oa.domain.bo.SysOaOutWarehouseBo2;
|
||||
import com.ruoyi.oa.domain.bo.SysOaOutWarehouseBoList;
|
||||
@@ -18,18 +14,16 @@ 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.SysOaWarehouseDetailMapper;
|
||||
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;
|
||||
import com.ruoyi.oa.domain.vo.SysOaOutWarehouseVo;
|
||||
import com.ruoyi.oa.domain.SysOaOutWarehouse;
|
||||
import com.ruoyi.oa.mapper.SysOaOutWarehouseMapper;
|
||||
import com.ruoyi.oa.service.ISysOaOutWarehouseService;
|
||||
import com.ruoyi.oa.domain.bo.SysOaWarehouseDetailBo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaWarehouseDetailVo;
|
||||
import com.ruoyi.oa.domain.SysOaWarehouseDetail;
|
||||
import com.ruoyi.oa.service.ISysOaWarehouseDetailService;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
@@ -44,9 +38,9 @@ import static cn.hutool.core.bean.BeanUtil.*;
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService {
|
||||
public class SysOaWarehouseDetailServiceImpl implements ISysOaWarehouseDetailService {
|
||||
|
||||
private final SysOaOutWarehouseMapper baseMapper;
|
||||
private final SysOaWarehouseDetailMapper baseMapper;
|
||||
|
||||
|
||||
@Autowired
|
||||
@@ -60,17 +54,17 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService {
|
||||
* 查询仓库出库
|
||||
*/
|
||||
@Override
|
||||
public SysOaOutWarehouseVo queryById(Long id){
|
||||
SysOaOutWarehouseVo sysOaOutWarehouseVo = baseMapper.selectVoById(id);
|
||||
SysOaWarehouseVo sysOaWarehouse = warehouseMapper.selectVoByIdAndXml(sysOaOutWarehouseVo.getWarehouseId());
|
||||
SysOaProjectVo sysOaProject = projectMapper.selectVoById(sysOaOutWarehouseVo.getProjectId());
|
||||
sysOaOutWarehouseVo.setWarehouse(sysOaWarehouse);
|
||||
public SysOaWarehouseDetailVo queryById(Long id){
|
||||
SysOaWarehouseDetailVo sysOaWarehouseDetailVo = baseMapper.selectVoById(id);
|
||||
SysOaWarehouseVo sysOaWarehouse = warehouseMapper.selectVoByIdAndXml(sysOaWarehouseDetailVo.getWarehouseId());
|
||||
SysOaProjectVo sysOaProject = projectMapper.selectVoById(sysOaWarehouseDetailVo.getProjectId());
|
||||
sysOaWarehouseDetailVo.setWarehouse(sysOaWarehouse);
|
||||
|
||||
// 出库可能不关联项目
|
||||
if (Objects.nonNull(sysOaProject)){
|
||||
sysOaOutWarehouseVo.setProject(sysOaProject);
|
||||
sysOaWarehouseDetailVo.setProject(sysOaProject);
|
||||
}
|
||||
return sysOaOutWarehouseVo;
|
||||
return sysOaWarehouseDetailVo;
|
||||
}
|
||||
|
||||
|
||||
@@ -80,11 +74,11 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService {
|
||||
* @param WarehouseId 出库产品id
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<SysOaOutWarehouseVo> queryWarehouseIdList(Long WarehouseId) {
|
||||
LambdaQueryWrapper<SysOaOutWarehouse> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(SysOaOutWarehouse::getWarehouseId, WarehouseId);
|
||||
for (SysOaOutWarehouseVo sysOaOutWarehouseVo : baseMapper.selectVoList(lqw)) {
|
||||
sysOaOutWarehouseVo.setWarehouseName( warehouseMapper.selectById(sysOaOutWarehouseVo.getWarehouseId()).getName());
|
||||
public TableDataInfo<SysOaWarehouseDetailVo> queryWarehouseIdList(Long WarehouseId) {
|
||||
LambdaQueryWrapper<SysOaWarehouseDetail> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(SysOaWarehouseDetail::getWarehouseId, WarehouseId);
|
||||
for (SysOaWarehouseDetailVo sysOaWarehouseDetailVo : baseMapper.selectVoList(lqw)) {
|
||||
sysOaWarehouseDetailVo.setWarehouseName( warehouseMapper.selectById(sysOaWarehouseDetailVo.getWarehouseId()).getName());
|
||||
}
|
||||
return TableDataInfo.build(baseMapper.selectVoList(lqw));
|
||||
}
|
||||
@@ -95,7 +89,7 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService {
|
||||
*/
|
||||
|
||||
@Override
|
||||
public TableDataInfo<SysOaOutWarehouseListVo> queryPageList(SysOaOutWarehouseBo bo, PageQuery pageQuery) {
|
||||
public TableDataInfo<SysOaOutWarehouseListVo> queryPageList(SysOaWarehouseDetailBo bo, PageQuery pageQuery) {
|
||||
// LambdaQueryWrapper<SysOaOutWarehouse> lqw = buildQueryWrapper(bo);
|
||||
// Page<SysOaOutWarehouseVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
// for (SysOaOutWarehouseVo record : result.getRecords()) {
|
||||
@@ -126,18 +120,18 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService {
|
||||
* 查询仓库出库列表
|
||||
*/
|
||||
@Override
|
||||
public List<SysOaOutWarehouseVo> queryList(SysOaOutWarehouseBo bo) {
|
||||
LambdaQueryWrapper<SysOaOutWarehouse> lqw = buildQueryWrapper(bo);
|
||||
public List<SysOaWarehouseDetailVo> queryList(SysOaWarehouseDetailBo bo) {
|
||||
LambdaQueryWrapper<SysOaWarehouseDetail> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<SysOaOutWarehouse> buildQueryWrapper(SysOaOutWarehouseBo bo) {
|
||||
private LambdaQueryWrapper<SysOaWarehouseDetail> buildQueryWrapper(SysOaWarehouseDetailBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<SysOaOutWarehouse> lqw = Wrappers.lambdaQuery();
|
||||
LambdaQueryWrapper<SysOaWarehouseDetail> lqw = Wrappers.lambdaQuery();
|
||||
|
||||
lqw.eq(bo.getProjectId() != null, SysOaOutWarehouse::getProjectId, bo.getProjectId());
|
||||
lqw.eq(bo.getAmount() != null, SysOaOutWarehouse::getAmount, bo.getAmount());
|
||||
lqw.eq(bo.getWarehouseId() != null, SysOaOutWarehouse::getWarehouseId, bo.getWarehouseId());
|
||||
lqw.eq(bo.getProjectId() != null, SysOaWarehouseDetail::getProjectId, bo.getProjectId());
|
||||
lqw.eq(bo.getAmount() != null, SysOaWarehouseDetail::getAmount, bo.getAmount());
|
||||
lqw.eq(bo.getWarehouseId() != null, SysOaWarehouseDetail::getWarehouseId, bo.getWarehouseId());
|
||||
|
||||
return lqw;
|
||||
}
|
||||
@@ -146,10 +140,10 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService {
|
||||
* 新增仓库出库
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(SysOaOutWarehouseBo bo) {
|
||||
public Boolean insertByBo(SysOaWarehouseDetailBo bo) {
|
||||
bo.setCreateTime(new Date());
|
||||
bo.setUpdateTime(new Date());
|
||||
SysOaOutWarehouse decrease = toBean(bo, SysOaOutWarehouse.class);
|
||||
SysOaWarehouseDetail decrease = toBean(bo, SysOaWarehouseDetail.class);
|
||||
|
||||
validEntityBeforeSave(decrease);
|
||||
SysOaWarehouse warehouse = warehouseMapper.selectById(decrease.getWarehouseId());
|
||||
@@ -182,13 +176,13 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService {
|
||||
if (projectId != null) {
|
||||
list.forEach((sysOaOutWarehouseBo2 -> {
|
||||
sysOaOutWarehouseBo2.setProjectId(projectId);
|
||||
SysOaOutWarehouseBo sysOaOutWarehouse = toBean(sysOaOutWarehouseBo2, SysOaOutWarehouseBo.class);
|
||||
SysOaWarehouseDetailBo sysOaOutWarehouse = toBean(sysOaOutWarehouseBo2, SysOaWarehouseDetailBo.class);
|
||||
insertByBo(sysOaOutWarehouse);
|
||||
}));
|
||||
|
||||
}else{
|
||||
list.forEach((sysOaOutWarehouseBo2 -> {
|
||||
SysOaOutWarehouseBo sysOaOutWarehouse = toBean(sysOaOutWarehouseBo2, SysOaOutWarehouseBo.class);
|
||||
SysOaWarehouseDetailBo sysOaOutWarehouse = toBean(sysOaOutWarehouseBo2, SysOaWarehouseDetailBo.class);
|
||||
insertByBo(sysOaOutWarehouse);
|
||||
}));
|
||||
}
|
||||
@@ -201,16 +195,16 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService {
|
||||
* 修改仓库出库
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(SysOaOutWarehouseBo bo) {
|
||||
SysOaOutWarehouse update = toBean(bo, SysOaOutWarehouse.class);
|
||||
public Boolean updateByBo(SysOaWarehouseDetailBo bo) {
|
||||
SysOaWarehouseDetail update = toBean(bo, SysOaWarehouseDetail.class);
|
||||
validEntityBeforeSave(update);
|
||||
|
||||
// 修改后的数量
|
||||
Long amount1 = update.getAmount();
|
||||
|
||||
//获得 修改前的数量
|
||||
SysOaOutWarehouse sysOaOutWarehouse = baseMapper.selectById(update.getId());
|
||||
Long amount = sysOaOutWarehouse.getAmount();
|
||||
SysOaWarehouseDetail sysOaWarehouseDetail = baseMapper.selectById(update.getId());
|
||||
Long amount = sysOaWarehouseDetail.getAmount();
|
||||
|
||||
//找出库存表对应的那条数据 的库存数量
|
||||
LambdaQueryWrapper<SysOaWarehouse> lqw = Wrappers.lambdaQuery();
|
||||
@@ -249,7 +243,7 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService {
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(SysOaOutWarehouse entity){
|
||||
private void validEntityBeforeSave(SysOaWarehouseDetail entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
@@ -264,16 +258,16 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService {
|
||||
|
||||
|
||||
//需要增加的对应物料数量
|
||||
LambdaQueryWrapper<SysOaOutWarehouse> lqw = Wrappers.lambdaQuery();
|
||||
lqw.in(SysOaOutWarehouse::getId, ids.toArray());
|
||||
LambdaQueryWrapper<SysOaWarehouseDetail> lqw = Wrappers.lambdaQuery();
|
||||
lqw.in(SysOaWarehouseDetail::getId, ids.toArray());
|
||||
//出库表中的所有删除的数据
|
||||
List<SysOaOutWarehouse> sysOaOutWarehouses = baseMapper.selectList(lqw);
|
||||
List<SysOaWarehouseDetail> sysOaWarehouseDetails = baseMapper.selectList(lqw);
|
||||
//其中一条
|
||||
sysOaOutWarehouses.forEach(sysOaOutWarehouse -> {
|
||||
sysOaWarehouseDetails.forEach(sysOaWarehouseDetail -> {
|
||||
//选出相对应的 库存表中那一条的数据
|
||||
SysOaWarehouse warehouse = warehouseMapper.selectVoByIdAndXml(sysOaOutWarehouse.getWarehouseId());
|
||||
SysOaWarehouse warehouse = warehouseMapper.selectVoByIdAndXml(sysOaWarehouseDetail.getWarehouseId());
|
||||
// 恢复原本出库的数量
|
||||
warehouse.setInventory(warehouse.getInventory() + sysOaOutWarehouse.getAmount());
|
||||
warehouse.setInventory(warehouse.getInventory() + sysOaWarehouseDetail.getAmount());
|
||||
warehouseMapper.updateById(warehouse);
|
||||
});
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
@@ -285,14 +279,14 @@ public class SysOaOutWarehouseServiceImpl implements ISysOaOutWarehouseService {
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<SysOaOutWarehouseVo> queryOutWarehouseByProjectId(Long projectId) {
|
||||
LambdaQueryWrapper<SysOaOutWarehouse> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(SysOaOutWarehouse::getProjectId, projectId);
|
||||
List<SysOaOutWarehouseVo> sysOaOutWarehouseVos = baseMapper.selectVoList(lqw);
|
||||
for (SysOaOutWarehouseVo sysOaOutWarehouseVo :sysOaOutWarehouseVos) {
|
||||
sysOaOutWarehouseVo.setWarehouseName(warehouseMapper.selectVoByIdAndXml((sysOaOutWarehouseVo.getWarehouseId())).getName());
|
||||
public TableDataInfo<SysOaWarehouseDetailVo> queryOutWarehouseByProjectId(Long projectId) {
|
||||
LambdaQueryWrapper<SysOaWarehouseDetail> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(SysOaWarehouseDetail::getProjectId, projectId);
|
||||
List<SysOaWarehouseDetailVo> sysOaWarehouseDetailVos = baseMapper.selectVoList(lqw);
|
||||
for (SysOaWarehouseDetailVo sysOaWarehouseDetailVo : sysOaWarehouseDetailVos) {
|
||||
sysOaWarehouseDetailVo.setWarehouseName(warehouseMapper.selectVoByIdAndXml((sysOaWarehouseDetailVo.getWarehouseId())).getName());
|
||||
}
|
||||
return TableDataInfo.build(sysOaOutWarehouseVos);
|
||||
return TableDataInfo.build(sysOaWarehouseDetailVos);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,12 +1,19 @@
|
||||
package com.ruoyi.oa.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.ruoyi.common.helper.LoginHelper;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
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.bo.SysOaWarehouseBo;
|
||||
import com.ruoyi.oa.domain.bo.SysOaWarehouseDetailBo;
|
||||
import com.ruoyi.oa.mapper.SysOaWarehouseDetailMapper;
|
||||
import com.ruoyi.oa.service.ISysOaWarehouseDetailService;
|
||||
import com.ruoyi.oa.service.ISysOaWarehouseService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.oa.domain.bo.SysOaWarehouseMasterBo;
|
||||
@@ -15,9 +22,7 @@ import com.ruoyi.oa.domain.SysOaWarehouseMaster;
|
||||
import com.ruoyi.oa.mapper.SysOaWarehouseMasterMapper;
|
||||
import com.ruoyi.oa.service.ISysOaWarehouseMasterService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 出库单管理Service业务层处理
|
||||
@@ -31,6 +36,10 @@ public class SysOaWarehouseMasterServiceImpl implements ISysOaWarehouseMasterSer
|
||||
|
||||
private final SysOaWarehouseMasterMapper baseMapper;
|
||||
|
||||
private final ISysOaWarehouseDetailService warehouseDetailService;
|
||||
|
||||
private final ISysOaWarehouseService warehouseService;
|
||||
|
||||
/**
|
||||
* 查询出库单管理
|
||||
*/
|
||||
@@ -44,8 +53,8 @@ public class SysOaWarehouseMasterServiceImpl implements ISysOaWarehouseMasterSer
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<SysOaWarehouseMasterVo> queryPageList(SysOaWarehouseMasterBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<SysOaWarehouseMaster> lqw = buildQueryWrapper(bo);
|
||||
Page<SysOaWarehouseMasterVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
QueryWrapper<SysOaWarehouseMaster> lqw = buildQueryWrapper(bo);
|
||||
Page<SysOaWarehouseMasterVo> result = baseMapper.selectVoPagePlus(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
@@ -54,17 +63,19 @@ public class SysOaWarehouseMasterServiceImpl implements ISysOaWarehouseMasterSer
|
||||
*/
|
||||
@Override
|
||||
public List<SysOaWarehouseMasterVo> queryList(SysOaWarehouseMasterBo bo) {
|
||||
LambdaQueryWrapper<SysOaWarehouseMaster> lqw = buildQueryWrapper(bo);
|
||||
QueryWrapper<SysOaWarehouseMaster> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<SysOaWarehouseMaster> buildQueryWrapper(SysOaWarehouseMasterBo bo) {
|
||||
private QueryWrapper<SysOaWarehouseMaster> buildQueryWrapper(SysOaWarehouseMasterBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<SysOaWarehouseMaster> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(bo.getType() != null, SysOaWarehouseMaster::getType, bo.getType());
|
||||
lqw.eq(bo.getProjectId() != null, SysOaWarehouseMaster::getProjectId, bo.getProjectId());
|
||||
lqw.eq(bo.getSignTime() != null, SysOaWarehouseMaster::getSignTime, bo.getSignTime());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getSignUser()), SysOaWarehouseMaster::getSignUser, bo.getSignUser());
|
||||
QueryWrapper<SysOaWarehouseMaster> lqw = Wrappers.query();
|
||||
lqw.eq(bo.getType() != null, "sowm.type", bo.getType());
|
||||
lqw.eq(bo.getProjectId() != null, "sowm.project_id", bo.getProjectId());
|
||||
lqw.eq(bo.getSignTime() != null, "sowm.sign_time", bo.getSignTime());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getSignUser()), "sowm.sign_user", bo.getSignUser());
|
||||
lqw.eq("sowm.del_flag", 0L);
|
||||
lqw.orderByDesc("sowm.create_time");
|
||||
return lqw;
|
||||
}
|
||||
|
||||
@@ -75,9 +86,14 @@ public class SysOaWarehouseMasterServiceImpl implements ISysOaWarehouseMasterSer
|
||||
public Boolean insertByBo(SysOaWarehouseMasterBo bo) {
|
||||
SysOaWarehouseMaster add = BeanUtil.toBean(bo, SysOaWarehouseMaster.class);
|
||||
validEntityBeforeSave(add);
|
||||
add.setSignUser(LoginHelper.getNickName());
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setMasterId(add.getMasterId());
|
||||
// 出库单新增后 新增出库元素同时减去现有的,这里要记录一个出库时单价
|
||||
for (SysOaWarehouseDetailBo sysOaWarehouseDetailBo : bo.getWarehouseList()) {
|
||||
sysOaWarehouseDetailBo.setMasterId(add.getMasterId());
|
||||
warehouseDetailService.insertByBo(sysOaWarehouseDetailBo);
|
||||
}
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
@@ -89,7 +105,16 @@ public class SysOaWarehouseMasterServiceImpl implements ISysOaWarehouseMasterSer
|
||||
public Boolean updateByBo(SysOaWarehouseMasterBo bo) {
|
||||
SysOaWarehouseMaster update = BeanUtil.toBean(bo, SysOaWarehouseMaster.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
boolean flag = baseMapper.updateById(update) > 0;
|
||||
if (flag) {
|
||||
List<SysOaWarehouseDetailBo> warehouseList = bo.getWarehouseList();
|
||||
for (SysOaWarehouseDetailBo sysOaWarehouseDetailBo : warehouseList) {
|
||||
sysOaWarehouseDetailBo.setMasterId(bo.getMasterId());
|
||||
warehouseDetailService.insertByBo(sysOaWarehouseDetailBo);
|
||||
}
|
||||
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -109,4 +134,27 @@ public class SysOaWarehouseMasterServiceImpl implements ISysOaWarehouseMasterSer
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insertInWarehouse(SysOaWarehouseBo bo) {
|
||||
warehouseService.insertByBo(bo);
|
||||
SysOaWarehouseMaster sysOaWarehouseMaster = new SysOaWarehouseMaster();
|
||||
sysOaWarehouseMaster.setMasterNum(UUID.randomUUID().toString());
|
||||
sysOaWarehouseMaster.setRemark(bo.getRemark());
|
||||
sysOaWarehouseMaster.setCreateBy(LoginHelper.getNickName());
|
||||
sysOaWarehouseMaster.setUpdateBy(LoginHelper.getNickName());
|
||||
sysOaWarehouseMaster.setSignTime(new Date());
|
||||
sysOaWarehouseMaster.setSignUser(LoginHelper.getNickName());
|
||||
sysOaWarehouseMaster.setType(1L);
|
||||
int flag = baseMapper.insert(sysOaWarehouseMaster);
|
||||
SysOaWarehouseDetailBo sysOaWarehouseDetailBo = new SysOaWarehouseDetailBo();
|
||||
sysOaWarehouseDetailBo.setWarehouseId(bo.getId());
|
||||
sysOaWarehouseDetailBo.setAmount(bo.getInventory());
|
||||
sysOaWarehouseDetailBo.setSignPrice(bo.getPrice());
|
||||
sysOaWarehouseDetailBo.setCreateBy(LoginHelper.getNickName());
|
||||
sysOaWarehouseDetailBo.setUpdateBy(LoginHelper.getNickName());
|
||||
sysOaWarehouseDetailBo.setMasterId(sysOaWarehouseMaster.getMasterId());
|
||||
warehouseDetailService.insertByBo(sysOaWarehouseDetailBo);
|
||||
return flag;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,8 +7,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.SysOaOutWarehouse;
|
||||
import com.ruoyi.oa.mapper.SysOaOutWarehouseMapper;
|
||||
import com.ruoyi.oa.mapper.SysOaWarehouseDetailMapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.oa.domain.bo.SysOaWarehouseBo;
|
||||
@@ -17,7 +16,6 @@ import com.ruoyi.oa.domain.SysOaWarehouse;
|
||||
import com.ruoyi.oa.mapper.SysOaWarehouseMapper;
|
||||
import com.ruoyi.oa.service.ISysOaWarehouseService;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
@@ -34,7 +32,7 @@ public class SysOaWarehouseServiceImpl implements ISysOaWarehouseService {
|
||||
|
||||
private final SysOaWarehouseMapper baseMapper;
|
||||
|
||||
private final SysOaOutWarehouseMapper outWareMapper;
|
||||
private final SysOaWarehouseDetailMapper outWareMapper;
|
||||
|
||||
/**
|
||||
* 查询仓库管理
|
||||
|
||||
Reference in New Issue
Block a user