123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203 |
- package com.migao.service.impl;
- import com.baomidou.mybatisplus.core.conditions.Wrapper;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.migao.config.constant.ExamineStatus;
- import com.migao.config.constant.FinancesStatus;
- import com.migao.config.constant.ProjectStatus;
- import com.migao.config.constant.PurchasingStage;
- import com.migao.config.response.PageBean;
- import com.migao.config.response.ResponseBean;
- import com.migao.config.response.ResponseBuilder;
- import com.migao.entity.po.Project;
- import com.migao.entity.po.ProjectDemand;
- import com.migao.entity.po.ProjectFile;
- import com.migao.entity.po.PurchasingApproval;
- import com.migao.entity.vo.req.ProjectPageQueryReq;
- import com.migao.entity.vo.req.PurchasingApprovalPageQueryReq;
- import com.migao.entity.vo.res.ProjectQueryRes;
- import com.migao.entity.vo.res.PurchasingApprovalQueryRes;
- import com.migao.mapper.ProjectDemandMapper;
- import com.migao.mapper.ProjectFileMapper;
- import com.migao.mapper.ProjectMapper;
- import com.migao.mapper.PurchasingApprovalMapper;
- import com.migao.service.ProjectService;
- import com.migao.service.PurchasingApprovalService;
- import com.migao.util.EntityUtils;
- import lombok.extern.slf4j.Slf4j;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import javax.annotation.Resource;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * @author dingsong
- */
- @Slf4j
- @Service
- @Transactional(rollbackFor = {Exception.class})
- public class PurchasingApprovalServiceImpl extends ServiceImpl<PurchasingApprovalMapper, PurchasingApproval> implements PurchasingApprovalService {
- @Resource
- private ProjectMapper projectMapper;
- @Resource
- private PurchasingApprovalMapper purchasingApprovalMapper;
- @Resource
- private ProjectDemandMapper projectDemandMapper;
- @Resource
- private ProjectFileMapper projectFileMapper;
- @Override
- public ResponseBean<PageBean<ProjectQueryRes>> pageQuery(PurchasingApprovalPageQueryReq purchasingApprovalPageQueryReq) {
- Integer page = purchasingApprovalPageQueryReq.getPage();
- page = page == null ? 1 : page <= 0 ? 1 : page;
- Integer size = purchasingApprovalPageQueryReq.getSize();
- size = size == null ? 10 : size <= 0 ? 10 : size;
- LambdaQueryWrapper<Project> queryWrapper = new LambdaQueryWrapper<>();
- if (purchasingApprovalPageQueryReq.getCreateTime() != null) {
- }
- if (StringUtils.isNotBlank(purchasingApprovalPageQueryReq.getName())) {
- queryWrapper.eq(Project::getCreateTime, purchasingApprovalPageQueryReq.getCreateTime());
- }
- if (StringUtils.isNotBlank(purchasingApprovalPageQueryReq.getOrderStatus())) {
- queryWrapper.eq(Project::getOrderStatus, purchasingApprovalPageQueryReq.getOrderStatus());
- }
- queryWrapper.ne(Project::getParentId, 0);
- //查询子项目并且采购状态是待提报
- queryWrapper.eq(Project::getPurchaseStatus, ProjectStatus.TO_BE_REPORTED);
- Page<Project> all = projectMapper.selectPage(new Page<>(page, size), queryWrapper);
- return ResponseBuilder.ok(
- all,
- element -> {
- ProjectQueryRes projectQueryRes = ProjectQueryRes
- .builder()
- .id(element.getId())
- .capital(String.valueOf(element.getCapital()))
- .content(element.getContent())
- .cost(String.valueOf(element.getCost()))
- .createTime(element.getCreateTime())
- .level(element.getLevel())
- .name(element.getName())
- .progress(element.getProgress())
- .projectClassify(element.getProjectClassify())
- .specialtyClassify(element.getSpecialtyClassify())
- .total(String.valueOf(element.getTotal()))
- .totalInvestment(String.valueOf(element.getTotalInvestment()))
- .twoClassify(element.getTwoClassify())
- .unit(element.getUnit())
- .orderStatus(String.valueOf(element.getOrderStatus()))
- .reserveStatus(String.valueOf(element.getReserveStatus()))
- .build();
- return projectQueryRes;
- }
- );
- }
- @Override
- public ResponseBean<?> submit(Integer projectId, List<Integer> demandIdList) {
- Project project = projectMapper.selectById(projectId);
- if (project == null) {
- return ResponseBuilder.fail("项目不存在");
- }
- //绑定项目和需求
- for (Integer id : demandIdList) {
- ProjectDemand projectDemand = new ProjectDemand();
- projectDemand.setProjectrId(projectId);
- projectDemand.setDemandId(id);
- projectDemandMapper.insert(projectDemand);
- }
- //更新项目状态
- project.setPurchaseStatus(ProjectStatus.TO_APPROVAL.getName());
- projectMapper.updateById(project);
- //新增采购记录
- PurchasingApproval purchasingApproval=new PurchasingApproval();
- purchasingApproval.setDeleted(0);
- purchasingApproval.setProjectId(projectId);
- purchasingApproval.setStatus(ProjectStatus.TO_BE_REPORTED.getName());
- purchasingApproval.setStage(PurchasingStage.SUBMIT.getName());
- purchasingApprovalMapper.insert(purchasingApproval);
- return ResponseBuilder.ok();
- }
- @Override
- public ResponseBean<?> approve(Integer id,ExamineStatus status) {
- Project project = projectMapper.selectById(id);
- if (project == null) {
- ResponseBuilder.fail("项目不存在");
- }
- if (status.equals(FinancesStatus.PASS)) {
- project.setPurchaseStatus(ProjectStatus.APPROVE.getName());
- projectMapper.updateById(project);
- //新增采购记录
- PurchasingApproval purchasingApproval=new PurchasingApproval();
- purchasingApproval.setDeleted(0);
- purchasingApproval.setProjectId(id);
- purchasingApproval.setStatus(ProjectStatus.TO_APPROVAL.getName());
- purchasingApproval.setStage(PurchasingStage.EXAMINE.getName());
- purchasingApprovalMapper.insert(purchasingApproval);
- }else {
- project.setPurchaseStatus(ProjectStatus.TO_BE_REPORTED.getName());
- projectMapper.updateById(project);
- }
- return ResponseBuilder.ok();
- }
- @Override
- public ResponseBean<?> transmit(Integer projectId, String email, String company) {
- Project project = projectMapper.selectById(projectId);
- if (project == null) {
- ResponseBuilder.fail("项目不存在");
- }
- project.setPurchaseStatus(ProjectStatus.HAS_ORDERED.getName());
- projectMapper.updateById(project);
- PurchasingApproval purchasingApproval = PurchasingApproval.builder()
- .deleted(0)
- .projectId(projectId)
- .email(email)
- .company(company)
- .status(ProjectStatus.HAS_ORDERED.getName())
- .build();
- purchasingApprovalMapper.insert(purchasingApproval);
- return ResponseBuilder.ok();
- }
- @Override
- public ResponseBean<?> contractEntry(Integer projectId, Integer fileId) {
- ProjectFile projectFile= ProjectFile.builder()
- .projectId(projectId)
- .fileId(fileId)
- .build();
- projectFileMapper.insert(projectFile);
- //新增采购记录
- PurchasingApproval purchasingApproval=new PurchasingApproval();
- purchasingApproval.setDeleted(0);
- purchasingApproval.setProjectId(projectId);
- purchasingApproval.setStatus(ProjectStatus.CONTRACT_ENTRY.getName());
- purchasingApproval.setStage(ProjectStatus.CONTRACT_ENTRY.getName());
- purchasingApprovalMapper.insert(purchasingApproval);
- return ResponseBuilder.ok();
- }
- @Override
- public ResponseBean<List<PurchasingApprovalQueryRes>> findById(Integer id) {
- LambdaQueryWrapper<PurchasingApproval> queryWrapper=new LambdaQueryWrapper<>();
- queryWrapper.eq(PurchasingApproval::getProjectId,id);
- List<PurchasingApproval> all = purchasingApprovalMapper.selectList(queryWrapper);
- List<PurchasingApprovalQueryRes> list=new ArrayList<>();
- for (PurchasingApproval approval : all) {
- PurchasingApprovalQueryRes res = EntityUtils.copyProperties(approval, PurchasingApprovalQueryRes.class);
- list.add(res);
- }
- return ResponseBuilder.ok(list);
- }
- }
|