|
|
@ -2,13 +2,16 @@ package com.yxt.anrui.scm.biz.scmvehiclereturn; |
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil; |
|
|
|
import cn.hutool.core.date.DateUtil; |
|
|
|
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.baseinternalpurchase.BaseInternalPurchase; |
|
|
|
import com.yxt.anrui.base.api.basemanufacturerretware.BaseManufacturerRetwareDto; |
|
|
|
import com.yxt.anrui.base.api.basemanufacturerretware.BaseManufacturerRetwareFeign; |
|
|
|
import com.yxt.anrui.base.api.basemanufacturerretwareveh.BaseManufacturerRetwareVehDto; |
|
|
|
import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign; |
|
|
|
import com.yxt.anrui.base.api.basevehicle.BaseVehicleUpdateQuery; |
|
|
|
import com.yxt.anrui.base.api.busvehicleapply.flow.GetNodeVo; |
|
|
|
import com.yxt.anrui.base.common.enums.BillTypeEnum; |
|
|
|
import com.yxt.anrui.base.common.utils.Rule; |
|
|
|
import com.yxt.anrui.base.common.utils.domain.BillNo; |
|
|
@ -25,11 +28,9 @@ import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; |
|
|
|
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; |
|
|
|
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg; |
|
|
|
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.SysUser; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.SysUserFeign; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.SysUserInfoVo; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.SysUserVo; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.*; |
|
|
|
import com.yxt.anrui.scm.api.scmvehiclereturn.*; |
|
|
|
import com.yxt.anrui.scm.api.scmvehiclereturn.flow.GetNodeQuery; |
|
|
|
import com.yxt.anrui.scm.api.scmvehiclereturndetails.ScmVehicleReturnDetails; |
|
|
|
import com.yxt.anrui.scm.api.scmvehiclereturndetails.ScmVehicleReturnDetailsDto; |
|
|
|
import com.yxt.anrui.scm.api.scmvehiclereturndetails.ScmVehicleReturnDetailssVo; |
|
|
@ -49,10 +50,8 @@ import org.springframework.transaction.annotation.Transactional; |
|
|
|
import javax.validation.constraints.NotBlank; |
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.text.SimpleDateFormat; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.HashMap; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.*; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
/** |
|
|
|
* @Author dimengzhe |
|
|
@ -102,7 +101,7 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn |
|
|
|
String money = scmVehicleReturnDto.getMoney(); |
|
|
|
BigDecimal mo = new BigDecimal(money); |
|
|
|
scmVehicleReturn.setMoney(mo); |
|
|
|
scmVehicleReturn.setCreateBySid(scmVehicleReturnDto.getUserSid()); |
|
|
|
scmVehicleReturn.setCreateBySid(scmVehicleReturnDto.getCreateBySid()); |
|
|
|
scmVehicleReturn.setApplicationName(scmVehicleReturnDto.getName()); |
|
|
|
boolean isSave = save(scmVehicleReturn); |
|
|
|
if (!isSave) { |
|
|
@ -178,7 +177,6 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn |
|
|
|
if (StringUtils.isNotBlank(params.getUserSid())) { |
|
|
|
qw.eq("sr.createBySid", params.getUserSid()); |
|
|
|
} |
|
|
|
qw.eq("sr.createOrgSid",params.getCreateOrgSid()); |
|
|
|
} |
|
|
|
IPage<ScmVehicleReturnVo> pagging = baseMapper.pagerList(page, qw); |
|
|
|
PagerVo<ScmVehicleReturnVo> p = PagerUtil.pageToVo(pagging, null); |
|
|
@ -193,7 +191,7 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn |
|
|
|
} |
|
|
|
Map<String, Object> variables = BeanUtil.beanToMap(scmVehicleReturnDto); |
|
|
|
variables.put("isLoan", new BigDecimal(scmVehicleReturnDto.getMoney()).compareTo(new BigDecimal("0")) > 0); |
|
|
|
ResultBean<SysUserInfoVo> sysUserInfoVoResultBean = sysUserFeign.selectUserInfoByUserSid(scmVehicleReturnDto.getUserSid()); |
|
|
|
ResultBean<SysUserInfoVo> sysUserInfoVoResultBean = sysUserFeign.selectUserInfoByUserSid(scmVehicleReturnDto.getCreateBySid()); |
|
|
|
//取组织架构的全路径sid
|
|
|
|
SysStaffOrg sysStaffOrg = sysStaffOrgFeign.getOrgByStaffSid(sysUserInfoVoResultBean.getData().getStaffSid()).getData(); |
|
|
|
String orgSidPath = sysStaffOrg.getOrgSidPath(); |
|
|
@ -205,6 +203,7 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn |
|
|
|
/* if (scmVehicleReturnDto.getDetailsList().size() == 0) { |
|
|
|
return rb.setMsg("请选择需要退库的车辆"); |
|
|
|
}*/ |
|
|
|
scmVehicleReturnDto.setBusinessSid(scmVehicleReturnDto.getSid()); |
|
|
|
String busSid = scmVehicleReturnDto.getBusinessSid(); |
|
|
|
if (org.apache.commons.lang3.StringUtils.isBlank(busSid)) { |
|
|
|
ResultBean resultBean = saveOrUpdateVehicleReturn(scmVehicleReturnDto); |
|
|
@ -213,7 +212,7 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn |
|
|
|
BeanUtil.copyProperties(scmVehicleReturnDto, bv); |
|
|
|
bv.setOrgSidPath(orgSidPath); |
|
|
|
bv.setBusinessSid(businessSid); |
|
|
|
bv.setUserSid(scmVehicleReturnDto.getUserSid()); |
|
|
|
bv.setUserSid(scmVehicleReturnDto.getCreateBySid()); |
|
|
|
variables.put("businessSid", businessSid); |
|
|
|
bv.setFormVariables(variables); |
|
|
|
bv.setModelId(ProcDefEnum.SCMVEHICLERETURN.getProDefId()); |
|
|
@ -247,7 +246,7 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn |
|
|
|
BeanUtil.copyProperties(dto, bv); |
|
|
|
bv.setOrgSidPath(orgSidPath); |
|
|
|
bv.setBusinessSid(businessSid); |
|
|
|
bv.setUserSid(dto.getUserSid()); |
|
|
|
bv.setUserSid(dto.getCreateBySid()); |
|
|
|
variables.put("businessSid", businessSid); |
|
|
|
bv.setFormVariables(variables); |
|
|
|
bv.setModelId(ProcDefEnum.SCMVEHICLERETURN.getProDefId()); |
|
|
@ -320,7 +319,7 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn |
|
|
|
BaseManufacturerRetwareDto brd=new BaseManufacturerRetwareDto(); |
|
|
|
brd.setSource("采购退库"); // 来源
|
|
|
|
brd.setOperatorName(booad.getName()); // 操作人姓名
|
|
|
|
brd.setCreateBySid(booad.getUserSid()); |
|
|
|
brd.setCreateBySid(booad.getCreateBySid()); |
|
|
|
brd.setApplyName(booad.getName()); // 申请人姓名
|
|
|
|
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); |
|
|
|
brd.setAppluDate(sdf.format(booad.getCreateTime())); // 申请日期
|
|
|
@ -344,6 +343,41 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean companyToDivisionOperate(BusinessVariables bv) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
ScmVehicleReturn scmVehicleReturn = fetchBySid(bv.getBusinessSid()); |
|
|
|
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()); |
|
|
|
List<String> candidateGroups = voList.get(0).getCandidateGroups(); |
|
|
|
UserQuery userQuery = new UserQuery(); |
|
|
|
userQuery.setRoleSid(candidateGroups.get(0)); |
|
|
|
userQuery.setOrgSidPath(""); |
|
|
|
List<SysUserVo> sysUserVos = sysUserFeign.getUserByRole(userQuery).getData(); |
|
|
|
StringBuilder nextNodeUserSids = new StringBuilder(); |
|
|
|
if (sysUserVos.size() > 0) { |
|
|
|
for (SysUserVo sysUserVo : sysUserVos) { |
|
|
|
String sid = sysUserVo.getSid(); |
|
|
|
nextNodeUserSids.append(sid).append(","); |
|
|
|
} |
|
|
|
} |
|
|
|
if (org.apache.commons.lang3.StringUtils.isBlank(nextNodeUserSids)) { |
|
|
|
return rb.setMsg("下一环节暂无操作人员"); |
|
|
|
} |
|
|
|
String substring = nextNodeUserSids.substring(0, nextNodeUserSids.lastIndexOf(",")); |
|
|
|
bv.setNextNodeUserSids(substring); |
|
|
|
if (bv.getTaskId().equals(scmVehicleReturn.getTaskId())) { |
|
|
|
ResultBean<UpdateFlowFieldVo> resultBean1 = flowableFeign.handleProsess(bv); |
|
|
|
if (!resultBean1.getSuccess()) { |
|
|
|
return rb.setMsg(resultBean1.getMsg()); |
|
|
|
} |
|
|
|
updateFlowFiled(BeanUtil.beanToMap(resultBean1.getData())); |
|
|
|
return rb.success().setData(resultBean1.getData()); |
|
|
|
} else { |
|
|
|
return rb.setMsg("操作失败!提交的数据不一致"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 更新流程相关的状态 |
|
|
@ -509,7 +543,7 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn |
|
|
|
} |
|
|
|
|
|
|
|
public String getApplyCode(ScmVehicleReturnDto dto) { |
|
|
|
String userSid = dto.getUserSid(); |
|
|
|
String userSid = dto.getCreateBySid(); |
|
|
|
//获取分公司sid
|
|
|
|
ResultBean<String> resultBean = sysStaffOrgFeign.getPathSidByUserSid(userSid); |
|
|
|
ResultBean<SysOrganizationVo> resultBean1 = sysOrganizationFeign.fetchBySid(resultBean.getData()); |
|
|
@ -540,23 +574,24 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn |
|
|
|
return rb.success().setMsg("删除成功"); |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean getNextNodesForSubmit(ScmVehicleReturnDto scmVehicleReturnDto) { |
|
|
|
public ResultBean getNextNodesForSubmit(GetNodeQuery query) { |
|
|
|
BusinessVariables bv = new BusinessVariables(); |
|
|
|
bv.setModelId(ProcDefEnum.SCMVEHICLERETURN.getProDefId()); |
|
|
|
bv.setTaskDefKey(scmVehicleReturnDto.getTaskDefKey()); |
|
|
|
bv.setFormVariables(BeanUtil.beanToMap(scmVehicleReturnDto)); |
|
|
|
bv.getFormVariables().put("isLoan", new BigDecimal(scmVehicleReturnDto.getMoney()).compareTo(new BigDecimal("0")) > 0); |
|
|
|
bv.setTaskDefKey(query.getTaskDefKey()); |
|
|
|
bv.setFormVariables(BeanUtil.beanToMap(query)); |
|
|
|
String money = query.getFormVariables().get("money").toString(); |
|
|
|
bv.getFormVariables().put("isLoan", new BigDecimal(money).compareTo(new BigDecimal("0")) > 0); |
|
|
|
ResultBean processCirculationNodesByMap = flowTaskFeign.getNextNodesForSubmit(bv); |
|
|
|
processCirculationNodesByMap.setCode("200"); |
|
|
|
processCirculationNodesByMap.setSuccess(true); |
|
|
|
return processCirculationNodesByMap; |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean getPreviousNodesForReject(ScmVehicleReturnFlowDto dto) { |
|
|
|
public ResultBean getPreviousNodesForReject(GetNodeQuery query) { |
|
|
|
BusinessVariables bv = new BusinessVariables(); |
|
|
|
bv.setTaskDefKey(dto.getTaskDefKey()); |
|
|
|
bv.setTaskDefKey(query.getTaskDefKey()); |
|
|
|
bv.setModelId(ProcDefEnum.SCMVEHICLERETURN.getProDefId()); |
|
|
|
bv.setFormVariables(BeanUtil.beanToMap(dto)); |
|
|
|
bv.setFormVariables(BeanUtil.beanToMap(query)); |
|
|
|
ResultBean processCirculationNodesByMap = flowTaskFeign.getPreviousNodesForReject(bv); |
|
|
|
processCirculationNodesByMap.setCode("200"); |
|
|
|
processCirculationNodesByMap.setSuccess(true); |
|
|
|