wangliang 1 жил өмнө
parent
commit
d697c4a3ef

+ 24 - 3
sop-api/src/main/java/com/qmth/sop/server/api/TBCrmDetailController.java

@@ -5,18 +5,22 @@ import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.boot.api.exception.ApiException;
 import com.qmth.sop.business.bean.params.CrmDetailSopParam;
 import com.qmth.sop.business.bean.result.EditResult;
+import com.qmth.sop.business.entity.SysUser;
 import com.qmth.sop.business.entity.TBCrmDetail;
 import com.qmth.sop.business.service.TBCrmDetailService;
 import com.qmth.sop.common.annotation.OperationLog;
 import com.qmth.sop.common.contant.SystemConstant;
+import com.qmth.sop.common.enums.CrmStatusEnum;
 import com.qmth.sop.common.enums.ExceptionResultEnum;
 import com.qmth.sop.common.enums.LogTypeEnum;
 import com.qmth.sop.common.lock.MemoryLock;
 import com.qmth.sop.common.util.Result;
 import com.qmth.sop.common.util.ResultUtil;
+import com.qmth.sop.common.util.ServletUtil;
 import io.swagger.annotations.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
@@ -26,6 +30,7 @@ import javax.validation.Valid;
 import javax.validation.constraints.Max;
 import javax.validation.constraints.Min;
 import java.util.Map;
+import java.util.Objects;
 
 /**
  * @Description: 派单明细表
@@ -95,23 +100,39 @@ public class TBCrmDetailController {
     @OperationLog(logType = LogTypeEnum.ADD)
     @ApiResponses({ @ApiResponse(code = 200, message = "派单明细sop信息", response = EditResult.class) })
     public Result sopEdit(@ApiParam(value = "派单明细sopId", required = true) @RequestParam Long id) {
-        return ResultUtil.ok(tbCrmDetailService.getById(id));
+        TBCrmDetail tbCrmDetail = tbCrmDetailService.getById(id);
+        Objects.requireNonNull(tbCrmDetail, "未找到派单sop信息");
+        return ResultUtil.ok(tbCrmDetail);
     }
 
     @ApiOperation(value = "派单明细sop发布")
     @RequestMapping(value = "/sop/publish", method = RequestMethod.POST)
     @OperationLog(logType = LogTypeEnum.EDIT)
+    @Transactional
     @ApiResponses({ @ApiResponse(code = 200, message = "派单明细sop发布", response = EditResult.class) })
     public Result sopPublish(@ApiParam(value = "派单明细sopId", required = true) @RequestParam Long id) {
-        return ResultUtil.ok(true);
+        TBCrmDetail tbCrmDetail = tbCrmDetailService.getById(id);
+        Objects.requireNonNull(tbCrmDetail, "未找到派单sop信息");
+
+        if (tbCrmDetail.getStatus() == CrmStatusEnum.PUBLISH) {
+            throw ExceptionResultEnum.ERROR.exception("该条派单sop已经发布");
+        }
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        tbCrmDetail.updateStatus(CrmStatusEnum.PUBLISH, sysUser.getId());
+        return ResultUtil.ok(tbCrmDetailService.updateById(tbCrmDetail));
     }
 
     @ApiOperation(value = "派单明细sop删除")
     @RequestMapping(value = "/sop/delete", method = RequestMethod.POST)
     @OperationLog(logType = LogTypeEnum.DELETE)
+    @Transactional
     @ApiResponses({ @ApiResponse(code = 200, message = "派单明细sop删除", response = EditResult.class) })
     public Result sopDelete(@ApiParam(value = "派单明细sopId", required = true) @RequestParam Long id) {
-        return ResultUtil.ok(true);
+        TBCrmDetail tbCrmDetail = tbCrmDetailService.getById(id);
+        Objects.requireNonNull(tbCrmDetail, "未找到派单sop信息");
+
+        //todo 补上流程信息
+        return ResultUtil.ok(tbCrmDetailService.removeById(tbCrmDetail.getId()));
     }
 
     @ApiOperation(value = "导入派单明细")

+ 11 - 0
sop-business/src/main/java/com/qmth/sop/business/entity/TBCrmDetail.java

@@ -110,6 +110,17 @@ public class TBCrmDetail extends BaseEntity implements Serializable {
         insertInfo(userId);
     }
 
+    /**
+     * 修改状态
+     *
+     * @param crmStatusEnum
+     * @param userId
+     */
+    public void updateStatus(CrmStatusEnum crmStatusEnum, Long userId) {
+        this.status = crmStatusEnum;
+        updateInfo(userId);
+    }
+
     public String getCrmNo() {
         return crmNo;
     }

+ 3 - 0
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBCrmDetailServiceImpl.java

@@ -201,6 +201,9 @@ public class TBCrmDetailServiceImpl extends ServiceImpl<TBCrmDetailMapper, TBCrm
                 TFCustomFlow tfCustomFlow = tbCrmDetailService.queryCustomFlow(tbCrmDetail.getCrmNo());
                 tbCrmDetail.createSop(tfCustomFlow.getFlowDeploymentId(), sysUser.getId());
             } else {
+                TBCrmDetail tbCrmDetailDb = tbCrmDetailService.getById(tbCrmDetail.getId());
+                Objects.requireNonNull(tbCrmDetailDb, "未找到派单sop信息");
+                //todo 补上流程信息
                 tbCrmDetail.updateInfo(sysUser.getId());
             }
             return tbCrmDetailService.saveOrUpdate(tbCrmDetail);