feat(oa): 新增项目工艺卡和发货单统计功能
- 在 IOaProcessCardService 接口中新增 queryProjectList 方法 - 在 OaProcessCardController 中添加 /projectList 接口用于查询项目列表 - 实现 OaProcessCardServiceImpl 中的 queryProjectList 方法逻辑 - 统计每个项目的工艺卡和发货单数量并返回 - 新增 SysOaProjectVo 字段 processCardCount 和 deliveryOrderCount - 注入 SysOaProjectMapper 和 OaDeliveryOrderMapper 依赖 - 使用 BeanUtil 转换 SysOaProject 到 SysOaProjectVo 对象 - 添加相关 import 引用及必要的 Java 工具类导入
This commit is contained in:
@@ -4,6 +4,7 @@ import java.util.List;
|
||||
import java.util.Arrays;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import com.ruoyi.oa.domain.vo.SysOaProjectVo;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
@@ -106,4 +107,10 @@ public class OaProcessCardController extends BaseController {
|
||||
public R<Void> insertProcessCard(@Validated(AddGroup.class) @RequestBody OaProcessCardBo bo) {
|
||||
return toAjax(iOaProcessCardService.insertProcessCard(bo));
|
||||
}
|
||||
|
||||
//查询所有项目并且带上工艺卡和发货单数量
|
||||
@GetMapping("/projectList")
|
||||
public R<List<SysOaProjectVo>> projectList() {
|
||||
return R.ok(iOaProcessCardService.queryProjectList());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -280,4 +280,8 @@ public class SysOaProjectVo {
|
||||
|
||||
//生产结项状态
|
||||
private Integer productStatus;
|
||||
|
||||
private Long processCardCount;
|
||||
|
||||
private Long deliveryOrderCount;
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.ruoyi.oa.domain.vo.OaProcessCardVo;
|
||||
import com.ruoyi.oa.domain.bo.OaProcessCardBo;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.oa.domain.vo.SysOaProjectVo;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
@@ -48,4 +49,6 @@ public interface IOaProcessCardService {
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
Boolean insertProcessCard(OaProcessCardBo bo);
|
||||
|
||||
List<SysOaProjectVo> queryProjectList();
|
||||
}
|
||||
|
||||
@@ -9,8 +9,11 @@ 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.OaProcessCardDetail;
|
||||
import com.ruoyi.oa.domain.SysOaProject;
|
||||
import com.ruoyi.oa.domain.bo.OaProcessCardDetailBo;
|
||||
import com.ruoyi.oa.domain.vo.SysOaProjectVo;
|
||||
import com.ruoyi.oa.mapper.OaProcessCardDetailMapper;
|
||||
import com.ruoyi.oa.mapper.SysOaProjectMapper;
|
||||
import com.ruoyi.oa.service.IOaProcessCardDetailService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@@ -19,9 +22,12 @@ import com.ruoyi.oa.domain.bo.OaProcessCardBo;
|
||||
import com.ruoyi.oa.domain.vo.OaProcessCardVo;
|
||||
import com.ruoyi.oa.domain.OaProcessCard;
|
||||
import com.ruoyi.oa.mapper.OaProcessCardMapper;
|
||||
import com.ruoyi.oa.mapper.OaDeliveryOrderMapper;
|
||||
import com.ruoyi.oa.domain.OaDeliveryOrder;
|
||||
import com.ruoyi.oa.service.IOaProcessCardService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
@@ -41,6 +47,10 @@ public class OaProcessCardServiceImpl implements IOaProcessCardService {
|
||||
|
||||
private final OaProcessCardDetailMapper oaProcessCardDetailMapper;
|
||||
|
||||
private final SysOaProjectMapper sysOaProjectMapper;
|
||||
|
||||
private final OaDeliveryOrderMapper oaDeliveryOrderMapper;
|
||||
|
||||
/**
|
||||
* 查询工艺卡主
|
||||
*/
|
||||
@@ -176,4 +186,33 @@ public class OaProcessCardServiceImpl implements IOaProcessCardService {
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysOaProjectVo> queryProjectList() {
|
||||
// 拿到项目名字projectName projectNum projectCode
|
||||
List<SysOaProject> sysOaProjects = sysOaProjectMapper.selectList();
|
||||
// 现在已经有了projectId然后需要看到工艺还是发货哪个地方绑定了这个projectId
|
||||
List<SysOaProjectVo> sysOaProjectVos = sysOaProjects.stream()
|
||||
.map(sysOaProject -> {
|
||||
SysOaProjectVo vo = BeanUtil.toBean(sysOaProject, SysOaProjectVo.class);
|
||||
Long projectId = sysOaProject.getProjectId();
|
||||
// 统计工艺卡数量(未删除)
|
||||
Long processCardCount = baseMapper.selectCount(
|
||||
Wrappers.<OaProcessCard>lambdaQuery()
|
||||
.eq(OaProcessCard::getProjectId, projectId)
|
||||
.eq(OaProcessCard::getDelFlag, 0)
|
||||
);
|
||||
vo.setProcessCardCount(processCardCount);
|
||||
// 统计送货单数量(未删除)
|
||||
Long deliveryOrderCount = oaDeliveryOrderMapper.selectCount(
|
||||
Wrappers.<OaDeliveryOrder>lambdaQuery()
|
||||
.eq(OaDeliveryOrder::getProjectId, projectId)
|
||||
.eq(OaDeliveryOrder::getDelFlag, 0)
|
||||
);
|
||||
vo.setDeliveryOrderCount(deliveryOrderCount);
|
||||
return vo;
|
||||
})
|
||||
.collect(Collectors.toList());
|
||||
return sysOaProjectVos;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user