diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java index 44674cf..88c12da 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java @@ -70,7 +70,6 @@ public class SysOssController extends BaseController { @Log(title = "OSS对象存储", businessType = BusinessType.INSERT) @PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public R> upload(@RequestPart("file") MultipartFile file, - // ★ 接收 isPublic,默认 0 @RequestParam(name = "isPublic", defaultValue = "0") Long isPublic) { if (ObjectUtil.isNull(file)) { return R.fail("上传文件不能为空"); diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaProgressController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaProgressController.java index 70959e7..620aec0 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaProgressController.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaProgressController.java @@ -103,17 +103,6 @@ public class OaProgressController extends BaseController { ExcelUtil.exportExcel(list, "进度管理", OaProgressVo.class, response); } - /** - * 获取进度管理详细信息 - * - * @param progressId 主键 - */ - @GetMapping("/{progressId}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long progressId) { - return R.ok(iOaProgressService.queryById(progressId)); - } - /** * 新增进度管理 */ @@ -151,4 +140,19 @@ public class OaProgressController extends BaseController { public R> getKeyList() { return R.ok(iOaProgressService.getKeyList()); } + + + + /** + * 获取进度管理详细信息 + * + * @param projectId 主键 + */ + @GetMapping("/{projectId}") + public R> getInfo(@NotNull(message = "主键不能为空") + @PathVariable("projectId") Long projectId) { + List progressVos = iOaProgressService.queryByProjectId(projectId); + return R.ok(progressVos); + } + } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaProjectController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaProjectController.java index 96c4fc4..0200af3 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaProjectController.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaProjectController.java @@ -140,4 +140,16 @@ public class SysOaProjectController extends BaseController { public TableDataInfo files(SysOaWarehouseDetailBo bo, PageQuery pageQuery) { return iSysOaProjectService.queryFiles(bo, pageQuery); } + + + /** + * 查询进度管理列表 + */ + @GetMapping("/progress-list") + public TableDataInfo progressList(SysOaProjectBo bo, PageQuery pageQuery) { + bo.setTradeType(1L); + return iSysOaProjectService.listProjects(bo, pageQuery); + } + + } \ No newline at end of file diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaWarehouseMasterBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaWarehouseMasterBo.java index ca3295c..7b7e5e3 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaWarehouseMasterBo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaWarehouseMasterBo.java @@ -13,6 +13,7 @@ import java.util.List; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.domain.BaseEntity; +import org.springframework.format.annotation.DateTimeFormat; /** * 出库单管理业务对象 sys_oa_warehouse_master @@ -45,6 +46,8 @@ public class SysOaWarehouseMasterBo extends BaseEntity { /** * 编写日期 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") private Date signTime; /** diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaProgressVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaProgressVo.java index 4ced9c7..fb1ef31 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaProgressVo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaProgressVo.java @@ -92,6 +92,8 @@ public class OaProgressVo { private List children; + private List tasks; + /** * 联系人电话 */ 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 9b2d964..59d22bd 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 @@ -230,6 +230,11 @@ public class SysOaProjectVo { */ private Long tradeType; + /** + * 总完成度 + */ + private Long progress; + /** * 预付款 */ 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 9d23b3c..9ae5ae2 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 @@ -32,7 +32,7 @@ public class SysOaWarehouseVo extends SysOaWarehouse { * 序号 */ @ExcelProperty(value = "序号") - private Long temp; + private String temp; /** diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/listener/SysOaWarehouseListener.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/listener/SysOaWarehouseListener.java index 20f095f..dced858 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/listener/SysOaWarehouseListener.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/listener/SysOaWarehouseListener.java @@ -44,7 +44,6 @@ public class SysOaWarehouseListener extends AnalysisEventListener").append(successNum).append("、物料名称: ").append(add.getName()).append(" 导入成功"); } else if (isUpdateSupport) { @@ -76,9 +83,15 @@ public class SysOaWarehouseListener extends AnalysisEventListener").append(successNum).append("、物料名称: ").append(update.getName()).append(" 更新成功"); } @@ -87,7 +100,6 @@ public class SysOaWarehouseListener extends AnalysisEventListener getKeyList(); Page selectVoPagePlus(@Param("page") Page build,@Param(Constants.WRAPPER) QueryWrapper lqw); + + + List queryByProjectId(Long projectId); } 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 8d740ee..211e981 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 @@ -43,4 +43,12 @@ public interface SysOaProjectMapper extends BaseMapperPlus selectFileVoList(@Param("page") Page build, @Param(Constants.WRAPPER) QueryWrapper sysOaProjectQueryWrapper); Page selectVoAndProgress(@Param("page") Page build, @Param(Constants.WRAPPER) LambdaQueryWrapper sysOaProjectQueryWrapper); + + /** + * 外贸进度使用list + * @param build + * @param bo + * @return + */ + Page selectVoListPage(@Param("page") Page build,@Param(Constants.WRAPPER) QueryWrapper bo); } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaProgressService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaProgressService.java index 4e55e17..211c014 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaProgressService.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaProgressService.java @@ -6,6 +6,7 @@ import com.ruoyi.oa.domain.bo.OaProgressBo; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.domain.PageQuery; +import javax.validation.constraints.NotNull; import java.util.Collection; import java.util.List; @@ -54,4 +55,7 @@ public interface IOaProgressService { */ List getKeyList(); + + List queryByProjectId(Long projectId); + } 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 4dce493..39ec64f 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 @@ -74,4 +74,6 @@ public interface ISysOaProjectService { * @return */ TableDataInfo queryPageList2(SysOaProjectBo bo, PageQuery pageQuery); + + TableDataInfo listProjects(SysOaProjectBo bo, PageQuery pageQuery); } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaWarehouseService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaWarehouseService.java index 565051c..8051718 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaWarehouseService.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISysOaWarehouseService.java @@ -36,6 +36,13 @@ public interface ISysOaWarehouseService { */ Long insertByBo(SysOaWarehouseBo bo); + + /** + * 新增仓库管理 + */ + Long insertByBo2(SysOaWarehouseBo bo); + + /** * 修改仓库管理 */ diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProgressServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProgressServiceImpl.java index 4b0c938..c342882 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProgressServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProgressServiceImpl.java @@ -20,6 +20,7 @@ import com.ruoyi.oa.domain.OaProgress; import com.ruoyi.oa.mapper.OaProgressMapper; import com.ruoyi.oa.service.IOaProgressService; +import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Collection; @@ -132,4 +133,10 @@ public class OaProgressServiceImpl implements IOaProgressService { public List getKeyList() { return baseMapper.getKeyList(); } + + @Override + public List queryByProjectId(Long projectId) { + + return baseMapper.queryByProjectId(projectId); + } } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaProjectServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaProjectServiceImpl.java index 42bdf4b..2c8d07c 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaProjectServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaProjectServiceImpl.java @@ -39,7 +39,7 @@ public class SysOaProjectServiceImpl implements ISysOaProjectService { * 查询项目管理 */ @Override - public SysOaProjectVo queryById(Long projectId){ + public SysOaProjectVo queryById(Long projectId) { return baseMapper.selectVoById(projectId); } @@ -68,7 +68,7 @@ public class SysOaProjectServiceImpl implements ISysOaProjectService { lqw.like(StringUtils.isNotBlank(bo.getProjectName()), SysOaProject::getProjectName, bo.getProjectName()); lqw.eq(StringUtils.isNotBlank(bo.getProjectNum()), SysOaProject::getProjectNum, bo.getProjectNum()); lqw.eq(bo.getTradeType() != null, SysOaProject::getTradeType, bo.getTradeType()); - lqw.gt(bo.getPrePay()!=null&&bo.getPrePay()>0, SysOaProject::getPrePay,0); + lqw.gt(bo.getPrePay() != null && bo.getPrePay() > 0, SysOaProject::getPrePay, 0); lqw.eq(StringUtils.isNotBlank(bo.getProjectType()), SysOaProject::getProjectType, bo.getProjectType()); lqw.eq(StringUtils.isNotBlank(bo.getProjectStatus()), SysOaProject::getProjectStatus, bo.getProjectStatus()); lqw.eq(StringUtils.isNotBlank(bo.getCreateBy()), SysOaProject::getCreateBy, bo.getCreateBy()); @@ -105,7 +105,7 @@ public class SysOaProjectServiceImpl implements ISysOaProjectService { /** * 保存前的数据校验 */ - private void validEntityBeforeSave(SysOaProject entity){ + private void validEntityBeforeSave(SysOaProject entity) { //TODO 做一些数据校验,如唯一约束 } @@ -114,7 +114,7 @@ public class SysOaProjectServiceImpl implements ISysOaProjectService { */ @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ + if (isValid) { //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteBatchIds(ids) > 0; @@ -135,24 +135,26 @@ public class SysOaProjectServiceImpl implements ISysOaProjectService { /** * 获取当月每个项目的人力资源成本 + * * @return */ @Override public List getProjectDataByMonth(Date date) { - if (date==null){ + if (date == null) { date = new Date(); } - return baseMapper.getProjectDataByMonth(getFirstDay(date),getLastDay(date)); + return baseMapper.getProjectDataByMonth(getFirstDay(date), getLastDay(date)); } /** * 统计数据需要 + * * @return */ @Override public List getProjectDataByMonthAndDate() { Date date = new Date(); - List projectVos = baseMapper.getProjectDataByMonthAndDate(getFirstDay(date),getLastDay(date)); + List projectVos = baseMapper.getProjectDataByMonthAndDate(getFirstDay(date), getLastDay(date)); return projectVos; } @@ -160,7 +162,7 @@ public class SysOaProjectServiceImpl implements ISysOaProjectService { @Override public TableDataInfo queryFiles(SysOaWarehouseDetailBo bo, PageQuery pageQuery) { QueryWrapper sysOaProjectQueryWrapper = buildOutWareQueryWrapper(bo); - sysOaProjectQueryWrapper.groupBy("sop.project_id","sop.project_name","t.task_id","t.task_type","t.status","nick_name","ti.item_id","ti.sign_time","sop.create_time"); + sysOaProjectQueryWrapper.groupBy("sop.project_id", "sop.project_name", "t.task_id", "t.task_type", "t.status", "nick_name", "ti.item_id", "ti.sign_time", "sop.create_time"); // sysOaProjectQueryWrapper.having("file_urls IS NOT NULL"); Page result = baseMapper.selectFileVoList(pageQuery.build(), sysOaProjectQueryWrapper); List projects = result.getRecords(); @@ -210,6 +212,7 @@ public class SysOaProjectServiceImpl implements ISysOaProjectService { /** * 进度使用的查询接口 + * * @param bo * @param pageQuery * @return @@ -221,6 +224,25 @@ public class SysOaProjectServiceImpl implements ISysOaProjectService { return TableDataInfo.build(result); } + /** + * 查询项目 进度使用 + * + * @param bo + * @param pageQuery + * @return + */ + @Override + public TableDataInfo listProjects(SysOaProjectBo bo, PageQuery pageQuery) { + QueryWrapper qw = new QueryWrapper(); + qw.like(StringUtils.isNotBlank(bo.getProjectName()), "sop.project_name", bo.getProjectName()); + qw.eq("sop.trade_type", bo.getTradeType()); + qw.like(StringUtils.isNotBlank(bo.getProjectNum()), "sop.project_num", bo.getProjectNum()); + qw.groupBy("sop.project_id"); + Page result = baseMapper.selectVoListPage(pageQuery.build(),qw); + return TableDataInfo.build(result); + } + + private QueryWrapper buildOutWareQueryWrapper(SysOaWarehouseDetailBo bo) { QueryWrapper lqw = Wrappers.query(); lqw.like(StringUtils.isNotBlank(bo.getProjectName()), "sop.projec_name", bo.getProjectName()); @@ -230,20 +252,19 @@ public class SysOaProjectServiceImpl implements ISysOaProjectService { } - - private Date getFirstDay(Date time){ + private Date getFirstDay(Date time) { String firstDay = DateUtils.parseDateToStr("yyyy-MM-01", time); - return DateUtils.parseDate(firstDay); + return DateUtils.parseDate(firstDay); } - private Date getLastDay(Date time){ + private Date getLastDay(Date time) { String format = "yyyy-MM-"; // 计算某月的天数 Calendar calendar = Calendar.getInstance(); calendar.setTime(time); String dateLength = String.valueOf(calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); // 将字符串拼接 - format +=dateLength; + format += dateLength; return DateUtils.parseDate(DateUtils.parseDateToStr(format, time)); } 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 39bf8a6..650ae01 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 @@ -150,7 +150,7 @@ public class SysOaTaskServiceImpl implements ISysOaTaskService { public Boolean insertByBo(SysOaTaskBo bo) { List workerIdList = new ArrayList<>(); // 拿到所有的执行人id列表进行遍历添加 - if (bo.getWorkerId()!=null) { + if (bo.getWorkerIds()!=null) { workerIdList = Arrays.stream(bo.getWorkerIds().split(",")) .map(Long::valueOf) .collect(Collectors.toList()); diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaWarehouseDetailServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaWarehouseDetailServiceImpl.java index 44dd971..e0d6ecf 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaWarehouseDetailServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaWarehouseDetailServiceImpl.java @@ -138,7 +138,7 @@ public class SysOaWarehouseDetailServiceImpl implements ISysOaWarehouseDetailSer SysOaWarehouseDetail decrease = toBean(bo, SysOaWarehouseDetail.class); validEntityBeforeSave(decrease); - if (!Objects.nonNull(bo.getType()) || bo.getType() != 1) { + if (Objects.isNull(bo.getType()) || bo.getType() != 1L) { SysOaWarehouse warehouse = warehouseMapper.selectById(decrease.getWarehouseId()); // 1 如果对应仓库表项目数量-将要出库数量<0,出库失败, 繁殖 , 增加该条 if(warehouse == null) { @@ -153,8 +153,6 @@ public class SysOaWarehouseDetailServiceImpl implements ISysOaWarehouseDetailSer warehouseMapper.updateById(warehouse); } } - - // 2、减少仓库表中对应项目的数量 return baseMapper.insert(decrease) > 0; } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaWarehouseMasterServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaWarehouseMasterServiceImpl.java index 0ca07d3..a169576 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaWarehouseMasterServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaWarehouseMasterServiceImpl.java @@ -40,13 +40,11 @@ public class SysOaWarehouseMasterServiceImpl implements ISysOaWarehouseMasterSer private final ISysOaWarehouseDetailService warehouseDetailService; - - /** * 查询出库单管理 */ @Override - public SysOaWarehouseMasterVo queryById(Long masterId){ + public SysOaWarehouseMasterVo queryById(Long masterId) { return baseMapper.selectVoById(masterId); } @@ -74,7 +72,14 @@ public class SysOaWarehouseMasterServiceImpl implements ISysOaWarehouseMasterSer QueryWrapper 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()); + + if (bo.getSignTime() != null) { + long time = bo.getSignTime().getTime(); + lqw.apply( + "DATE(sowm.sign_time) = {0}", // MySQL DATE() 抽取日期部分 + new Date(time)); // 2025‑05‑13 + } + lqw.like(StringUtils.isNotBlank(bo.getSignUser()), "sowm.sign_user", bo.getSignUser()); lqw.eq("sowm.del_flag", 0L); lqw.orderByDesc("sowm.create_time"); @@ -95,6 +100,7 @@ public class SysOaWarehouseMasterServiceImpl implements ISysOaWarehouseMasterSer // 单子新增后 新增出库元素同时减去现有的,这里要记录一个出库时单价 for (SysOaWarehouseDetailBo sysOaWarehouseDetailBo : bo.getWarehouseList()) { sysOaWarehouseDetailBo.setMasterId(add.getMasterId()); + sysOaWarehouseDetailBo.setType(bo.getType()); warehouseDetailService.insertByBo(sysOaWarehouseDetailBo); } } @@ -108,10 +114,10 @@ public class SysOaWarehouseMasterServiceImpl implements ISysOaWarehouseMasterSer public Boolean updateByBo(SysOaWarehouseMasterBo bo) { System.out.println(bo); // 判断是否为采购单,采购单,用户是直接点击完成按钮,所以直接更新单子状态就可以 - if (bo.getType()!=2L){ + if (bo.getType() != 2L) { SysOaWarehouseMaster update = BeanUtil.toBean(bo, SysOaWarehouseMaster.class); validEntityBeforeSave(update); - boolean flag = baseMapper.updateById(update) > 0; + boolean flag = baseMapper.updateById(update) > 0; if (flag) { List warehouseList = bo.getWarehouseList(); for (SysOaWarehouseDetailBo sysOaWarehouseDetailBo : warehouseList) { @@ -123,7 +129,7 @@ public class SysOaWarehouseMasterServiceImpl implements ISysOaWarehouseMasterSer } return flag; - }else{ + } else { SysOaWarehouseMaster update = BeanUtil.toBean(bo, SysOaWarehouseMaster.class); validEntityBeforeSave(update); return baseMapper.updateById(update) > 0; @@ -134,7 +140,7 @@ public class SysOaWarehouseMasterServiceImpl implements ISysOaWarehouseMasterSer /** * 保存前的数据校验 */ - private void validEntityBeforeSave(SysOaWarehouseMaster entity){ + private void validEntityBeforeSave(SysOaWarehouseMaster entity) { //TODO 做一些数据校验,如唯一约束 } @@ -144,7 +150,7 @@ public class SysOaWarehouseMasterServiceImpl implements ISysOaWarehouseMasterSer @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { System.out.println(ids); - if(isValid){ + if (isValid) { //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteBatchIds(ids) > 0; 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 9bebe3c..fae9616 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 @@ -53,13 +53,16 @@ public class SysOaWarehouseServiceImpl implements ISysOaWarehouseService { @Override public TableDataInfo queryPageList(SysOaWarehouseBo bo, PageQuery pageQuery) { QueryWrapper lqw = new QueryWrapper<>(); - lqw.like(StringUtils.isNotBlank(bo.getName()), "sow.name", bo.getName()).or() - .like(StringUtils.isNotBlank(bo.getName()), "sow.brand", bo.getName()).or() - .like(StringUtils.isNotBlank(bo.getName()), "sow.model", bo.getName()); - lqw.eq(StringUtils.isNotBlank(bo.getModel()), "sow.model", bo.getModel()); - lqw.eq(StringUtils.isNotBlank(bo.getBrand()), "sow.brand", bo.getBrand()); lqw.eq("sow.del_flag", 0); - + lqw.and(StringUtils.isNotBlank(bo.getName()),qw -> qw + .like( "sow.name", bo.getName()) + .or() + .like("sow.brand", bo.getName()) + .or() + .like("sow.model", bo.getName()) + ) + .eq(StringUtils.isNotBlank(bo.getModel()), "sow.model", bo.getModel()) + .eq(StringUtils.isNotBlank(bo.getBrand()), "sow.brand", bo.getBrand()); Page result = baseMapper.selectListVoPage(pageQuery.build(), lqw); return TableDataInfo.build(result); } @@ -67,17 +70,25 @@ public class SysOaWarehouseServiceImpl implements ISysOaWarehouseService { @Override public TableDataInfo queryPageListThreshold(SysOaWarehouseBo bo, PageQuery pageQuery, boolean b) { QueryWrapper lqw = new QueryWrapper<>(); - lqw.like(StringUtils.isNotBlank(bo.getName()), "sow.name", bo.getName()).or() - .like(StringUtils.isNotBlank(bo.getName()), "sow.brand", bo.getName()).or() - .like(StringUtils.isNotBlank(bo.getName()), "sow.model", bo.getName()); - lqw.eq(StringUtils.isNotBlank(bo.getModel()), "sow.model", bo.getModel()); - lqw.eq(StringUtils.isNotBlank(bo.getBrand()), "sow.brand", bo.getBrand()); lqw.eq("sow.del_flag", 0); if (b){ lqw.apply("sow.inventory < sow.threshold"); }else{ lqw.apply("sow.inventory >= sow.threshold"); } + lqw.eq(StringUtils.isNotBlank(bo.getModel()), "sow.model", bo.getModel()); + lqw.eq(StringUtils.isNotBlank(bo.getBrand()), "sow.brand", bo.getBrand()); + + lqw.and(StringUtils.isNotBlank(bo.getName()),qw -> qw + .like( "sow.name", bo.getName()) + .or() + .like("sow.brand", bo.getName()) + .or() + .like("sow.model", bo.getName()) + ) + .eq(StringUtils.isNotBlank(bo.getModel()), "sow.model", bo.getModel()) + .eq(StringUtils.isNotBlank(bo.getBrand()), "sow.brand", bo.getBrand()); + Page result = baseMapper.selectListVoPage(pageQuery.build(), lqw); return TableDataInfo.build(result); } @@ -164,6 +175,7 @@ public class SysOaWarehouseServiceImpl implements ISysOaWarehouseService { /** * 新增仓库管理 */ + @Override public Long insertByBo2(SysOaWarehouseBo bo) { SysOaWarehouse add = BeanUtil.toBean(bo, SysOaWarehouse.class); validEntityBeforeSave(add); @@ -172,7 +184,6 @@ public class SysOaWarehouseServiceImpl implements ISysOaWarehouseService { lqw.eq(SysOaWarehouse::getName, bo.getName()); lqw.eq(StringUtils.isNotBlank(bo.getModel()), SysOaWarehouse::getModel, bo.getModel()); SysOaWarehouse select = baseMapper.selectOne(lqw); - System.out.println(select); // 2、 无则直接新增项目 有则直接增加库存数量 if (select == null) { baseMapper.insert(add); diff --git a/ruoyi-oa/src/main/resources/mapper/oa/OaProgressMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/OaProgressMapper.xml index 5c35222..c31eb31 100644 --- a/ruoyi-oa/src/main/resources/mapper/oa/OaProgressMapper.xml +++ b/ruoyi-oa/src/main/resources/mapper/oa/OaProgressMapper.xml @@ -4,24 +4,118 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - - + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-oa/src/main/resources/mapper/oa/SysOaProjectMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/SysOaProjectMapper.xml index 04c1351..1c9e830 100644 --- a/ruoyi-oa/src/main/resources/mapper/oa/SysOaProjectMapper.xml +++ b/ruoyi-oa/src/main/resources/mapper/oa/SysOaProjectMapper.xml @@ -480,5 +480,28 @@ ${ew.getCustomSqlSegment} + + diff --git a/ruoyi-oa/src/main/resources/mapper/oa/SysOaWarehouseMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/SysOaWarehouseMapper.xml index 5f7dc9d..33801a6 100644 --- a/ruoyi-oa/src/main/resources/mapper/oa/SysOaWarehouseMapper.xml +++ b/ruoyi-oa/src/main/resources/mapper/oa/SysOaWarehouseMapper.xml @@ -69,6 +69,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join sys_oa_warehouse_master sowm on sowm.master_id = sowt.master_id where sowt.warehouse_id = sow.id and sowm.type = 2 + and sowt.del_flag = '0' + and sowm.del_flag = '0' and sowm.status = 0 ) as task_inventory from sys_oa_warehouse sow diff --git a/script/sql/progress.sql b/script/sql/progress.sql new file mode 100644 index 0000000..9532552 --- /dev/null +++ b/script/sql/progress.sql @@ -0,0 +1,97 @@ +create table if not exists sys_oa_project +( + project_id bigint not null comment 'ID' + primary key, + project_name varchar(126) default '' null comment '项目名称', + project_num varchar(64) default '' null comment '项目编号', + project_type char null comment '项目类型(1中标,2其他)', + address varchar(126) default '' null comment '项目地址', + funds decimal(24, 2) null comment '项目总款', + functionary varchar(32) default '' null comment '项目负责人', + begin_time datetime null comment '开始日期', + finish_time datetime null comment '结束日期', + delivery varchar(64) null comment '交货期', + guarantee varchar(64) null comment '质保期', + introduction varchar(256) default '' null comment '项目介绍', + project_grade char default '0' null comment '优先级(0一般 1中 2高)', + project_status char default '0' null comment '状态(0进行中 1完结)', + contract_id bigint null comment '关联合同ID', + invoice_name varchar(64) collate utf8mb4_general_ci null comment '开票单位名称', + invoice_number varchar(32) collate utf8mb4_general_ci null comment '纳税人识别号', + invoice_address varchar(128) collate utf8mb4_general_ci null comment '开票地址电话', + invoice_bank varchar(128) collate utf8mb4_general_ci null comment '开户行及账号', + accessory text null comment '附件', + bail json null comment '履约保证金', + remark varchar(256) null comment '备注', + create_by varchar(32) default '' null comment '创建者', + create_time datetime null comment '创建时间', + update_by varchar(32) default '' null comment '更新者', + update_time datetime null comment '更新时间', + is_postpone int default 0 null comment '是否延期', + postpone_reason varchar(1024) null comment '延期原因', + postpone_time datetime null comment '延期至日期', + color varchar(20) null comment '代表颜色', + trade_type int default 0 null comment '交易类型', + pre_pay double default 0 null comment '预付款' +) + comment '项目管理表' charset = utf8mb4; + +create table if not exists oa_progress +( + progress_id bigint auto_increment comment '主键ID' + primary key, + project_id bigint default 0 not null comment '所属项目ID(可根据实际需要)', + type tinyint default 1 not null comment '进度类型:1-项目进度;2-付款进度(可根据实际约定)', + progress_name varchar(200) default '' not null comment '进度名称', + parent_id bigint default 0 not null comment '父进度ID,0或NULL表示没有父节点', + create_by varchar(40) default '' not null comment '创建者', + create_time datetime default CURRENT_TIMESTAMP not null comment '创建时间', + update_by varchar(40) default '' not null comment '更新者', + update_time datetime default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '更新时间', + del_flag tinyint default 0 not null comment '删除标志:0-正常;1-删除', + sort int default 0 not null comment '排序字段(如需)', + remark varchar(500) default '' not null comment '备注(如需)', + status int default 0 null comment '状态位', + amount int default 0 null comment '设备数量', + time_remark varchar(200) null comment '时间(备注)', + contact_phone varchar(20) null comment '联系人电话' +) + comment '项目进度主表'; + +create index idx_parent_id + on oa_progress (parent_id); + +create index idx_project_id + on oa_progress (project_id); + +create index idx_type + on oa_progress (type); + +create table if not exists oa_progress_detail +( + detail_id bigint auto_increment comment '主键ID' + primary key, + progress_id bigint not null comment '关联的进度ID,关联 project_progress.id', + detail_name varchar(50) null comment '子进度名称', + plan_start_date date null comment '计划开始日期(项目进度)', + plan_end_date date null comment '计划结束日期(项目进度)', + actual_start_date date null comment '实际开始日期(项目进度)', + actual_end_date date null comment '实际结束日期(项目进度)', + complete_percent decimal(5, 2) default 0.00 not null comment '完成百分比(项目进度)', + plan_pay_date date null comment '计划付款日期(付款进度)', + pay_amount decimal(18, 2) default 0.00 not null comment '应付金额(付款进度)', + paid_amount decimal(18, 2) default 0.00 not null comment '已付金额(付款进度)', + detail_status int default 0 null comment '子进度状态', + create_by varchar(40) default '' not null comment '创建者', + create_time datetime default CURRENT_TIMESTAMP not null comment '创建时间', + update_by varchar(40) default '' not null comment '更新者', + update_time datetime default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '更新时间', + del_flag tinyint default 0 not null comment '删除标志:0-正常;1-删除', + remark varchar(500) default '' not null comment '备注(如需)', + department varchar(30) null comment '负责部门' +) + comment '项目进度/付款进度扩展表'; + +create index idx_progress_id + on oa_progress_detail (progress_id); +