| | |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.github.pagehelper.PageHelper; |
| | | import com.github.pagehelper.PageInfo; |
| | | import com.whyc.dto.Response; |
| | | import com.whyc.mapper.DocUserMapper; |
| | | import com.whyc.mapper.WorksheetLinkMapper; |
| | | import com.whyc.mapper.WorksheetMainMapper; |
| | | import com.whyc.pojo.DocUser; |
| | | import com.whyc.pojo.ProductBomApproving; |
| | | import com.whyc.pojo.WorksheetLink; |
| | | import com.whyc.pojo.WorksheetMain; |
| | | import io.swagger.models.auth.In; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.context.annotation.Lazy; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Service |
| | | public class WorksheetMainService { |
| | |
| | | @Resource |
| | | private WorksheetLinkMapper linkMapper; |
| | | |
| | | @Autowired |
| | | @Lazy |
| | | private WorksheetLinkService linkService; |
| | | |
| | | @Resource |
| | | private DocUserMapper userMapper; |
| | | |
| | | @Autowired |
| | | private ProductBomApprovingService approvingService; |
| | | |
| | | @Transactional |
| | | public boolean submit(WorksheetMain main, DocUser user) { |
| | | List<ProductBomApproving> bomList = main.getApprovingBomList(); |
| | | int rejectVersion=-1; |
| | | //提交主表 |
| | | main.setCreateUserId(user.getId()); |
| | | //提交人角色来判断工作流层级 |
| | | if(user.getRoleId().equals("1001")){ |
| | | main.setLevel(2); |
| | | main.setStatus(1); |
| | | mainMapper.insert(main); |
| | | if(main.getId()==null) { |
| | | main.setLevel(2); |
| | | main.setStatus(1); |
| | | mainMapper.insert(main); |
| | | }else { |
| | | rejectVersion = approvingService.getRejectVersion(main.getId()); |
| | | } |
| | | //提交子表 |
| | | WorksheetLink link =new WorksheetLink(); |
| | | link.setMainId(main.getId()); |
| | |
| | | link.setDealDesc(main.getDealDesc()); |
| | | link.setLinkStatus(0); |
| | | link.setEnableArchive(0); |
| | | link.setRejectVersion(rejectVersion+1); |
| | | linkMapper.insert(link); |
| | | } |
| | | else if(user.getRoleId().equals("1002")){ |
| | | main.setLevel(1); |
| | | main.setStatus(2); |
| | | mainMapper.insert(main); |
| | | if(main.getId()==null) { |
| | | main.setLevel(1); |
| | | main.setStatus(2); |
| | | mainMapper.insert(main); |
| | | }else { |
| | | rejectVersion = approvingService.getRejectVersion(main.getId()); |
| | | } |
| | | //提交子表 |
| | | WorksheetLink link =new WorksheetLink(); |
| | | link.setMainId(main.getId()); |
| | |
| | | link.setDealDesc(main.getDealDesc()); |
| | | link.setLinkStatus(0); |
| | | link.setEnableArchive(1); |
| | | link.setRejectVersion(rejectVersion+1); |
| | | linkMapper.insert(link); |
| | | } |
| | | else if(user.getRoleId().equals("1003")){ |
| | |
| | | }else{ |
| | | return false; |
| | | } |
| | | //产品bom/图纸图片提交 |
| | | //查询当前驳回版本 |
| | | int nextRejectVersion = rejectVersion+1; |
| | | bomList.forEach(bom->{ |
| | | bom.setMainId(main.getId()); |
| | | bom.setRejectVersion(nextRejectVersion); |
| | | }); |
| | | approvingService.insert(bomList); |
| | | return true; |
| | | } |
| | | |
| | |
| | | mainMapper.updateById(main); |
| | | } |
| | | |
| | | /**用户对应的工作台数据分类 |
| | | * @param user TODO*/ |
| | | public Map<String, WorksheetMain> getList(DocUser user) { |
| | | Map<String,WorksheetMain> map = new HashMap<>(); |
| | | /** |
| | | * 用户对应的工作台数据分类 |
| | | * @param user |
| | | * @return*/ |
| | | public Map<String, Integer> getStatusStatistic(DocUser user) { |
| | | Map<String,Integer> map = new HashMap<>(); |
| | | switch (user.getRoleId()){ |
| | | //普通员工 |
| | | case "1001": |
| | | { |
| | | //未处理/已驳回/已审批 |
| | | //未处理(审批中)/已驳回/已审批 |
| | | map.put("rejected",0); |
| | | map.put("approving",0); |
| | | map.put("approved",0); |
| | | QueryWrapper<WorksheetMain> query = Wrappers.query(); |
| | | query.eq("create_user_id",user.getId()); |
| | | List<WorksheetMain> worksheetMainList = mainMapper.selectList(query); |
| | | Map<Integer, List<WorksheetMain>> groupingList = worksheetMainList.stream().collect(Collectors.groupingBy(WorksheetMain::getStatus)); |
| | | groupingList.forEach((status,mainList)->{ |
| | | switch (status){ |
| | | case 0:{ |
| | | map.put("rejected",mainList.size()); |
| | | }break; |
| | | case 1: |
| | | case 2:{ |
| | | Integer addedMainCount= map.get("approving"); |
| | | if(addedMainCount ==0){ |
| | | map.put("approving",mainList.size()); |
| | | }else{ |
| | | map.put("approving",addedMainCount+mainList.size()); |
| | | } |
| | | }break; |
| | | case 5:{ |
| | | map.put("approved",mainList.size()); |
| | | }break; |
| | | } |
| | | }); |
| | | } |
| | | break; |
| | | //项目经理 |
| | | case "1002": |
| | | { |
| | | //待处理/未处理/已驳回/已审批 |
| | | //待处理/已处理/属于自己-审批中/已驳回/已审批 |
| | | //属于自己-审批中/已驳回/已审批 |
| | | map.put("rejected",0); |
| | | map.put("approving",0); |
| | | map.put("approved",0); |
| | | map.put("handling",0); |
| | | map.put("handled",0); |
| | | |
| | | QueryWrapper<WorksheetMain> query = Wrappers.query(); |
| | | query.eq("create_user_id",user.getId()); |
| | | List<WorksheetMain> worksheetMainList = mainMapper.selectList(query); |
| | | Map<Integer, List<WorksheetMain>> groupingList = worksheetMainList.stream().collect(Collectors.groupingBy(WorksheetMain::getStatus)); |
| | | groupingList.forEach((status,mainList)->{ |
| | | switch (status){ |
| | | case 0:{ |
| | | map.put("rejected",mainList.size()); |
| | | }break; |
| | | case 2:{ |
| | | map.put("approving",mainList.size()); |
| | | }break; |
| | | case 5:{ |
| | | map.put("approved",mainList.size()); |
| | | }break; |
| | | } |
| | | }); |
| | | //待处理/已处理 |
| | | List<WorksheetLink> WorksheetLinkList = linkService.getInfoList(user.getId()); |
| | | Map<Integer, List<WorksheetLink>> groupingLinkList = WorksheetLinkList.stream().collect(Collectors.groupingBy(WorksheetLink::getLinkStatus)); |
| | | groupingLinkList.forEach((linkStatus,linkList)->{ |
| | | List<WorksheetMain> mainList = new LinkedList<>(); |
| | | linkList.forEach(link -> {mainList.add(link.getMain());}); |
| | | switch (linkStatus){ |
| | | case 0:{ |
| | | map.put("handling",mainList.size()); |
| | | }break; |
| | | case 1: |
| | | case 2:{ |
| | | Integer addedMainCount= map.get("handled"); |
| | | if(addedMainCount ==0){ |
| | | map.put("handled",mainList.size()); |
| | | }else{ |
| | | map.put("handled",addedMainCount+mainList.size()); |
| | | } |
| | | }break; |
| | | } |
| | | }); |
| | | } |
| | | break; |
| | | //总经理 |
| | | case "1003": |
| | | { |
| | | //待处理/已审批 |
| | | map.put("handling",0); |
| | | map.put("approved",0); |
| | | List<WorksheetLink> WorksheetLinkList = linkService.getInfoList(user.getId()); |
| | | Map<Integer, List<WorksheetLink>> groupingLinkList = WorksheetLinkList.stream().collect(Collectors.groupingBy(WorksheetLink::getLinkStatus)); |
| | | groupingLinkList.forEach((linkStatus,linkList)->{ |
| | | List<WorksheetMain> mainList = new LinkedList<>(); |
| | | linkList.forEach(link -> {mainList.add(link.getMain());}); |
| | | switch (linkStatus){ |
| | | case 0:{ |
| | | map.put("handling",mainList.size()); |
| | | }break; |
| | | case 1: |
| | | case 2:{ |
| | | Integer addedMainCount= map.get("approved"); |
| | | if(addedMainCount ==0){ |
| | | map.put("approved",mainList.size()); |
| | | }else{ |
| | | map.put("approved",addedMainCount+mainList.size()); |
| | | } |
| | | }break; |
| | | } |
| | | }); |
| | | } |
| | | break; |
| | | } |
| | | |
| | | return null; |
| | | return map; |
| | | } |
| | | |
| | | public WorksheetMain getLinkList(int id) { |
| | | return mainMapper.getLinkList(id); |
| | | } |
| | | |
| | | public Response<PageInfo<WorksheetMain>> getApprovingListPage(DocUser user, int pageNum, int pageSize) { |
| | | PageHelper.startPage(pageNum,pageSize); |
| | | QueryWrapper<WorksheetMain> query = Wrappers.query(); |
| | | query.eq("create_user_id",user.getId()).in("status",1,2); |
| | | List<WorksheetMain> worksheetMainList = mainMapper.selectList(query); |
| | | //查询主表状态对应的子表 |
| | | worksheetMainList.forEach(main -> { |
| | | main.setApprovingUser(linkService.getApprovingUser(main.getId())); |
| | | }); |
| | | PageInfo<WorksheetMain> pageInfo = new PageInfo<>(worksheetMainList); |
| | | return new Response<PageInfo<WorksheetMain>>().set(1,pageInfo); |
| | | } |
| | | |
| | | public Response<PageInfo<WorksheetMain>> getRejectedListPage(DocUser user, int pageNum, int pageSize) { |
| | | PageHelper.startPage(pageNum,pageSize); |
| | | QueryWrapper<WorksheetMain> query = Wrappers.query(); |
| | | query.eq("create_user_id",user.getId()).in("status",0); |
| | | List<WorksheetMain> worksheetMainList = mainMapper.selectList(query); |
| | | PageInfo<WorksheetMain> pageInfo = new PageInfo<>(worksheetMainList); |
| | | return new Response<PageInfo<WorksheetMain>>().set(1,pageInfo); |
| | | } |
| | | |
| | | public Response<PageInfo<WorksheetMain>> getApprovedListPage(DocUser user, int pageNum, int pageSize) { |
| | | Response<PageInfo<WorksheetMain>> response = new Response<>(); |
| | | PageHelper.startPage(pageNum,pageSize); |
| | | List<WorksheetMain> worksheetMainList = null; |
| | | //自己的工单 |
| | | if(!user.getRoleId().equals("1003")){ |
| | | QueryWrapper<WorksheetMain> query = Wrappers.query(); |
| | | query.eq("create_user_id",user.getId()).in("status",5); |
| | | worksheetMainList = mainMapper.selectList(query); |
| | | |
| | | }else{ |
| | | //总经理,节点审批人为自己 |
| | | worksheetMainList = linkService.getInfoList2(user.getId(),1); |
| | | } |
| | | PageInfo<WorksheetMain> pageInfo = new PageInfo<>(worksheetMainList); |
| | | return response.set(1,pageInfo); |
| | | } |
| | | |
| | | public Response<PageInfo<WorksheetMain>> getHandlingListPage(DocUser user, int pageNum, int pageSize) { |
| | | PageHelper.startPage(pageNum,pageSize); |
| | | List<WorksheetMain> worksheetMainList = linkService.getInfoList2(user.getId(),0); |
| | | PageInfo<WorksheetMain> pageInfo = new PageInfo<>(worksheetMainList); |
| | | return new Response<PageInfo<WorksheetMain>>().set(1,pageInfo); |
| | | } |
| | | |
| | | public Response<PageInfo<WorksheetMain>> getHandledListPage(DocUser user, int pageNum, int pageSize) { |
| | | PageHelper.startPage(pageNum,pageSize); |
| | | List<WorksheetMain> worksheetMainList = linkService.getInfoList3(user.getId(),1); |
| | | PageInfo<WorksheetMain> pageInfo = new PageInfo<>(worksheetMainList); |
| | | return new Response<PageInfo<WorksheetMain>>().set(1,pageInfo); |
| | | } |
| | | |
| | | public WorksheetMain getInfo(int id) { |
| | | return mainMapper.selectById(id); |
| | | } |
| | | } |