From c54e50b36effaf9b872e47eb90a327ed8c32310a Mon Sep 17 00:00:00 2001 From: dimengzhe <251008545@qq.com> Date: Fri, 8 Apr 2022 09:32:36 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=87=E8=B4=AD=E9=80=80=E5=BA=93=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=E5=8F=8A=E8=B0=83=E7=94=A8flowable=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ScmVehicleReturnFeign.java | 5 + .../scmvehiclereturn/ScmVehicleReturnVo.java | 10 +- anrui-scm/anrui-scm-biz/pom.xml | 5 + .../yxt/anrui/scm/AnruiScmApplication.java | 2 +- .../ScmVehicleReturnMapper.java | 18 +++ .../ScmVehicleReturnMapper.xml | 18 +++ .../ScmVehicleReturnRest.java | 9 +- .../ScmVehicleReturnService.java | 118 ++++++++++++++++++ 8 files changed, 181 insertions(+), 4 deletions(-) diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnFeign.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnFeign.java index c0be9edb94..d4826ece84 100644 --- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnFeign.java +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnFeign.java @@ -30,4 +30,9 @@ public interface ScmVehicleReturnFeign { @PostMapping("/saveOrUpdate") @ResponseBody ResultBean saveOrUpdate(@RequestBody ScmVehicleReturnDto scmVehicleReturnDto); + + @ApiOperation("提交") + @PostMapping("/submitVehicleReturn") + @ResponseBody + ResultBean submitVehicleReturn(@RequestBody ScmVehicleReturnDto scmVehicleReturnDto); } diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnVo.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnVo.java index feed0ad8c8..6ccd375e3d 100644 --- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnVo.java +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnVo.java @@ -14,8 +14,8 @@ public class ScmVehicleReturnVo implements Vo { private static final long serialVersionUID = 115347131385810982L; @ApiModelProperty(value = "sid") private String sid; - @ApiModelProperty(value = "状态") - private String state; + @ApiModelProperty(value = "节点状态") + private String nodeState; @ApiModelProperty(value = "申请编号") private String applicationCode; @ApiModelProperty(value = "申请人") @@ -25,4 +25,10 @@ public class ScmVehicleReturnVo implements Vo { @ApiModelProperty(value = "退库原因") private String reason; + @ApiModelProperty(value = "台数") + private Integer num; + + @ApiModelProperty(value = "流程状态") + private Integer flowState; + } diff --git a/anrui-scm/anrui-scm-biz/pom.xml b/anrui-scm/anrui-scm-biz/pom.xml index ad26ff5d47..fcef21a4c8 100644 --- a/anrui-scm/anrui-scm-biz/pom.xml +++ b/anrui-scm/anrui-scm-biz/pom.xml @@ -60,6 +60,11 @@ 0.0.1 compile + + anrui-flowable-api + com.yxt.anrui + 0.0.1 + diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/AnruiScmApplication.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/AnruiScmApplication.java index 839ff488a0..cd3787d0bc 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/AnruiScmApplication.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/AnruiScmApplication.java @@ -48,7 +48,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; "com.yxt.common.base.config", "com.yxt.anrui.scm" }) -@EnableFeignClients(basePackages = {"com.yxt.anrui.buscenter", "com.yxt.anrui.portal"}) +@EnableFeignClients(basePackages = {"com.yxt.anrui.buscenter", "com.yxt.anrui.portal","com.yxt.anrui.flowable"}) public class AnruiScmApplication { public static void main(String[] args) { diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnMapper.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnMapper.java index 6ec1b96a17..9532932994 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnMapper.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnMapper.java @@ -1,8 +1,13 @@ package com.yxt.anrui.scm.biz.scmvehiclereturn; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; import com.yxt.anrui.scm.api.scmvehiclereturn.ScmVehicleReturn; +import com.yxt.anrui.scm.api.scmvehiclereturn.ScmVehicleReturnVo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * @Author dimengzhe @@ -11,4 +16,17 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface ScmVehicleReturnMapper extends BaseMapper { + /** + * 分页列表 + * + * @param page 分页 + * @param qw 查询条件 + * @return + */ + IPage pagerList(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + void modifyFlowState(@Param("businessSid") String businessSid, @Param("procDefId") String procDefId, @Param("nodeState") String nodeState, + @Param("procInstSid") String procInstSid, @Param("nodeSid") String nodeSid); + + } diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnMapper.xml b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnMapper.xml index 19e4d5baff..747dfa0b5a 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnMapper.xml +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnMapper.xml @@ -1,4 +1,22 @@ + + + + update scm_vehicle_return + set procDefId=#{procDefId}, + nodeState=#{nodeState}, + procInstSid=#{procInstSid}, + nodeSid=#{nodeSid} + where sid = #{businessSid} + \ No newline at end of file diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnRest.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnRest.java index b7805ec963..909c5db026 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnRest.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnRest.java @@ -21,11 +21,18 @@ public class ScmVehicleReturnRest implements ScmVehicleReturnFeign { @Override public ResultBean> listPage(PagerQuery pagerQuery) { - return null; + ResultBean> rb = ResultBean.fireFail(); + PagerVo pv = scmVehicleReturnService.listPage(pagerQuery); + return rb.success().setData(pv); } @Override public ResultBean saveOrUpdate(ScmVehicleReturnDto scmVehicleReturnDto) { return scmVehicleReturnService.saveOrUpdateVehicleReturn(scmVehicleReturnDto); } + + @Override + public ResultBean submitVehicleReturn(ScmVehicleReturnDto scmVehicleReturnDto) { + return scmVehicleReturnService.submitVehicleReturn(scmVehicleReturnDto); + } } diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnService.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnService.java index b0de13ee61..ce12a262c7 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnService.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnService.java @@ -1,18 +1,33 @@ package com.yxt.anrui.scm.biz.scmvehiclereturn; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.anrui.flowable.api.flow.FlowableFeign; +import com.yxt.anrui.flowable.api.sysformlink.SysFormLinkFeign; +import com.yxt.anrui.flowable.api.sysformlink.SysFormStateVo; +import com.yxt.anrui.flowable.api.utils.procDefEnum; +import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; +import com.yxt.anrui.portal.api.sysuser.SysUserFeign; import com.yxt.anrui.scm.api.scmvehiclereturn.ScmVehicleReturn; import com.yxt.anrui.scm.api.scmvehiclereturn.ScmVehicleReturnDto; +import com.yxt.anrui.scm.api.scmvehiclereturn.ScmVehicleReturnQuery; +import com.yxt.anrui.scm.api.scmvehiclereturn.ScmVehicleReturnVo; import com.yxt.anrui.scm.api.scmvehiclereturndetails.ScmVehicleReturnDetails; import com.yxt.anrui.scm.biz.scmvehiclereturndetails.ScmVehicleReturnDetailsService; import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.base.utils.PagerUtil; import com.yxt.common.base.utils.StringUtils; +import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @Author dimengzhe @@ -24,6 +39,14 @@ public class ScmVehicleReturnService extends MybatisBaseService listPage(PagerQuery pagerQuery) { + IPage page = pagerList(pagerQuery); + PagerVo pv = new PagerVo<>(); + PagerVo pv1 = PagerUtil.pageToVo(page, pv); + List voList = pv1.getRecords(); + if (voList.size() > 0) { + for (int i = 0; i < voList.size(); i++) { + ResultBean resultBean = sysFormLinkFeign.selectStateByBusinessSid(voList.get(i).getSid()); + if (resultBean.getSuccess() && resultBean.getData() != null) { + SysFormStateVo formState = resultBean.getData(); + voList.get(i).setNodeState(formState.getNodeState()); + voList.get(i).setFlowState(formState.getFlowState()); + } else { + voList.get(i).setFlowState(0); + } + } + } + return pv1; + } + + private IPage pagerList(PagerQuery pagerQuery) { + IPage page = PagerUtil.queryToPage(pagerQuery); + QueryWrapper qw = buildQueryWrapper(pagerQuery.getParams()); + return baseMapper.pagerList(page, qw); + } + + private QueryWrapper buildQueryWrapper(ScmVehicleReturnQuery params) { + QueryWrapper qw = new QueryWrapper<>(); + if (params != null) { + //申请日期 + //状态 + } + return qw; + } + + public ResultBean submitVehicleReturn(ScmVehicleReturnDto scmVehicleReturnDto) { + ResultBean rb = ResultBean.fireFail(); + String orgSid = checkUserOrg(scmVehicleReturnDto.getUserSid()); + ResultBean resultBean = saveOrUpdateVehicleReturn(scmVehicleReturnDto); + if (resultBean.getSuccess()) { + String businessSid = resultBean.getData().toString(); + Map variables = new HashMap<>(); + variables.put("businessSid", businessSid); + variables.put("isLoan", true); + variables.put("orgSid", orgSid);//部门sid + ResultBean businessResultBean = flowableFeign.businessStart(procDefEnum.ORDERDEPOSITAPPROVE.getProDefId(), scmVehicleReturnDto.getUserSid(), variables); + if (resultBean.getSuccess() && resultBean.getData() != null) { + Map map = (Map) resultBean.getData(); + //更新退库业务表中的流程状态 + modifyFlowState(businessSid, + procDefEnum.ORDERDEPOSITAPPROVE.getProDefId(),//procDefId + map.get("nodeState"),//state + map.get("procInsId"),//procInstSid + map.get("taskDefKey")//nodeSid + ); + } + } else { + return rb.setMsg("失败"); + } + + return resultBean; + } + + /** + * 查询用户是否设置了部门 + * + * @param userSid 用户sid + * @return + */ + private String checkUserOrg(String userSid) { + String orgSid = ""; + String staffSid = sysUserFeign.selectBySid(userSid).getData().getStaffSid(); + ResultBean resultBean = sysStaffOrgFeign.getSysStaffOrgSidListByStaffSid(staffSid); + if (resultBean.getSuccess()) { + orgSid = resultBean.getData(); + } + return orgSid; + } + + private void modifyFlowState(String businessSid, String proDefId, String nodeState, + String procInsId, + String taskDefKey) { + baseMapper.modifyFlowState(businessSid, + proDefId,//procDefId + nodeState,//state + procInsId,//procInstSid + taskDefKey); + } }