From 51a54c31b1fb937d23e1b1ddd0777076da009fe5 Mon Sep 17 00:00:00 2001 From: whycxzp <perryhsu@163.com> Date: 星期五, 29 七月 2022 16:59:45 +0800 Subject: [PATCH] 更新工作流 --- src/main/java/com/whyc/service/WorksheetMainService.java | 170 +++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 141 insertions(+), 29 deletions(-) diff --git a/src/main/java/com/whyc/service/WorksheetMainService.java b/src/main/java/com/whyc/service/WorksheetMainService.java index 989bd7b..b7f5f84 100644 --- a/src/main/java/com/whyc/service/WorksheetMainService.java +++ b/src/main/java/com/whyc/service/WorksheetMainService.java @@ -2,7 +2,9 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.whyc.dto.WorksheetMainDTO; +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; @@ -10,11 +12,11 @@ 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 sun.print.PSPrinterJob; import javax.annotation.Resource; import java.util.*; @@ -40,16 +42,20 @@ private ProductBomApprovingService approvingService; @Transactional - public boolean submit(WorksheetMainDTO mainDTO, DocUser user) { - WorksheetMain main = mainDTO.getMain(); - List<ProductBomApproving> bomList = mainDTO.getBomList(); + 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()); @@ -59,12 +65,17 @@ 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()); @@ -74,6 +85,7 @@ link.setDealDesc(main.getDealDesc()); link.setLinkStatus(0); link.setEnableArchive(1); + link.setRejectVersion(rejectVersion+1); linkMapper.insert(link); } else if(user.getRoleId().equals("1003")){ @@ -84,7 +96,13 @@ return false; } //浜у搧bom/鍥剧焊鍥剧墖鎻愪氦 - bomList.forEach(bom->bom.setMainId(main.getId())); + //鏌ヨ褰撳墠椹冲洖鐗堟湰 + int nextRejectVersion = rejectVersion+1; + bomList.forEach(bom->{ + bom.setMainId(main.getId()); + bom.setUpUserId(user.getId()); + bom.setRejectVersion(nextRejectVersion); + }); approvingService.insert(bomList); return true; } @@ -105,20 +123,24 @@ main.setId(id); main.setStatus(status); main.setEndReason(endReason); + main.setEndTime(new Date()); mainMapper.updateById(main); } /** * 鐢ㄦ埛瀵瑰簲鐨勫伐浣滃彴鏁版嵁鍒嗙被 * @param user - * */ - public Map<String, List<WorksheetMain>> getList(DocUser user) { - Map<String,List<WorksheetMain>> map = new HashMap<>(); + * @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); @@ -126,20 +148,19 @@ groupingList.forEach((status,mainList)->{ switch (status){ case 0:{ - map.put("rejected",mainList); + map.put("rejected",mainList.size()); }break; case 1: case 2:{ - List<WorksheetMain> addedMainList = map.get("approving"); - if(addedMainList ==null){ - map.put("approving",mainList); + Integer addedMainCount= map.get("approving"); + if(addedMainCount ==0){ + map.put("approving",mainList.size()); }else{ - addedMainList.addAll(mainList); - map.put("approving",addedMainList); + map.put("approving",addedMainCount+mainList.size()); } }break; case 5:{ - map.put("approved",mainList); + map.put("approved",mainList.size()); }break; } }); @@ -150,6 +171,12 @@ { //寰呭鐞�/宸插鐞�/灞炰簬鑷繁-瀹℃壒涓�/宸查┏鍥�/宸插鎵� //灞炰簬鑷繁-瀹℃壒涓�/宸查┏鍥�/宸插鎵� + 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); @@ -157,13 +184,13 @@ groupingList.forEach((status,mainList)->{ switch (status){ case 0:{ - map.put("rejected",mainList); + map.put("rejected",mainList.size()); }break; case 2:{ - map.put("approving",mainList); + map.put("approving",mainList.size()); }break; case 5:{ - map.put("approved",mainList); + map.put("approved",mainList.size()); }break; } }); @@ -175,11 +202,16 @@ linkList.forEach(link -> {mainList.add(link.getMain());}); switch (linkStatus){ case 0:{ - map.put("handling",mainList); + map.put("handling",mainList.size()); }break; case 1: case 2:{ - map.put("handled",mainList); + Integer addedMainCount= map.get("handled"); + if(addedMainCount ==0){ + map.put("handled",mainList.size()); + }else{ + map.put("handled",addedMainCount+mainList.size()); + } }break; } }); @@ -189,6 +221,8 @@ 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)->{ @@ -196,17 +230,27 @@ linkList.forEach(link -> {mainList.add(link.getMain());}); switch (linkStatus){ case 0:{ - map.put("handling",mainList); + map.put("handling",mainList.size()); }break; case 1: case 2:{ - map.put("handled",mainList); + Integer addedMainCount= map.get("approved"); + if(addedMainCount ==0){ + map.put("approved",mainList.size()); + }else{ + map.put("approved",addedMainCount+mainList.size()); + } }break; } }); } break; } + //鏌ヨ鎴戠殑宸ュ崟鏁伴噺 + QueryWrapper<WorksheetMain> query = Wrappers.query(); + query.eq("create_user_id",user.getId()); + Integer count = mainMapper.selectCount(query); + map.put("my",count); return map; } @@ -214,4 +258,72 @@ 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).orderByDesc("id"); + 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).orderByDesc("id"); + 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).orderByDesc("id"); + 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); + } + + public Response<PageInfo<WorksheetMain>> getMyList(int pageNum, int pageSize, DocUser user) { + PageHelper.startPage(pageNum,pageSize); + QueryWrapper<WorksheetMain> query = Wrappers.query(); + query.eq("create_user_id",user.getId()).orderByDesc("id"); + List<WorksheetMain> worksheetMainList = mainMapper.selectList(query); + PageInfo<WorksheetMain> pageInfo = new PageInfo<>(worksheetMainList); + return new Response<PageInfo<WorksheetMain>>().set(1,pageInfo); + + } } -- Gitblit v1.9.1