Browse Source

库存移库流程接口

master
hanlinghao 3 years ago
parent
commit
874b156313
  1. 3
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java
  2. 4
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclegression/AppScmVehicleGressionDto.java
  3. 21
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclegression/GetNodeQuery.java
  4. 22
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclegression/GetNodeVo.java
  5. 38
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclegression/ScmCarTransferCompleteDto.java
  6. 55
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclegression/ScmCarTransferTaskQuery.java
  7. 13
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclegression/ScmVehicleGression.java
  8. 48
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclegression/ScmVehicleGressionFeign.java
  9. 40
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclegression/ScmVehicleGressionFeignFallback.java
  10. 17
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclegression/SubmitCarTransferDto.java
  11. 2
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclegression/ScmVehicleGressionMapper.java
  12. 16
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclegression/ScmVehicleGressionMapper.xml
  13. 46
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclegression/ScmVehicleGressionRest.java
  14. 361
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclegression/ScmVehicleGressionService.java

3
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java

@ -22,7 +22,8 @@ public enum ProcDefEnum {
SALESORDER("销售订单审批流程", "process_p5ils2rn:2:245112"),
BASEOUTSOURCINGAPPLICATION("外采申请", "process_5tqysnjc:6:375342"),//TODO
BASEMODELMODPRICE("车型调价申请", "process_kydcif7k:4:280243"),
BASEINTERNALPURCHASE("内购申请", "process_i6luw5xq:1:267504")
BASEINTERNALPURCHASE("内购申请", "process_i6luw5xq:1:267504"),
SCMCARTRANSFER("库存地点变更申请", "process_3bc4p2em:1:270004") //TODO
;
ProcDefEnum(String proDefName, String proDefId) {

4
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclegression/AppScmVehicleGressionDto.java

@ -89,10 +89,6 @@ public class AppScmVehicleGressionDto implements Dto {
private String InsuranceStateKey; // 保险状态
@ApiModelProperty("临牌")
private String temporaryCard; // 临牌
@ApiModelProperty("任务id")
private String taskId; // 任务id
@ApiModelProperty("流程实例id")
private String procInsId; // 流程实例id
@ApiModelProperty("保单照片")
private List<String> policyImage;

21
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclegression/GetNodeQuery.java

@ -0,0 +1,21 @@
package com.yxt.anrui.scm.api.scmvehiclegression;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.Map;
@Data
public class GetNodeQuery implements Query {
private static final long serialVersionUID = 1193998153281794455L;
@ApiModelProperty(value = "环节定义id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
@ApiModelProperty(value = "不确定是否需要前端传:还是有分支网关的时候传??")
private Map<String, Object> formVariables;
}

22
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclegression/GetNodeVo.java

@ -0,0 +1,22 @@
package com.yxt.anrui.scm.api.scmvehiclegression;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class GetNodeVo implements Vo {
private static final long serialVersionUID = 2363224219340406546L;
@ApiModelProperty(value = "节点名称")
private String name;
@ApiModelProperty(value = "节点id")
private String id;
@ApiModelProperty(value = "审批组")
private List<String> candidateGroups;
@ApiModelProperty(value = "是否是最后环节")
private String endTask;
}

38
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclegression/ScmCarTransferCompleteDto.java

@ -0,0 +1,38 @@
package com.yxt.anrui.scm.api.scmvehiclegression;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.Map;
@Data
public class ScmCarTransferCompleteDto implements Dto {
private static final long serialVersionUID = -3256541272551384660L;
@ApiModelProperty(value = "用户sid")
@NotBlank(message = "参数错误:userSid")
private String userSid;
@ApiModelProperty(value = "用户全路径sid")
@NotBlank(message = "参数错误:orgSidPath")
private String orgSidPath;
@ApiModelProperty(value = "节点id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
@ApiModelProperty(value = "任务id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
@ApiModelProperty(value = "流程id")
@NotBlank(message = "参数错误:instanceId")
private String instanceId;
@ApiModelProperty(value = "意见")
@NotBlank(message = "参数错误:comment")
private String comment;
@ApiModelProperty(value = "业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
@ApiModelProperty(value = "暂不确定是不是需要前端传的:还是有分支的时候传??")
private Map<String, Object> formVariables;
}

55
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclegression/ScmCarTransferTaskQuery.java

@ -0,0 +1,55 @@
package com.yxt.anrui.scm.api.scmvehiclegression;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class ScmCarTransferTaskQuery implements Query {
private static final long serialVersionUID = 7006705435456254838L;
/**
* 终止驳回撤回
*/
@ApiModelProperty("任务Id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
/**
* 终止驳回撤回
*/
@ApiModelProperty("业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
/**
* 终止驳回
*/
@ApiModelProperty("任务意见")
private String comment;
/**
* 终止撤回驳回
*/
@ApiModelProperty("用户Sid")
private String userSid;
/**
* 终止
*/
@ApiModelProperty("流程实例Id")
private String instanceId;
@ApiModelProperty("节点")
private String targetKey;
/*@ApiModelProperty("用户Id")
private String userId;
@ApiModelProperty("流程变量信息")
private Map<String, Object> values = new HashMap<>();
@ApiModelProperty("审批人")
private String assignee;
@ApiModelProperty("候选人")
private List<String> candidateUsers = new ArrayList<>();
@ApiModelProperty("审批组")
private List<String> candidateGroups = new ArrayList<>();*/
}

13
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclegression/ScmVehicleGression.java

@ -90,7 +90,16 @@ public class ScmVehicleGression extends BaseEntity {
private String applicantName; // 申请人
@ApiModelProperty("申请日期")
private String applicantDate; // 申请日期
@ApiModelProperty("审核状态")
private String nodeState; // 审核状态
@ApiModelProperty(value = "节点状态")
private String nodeState;
@ApiModelProperty(value = "节点id")
private String nodeId;
@ApiModelProperty(value = "流程id")
private String procDefId;
@ApiModelProperty(value = "实例id")
private String procInstId;
@ApiModelProperty(value = "任务id")
private String taskId;
}

48
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclegression/ScmVehicleGressionFeign.java

@ -34,9 +34,11 @@ import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.Valid;
import java.util.List;
/**
@ -85,6 +87,11 @@ public interface ScmVehicleGressionFeign {
@ResponseBody
public ResultBean<PagerVo<ScmVehicleGressionPageVo>> selectCarTransferList(@RequestBody PagerQuery<ScmVehicleGressionPageQuery> pagerQuery);
@ApiOperation("PC端-删除车辆移库申请")
@DeleteMapping("/deleteBySids")
@ResponseBody
public ResultBean deleteBySids(@RequestBody String[] sids);
@ApiOperation("手机端-获取车辆移位列表")
@PostMapping("/getCarTransferList")
@ResponseBody
@ -101,7 +108,6 @@ public interface ScmVehicleGressionFeign {
public ResultBean<AppScmVehicleGressionInfoVo> getCarTransferInfo(@PathVariable("sid") String sid, @PathVariable("userSid") String userSid);
@ApiOperation("手机端-车库移库详情")
@GetMapping("/getCarTransfer/{sid}")
@ResponseBody
public ResultBean<AppScmVehicleGressionDetailsVo> getCarTransfer(@PathVariable("sid") String sid);
@ -121,4 +127,44 @@ public interface ScmVehicleGressionFeign {
@PostMapping("/pictureUpload")
@ResponseBody
public ResultBean pictureUpload(@RequestParam("sid") String sid, @RequestParam(value = "file") MultipartFile file);
/*************************************************PC移位审批流程***************************************************/
@ApiOperation("提交车库移库审批流程")
@PostMapping("/submitCarTransfer")
@ResponseBody
public ResultBean submitCarTransfer(@Valid @RequestBody SubmitCarTransferDto dto);
@ApiOperation(value = "办理(同意)")
@PostMapping("/complete")
@ResponseBody
public ResultBean complete(@Valid @RequestBody ScmCarTransferCompleteDto query);
@ApiOperation(value = "获取上一个环节")
@GetMapping(value = "/getPreviousNodesForReject")
@ResponseBody
ResultBean<List<GetNodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap GetNodeQuery query);
@ApiOperation(value = "获取下一个环节")
@GetMapping(value = "/getNextNodesForSubmit")
@ResponseBody
ResultBean<List<GetNodeVo>> getNextNodesForSubmit(@Valid @SpringQueryMap GetNodeQuery query);
@ApiOperation(value = "驳回任务")
@PostMapping(value = "/reject")
@ResponseBody
public ResultBean taskReject(@Valid @RequestBody ScmCarTransferTaskQuery query);
@ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcess")
@ResponseBody
public ResultBean revokeProcess(@Valid @RequestBody ScmCarTransferTaskQuery query);
@ApiOperation(value = "终止任务")
@PostMapping(value = "/breakProcess")
@ResponseBody
public ResultBean breakProcess(@Valid @RequestBody ScmCarTransferTaskQuery query);
}

40
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclegression/ScmVehicleGressionFeignFallback.java

@ -76,6 +76,11 @@ public class ScmVehicleGressionFeignFallback implements ScmVehicleGressionFeign
return null;
}
@Override
public ResultBean deleteBySids(String[] sids) {
return null;
}
@Override
public ResultBean<PagerVo<AppScmVehicleGressionPageVo>> getCarTransferList(PagerQuery<AppScmVehicleGressionPageQuery> pagerQuery) {
return null;
@ -110,4 +115,39 @@ public class ScmVehicleGressionFeignFallback implements ScmVehicleGressionFeign
public ResultBean pictureUpload(String sid, MultipartFile file) {
return null;
}
@Override
public ResultBean submitCarTransfer(SubmitCarTransferDto dto) {
return null;
}
@Override
public ResultBean complete(ScmCarTransferCompleteDto query) {
return null;
}
@Override
public ResultBean<List<GetNodeVo>> getPreviousNodesForReject(GetNodeQuery query) {
return null;
}
@Override
public ResultBean<List<GetNodeVo>> getNextNodesForSubmit(GetNodeQuery query) {
return null;
}
@Override
public ResultBean taskReject(ScmCarTransferTaskQuery query) {
return null;
}
@Override
public ResultBean revokeProcess(ScmCarTransferTaskQuery query) {
return null;
}
@Override
public ResultBean breakProcess(ScmCarTransferTaskQuery query) {
return null;
}
}

17
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclegression/SubmitCarTransferDto.java

@ -0,0 +1,17 @@
package com.yxt.anrui.scm.api.scmvehiclegression;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class SubmitCarTransferDto extends AppScmVehicleGressionDto {
private static final long serialVersionUID = 3450720283101423640L;
@ApiModelProperty("意见")
private String comment;
@ApiModelProperty("流程实例id")
private String instanceId;
@ApiModelProperty("任务id")
private String taskId;
}

2
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclegression/ScmVehicleGressionMapper.java

@ -38,6 +38,7 @@ import org.apache.ibatis.annotations.Select;
import java.util.List;
import java.util.Map;
/**
* Project: scm(scm) <br/>
@ -105,4 +106,5 @@ public interface ScmVehicleGressionMapper extends BaseMapper<ScmVehicleGression>
int selectCountByOrgSid(@Param("billsType") String billsType, @Param("date") String date, @Param("orgSid") String orgSid);
int updateFlowFiled(Map<String, Object> map);
}

16
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclegression/ScmVehicleGressionMapper.xml

@ -78,4 +78,20 @@
AND orgSid = #{orgSid}
AND applicantNo LIKE concat(#{billsType}, '%')
</select>
<update id="updateFlowFiled">
UPDATE scm_vehicle_gression
SET nodeState=#{nodeState}
, nodeId=#{taskDefKey}
<if test="procDefId != null and procDefId != ''">
, procDefId=#{procDefId}
</if>
<if test="procInsId != null and procInsId != ''">
, procInstId=#{procInsId}
</if>
<if test="taskId != null and taskId != ''">
, taskId=#{taskId}
</if>
WHERE sid = #{sid}
</update>
</mapper>

46
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclegression/ScmVehicleGressionRest.java

@ -25,7 +25,10 @@
*********************************************************/
package com.yxt.anrui.scm.biz.scmvehiclegression;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.scm.api.scmfile.ScmFile;
import com.yxt.anrui.scm.api.scmvehicleexamine.AppScmVehicleExaminePageVo;
import com.yxt.anrui.scm.api.scmvehiclegression.*;
@ -122,6 +125,11 @@ public class ScmVehicleGressionRest implements ScmVehicleGressionFeign {
return new ResultBean<PagerVo<ScmVehicleGressionPageVo>>().success().setData(pagerVo);
}
@Override
public ResultBean deleteBySids(String[] sids) {
return scmVehicleGressionService.deleteBySids(sids);
}
@Override
@ApiOperation("手机端-获取车辆移位列表")
@PostMapping("/getCarTransferList")
@ -193,4 +201,42 @@ public class ScmVehicleGressionRest implements ScmVehicleGressionFeign {
scmFileService.save(scmFile);
return rb.success().setData(data).setMsg("上传成功");
}
@Override
public ResultBean submitCarTransfer(SubmitCarTransferDto dto) {
return scmVehicleGressionService.submitCarTransfer(dto);
}
@Override
public ResultBean complete(ScmCarTransferCompleteDto query) {
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId(ProcDefEnum.SCMCARTRANSFER.getProDefId());
return scmVehicleGressionService.complete(bv);
}
@Override
public ResultBean<List<GetNodeVo>> getPreviousNodesForReject(GetNodeQuery query) {
return scmVehicleGressionService.getPreviousNodesForReject(query);
}
@Override
public ResultBean<List<GetNodeVo>> getNextNodesForSubmit(GetNodeQuery query) {
return scmVehicleGressionService.getNextNodesForSubmit(query);
}
@Override
public ResultBean taskReject(ScmCarTransferTaskQuery query) {
return scmVehicleGressionService.taskReject(query);
}
@Override
public ResultBean revokeProcess(ScmCarTransferTaskQuery query) {
return scmVehicleGressionService.revokeProcess(query);
}
@Override
public ResultBean breakProcess(ScmCarTransferTaskQuery query) {
return scmVehicleGressionService.breakProcess(query);
}
}

361
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclegression/ScmVehicleGressionService.java

@ -26,25 +26,31 @@
package com.yxt.anrui.scm.biz.scmvehiclegression;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.busvehicleapply.BusVehicleApply;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.dictcommon.DictCommonFeign;
import com.yxt.anrui.portal.api.dictcommon.DictCommonVo;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysstaffinfo.SysStaffinfoVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.portal.api.sysuser.app.AppUserOrgInfoVo;
import com.yxt.anrui.portal.config.DictCommonType;
import com.yxt.anrui.scm.api.scmfile.ScmFile;
import com.yxt.anrui.scm.api.scmvehicleexamine.AppScmVehicleExaminePageQuery;
import com.yxt.anrui.scm.api.scmvehicleexamine.AppScmVehicleExaminePageVo;
import com.yxt.anrui.scm.api.scmvehiclegression.*;
import com.yxt.anrui.scm.biz.scmfile.ScmFileService;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.utils.DateUtils;
import com.yxt.common.core.result.FileUploadResult;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
@ -56,11 +62,11 @@ import com.yxt.common.core.vo.PagerVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.multipart.MultipartFile;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
* Project: scm(scm) <br/>
@ -93,6 +99,12 @@ public class ScmVehicleGressionService extends MybatisBaseService<ScmVehicleGres
@Autowired
private DictCommonFeign dictCommonFeign;
@Autowired
private FlowableFeign flowableFeign;
@Autowired
private FlowTaskFeign flowTaskFeign;
private QueryWrapper<ScmVehicleGression> createQueryWrapper(ScmVehicleGressionQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
@ -167,7 +179,7 @@ public class ScmVehicleGressionService extends MybatisBaseService<ScmVehicleGres
record.setShowDownloadBtn(true);
record.setShowUpdateBtn(true);
}
if ("审批通过".equals(record.getState())) {
if ("已办结".equals(record.getState())) {
record.setShowUploadBtn(true);
}
}
@ -250,13 +262,18 @@ public class ScmVehicleGressionService extends MybatisBaseService<ScmVehicleGres
@Transactional(rollbackFor = Exception.class)
public ResultBean saveCarTransferInfo(AppScmVehicleGressionDto dto) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(dto.getVinNo())) {
return rb.setMsg("请选择车架号!");
}
String s1 = "";
String type = "04";
String userSid = dto.getUserSid();
String useOrgSid = sysStaffOrgFeign.getPathSidByUserSid(userSid).getData();
AppUserOrgInfoVo data = sysUserFeign.getUserOrgInfoByUserSid(userSid).getData();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
ScmVehicleGression scmVehicleGression = null;
if (StringUtils.isBlank(dto.getSid())) {
ScmVehicleGression scmVehicleGression = new ScmVehicleGression();
scmVehicleGression = new ScmVehicleGression();
BeanUtil.copyProperties(dto, scmVehicleGression, "sid");
scmVehicleGression.setHandleState("1");
scmVehicleGression.setNodeState("未提交");
@ -272,12 +289,13 @@ public class ScmVehicleGressionService extends MybatisBaseService<ScmVehicleGres
if (factoryImage.size() <= 0) {
return rb.setMsg("保单照片不能为空");
}
scmFileService.deleteByLinkSidAndType(scmVehicleGression.getSid(), type);
for (String s : factoryImage) {
if (s.contains(fileUploadComponent.getUrlPrefix())) {
s1 = s.replace(fileUploadComponent.getUrlPrefix(), "");
}
ScmFile scmFile = new ScmFile();
scmFile.setAttachType("04");
scmFile.setAttachType(type);
scmFile.setFileName("保单照片");
scmFile.setFilePath(s1);
scmFile.setLinkSid(scmVehicleGression.getSid());
@ -285,14 +303,32 @@ public class ScmVehicleGressionService extends MybatisBaseService<ScmVehicleGres
}
}
} else {
ScmVehicleGression scmVehicleGression = fetchBySid(dto.getSid());
scmVehicleGression = fetchBySid(dto.getSid());
if (scmVehicleGression == null) {
return rb.setMsg("该数据不存在");
}
BeanUtil.copyProperties(dto, scmVehicleGression, "sid");
updateById(scmVehicleGression);
if ("1".equals(dto.getInsuranceStateKey())) { // 如果保单状态为否 不保存保单照片
List<String> factoryImage = dto.getPolicyImage();
if (factoryImage.size() <= 0) {
return rb.setMsg("保单照片不能为空");
}
scmFileService.deleteByLinkSidAndType(scmVehicleGression.getSid(), type);
for (String s : factoryImage) {
if (s.contains(fileUploadComponent.getUrlPrefix())) {
s1 = s.replace(fileUploadComponent.getUrlPrefix(), "");
}
ScmFile scmFile = new ScmFile();
scmFile.setAttachType(type);
scmFile.setFileName("保单照片");
scmFile.setFilePath(s1);
scmFile.setLinkSid(scmVehicleGression.getSid());
scmFileService.save(scmFile);
}
}
}
return rb.success().setMsg("保存成功");
return rb.success().setData(scmVehicleGression.getSid()).setMsg("保存成功");
}
/**
@ -303,7 +339,9 @@ public class ScmVehicleGressionService extends MybatisBaseService<ScmVehicleGres
*/
public AppScmVehicleGressionInfoVo getCarTransferInfo(String sid, String userSid) {
String type1 = "04"; //保单照片
String type2 = "05"; //现场照片
List<String> policyImage = new ArrayList<>();
List<String> image = new ArrayList<>();
String useOrgSid = sysStaffOrgFeign.getPathSidByUserSid(userSid).getData();
AppUserOrgInfoVo data = sysUserFeign.getUserOrgInfoByUserSid(userSid).getData();
SysStaffinfoVo data1 = sysUserFeign.getSysUserByMobile(data.getStaffSid()).getData();
@ -318,6 +356,11 @@ public class ScmVehicleGressionService extends MybatisBaseService<ScmVehicleGres
policyImage.add(fileUploadComponent.getUrlPrefix() + scmFile.getFilePath());
}
vo.setPolicyImage(policyImage);
List<ScmFile> scmFiles2 = scmFileService.selectByLinkSid(sid, type2);
for (ScmFile scmFile : scmFiles2) {
policyImage.add(fileUploadComponent.getUrlPrefix() + scmFile.getFilePath());
}
vo.setImage(image);
return vo;
}
@ -439,4 +482,300 @@ public class ScmVehicleGressionService extends MybatisBaseService<ScmVehicleGres
return baseMapper.selectCountByOrgSid(billsType, date, orgSid);
}
/**
* 提交
*
* @param dto
* @return
*/
public ResultBean submitCarTransfer(SubmitCarTransferDto dto) {
ResultBean rb = ResultBean.fireFail();
//根据用户sid获取staffSid
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid());
if (!userVoResultBean.getSuccess()) {
return rb.setMsg(userVoResultBean.getMsg());
}
//根据staffSid获取用户的组织全路径
ResultBean<SysStaffOrg> staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(userVoResultBean.getData().getStaffSid());
if (!staffOrgResultBean.getSuccess()) {
return rb.setMsg(staffOrgResultBean.getMsg());
}
//用户的组织全路径
String orgSidPath = staffOrgResultBean.getData().getOrgSidPath();
ScmVehicleGression scmVehicleGression = fetchBySid(dto.getSid());
int r = submitBusinessData(dto, scmVehicleGression);
if (r == 3) {
return rb.setMsg("该申请不存在");
}
if (r == 0) {
return rb.setMsg("操作失败!提交的数据不一致");
}
//新增修改保存
ResultBean<String> resultBean = saveCarTransferInfo(dto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
String businessSid = resultBean.getData();
//创建BusinessVariables实体对象
BusinessVariables bv = new BusinessVariables();
//流程中的参数赋值
Map<String, Object> variables = BeanUtil.beanToMap(dto);
//若有网关,则赋值网关中判断的字段。
variables.put("businessSid", businessSid);
//用户的部门全路径sid
bv.setOrgSidPath(orgSidPath);
//业务sid
bv.setBusinessSid(businessSid);
//用户sid
bv.setUserSid(dto.getUserSid());
bv.setFormVariables(variables);
//流程定义id
bv.setModelId(ProcDefEnum.SCMCARTRANSFER.getProDefId());
if (r == 1) {
ResultBean<UpdateFlowFieldVo> voResultBean = flowableFeign.startProcess(bv);
UpdateFlowFieldVo ufVo = voResultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(ufVo));
return voResultBean;
}
if (r == 2) {
// ToDo:驳回到发起人后再次提交
if (StringUtils.isBlank(dto.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
bv.setTaskId(scmVehicleGression.getTaskId());
bv.setTaskDefKey(scmVehicleGression.getNodeId());
bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交");
bv.setInstanceId(dto.getInstanceId());
return complete(bv);
}
return rb;
}
/**
* 判断提交的流程是否被允许
*
* @param dto
* @return
*/
private synchronized int submitBusinessData(SubmitCarTransferDto dto, ScmVehicleGression scmVehicleGression) {
int r = 0;
if (StringUtils.isBlank(dto.getSid())) {
r = 1;
} else {
if (scmVehicleGression != null) {
String businessTaskId = scmVehicleGression.getTaskId();
if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) {
//新提交
r = 1;
} else if (StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) {
//二次提交//只有数据一致的时候才能进行下一步
r = 2;
}
} else {
r = 3;
}
}
return r;
}
/**
* 更新流程相关的状态
*
* @param map
* @return
*/
private int updateFlowFiled(Map<String, Object> map) {
return baseMapper.updateFlowFiled(map);
}
/**
* 办理
*
* @param bv
* @return
*/
public ResultBean complete(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
ScmVehicleGression scmVehicleGression = fetchBySid(bv.getBusinessSid());
if (bv.getTaskId().equals(scmVehicleGression.getTaskId())) {
boolean isTrue = false;
if (StringUtils.isNotBlank(scmVehicleGression.getApplicantFunds())) {
if ("0".equals(scmVehicleGression.getApplicantFunds())) {
isTrue = false;
} else {
isTrue = true;
}
} else {
isTrue = false;
}
Map<String, Object> map = new HashMap<>();
map.put("isTrue", isTrue);
bv.setFormVariables(map);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
}
}
/**
* 获取上一环节
*
* @param query
* @return
*/
public ResultBean<List<GetNodeVo>> getPreviousNodesForReject(GetNodeQuery query) {
ResultBean<List<GetNodeVo>> rb = new ResultBean<>();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId(ProcDefEnum.SCMCARTRANSFER.getProDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<GetNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
/**
* 获取下一环节
*
* @param query
* @return
*/
public ResultBean<List<GetNodeVo>> getNextNodesForSubmit(GetNodeQuery query) {
ResultBean<List<GetNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId(ProcDefEnum.SCMCARTRANSFER.getProDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<GetNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
/**
* 驳回任务
*
* @param query
* @return
*/
public ResultBean taskReject(ScmCarTransferTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
ScmVehicleGression scmVehicleGression = fetchBySid(query.getBusinessSid());
if (scmVehicleGression == null) {
return rb.setMsg("该申请不存在");
}
String businessTaskId = scmVehicleGression.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
//更新业务中的流程相关的参数
updateFlowFiled(map);
return rb.success();
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
/**
* 撤回
*
* @param query
* @return
*/
public ResultBean revokeProcess(ScmCarTransferTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
//根据业务sid查询移库申请
ScmVehicleGression scmVehicleGression = fetchBySid(query.getBusinessSid());
String businessTaskId = scmVehicleGression.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.revokeProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
return rb.success().setData(resultBean.getData());
}
}
return rb.setMsg("操作失败,提交的数据不一致!");
}
/**
* 终止流程
*
* @param query
* @return
*/
public ResultBean breakProcess(ScmCarTransferTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
ScmVehicleGression scmVehicleGression = fetchBySid(query.getBusinessSid());
String businessTaskId = scmVehicleGression.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
return rb.success().setData(resultBean.getData());
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
/**
* PC端-删除车辆移库申请
*
* @param sids
* @return
*/
@Transactional(rollbackFor = Exception.class)
public ResultBean deleteBySids(String[] sids) {
ResultBean rb = ResultBean.fireFail();
String type = "04";
String type1 = "05";
List<String> sidsList = Arrays.asList(sids);
if (sidsList.size() == 0) {
return rb.setMsg("请选择要删除的数据");
}
for (int i = 0; i < sidsList.size(); i++) {
String sid = sidsList.get(i);
ScmVehicleGression scmVehicleGression = fetchBySid(sid);
if ("未提交".equals(scmVehicleGression.getNodeState())) {
deleteBySid(sid);
scmFileService.deleteByLinkSidAndType(sid, type);
scmFileService.deleteByLinkSidAndType(sid, type1);
} else {
return rb.setMsg("已在审核中!");
}
}
return rb.success().setMsg("删除成功");
}
}
Loading…
Cancel
Save