소스 검색

新增质量问题反馈流程申请

wangliang 1 년 전
부모
커밋
56f5a069d5

+ 16 - 19
sop-business/src/main/java/com/qmth/sop/business/service/TBQualityProblemApplyService.java

@@ -1,7 +1,6 @@
 package com.qmth.sop.business.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.sop.business.bean.result.TBQualityProblemApplyResult;
 import com.qmth.sop.business.entity.TBQualityProblemApply;
@@ -20,29 +19,27 @@ import java.util.Map;
  * @email: shudonghui@qmth.com.cn
  * @Company: www.qmth.com.cn
  */
-public interface TBQualityProblemApplyService extends IService<TBQualityProblemApply>{
+public interface TBQualityProblemApplyService extends IService<TBQualityProblemApply> {
 
     /**
-    * 查询列表
-    *
-    * @param iPage
-    * @return
-    */
+     * 查询列表
+     *
+     * @param iPage
+     * @return
+     */
     IPage<TBQualityProblemApplyResult> query(IPage<Map> iPage, Long serviceId, Long userId, QualityProblemTypeEnum type, QualityProblemReasonEnum reason, InfluenceDegreeEnum degree, String custom, String problemNo, Long startTime, Long endTime);
-    /**
-    * 新增修改质量问题反馈表
-    *
-    * @param tBQualityProblemApply
-    */
-    Boolean saveTBQualityProblemApply(TBQualityProblemApply tBQualityProblemApply);
 
+    /**
+     * 新增修改质量问题反馈表
+     *
+     * @param tbQualityProblemApply
+     */
+    Boolean saveTBQualityProblemApply(TBQualityProblemApply tbQualityProblemApply) throws InterruptedException;
 
     /**
-    * 删除质量问题反馈表
-    *
-    * @param ids
-    */
+     * 删除质量问题反馈表
+     *
+     * @param ids
+     */
     Boolean delete(long[] ids);
-
-
 }

+ 36 - 31
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBQualityProblemApplyServiceImpl.java

@@ -2,21 +2,27 @@ package com.qmth.sop.business.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.qmth.boot.api.exception.ApiException;
+import com.qmth.sop.business.activiti.service.ActivitiService;
 import com.qmth.sop.business.bean.result.TBQualityProblemApplyResult;
-import com.qmth.sop.business.entity.SysUser;
 import com.qmth.sop.business.entity.TBQualityProblemApply;
 import com.qmth.sop.business.mapper.TBQualityProblemApplyMapper;
+import com.qmth.sop.business.service.SequenceService;
 import com.qmth.sop.business.service.TBQualityProblemApplyService;
-import com.qmth.sop.common.enums.*;
-import com.qmth.sop.common.util.ResultUtil;
+import com.qmth.sop.business.service.TFCustomFlowEntityService;
+import com.qmth.sop.common.enums.InfluenceDegreeEnum;
+import com.qmth.sop.common.enums.QualityProblemReasonEnum;
+import com.qmth.sop.common.enums.QualityProblemTypeEnum;
+import com.qmth.sop.common.enums.TFCustomTypeEnum;
 import com.qmth.sop.common.util.ServletUtil;
-import org.springframework.dao.DuplicateKeyException;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
 import java.util.Map;
 import java.util.Objects;
+import java.util.Set;
 
 /**
  * 质量问题反馈表 服务实现.
@@ -30,6 +36,14 @@ import java.util.Objects;
 @Service
 public class TBQualityProblemApplyServiceImpl extends ServiceImpl<TBQualityProblemApplyMapper, TBQualityProblemApply> implements TBQualityProblemApplyService {
 
+    @Resource
+    TFCustomFlowEntityService tfCustomFlowEntityService;
+
+    @Resource
+    ActivitiService activitiService;
+
+    @Resource
+    SequenceService sequenceService;
 
     /**
      * 查询列表
@@ -37,43 +51,34 @@ public class TBQualityProblemApplyServiceImpl extends ServiceImpl<TBQualityProbl
      * @param iPage
      * @return
      */
-//		@Override
-//		public IPage<TBQualityProblemApply> query(IPage<Map> iPage,String query) {
-//				return this.baseMapper.query(iPage,query);
-//		}
     @Override
     public IPage<TBQualityProblemApplyResult> query(IPage<Map> iPage, Long serviceId, Long userId, QualityProblemTypeEnum type, QualityProblemReasonEnum reason, InfluenceDegreeEnum degree, String custom, String problemNo, Long startTime, Long endTime) {
-        return this.baseMapper.query(iPage, serviceId,userId,Objects.nonNull(type)?type.name():null,Objects.nonNull(reason)?reason.name():null,Objects.nonNull(degree)?degree.name():null,custom,problemNo,startTime,endTime);
+        return this.baseMapper.query(iPage, serviceId, userId, Objects.nonNull(type) ? type.name() : null, Objects.nonNull(reason) ? reason.name() : null, Objects.nonNull(degree) ? degree.name() : null, custom, problemNo, startTime, endTime);
     }
 
     /**
      * 新增修改质量问题反馈表
      *
-     * @param tBQualityProblemApply
+     * @param tbQualityProblemApply
      */
     @Override
     @Transactional
-    public Boolean saveTBQualityProblemApply(TBQualityProblemApply tBQualityProblemApply) {
-        try {
-            SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-            if (Objects.isNull(tBQualityProblemApply.getId())) {// 新增
-                tBQualityProblemApply.setCreateId(1l);
-            } else { // 修改
-            }
-            return saveOrUpdate(tBQualityProblemApply);
-        } catch (Exception e) {
-            if (e instanceof DuplicateKeyException) {
-                String errorColumn = e.getCause().toString();
-                String columnStr = errorColumn.substring(errorColumn.lastIndexOf("key") + 3, errorColumn.length()).replaceAll("'", "");
-                throw ExceptionResultEnum.SQL_ERROR.exception("[" + FieldUniqueEnum.convertToTitle(columnStr) + "]数据不允许重复插入");
-            } else if (e instanceof ApiException) {
-                ResultUtil.error((ApiException) e, e.getMessage());
-            } else {
-                ResultUtil.error(e.getMessage());
-            }
+    public Boolean saveTBQualityProblemApply(TBQualityProblemApply tbQualityProblemApply) throws InterruptedException {
+        HttpServletRequest request = ServletUtil.getRequest();
+        Map<String, Object> map = new HashMap<>();
+        Map<String, String> formDataMap = new HashMap<>();
+        Map<String, String[]> parameterMap = request.getParameterMap();
+        Set<Map.Entry<String, String[]>> entrySet = parameterMap.entrySet();
+        for (Map.Entry<String, String[]> entry : entrySet) {
+            String key = entry.getKey();
+            String[] value = entry.getValue();
+            formDataMap.put(key, value[0]);
         }
-        return null;
-
+        map.putAll(formDataMap);
+        Map<String, Object> resultMap = activitiService.taskApprove(tbQualityProblemApply.getFlowDeploymentId(), tbQualityProblemApply.getApprove(), null, null, tbQualityProblemApply.getFormProperties(), tbQualityProblemApply.getApproveUserIds(), null, map);
+        String problemNo = sequenceService.createFlowCode(TFCustomTypeEnum.QUALITY_PROBLEM_FLOW);
+        tbQualityProblemApply.setProblemNo(problemNo);
+        return this.saveOrUpdate(tbQualityProblemApply);
     }
 
     /**

+ 2 - 17
sop-business/src/main/resources/db/log/wangliang_update_log.sql

@@ -454,20 +454,5 @@ ALTER TABLE t_b_quality_problem_apply ADD update_time BIGINT
     COMMENT '更新时间' NULL after update_id;
 
 UPDATE sys_privilege
-SET name='作废', url='Cancel', `type`='BUTTON', parent_id=21, `sequence`=1, property='AUTH', related='3019', enable=1, default_auth=0, front_display=1
-WHERE id=128;
-UPDATE sys_privilege
-SET name='查询', url='Select', `type`='BUTTON', parent_id=21, `sequence`=2, property='AUTH', related='3018', enable=1, default_auth=0, front_display=1
-WHERE id=130;
-UPDATE sys_privilege
-SET name='上报质量问题', url='ProblemSubmit', `type`='LINK', parent_id=41, `sequence`=5, property='AUTH', related='3017', enable=1, default_auth=0, front_display=1
-WHERE id=179;
-INSERT INTO sys_privilege
-(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display)
-VALUES(3017, '质量问题反馈申请接口', '/api/admin/quality/problem/apply', 'URL', 41, 1, 'AUTH', NULL, 1, 1, 0);
-INSERT INTO sys_privilege
-(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display)
-VALUES(3018, '质量问题反馈查询接口', '/api/admin/quality/problem/list', 'URL', 21, 1, 'AUTH', NULL, 1, 1, 0);
-INSERT INTO sys_privilege
-(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display)
-VALUES(3019, '质量问题反馈作废接口', '/api/admin/quality/problem/cancel', 'URL', 21, 2, 'AUTH', NULL, 1, 1, 0);
+SET name='上报质量问题', url='ProblemSubmit', `type`='LINK', parent_id=41, `sequence`=5, property='AUTH', related='1031', enable=1, default_auth=0, front_display=1
+WHERE id=179;

+ 11 - 18
sop-server/src/main/java/com/qmth/sop/server/api/TBQualityProblemApplyController.java

@@ -3,26 +3,24 @@ package com.qmth.sop.server.api;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.boot.api.constant.ApiConstant;
-import com.qmth.boot.api.annotation.Aac;
-import com.qmth.boot.api.annotation.BOOL;
-import com.qmth.sop.business.bean.result.EditResult;
 import com.qmth.sop.business.bean.result.TBQualityProblemApplyResult;
 import com.qmth.sop.business.entity.TBQualityProblemApply;
 import com.qmth.sop.business.service.TBQualityProblemApplyService;
 import com.qmth.sop.common.contant.SystemConstant;
-import com.qmth.sop.common.enums.*;
+import com.qmth.sop.common.enums.InfluenceDegreeEnum;
+import com.qmth.sop.common.enums.QualityProblemReasonEnum;
+import com.qmth.sop.common.enums.QualityProblemTypeEnum;
 import com.qmth.sop.common.util.Result;
 import com.qmth.sop.common.util.ResultUtil;
 import io.swagger.annotations.*;
-import org.springframework.util.CollectionUtils;
+import org.springframework.validation.BindingResult;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import javax.validation.Valid;
 import javax.validation.constraints.Max;
 import javax.validation.constraints.Min;
-import java.util.List;
-import java.util.Objects;
 
 /**
  * 质量问题反馈表 控制器
@@ -39,11 +37,9 @@ import java.util.Objects;
 @Validated
 public class TBQualityProblemApplyController {
 
-
     @Resource
     TBQualityProblemApplyService tBQualityProblemApplyService;
 
-    
     @ApiOperation(value = "质量问题反馈表查询接口")
     @RequestMapping(value = "/query", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "质量问题反馈表查询结果", response = TBQualityProblemApplyResult.class)})
@@ -59,21 +55,20 @@ public class TBQualityProblemApplyController {
             @ApiParam(value = "提交时间结束", required = false) @RequestParam(required = false) Long endTime,
             @ApiParam(value = "分页页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
             @ApiParam(value = "分页数", required = true) @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
-        IPage<TBQualityProblemApplyResult> resultIPage = tBQualityProblemApplyService.query(new Page<>(pageNumber, pageSize), serviceId,userId,type,reason,degree,custom,problemNo,startTime,endTime);
-
+        IPage<TBQualityProblemApplyResult> resultIPage = tBQualityProblemApplyService.query(new Page<>(pageNumber, pageSize), serviceId, userId, type, reason, degree, custom, problemNo, startTime, endTime);
         return ResultUtil.ok(resultIPage);
     }
 
-    
     @ApiOperation(value = "质量问题反馈表新增修改接口")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = Object.class)})
-    public Result save(@ApiParam(value = "质量问题反馈表信息", required = true) @RequestBody(required = true) TBQualityProblemApply tBQualityProblemApply) {
-        return ResultUtil.ok(tBQualityProblemApplyService.saveTBQualityProblemApply(tBQualityProblemApply));
+    public Result save(@Valid @ApiParam(value = "质量问题反馈表信息", required = true) @RequestBody TBQualityProblemApply tbQualityProblemApply, BindingResult bindingResult) throws InterruptedException {
+        if (bindingResult.hasErrors()) {
+            return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
+        }
+        return ResultUtil.ok(tBQualityProblemApplyService.saveTBQualityProblemApply(tbQualityProblemApply));
     }
 
-
-    
     @ApiOperation(value = "质量问题反馈表删除接口")
     @RequestMapping(value = "/delete", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = Object.class)})
@@ -89,6 +84,4 @@ public class TBQualityProblemApplyController {
 //    public Result get(@ApiParam(value = "质量问题反馈表id", required = true) @RequestParam long id) {
 //        return ResultUtil.ok(tBQualityProblemApplyService.getById(id));
 //    }
-
-
 }