瀏覽代碼

增加缺陷单票据展示及流程

chenminghua 4 年之前
父節點
當前提交
ff666a8a23

+ 75 - 2
src/main/java/com/gyee/frame/controller/ticket/WobugeqController.java

@@ -1,9 +1,20 @@
 package com.gyee.frame.controller.ticket;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.gyee.frame.common.dataSources.DataSource;
+import com.gyee.frame.common.dataSources.DataSourceType;
+import com.gyee.frame.common.domain.AjaxResult;
+import com.gyee.frame.model.ticket.TokenUser;
+import com.gyee.frame.model.ticket.Wobugeq;
+import com.gyee.frame.service.ticket.ShiroService;
+import com.gyee.frame.service.ticket.WobugeqService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
 
-import org.springframework.web.bind.annotation.RestController;
+import java.util.Optional;
 
 /**
  * <p>
@@ -17,5 +28,67 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("/wobugeq")
 public class WobugeqController {
 
+    @Autowired
+    WobugeqService wobugeqService;
+    @Autowired
+    ShiroService shiroService;
+
+    /**
+     * 分页查询工作票
+     *
+     * @param page
+     * @return
+     */
+    @DataSource(value = DataSourceType.TICKET)
+    @GetMapping(value = "list")
+    public AjaxResult getList(@RequestHeader(value = "token") String header,
+                              @RequestParam("page") Optional<Long> page) {
+        TokenUser token = shiroService.findToken(header);
+        Long pageNum = page.orElse(1L);
+
+        IPage<Wobugeq> ticket = wobugeqService.selectPage(pageNum, token.getDepartment());
+        if (ticket == null)
+            return AjaxResult.error(4004, "数据读取异常");
+
+        return AjaxResult.successData(ticket);
+    }
+
+    /**
+     * 根据 id 查询详情
+     *
+     * @param id
+     * @return
+     */
+    @DataSource(value = DataSourceType.TICKET)
+    @GetMapping(value = "item")
+    public AjaxResult getTicketItem(@RequestParam("id") String id) {
+        Wobugeq ticket = wobugeqService.getById(id);
+        if (ticket == null) {
+            return AjaxResult.error(4004, "数据读取异常");
+        }
+
+        return AjaxResult.successData(ticket);
+    }
+
+    /**
+     * 编辑ticket
+     *
+     * @param data
+     * @return
+     */
+    @DataSource(value = DataSourceType.TICKET)
+    @PostMapping(value = "edit")
+    public AjaxResult editWorkTicket(@RequestParam("data") String data) {
+        JSONObject jsonObject = JSONObject.parseObject(data);
+        Wobugeq ticket = JSON.toJavaObject(jsonObject, Wobugeq.class);
+        if (ticket == null)
+            return AjaxResult.error(4004, "数据更新失败");
+
+        boolean result = wobugeqService.updateById(ticket);
+        if (!result)
+            return AjaxResult.error(4004, "数据更新失败");
+
+        return AjaxResult.success("数据更新成功");
+    }
 }
 

+ 1 - 1
src/main/java/com/gyee/frame/mapper/ticket/LaborMapper.java

@@ -36,7 +36,7 @@ public interface LaborMapper extends BaseMapper<Labor> {
      * @param groupName
      * @return
      */
-    @Select("SELECT t3.* FROM  LABORGROUP t1 LEFT JOIN LABORGRPS t2 ON t1.GROUPNAME = t2.GROUPNAME LEFT JOIN LABOR t3 ON t2.LABORNUM = t3.LABORNUM WHERE t3.DEPTNUM = #{dept} AND t1.DESCRIPTION = #{groupName}")
+    @Select("SELECT t3.* FROM  LABORGROUP t1 LEFT JOIN LABORGRPS t2 ON t1.GROUPNAME = t2.GROUPNAME LEFT JOIN LABOR t3 ON t2.LABORNUM = t3.LABORNUM WHERE t3.DEPTNUM = #{dept} AND t1.GROUPNAME = #{groupName}")
     List<Labor> getLaborOfDept(String dept, String groupName);
 
     /**

+ 5 - 0
src/main/java/com/gyee/frame/model/ticket/FlowStep.java

@@ -12,6 +12,11 @@ public class FlowStep {
         this.title = title;
     }
 
+    public FlowStep(String title, String date) {
+        this.title = title;
+        this.date = date;
+    }
+
     public FlowStep(String title, String principal, String date) {
         this.title = title;
         this.principal = principal;

+ 2 - 1
src/main/java/com/gyee/frame/service/impl/ticket/LaborServiceImpl.java

@@ -36,7 +36,8 @@ public class LaborServiceImpl extends ServiceImpl<LaborMapper, Labor> implements
 
     @Override
     public List<Labor> getLaborOfDept(String dept, String groupName) {
-        List<Labor> labors = baseMapper.getLaborOfDept(dept, groupName);
+        String role = TicketUtil.roleFormat(groupName);
+        List<Labor> labors = baseMapper.getLaborOfDept(dept, role);
         return labors;
     }
 

+ 4 - 1
src/main/java/com/gyee/frame/service/impl/ticket/WfassignmentServiceImpl.java

@@ -118,7 +118,10 @@ public class WfassignmentServiceImpl extends ServiceImpl<WfassignmentMapper, Wfa
         for (int i = 0; i < labors.size(); i++){
             Wfassignment wfassignment = new Wfassignment();
             wfassignment.setId(id);
-            wfassignment.setDescription(task.getDescription().replace(":{TICKETNUM}", ticketNum));
+            if (wfName.equals("缺陷处理流程"))
+                wfassignment.setDescription(task.getDescription().replace(":{BUGNUM}", ticketNum));
+            else
+                wfassignment.setDescription(task.getDescription().replace(":{TICKETNUM}", ticketNum));
             wfassignment.setAssigncode(labors.get(i));
             wfassignment.setApp(task.getApp());
             wfassignment.setStartdate(new Date());

+ 21 - 5
src/main/java/com/gyee/frame/service/impl/ticket/WfinstanceServiceImpl.java

@@ -44,6 +44,8 @@ public class WfinstanceServiceImpl extends ServiceImpl<WfinstanceMapper, Wfinsta
     @Autowired
     WorkticketService workticketService;
     @Autowired
+    WobugeqService wobugeqService;
+    @Autowired
     WftaskassignService wftaskassignService;
 
 
@@ -101,6 +103,9 @@ public class WfinstanceServiceImpl extends ServiceImpl<WfinstanceMapper, Wfinsta
                             "人员:" + laborMap.get(wftrans.get(i).getAssigncode().toLowerCase()),
                             "日期:" + DateUtils.format(wftrans.get(i).getTransdate().toString(), DateUtils.DATE_TIME_PATTERN));
                     break;
+                case "等待":
+                    obj = new FlowStep("等待节点","日期:" + DateUtils.format(wftrans.get(i).getTransdate().toString(), DateUtils.DATE_TIME_PATTERN));
+                    break;
                 case "结束":
                     obj = new FlowStep("节点:" + nodeMap.get(wftrans.get(i).getNodeid()));
                     break;
@@ -129,8 +134,7 @@ public class WfinstanceServiceImpl extends ServiceImpl<WfinstanceMapper, Wfinsta
                 labor = labor + " " + code;
             }
             FlowStep obj = new FlowStep("节点:" + nodeMap.get(items.get(0).getNodeid()),
-                    "人员:" + labor,
-                    "日期:");
+                    "人员:" + labor,null);
             list.add(obj);
             map.put("flow", list);
             map.put("status", 2);
@@ -264,9 +268,21 @@ public class WfinstanceServiceImpl extends ServiceImpl<WfinstanceMapper, Wfinsta
             throw new RuntimeException();
 
         // 更新票据状态
-        boolean update = workticketService.updateTicket(ownerId, action.getStartnodeid(), action.getEndnodeid());
-        if (!update)
-            return false;
+       if (wfName.equals("缺陷处理流程")){
+           /**
+            * 缺陷单
+            */
+           boolean update = wobugeqService.updateTicket(ownerId, action.getStartnodeid(), action.getEndnodeid());
+           if (!update)
+               return false;
+       }else{
+           /**
+            * 工作票
+            */
+           boolean update = workticketService.updateTicket(ownerId, action.getStartnodeid(), action.getEndnodeid());
+           if (!update)
+               return false;
+       }
 
         return true;
     }

+ 13 - 3
src/main/java/com/gyee/frame/service/impl/ticket/WftransServiceImpl.java

@@ -35,13 +35,15 @@ public class WftransServiceImpl extends ServiceImpl<WftransMapper, Wftrans> impl
     WorkticketService workticketService;
     @Autowired
     WfnodeService wfnodeService;
+    @Autowired
+    WobugeqService wobugeqService;
 
 
     @Override
     public List<Wftrans> listTrans(double instanceId) {
         QueryWrapper<Wftrans> wrapper = new QueryWrapper<>();
         wrapper.eq("WFINSTID", instanceId);
-        wrapper.in("TRANSTYPE", "开始", "任务", "结束");
+        wrapper.in("TRANSTYPE", "开始", "任务", "等待", "结束");
         wrapper.orderByAsc("ID");
 
         List<Wftrans> trans = baseMapper.selectList(wrapper);
@@ -80,7 +82,11 @@ public class WftransServiceImpl extends ServiceImpl<WftransMapper, Wftrans> impl
             ibsidgenService.updateGen(gen, id);
 
             // 更新票据状态
-            workticketService.updateTicket(ownerId, preNodeId, currNodeId);
+            if (wfName.equals("缺陷处理流程")){
+                wobugeqService.updateTicket(ownerId, preNodeId, currNodeId);
+            }else {
+                workticketService.updateTicket(ownerId, preNodeId, currNodeId);
+            }
         }else {
             wfinstanceService.updateInstance(instId, currNodeId, null);
             // 更新之前的待办任务
@@ -97,7 +103,11 @@ public class WftransServiceImpl extends ServiceImpl<WftransMapper, Wftrans> impl
             ibsidgenService.updateGen(gen, id);
 
             // 更新票据状态
-            workticketService.updateTicket(ownerId, preNodeId, currNodeId);
+            if (wfName.equals("缺陷处理流程")){
+                wobugeqService.updateTicket(ownerId, preNodeId, currNodeId);
+            }else {
+                workticketService.updateTicket(ownerId, preNodeId, currNodeId);
+            }
         }
 
         return true;

+ 40 - 2
src/main/java/com/gyee/frame/service/impl/ticket/WobugeqServiceImpl.java

@@ -1,12 +1,21 @@
 package com.gyee.frame.service.impl.ticket;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gyee.frame.model.ticket.Wfaction;
 import com.gyee.frame.model.ticket.Wobugeq;
 import com.gyee.frame.mapper.ticket.WobugeqMapper;
+import com.gyee.frame.model.ticket.Workticket;
+import com.gyee.frame.service.ticket.WfactionService;
 import com.gyee.frame.service.ticket.WobugeqService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gyee.frame.util.ticket.TicketUtil;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
+
 /**
  * <p>
  *  服务实现类
@@ -18,8 +27,37 @@ import org.springframework.stereotype.Service;
 @Service
 public class WobugeqServiceImpl extends ServiceImpl<WobugeqMapper, Wobugeq> implements WobugeqService {
 
+    @Autowired
+    WfactionService wfactionService;
+
     @Override
-    public IPage<Wobugeq> selectPage(long pageNum) {
-        return null;
+    public IPage<Wobugeq> selectPage(long pageNum, String dept) {
+        QueryWrapper<Wobugeq> wrapper = new QueryWrapper();
+        wrapper.orderByDesc("ID");
+        if (TicketUtil.allDept().contains(dept)){
+            wrapper.eq("SITENUM", dept);
+        }else{
+            wrapper.in("SITENUM", TicketUtil.allDept());
+        }
+
+        Page<Wobugeq> page = new Page<>(pageNum, 15);
+        IPage<Wobugeq> iPage = baseMapper.selectPage(page, wrapper);
+
+        return iPage;
+    }
+
+    @Override
+    public boolean updateTicket(double id, double startNodeId, double endNodeId) {
+        Wfaction action = wfactionService.getActionStatus(startNodeId, endNodeId);
+
+        Wobugeq ticket = new Wobugeq();
+        ticket.setId(id);
+        ticket.setStatus(action.getAction());
+        ticket.setStatusdate(new Date());
+        int i = baseMapper.updateById(ticket);
+        if (i <= 0)
+            throw new RuntimeException();
+
+        return true;
     }
 }

+ 12 - 1
src/main/java/com/gyee/frame/service/ticket/WobugeqService.java

@@ -17,7 +17,18 @@ public interface WobugeqService extends IService<Wobugeq> {
     /**
      * 分页
      * @param pageNum
+     * @param dept
      * @return
      */
-    IPage<Wobugeq> selectPage(long pageNum);
+    IPage<Wobugeq> selectPage(long pageNum, String dept);
+
+    /**
+     * 更新缺陷单 wobugeq 主表状态
+     *
+     * @param id
+     * @param startNodeId
+     * @param endNodeId
+     * @return
+     */
+    boolean updateTicket(double id, double startNodeId, double endNodeId);
 }