Browse Source

Merge remote-tracking branch 'origin/master'

zhanglei
djz236 3 years ago
parent
commit
4929006c32
  1. 23
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseinternalpurchase/BaseInternalPurchaseFeign.java
  2. 2
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelmodprice/flow/BaseModelModPriceCompleteDto.java
  3. 58
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseoutsourcingapplication/AppBaseOutsourcingApplicationVo.java
  4. 14
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseoutsourcingapplication/BaseOutsourcingApplicationFeign.java
  5. 5
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseoutsourcingapplication/BaseOutsourcingApplicationFeignFallback.java
  6. 7
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleActualVo.java
  7. 2
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleVo.java
  8. 7
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/AppBaseVehicleActualDetailsVo.java
  9. 7
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/BaseVehicleActualDetails.java
  10. 7
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/BaseVehicleActualDetailsDto.java
  11. 7
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/BaseVehicleActualDetailsVo.java
  12. 3
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/AppBaseVehicleActualSalesVo.java
  13. 2
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSales.java
  14. 3
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesDetailsVo.java
  15. 3
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesDto.java
  16. 10
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelmodprice/BaseModelModpriceService.java
  17. 7
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationMapper.java
  18. 25
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationMapper.xml
  19. 9
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationRest.java
  20. 138
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationService.java
  21. 6
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml
  22. 26
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleRest.java
  23. 14
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsMapper.xml
  24. 6
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesMapper.xml
  25. 78
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java
  26. 12
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehinstallmodprice/BaseVehinstallModpriceService.java
  27. 6
      anrui-buscenter/anrui-buscenter-biz/pom.xml
  28. 2
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/BusCenterApplication.java
  29. 86
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busmaindeposit/BusMainDepositService.java
  30. 2
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleexamine/AppScmVehicleExamineDetailsVo.java
  31. 6
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleinventory/AppScmVehicleStayInventoryDto.java
  32. 6
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleinventory/AppScmVehicleStayInventoryInfoVo.java
  33. 4
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleinventory/ScmVehicleInventory.java
  34. 6
      anrui-scm/anrui-scm-biz/pom.xml
  35. 2
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/AnruiScmApplication.java
  36. 43
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleexamine/ScmVehicleExamineMapper.xml
  37. 76
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclegression/ScmVehicleGressionService.java
  38. 8
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleinventory/ScmVehicleInventoryService.java
  39. 4
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclestayinventory/ScmVehicleStayInventoryMapper.xml
  40. 5
      anrui-scm/anrui-scm-ui/src/api/portal/Upload.js
  41. 16
      anrui-scm/anrui-scm-ui/src/components/uploadFile/FaImages.vue
  42. 55
      anrui-scm/anrui-scm-ui/src/views/cheliang/cheliangcaigou/cheliangcaigouAdd.vue
  43. 1
      anrui-scm/anrui-scm-ui/src/views/cheliang/cheliangtaizhang/cheliangtaizhang.vue
  44. 2
      anrui-scm/anrui-scm-ui/src/views/kucunguanli/cheliangweihu/richangxunjian/xunjiandan.vue
  45. 2
      anrui-scm/anrui-scm-ui/src/views/supplychain/cunfangdidianbiangeng/cunfangdidianbiangengAdd.vue
  46. 2
      anrui-scm/anrui-scm-ui/src/views/supplychain/cunfangdidianbiangeng/cunfangdidianbiangengInfo.vue
  47. 38
      anrui-scm/anrui-scm-ui/src/views/weishoumaiduan/weishoumaiduanguanli/unsoldAdd.vue
  48. 20
      anrui-scm/anrui-scm-ui/src/views/weishoumaiduan/weishoumaiduanguanli/unsoldInfo.vue
  49. 5
      anrui-scm/anrui-scm-ui/src/views/weishoumaiduan/weishoumaiduanguanli/vehicle.vue
  50. 2
      anrui-scm/anrui-scm-ui/src/views/workFlow/cunfangdidianbiangengFlow/cunfangdidianbiangengEdit.vue
  51. 2
      anrui-scm/anrui-scm-ui/src/views/workFlow/cunfangdidianbiangengFlow/cunfangdidianbiangengInfo.vue
  52. 5
      anrui-scm/anrui-scm-ui/src/views/workFlow/weishoumaiduanFlow/weishoumaiduanguanli/vehicle.vue
  53. 22
      anrui-scm/anrui-scm-ui/src/views/workFlow/weishoumaiduanFlow/weishoumaiduanguanli/weishoumaiduanDaiBanInfo.vue
  54. 20
      anrui-scm/anrui-scm-ui/src/views/workFlow/weishoumaiduanFlow/weishoumaiduanguanli/weishoumaiduanYiBanInfo.vue
  55. 40
      anrui-scm/anrui-scm-ui/src/views/workFlow/weishoumaiduanFlow/weishoumaiduanguanli/weushoumaiduanEdit.vue
  56. 60
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/externalPurchase/ExternalPurchaseFeign.java
  57. 12
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/externalPurchase/ExternalPurchaseFeignFallback.java
  58. 72
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/externalPurchase/ExternalPurchaseVo.java
  59. 37
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/externalPurchase/flowable/ExternalPurchaseDto.java
  60. 25
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/externalPurchase/flowable/ExternalPurchaseQuery.java
  61. 47
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/externalPurchase/flowable/ExternalPurchaseTaskQuery.java
  62. 6
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/inventory/StayInventoryDetailedsVo.java
  63. 6
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/inventory/StayInventoryDto.java
  64. 6
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/inventory/StayInventoryInfoVo.java
  65. 6
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/modelAdjust/AppBaseModelModpriceFeign.java
  66. 2
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/modelAdjust/ModelModPriceCompleteDto.java
  67. 3
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/scmvehicleexamine/AppExamineDetailsVo.java
  68. 7
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/unsoldBuyout/UnsoldBuyoutDetailsListVo.java
  69. 3
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/unsoldBuyout/UnsoldBuyoutVo.java
  70. 57
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/supplychain/externalPurchase/ExternalPurchaseRest.java
  71. 138
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/supplychain/externalPurchase/ExternalPurchaseService.java

23
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseinternalpurchase/BaseInternalPurchaseFeign.java

@ -25,19 +25,15 @@
*********************************************************/
package com.yxt.anrui.base.api.baseinternalpurchase;
import com.yxt.anrui.base.api.baseaccadjapply.flow.BaseAccAdjApplyCompleteDto;
import com.yxt.anrui.base.api.baseinternalpurchase.flow.BaseInterNalPurchaseCompleteDto;
import com.yxt.anrui.base.api.baseinternalpurchase.flow.BaseInterNalPurchaseTaskQuery;
import com.yxt.anrui.base.api.baseinternalpurchase.flow.SubmitBaseInterNalPurchaseDto;
import com.yxt.anrui.base.api.baseoutsourcingapplication.BusinessVariablesDto;
import com.yxt.anrui.base.api.baseoutsourcingapplication.GetNextNodeDto;
import com.yxt.anrui.base.api.busvehicleapply.flow.BusVehicleApplyTaskQuery;
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.ApiParam;
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.*;
@ -91,14 +87,29 @@ public interface BaseInternalPurchaseFeign {
@PostMapping("/submitBaseInternalPurchase")
public ResultBean submitBaseInternalPurchase(@Valid @RequestBody SubmitBaseInterNalPurchaseDto dto);
/**
* 申请方审批同意应对方审批同意除申请方最后一个环节
* @param bvd
* @return
*/
@ApiOperation(value = "办理(同意)")
@PostMapping("/complete")
public ResultBean complete(@Valid @RequestBody BaseInterNalPurchaseCompleteDto bvd);
/**
* 申请方跳应对方的同意
* @param bvd
* @return
*/
@ApiOperation(value = "办理(同意)")
@PostMapping("/InitiatorToAnswer")
public ResultBean InitiatorToAnswer(@Valid @RequestBody BaseInterNalPurchaseCompleteDto bvd);
/**
* 分公司到事业部同意
* @param bvd
* @return
*/
@ApiOperation(value = "办理(同意)")
@PostMapping("/companyToDivisionOperate")
public ResultBean companyToDivisionOperate(@Valid @RequestBody BaseInterNalPurchaseCompleteDto bvd);

2
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelmodprice/flow/BaseModelModPriceCompleteDto.java

@ -19,7 +19,7 @@ public class BaseModelModPriceCompleteDto implements Dto {
@NotBlank(message = "参数错误:userSid")
private String userSid;
@ApiModelProperty(value = "用户全路径sid")
@NotBlank(message = "参数错误:orgSidPath")
// @NotBlank(message = "参数错误:orgSidPath")
private String orgSidPath;
@ApiModelProperty(value = "节点id")
@NotBlank(message = "参数错误:taskDefKey")

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-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleActualVo.java

@ -44,4 +44,11 @@ public class BaseVehicleActualVo implements Vo {
@ApiModelProperty(value = "入库价")
@JsonSerialize(using = ToStringSerializer.class)
private String priced;
@ApiModelProperty("与该内部编码一致的车辆")
private int vehicleNum;
@ApiModelProperty("内部编码")
private String insideCode;
@ApiModelProperty("库龄")
private int dayNum;
}

2
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleVo.java

@ -102,4 +102,6 @@ public class BaseVehicleVo implements Vo {
private String witPinStateValue;
@ApiModelProperty(value = "合格证状态value")
private String certificateStateValue;
@ApiModelProperty(value = "库龄")
private Long libraryAge;
}

7
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/AppBaseVehicleActualDetailsVo.java

@ -25,4 +25,11 @@ public class AppBaseVehicleActualDetailsVo implements Vo {
private String modelSid;
@ApiModelProperty("配置sid")
private String configSid;
@ApiModelProperty("内部编码")
private String insideCode;
@ApiModelProperty("库龄")
private int dayNum;
@ApiModelProperty("车辆数量")
private int vehicleNum;
}

7
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/BaseVehicleActualDetails.java

@ -24,4 +24,11 @@ public class BaseVehicleActualDetails extends BaseEntity {
private Date inboundDate;
@ApiModelProperty(value = "入库价")
private String inboundPrice;
@ApiModelProperty("内部编码")
private String insideCode;
@ApiModelProperty("库龄")
private int dayNum;
@ApiModelProperty("车辆数量")
private int vehicleNum;
}

7
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/BaseVehicleActualDetailsDto.java

@ -24,4 +24,11 @@ public class BaseVehicleActualDetailsDto implements Dto {
@ApiModelProperty(value = "入库价")
private String inboundPrice;
@ApiModelProperty("内部编码")
private String insideCode;
@ApiModelProperty("库龄")
private int dayNum;
@ApiModelProperty("车辆数量")
private int vehicleNum;
}

7
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/BaseVehicleActualDetailsVo.java

@ -22,4 +22,11 @@ public class BaseVehicleActualDetailsVo implements Vo {
private String inboundDate;
@ApiModelProperty(value = "入库价")
private String inboundPrice;
@ApiModelProperty("内部编码")
private String insideCode;
@ApiModelProperty("库龄")
private int dayNum;
@ApiModelProperty("车辆数量")
private int vehicleNum;
}

3
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/AppBaseVehicleActualSalesVo.java

@ -31,4 +31,7 @@ public class AppBaseVehicleActualSalesVo implements Vo {
private String reason;
private List<AppBaseVehicleActualDetailsVo> records;
@ApiModelProperty("未售买断费用")
private String money;
}

2
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSales.java

@ -26,6 +26,8 @@ public class BaseVehicleActualSales extends BaseEntity {
private String procInstId;
@ApiModelProperty(value = "任务id")
private String taskId;
@ApiModelProperty("未售买断费用")
private String money;
}

3
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesDetailsVo.java

@ -32,4 +32,7 @@ public class BaseVehicleActualSalesDetailsVo implements Vo {
private String taskId;
@ApiModelProperty(value = "实例id")
private String procInstId;
@ApiModelProperty("未售买断费用")
private String money;
}

3
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesDto.java

@ -34,5 +34,8 @@ public class BaseVehicleActualSalesDto implements Dto {
@ApiModelProperty(value = "车辆列表")
private List<BaseVehicleActualDetailsDto> detailsList;
@ApiModelProperty("未售买断费用")
private String money;
}

10
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelmodprice/BaseModelModpriceService.java

@ -66,10 +66,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -218,6 +215,11 @@ public class BaseModelModpriceService extends MybatisBaseService<BaseModelModpri
//用户sid
bv.setUserSid(dto.getCreateBySid());
bv.setFormVariables(variables);
//若app移动端有此功能,则传递appMap参数
Map<String, Object> appMap = new HashMap<>();
//需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。
appMap.put("sid", businessSid);
variables.put("app", appMap);
//流程定义id
bv.setModelId(ProcDefEnum.BASEMODELMODPRICE.getProDefId());
if (r == 1) {

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;
}
}

6
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml

@ -755,7 +755,11 @@
bmc.configName,
bmc.sid as configSid,
DATE_FORMAT(bv.priceDate, '%Y-%m-%d') as priceDate,
bv.costPrice as priced
bv.costPrice as priced,
bv.insideCode,
(select count(*) from base_vehicle bvv where bvv.insideCode = bv.insideCode and (bvv.vehicleStateValue = '库存' or bvv.vehicleStateValue = '调入')) as vehicleNum,
(select datediff(now(),DATE_FORMAT(bv.priceDate,'%Y-%m-%d'))) as dayNum
FROM base_vehicle bv
LEFT JOIN base_vehicle_model bvm ON bv.`modelSid` = bvm.`sid`
LEFT JOIN base_model_config bmc ON bv.modelConfigSid = bmc.`sid`

26
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleRest.java

@ -1,7 +1,9 @@
package com.yxt.anrui.base.biz.basevehicle;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basemodelconfig.AppCarConfigSummaryVo;
import com.yxt.anrui.base.api.basemodelconfig.BaseModelConfig;
@ -16,8 +18,6 @@ import com.yxt.anrui.base.biz.basevehiclecertificate.BaseVehicleCertificateServi
import com.yxt.anrui.base.biz.basevehiclemodel.BaseVehicleModelService;
import com.yxt.anrui.base.biz.busvehicleinquiry.BusVehicleInquiryService;
import com.yxt.anrui.base.common.enums.OperVehicleState;
import com.yxt.anrui.base.common.enums.VehicleState;
import com.yxt.anrui.scm.api.scmvehiclegression.ScmVehicleGressionPageVo;
import com.yxt.common.base.utils.ExportExcelUtils;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.StringUtils;
@ -26,10 +26,7 @@ import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
@ -44,10 +41,7 @@ import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* Project: anrui-base(安瑞基础信息模块) <br/>
@ -92,6 +86,16 @@ public class BaseVehicleRest implements BaseVehicleFeign {
public ResultBean<PagerVo<BaseVehicleVo>> pagerList(@RequestBody PagerQuery<BaseVehicleQuery> pagerQuery) {
ResultBean<PagerVo<BaseVehicleVo>> rb = ResultBean.fireFail();
IPage<BaseVehicleVo> page = baseVehicleService.pagerList(pagerQuery);
List<BaseVehicleVo> records = page.getRecords();
for (BaseVehicleVo record : records) {
if (record.getPriceDate() != null){
Date priceDate = record.getPriceDate();
String today = DateUtil.today();
DateTime currentDate = DateUtil.parse(today);
long betweenDay = DateUtil.between(priceDate, currentDate, DateUnit.DAY);
record.setLibraryAge(betweenDay);
}
}
PagerVo<BaseVehicleVo> pv = new PagerVo<>();
PagerVo<BaseVehicleVo> pv1 = PagerUtil.pageToVo(page, pv);
return rb.success().setData(pv1);

14
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsMapper.xml

@ -14,7 +14,14 @@
</delete>
<select id="detailsList" resultType="com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetailsVo">
select sid, vinNo, modelName, DATE_FORMAT(inboundDate, '%Y-%m-%d') as inboundDate, inboundPrice
select sid,
vinNo,
modelName,
DATE_FORMAT(inboundDate, '%Y-%m-%d') as inboundDate,
inboundPrice,
insideCode,
vehicleNum,
dayNum
from base_vehicle_actual_details
where vehicleActualSid = #{sid}
</select>
@ -37,7 +44,10 @@
DATE_FORMAT(bd.inboundDate, '%Y-%m-%d') as inboundDate,
bd.inboundPrice,
bv.modelSid,
bv.modelConfigSid as configSid
bv.modelConfigSid as configSid,
bd.insideCode,
bd.vehicleNum,
bd.dayNum
from base_vehicle_actual_details bd
left join base_vehicle bv on bv.vinNo = bd.vinNo
where bd.vehicleActualSid = #{sid}

6
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesMapper.xml

@ -22,7 +22,8 @@
applicationName,
taskId,
procInstId,
createBySid userSid
createBySid userSid,
money
from base_vehicle_actual_sales
where sid = #{sid}
</select>
@ -57,7 +58,8 @@
procInstId as procInsId,
applicationName as applyName,
DATE_FORMAT(createTime, '%Y-%m-%d') as date,
reason
reason,
money
from base_vehicle_actual_sales
where sid = #{sid}
</select>

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;
}
}

12
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehinstallmodprice/BaseVehinstallModpriceService.java

@ -68,10 +68,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -137,7 +134,7 @@ public class BaseVehinstallModpriceService extends MybatisBaseService<BaseVehins
return rb.success().setMsg("添加成功").setData(sid);
}
BaseVehinstallModprice baseVehinstallModprice = fetchBySid(dtoSid);
if (baseVehinstallModprice == null){
if (baseVehinstallModprice == null) {
return rb.setMsg("该上装申请单不存在");
}
this.updateByDto(dto);
@ -228,6 +225,11 @@ public class BaseVehinstallModpriceService extends MybatisBaseService<BaseVehins
//用户sid
bv.setUserSid(dto.getCreateBySid());
bv.setFormVariables(variables);
//若app移动端有此功能,则传递appMap参数
Map<String, Object> appMap = new HashMap<>();
//需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。
appMap.put("sid", businessSid);
variables.put("app", appMap);
//流程定义id
bv.setModelId(ProcDefEnum.BASEVEHINSTALLMODPRICE.getProDefId());
if (r == 1) {

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;
}
}

2
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleexamine/AppScmVehicleExamineDetailsVo.java

@ -48,6 +48,8 @@ public class AppScmVehicleExamineDetailsVo implements Vo {
@ApiModelProperty("定位")
private String location;
@ApiModelProperty("经纬度code")
private String addressCode;
@ApiModelProperty("车型配置差异说明")
private String modelDifferenceExplain; // 车型配置差异说明

6
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleinventory/AppScmVehicleStayInventoryDto.java

@ -101,4 +101,10 @@ public class AppScmVehicleStayInventoryDto implements Dto {
@ApiModelProperty(value = "备注")
private String remarks;
@ApiModelProperty("定位")
private String address;
@ApiModelProperty("定位经纬度")
private String addressCode;
}

6
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleinventory/AppScmVehicleStayInventoryInfoVo.java

@ -99,4 +99,10 @@ public class AppScmVehicleStayInventoryInfoVo implements Vo {
@ApiModelProperty("创建组织sid")
private String createOrgSid;
@ApiModelProperty("定位")
private String address;
@ApiModelProperty("定位经纬度")
private String addressCode;
}

4
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleinventory/ScmVehicleInventory.java

@ -76,5 +76,9 @@ public class ScmVehicleInventory extends BaseEntity {
private String useOrgName; // 使用组织
@ApiModelProperty("备注")
private String remarks; // 使用组织
@ApiModelProperty("定位")
private String address;
@ApiModelProperty("定位经纬度")
private String addressCode;
}

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) {

43
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleexamine/ScmVehicleExamineMapper.xml

@ -22,24 +22,24 @@
<select id="getCarInspectedList"
resultType="com.yxt.anrui.scm.api.scmvehicleexamine.AppScmVehicleExaminePageVo">
SELECT sve.sid as inspectedSid,
sve.modelName as model,
sve.vinNo as vin,
sve.departureDate as dispatchedDate,
sve.purchaseType,
sve.inspection as inspectedName,
sve.inspectionDate as inspectedDate,
sve.inspectionResult as inspectedType,
sve.saveStatus
SELECT sve.sid as inspectedSid,
sve.modelName as model,
sve.vinNo as vin,
sve.departureDate as dispatchedDate,
sve.purchaseType,
sve.inspection as inspectedName,
sve.inspectionDate as inspectedDate,
sve.inspectionResult as inspectedType,
sve.saveStatus
FROM scm_vehicle_examine sve
<where>
${ew.sqlSegment}
<if test="names != '' and names != null">
and concat(sve.vinNo
, sve.modelName
, sve.purchaseType) LIKE concat('%'
, #{names}
, '%')
, sve.modelName
, sve.purchaseType) LIKE concat('%'
, #{names}
, '%')
</if>
</where>
ORDER BY sve.createTime DESC
@ -76,6 +76,7 @@
sve.inspectionResult as `state`,
sve.remarks,
sve.address as location,
sve.addressCode,
sve.price,
sve.modelDifferenceExplain,
sve.guaranteeCardNo,
@ -86,14 +87,14 @@
<select id="selectCarInspectedList"
resultType="com.yxt.anrui.scm.api.scmvehicleexamine.ScmVehicleExaminePageVo">
SELECT sve.sid as inspectedSid,
sve.modelName as model,
sve.vinNo as vin,
sve.departureDate as dispatchedDate,
sve.purchaseType,
sve.inspection as inspectedName,
sve.inspectionDate as inspectedDate,
sve.inspectionResult as inspectedType
SELECT sve.sid as inspectedSid,
sve.modelName as model,
sve.vinNo as vin,
sve.departureDate as dispatchedDate,
sve.purchaseType,
sve.inspection as inspectedName,
sve.inspectionDate as inspectedDate,
sve.inspectionResult as inspectedType
FROM scm_vehicle_examine sve
<where>
${ew.sqlSegment}

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;
}
}

8
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleinventory/ScmVehicleInventoryService.java

@ -279,9 +279,13 @@ public class ScmVehicleInventoryService extends MybatisBaseService<ScmVehicleInv
String inventoryName = dto.getInventoryName();
String inventoryState = dto.getInventoryState();
String remarks = dto.getRemarks();
if ("不通过".equals(inventoryState) && StringUtils.isBlank(remarks)) {
if ("2".equals(inventoryState) && StringUtils.isBlank(remarks)) {
return rb.setMsg("备注请填写不通过原因");
}
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
if (simpleDateFormat.format(new Date()).equals(dto.getLastData())) {
return rb.setMsg("今日已盘车辆,请勿重复提交");
}
// if (StringUtils.isBlank(inventoryName)) {
// return rb.setMsg("请选择盘库人员");
// }
@ -346,6 +350,8 @@ public class ScmVehicleInventoryService extends MybatisBaseService<ScmVehicleInv
scmVehicleInventory.setInventoryDate(simpleDateFormat.format(new Date()));
scmVehicleInventory.setInventorySid(dto.getLoginSid());
scmVehicleInventory.setInventoryName(dto.getLoginName());
scmVehicleInventory.setAddress(dto.getAddress());
scmVehicleInventory.setAddressCode(dto.getAddressCode());
boolean b = updateById(scmVehicleInventory);
if (!b) {
return rb.setMsg("操作失败");

4
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclestayinventory/ScmVehicleStayInventoryMapper.xml

@ -20,9 +20,9 @@
FROM
scm_vehicle_stay_inventory svsi
LEFT JOIN scm_vehicle_inventory svi
ON svsi.`mainSid` = svi.`mainSid`
ON svsi.`mainSid` = svi.`mainSid` AND svsi.createOrgSid = svi.createOrgSid
LEFT JOIN anrui_base.`base_vehicle` bv
ON bv.`vinNo` = svsi.mainSid
ON bv.`vinNo` = svsi.mainSid AND svsi.createOrgSid = bv.createOrgSid
<where>${ew.sqlSegment}</where>
GROUP BY svsi.`mainSid`
</select>

5
anrui-scm/anrui-scm-ui/src/api/portal/Upload.js

@ -19,8 +19,7 @@ export const uploadFile_yanchejiancha = '/api/scm/file/upload'
export function deleteFilesOss(data) {
return request({
url: '/base/v1/baseVehicleAppendixs/deleteFilesOss', // data,
method: 'post',
data: qs.stringify(data),
// headers: { 'Content-Type': 'multipart/form-data' }
method: 'post',
params: { fullPath: data }
})
}

16
anrui-scm/anrui-scm-ui/src/components/uploadFile/FaImages.vue

@ -13,7 +13,7 @@
</template>
<script>
import { uploadFile } from '@/api/portal/Upload'
import { uploadFile, deleteFilesOss } from '@/api/portal/Upload'
import { getStorage } from '@/utils/auth.js'
export default {
model: {
@ -139,13 +139,17 @@ export default {
},
removeImage(file, ImageFileList) {
this.files.splice(this.files.indexOf(file), 1)
const imgFiles = []
deleteFilesOss(file.url).then((res) => {
if (res.success) {
this.files.splice(this.files.indexOf(file), 1)
const imgFiles = []
this.files.forEach((o) => {
imgFiles.push(o.url)
this.files.forEach((o) => {
imgFiles.push(o.url)
})
this.$emit('fileChange', this.files)
}
})
this.$emit('fileChange', this.files)
},
handlePictureCardPreview(file) {
this.dialogVisible = true

55
anrui-scm/anrui-scm-ui/src/views/cheliang/cheliangcaigou/cheliangcaigouAdd.vue

@ -174,23 +174,48 @@ export default {
})
},
saveEdit() {
const _this = this
this.$refs['form_obj'].validate(valid => {
if (valid) {
this.submitdisabled = true
req.saveEdit(this.formobj, this.formobj.sid).then(resp => {
this.submitdisabled = false
if (resp.success) {
_this.$message({showClose: true, type: 'success', message: resp.msg})
_this.handleReturn('true')
if (this.formobj.offlineDate !== '' && this.formobj.offlineDate !== null) {
const tip = '录入下线日期保存后将不能再次修改'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$refs['form_obj'].validate(valid => {
if (valid) {
this.submitdisabled = true
req.saveEdit(this.formobj, this.formobj.sid).then(resp => {
this.submitdisabled = false
if (resp.success) {
this.$message({ showClose: true, type: 'success', message: resp.msg })
this.handleReturn('true')
}
}).catch(() => {
this.submitdisabled = false
})
} else {
return false
}
}).catch(() => {
this.submitdisabled = false
})
} else {
return false
}
})
})
} else {
this.$refs['form_obj'].validate(valid => {
if (valid) {
this.submitdisabled = true
req.saveEdit(this.formobj, this.formobj.sid).then(resp => {
this.submitdisabled = false
if (resp.success) {
this.$message({ showClose: true, type: 'success', message: resp.msg })
this.handleReturn('true')
}
}).catch(() => {
this.submitdisabled = false
})
} else {
return false
}
})
}
},
handleLook(sid) {
this.viewState = 2

1
anrui-scm/anrui-scm-ui/src/views/cheliang/cheliangtaizhang/cheliangtaizhang.vue

@ -68,6 +68,7 @@
<el-table-column prop="locationName" width="140" label="存放地点" align="center"/>
<el-table-column prop="vehicleStateValue" width="100" label="库存状态" align="center"/>
<el-table-column prop="priceDate" width="130" label="厂家入库日期" align="center"/>
<el-table-column prop="libraryAge" width="80" label="库龄(天)" align="center"/>
<el-table-column prop="arrivalDate" width="130" label="到货日期" align="center"/>
<el-table-column prop="configName" width="460" label="常用配置名称" align="left" header-align="center"/>
<el-table-column prop="contractPrice" width="130" label="厂家合同价" align="center"/>

2
anrui-scm/anrui-scm-ui/src/views/kucunguanli/cheliangweihu/richangxunjian/xunjiandan.vue

@ -196,6 +196,8 @@ export default {
if (this.formobj.dutyName !== '') {
this.$message({ showClose: true, type: 'error', message: '因已选择相关责任人,不能点击通过' })
return
} else {
this.formobj.dutySid = ''
}
console.log(this.formobj)
this.$refs['form_obj'].validate((valid) => {

2
anrui-scm/anrui-scm-ui/src/views/supplychain/cunfangdidianbiangeng/cunfangdidianbiangengAdd.vue

@ -112,7 +112,7 @@
</el-form-item>
</el-col>
<el-col :span="3">
<span>临牌</span>
<span>临牌牌照号</span>
</el-col>
<el-col :span="9">
<el-form-item>

2
anrui-scm/anrui-scm-ui/src/views/supplychain/cunfangdidianbiangeng/cunfangdidianbiangengInfo.vue

@ -101,7 +101,7 @@
</el-form-item>
</el-col>
<el-col :span="3">
<span>临牌</span>
<span>临牌牌照号</span>
</el-col>
<el-col :span="9">
<el-form-item>

38
anrui-scm/anrui-scm-ui/src/views/weishoumaiduan/weishoumaiduanguanli/unsoldAdd.vue

@ -29,6 +29,12 @@
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.applicationName }}</span></el-form-item>
</el-col>
</el-row>
<el-row class="rowStyle">
<el-col :span="24" class="colStyle">
<div class="span-sty spanOneWidth"><span>申请买断费用:</span></div>
<el-form-item><el-input class="addinputw addinputOne" v-model="formobj.money" @keyup.native="UpNumber" @keydown.native="UpNumber" clearable style="width: 15%"></el-input></el-form-item>
</el-col>
</el-row>
<el-row class="rowStyle">
<el-col :span="24" class="colStyle">
<div class="span-sty spanOneWidth"><span>买断原因:</span></div>
@ -38,7 +44,7 @@
<div class="title">
<div>车辆列表</div>
<div>
<el-button type="primary" size="mini" icon="el-icon-plus" @click="addCommodity()">选择车辆</el-button>
<el-button type="primary" size="mini" icon="el-icon-plus" class="btntopblueline" @click="addCommodity()">选择车辆</el-button>
</div>
</div>
<el-table :key="tableKey" :data="formobj.detailsList" :index="index" border style="width: 100%">
@ -59,11 +65,21 @@
<span>{{ scope.row.modelName }}</span>
</template>
</el-table-column>
<el-table-column label="入库日期" align="center">
<el-table-column label="厂家入库日期" align="center">
<template slot-scope="scope">
<span>{{ scope.row.inboundDate }}</span>
</template>
</el-table-column>
<el-table-column label="库龄(天)" align="center">
<template slot-scope="scope">
<span>{{ scope.row.dayNum }}</span>
</template>
</el-table-column>
<el-table-column label="内部编码" align="center">
<template slot-scope="scope">
<span>{{ scope.row.insideCode }}<span>({{ scope.row.vehicleNum }})</span></span>
</template>
</el-table-column>
<el-table-column label="厂家结算价" align="center">
<template slot-scope="scope">
<span>{{ scope.row.inboundPrice }}</span>
@ -98,6 +114,7 @@ export default {
formobj: {
sid: '', // sid
applicationName: '',
money: '',
createTime: '',
reason: '',
userSid: '',
@ -124,6 +141,16 @@ export default {
}
this.formobj.createTime = year + '-' + month + '-' + day
},
UpNumber(e) {
e.target.value = e.target.value.replace(/[^\d]/g, '') // ."-"
e.target.value = e.target.value.replace(/^00/, '0') // 0
if (e.target.value.indexOf('.') < 0 && e.target.value !== '' && e.target.value !== '-') {
// 0102
console.log(e.target.value)
e.target.value = parseFloat(e.target.value)
}
this.formobj.money = e.target.value
},
//
addCommodity() {
this.viewState = 2
@ -164,7 +191,10 @@ export default {
inboundDate: e.priceDate,
inboundPrice: e.priced,
modelName: e.vehicleAlias,
vinNo: e.vinNo
vinNo: e.vinNo,
insideCode: e.insideCode,
vehicleNum: e.vehicleNum,
dayNum: e.dayNum
})
})
}
@ -245,7 +275,7 @@ export default {
width: 150px !important;
}
.addinputOne {
margin-left: 150px !important;
margin-left: 140px !important;
}
.rowStyle {
border-left: 0px;

20
anrui-scm/anrui-scm-ui/src/views/weishoumaiduan/weishoumaiduanguanli/unsoldInfo.vue

@ -25,6 +25,12 @@
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.applicationName }}</span></el-form-item>
</el-col>
</el-row>
<el-row class="rowStyle">
<el-col :span="24" class="colStyle">
<div class="span-sty spanOneWidth"><span>申请买断费用:</span></div>
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.money }}</span></el-form-item>
</el-col>
</el-row>
<el-row class="rowStyle">
<el-col :span="24" class="colStyle">
<div class="span-sty spanOneWidth"><span>买断原因:</span></div>
@ -46,11 +52,21 @@
<span>{{ scope.row.modelName }}</span>
</template>
</el-table-column>
<el-table-column label="入库日期" align="center">
<el-table-column label="厂家入库日期" align="center">
<template slot-scope="scope">
<span>{{ scope.row.inboundDate }}</span>
</template>
</el-table-column>
<el-table-column label="库龄(天)" align="center">
<template slot-scope="scope">
<span>{{ scope.row.dayNum }}</span>
</template>
</el-table-column>
<el-table-column label="内部编码" align="center">
<template slot-scope="scope">
<span>{{ scope.row.insideCode }}<span>({{ scope.row.vehicleNum }})</span></span>
</template>
</el-table-column>
<el-table-column label="厂家结算价" align="center">
<template slot-scope="scope">
<span>{{ scope.row.inboundPrice }}</span>
@ -135,7 +151,7 @@ export default {
width: 150px !important;
}
.addinputOne {
margin-left: 150px !important;
margin-left: 140px !important;
}
.rowStyle {
border-left: 0px;

5
anrui-scm/anrui-scm-ui/src/views/weishoumaiduan/weishoumaiduanguanli/vehicle.vue

@ -306,7 +306,10 @@ export default {
vehicleAlias: element.vehicleAlias,
modelSid: element.modelSid,
priceDate: element.priceDate,
priced: element.priced
priced: element.priced,
insideCode: element.insideCode,
vehicleNum: element.vehicleNum,
dayNum: element.dayNum
})
})
this.sids = aa

2
anrui-scm/anrui-scm-ui/src/views/workFlow/cunfangdidianbiangengFlow/cunfangdidianbiangengEdit.vue

@ -107,7 +107,7 @@
</el-form-item>
</el-col>
<el-col :span="3">
<span>临牌</span>
<span>临牌牌照号</span>
</el-col>
<el-col :span="9">
<el-input v-model="temp.temporaryCard" maxlength="125" placeholder="" class="addinputw" clearable/>

2
anrui-scm/anrui-scm-ui/src/views/workFlow/cunfangdidianbiangengFlow/cunfangdidianbiangengInfo.vue

@ -101,7 +101,7 @@
</el-form-item>
</el-col>
<el-col :span="3">
<span>临牌</span>
<span>临牌牌照号</span>
</el-col>
<el-col :span="9">
<el-form-item>

5
anrui-scm/anrui-scm-ui/src/views/workFlow/weishoumaiduanFlow/weishoumaiduanguanli/vehicle.vue

@ -306,7 +306,10 @@ export default {
vehicleAlias: element.vehicleAlias,
modelSid: element.modelSid,
priceDate: element.priceDate,
priced: element.priced
priced: element.priced,
insideCode: element.insideCode,
vehicleNum: element.vehicleNum,
dayNum: element.dayNum
})
})
this.sids = aa

22
anrui-scm/anrui-scm-ui/src/views/workFlow/weishoumaiduanFlow/weishoumaiduanguanli/weishoumaiduanDaiBanInfo.vue

@ -27,6 +27,12 @@
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.applicationName }}</span></el-form-item>
</el-col>
</el-row>
<el-row class="rowStyle">
<el-col :span="24" class="colStyle">
<div class="span-sty spanOneWidth"><span>申请买断费用:</span></div>
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.money }}</span></el-form-item>
</el-col>
</el-row>
<el-row class="rowStyle">
<el-col :span="24" class="colStyle">
<div class="span-sty spanOneWidth"><span>买断原因:</span></div>
@ -48,11 +54,21 @@
<span>{{ scope.row.modelName }}</span>
</template>
</el-table-column>
<el-table-column label="入库日期" align="center">
<el-table-column label="厂家入库日期" align="center">
<template slot-scope="scope">
<span>{{ scope.row.inboundDate }}</span>
</template>
</el-table-column>
<el-table-column label="库龄(天)" align="center">
<template slot-scope="scope">
<span>{{ scope.row.dayNum }}</span>
</template>
</el-table-column>
<el-table-column label="内部编码" align="center">
<template slot-scope="scope">
<span>{{ scope.row.insideCode }}<span>({{ scope.row.vehicleNum }})</span></span>
</template>
</el-table-column>
<el-table-column label="厂家结算价" align="center">
<template slot-scope="scope">
<span>{{ scope.row.inboundPrice }}</span>
@ -150,7 +166,7 @@ export default {
params: {
//
code: 2,
data: 340 + 'px'
data: 390 + 'px'
}
}, '*')
},
@ -307,7 +323,7 @@ export default {
width: 150px !important;
}
.addinputOne {
margin-left: 150px !important;
margin-left: 140px !important;
}
.rowStyle {
border-left: 0px;

20
anrui-scm/anrui-scm-ui/src/views/workFlow/weishoumaiduanFlow/weishoumaiduanguanli/weishoumaiduanYiBanInfo.vue

@ -25,6 +25,12 @@
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.applicationName }}</span></el-form-item>
</el-col>
</el-row>
<el-row class="rowStyle">
<el-col :span="24" class="colStyle">
<div class="span-sty spanOneWidth"><span>申请买断费用:</span></div>
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.money }}</span></el-form-item>
</el-col>
</el-row>
<el-row class="rowStyle">
<el-col :span="24" class="colStyle">
<div class="span-sty spanOneWidth"><span>买断原因:</span></div>
@ -51,6 +57,16 @@
<span>{{ scope.row.inboundDate }}</span>
</template>
</el-table-column>
<el-table-column label="库龄(天)" align="center">
<template slot-scope="scope">
<span>{{ scope.row.dayNum }}</span>
</template>
</el-table-column>
<el-table-column label="内部编码" align="center">
<template slot-scope="scope">
<span>{{ scope.row.insideCode }}<span>({{ scope.row.vehicleNum }})</span></span>
</template>
</el-table-column>
<el-table-column label="厂家结算价" align="center">
<template slot-scope="scope">
<span>{{ scope.row.inboundPrice }}</span>
@ -111,7 +127,7 @@ export default {
params: {
//
code: 2,
data: 340 + 'px'
data: 390 + 'px'
}
}, '*')
},
@ -181,7 +197,7 @@ export default {
width: 150px !important;
}
.addinputOne {
margin-left: 150px !important;
margin-left: 140px !important;
}
.rowStyle {
border-left: 0px;

40
anrui-scm/anrui-scm-ui/src/views/workFlow/weishoumaiduanFlow/weishoumaiduanguanli/weushoumaiduanEdit.vue

@ -28,6 +28,12 @@
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.applicationName }}</span></el-form-item>
</el-col>
</el-row>
<el-row class="rowStyle">
<el-col :span="24" class="colStyle">
<div class="span-sty spanOneWidth"><span>申请买断费用:</span></div>
<el-form-item><el-input class="addinputw addinputOne" v-model="formobj.money" @keyup.native="UpNumber" @keydown.native="UpNumber" clearable style="width: 15%"></el-input></el-form-item>
</el-col>
</el-row>
<el-row class="rowStyle">
<el-col :span="24" class="colStyle">
<div class="span-sty spanOneWidth"><span>买断原因:</span></div>
@ -37,7 +43,7 @@
<div class="title">
<div>车辆列表</div>
<div>
<el-button type="primary" size="mini" icon="el-icon-plus" @click="addCommodity()">选择车辆</el-button>
<el-button type="primary" size="mini" icon="el-icon-plus" class="btntopblueline" @click="addCommodity()">选择车辆</el-button>
</div>
</div>
<el-table :key="tableKey" :data="formobj.detailsList" :index="index" border style="width: 100%">
@ -58,11 +64,21 @@
<span>{{ scope.row.modelName }}</span>
</template>
</el-table-column>
<el-table-column label="入库日期" align="center">
<el-table-column label="厂家入库日期" align="center">
<template slot-scope="scope">
<span>{{ scope.row.inboundDate }}</span>
</template>
</el-table-column>
<el-table-column label="库龄(天)" align="center">
<template slot-scope="scope">
<span>{{ scope.row.dayNum }}</span>
</template>
</el-table-column>
<el-table-column label="内部编码" align="center">
<template slot-scope="scope">
<span>{{ scope.row.insideCode }}<span>({{ scope.row.vehicleNum }})</span></span>
</template>
</el-table-column>
<el-table-column label="厂家结算价" align="center">
<template slot-scope="scope">
<span>{{ scope.row.inboundPrice }}</span>
@ -97,6 +113,7 @@ export default {
formobj: {
sid: '', // sid
applicationName: '',
money: '',
createTime: '',
reason: '',
userSid: '',
@ -121,11 +138,21 @@ export default {
params: {
//
code: 2,
data: 350 + 'px'
data: 390 + 'px'
}
}, '*')
},
methods: {
UpNumber(e) {
e.target.value = e.target.value.replace(/[^\d]/g, '') // ."-"
e.target.value = e.target.value.replace(/^00/, '0') // 0
if (e.target.value.indexOf('.') < 0 && e.target.value !== '' && e.target.value !== '-') {
// 0102
console.log(e.target.value)
e.target.value = parseFloat(e.target.value)
}
this.formobj.money = e.target.value
},
//
addCommodity() {
this.viewState = 2
@ -157,7 +184,10 @@ export default {
inboundDate: e.priceDate,
inboundPrice: e.priced,
modelName: e.vehicleAlias,
vinNo: e.vinNo
vinNo: e.vinNo,
insideCode: e.insideCode,
vehicleNum: e.vehicleNum,
dayNum: e.dayNum
})
})
}
@ -235,7 +265,7 @@ export default {
width: 150px !important;
}
.addinputOne {
margin-left: 150px !important;
margin-left: 140px !important;
}
.rowStyle {
border-left: 0px;

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;
}

6
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/inventory/StayInventoryDetailedsVo.java

@ -78,5 +78,11 @@ public class StayInventoryDetailedsVo implements Vo {
@ApiModelProperty("见证材料")
private List<String> images = new ArrayList<>();
@ApiModelProperty("定位")
private String address;
@ApiModelProperty("定位经纬度")
private String addressCode;
}

6
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/inventory/StayInventoryDto.java

@ -74,4 +74,10 @@ public class StayInventoryDto implements Dto {
@ApiModelProperty("见证材料")
private List<String> images;
@ApiModelProperty("定位")
private String address;
@ApiModelProperty("定位经纬度")
private String addressCode;
}

6
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/inventory/StayInventoryInfoVo.java

@ -92,4 +92,10 @@ public class StayInventoryInfoVo implements Vo {
@ApiModelProperty("见证材料")
private List<String> images;
@ApiModelProperty("定位")
private String address;
@ApiModelProperty("定位经纬度")
private String addressCode;
}

6
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/modelAdjust/AppBaseModelModpriceFeign.java

@ -64,6 +64,7 @@ import javax.validation.Valid;
public interface AppBaseModelModpriceFeign {
@ApiOperation("获取车型调车详情")
@ResponseBody
@GetMapping("/getModelAdjust/{sid}")
public ResultBean<ModelModpriceDetailVo> getModelAdjust(@PathVariable("sid") String sid);
@ -71,22 +72,27 @@ public interface AppBaseModelModpriceFeign {
@ApiOperation("提交车型调价流程")
@PostMapping("/submitModelAdjustInfo")
@ResponseBody
public ResultBean submitModelAdjustInfo(@Valid @RequestBody SubmitModelModPriceDto dto);
@ApiOperation(value = "办理(同意)")
@PutMapping("/agreeModelAdjustInfo")
@ResponseBody
public ResultBean agreeModelAdjustInfo(@Valid @RequestBody ModelModPriceCompleteDto query);
@ApiOperation(value = "驳回任务")
@ResponseBody
@PutMapping(value = "/rejectModelAdjustInfo")
public ResultBean rejectModelAdjustInfo(@Valid @RequestBody ModelModPriceTaskQuery query);
@ApiOperation(value = "撤回流程")
@PutMapping(value = "/recallModelAdjustInfo")
@ResponseBody
public ResultBean recallModelAdjustInfo(@Valid @RequestBody ModelModPriceTaskQuery query);
@ApiOperation(value = "终止任务")
@PutMapping(value = "/stopModelAdjustInfo")
@ResponseBody
public ResultBean stopModelAdjustInfo(@Valid @RequestBody ModelModPriceTaskQuery query);
@ApiOperation("获取流程操作标题")

2
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/modelAdjust/ModelModPriceCompleteDto.java

@ -16,7 +16,7 @@ public class ModelModPriceCompleteDto implements Dto {
@NotBlank(message = "参数错误:userSid")
private String userSid;
@ApiModelProperty(value = "用户全路径sid")
@NotBlank(message = "参数错误:orgSidPath")
// @NotBlank(message = "参数错误:orgSidPath")
private String orgSidPath;
@ApiModelProperty(value = "节点id")
@NotBlank(message = "参数错误:taskDefKey")

3
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/scmvehicleexamine/AppExamineDetailsVo.java

@ -56,6 +56,9 @@ public class AppExamineDetailsVo implements Vo {
@ApiModelProperty("定位")
private String location;
@ApiModelProperty("经纬度code")
private String addressCode;
@ApiModelProperty("项目内容")
private List<InspectionItemVo> inspectList;

7
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/unsoldBuyout/UnsoldBuyoutDetailsListVo.java

@ -30,4 +30,11 @@ public class UnsoldBuyoutDetailsListVo implements Vo {
private String modelSid;
@ApiModelProperty("配置sid")
private String configSid;
@ApiModelProperty("内部编码")
private String insideCode;
@ApiModelProperty("库龄")
private int dayNum;
@ApiModelProperty("车辆数量")
private int vehicleNum;
}

3
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/unsoldBuyout/UnsoldBuyoutVo.java

@ -1,6 +1,5 @@
package com.yxt.anrui.terminal.api.supplychain.unsoldBuyout;
import com.yxt.anrui.base.api.basevehicleactualdetails.AppBaseVehicleActualDetailsVo;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -31,5 +30,5 @@ public class UnsoldBuyoutVo implements Vo {
@ApiModelProperty("买断原因")
private String reason;
private List<AppBaseVehicleActualDetailsVo> records;
private List<UnsoldBuyoutDetailsListVo> records;
}

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