Sfoglia il codice sorgente

APP抢修漏点定位和停水请求

yuejiaying 4 anni fa
parent
commit
b2c4002c9c

+ 92 - 46
operation_manager/src/main/java/com/huaxu/order/controller/WorkOrderManageController.java

@@ -120,30 +120,9 @@ public class WorkOrderManageController {
     public AjaxMessage<Integer> submitTask(
             @ApiParam(value = "1任务、2工单", required = true) @RequestParam Integer flowType,
             @ApiParam(value = "任务、工单id", required = true) @RequestParam Integer flowId,
-            @ApiParam(value = "json格式存储对应任务详情", required = false) @RequestParam(required = false) String flowDetail,
             @ApiParam(value = "处理结果", required = true) @RequestParam String flowResult,
-            @ApiParam(value = "1审批通过、2同意、3驳回", required = true) @RequestParam Integer actionId) {
+            @ApiParam(value = "1审批通过、2同意、3驳回、4漏点定位、5停水、6提交", required = true) @RequestParam Integer actionId) {
         LoginUser currentUser = UserUtil.getCurrentUser();
-        //有任务详情的更新详情表数据
-        if(!StringUtils.isEmpty(flowDetail)) {
-            WorkFlowDetail workFlowDetail =new WorkFlowDetail();
-            workFlowDetail.setFlowType(flowType);
-            workFlowDetail.setFlowId(flowId);
-            workFlowDetail.setFlowDetail(flowDetail);
-            Integer detailId= workFlowDetailService.selectDetailId(workFlowDetail);
-
-            //插入或更新详情
-            if(detailId==null) {
-                workFlowDetail.setCreateBy(currentUser.getUsername());
-                workFlowDetail.setDateCreate(new Date());
-                workFlowDetailService.insertSelective(workFlowDetail);
-            }else{
-                workFlowDetail.setUpdateBy(currentUser.getUsername());
-                workFlowDetail.setDateUpdate(new Date());
-                workFlowDetail.setId(detailId);
-                workFlowDetailService.updateByPrimaryKeySelective(workFlowDetail);
-            }
-        }
 
         WorkFlowLog workFlowLog=new WorkFlowLog();
         workFlowLog.setFlowId(flowId);
@@ -158,49 +137,83 @@ public class WorkOrderManageController {
         Action action=null;
         if(actionId==1){
             action=Action.ACTION_AUDIT;
-        }else if(actionId==2){
+        }else if(actionId==2||actionId==6){
             action=Action.ACTION_RECEIVE;
         }else if(actionId==3){
             action=Action.ACTION_REJECT;
         }
         Map<String,Object> args=new HashMap<>();
+
         //查询当前工单或任务 并更新当前状态
         if(flowType == 1){
             PlanManage plan= planManageService.selectByPrimaryKey(flowId);
             workFlowLog.setProcessInstanceId(plan.getProcessInstanceId());
             workFlowLog.setTaskId(plan.getCurrentTaskId());
 
-            List<TaskPorcessResult> handleResult = workFlowService.handleTask(action,plan.getCurrentTaskId(), null, null);
-            plan.setCurrentTaskId(handleResult.size()>0?handleResult.get(0).getCurrentTaskId():null);
-            plan.setCurrentUsers(handleResult.size()>0?handleResult.get(0).getCurrentTaskUsers():null);
-            plan.setCurrentTaskName(handleResult.size()>0?handleResult.get(0).getCurrentTaskName():null);
-            plan.setUpdateBy(currentUser.getUsername());
-            plan.setDateUpdate(new Date());
-            if(handleResult.size()==0||handleResult==null) {
-                plan.setPlanStatus(2);
-                plan.setPlanEndDate(new Date());
+            if(action!=null){
+                List<TaskPorcessResult> handleResult = workFlowService.handleTask(action,plan.getCurrentTaskId(), null, null);
+                plan.setCurrentTaskId(handleResult.size()>0?handleResult.get(0).getCurrentTaskId():null);
+                plan.setCurrentUsers(handleResult.size()>0?handleResult.get(0).getCurrentTaskUsers():null);
+                plan.setCurrentTaskName(handleResult.size()>0?handleResult.get(0).getCurrentTaskName():null);
+                plan.setUpdateBy(currentUser.getUsername());
+                plan.setDateUpdate(new Date());
+                if(handleResult.size()==0||handleResult==null) {
+                    plan.setPlanStatus(2);
+                    plan.setPlanEndDate(new Date());
+                }
+                planManageService.updateByPrimaryKey(plan);
             }
-            planManageService.updateByPrimaryKey(plan);
         }else if(flowType == 2){
             WorkOrderManage order= workOrderManageService.selectByPrimaryKey(flowId);
             workFlowLog.setProcessInstanceId(order.getProcessInstanceId());
             workFlowLog.setTaskId(order.getCurrentTaskId());
+            //如果是漏点定位和停水操作 创建子单
+            if(actionId==4||actionId==5){
+                WorkOrderManage workOrderManage=new WorkOrderManage();
+                workOrderManage.setTenantId(currentUser.getTenantId());
+                workOrderManage.setCreateBy(currentUser.getUsername());
+                workOrderManage.setDateCreate(new Date());
+                workOrderManage.setOrderStatus(0);
+                workOrderManage.setTaskNo(DatesUtil.formatDate(new Date(),"yyyyMMddHHmmss")+String.valueOf((int) (Math.random()*(9999-1000)+1000)));
+                workOrderManage.setOrderPid(flowId);
+                workOrderManage.setEventType(order.getEventType());
+                workOrderManage.setOrderTypeId(actionId==4?4:2);
+                workOrderManageService.insertSelective(workOrderManage);
+            }else if(actionId==6){
+                //判断子单完成情况后才可以提交
+                List<WorkOrderManageDto> childOrder=workOrderManageService.selectOrderDetail(flowId);
+                if(childOrder.size()>1){
+                    for(int i=1;i<childOrder.size();i++) {
+                        WorkOrderManageDto child=childOrder.get(i);
+                        if(child.getOrderTypeId()==4&&child.getOrderStatus()!=2)
+                            return new AjaxMessage<>(ResultStatus.CHILD_ORDER_ING);
+                    }
+                }
 
-            List<TaskPorcessResult> handleResult = workFlowService.handleTask(action,order.getCurrentTaskId(), null, null);
-            order.setCurrentTaskId(handleResult.size()>0?handleResult.get(0).getCurrentTaskId():null);
-            order.setCurrentUsers(handleResult.size()>0?handleResult.get(0).getCurrentTaskUsers():null);
-            order.setCurrentTaskName(handleResult.size()>0?handleResult.get(0).getCurrentTaskName():null);
-            order.setUpdateBy(currentUser.getUsername());
-            order.setDateUpdate(new Date());
-            if(handleResult.size()==0||handleResult==null) {
-                order.setOrderStatus(2);
-                order.setFinishDate(new Date());
+                //判断父单完成情况后才可以提交
+                WorkOrderManage parentOrder=workOrderManageService.selectByPrimaryKey(order.getOrderPid());
+                if(order.getOrderTypeId()==2&&parentOrder.getOrderStatus()!=2) {
+                    return new AjaxMessage<>(ResultStatus.PARENT_ORDER_ING);
+                }
+            }
+
+            if(action!=null){
+                List<TaskPorcessResult> handleResult = workFlowService.handleTask(action,order.getCurrentTaskId(), null, null);
+                order.setCurrentTaskId(handleResult.size()>0?handleResult.get(0).getCurrentTaskId():null);
+                order.setCurrentUsers(handleResult.size()>0?handleResult.get(0).getCurrentTaskUsers():null);
+                order.setCurrentTaskName(handleResult.size()>0?handleResult.get(0).getCurrentTaskName():null);
+                order.setUpdateBy(currentUser.getUsername());
+                order.setDateUpdate(new Date());
+                if(handleResult.size()==0||handleResult==null) {
+                    order.setOrderStatus(2);
+                    order.setFinishDate(new Date());
+                }
+                workOrderManageService.updateByPrimaryKey(order);
             }
-            workOrderManageService.updateByPrimaryKey(order);
         }
         //记录日志
         workFlowLogService.insert(workFlowLog);
-        return new AjaxMessage<>(ResultStatus.OK );
+        return new AjaxMessage<>(ResultStatus.OK);
     }
     /**
      * APP查询工单详情
@@ -208,8 +221,41 @@ public class WorkOrderManageController {
      */
     @RequestMapping(value = "selectOrderDetail", method = RequestMethod.GET)
     @ApiOperation(value = "APP查询工单详情")
-    public AjaxMessage<WorkOrderManageDto> selectOrderDetail(
+    public AjaxMessage<List<WorkOrderManageDto>> selectOrderDetail(
             @ApiParam(value = "工单id", required = true) @RequestParam Integer flowId) {
-        return new AjaxMessage<>(ResultStatus.OK,  workOrderManageService.selectOrderDetail(flowId));
+        List<WorkOrderManageDto> result=workOrderManageService.selectOrderDetail(flowId);
+        Map<String,String> dictMap=userCenterClient.selectListByPCodes("SC_WORK_ORDER_TYPE,SC_TASK_TYPE");
+        if(result.size()>0&&dictMap.size()>0){
+            for(WorkOrderManageDto workOrderManageDto:result) {
+                workOrderManageDto.setTypeName(dictMap.get(workOrderManageDto.getOrderTypeId().toString()));
+            }
+        }
+        return new AjaxMessage<>(ResultStatus.OK,  result);
+    }
+    @RequestMapping(value = "saveDetail", method = RequestMethod.GET)
+    @ApiOperation(value = "保存工单和任务的详情数据")
+    public AjaxMessage<Integer> saveDetail(
+            @ApiParam(value = "1任务、2工单", required = true) @RequestParam Integer flowType,
+            @ApiParam(value = "任务、工单id", required = true) @RequestParam Integer flowId,
+            @ApiParam(value = "json格式存储对应任务详情", required = true) @RequestParam String flowDetail){
+        LoginUser currentUser = UserUtil.getCurrentUser();
+        WorkFlowDetail workFlowDetail =new WorkFlowDetail();
+        workFlowDetail.setFlowType(flowType);
+        workFlowDetail.setFlowId(flowId);
+        workFlowDetail.setFlowDetail(flowDetail);
+        Integer detailId= workFlowDetailService.selectDetailId(workFlowDetail);
+
+        //插入或更新详情
+        if(detailId==null) {
+            workFlowDetail.setCreateBy(currentUser.getUsername());
+            workFlowDetail.setDateCreate(new Date());
+            workFlowDetailService.insertSelective(workFlowDetail);
+        }else{
+            workFlowDetail.setUpdateBy(currentUser.getUsername());
+            workFlowDetail.setDateUpdate(new Date());
+            workFlowDetail.setId(detailId);
+            workFlowDetailService.updateByPrimaryKeySelective(workFlowDetail);
+        }
+        return new AjaxMessage<>(ResultStatus.OK);
     }
 }

+ 1 - 1
operation_manager/src/main/java/com/huaxu/order/dao/WorkOrderManageMapper.java

@@ -25,5 +25,5 @@ public interface WorkOrderManageMapper {
 
     List<WorkOrderManageDto> selectAppAll( @Param("userId")Integer userId,@Param("tenantId")String tenantId);
 
-    WorkOrderManageDto selectOrderDetail(Integer id);
+    List<WorkOrderManageDto> selectOrderDetail(Integer id);
 }

+ 1 - 1
operation_manager/src/main/java/com/huaxu/order/entity/WorkOrderManage.java

@@ -75,7 +75,7 @@ public class WorkOrderManage implements Serializable {
     private Integer orderTypeId;
 
     @ApiModelProperty(value = "父单编号")
-    private String orderPid;
+    private Integer orderPid;
 
     @ApiModelProperty(value = "租户id")
     private String tenantId;

+ 1 - 1
operation_manager/src/main/java/com/huaxu/order/service/WorkOrderManageService.java

@@ -35,6 +35,6 @@ public interface WorkOrderManageService {
     /**
      * 按id查询工单和详情
      */
-    WorkOrderManageDto selectOrderDetail(Integer id);
+    List<WorkOrderManageDto> selectOrderDetail(Integer id);
 
 }

+ 1 - 1
operation_manager/src/main/java/com/huaxu/order/service/impl/WorkOrderManageServiceImpl.java

@@ -71,7 +71,7 @@ public class WorkOrderManageServiceImpl implements WorkOrderManageService {
      * 按id查询工单和详情
      */
     @Override
-    public WorkOrderManageDto selectOrderDetail(Integer id) {
+    public List<WorkOrderManageDto> selectOrderDetail(Integer id) {
         return workOrderManageMapper.selectOrderDetail(id);
     }
 }

+ 2 - 1
operation_manager/src/main/resources/mapper/order/WorkOrderManageMapper.xml

@@ -429,6 +429,7 @@
     select t1.*,t2.flow_detail
     from sc_work_order_manage t1
     left join sc_work_flow_detail t2 on t1.id=t2.flow_id and t2.flow_type=2
-    where t1.id = #{id,jdbcType=INTEGER}
+    where t1.id = #{id,jdbcType=INTEGER} or t1.order_pid = #{orderPid,jdbcType=INTEGER}
+    order by t1.order_pid
   </select>
 </mapper>