Browse Source

Merge remote-tracking branch 'origin/master'

zhanglei
yunuo970428 3 years ago
parent
commit
4d2bd5a91e
  1. 58
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseoutsourcingapplication/AppBaseOutsourcingApplicationVo.java
  2. 14
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseoutsourcingapplication/BaseOutsourcingApplicationFeign.java
  3. 5
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseoutsourcingapplication/BaseOutsourcingApplicationFeignFallback.java
  4. 7
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationMapper.java
  5. 25
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationMapper.xml
  6. 9
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationRest.java
  7. 138
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationService.java
  8. 78
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java
  9. 6
      anrui-buscenter/anrui-buscenter-biz/pom.xml
  10. 2
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/BusCenterApplication.java
  11. 86
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busmaindeposit/BusMainDepositService.java
  12. 80
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java
  13. 5
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/bdmaterial/BdMaterial.java
  14. 70
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/saloutstock/SalOutStock.java
  15. 27
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/stkinstock/StkInStock.java
  16. 8
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/saloutstock/data_FEntity.json
  17. 8
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/saloutstock/data_model.json
  18. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/data_FInStockEntry.json
  19. 2
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/data_model.json
  20. 6
      anrui-scm/anrui-scm-biz/pom.xml
  21. 2
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/AnruiScmApplication.java
  22. 76
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclegression/ScmVehicleGressionService.java
  23. 60
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/externalPurchase/ExternalPurchaseFeign.java
  24. 12
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/externalPurchase/ExternalPurchaseFeignFallback.java
  25. 72
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/externalPurchase/ExternalPurchaseVo.java
  26. 37
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/externalPurchase/flowable/ExternalPurchaseDto.java
  27. 25
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/externalPurchase/flowable/ExternalPurchaseQuery.java
  28. 47
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/externalPurchase/flowable/ExternalPurchaseTaskQuery.java
  29. 57
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/supplychain/externalPurchase/ExternalPurchaseRest.java
  30. 138
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/supplychain/externalPurchase/ExternalPurchaseService.java

58
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseoutsourcingapplication/AppBaseOutsourcingApplicationVo.java

@ -0,0 +1,58 @@
package com.yxt.anrui.base.api.baseoutsourcingapplication;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2022/8/20 15:52
* @Description
*/
@Data
public class AppBaseOutsourcingApplicationVo implements Vo {
private static final long serialVersionUID = 1950958789507880775L;
private String sid;
private String userSid;
private String taskId;
private String procInsId;
@ApiModelProperty("分公司名称")
private String useOrgName;
@ApiModelProperty("申请人")
private String createByName;
@ApiModelProperty("申请时间")
private String applicationDate;
@ApiModelProperty("车型")
private String modelName;
@ApiModelProperty("销售指导价")
private String guidedPrice;
@ApiModelProperty("厂家合同价")
private String manufactorSettlementPrice;
@ApiModelProperty("内部编码")
private String insideCode;
@ApiModelProperty("采购单位名称")
private String purchasingUnitName;
@ApiModelProperty("开户银行")
private String depositBankName;
@ApiModelProperty("银行账号")
private String bankAccount;
@ApiModelProperty("采购价格")
private String purchasePrice;
@ApiModelProperty("台数")
private String num;
@ApiModelProperty("订金")
private String deposit;
@ApiModelProperty("其他费用")
private String expenseName;
@ApiModelProperty("费用合计")
private String totalExpenseAmount;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("图片list")
private List<String> images;
}

14
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseoutsourcingapplication/BaseOutsourcingApplicationFeign.java

@ -25,21 +25,18 @@
*********************************************************/
package com.yxt.anrui.base.api.baseoutsourcingapplication;
import com.yxt.anrui.base.api.basevehicle.BaseVehicle;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleVo;
import com.yxt.anrui.base.api.flow.FlowTaskVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
import java.util.Map;
/**
* Project: anrui-base(外采管理) <br/>
@ -69,7 +66,7 @@ public interface BaseOutsourcingApplicationFeign {
@ApiOperation("新增修改保存")
@PostMapping("/saveOrUpdate")
public ResultBean saveOrUpdate(@RequestBody BaseOutsourcingApplicationDto dto);
@ApiOperation("根据sid批量删除")
@PostMapping("/delBySids")
public ResultBean delBySids(@RequestBody String[] sids);
@ -139,4 +136,9 @@ public interface BaseOutsourcingApplicationFeign {
@ApiParam(value = "角色sid")@RequestParam("roleSid") String roleSid);
//-------------------------App---------------------------------------------------------
@ApiOperation(value = "移动端外采申请详情" )
@GetMapping(value = "/getExternalPurchase/{sid}")
ResultBean<AppBaseOutsourcingApplicationVo> getExternalPurchase(@PathVariable("sid")String sid);
}

5
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseoutsourcingapplication/BaseOutsourcingApplicationFeignFallback.java

@ -123,6 +123,11 @@ public class BaseOutsourcingApplicationFeignFallback implements BaseOutsourcingA
return null;
}
@Override
public ResultBean<AppBaseOutsourcingApplicationVo> getExternalPurchase(String sid) {
return null;
}
@Override
public ResultBean getProcessCirculationNodesByMap(BaseOutsourcingApplicationDto dto) {
return null;

7
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationMapper.java

@ -29,13 +29,10 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.base.api.baseoutsourcingapplication.BaseOutsourcingApplicationDetailsVo;
import com.yxt.anrui.base.api.baseoutsourcingapplication.BaseOutsourcingApplicationDto;
import com.yxt.anrui.base.api.baseoutsourcingapplication.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.yxt.anrui.base.api.baseoutsourcingapplication.BaseOutsourcingApplication;
import com.yxt.anrui.base.api.baseoutsourcingapplication.BaseOutsourcingApplicationVo;
import java.util.List;
import java.util.Map;
@ -70,4 +67,6 @@ public interface BaseOutsourcingApplicationMapper extends BaseMapper<BaseOutsour
BaseOutsourcingApplicationDto getBySid(String businessSid);
int selectNum(String bill);
AppBaseOutsourcingApplicationVo getExternalPurchase(String sid);
}

25
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationMapper.xml

@ -41,4 +41,29 @@
WHERE applicationCode LIKE CONCAT(#{bill}, '%')
</select>
<select id="getExternalPurchase"
resultType="com.yxt.anrui.base.api.baseoutsourcingapplication.AppBaseOutsourcingApplicationVo">
select sid,
createBySid as userSid,
taskId,
procInstSid as procInsId,
useOrgName,
createByName,
applicationDate,
modelName,
guidedPrice,
manufactorSettlementPrice,
insideCode,
purchasingUnitName,
depositBankName,
bankAccount,
purchasePrice,
num,
deposit,
expenseName,
totalExpenseAmount,
remarks
from base_outsourcing_application
where sid = #{sid}
</select>
</mapper>

9
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationRest.java

@ -37,13 +37,9 @@ import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.flowable.bpmn.model.FlowElement;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
* Project: anrui-base(外采管理) <br/>
* File: BaseOutsourcingApplicationFeignFallback.java <br/>
@ -173,4 +169,9 @@ public class BaseOutsourcingApplicationRest implements BaseOutsourcingApplicatio
return baseOutsourcingApplicationService.getPreviousNodesForReject(dto);
}
@Override
public ResultBean<AppBaseOutsourcingApplicationVo> getExternalPurchase(String sid) {
return baseOutsourcingApplicationService.getExternalPurchase(sid);
}
}

138
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationService.java

@ -26,18 +26,14 @@
package com.yxt.anrui.base.biz.baseoutsourcingapplication;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.thread.ThreadUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basemanufacturerretware.BaseManufacturerRetwareDto;
import com.yxt.anrui.base.api.baseoutsourcingapplication.*;
import com.yxt.anrui.base.api.baseoutsourcingapplicationvehicle.BaseOutsourcingApplicationVehicle;
import com.yxt.anrui.base.api.baseoutsourcingapplicationvehicle.BaseOutsourcingApplicationVehicleDto;
import com.yxt.anrui.base.api.baseoutsourcingapplicationvehicle.BaseOutsourcingApplicationVehicleVo;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleDto;
import com.yxt.anrui.base.api.commonappendix.CommonAppendix;
import com.yxt.anrui.base.api.commonappendix.CommonAppendixDto;
import com.yxt.anrui.base.api.commonappendix.CommonAppendixVo;
import com.yxt.anrui.base.api.commonappendix.CommonAttachTypeEnum;
import com.yxt.anrui.base.api.flow.FlowTaskVo;
@ -50,13 +46,10 @@ import com.yxt.anrui.base.common.utils.domain.BillNo;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordDto;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordFeign;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.StartProcessDto;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign;
import com.yxt.anrui.flowable.api.sysformlink.SysFormLinkDto;
import com.yxt.anrui.flowable.api.sysformlink.SysFormLinkFeign;
import com.yxt.anrui.flowable.api.sysformlink.SysFormLinkFlowStateEnum;
import com.yxt.anrui.flowable.api.sysformlink.SysFormLinkTypeEnum;
import com.yxt.anrui.flowable.api.sysprourl.SysProUrlFeign;
import com.yxt.anrui.flowable.api.sysprourl.SysProUrlVo;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.dictcommon.DictCommonFeign;
@ -70,25 +63,27 @@ import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.portal.api.sysuser.UserQuery;
import com.yxt.anrui.portal.config.DictCommonType;
import com.yxt.anrui.scm.api.scmapplyinboundvehicle.ScmApplyInboundVehicleDto;
import com.yxt.anrui.scm.api.scmvehicleexamine.ScmEntryVehicleExamineDto;
import com.yxt.anrui.scm.api.scmvehicleexamine.ScmVehicleExamineFeign;
import com.yxt.anrui.scm.api.scmvehinspectitem.ScmVehinspectItemDto;
import com.yxt.anrui.scm.api.scmvehinspectitem.ScmVehinspectItemFeign;
import com.yxt.common.base.utils.DateUtils;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.DateUtils;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.message.MessageFeign;
import com.yxt.messagecenter.api.message.MessageFlowableDto;
import com.yxt.messagecenter.api.message.MessageJsonDto;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
* Project: anrui-base(外采管理) <br/>
@ -128,6 +123,10 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu
private ScmVehicleExamineFeign scmVehicleExamineFeign;
@Autowired
private ScmVehinspectItemFeign scmVehinspectItemFeign;
@Autowired
private SysProUrlFeign sysProUrlFeign;
@Autowired
private MessageFeign messageFeign;
private QueryWrapper<BaseOutsourcingApplication> createQueryWrapper(BaseOutsourcingApplicationQuery query) {
// todo: 这里根据具体业务调整查询条件
@ -365,7 +364,13 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu
bv.setOrgSidPath(orgSidPath);
bv.setBusinessSid(businessSid);
bv.setUserSid(dto.getUserSid());
// variables.put("businessSid", businessSid);
//================添加app参数开始
//若app移动端有此功能,则传递appMap参数
Map<String, Object> appMap = new HashMap<>();
//需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。
appMap.put("sid", businessSid);
variables.put("app", appMap);
//=================添加app参数结束
bv.setFormVariables(variables);
bv.setModelId(ProcDefEnum.BASEOUTSOURCINGAPPLICATION.getProDefId());
//如果taskid从业务的数据库中查询出来,那这个taskid 和当前的关系是什么 如果数据库中查询出来的taskid是第四个环节的id,但是目前是做的第一次的提交操作。
@ -375,6 +380,11 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu
ResultBean<UpdateFlowFieldVo> resultBean1 = flowableFeign.startProcess(bv);
UpdateFlowFieldVo uff = resultBean1.getData();
updateFlowFiled(BeanUtil.beanToMap(uff));
BaseOutsourcingApplication baseOutsourcingApplication = fetchBySid(businessSid);
//======================添加消息推送开始
//极光推送
String msgSid = getMessage(uff, appMap, baseOutsourcingApplication);
//======================添加消息推送结束
return resultBean1;
}
ResultBean rb = submitBusinessData(dto, busSid, orgSidPath);
@ -391,7 +401,13 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu
bv.setOrgSidPath(orgSidPath);
bv.setBusinessSid(businessSid);
bv.setUserSid(dto.getUserSid());
// variables.put("businessSid", businessSid);
//================添加app参数开始
//若app移动端有此功能,则传递appMap参数
Map<String, Object> appMap = new HashMap<>();
//需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。
appMap.put("sid", businessSid);
variables.put("app", appMap);
//=================添加app参数结束
bv.setFormVariables(variables);
bv.setModelId(ProcDefEnum.BASEOUTSOURCINGAPPLICATION.getProDefId());
if (StringUtils.isBlank(businessTaskid) && StringUtils.isBlank(dto.getTaskId())) {
@ -400,14 +416,25 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu
ResultBean<UpdateFlowFieldVo> resultBean1 = flowableFeign.startProcess(bv);
UpdateFlowFieldVo uff = resultBean1.getData();
updateFlowFiled(BeanUtil.beanToMap(uff));
//======================添加消息推送开始
BaseOutsourcingApplication baseOutsourcingApplication = fetchBySid(businessSid);
//极光推送
String msgSid = getMessage(uff, appMap, baseOutsourcingApplication);
//======================添加消息推送结束
return resultBean1;
} else if (StringUtils.isNotBlank(businessTaskid) && businessTaskid.equals(dto.getTaskId())) {//只有数据一致的时候才能进行下一步
bv.setTaskDefKey(booad.getTaskDefKey());
bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交");
bv.setInstanceId(dto.getInstanceId());
ResultBean<UpdateFlowFieldVo> rb = flowableFeign.handleProsess(bv);
UpdateFlowFieldVo uff = rb.getData();
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(rb.getData());
updateFlowFiled(stringObjectMap);
//======================添加消息推送开始
BaseOutsourcingApplication baseOutsourcingApplication = fetchBySid(businessSid);
//极光推送
String msgSid = getMessage(uff, appMap, baseOutsourcingApplication);
//======================添加消息推送结束
return rb;
} else {
return ResultBean.fireFail().setMsg("操作失败,提交的数据不一致!");
@ -439,6 +466,11 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu
BaseOutsourcingApplication booad = fetchBySid(bv.getBusinessSid());
String businessTaskid = booad.getTaskId();
if (businessTaskid.equals(bv.getTaskId())) { //只有数据一致的时候才能进行下一步
//=================添加app相关参数
Map<String,Object> appMap = new HashMap<>();
appMap.put("sid",bv.getBusinessSid());
bv.getFormVariables().put("app",appMap);
//================添加app相关参数
ResultBean<UpdateFlowFieldVo> rb = flowableFeign.handleProsess(bv);
String taskDefKey = rb.getData().getTaskDefKey();
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(rb.getData());
@ -468,6 +500,12 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu
}
}
}
//======================添加消息推送开始
UpdateFlowFieldVo uff = rb.getData();
BaseOutsourcingApplication baseOutsourcingApplication = fetchBySid(bv.getBusinessSid());
//极光推送
String msgSid = getMessage(uff, appMap, baseOutsourcingApplication);
//======================添加消息推送结束
return rb;
} else {
return ResultBean.fireFail().setMsg("操作失败,提交的数据不一致!");
@ -597,6 +635,11 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu
String businessTaskid = booad.getTaskId();
if (businessTaskid.equals(flowTaskVo.getTaskId())) { //只有数据一致的时候才能进行下一步
BeanUtil.copyProperties(flowTaskVo, fl);
//==========添加app相关参数
Map<String,Object> appMap = new HashMap<>();
appMap.put("sid",flowTaskVo.getBusinessSid());
flowTaskVo.getValues().put("app",appMap);
//=========添加app相关参数
BaseOutsourcingApplicationDto boad = baseMapper.getBySid(flowTaskVo.getBusinessSid());
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(fl);
UpdateFlowFieldVo data = resultBean.getData();
@ -606,6 +649,11 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu
stringObjectMap.put("procDefId", boad.getProcDefId());
stringObjectMap.put("nodeState", data.getNodeState());
updateFlowFiled(stringObjectMap);
//======================添加消息推送开始
BaseOutsourcingApplication baseOutsourcingApplication = fetchBySid(flowTaskVo.getBusinessSid());
//极光推送
String msgSid = getMessage(data, appMap, baseOutsourcingApplication);
//======================添加消息推送结束
return resultBean;
} else {
return ResultBean.fireFail().setMsg("操作失败,提交的数据不一致!");
@ -686,4 +734,64 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu
processCirculationNodesByMap.setSuccess(true);
return processCirculationNodesByMap;
}
public ResultBean<AppBaseOutsourcingApplicationVo> getExternalPurchase(String sid) {
ResultBean<AppBaseOutsourcingApplicationVo> rb = ResultBean.fireFail();
AppBaseOutsourcingApplicationVo vo = baseMapper.getExternalPurchase(sid);
List<CommonAppendixVo> commonAppendixVos = commonAppendixService.selByLinkSid(sid);
List<String> stringList = new ArrayList<>();
if (commonAppendixVos != null && commonAppendixVos.size() > 0) {
stringList.add(commonAppendixVos.get(0).getFilePath());
}
vo.setImages(stringList);
return rb.success().setData(vo);
}
/**
* 消息推送
* @param ufVo
* @param appMap
* @param baseOutsourcingApplication
* @return
*/
public String getMessage(UpdateFlowFieldVo ufVo, Map<String, Object> appMap, BaseOutsourcingApplication baseOutsourcingApplication) {
//=====极光推送信息========================================参数组装
List<String> receiveSidList = Arrays.asList(ufVo.getNextNodeUserSids().split(","));
//根据用户的sid查询用户的id
ResultBean<String> stringList1 = sysUserFeign.selectIdBySid(receiveSidList);
List<String> reveiveIdList = Arrays.asList(stringList1.getData().split(","));
MessageFlowableDto messageFlowableDto = new MessageFlowableDto();
MessageJsonDto messageJsonDto = new MessageJsonDto();
BeanUtil.copyProperties(ufVo, messageJsonDto);
//查询流程审批的页面操作地址组装json的参数
//根据taskDef和移动端标识
ResultBean<SysProUrlVo> selectUrlByKey = sysProUrlFeign.selectUrlByKey(ProcDefEnum.BASEOUTSOURCINGAPPLICATION.getProDefId(), ufVo.getTaskDefKey(), "1", "2");
SysProUrlVo sysProUrlVo = selectUrlByKey.getData();
messageFlowableDto.setBusinessSid(baseOutsourcingApplication.getSid());
messageFlowableDto.setApp_type("2");
if (sysProUrlVo.getUrl().contains("#")) {
messageFlowableDto.setModuleAction(Arrays.asList(sysProUrlVo.getUrl().split("#")).get(0));
List<Integer> codesInteger = Arrays.asList(Arrays.asList(sysProUrlVo.getUrl().split("#")).get(1).split(",")).stream().map(Integer::parseInt).collect(Collectors.toList());
int[] ints = codesInteger.stream().mapToInt(Integer::valueOf).toArray();
messageJsonDto.setButtons(ints);
} else {
messageFlowableDto.setModuleAction(sysProUrlVo.getUrl());
}
messageFlowableDto.setModuleSid(Arrays.asList(sysProUrlVo.getModulePluginName().split("#")).get(0));
messageJsonDto.setTaskName(ufVo.getNodeState());
messageJsonDto.setProcInsId(ufVo.getProcInsId());
messageJsonDto.setAppMap(appMap);
messageFlowableDto.setJson(messageJsonDto);
messageFlowableDto.setList(receiveSidList);
messageFlowableDto.setReceiveIdList(reveiveIdList);
messageFlowableDto.setModuleName("外采申请");
messageFlowableDto.setMsgContent("外采申请");
messageFlowableDto.setMsgTitle("外采申请");
messageFlowableDto.setCreateName(baseOutsourcingApplication.getCreateByName());
messageFlowableDto.setTaskId(ufVo.getTaskId());
ResultBean<String> stringResultBean = messageFeign.getMessage(messageFlowableDto);
String msgSid = stringResultBean.getData();
return msgSid;
}
}

78
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java

@ -22,6 +22,8 @@ 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.sysprourl.SysProUrlFeign;
import com.yxt.anrui.flowable.api.sysprourl.SysProUrlVo;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
@ -33,6 +35,9 @@ import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.message.MessageFeign;
import com.yxt.messagecenter.api.message.MessageFlowableDto;
import com.yxt.messagecenter.api.message.MessageJsonDto;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -63,6 +68,10 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
private BaseVehicleService baseVehicleService;
@Autowired
private FlowableFeign flowableFeign;
@Autowired
private SysProUrlFeign sysProUrlFeign;
@Autowired
private MessageFeign messageFeign;
/**
* 分页列表
@ -275,6 +284,7 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
return rb.setMsg(resultBean.getMsg());
}
String businessSid = resultBean.getData();
baseVehicleActualSales = fetchBySid(businessSid);
//判断车辆的结算状态是否包含预买断的状态,如果是的话,返回提交失败
boolean isTrue = isTrue(businessSid);
if (isTrue) {
@ -308,10 +318,8 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
baseVehicle.setSettlementStatusValue(VehicleState.BuyoutEnum.PRE_BUYOUT.getRemarks());
baseVehicleService.updateVeh(baseVehicle);
}
/* String settlementStatus = VehicleState.BuyoutEnum.PRE_BUYOUT.getCode();
String settlementStatusValue = VehicleState.BuyoutEnum.PRE_BUYOUT.getRemarks();
updateByVinNo(bv.getBusinessSid(), settlementStatus, settlementStatusValue);*/
//极光推送
String msgSid = getMessage(ufVo, appMap, baseVehicleActualSales);
return voResultBean;
}
if (r == 2) {
@ -364,15 +372,19 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
BaseVehicleActualSales baseVehicleActualSales = fetchBySid(bv.getBusinessSid());
if (bv.getTaskId().equals(baseVehicleActualSales.getTaskId())) {
//判断车辆的结算状态是否包含预买断的状态,如果是的话,返回审核失败
/*boolean isTrue = isTrue(bv.getBusinessSid());
if (isTrue) {
return rb.setMsg("审核失败!该申请中包含结算状态已是预买断状态的车辆");
}*/
Map<String,Object> variables = new HashMap<>();
Map<String,Object> appMap = new HashMap<>();
appMap.put("sid",bv.getBusinessSid());
variables.put("app",appMap);
bv.setFormVariables(variables);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
//极光推送
String msgSid = getMessage(ufVo, appMap, baseVehicleActualSales);
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
@ -448,13 +460,21 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
}
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
Map<String,Object> variables = new HashMap<>();
Map<String,Object> appMap = new HashMap<>();
appMap.put("sid",query.getBusinessSid());
variables.put("app",appMap);
flowTaskVo.setValues(variables);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
//更新业务中的流程相关的参数
updateFlowFiled(map);
//极光推送
String msgSid = getMessage(ufVo, appMap, baseVehicleActualSales);
return rb.success();
}
}
@ -544,4 +564,46 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
vo.setRecords(records);
return rb.success().setData(vo);
}
public String getMessage(UpdateFlowFieldVo ufVo, Map<String, Object> appMap, BaseVehicleActualSales baseVehicleActualSales) {
//=====极光推送信息========================================参数组装
List<String> receiveSidList = Arrays.asList(ufVo.getNextNodeUserSids().split(","));
//根据用户的sid查询用户的id
ResultBean<String> stringList1 = sysUserFeign.selectIdBySid(receiveSidList);
List<String> reveiveIdList = Arrays.asList(stringList1.getData().split(","));
MessageFlowableDto messageFlowableDto = new MessageFlowableDto();
MessageJsonDto messageJsonDto = new MessageJsonDto();
BeanUtil.copyProperties(ufVo, messageJsonDto);
//查询流程审批的页面操作地址组装json的参数
//根据taskDef和移动端标识
ResultBean<SysProUrlVo> selectUrlByKey = sysProUrlFeign.selectUrlByKey(ProcDefEnum.BASEVEHICLEACTUALSALES.getProDefId(), ufVo.getTaskDefKey(), "1", "2");
SysProUrlVo sysProUrlVo = selectUrlByKey.getData();
messageFlowableDto.setBusinessSid(baseVehicleActualSales.getSid());
messageFlowableDto.setApp_type("2");
if (sysProUrlVo.getUrl().contains("#")) {
messageFlowableDto.setModuleAction(Arrays.asList(sysProUrlVo.getUrl().split("#")).get(0));
List<Integer> codesInteger = Arrays.asList(Arrays.asList(sysProUrlVo.getUrl().split("#")).get(1).split(",")).stream().map(Integer::parseInt).collect(Collectors.toList());
int[] ints = codesInteger.stream().mapToInt(Integer::valueOf).toArray();
;
messageJsonDto.setButtons(ints);
} else {
messageFlowableDto.setModuleAction(sysProUrlVo.getUrl());
}
messageFlowableDto.setModuleSid(Arrays.asList(sysProUrlVo.getModulePluginName().split("#")).get(0));
messageJsonDto.setTaskName(ufVo.getNodeState());
messageJsonDto.setProcInsId(ufVo.getProcInsId());
messageJsonDto.setAppMap(appMap);
messageFlowableDto.setJson(messageJsonDto);
messageFlowableDto.setList(receiveSidList);
messageFlowableDto.setReceiveIdList(reveiveIdList);
messageFlowableDto.setModuleName("未售买断申请");
messageFlowableDto.setMsgContent("未售买断申请");
messageFlowableDto.setMsgTitle("未售买断申请");
messageFlowableDto.setCreateName(baseVehicleActualSales.getApplicationName());
messageFlowableDto.setTaskId(ufVo.getTaskId());
ResultBean<String> stringResultBean = messageFeign.getMessage(messageFlowableDto);
String msgSid = stringResultBean.getData();
return msgSid;
}
}

6
anrui-buscenter/anrui-buscenter-biz/pom.xml

@ -8,6 +8,7 @@
<version>0.0.1</version>
<relativePath/>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>anrui-buscenter-biz</artifactId>
@ -15,6 +16,11 @@
<version>0.0.1</version>
<dependencies>
<dependency>
<groupId>com.yxt.messagecenter</groupId>
<artifactId>message-center-api</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>com.yxt</groupId>
<artifactId>yxt-common-base</artifactId>

2
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/BusCenterApplication.java

@ -14,7 +14,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
"com.yxt.anrui.buscenter"
})
@EnableDiscoveryClient
@EnableFeignClients(basePackages = {"com.yxt.anrui.portal", "com.yxt.anrui.crm", "com.yxt.anrui.base", "com.yxt.anrui.riskcenter","com.yxt.anrui.flowable"})
@EnableFeignClients(basePackages = {"com.yxt.anrui.portal", "com.yxt.anrui.crm", "com.yxt.anrui.base", "com.yxt.anrui.riskcenter","com.yxt.anrui.flowable","com.yxt.messagecenter"})
public class BusCenterApplication {
public static void main(String[] args) {

86
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busmaindeposit/BusMainDepositService.java

@ -41,7 +41,10 @@ import com.yxt.anrui.buscenter.api.busdepositcustomer.AppBusDepositCustomerListD
import com.yxt.anrui.buscenter.api.busdepositcustomer.BusDepositCustomer;
import com.yxt.anrui.buscenter.api.busdepositcustomer.BusDepositCustomerVo;
import com.yxt.anrui.buscenter.api.busdepositfictitious.BusDepositRecordsVo;
import com.yxt.anrui.buscenter.api.busdepositvehicle.*;
import com.yxt.anrui.buscenter.api.busdepositvehicle.AppBusDepositVehicleCarListDto;
import com.yxt.anrui.buscenter.api.busdepositvehicle.AppBusDepositVehicleDto;
import com.yxt.anrui.buscenter.api.busdepositvehicle.BusDepositVehListVo;
import com.yxt.anrui.buscenter.api.busdepositvehicle.BusDepositVehicle;
import com.yxt.anrui.buscenter.api.busdepositvehiclecustomer.BusDepositVehicleCustomer;
import com.yxt.anrui.buscenter.api.busdepositvehiclecustomer.BusDepositVehicleCustomerVo;
import com.yxt.anrui.buscenter.api.busmaindeposit.*;
@ -68,6 +71,8 @@ import com.yxt.anrui.flowable.api.sysformlink.SysFormLinkDto;
import com.yxt.anrui.flowable.api.sysformlink.SysFormLinkFeign;
import com.yxt.anrui.flowable.api.sysformlink.SysFormLinkTypeEnum;
import com.yxt.anrui.flowable.api.sysformlink.SysFormStateVo;
import com.yxt.anrui.flowable.api.sysprourl.SysProUrlFeign;
import com.yxt.anrui.flowable.api.sysprourl.SysProUrlVo;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.api.utils.ProcessStateEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
@ -90,13 +95,15 @@ import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.message.MessageFeign;
import com.yxt.messagecenter.api.message.MessageFlowableDto;
import com.yxt.messagecenter.api.message.MessageJsonDto;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.xml.crypto.Data;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
@ -165,6 +172,10 @@ public class BusMainDepositService extends MybatisBaseService<BusMainDepositMapp
@Autowired
BusDepositFictitiousService busDepositFictitiousService;
@Autowired
private SysProUrlFeign sysProUrlFeign;
@Autowired
private MessageFeign messageFeign;
public PagerVo<BusMainDeposit> listPage(PagerQuery<BusMainDepositQuery> pq) {
@ -1743,6 +1754,7 @@ public class BusMainDepositService extends MybatisBaseService<BusMainDepositMapp
return rb.setMsg(resultBean.getMsg());
}
String businessSid = resultBean.getData();
busMainDeposit = fetchBySid(businessSid);
//创建BusinessVariables实体对象
BusinessVariables bv = new BusinessVariables();
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
@ -1765,6 +1777,8 @@ public class BusMainDepositService extends MybatisBaseService<BusMainDepositMapp
ResultBean<UpdateFlowFieldVo> voResultBean = flowableFeign.startProcess(bv);
UpdateFlowFieldVo ufVo = voResultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(ufVo));
//极光推送
String msgSid = getMessage(ufVo, appMap, busMainDeposit);
return voResultBean;
}
if (r == 2) {
@ -1844,6 +1858,7 @@ public class BusMainDepositService extends MybatisBaseService<BusMainDepositMapp
return rb.setMsg(resultBean.getMsg());
}
String businessSid = resultBean.getData();
busMainDeposit = fetchBySid(businessSid);
//创建BusinessVariables实体对象
BusinessVariables bv = new BusinessVariables();
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
@ -1867,6 +1882,8 @@ public class BusMainDepositService extends MybatisBaseService<BusMainDepositMapp
ResultBean<UpdateFlowFieldVo> voResultBean = flowableFeign.startProcess(bv);
UpdateFlowFieldVo ufVo = voResultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(ufVo));
//极光推送
String msgSid = getMessage(ufVo, appMap, busMainDeposit);
return voResultBean;
}
if (r == 2) {
@ -1889,12 +1906,20 @@ public class BusMainDepositService extends MybatisBaseService<BusMainDepositMapp
String userSid = bv.getUserSid();
SysOrganizationVo data = sysOrganizationFeign.getUseOrgByUserSid(userSid).getData();
bv.setOrgSidPath(data.getOrgSidPath());
Map<String,Object> variables = new HashMap<>();
Map<String,Object> appMap = new HashMap<>();
appMap.put("sid",bv.getBusinessSid());
variables.put("app",appMap);
bv.setFormVariables(variables);
if (bv.getTaskId().equals(busMainDeposit.getTaskId())) {
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
//极光推送
String msgSid = getMessage(ufVo, appMap, busMainDeposit);
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
@ -1966,13 +1991,21 @@ public class BusMainDepositService extends MybatisBaseService<BusMainDepositMapp
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
Map<String,Object> variables = new HashMap<>();
Map<String,Object> appMap = new HashMap<>();
appMap.put("sid",appMap);
variables.put("app",appMap);
flowTaskVo.setValues(variables);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
//更新业务中的流程相关的参数
updateFlowFiled(map);
//极光推送
String msgSid = getMessage(ufVo, appMap, busMainDeposit);
return rb.success();
}
}
@ -2029,4 +2062,53 @@ public class BusMainDepositService extends MybatisBaseService<BusMainDepositMapp
return rb.setMsg("操作失败!提交的数据不一致!");
}
/**
* 消息推送
* @param ufVo
* @param appMap
* @param busMainDeposit
* @return
*/
public String getMessage(UpdateFlowFieldVo ufVo, Map<String, Object> appMap, BusMainDeposit busMainDeposit) {
//=====极光推送信息========================================参数组装
List<String> receiveSidList = Arrays.asList(ufVo.getNextNodeUserSids().split(","));
//根据用户的sid查询用户的id
ResultBean<String> stringList1 = sysUserFeign.selectIdBySid(receiveSidList);
List<String> reveiveIdList = Arrays.asList(stringList1.getData().split(","));
MessageFlowableDto messageFlowableDto = new MessageFlowableDto();
MessageJsonDto messageJsonDto = new MessageJsonDto();
BeanUtil.copyProperties(ufVo, messageJsonDto);
//查询流程审批的页面操作地址组装json的参数
//根据taskDef和移动端标识
ResultBean<SysProUrlVo> selectUrlByKey = sysProUrlFeign.selectUrlByKey(ProcDefEnum.VEHICLEAPPLY.getProDefId(), ufVo.getTaskDefKey(), "1", "2");
SysProUrlVo sysProUrlVo = selectUrlByKey.getData();
messageFlowableDto.setBusinessSid(busMainDeposit.getSid());
messageFlowableDto.setApp_type("2");
if (sysProUrlVo.getUrl().contains("#")) {
messageFlowableDto.setModuleAction(Arrays.asList(sysProUrlVo.getUrl().split("#")).get(0));
List<Integer> codesInteger = Arrays.asList(Arrays.asList(sysProUrlVo.getUrl().split("#")).get(1).split(",")).stream().map(Integer::parseInt).collect(Collectors.toList());
int[] ints = codesInteger.stream().mapToInt(Integer::valueOf).toArray();
;
messageJsonDto.setButtons(ints);
} else {
messageFlowableDto.setModuleAction(sysProUrlVo.getUrl());
}
messageFlowableDto.setModuleSid(Arrays.asList(sysProUrlVo.getModulePluginName().split("#")).get(0));
messageJsonDto.setTaskName(ufVo.getNodeState());
messageJsonDto.setProcInsId(ufVo.getProcInsId());
messageJsonDto.setAppMap(appMap);
messageFlowableDto.setJson(messageJsonDto);
messageFlowableDto.setList(receiveSidList);
messageFlowableDto.setReceiveIdList(reveiveIdList);
messageFlowableDto.setModuleName("简易订单申请");
messageFlowableDto.setMsgContent("简易订单申请");
messageFlowableDto.setMsgTitle("简易订单申请");
messageFlowableDto.setCreateName(busMainDeposit.getStaffName());
messageFlowableDto.setTaskId(ufVo.getTaskId());
ResultBean<String> stringResultBean = messageFeign.getMessage(messageFlowableDto);
String msgSid = stringResultBean.getData();
return msgSid;
}
}

80
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java

@ -92,6 +92,8 @@ 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.sysformlink.SysFormLinkFeign;
import com.yxt.anrui.flowable.api.sysprourl.SysProUrlFeign;
import com.yxt.anrui.flowable.api.sysprourl.SysProUrlVo;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.dictcommon.DictCommonFeign;
@ -110,6 +112,9 @@ import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.message.MessageFeign;
import com.yxt.messagecenter.api.message.MessageFlowableDto;
import com.yxt.messagecenter.api.message.MessageJsonDto;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -193,6 +198,10 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
private BaseVehicleModelAppendixFeign baseVehicleModelAppendixFeign;
@Autowired
private CrmVehicledemandFeign crmVehicledemandFeign;
@Autowired
private SysProUrlFeign sysProUrlFeign;
@Autowired
private MessageFeign messageFeign;
/**
* 构造查询条件
@ -872,24 +881,6 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
}
public ResultBean taskReject(BusSalesOrderFlowDto query) {
/* FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(dto, flowTaskVo);
ResultBean<List<LatestTaskVo>> resultBean = flowTaskFeign.taskReject(flowTaskVo);
if (!resultBean.getSuccess()) {
return resultBean;
}
String nodeState = resultBean.getData().get(0).getName_();
String taskDefKey = resultBean.getData().get(0).getTask_def_key_();
String incomingSourceRef = resultBean.getData().get(0).getIncomingSourceRef();
//更新业务表中的流程状态
modifyFlowState(dto.getBusinessSid(),
ProcDefEnum.SALESORDER.getProDefId(),
nodeState,
dto.getInstanceId(),
taskDefKey,
resultBean.getData().get(0).getId_());
return new ResultBean().success();*/
ResultBean rb = ResultBean.fireFail();
BusSalesOrder busSalesOrder = fetchBySid(query.getBusinessSid());
if (busSalesOrder == null) {
@ -913,9 +904,12 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
//更新业务中的流程相关的参数
updateFlowFiled(map);
//极光推送
String msgSid = getMessage(ufVo, (Map<String, Object>) variables.get("app"), busSalesOrder);
return rb.success();
}
}
@ -2255,6 +2249,8 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
}
UpdateFlowFieldVo ufVo = voResultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(ufVo));
//极光推送
String msgSid = getMessage(ufVo, (Map<String, Object>) variables.get("app"), busSalesOrder);
return voResultBean;
}
if (r == 2) {
@ -2326,10 +2322,10 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
}
//极光推送
String msgSid = getMessage(ufVo, (Map<String, Object>) variables.get("app"), busSalesOrder);
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
@ -2404,4 +2400,46 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
// variables.put("isLoan1", "3".equals(busSalesOrder.getType()));
return variables;
}
public String getMessage(UpdateFlowFieldVo ufVo, Map<String, Object> appMap, BusSalesOrder busSalesOrder) {
//=====极光推送信息========================================参数组装
List<String> receiveSidList = Arrays.asList(ufVo.getNextNodeUserSids().split(","));
//根据用户的sid查询用户的id
ResultBean<String> stringList1 = sysUserFeign.selectIdBySid(receiveSidList);
List<String> reveiveIdList = Arrays.asList(stringList1.getData().split(","));
MessageFlowableDto messageFlowableDto = new MessageFlowableDto();
MessageJsonDto messageJsonDto = new MessageJsonDto();
BeanUtil.copyProperties(ufVo, messageJsonDto);
//查询流程审批的页面操作地址组装json的参数
//根据taskDef和移动端标识
ResultBean<SysProUrlVo> selectUrlByKey = sysProUrlFeign.selectUrlByKey(ProcDefEnum.SALESORDER.getProDefId(), ufVo.getTaskDefKey(), "1", "2");
SysProUrlVo sysProUrlVo = selectUrlByKey.getData();
messageFlowableDto.setBusinessSid(busSalesOrder.getSid());
messageFlowableDto.setApp_type("2");
if (sysProUrlVo.getUrl().contains("#")) {
messageFlowableDto.setModuleAction(Arrays.asList(sysProUrlVo.getUrl().split("#")).get(0));
List<Integer> codesInteger = Arrays.asList(Arrays.asList(sysProUrlVo.getUrl().split("#")).get(1).split(",")).stream().map(Integer::parseInt).collect(Collectors.toList());
int[] ints = codesInteger.stream().mapToInt(Integer::valueOf).toArray();
;
messageJsonDto.setButtons(ints);
} else {
messageFlowableDto.setModuleAction(sysProUrlVo.getUrl());
}
messageFlowableDto.setModuleSid(Arrays.asList(sysProUrlVo.getModulePluginName().split("#")).get(0));
messageJsonDto.setTaskName(ufVo.getNodeState());
messageJsonDto.setProcInsId(ufVo.getProcInsId());
messageJsonDto.setAppMap(appMap);
messageFlowableDto.setJson(messageJsonDto);
messageFlowableDto.setList(receiveSidList);
messageFlowableDto.setReceiveIdList(reveiveIdList);
messageFlowableDto.setModuleName("销售订单申请");
messageFlowableDto.setMsgContent("销售订单申请");
messageFlowableDto.setMsgTitle("销售订单申请");
messageFlowableDto.setCreateName(busSalesOrder.getStaffName());
messageFlowableDto.setTaskId(ufVo.getTaskId());
ResultBean<String> stringResultBean = messageFeign.getMessage(messageFlowableDto);
String msgSid = stringResultBean.getData();
return msgSid;
}
}

5
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/bdmaterial/BdMaterial.java

@ -1,14 +1,9 @@
package com.yxt.anrui.fin.api.kingdee.bdmaterial;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.anrui.fin.api.kingdee.purmrb.PurMrb;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* 物料

70
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/saloutstock/SalOutStock.java

@ -9,7 +9,7 @@ import java.util.Date;
import java.util.List;
/**
* 采购出库单
* 销售出库单
*/
@Data
public class SalOutStock {
@ -36,14 +36,6 @@ public class SalOutStock {
* 发货组织:FStockOrgId (必填项)
*/ @JsonProperty("FStockOrgId")
private String FStockOrgId;
/**
* 收货方:FReceiverID FCustomerID
*/ @JsonProperty("FReceiverID")
private String FReceiverID;
/**
* 结算方:FSettleID FCustomerID
*/ @JsonProperty("FSettleID")
private String FSettleID;
/**
* 付款方:FPayerID FCustomerID
*/ @JsonProperty("FPayerID")
@ -52,10 +44,6 @@ public class SalOutStock {
* 项目类别:F_PAEZ_Assistant (必填项)
*/ @JsonProperty("F_PAEZ_Assistant")
private String F_PAEZ_Assistant;
/**
* 结算组织:FSettleOrgID (必填项)
*/ @JsonProperty("FSettleOrgID")
private String FSettleOrgID;
/**
* 物料列表
*/
@ -96,22 +84,7 @@ public class SalOutStock {
* 销售单位:FSalUnitID
*/ @JsonProperty("FSalUnitID")
private String FSalUnitID;
/**
* 销售数量:FSALUNITQTY
*/ @JsonProperty("FSALUNITQTY")
private double FSALUNITQTY;
/**
* 销售基本数量:FSALBASEQTY
*/ @JsonProperty("FSALBASEQTY")
private double FSALBASEQTY;
/**
* 计价基本数量:FPRICEBASEQTY
*/ @JsonProperty("FPRICEBASEQTY")
private double FPRICEBASEQTY;
/**
* 未关联应收数量计价单位:FARNOTJOINQTY
*/ @JsonProperty("FARNOTJOINQTY")
private double FARNOTJOINQTY;
}
private final static SalOutStock salOutStock = new SalOutStock();
@ -138,27 +111,14 @@ public class SalOutStock {
* 发货组织:FStockOrgId (必填项)
*/
salOutStock.setFStockOrgId("101");
/**
* 收货方:FReceiverID FCustomerID
*/
salOutStock.setFReceiverID(" JXYXB");
/**
* 结算方:FSettleID FCustomerID
*/
salOutStock.setFSettleID(" JXYXB");
/**
* 付款方:FPayerID FCustomerID
*/
salOutStock.setFPayerID(" JXYXB");
/**
* 项目类别:F_PAEZ_Assistant (必填项)
*/
salOutStock.setF_PAEZ_Assistant("00");
/**
* 结算组织:FSettleOrgID (必填项)
*/
salOutStock.setFSettleOrgID("101");
List<FEntity> fEntity=new ArrayList<>();
FEntity fe= new FEntity();
/**
* 物料编码:FMaterialID
@ -188,26 +148,6 @@ public class SalOutStock {
* 库存状态:FStockStatusID
*/
fe.setFStockStatusID("KCZT01_SYS");
/**
* 销售单位:FSalUnitID
*/
fe.setFSalUnitID("liang");
/**
* 销售数量:FSALUNITQTY
*/
fe.setFSALUNITQTY(1.0);
/**
* 销售基本数量:FSALBASEQTY
*/
fe.setFSALBASEQTY(1.0);
/**
* 计价基本数量:FPRICEBASEQTY
*/
fe.setFPRICEBASEQTY(1.0);
/**
* 未关联应收数量计价单位:FARNOTJOINQTY
*/
fe.setFARNOTJOINQTY(1.0);
fEntity.add(fe);
salOutStock.setFEntity(fEntity);
}

27
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/stkinstock/StkInStock.java

@ -51,12 +51,6 @@ public class StkInStock {
@NotBlank
public String FOwnerIdHead;
/**
* // 单据类型:FBillTypeID (必填项)
*/@JsonProperty("FBillTypeID")
@NotBlank
public String FBillTypeID="RKD01_SYS";
/**
* // 货主类型:FOwnerTypeIdHead (必填项)
*/@JsonProperty("FOwnerTypeIdHead")
@ -69,12 +63,6 @@ public class StkInStock {
@NotBlank
public String FPriceTimePoint;
/**
* // 结算币别:FSettleCurrId (必填项)
*/@JsonProperty("FSettleCurrId")
@NotBlank
public String FSettleCurrId;
/**
* // 结算组织:FSettleOrgId (必填项)
*/@JsonProperty("FSettleOrgId")
@ -132,18 +120,6 @@ public class StkInStock {
@NotBlank
public String FStockId;
/**
* // 计价单位:FPriceUnitID (必填项)
*/@JsonProperty("FPriceUnitID")
@NotBlank
public String FPriceUnitID;
/**
* // 采购单位:FRemainInStockUnitId (必填项)
*/@JsonProperty("FRemainInStockUnitId")
@NotBlank
public String FRemainInStockUnitId;
}
public final static StkInStock stkInStock = new StkInStock();
@ -159,7 +135,6 @@ public class StkInStock {
stkInStock.setFOwnerIdHead("101");
stkInStock.setFOwnerTypeIdHead("BD_OwnerOrg");
stkInStock.setFPriceTimePoint("1");
stkInStock.setFSettleCurrId("PRE001");
stkInStock.setFSettleOrgId("101");
List<FInStockEntry> FInStockEntry=new ArrayList<>();
@ -171,8 +146,6 @@ public class StkInStock {
fise.setFLot("1234567890");
fise.setFStockId("CK001");
fise.setFUnitID("liang");
fise.setFPriceUnitID("liang");
fise.setFRemainInStockUnitId("liang");
FInStockEntry.add(fise);
stkInStock.setFInStockEntry(FInStockEntry);
}

8
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/saloutstock/data_FEntity.json

@ -22,12 +22,12 @@
"FNumber": "@KD_FStockStatusID"
},
"FSalUnitID": {
"FNumber": "@KD_FSalUnitID"
"FNumber": "@KD_FUnitID"
},
"FSALUNITQTY": @KD_FSALUNITQTY,
"FSALBASEQTY": @KD_FSALBASEQTY,
"FPRICEBASEQTY": @KD_FPRICEBASEQTY,
"FSALBASEQTY": @KD_FSALUNITQTY,
"FPRICEBASEQTY": @KD_FSALUNITQTY,
"FOUTCONTROL": false,
"FIsOverLegalOrg": false,
"FARNOTJOINQTY": @KD_FARNOTJOINQTY
"FARNOTJOINQTY": @KD_FSALUNITQTY
}

8
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/saloutstock/data_model.json

@ -17,13 +17,13 @@
"FNumber": "@KD_FStockOrgId"
},
"FReceiverID": {
"FNumber": "@KD_FReceiverID"
"FNumber": "@KD_FCustomerID"
},
"FSettleID": {
"FNumber": "@KD_FSettleID"
"FNumber": "@KD_FCustomerID"
},
"FPayerID": {
"FNumber": "@KD_FPayerID"
"FNumber": "@KD_FCustomerID"
},
"FOwnerTypeIdHead": "BD_OwnerOrg",
"FIsTotalServiceOrCost": false,
@ -35,7 +35,7 @@
"FNumber": "PRE001"
},
"FSettleOrgID": {
"FNumber": "@KD_FSettleOrgID"
"FNumber": "@KD_FSaleOrgId"
},
"FIsIncludedTax": true,
"FLocalCurrID": {

4
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/data_FInStockEntry.json

@ -8,7 +8,7 @@
},
"FRealQty": @KD_FRealQty,
"FPriceUnitID": {
"FNumber": "@KD_FPriceUnitID"
"FNumber": "@KD_FUnitID"
},
"FLot": {
"FNumber": "@KD_Flot"
@ -26,7 +26,7 @@
"FIsReceiveUpdateStock": false,
"FPriceBaseQty": 1.0,
"FRemainInStockUnitId": {
"FNumber": "@KD_FRemainInStockUnitId"
"FNumber": "@KD_FUnitID"
},
"FBILLINGCLOSE": false,
"FRemainInStockQty": @KD_FRemainInStockQty,

2
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/data_model.json

@ -37,7 +37,7 @@
"FNumber": "@KD_FSettleOrgId"
},
"FSettleCurrId": {
"FNumber": "@KD_FSettleCurrId"
"FNumber": "PRE001"
},
"FIsIncludedTax": true,
"FPriceTimePoint": "@KD_FPriceTimePoint",

6
anrui-scm/anrui-scm-biz/pom.xml

@ -8,6 +8,7 @@
<version>0.0.1</version>
<relativePath/>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>anrui-scm-biz</artifactId>
@ -77,6 +78,11 @@
<version>0.0.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.yxt.messagecenter</groupId>
<artifactId>message-center-api</artifactId>
<version>0.0.1</version>
</dependency>
</dependencies>
<build>

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

@ -50,7 +50,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
})
@EnableFeignClients(basePackages = {"com.yxt.anrui.buscenter",
"com.yxt.anrui.portal","com.yxt.anrui.flowable","com.yxt.anrui.base"
,"com.yxt.anrui.fin"})
,"com.yxt.anrui.fin","com.yxt.messagecenter"})
public class AnruiScmApplication {
public static void main(String[] args) {

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

@ -42,6 +42,8 @@ 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.sysprourl.SysProUrlFeign;
import com.yxt.anrui.flowable.api.sysprourl.SysProUrlVo;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.dictcommon.DictCommonFeign;
@ -70,6 +72,9 @@ import com.yxt.common.base.utils.WordUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.message.MessageFeign;
import com.yxt.messagecenter.api.message.MessageFlowableDto;
import com.yxt.messagecenter.api.message.MessageJsonDto;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -126,6 +131,10 @@ public class ScmVehicleGressionService extends MybatisBaseService<ScmVehicleGres
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private ScmExitPermitService scmExitPermitService;
@Autowired
private SysProUrlFeign sysProUrlFeign;
@Autowired
private MessageFeign messageFeign;
private QueryWrapper<ScmVehicleGression> createQueryWrapper(ScmVehicleGressionQuery query) {
// todo: 这里根据具体业务调整查询条件
@ -619,6 +628,7 @@ public class ScmVehicleGressionService extends MybatisBaseService<ScmVehicleGres
return rb.setMsg(resultBean.getMsg());
}
String businessSid = resultBean.getData();
scmVehicleGression = fetchBySid(businessSid);
String state = "2";
baseMapper.updateStateBySid(businessSid, state);
//创建BusinessVariables实体对象
@ -645,6 +655,8 @@ public class ScmVehicleGressionService extends MybatisBaseService<ScmVehicleGres
ResultBean<UpdateFlowFieldVo> voResultBean = flowableFeign.startProcess(bv);
UpdateFlowFieldVo ufVo = voResultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(ufVo));
//极光推送
String msgSid = getMessage(ufVo, appMap, scmVehicleGression);
return voResultBean;
}
if (r == 2) {
@ -708,6 +720,11 @@ public class ScmVehicleGressionService extends MybatisBaseService<ScmVehicleGres
public ResultBean complete(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
ScmVehicleGression scmVehicleGression = fetchBySid(bv.getBusinessSid());
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", bv.getBusinessSid());
variables.put("app", appMap);
bv.setFormVariables(variables);
if (bv.getTaskId().equals(scmVehicleGression.getTaskId())) {
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
@ -726,7 +743,10 @@ public class ScmVehicleGressionService extends MybatisBaseService<ScmVehicleGres
scmExitPermit.setUrl(pdfPath);
scmExitPermitService.insert(scmExitPermit);*/
}
UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
//极光推送
String msgSid = getMessage(ufVo, appMap, scmVehicleGression);
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
@ -796,13 +816,20 @@ public class ScmVehicleGressionService extends MybatisBaseService<ScmVehicleGres
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", query.getBusinessSid());
variables.put("app", appMap);
flowTaskVo.setValues(variables);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
//更新业务中的流程相关的参数
updateFlowFiled(map);
String msgSid = getMessage(ufVo, appMap, scmVehicleGression);
return rb.success();
}
}
@ -986,4 +1013,53 @@ public class ScmVehicleGressionService extends MybatisBaseService<ScmVehicleGres
int count = baseMapper.getToDoNum(useOrgSid);
return rb.success().setData(String.valueOf(count));
}
/**
* 消息推送组装参数
*
* @param ufVo
* @param appMap
* @param scmVehicleGression
* @return
*/
public String getMessage(UpdateFlowFieldVo ufVo, Map<String, Object> appMap, ScmVehicleGression scmVehicleGression) {
//=====极光推送信息========================================参数组装
List<String> receiveSidList = Arrays.asList(ufVo.getNextNodeUserSids().split(","));
//根据用户的sid查询用户的id
ResultBean<String> stringList1 = sysUserFeign.selectIdBySid(receiveSidList);
List<String> reveiveIdList = Arrays.asList(stringList1.getData().split(","));
MessageFlowableDto messageFlowableDto = new MessageFlowableDto();
MessageJsonDto messageJsonDto = new MessageJsonDto();
BeanUtil.copyProperties(ufVo, messageJsonDto);
//查询流程审批的页面操作地址组装json的参数
//根据taskDef和移动端标识
ResultBean<SysProUrlVo> selectUrlByKey = sysProUrlFeign.selectUrlByKey(ProcDefEnum.SCMCARTRANSFER.getProDefId(), ufVo.getTaskDefKey(), "1", "2");
SysProUrlVo sysProUrlVo = selectUrlByKey.getData();
messageFlowableDto.setBusinessSid(scmVehicleGression.getSid());
messageFlowableDto.setApp_type("2");
if (sysProUrlVo.getUrl().contains("#")) {
messageFlowableDto.setModuleAction(Arrays.asList(sysProUrlVo.getUrl().split("#")).get(0));
List<Integer> codesInteger = Arrays.asList(Arrays.asList(sysProUrlVo.getUrl().split("#")).get(1).split(",")).stream().map(Integer::parseInt).collect(Collectors.toList());
int[] ints = codesInteger.stream().mapToInt(Integer::valueOf).toArray();
messageJsonDto.setButtons(ints);
} else {
messageFlowableDto.setModuleAction(sysProUrlVo.getUrl());
}
messageFlowableDto.setModuleSid(Arrays.asList(sysProUrlVo.getModulePluginName().split("#")).get(0));
messageJsonDto.setTaskName(ufVo.getNodeState());
messageJsonDto.setProcInsId(ufVo.getProcInsId());
messageJsonDto.setAppMap(appMap);
messageFlowableDto.setJson(messageJsonDto);
messageFlowableDto.setList(receiveSidList);
messageFlowableDto.setReceiveIdList(reveiveIdList);
messageFlowableDto.setModuleName("存放地点变更申请");
messageFlowableDto.setMsgContent("存放地点变更申请");
messageFlowableDto.setMsgTitle("存放地点变更申请");
messageFlowableDto.setCreateName(scmVehicleGression.getApplicantName());
messageFlowableDto.setTaskId(ufVo.getTaskId());
ResultBean<String> stringResultBean = messageFeign.getMessage(messageFlowableDto);
String msgSid = stringResultBean.getData();
return msgSid;
}
}

60
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/externalPurchase/ExternalPurchaseFeign.java

@ -0,0 +1,60 @@
package com.yxt.anrui.terminal.api.supplychain.externalPurchase;
import com.yxt.anrui.terminal.api.supplychain.externalPurchase.flowable.ExternalPurchaseDto;
import com.yxt.anrui.terminal.api.supplychain.externalPurchase.flowable.ExternalPurchaseQuery;
import com.yxt.anrui.terminal.api.supplychain.externalPurchase.flowable.ExternalPurchaseTaskQuery;
import com.yxt.anrui.terminal.api.supplychain.unsoldBuyout.flowable.UnsoldBuyoutDto;
import com.yxt.anrui.terminal.api.supplychain.unsoldBuyout.flowable.UnsoldBuyoutQuery;
import com.yxt.anrui.terminal.api.supplychain.unsoldBuyout.flowable.UnsoldBuyoutTaskQuery;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
/**
* @Author dimengzhe
* @Date 2022/8/20 15:46
* @Description
*/
@Api(tags = "外采申请")
@FeignClient(
contextId = "terminal-ExternalPurchase",
name = "anrui-terminal",
path = "/supplychain/v1/externalPurchase",
fallback = ExternalPurchaseFeignFallback.class)
public interface ExternalPurchaseFeign {
@ApiOperation("外采申请详情")
@GetMapping("/getExternalPurchase/{sid}")
@ResponseBody
ResultBean<ExternalPurchaseVo> getExternalPurchase(@PathVariable("sid") String sid);
@ApiOperation("办理")
@PutMapping("/agreeExternalPurchaseInfo")
@ResponseBody
ResultBean agreeExternalPurchaseInfo(@RequestBody ExternalPurchaseDto dto);
@ApiOperation("驳回")
@PutMapping("/rejectExternalPurchaseInfo")
@ResponseBody
ResultBean rejectExternalPurchaseInfo(@RequestBody ExternalPurchaseTaskQuery query);
@ApiOperation("撤回")
@PutMapping("/recallExternalPurchaseInfo")
@ResponseBody
ResultBean recallExternalPurchaseInfo(@RequestBody ExternalPurchaseTaskQuery query);
@ApiOperation("终止")
@PutMapping("/stopExternalPurchaseInfo")
@ResponseBody
ResultBean stopExternalPurchaseInfo(@RequestBody ExternalPurchaseTaskQuery query);
@ApiOperation("获取流程操作标题")
@GetMapping("/getFlowOperateTitle")
@ResponseBody
ResultBean<String> getFlowOperateTitle(@SpringQueryMap ExternalPurchaseQuery query);
}

12
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/externalPurchase/ExternalPurchaseFeignFallback.java

@ -0,0 +1,12 @@
package com.yxt.anrui.terminal.api.supplychain.externalPurchase;
import org.springframework.stereotype.Component;
/**
* @Author dimengzhe
* @Date 2022/8/20 15:47
* @Description
*/
@Component
public class ExternalPurchaseFeignFallback {
}

72
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/externalPurchase/ExternalPurchaseVo.java

@ -0,0 +1,72 @@
package com.yxt.anrui.terminal.api.supplychain.externalPurchase;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2022/8/20 15:49
* @Description
*/
@Data
public class ExternalPurchaseVo implements Vo {
private static final long serialVersionUID = -6426670517017823684L;
private String sid;
private String userSid;
private String taskId;
private String procInsId;
@ApiModelProperty("分公司名称")
@JsonProperty("company")
private String useOrgName;
@ApiModelProperty("申请人")
@JsonProperty("applyName")
private String createByName;
@ApiModelProperty("申请时间")
@JsonProperty("date")
private String applicationDate;
@ApiModelProperty("车型")
@JsonProperty("model")
private String modelName;
@ApiModelProperty("销售指导价")
@JsonProperty("guidancePrice")
private String guidedPrice;
@ApiModelProperty("厂家合同价")
@JsonProperty("contractPrice")
private String manufactorSettlementPrice;
@ApiModelProperty("内部编码")
@JsonProperty("code")
private String insideCode;
@ApiModelProperty("采购单位名称")
@JsonProperty("purchasingUnit")
private String purchasingUnitName;
@ApiModelProperty("开户银行")
@JsonProperty("bankDeposit")
private String depositBankName;
@ApiModelProperty("银行账号")
@JsonProperty("invoBankNum")
private String bankAccount;
@ApiModelProperty("采购价格")
private String purchasePrice;
@ApiModelProperty("台数")
@JsonProperty("number")
private String num;
@ApiModelProperty("订金")
private String deposit;
@ApiModelProperty("其他费用")
@JsonProperty("otherPrice")
private String expenseName;
@ApiModelProperty("费用合计")
@JsonProperty("totalPrice")
private String totalExpenseAmount;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("图片list")
private List<String> images;
}

37
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/externalPurchase/flowable/ExternalPurchaseDto.java

@ -0,0 +1,37 @@
package com.yxt.anrui.terminal.api.supplychain.externalPurchase.flowable;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2022/8/22 10:41
* @Description
*/
@Data
public class ExternalPurchaseDto implements Dto {
private static final long serialVersionUID = 2574401008459509921L;
@ApiModelProperty(value = "任务id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
@ApiModelProperty(value = "流程id")
@NotBlank(message = "参数错误:procInsId")
@JsonProperty("procInsId")
private String instanceId;
@ApiModelProperty(value = "意见")
private String comment;
@ApiModelProperty(value = "业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
@ApiModelProperty(value = "用户sid")
@NotBlank(message = "参数错误:userSid")
private String userSid;
@ApiModelProperty(value = "节点id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
}

25
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/externalPurchase/flowable/ExternalPurchaseQuery.java

@ -0,0 +1,25 @@
package com.yxt.anrui.terminal.api.supplychain.externalPurchase.flowable;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @Author dimengzhe
* @Date 2022/8/22 10:41
* @Description
*/
@Data
public class ExternalPurchaseQuery implements Query {
private static final long serialVersionUID = -958211588485515933L;
@ApiModelProperty(value = "节点key")
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
@ApiModelProperty(value = "0 上一环节 1下一环节")
@NotNull(message = "参数错误:next")
private Integer next;
}

47
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/externalPurchase/flowable/ExternalPurchaseTaskQuery.java

@ -0,0 +1,47 @@
package com.yxt.anrui.terminal.api.supplychain.externalPurchase.flowable;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2022/8/22 10:41
* @Description
*/
@Data
public class ExternalPurchaseTaskQuery implements Query {
private static final long serialVersionUID = 2793893752427300845L;
/**
* 终止驳回撤回
*/
@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")
@JsonProperty("procInsId")
private String instanceId;
}

57
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/supplychain/externalPurchase/ExternalPurchaseRest.java

@ -0,0 +1,57 @@
package com.yxt.anrui.terminal.biz.supplychain.externalPurchase;
import com.yxt.anrui.terminal.api.supplychain.externalPurchase.ExternalPurchaseFeign;
import com.yxt.anrui.terminal.api.supplychain.externalPurchase.ExternalPurchaseVo;
import com.yxt.anrui.terminal.api.supplychain.externalPurchase.flowable.ExternalPurchaseDto;
import com.yxt.anrui.terminal.api.supplychain.externalPurchase.flowable.ExternalPurchaseQuery;
import com.yxt.anrui.terminal.api.supplychain.externalPurchase.flowable.ExternalPurchaseTaskQuery;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @Author dimengzhe
* @Date 2022/8/20 16:34
* @Description
*/
@Api(tags = "外采申请")
@Controller
@RequestMapping("/supplychain/v1/externalPurchase")
public class ExternalPurchaseRest implements ExternalPurchaseFeign {
@Autowired
private ExternalPurchaseService externalPurchaseService;
@Override
public ResultBean<ExternalPurchaseVo> getExternalPurchase(String sid) {
return externalPurchaseService.getExternalPurchase(sid);
}
@Override
public ResultBean agreeExternalPurchaseInfo(ExternalPurchaseDto dto) {
return externalPurchaseService.agreeExternalPurchaseInfo(dto);
}
@Override
public ResultBean rejectExternalPurchaseInfo(ExternalPurchaseTaskQuery query) {
return externalPurchaseService.rejectExternalPurchaseInfo(query);
}
@Override
public ResultBean recallExternalPurchaseInfo(ExternalPurchaseTaskQuery query) {
return externalPurchaseService.recallExternalPurchaseInfo(query);
}
@Override
public ResultBean stopExternalPurchaseInfo(ExternalPurchaseTaskQuery query) {
return externalPurchaseService.stopExternalPurchaseInfo(query);
}
@Override
public ResultBean<String> getFlowOperateTitle(ExternalPurchaseQuery query) {
return externalPurchaseService.getFlowOperateTitle(query);
}
}

138
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/supplychain/externalPurchase/ExternalPurchaseService.java

@ -0,0 +1,138 @@
package com.yxt.anrui.terminal.biz.supplychain.externalPurchase;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.base.api.baseoutsourcingapplication.AppBaseOutsourcingApplicationVo;
import com.yxt.anrui.base.api.baseoutsourcingapplication.BaseOutsourcingApplicationDto;
import com.yxt.anrui.base.api.baseoutsourcingapplication.BaseOutsourcingApplicationFeign;
import com.yxt.anrui.base.api.baseoutsourcingapplication.BusinessVariablesDto;
import com.yxt.anrui.base.api.basevehicleactualsales.flow.ActualGetNodeVo;
import com.yxt.anrui.base.api.flow.FlowTaskVo;
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.terminal.api.supplychain.externalPurchase.ExternalPurchaseVo;
import com.yxt.anrui.terminal.api.supplychain.externalPurchase.flowable.ExternalPurchaseDto;
import com.yxt.anrui.terminal.api.supplychain.externalPurchase.flowable.ExternalPurchaseQuery;
import com.yxt.anrui.terminal.api.supplychain.externalPurchase.flowable.ExternalPurchaseTaskQuery;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2022/8/20 16:36
* @Description
*/
@Service
public class ExternalPurchaseService {
@Autowired
private BaseOutsourcingApplicationFeign baseOutsourcingApplicationFeign;
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
public ResultBean<ExternalPurchaseVo> getExternalPurchase(String sid) {
ResultBean<ExternalPurchaseVo> rb = ResultBean.fireFail();
ResultBean<AppBaseOutsourcingApplicationVo> resultBean = baseOutsourcingApplicationFeign.getExternalPurchase(sid);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
ExternalPurchaseVo vo = new ExternalPurchaseVo();
AppBaseOutsourcingApplicationVo appBaseOutsourcingApplicationVo = resultBean.getData();
BeanUtil.copyProperties(appBaseOutsourcingApplicationVo, vo);
return rb.success().setData(vo);
}
public ResultBean agreeExternalPurchaseInfo(ExternalPurchaseDto 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();
BusinessVariablesDto businessVariablesDto = new BusinessVariablesDto();
BeanUtil.copyProperties(dto, businessVariablesDto);
businessVariablesDto.setOrgSidPath(orgSidPath);
ResultBean resultBean = baseOutsourcingApplicationFeign.complete(businessVariablesDto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean rejectExternalPurchaseInfo(ExternalPurchaseTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
FlowTaskVo flowTaskQuery = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskQuery);
ResultBean resultBean = baseOutsourcingApplicationFeign.taskReject(flowTaskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean recallExternalPurchaseInfo(ExternalPurchaseTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
FlowTaskVo flowTaskQuery = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskQuery);
ResultBean resultBean = baseOutsourcingApplicationFeign.revokeProcess(flowTaskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean stopExternalPurchaseInfo(ExternalPurchaseTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
FlowTaskVo flowTaskQuery = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskQuery);
ResultBean resultBean = baseOutsourcingApplicationFeign.breakProcess(flowTaskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean<String> getFlowOperateTitle(ExternalPurchaseQuery query) {
ResultBean<String> rb = ResultBean.fireFail();
//0 上一环节 1下一环节
int next = query.getNext();
BaseOutsourcingApplicationDto getNodeQuery = new BaseOutsourcingApplicationDto();
BeanUtil.copyProperties(query, getNodeQuery);
String data = "";
if (next == 0) {
ResultBean<List<ActualGetNodeVo>> getPreviousNodesForReject = baseOutsourcingApplicationFeign.getPreviousNodesForReject(getNodeQuery);
if (getPreviousNodesForReject.getSuccess()) {
getPreviousNodesForReject.getData().removeAll(Collections.singleton(null));
data = getPreviousNodesForReject.getData().get(0).getName();
} else {
return rb.setMsg(getPreviousNodesForReject.getMsg());
}
} else if (next == 1) {
ResultBean<List<ActualGetNodeVo>> getNextNodesForSubmit = baseOutsourcingApplicationFeign.getNextNodesForSubmit(getNodeQuery);
if (getNextNodesForSubmit.getSuccess()) {
getNextNodesForSubmit.getData().removeAll(Collections.singleton(null));
data = getNextNodesForSubmit.getData().get(0).getName();
} else {
return rb.setMsg(getNextNodesForSubmit.getMsg());
}
} else {
return rb.setMsg("参数错误:next");
}
return rb.success().setData(data);
}
}
Loading…
Cancel
Save