Browse Source

Merge remote-tracking branch 'origin/master'

master
God 3 years ago
parent
commit
470dfc1238
  1. 3
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleapply/app/AppVehicleApplyVo.java
  2. 3
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleRest.java
  3. 5
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java
  4. 3
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleapply/BusVehicleApplyMapper.xml
  5. 151
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleapply/BusVehicleApplyService.java
  6. 6
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdeposit/AppBusDepositBusDetailsVo.java
  7. 3
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdeposit/AppBusDepositBuscenterDetailVo.java
  8. 2
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdepositvehicle/AppBusDepositVehicleCarListDto.java
  9. 3
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdepositvehicle/AppBusDepositVehicleCarListVo.java
  10. 4
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdepositvehicle/AppBusDepositVehicleListVo.java
  11. 3
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdepositvehicle/BusDepositVehicle.java
  12. 6
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busmaindeposit/BusMainDepositListVo.java
  13. 2
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeign.java
  14. 9
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/app/order/AppBusSaleOrderStateVo.java
  15. 2
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/app/order/AppOrderDepositInfoVo.java
  16. 14
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/app/order/AppOrderDetailsVo.java
  17. 1
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/flowable/BusSaleOrderNodeQuery.java
  18. 3
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordersubmit/BusSalesOrderSubmitDto.java
  19. 19
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeposit/BusDepositService.java
  20. 2
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdepositvehicle/BusDepositVehicleMapper.xml
  21. 1
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdepositvehicle/BusDepositVehicleService.java
  22. 4
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busmaindeposit/BusMainDepositMapper.xml
  23. 15
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busmaindeposit/BusMainDepositService.java
  24. 8
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderMapper.xml
  25. 12
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java
  26. 2
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderdeposit/BusSalesOrderDepositMapper.xml
  27. 3
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderdeposit/BusSalesOrderDepositService.java
  28. 2
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordersubmit/BusSalesOrderSubmitMapper.java
  29. 9
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordersubmit/BusSalesOrderSubmitMapper.xml
  30. 46
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordersubmit/BusSalesOrderSubmitService.java
  31. 20
      anrui-buscenter/anrui-buscenter-ui/src/api/dictcommons/dictcommons.js
  32. 74
      anrui-buscenter/anrui-buscenter-ui/src/api/flow/jianyidingdan.js
  33. 76
      anrui-buscenter/anrui-buscenter-ui/src/api/jichuxinxi/busdeposit.js
  34. 12
      anrui-buscenter/anrui-buscenter-ui/src/api/jichuxinxi/busdepositvehicle.js
  35. 24
      anrui-buscenter/anrui-buscenter-ui/src/api/portal/workFlow.js
  36. 429
      anrui-buscenter/anrui-buscenter-ui/src/views/workflow/xiaoshouguanliFlow/xunidingdanFlow/cheliangyuding.vue
  37. 596
      anrui-buscenter/anrui-buscenter-ui/src/views/workflow/xiaoshouguanliFlow/xunidingdanFlow/cheliangyudingEdit.vue
  38. 240
      anrui-buscenter/anrui-buscenter-ui/src/views/workflow/xiaoshouguanliFlow/xunidingdanFlow/cheliangyudingInfo.vue
  39. 649
      anrui-buscenter/anrui-buscenter-ui/src/views/workflow/xiaoshouguanliFlow/xunidingdanFlow/dingjinshouqu.vue
  40. 566
      anrui-buscenter/anrui-buscenter-ui/src/views/workflow/xiaoshouguanliFlow/xunidingdanFlow/dingjinshouquEdit.vue
  41. 226
      anrui-buscenter/anrui-buscenter-ui/src/views/workflow/xiaoshouguanliFlow/xunidingdanFlow/dingjinshouquInfo.vue
  42. 166
      anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/xiaoshoudingdan/xiaoshoudingdanAdd.vue
  43. 8
      anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/xunidingdan/com/xuanzecheliang.vue
  44. 11
      anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/xunidingdan/com/xuanzekehu.vue
  45. 782
      anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/xunidingdan/xunidingdanAdd.vue
  46. 692
      anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/xunidingdan/xunidingdanguanli.vue
  47. 57
      anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/xunidingdan/xunidingdaninfo.vue
  48. 1097
      anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/xunidingdan/xunidingjinAdd.vue
  49. 233
      anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/xunidingdan/xunidingjininfo.vue
  50. 14
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java
  51. 12
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java
  52. 214
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/purmrb/PurMrb.java
  53. 181
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/stkinstock/StkInStock.java
  54. 38
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java
  55. 6
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/KingDeeSaveSKD.java
  56. 1
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appaybill/ApPayBillService.java
  57. 64
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/purmrb/PurMrbCastToKingDeeBillFields.java
  58. 79
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/purmrb/PurMrbService.java
  59. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/purmrb/data.json
  60. 35
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/purmrb/data_FPURMRBENTRY.json
  61. 13
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/purmrb/data_data.json
  62. 53
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/purmrb/data_model.json
  63. 242
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/purmrb/remarks.txt
  64. 0
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/purmrb/testParams.txt
  65. 1
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/purmrb/webapi测试的数据.txt
  66. BIN
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/purmrb/采购退料单的参数必填备注.xlsx
  67. 66
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/STKInStockCastToKingDeeBillFields.java
  68. 79
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/STKInStockService.java
  69. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/data.json
  70. 36
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/data_FInStockEntry.json
  71. 13
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/data_data.json
  72. 54
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/data_model.json
  73. 240
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/remarks.txt
  74. 0
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/testParams.txt
  75. 1
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/webapi测试的数据.txt
  76. BIN
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/采购入库单的参数必填备注.xlsx
  77. 13
      anrui-fin/anrui-fin-biz/src/test/java/com/yxt/anrui/fin/AnruiFinAppTests.java
  78. 18
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/flow/FlowableService.java
  79. 50
      anrui-scm/anrui-scm-ui/src/api/supplychain/hegezhengpandian.js
  80. 109
      anrui-scm/anrui-scm-ui/src/views/supplychain/hegezhengpandianjilu/hegezhengpandianjilu.vue
  81. 113
      anrui-scm/anrui-scm-ui/src/views/supplychain/hegezhengpandianjilu/hegezhengpandianjiluAdd.vue
  82. 1
      anrui-scm/anrui-scm-ui/src/views/weishoumaiduan/weishoumaiduanguanli/unsoldguanli.vue
  83. 2
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/flowable/OrderSubmitDto.java
  84. 3
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/order/OrderDepositInfoVo.java
  85. 13
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/order/OrderDetailsVo.java
  86. 2
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/order/OrderDiscountListVo.java
  87. 10
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/order/OrderStateVo.java
  88. 2
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/vehicleApply/VehicleApplyVo.java

3
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleapply/app/AppVehicleApplyVo.java

@ -43,4 +43,7 @@ public class AppVehicleApplyVo implements Vo {
@ApiModelProperty(value = "排产列表")
private List<AppVehicleApplyListVo> records = new ArrayList<>();
@ApiModelProperty(value = "采购类型")
private String applyType;
}

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

@ -346,9 +346,6 @@ public class BaseVehicleRest implements BaseVehicleFeign {
@Override
public ResultBean<PagerVo<BaseVehicleListVo>> getExiCarPagerList(PagerQuery<ExiCarQuery> pq) {
ResultBean<PagerVo<BaseVehicleListVo>> rb = ResultBean.fireFail();
// 设置条件
pq.getParams().setVehicleState("现车、库存");
pq.getParams().setLockedState("未锁定、未预定");
IPage<BaseVehicleListVo> page = baseVehicleService.getExiCarPagerList(pq);
PagerVo<BaseVehicleListVo> pv = new PagerVo<>();
PagerVo<BaseVehicleListVo> pv1 = PagerUtil.pageToVo(page, pv);

5
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java

@ -658,11 +658,12 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
// 虚拟订单选择车辆查询现车库存列表参数
if (StringUtils.isNotBlank(params.getVehicleState())) { //车辆状态
qw.and(wrapper -> wrapper.eq("bv.vehicleStateValue", "现车").or().eq("bv.vehicleStateValue", "库存"));
qw.and(wrapper -> wrapper.eq("bv.vehicleState", VehicleState.StockEnum.STOCK));
}
if (StringUtils.isNotBlank(params.getLockedState())) { //锁定状态
// qw.and(wrapper -> wrapper.ne("bv.lockedStateValue", "预定").and(wrapper1 -> wrapper1.ne("bv.lockedStateValue", "锁定")));
qw.and(wrapper -> wrapper.isNull("bv.lockedStateValue").or().eq("bv.lockedStateValue", ""));
// .isNull("bv.lockedStateValue").or()
qw.and(wrapper -> wrapper.eq("bv.lockedState", VehicleState.LockEnum.UN_LOCK));
}
return qw;
}

3
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleapply/BusVehicleApplyMapper.xml

@ -72,7 +72,8 @@
ba.procInstId,
ba.taskId,
ba.createOrgSid as userSid,
ba.createOrgName
ba.createOrgName,
ba.applyType
from bus_vehicle_apply ba
where sid = #{sid}
</select>

151
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleapply/BusVehicleApplyService.java

@ -33,6 +33,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.sysorganization.SysOrganizationFeign;
@ -42,26 +44,21 @@ 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.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.JPushServer;
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.AppMessageDto;
import com.yxt.messagecenter.api.message.MessageFeign;
import com.yxt.messagecenter.api.messagelist.MessageListDto;
import com.yxt.messagecenter.api.message.MessageFlowableDto;
import com.yxt.messagecenter.api.message.MessageJsonDto;
import com.yxt.messagecenter.api.messagelist.MessageListFeign;
import com.yxt.messagecenter.api.messagetype.MessageTypeFeign;
import com.yxt.messagecenter.api.messagetype.MessageTypeVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.stream.Collectors;
/**
@ -110,6 +107,8 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa
private MessageFeign messageFeign;
@Autowired
private MessageListFeign messageListFeign;
@Autowired
private SysProUrlFeign sysProUrlFeign;
/**
* 分页列表
@ -374,8 +373,8 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa
}
UpdateFlowFieldVo ufVo = voResultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(ufVo));
//极光推送信息
// messageJpush(businessSid, ufVo.getNextNodeUserSids());
//极光推送
String msgSid = getMessage(ufVo, appMap, busVehicleApply);
return voResultBean;
}
if (r == 2) {
@ -392,71 +391,6 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa
return rb;
}
public void messageJpush(String businessSid, String nextSid) {
BusVehicleApply busVehicleApply = fetchBySid(businessSid);
List<String> stringList = Arrays.asList(nextSid.split(","));
//根据用户的sid查询用户的id
ResultBean<String> stringList1 = sysUserFeign.selectIdBySid(stringList);
List<String> stringList2 = Arrays.asList(stringList1.getData().split(","));
//标题、内容、消息类别key、消息类别名称、
String msgSid = getMessage(stringList);
for (int i = 0; i < stringList2.size(); i++) {
JPushServer.sendPushAlias("排产申请审批", busVehicleApply.getCreateByName() + "的排产申请", "msg_type", "审批中心", stringList2.get(i));
}
}
public String getMessage(List<String> list) {
//1、buttons:int[]{3,4,5}、taskId、taskName、procInsId、taskDefKey
//根据taskDefKey、流程标识、以及
// 1、保存消息体
AppMessageDto messageDto = new AppMessageDto();
ResultBean<List<MessageTypeVo>> messageBean = messageTypeFeign.selectAppMsgTypeList("0002");
if (messageBean.getSuccess() && messageBean.getData() != null) {
List<MessageTypeVo> typeVoList = messageBean.getData();
for (MessageTypeVo message : typeVoList) {
if (message.getMsgType().equals("审批中心")) {
messageDto.setMsgTypeSid(message.getMsgTypeSid());
messageDto.setMsgType(message.getMsgType());
}
}
}
messageDto.setMsgTitle("排产申请审批");
messageDto.setMsgContent("排产申请审批");
messageDto.setMsgSource("排产");
String msgSid = messageFeign.saveOrUpdateAppMessage(messageDto).getData();
String msgTypeSid = messageDto.getMsgTypeSid();
// 2、保存至消息列表
// 使用多线程保存
List<Future<?>> futures = new ArrayList<Future<?>>();
ExecutorService executor = Executors.newFixedThreadPool(4);
for (String receverSid : list) {
Future<?> f = executor.submit(new Runnable() {
@Override
public void run() {
try {
System.out.println("run start-----------------" + System.currentTimeMillis() + ":" + Thread.currentThread().getName());
MessageListDto messageList = new MessageListDto();
messageList.setMsgSid(msgSid);
messageList.setRDelStatus(0);
messageList.setSDelStatus(0);
messageList.setReceiverSid(receverSid);
messageListFeign.save(messageList);
System.out.println("run end-----------------" + System.currentTimeMillis() + ":" + Thread.currentThread().getName());
} catch (Exception e) {
e.printStackTrace();
}
}
});
futures.add(f);
}
executor.shutdown();
return msgSid;
}
/**
* 判断提交的流程是否被允许
*
@ -503,8 +437,12 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa
*/
public ResultBean complete(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
BusVehicleApply busVehicleApply = fetchBySid(bv.getBusinessSid());
String businessSid = bv.getBusinessSid();
BusVehicleApply busVehicleApply = fetchBySid(businessSid);
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
//根据业务sid查询排产信息
variables.put("money", busVehicleApply.getCurrentAmount().intValue() > 0);
bv.setFormVariables(variables);
@ -513,6 +451,7 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
//ToDo:排产申请通过厂家认款推送
//查询是否是最后一个环节,若状态为通过,需要打款的推送打款状态为未打款厂家认款记录;无需打款的,直接推送打款状态为无需打款的厂家认款记录。
@ -567,8 +506,8 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa
finPaymentrecordDto.setBusSid(r.getData());
finPaymentrecordFeign.save(finPaymentrecordDto);
}
}
String msgSid = getMessage(ufVo, appMap, busVehicleApply);
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
@ -632,11 +571,11 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa
*/
public ResultBean taskReject(BusVehicleApplyTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
BusVehicleApply busVehicleApply = fetchBySid(query.getBusinessSid());
String businessSid = query.getBusinessSid();
BusVehicleApply busVehicleApply = fetchBySid(businessSid);
if (busVehicleApply == null) {
return rb.setMsg("该申请不存在");
}
String businessTaskId = busVehicleApply.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
@ -649,6 +588,9 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
//根据业务sid查询排产信息
variables.put("money", busVehicleApply.getCurrentAmount().intValue() > 0);
flowTaskVo.setValues(variables);
@ -656,9 +598,11 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
UpdateFlowFieldVo ufVo = resultBean.getData();
Map<String, Object> map = BeanUtil.beanToMap(ufVo);
//更新业务中的流程相关的参数
updateFlowFiled(map);
String msgSid = getMessage(ufVo, appMap, busVehicleApply);
return rb.success();
}
}
@ -766,4 +710,53 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa
vo.setPlateThicknessSize("底 " + vo.getPlateThicknessBottom() + " mm,边 " + vo.getPlateThicknessEdge() + " mm");
return rb.success().setData(vo);
}
/**
* 排产申请极光推送-移动端
*
* @param ufVo
* @param appMap
* @param busVehicleApply
* @return
*/
public String getMessage(UpdateFlowFieldVo ufVo, Map<String, Object> appMap, BusVehicleApply busVehicleApply) {
//=====极光推送信息========================================参数组装
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(busVehicleApply.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(busVehicleApply.getCreateByName());
ResultBean<String> stringResultBean = messageFeign.getMessage(messageFlowableDto);
String msgSid = stringResultBean.getData();
return msgSid;
}
}

6
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdeposit/AppBusDepositBusDetailsVo.java

@ -85,5 +85,11 @@ public class AppBusDepositBusDetailsVo implements Vo {
@ApiModelProperty("收款银行账号")
private String collectionNumberKey;
@ApiModelProperty("业务员名称")
private String staffName;
@ApiModelProperty("制单日期")
private String createDate;
}

3
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdeposit/AppBusDepositBuscenterDetailVo.java

@ -66,6 +66,9 @@ public class AppBusDepositBuscenterDetailVo implements Vo {
@ApiModelProperty("创建日期")
private String createDate;
@ApiModelProperty("业务员名称")
private String staffName;
@ApiModelProperty("缴费凭证")
private String paymentProof;

2
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdepositvehicle/AppBusDepositVehicleCarListDto.java

@ -30,5 +30,7 @@ public class AppBusDepositVehicleCarListDto implements Dto {
private String modelSid;
@ApiModelProperty(value = "车辆sid")
private String carSid;
@ApiModelProperty(value = "颜色")
private String colour;
}

3
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdepositvehicle/AppBusDepositVehicleCarListVo.java

@ -30,5 +30,8 @@ public class AppBusDepositVehicleCarListVo implements Vo {
private String carSid;
@ApiModelProperty(value = "客户sid")
private String customerSid;
@ApiModelProperty(value = "颜色")
private String colour;
}

4
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdepositvehicle/AppBusDepositVehicleListVo.java

@ -27,5 +27,9 @@ public class AppBusDepositVehicleListVo implements Vo {
private String modelSid;
@ApiModelProperty(value = "配置sid")
private String configSid;
@ApiModelProperty(value = "存放地点")
private String location;
@ApiModelProperty(value = "颜色")
private String colour;
}

3
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdepositvehicle/BusDepositVehicle.java

@ -82,6 +82,9 @@ public class BusDepositVehicle extends BaseEntity {
@ApiModelProperty("预提车日期(可为空)")
private String reserve_date;
@ApiModelProperty("颜色")
private String colour;
@ApiModelProperty(value = "节点状态")
private String nodeState;
@ApiModelProperty("节点id")

6
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busmaindeposit/BusMainDepositListVo.java

@ -21,6 +21,9 @@ public class BusMainDepositListVo implements Vo {
@ApiModelProperty("单据编号")
private String billNo;
@ApiModelProperty("部门名称")
private String orgName;
@ApiModelProperty("业务员姓名")
private String staffName;
@ -53,4 +56,7 @@ public class BusMainDepositListVo implements Vo {
@ApiModelProperty("预订车辆")
private String depositVehicle;
@ApiModelProperty(value = "客户Sid")
private String customerSid;
}

2
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeign.java

@ -115,10 +115,12 @@ public interface BusSalesOrderFeign {
@ApiOperation(value = "获取上一个环节")
@GetMapping(value = "/getPreviousNodesForReject")
@ResponseBody
ResultBean<List<BusSaleOrderNodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap BusSaleOrderNodeQuery query);
@ApiOperation(value = "获取下一个环节")
@GetMapping(value = "/getNextNodesForSubmit")
@ResponseBody
ResultBean<List<BusSaleOrderNodeVo>> getNextNodesForSubmit(@Valid @SpringQueryMap BusSaleOrderNodeQuery query);
/*-------------------------------------App销售订单接口------------------------------------------------*/

9
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/app/order/AppBusSaleOrderStateVo.java

@ -61,4 +61,13 @@ public class AppBusSaleOrderStateVo implements Vo {
@ApiModelProperty("客户名称")
private String customerName;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("流程id")
private String procInsId;
@ApiModelProperty("任务id")
private String taskId;
}

2
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/app/order/AppOrderDepositInfoVo.java

@ -25,4 +25,6 @@ public class AppOrderDepositInfoVo implements Vo {
@ApiModelProperty(value = "订金sid:后端内部使用")
private String sid;
@ApiModelProperty(value = "订金交纳方式")
private String type;
}

14
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/app/order/AppOrderDetailsVo.java

@ -65,4 +65,18 @@ public class AppOrderDetailsVo implements Vo {
@ApiModelProperty(value = "销售部门sid")
private String orgSid;
@ApiModelProperty("是否有保险信息")
private Boolean insuranceState;
@ApiModelProperty("是否有保险说明")
private Boolean remarksState;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("流程实例id")
private String procInsId;
@ApiModelProperty("任务id")
private String taskId;
}

1
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/flowable/BusSaleOrderNodeQuery.java

@ -20,4 +20,5 @@ public class BusSaleOrderNodeQuery implements Query {
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
}

3
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordersubmit/BusSalesOrderSubmitDto.java

@ -37,5 +37,8 @@ public class BusSalesOrderSubmitDto implements Dto {
@ApiModelProperty(value = "数量")
private Integer num;
@ApiModelProperty("返利备注")
private String remarks;
}

19
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeposit/BusDepositService.java

@ -12,6 +12,7 @@ import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.bouncycastle.voms.VOMSAttribute;
import org.springframework.beans.factory.annotation.Autowired;
@ -84,10 +85,15 @@ public class BusDepositService extends MybatisBaseService<BusDepositMapper, BusD
vo.setTaskId(busMainDeposit.getTaskId());
vo.setProcInsId(busMainDeposit.getProcInsId());
vo.setVirtualOrderSid(virtualOrderSid);
vo.setDepartmentName(busMainDeposit.getOrgName());
vo.setStaffName(busMainDeposit.getStaffName());
vo.setCreateDate(busMainDeposit.getCreateDate());
vo.setUserSid(userSid);
List<String> list = new ArrayList<>();
String url = fileUploadComponent.getUrlPrefix() + vo.getPaymentProof();
list.add(url);
if (StringUtils.isNotBlank(vo.getPaymentProof())) {
String url = fileUploadComponent.getUrlPrefix() + vo.getPaymentProof();
list.add(url);
}
vo.setPayImages(list);
List<AppBusDepositCustomerListVo> customerList = busDepositCustomerService.getAppListByBillSid(virtualOrderSid);
if (customerList.size() < 0) {
@ -109,9 +115,14 @@ public class BusDepositService extends MybatisBaseService<BusDepositMapper, BusD
vo.setProcInsId(busMainDeposit.getProcInsId());
vo.setUserSid(busMainDeposit.getCreateBySid());
vo.setTaskId(busMainDeposit.getTaskId());
vo.setDepartmentName(busMainDeposit.getOrgName());
vo.setStaffName(busMainDeposit.getStaffName());
vo.setCreateDate(busMainDeposit.getCreateDate());
List<String> list = new ArrayList<>();
String url = fileUploadComponent.getUrlPrefix() + vo.getPaymentProof();
list.add(url);
if (StringUtils.isNotBlank(vo.getPaymentProof())) {
String url = fileUploadComponent.getUrlPrefix() + vo.getPaymentProof();
list.add(url);
}
vo.setPayImages(list);
List<AppBusDepositCustomerListVo> customerList = busDepositCustomerService.getAppListByBillSid(virtualOrderSid);
for (AppBusDepositCustomerListVo appBusDepositCustomerListVo : customerList) {

2
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdepositvehicle/BusDepositVehicleMapper.xml

@ -42,6 +42,7 @@
bdv.modelSid,
bdv.modelConfigSid AS configSid,
bdv.vehicleSid AS carSid,
bdv.colour,
(SELECT bv.vinNo FROM anrui_base.base_vehicle bv where bv.sid = bdv.vehicleSid) as vin
FROM bus_deposit_vehicle bdv
WHERE bdv.billSid = #{virtualOrderSid}
@ -57,6 +58,7 @@
bdv.modelSid,
bdv.modelConfigSid AS configSid,
bdv.vehicleSid AS carSid,
bdv.colour,
(SELECT bv.vinNo FROM anrui_base.base_vehicle bv WHERE bv.sid = bdv.vehicleSid) AS vin
FROM bus_deposit_vehicle bdv
WHERE bdv.billSid = #{virtualOrderSid}

1
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdepositvehicle/BusDepositVehicleService.java

@ -229,6 +229,7 @@ public class BusDepositVehicleService extends MybatisBaseService<BusDepositVehic
vo.setDepartmentName(busMainDeposit.getOrgName());
vo.setVirtualOrderSid(query.getVirtualOrderSid());
vo.setUserSid(query.getUserSid());
List<AppBusDepositVehicleCarListVo> carList = baseMapper.selByBillSidList(virtualOrderSid);
if (carList.size() > 0) {
vo.setCarList(carList);

4
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busmaindeposit/BusMainDepositMapper.xml

@ -7,10 +7,12 @@
SELECT bmd.id,
bmd.sid,
bmd.billNo,
bmd.orgName,
bmd.depositBillTypeKey,
bmd.depositBillType,
bmd.createDate,
bmd.staffName,
if(length(bmd.nodeState) > 0, nodeState, '待提交') as nodeState,
bd.deposit,
bd.usedDeposit,
IF(bd.id IS NOT NULL, bd.draweeName, bdvc.customerName) name,
@ -40,7 +42,7 @@
bmd.createDate AS virtualOrderDate,
bmd.depositBillTypeKey as virtualOrderType,
bmd.staffName AS sellerName,
bmd.nodeState AS virtualOrderState,
if(length(bmd.nodeState) > 0, nodeState, '待提交') AS virtualOrderState,
bmd.remarks
FROM bus_main_deposit bmd
LEFT JOIN bus_deposit_vehicle_customer bdvc ON bmd.sid = bdvc.billSid

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

@ -57,6 +57,7 @@ import com.yxt.anrui.crm.api.crmcustomertemp.AppCrmCustomerTempInfoVo;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flowcomment.FlowComment;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
@ -212,6 +213,14 @@ public class BusMainDepositService extends MybatisBaseService<BusMainDepositMapp
IPage<BusMainDepositListVo> pagging = baseMapper.selectPageVo(page, qw);
List<BusMainDepositListVo> list = pagging.getRecords();
for (BusMainDepositListVo vo : list) {
if (vo.getDepositBillTypeKey().equals("02")) {
BusDepositVehicleCustomer busDepositVehicleCustomer = baseMapper.selectVehicleCustomerByBillSid(vo.getSid());
int count = baseMapper.selByBillSidCount(vo.getSid());
vo.setDepositVehicle(String.valueOf(count));
vo.setCustomerSid(busDepositVehicleCustomer.getCustomerSid());
vo.setName(busDepositVehicleCustomer.getCustomerName());
vo.setMobile(busDepositVehicleCustomer.getCustomerMobile());
}
ResultBean<SysFormStateVo> resultBean = sysFormLinkFeign.selectStateByBusinessSid(vo.getSid());
if (resultBean.getSuccess() && resultBean.getData() != null) {
SysFormStateVo formState = resultBean.getData();
@ -702,7 +711,6 @@ public class BusMainDepositService extends MybatisBaseService<BusMainDepositMapp
//判断订单sid是否有值(无值 新增 有值 修改)
if (StringUtils.isBlank(dto.getVirtualOrderSid())) { //新增
BusMainDeposit busMainDeposit = new BusMainDeposit();
busMainDeposit.setNodeState("待提交");
busMainDeposit.setSid(UUID.randomUUID().toString());
Map<String, String> map = generateBillNo(dto.getUserSid());
busMainDeposit.setBillNo(map.get("billNo_Num"));
@ -1127,7 +1135,6 @@ public class BusMainDepositService extends MybatisBaseService<BusMainDepositMapp
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
if (StringUtils.isBlank(dto.getVirtualOrderSid())) {//新增
BusMainDeposit busMainDeposit = new BusMainDeposit();
busMainDeposit.setNodeState("待提交");
busMainDeposit.setSid(UUID.randomUUID().toString());
Map<String, String> map = generateBillNo(dto.getUserSid());
busMainDeposit.setBillNo(map.get("billNo_Num"));
@ -1183,6 +1190,7 @@ public class BusMainDepositService extends MybatisBaseService<BusMainDepositMapp
busDepositVehicle.setModelSid(carListDto.getModelSid());
busDepositVehicle.setVehicleSid(carListDto.getCarSid());
busDepositVehicle.setCreateBySid(dto.getUserSid());
busDepositVehicle.setColour(carListDto.getColour());
busDepositVehicleService.insert(busDepositVehicle);
}
}
@ -1667,7 +1675,8 @@ public class BusMainDepositService extends MybatisBaseService<BusMainDepositMapp
}
qw.eq("bc.customerSid", query.getCustomerSid());
qw.eq("bd.depositBillTypeKey", "02");
qw.eq("bd.state", 1);
// qw.eq("bd.state", 1);
qw.eq("bd.nodeState", FlowComment.SETTLE.getRemark());//已办结
return qw;
}

8
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderMapper.xml

@ -54,7 +54,7 @@
case bo.isInsurance
when 0 then '否'
when 1 then '是' end as insuranceInfo,
if(bo.state = '2', true, false) as showContractBtn,
if(bo.nodeState = '已办结', true, false) as showContractBtn,
bo.nodeState is null as showUpdateBtn,
bo.nodeState is null as showDeleteBtn,
0 as showFinancialBtn
@ -149,7 +149,11 @@
bs.remarks,
bs.userSid as recommenderSid,
bs.name as recommender,
bs.distributorPrice as agencyFee
bs.distributorPrice as agencyFee,
bs.distributorName intermediaryName,
bs.distributorMobile intermediaryMobile,
bs.distributorSid intermediarySid,
bo.customerPhoto mobile
from bus_sales_order bo
left join bus_sales_order_price bp on bp.salesOrderSid = bo.sid
left join bus_sales_order_submit bs on bo.sid = bs.salesOrderSid

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

@ -1027,6 +1027,9 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
//单据状态
BusSalesOrder busSalesOrder = fetchBySid(saleOrderSid);
if (busSalesOrder != null) {
vo.setUserSid(busSalesOrder.getCreateBySid());
vo.setProcInsId(busSalesOrder.getProcInstId());
vo.setTaskId(busSalesOrder.getTaskId());
vo.setOrderInfoState(1);
//车型状态
BusSalesOrderModelDetailsVo busSalesOrderModelDetailsVo = busSalesOrderModelService.details(saleOrderSid);
@ -2092,6 +2095,11 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
}
AppOrderDetailsVo vo = new AppOrderDetailsVo();
vo = baseMapper.getSaleOrderDetails(sid);
vo.setUserSid(busSalesOrder.getCreateBySid());
vo.setProcInsId(busSalesOrder.getProcInstId());
vo.setTaskId(busSalesOrder.getTaskId());
vo.setInsuranceState(StringUtils.isNotBlank(busSalesOrder.getIsInsurance()));
vo.setRemarksState(StringUtils.isNotBlank(busSalesOrder.getNotes()));
//根据销售部门sid查询分公司名称
ResultBean<String> resultBean = sysStaffOrgFeign.getOrgSidBySid(vo.getOrgSid());
if (!"0".equals(resultBean.getData())) {
@ -2380,10 +2388,10 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
public Map<String, Object> getOrderMap(BusSalesOrder busSalesOrder) {
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", busSalesOrder.getSid());
appMap.put("saleOrderSid", busSalesOrder.getSid());
variables.put("app", appMap);
//是否是全款
variables.put("isLoan", "01".equals(busSalesOrder.getPayTypeKey()));
variables.put("isLoan", "1".equals(busSalesOrder.getPayTypeKey()));
//查询是否超权限
BusSalesOrderPowerVo busSalesOrderPowerVo = isHavePower(busSalesOrder.getSid());
//销售部经理是否超权限

2
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderdeposit/BusSalesOrderDepositMapper.xml

@ -71,7 +71,7 @@
</update>
<select id="selectDeposit" resultType="com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderDepositInfoVo">
select deposit, depositAll as depositTotal, sid, depositTypeKey
select deposit, depositAll as depositTotal, sid, depositTypeKey,depositType as type
from bus_sales_order_deposit
where salesOrderSid = #{sid}
</select>

3
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderdeposit/BusSalesOrderDepositService.java

@ -42,6 +42,7 @@ import com.yxt.anrui.buscenter.biz.busdeposit.BusDepositService;
import com.yxt.anrui.buscenter.biz.busdepositfictitious.BusDepositFictitiousService;
import com.yxt.anrui.buscenter.biz.bussalesorder.BusSalesOrderService;
import com.yxt.anrui.buscenter.biz.bussalesorderprice.BusSalesOrderPriceService;
import com.yxt.anrui.flowable.api.flowcomment.FlowComment;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserInfoVo;
import com.yxt.common.base.service.MybatisBaseService;
@ -259,7 +260,7 @@ public class BusSalesOrderDepositService extends MybatisBaseService<BusSalesOrde
}
}
}
qw.eq("bd.state", 1);
qw.eq("bmd.nodeState", FlowComment.SETTLE.getRemark());//已办结
qw.eq("bmd.depositBillTypeKey", "01");
return qw;
}

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

@ -11,4 +11,6 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface BusSalesOrderSubmitMapper extends BaseMapper<BusSalesOrderSubmit> {
BusSalesOrderSubmit seletByOrderSid(String businessSid);
}

9
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordersubmit/BusSalesOrderSubmitMapper.xml

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yxt.anrui.buscenter.biz.bussalesordersubmit.BusSalesOrderSubmitMapper">
<select id="seletByOrderSid" resultType="com.yxt.anrui.buscenter.api.bussalesordersubmit.BusSalesOrderSubmit">
select *
from bus_sales_order_submit
where salesOrderSid = #{businessSid}
</select>
</mapper>

46
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordersubmit/BusSalesOrderSubmitService.java

@ -18,21 +18,41 @@ import java.math.BigDecimal;
public class BusSalesOrderSubmitService extends MybatisBaseService<BusSalesOrderSubmitMapper, BusSalesOrderSubmit> {
public void saveOrderSubmit(BusSalesOrderSubmitDto busSalesOrderSubmitDto, String businessSid) {
if (busSalesOrderSubmitDto != null) {
BusSalesOrderSubmit busSalesOrderSubmit1 = new BusSalesOrderSubmit();
BeanUtil.copyProperties(busSalesOrderSubmitDto, busSalesOrderSubmit1, "sid");
BigDecimal priceBig = new BigDecimal("0");
BigDecimal priceAll = new BigDecimal("0");
if (StringUtils.isNotBlank(busSalesOrderSubmitDto.getDistributorPrice())) {
priceBig = new BigDecimal(busSalesOrderSubmitDto.getDistributorPrice());
busSalesOrderSubmit1.setDistributorPrice(priceBig);
//查询该销售订单是否有提交信息
BusSalesOrderSubmit busSalesOrderSubmit = baseMapper.seletByOrderSid(businessSid);
if (busSalesOrderSubmit == null) {
busSalesOrderSubmit = new BusSalesOrderSubmit();
BeanUtil.copyProperties(busSalesOrderSubmitDto, busSalesOrderSubmit, "sid");
BigDecimal priceBig = new BigDecimal("0");
BigDecimal priceAll = new BigDecimal("0");
if (StringUtils.isNotBlank(busSalesOrderSubmitDto.getDistributorPrice())) {
priceBig = new BigDecimal(busSalesOrderSubmitDto.getDistributorPrice());
busSalesOrderSubmit.setDistributorPrice(priceBig);
}
if (StringUtils.isNotBlank(busSalesOrderSubmitDto.getDistributorPriceAll())) {
priceAll = new BigDecimal(busSalesOrderSubmitDto.getDistributorPriceAll());
busSalesOrderSubmit.setDistributorPriceAll(priceAll);
}
busSalesOrderSubmit.setSalesOrderSid(businessSid);
save(busSalesOrderSubmit);
} else {
BeanUtil.copyProperties(busSalesOrderSubmitDto, busSalesOrderSubmit);
BigDecimal priceBig = new BigDecimal("0");
BigDecimal priceAll = new BigDecimal("0");
if (StringUtils.isNotBlank(busSalesOrderSubmitDto.getDistributorPrice())) {
priceBig = new BigDecimal(busSalesOrderSubmitDto.getDistributorPrice());
busSalesOrderSubmit.setDistributorPrice(priceBig);
}
if (StringUtils.isNotBlank(busSalesOrderSubmitDto.getDistributorPriceAll())) {
priceAll = new BigDecimal(busSalesOrderSubmitDto.getDistributorPriceAll());
busSalesOrderSubmit.setDistributorPriceAll(priceAll);
}
busSalesOrderSubmit.setSalesOrderSid(businessSid);
updateById(busSalesOrderSubmit);
}
if (StringUtils.isNotBlank(busSalesOrderSubmitDto.getDistributorPriceAll())) {
priceAll = new BigDecimal(busSalesOrderSubmitDto.getDistributorPriceAll());
busSalesOrderSubmit1.setDistributorPriceAll(priceAll);
}
busSalesOrderSubmit1.setSalesOrderSid(businessSid);
save(busSalesOrderSubmit1);
}
}
}

20
anrui-buscenter/anrui-buscenter-ui/src/api/dictcommons/dictcommons.js

@ -0,0 +1,20 @@
import request from '@/utils/request'
import qs from 'qs'
// 根据登陆人sid查询分公司sid(常用接口)
export function getPathSidByUserSid(data) {
return request({
url: '/portal/v1/sysstafforg/getPathSidByUserSid',
method: 'get',
params: data
})
}
// 根据分公司sid查询分公司名称
export function fetchBySid(sid) {
return request({
url: 'portal/v1/sysorganization/fetchBySid/' + sid,
method: 'get'
})
}

74
anrui-buscenter/anrui-buscenter-ui/src/api/flow/jianyidingdan.js

@ -0,0 +1,74 @@
import request from '@/utils/request'
export default {
// 车辆预定流程审批(同意) 已改
agreeCheliangTask: function(params) {
return request({
url: 'buscenter/v1/busmaindeposit/completeVehicle',
method: 'post',
data: params
})
},
// 订金收取流程审批(同意) 已改
agreeDingjinTask: function(params) {
return request({
url: 'buscenter/v1/busmaindeposit/completeDeposit',
method: 'post',
data: params
})
},
// 流程审批(驳回) 已改
rejectTask: function(params) {
return request({
url: 'buscenter/v1/busmaindeposit/reject',
method: 'post',
data: params
})
},
// 流程审批(终止) 已改
breakTask: function(params) {
return request({
url: 'buscenter/v1/busmaindeposit/breakProcess',
method: 'post',
data: params
})
},
// 流程审批(撤回) 已改
revokeTask: function(params) {
return request({
url: 'buscenter/v1/busmaindeposit/revokeProcess',
method: 'post',
data: params
})
},
// 审批流程(同意)获取下一环节 已改
getNextNodesForSubmit: function(data) {
return request({
url: 'buscenter/v1/busmaindeposit/getNextNodesForSubmit',
method: 'get',
params: data
})
},
// 审批流程(驳回、终止)获取上一环节 已改
getPreviousNodesForReject: function(data) {
return request({
url: 'buscenter/v1/busmaindeposit/getPreviousNodesForReject',
method: 'get',
params: data
})
},
// 读取xml文件
readXml: function(deployId) {
return request({
url: '/flowable/v1/flowable/task/readXml/' + deployId,
method: 'get'
})
},
// 读取image文件
getFlowViewer: function(procInsId) {
return request({
url: '/flowable/v1/flowable/task/flowViewer/' + procInsId,
method: 'get'
})
}
}

76
anrui-buscenter/anrui-buscenter-ui/src/api/jichuxinxi/busdeposit.js

@ -1,7 +1,8 @@
import request from '@/utils/request'
import qs from 'qs'
//Pc端客户基础信息条件分页查询数据的列表 已改
// 简易订单页面接口
//条件分页查询数据的列表 (8.12测试)
export function listPage(data) {
return request({
url: '/buscenter/v1/busmaindeposit/listPage',
@ -13,7 +14,7 @@ export function listPage(data) {
})
}
//根据sid批量删除 已改
//根据sid批量删除 (8.12测试)
export function deleteBySids(data) {
return request({
url: '/buscenter/v1/busmaindeposit/deleteBySids',
@ -25,10 +26,12 @@ export function deleteBySids(data) {
})
}
// 初始化 已改
export function saveEcho(data) {
//==========订金收取
// 保存虚拟订单(订金)(8.12已改)
export function saveDing(data) {
return request({
url: '/buscenter/v1/busmaindeposit/initBusMainDeposit', data,
url: 'buscenter/v1/busmaindeposit/save/deposit', data,
method: 'post',
// data: data,
headers: {
@ -37,52 +40,52 @@ export function saveEcho(data) {
})
}
// 保存虚拟订单(预定车辆) 已改
export function saveChe(data) {
// 提交虚拟订单(订金)审批流程 (8.12已改)
export function submitApprove(data) {
return request({
url: '/buscenter/v1/busmaindeposit/saveDepositVehicle', data,
url: 'buscenter/v1/busmaindeposit/submitVirtualOrderDeposit',
method: 'post',
// data: data,
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}
// 保存虚拟订单(订金) 已改
export function saveDing(data) {
// (订金)编辑回显 (8.12已改)
export function depositDetail(data) {
return request({
url: '/buscenter/v1/busmaindeposit/saveDeposit', data,
method: 'post',
// data: data,
headers: {
'Content-Type': 'application/json'
}
url: 'buscenter/v1/busdeposit/init/depositDetail/' + data.virtualOrderSid + '/' + data.userSid,
method: 'get',
})
}
// 详情编辑回显(订金) 已改
// 详情编辑回显(订金) (8.12已改)
export function fetchSid(data) {
return request({
url: '/buscenter/v1/busmaindeposit/selectDepositBySid/' + data,
url: 'buscenter/v1/busdeposit/getDepositInfoDetails/' + data,
method: 'get',
params: data
})
}
// 详细编辑回显(预订车辆) 已改
export function selectSid(data) {
//==========预定车辆
// 保存虚拟订单(预定车辆) (8.12已改)
export function saveChe(data) {
return request({
url: '/buscenter/v1/busmaindeposit/selectDepositVehBySid/' + data,
method: 'get',
params: data
url: 'buscenter/v1/busmaindeposit/save/reserveCarInfo', data,
method: 'post',
// data: data,
headers: {
'Content-Type': 'application/json'
}
})
}
// 修改保存虚拟订单(订金) 已改
export function update(data) {
// 提交虚拟订单(车辆)审批流程 (8.12已改)
export function submitVehicleApprove(data) {
return request({
url: '/buscenter/v1/busmaindeposit/updateDeposit/' + data.sid,
url: 'buscenter/v1/busmaindeposit',
method: 'post',
data: data,
headers: {
@ -91,10 +94,10 @@ export function update(data) {
})
}
// 修改保存虚拟订单(预定车辆) 已改
export function updateVehicle(data) {
// 编辑回显(预订车辆) (8.12已改)
export function selectSid(data) {
return request({
url: '/buscenter/v1/busmaindeposit/updateDepositVehicle/' + data.sid,
url: 'buscenter/v1/busdepositvehicle/init/reserveCarDetail',
method: 'post',
data: data,
headers: {
@ -103,7 +106,16 @@ export function updateVehicle(data) {
})
}
// 获取下拉框 已改
// 详情编辑回显(预订车辆) (8.12已改)
export function getReserveCarDetails(data) {
return request({
url: 'buscenter/v1/busdepositvehicle/getReserveCarDetails/' + data,
method: 'get',
})
}
// 获取下拉框
export function typeValues(data) {
return request({
url: '/portal/v1/dictcommons/typeValues',

12
anrui-buscenter/anrui-buscenter-ui/src/api/jichuxinxi/busdepositvehicle.js

@ -1,7 +1,7 @@
import request from '@/utils/request'
// Start 选择客户
//Pc端客户基础信息条件分页查询数据的列表 已改
//Pc端客户基础信息条件分页查询数据的列表
export function pagerList(data) {
return request({
url: '/crm/v1/crmcustomertemp/listPage',
@ -13,7 +13,7 @@ export function pagerList(data) {
})
}
//根据客户sid删除客户信息记录 已改
//根据客户sid删除客户信息记录
export function Getdel(data) {
return request({
url: '/buscenter/v1/busmaindeposit/deleteBySidAndCustomerSid/' + data.sid + '/' +data.customerSid,
@ -26,7 +26,7 @@ export function Getdel(data) {
}
// Start 选择车辆
//虚拟订单选择车辆查询现车库存列表 已改
//虚拟订单选择车辆查询现车库存列表
export function getList(data) {
return request({
url: '/base/v1/basevehicle/getExiCarPagerList',
@ -38,7 +38,7 @@ export function getList(data) {
})
}
//根据虚拟订单sid及订车信息sid删除虚拟订单订车信息 已改
//根据虚拟订单sid及订车信息sid删除虚拟订单订车信息
export function delVehicle(data) {
return request({
url: '/buscenter/v1/busmaindeposit/deleteBySidAndVehicleSid/' + data.sid + '/' +data.vehicleSid,
@ -50,7 +50,7 @@ export function delVehicle(data) {
})
}
// 获取下拉框 已改
// 获取下拉框
export function typeValues(data) {
return request({
url: '/portal/v1/dictcommons/typeValues',
@ -59,7 +59,7 @@ export function typeValues(data) {
})
}
// 获取车辆品牌 已改
// 获取车辆品牌
export function selectBrand(data) {
return request({
url: '/base/v1/basevehiclebrand/selectAppListByManufacturerSid',

24
anrui-buscenter/anrui-buscenter-ui/src/api/portal/workFlow.js

@ -1,30 +1,6 @@
import request from '@/utils/request'
import qs from 'qs'
// 提交虚拟订单(订金)审批流程
export function submitApprove(data) {
return request({
url: '/buscenter/v1/busmaindeposit/submitMainDespoitApprove',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}
// 提交虚拟订单(车辆)审批流程
export function submitVehicleApprove(data) {
return request({
url: '/buscenter/v1/busmaindeposit/submitMainDespoitVehicleApprove',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}
// 更新虚拟订单审批的状态
export function updateState(data) {
return request({

429
anrui-buscenter/anrui-buscenter-ui/src/views/workflow/xiaoshouguanliFlow/xunidingdanFlow/cheliangyuding.vue

@ -2,118 +2,146 @@
<div class="app-container">
<div v-show="visible">
<div class="tab-header webtop">
<div>销售虚拟订单详细信息(车辆)</div>
<div>销售简易订单详情</div>
<!-- <div v-else></div> -->
<div>
<el-button type="primary" @click="openAgree('同意')"> </el-button>
<el-button type="danger" @click="openReject('驳回')"> </el-button>
<el-button type="danger" @click="openStop('终止')"> </el-button>
</div>
</div>
<div class="listconadd">
<el-form ref="dataForm" :model="temp" label-position="right" class="formadd">
<el-form
ref="dataForm"
:model="temp"
label-position="right"
class="formadd"
>
<div class="tit">
销售虚拟订车单
<div class="times">
<div><span>单据编号</span><span>{{ temp.billNo }}</span></div>
<div><span>制单日期</span><span>{{ temp.createDate }}</span></div>
<div><span>分公司</span><span>{{ temp.departmentName }}</span></div>
<div><span>申请人</span><span>{{ temp.staffName }}</span></div>
<div><span>申请日期</span><span>{{ temp.createDate }}</span></div>
<div><span>金额单位</span><span></span></div>
</div>
</div>
<el-row class="bordertopline">
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label">部门名称</span></el-form-item>
<el-col :span="2" class="tleftb">
<el-form-item>订单类型</el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-col :span="6" class="trightb">
<el-form-item>
{{ temp.orgName }}
<span>{{ temp.depositBillType }}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label">销售专员</span></el-form-item>
<el-col :span="2" class="tleftb">
<el-form-item>客户名称</el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-form-item>
{{ temp.staffName }}
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label">虚拟订单类型</span></el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-form-item>
<span>{{temp.depositBillType}}</span>
</el-form-item>
</el-col>
<el-col :span="12" class="tleftb"/>
</el-row>
<el-row class="bordertopline">
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label">客户名称</span></el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-col :span="6" class="trightb">
<el-form-item>
{{ temp.customerName }}
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label">联系电话</span></el-form-item>
<el-col :span="2" class="tleftb">
<el-form-item>联系电话</el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-col :span="6" class="trightb">
<el-form-item>
{{ temp.mobile }}
</el-form-item>
</el-col>
</el-row>
<!--Start 预定车辆信息-->
<div class="titcon">
<div class="title">预订车辆信息</div>
</div>
<el-table v-loading="listLoading" :data="list" border style="width: 100%" :index="index">
<el-table-column align="center" label="序号" type="index" width="50"/>
<el-table-column label="操作" align="center" width="250px" class-name="small-padding fixed-width">
</el-table-column>
<!--Start 预订车辆信息-->
<!-- <div class="title">-->
<div class="title">预订车辆信息</div>
<!-- </div>-->
<el-table
v-loading="listLoading"
:data="list"
border
style="width: 100%"
:index="index"
>
<el-table-column
align="center"
label="序号"
type="index"
width="50"
/>
<el-table-column label="品牌" align="center">
<template slot-scope="scope">
<span>{{scope.row.brandName}}</span>
<span>{{ scope.row.brand }}</span>
</template>
</el-table-column>
<el-table-column label="车型名称" align="center">
<template slot-scope="scope">
<span>{{scope.row.vehicleAlias}}</span>
<span>{{ scope.row.carName }}</span>
</template>
</el-table-column>
<el-table-column label="车架号" align="center">
<template slot-scope="scope" @click="">
<span>{{scope.row.vinNo}}</span>
<span>{{ scope.row.vin }}</span>
</template>
</el-table-column>
<el-table-column label="颜色" align="center">
<template slot-scope="scope" @click="">
<span>{{ scope.row.colour }}</span>
</template>
</el-table-column>
<el-table-column label="存放地点" align="center">
<template slot-scope="scope">
<span>{{scope.row.location}}</span>
<span>{{ scope.row.location }}</span>
</template>
</el-table-column>
<el-table-column label="销售指导价" align="center">
<template slot-scope="scope">
<span>{{scope.row.guidedPrice}}</span>
<span>{{ scope.row.price }}</span>
</template>
</el-table-column>
<el-table-column label="预计金日期" align="center">
<el-table-column label="预计金日期" align="center">
<template slot-scope="scope">
<span>{{scope.row.reserve_deposit_date}}</span>
<span>{{ scope.row.reserveDate }}</span>
</template>
</el-table-column>
<el-table-column label="备注" align="center">
<template slot-scope="scope">
<span>{{scope.row.remarks}}</span>
<span>{{ scope.row.remarks }}</span>
</template>
</el-table-column>
</el-table>
</el-form>
</div>
</div>
<el-dialog title="填写审批意见" :visible.sync="nodeDialogVisible" width="80%">
<el-form label-position="right" class="formadd">
<el-row v-show="currentLink">
<el-col :span="4" class="tleftb">当前环节</el-col>
<el-col :span="20" class="trightb">
<el-form-item prop="purchasingUnitName"><span>{{ current.taskName }}->{{ nextNode.name }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row style="border-bottom: 1px solid #e0e3eb;">
<el-col :span="4" class="tleftb">意见</el-col>
<el-col :span="20" class="trightb">
<el-input size="small" v-model="dialogList.comment" placeholder="审批意见" class="addinputw"
clearable></el-input>
</el-col>
</el-row>
<div style="text-align:center;margin-top: 20px;">
<el-button type="primary" size="mini" @click="confirm"> </el-button>
<el-button type="info " size="mini" @click="nodeDialogVisible = false"> </el-button>
</div>
</el-form>
</el-dialog>
</div>
</template>
<script>
import {mapGetters} from 'vuex'
import {selectSid} from '@/api/jichuxinxi/busdeposit'
import {submitApprove, updateState} from '@/api/portal/workFlow'
import {mapGetters} from "vuex";
import {getReserveCarDetails} from "@/api/jichuxinxi/busdeposit";
import req from '@/api/flow/jianyidingdan.js'
export default {
name: "cheliangyuding",
@ -125,22 +153,18 @@
// ---------
YongHuid: [],
visible: true,
stateId: '0',
stateId: "0",
FormLoading: false,
listLoading: false,
list: [],
temp: {}, //
textMap: {
update: '修改',
create: '创建',
update: "修改",
create: "创建",
},
submitDto: {
businessSid: '',
userSid: window.sessionStorage.getItem('userSid')
},
updateDto: {
nodeState: '',
sid: '',
userSid: window.sessionStorage.getItem("userSid"),
},
nodeState: '',
billNo: '',
@ -154,56 +178,275 @@
tificateT: [],
dnumbDate: [],
dialogStatus: '', //
}
// ------------------------------------
currentLink:true, //
dialogList: {
comment: ''
},
xmlData: '', // xml
taskList: [],
startTask: true,
current: {
taskDefKey: '',
taskName: '' //
},
nextNode: {}, //
nodeDialogVisible: false,
//
agreeList: {
businessSid: '',
comment: '',
instanceId: '',
taskId: '',
orgSidPath: '',
taskDefKey: '',
userSid:''
},
//
regectList: {
businessSid: '',
comment: '',
instanceId: '',
taskId: '',
userSid: ''
},
//
stopList: {
businessSid: '',
comment: '',
instanceId: '',
taskId: '',
userSid: ''
}
};
},
computed: {
...mapGetters([
'id',
'roles',
'rolesIds',
'departmentId',
'departmentCode',
"id",
"roles",
"rolesIds",
"departmentId",
"departmentCode",
]),
},
mounted() {
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 2,
data: document.body.scrollHeight + 220 + 'px'
}
}, '*')
},
created() {
// ===sid
console.log('iframe页面获取到的url:' + window.location.href)
var a = window.location.href.indexOf("?") + 1 // ?
var b = window.location.href.indexOf("#data") // #data
const info = window.location.href.slice(a, b)
var sid = info.substr(info.indexOf("=") + 1)
this.showInfo(sid);
//
this.init()
// ===
var one = window.location.href.indexOf('&data') + 6
const data = window.location.href.substr(one) // urlunescape()web,使
const obj = JSON.parse(decodeURIComponent(data))
console.log('获取到的obj',obj)
//
this.agreeList.businessSid = obj.businessSid
this.agreeList.instanceId = obj.instanceId
this.agreeList.taskId = obj.taskId
this.agreeList.taskDefKey = obj.taskDefKey
this.agreeList.userSid = window.sessionStorage.getItem('userSid')
this.agreeList.orgSidPath = window.sessionStorage.getItem('orgSidPath')
this.current.taskDefKey = obj.taskDefKey
this.current.taskName = obj.taskName
//
this.regectList.businessSid = obj.businessSid
this.regectList.instanceId = obj.instanceId
this.regectList.taskId = obj.taskId
this.regectList.userSid = window.sessionStorage.getItem('userSid')
//
this.stopList.businessSid = obj.businessSid
this.stopList.instanceId = obj.instanceId
this.stopList.taskId = obj.taskId
this.stopList.userSid = window.sessionStorage.getItem('userSid')
//
this.transactState = obj.transactState
//
this.showInfo(obj.businessSid)
this.getModelDetail(obj.deployId)
this.getFlowViewer(obj.instanceId)
},
methods: {
// ------------------
showInfo(sid) {
console.log('修改打开', sid)
this.submitDto.businessSid = sid
console.log("修改打开", sid);
this.submitDto.businessSid = sid;
this.$nextTick(() => {
this.$refs['dataForm'].clearValidate()
})
selectSid(sid).then((response) => {
this.$refs["dataForm"].clearValidate();
});
getReserveCarDetails(sid).then((response) => {
if (response.code) {
this.temp = response.data
this.list = response.data.depositVehicleList
this.nodeState = response.data.nodeState
if (this.nodeState == '') {
this.disabled = false
}
this.list = response.data.vehicleList
} else {
this.$notify({
title: '提示',
message: '查看失败',
type: 'error',
title: "提示",
message: "查看失败",
type: "error",
duration: 2000,
})
});
}
});
},
init() {
// ---------- ------------------------------
/** xml 文件 */
getModelDetail(deployId) {
// xml
req.readXml(deployId).then((res) => {
this.xmlData = res.data
})
},
//
getFlowViewer(procInsId) {
req.getFlowViewer(procInsId).then((res) => {
this.taskList = res.data
})
},
//
openAgree(val) {
this.operation = val
this.dialogList.comment = '同意'
this.currentLink = true //
// const formVariables = {
// businessSid: this.agreeList.businessSid
// }
req.getNextNodesForSubmit({taskDefKey:this.current.taskDefKey}).then((resp) => {
if (resp.success) {
var arr = resp.data
this.nextNode = arr[0]
this.nodeDialogVisible = true
}
this.submitdisabled = false
})
},
//
openReject(val) {
this.operation = val
this.dialogList.comment = ''
this.currentLink = true //
// const formVariables = {
// businessSid: this.regectList.businessSid
// }
req.getPreviousNodesForReject({taskDefKey: this.current.taskDefKey}).then((resp) => {
if (resp.success) {
var arr = resp.data
this.nextNode = arr[0]
this.nodeDialogVisible = true
}
this.submitdisabled = false
})
},
//
openStop(val) {
this.operation = val
this.dialogList.comment = ''
this.currentLink = false //
this.nodeDialogVisible = true
},
/** 选择代办人确认 */
confirm() {
if (this.operation === '同意') {
this.handleAgree()
} else if (this.operation === '驳回') {
this.handleReject()
} else if (this.operation === '终止') {
this.handleStop()
}
},
/** 同意任务 */
handleAgree() {
this.agreeList.comment = this.dialogList.comment
if (this.agreeList.comment == '') {
this.$message({
showClose: true,
message: '请填写同意意见!',
type: 'error'
})
return
}
req.agreeCheliangTask(this.agreeList).then((response) => {
if (response.success) {
this.$message({
showClose: true,
message: '执行成功',
type: 'success'
})
this.nodeDialogVisible = false
//
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 1
}
}, '*')
}
})
},
/** 驳回任务 */
handleReject() {
this.regectList.comment = this.dialogList.comment
if (this.regectList.comment == '') {
this.$message({
showClose: true,
message: '请填写驳回意见!',
type: 'error'
})
return
}
req.rejectTask(this.regectList).then((response) => {
if (response.success) {
this.$message({
showClose: true,
message: '执行成功',
type: 'success'
})
this.nodeDialogVisible = false
//
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 1
}
}, '*')
}
})
},
/** 终止任务 */
handleStop() {
this.stopList.comment = this.dialogList.comment
if (this.stopList.comment == '') {
this.$message({
showClose: true,
message: '请填写终止意见!',
type: 'error'
})
return
}
req.breakTask(this.stopList).then((response) => {
if (response.success) {
this.$message({
showClose: true,
message: '执行成功',
type: 'success'
})
this.nodeDialogVisible = false
//
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 1
}
}, '*')
}
})
},
},
}

596
anrui-buscenter/anrui-buscenter-ui/src/views/workflow/xiaoshouguanliFlow/xunidingdanFlow/cheliangyudingEdit.vue

@ -2,70 +2,51 @@
<div class="app-container">
<div v-show="visible">
<div class="tab-header webtop">
<div>销售虚拟订车单</div>
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" @click="handleCreate()">保存</el-button>
<el-button type="primary" size="small" :disabled="FormLoading" @click="handleCreate()">保存</el-button>
<el-button type="primary" size="small" :disabled="disabled" @click="handleSubmit()">提交</el-button>
</div>
</div>
<div class="listconadd">
<div class="">
<el-form ref="dataForm" :model="temp" label-position="right" label-width="100%" class="formadd" :rules="rules">
<div class="tit">
销售虚拟订车单
<div class="times">
<div><span>单据编号</span><span>{{ temp.billNo }}</span></div>
<div><span>制单日期</span><span>{{ temp.createDate }}</span></div>
<div><span>分公司</span><span>{{ temp.departmentName }}</span></div>
<div><span>申请人</span><span>{{ temp.staffName }}</span></div>
<div><span>申请日期</span><span>{{ temp.createDate }}</span></div>
<div><span>金额单位</span><span></span></div>
</div>
</div>
<el-row class="bordertopline">
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label">部门名称</span></el-form-item>
<el-col :span="2" class="tleftb">
<el-form-item>订单类型</el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-col :span="6" class="trightb">
<el-form-item>
{{ temp.orgName }}
<span>{{ temp.depositBillType }}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label">销售专员</span></el-form-item>
<el-col :span="2" class="tleftb">
<el-form-item>客户名称</el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-form-item>
{{ temp.staffName }}
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label">虚拟订单类型</span></el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-form-item>
<span>{{temp.depositBillType}}</span>
</el-form-item>
</el-col>
<el-col :span="12" class="tleftb"/>
</el-row>
<el-row class="bordertopline">
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label">客户名称</span></el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-col :span="6" class="trightb">
<el-form-item>
{{ temp.customerName }}
<span class="bluezi changeIt" @click="handleCustomer()">选择客户/新增客户</span>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label">联系电话</span></el-form-item>
<el-col :span="2" class="tleftb">
<el-form-item>联系电话</el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-col :span="6" class="trightb">
<el-form-item>
{{ temp.mobile }}
</el-form-item>
</el-col>
</el-row>
<!--Start 车辆信息-->
<!--Start 预订车辆信息-->
<div class="titcon">
<div class="title">预订车辆信息</div>
<div class="baocun">
@ -75,7 +56,7 @@
</div>
<el-table v-loading="listLoading" :data="list" border style="width: 100%" :index="index">
<el-table-column align="center" label="序号" type="index" width="50"/>
<el-table-column label="操作" align="center" width="250px" class-name="small-padding fixed-width">
<el-table-column label="操作" align="center" width="80px" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="danger"
@click="handleDelete(scope.row,scope.$index,list[scope.$index])">删除
@ -84,39 +65,44 @@
</el-table-column>
<el-table-column label="品牌" align="center">
<template slot-scope="scope">
<span>{{scope.row.brandName}}</span>
<span>{{ scope.row.brand }}</span>
</template>
</el-table-column>
<el-table-column label="车型名称" align="center">
<el-table-column label="车型" width="220px" align="center">
<template slot-scope="scope">
<span>{{scope.row.vehicleAlias}}</span>
<span>{{ scope.row.model }}</span>
</template>
</el-table-column>
<el-table-column label="车架号" align="center">
<el-table-column label="车架号" width="140px" align="center">
<template slot-scope="scope" @click="">
<span>{{scope.row.vinNo}}</span>
<span>{{ scope.row.vin }}</span>
</template>
</el-table-column>
<el-table-column label="存放地点" align="center">
<el-table-column label="颜色" width="100px" align="center">
<template slot-scope="scope" @click="">
<span>{{ scope.row.colour }}</span>
</template>
</el-table-column>
<el-table-column label="存放地点" width="220px" align="center">
<template slot-scope="scope">
<span>{{scope.row.location}}</span>
<span>{{ scope.row.location }}</span>
</template>
</el-table-column>
<el-table-column label="销售指导价" align="center">
<el-table-column label="销售指导价" width="120px" align="center">
<template slot-scope="scope">
<span>{{scope.row.guidedPrice}}</span>
<span>{{ scope.row.price }}</span>
</template>
</el-table-column>
<el-table-column label="预计定金日期" align="center">
<el-table-column label="预计订金日期" width="220px" align="center">
<template slot-scope="scope">
<el-select v-model="scope.row.reserve_deposit_date" class="addinputw" placeholder="请选择"
@change="changeDeposit_date">
<el-option v-for="(item, index) in deposit_list" :key="index.dictKey" :label="item.dictValue"
:value="item.dictValue"/>
</el-select>
<el-date-picker v-model="scope.row.depositDate" type="date" style="width:90%"
value-format="yyyy-MM-dd"
placeholder="选择日期"
:picker-options="pickerOptions">
</el-date-picker>
</template>
</el-table-column>
<el-table-column label="备注" align="center">
<el-table-column label="备注" width="300px" align="center">
<template slot-scope="scope">
<el-input v-model="scope.row.remarks" class="addinputw" placeholder="请输入备注" clearable/>
</template>
@ -125,34 +111,30 @@
</el-form>
</div>
</div>
<!-- 客户信息 -->
<kehudangan-add v-show="kehudanganAddShow" @yudingcheliangfanhui="yudingcheliangfanhui" ref="addAndUpdate"
@handleReturn="noClickclose"/>
<!--选择车辆-->
<!--选择车辆确定-->
<xuanzecheliang v-show="xuanzecheliangShow" @yudingcheliangfanhui="yudingcheliangfanhui" ref="xuanzecheliang"
@handleVehicle="selectVehicle"/>
<!--选择客户-->
<!--选择客户确定-->
<xuanzekehu v-show="xuanzekehuShow" @yudingcheliangfanhui="yudingcheliangfanhui" ref="xuanzekehu"
@handleCustomer="selectCustomer"/>
</div>
</template>
<script>
import {mapGetters} from 'vuex'
import {saveChe, updateVehicle, saveEcho, selectSid, typeValues} from '@/api/jichuxinxi/busdeposit'
import {listPage, delVehicle} from '@/api/jichuxinxi/busdepositvehicle'
import {loginDetails} from '@/api/dictcommons/basemanufacturer'
import {getStorage} from '@/utils/auth'
import {submitVehicleApprove} from '@/api/portal/workFlow'
import hetongdanganguanliAdd from '@/views/hetongguanli/hetongdanganguanli/hetongdanganguanliAdd.vue'
import hetongdanganguanliInfo from '@/views/hetongguanli/hetongdanganguanli/hetongdanganguanliInfo.vue'
import kehudanganAdd from '@/views/kehuguanli/kehudangan/kehudanganAdd.vue'
import xuanzecheliang from "../../../xiaoshouguanli/xunidingdan/com/xuanzecheliang.vue" //"./com/xuanzecheliang"
import xuanzekehu from "../../../xiaoshouguanli/xunidingdan/com/xuanzekehu.vue" //"./com/xuanzekehu";
import {fetchBySid, getPathSidByUserSid} from '@/api/dictcommons/dictcommons'
import {saveChe, selectSid, submitVehicleApprove, typeValues} from '@/api/jichuxinxi/busdeposit'
import req from '@/api/flow/jianyidingdan.js'
import yudingcheliang from "@/views/xiaoshouguanli/xunidingdan/com/yudingcheliang"
import hetongdanganguanliAdd from '@/views/hetongguanli/hetongdanganguanli/hetongdanganguanliAdd.vue'
import hetongdanganguanliInfo from '@/views/hetongguanli/hetongdanganguanli/hetongdanganguanliInfo.vue'
import kehudanganAdd from '@/views/kehuguanli/kehudangan/kehudanganAdd.vue'
import xuanzecheliang from "@/views/xiaoshouguanli/xunidingdan/com/xuanzecheliang"
import xuanzekehu from "@/views/xiaoshouguanli/xunidingdan/com/xuanzekehu"
export default {
name: "cheliangyudingEdit",
components: {
// yudingcheliang,
yudingcheliang,
hetongdanganguanliAdd,
hetongdanganguanliInfo,
kehudanganAdd,
@ -161,6 +143,13 @@
},
data() {
return {
//
pickerOptions: {
disabledDate(time) {
let threeDay = 60 * 60 * 24 * 1000 * 3;
return time.getTime() < Date.now() || time.getTime() > Date.now() + threeDay;
},
},
viewTitle: '',
index: 0,
disabled: false, //
@ -174,28 +163,20 @@
listLoading: false,
list: [],
temp: {
sid: '',
billNo: '',
createDate: '',
staffName: '',
customerSid: '', // sid
virtualOrderSid: '', // s
customerName: '', //
virtualOrderId: '', // s
sellerName: '', //
departmentName: '', //
mobile: '', //
createDate: '', //
carList: [],
taskId: '', // Id
procInsId: '', // ID
userSid: window.sessionStorage.getItem('userSid')
}, //
textMap: {
update: '修改',
create: '创建',
},
initList: {
depositBillTypeKey: '',
depositBillType: '',
userSid: window.sessionStorage.getItem('userSid')
},
submitDto: {
businessSid: '',
userSid: window.sessionStorage.getItem('userSid')
},
updateDto: {
nodeState: '',
sid: '',
},
xuniSid: '',
mobile: '',
orgName: '',
@ -207,310 +188,112 @@
dnumbDate: [],
dialogStatus: '', //
yudingcheliangShow: false,
hetongdanganguanliAddShow: false,
hetongdanganguanliInfoShow: false,
kehudanganAddShow: false,
xuanzecheliangShow: false, //
xuanzekehuShow: false, //
rules: {},
// ------------------------------------
}
},
computed: {
...mapGetters([
'id',
'roles',
'rolesIds',
'departmentId',
'departmentCode',
]),
mounted() {
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 2,
data: document.body.scrollHeight + 220 + 'px'
}
}, '*')
},
created() {
// ===sid
console.log('iframe页面获取到的url:' + window.location.href)
var a = window.location.href.indexOf("?") + 1 // ?
var b = window.location.href.indexOf("#data") // #data
const info = window.location.href.slice(a, b)
var sid = info.substr(info.indexOf("=") + 1)
this.showEdit(sid);
//
this.init()
// ===
var one = window.location.href.indexOf('&data') + 6
const data = window.location.href.substr(one) // urlunescape()web,使
const obj = JSON.parse(decodeURIComponent(data))
this.showEdit(obj.businessSid,obj.instanceId,obj.taskId)
},
methods: {
// ------------------
showEdit(sid) {
this.stateId = '1'
this.$nextTick(() => {
this.$refs['dataForm'].clearValidate()
});
// this.submitDto.businessSid = sid
this.temp.sid = sid
this.updateDto.sid = sid
this.dialogStatus = 'edit';
this.viewTitle = '【编辑】销售虚拟订单';
console.log('112233', sid)
selectSid(sid).then((response) => {
if (response.code) {
this.temp = response.data
this.list = response.data.depositVehicleList
this.nodeState = response.data.nodeState
if (this.nodeState !== '') {
this.disabled = true
}
}
});
this.getYudingcheliang()
},
getYudingcheliang() {
listPage({
current: this.listQuery.current,
size: this.listQuery.size,
params: {
billSid: this.listQuery.billSid,
},
}).then((response) => {
console.log('777', response);
if (response.code === '200') {
this.list = response.data.records
}
})
},
//
// handleCustomer(customerName){
// this.visible = false
// this.xuanzekehuShow = true
// },
// ------------------
noClickclose() {
this.visible = true;
this.yudingcheliangShow = false;
this.hetongdanganguanliAddShow = false;
this.hetongdanganguanliInfoShow = false;
this.kehudanganAddShow = false;
this.$emit('doback')
},
yudingcheliangfanhui() {
this.visible = true;
this.xuanzecheliangShow = false
this.xuanzekehuShow = false
this.kehudanganAddShow = false;
this.yudingcheliangShow = false;
this.hetongdanganguanliAddShow = false;
this.hetongdanganguanliInfoShow = false;
// this.$emit('doback')
},
handleUpdate(row) {
this.visible = false;
this.yudingcheliangShow = true;
this.hetongdanganguanliAddShow = false;
this.hetongdanganguanliInfoShow = false;
this.kehudanganAddShow = false;
var VirtualSid = this.xuniSid;
var xiugaizhuangtai = row.sid;
this.$refs['yudingcheliang'].modify(VirtualSid, xiugaizhuangtai)
},
//
handlehetong() {
if (this.xuniSid) {
this.visible = false;
this.yudingcheliangShow = false;
this.hetongdanganguanliAddShow = true;
this.hetongdanganguanliInfoShow = false;
this.kehudanganAddShow = false;
var contract = this.xuniSid;
var state = this.stateId;
this.$refs['hetongdanganguanliadd'].agreement('ht', contract, state)
} else {
this.$notify({
title: '提示',
message: '您还未填写保存销售虚拟订车单,请您去填写!!!!',
type: 'error',
duration: 2000,
});
}
},
//
handleCheckhetong() {
this.visible = false;
this.yudingcheliangShow = false;
this.hetongdanganguanliAddShow = false;
this.hetongdanganguanliInfoShow = true;
this.kehudanganAddShow = false;
var stateId = this.stateId;
this.$refs['hetongdanganguanli-info'].hetongdanganguanliinfo(stateId)
},
//
editCustomerInfo() {
if (!this.temp.customerSid) {
this.$notify({
title: '提示',
message: '请选择客户',
type: 'warning',
duration: 2000,
});
return
}
this.viewStateadds = false;
this.xiaodaijinrongfanganAddShow = false;
this.xiaodaijinrongfanganInfoShow = false;
this.hetongdanganguanliAddShow = false;
this.hetongdanganguanliInfoShow = false;
this.kehudanganAddShow = true;
this.$refs.addAndUpdate.openUpdate(this.temp.customerSid, () => {
this.visible = false
})
},
//
selectVehicle(depositVehicleList) {
for (var i = 0; i < depositVehicleList.length; i++) {
this.list.push({
brandName: depositVehicleList[i].brandName,
guidedPrice: depositVehicleList[i].guidedPrice,
location: depositVehicleList[i].location,
vinNo: depositVehicleList[i].vinNo,
sid: '',
vehicleAlias: depositVehicleList[i].vehicleAlias,
vehicleSid: depositVehicleList[i].sid
})
}
},
//
selectCustomer(row) {
this.temp.customerName = row.name
this.temp.customerSid = row.sid
this.temp.mobile = row.mobile
},
//
handleyudingcheliang() {
this.visible = false;
this.xuanzekehuShow = false;
this.xuanzecheliangShow = true;
this.kehudanganAddShow = false;
this.yudingcheliangShow = false;
this.hetongdanganguanliAddShow = false;
this.hetongdanganguanliInfoShow = false;
},
//
handleCustomer() {
this.xuanzekehuShow = true
this.xuanzecheliangShow = false;
this.visible = false;
this.yudingcheliangShow = false;
this.hetongdanganguanliAddShow = false;
this.hetongdanganguanliInfoShow = false;
this.kehudanganAddShow = false
},
init() {
var token = getStorage();
loginDetails(token).then((response) => {
console.log('resss', response);
if (response.code === '200') {
this.YongHuid = response.data;
this.orgName = this.YongHuid.departmentName;
this.staffName = this.YongHuid.name;
this._userSid = this.YongHuid.sid;
console.log('8888', this._userSid)
}
});
this.getDeposit_date()
},
// ------------------------------------------------------
//
resetTemp() {
this.temp = {};
this.list = []
},
//-
//-
getDeposit_date() {
typeValues({
type: 'reserveDepositDate'
}).then((res) => {
if (res.code === '200') {
this.deposit_list = res.data
console.log('下拉框请求预计金日期', res.data)
console.log('下拉框请求预计订金日期', res.data)
}
})
},
changeDeposit_date(row) {
for (var i = 0; i < this.deposit_list.length; i++) {
if (this.deposit_list[i].dictValue === row.reserve_deposit_date) {
row.reserve_deposit_date = this.deposit_list[i].dictValue
// this.list[i].reserve_deposit_date_key = this.deposit_list[i].dictKey
// this.list.forEach((item) => {
// item.reserve_deposit_date_key = this.deposit_list[i].dictKey
// })
for (var j = 0; j < this.list.length; j++) {
this.list[j].reserve_deposit_date_key = this.deposit_list[i].dictKey
}
if (this.deposit_list[i].dictValue === row.depositDate) {
row.depositDate = this.deposit_list[i].dictValue
this.list[i].reserve_deposit_date_key = this.deposit_list[i].dictKey
}
}
},
//
getDingdan(initList) {
saveEcho(initList).then((response) => {
if (response.code == '200') {
this.temp.billNo = response.data.billNo
this.temp.createDate = response.data.createDate
this.temp.orgName = response.data.orgName
this.temp.staffName = response.data.staffName
this.temp.depositBillType = response.data.depositBillType
this.temp.depositBillTypeKey = response.data.depositBillTypeKey
// this.createDate = formatDate(new Date(), 'yyyy-MM-dd')
getPathSid() {
const userSid = window.sessionStorage.getItem('userSid')
getPathSidByUserSid({userSid: userSid}).then((res) => {
if (res.success) {
this.getCreateOrgName(res.data)
}
})
},
chanNGes(status_String) {
console.log('9999', status_String);
this.listQuery.billSid = this.xuniSid;
listPage({
current: this.listQuery.current,
size: this.listQuery.size,
params: {
billSid: this.listQuery.billSid,
},
}).then((response) => {
console.log('777', response);
if (response.code === '200') {
this.list = response.data.records
getCreateOrgName(sid) {
fetchBySid(sid).then((res) => {
if (res.success) {
this.temp.departmentName = res.data.name
}
})
},
showEdit(businessSid,instanceId,taskId) {
this.$nextTick(() => {
this.$refs['dataForm'].clearValidate()
});
this.stateId = '1'
this.dialogStatus = 'edit';
this.viewTitle = '【编辑】销售简易订单';
const data = {
customerSid: '',
virtualOrderSid: businessSid,
userSid: window.sessionStorage.getItem('userSid')
}
selectSid(data).then((response) => {
if (response.code) {
this.temp = response.data
this.list = response.data.carList
this.temp.sid = businessSid
this.temp.instanceId = instanceId
this.temp.taskId = taskId
}
});
this.getDeposit_date()
},
// ------------ ------------
//
handleCreate() {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
this.FormLoading = true;
this.dialogStatus = 'create';
this.temp.depositVehicleList = this.list;
this.temp.staffSid = this.YongHuid.staffSid;
this.temp.orgSid = this.YongHuid.organizationSid;
this.temp.orgName = this.orgName;
this.temp.staffName = this.staffName;
this.temp.userSid = window.sessionStorage.getItem('userSid')
updateVehicle(this.temp).then((response) => {
this.FormLoading = false;
this.temp.carList = this.list;
this.temp.staffSid = window.sessionStorage.getItem('staffSid')
this.temp.orgSid = window.sessionStorage.getItem('orgSid')
saveChe(this.temp).then((response) => {
this.FormLoading = true;
if (response.code === '200') {
this.$notify({
title: '提示',
message: '修改成功',
type: 'success',
duration: 2000,
})
this.handleReturn('true')
this.xuniSid = response.data;
this.FormLoading = false;
// this.$emit('doback')
} else {
this.$notify({
title: '失败',
message: '修改失败',
title: '提示',
message: '添加失败',
type: 'error',
duration: 2000,
})
}
})
}
})
},
@ -526,17 +309,13 @@
if (valid) {
this.FormLoading = true;
this.dialogStatus = 'create';
this.temp.depositVehicleList = this.list;
this.temp.staffSid = this.YongHuid.staffSid;
this.temp.orgSid = this.YongHuid.organizationSid;
this.temp.orgName = this.orgName;
this.temp.staffName = this.staffName;
this.temp.userSid = window.sessionStorage.getItem('userSid')
this.temp.carList = this.list;
this.temp.staffSid = window.sessionStorage.getItem('staffSid')
this.temp.orgSid = window.sessionStorage.getItem('orgSid')
console.log('提交时sid', this.temp.sid)
//
submitVehicleApprove(this.temp).then((response) => {
if (response.code === '200') {
this.updateDto.nodeState = response.data.nodeState
this.$notify({
title: '提示',
message: '提交成功',
@ -555,55 +334,62 @@
})
})
},
//-----------------------------------------------------------------
getKeHuNames(value) {
let bb = null;
this.customerName.forEach((e) => {
if (e.sid == value) {
bb = {
name: e.name,
mobile: e.mobile,
idnumber: e.IDNumber,
certificateType: e.certificateType,
certificateTypeKey: e.certificateTypeKey,
}
}
});
this.temp.customerName = bb.name;
this.temp.mobile = bb.mobile;
this.temp.idnumber = bb.idnumber;
this.temp.certificateType = bb.certificateType;
this.temp.certificateTypeKey = bb.certificateTypeKey
//
selectCustomer(row) {
this.temp.customerName = row.name
this.temp.customerSid = row.sid
this.temp.mobile = row.mobile
},
//=======================================================================
handleDelete(row, index) {
console.log('033', row);
if (row.sid !== '') {
const sid_list = []
sid_list.push(row.sid, row.vehicleSid)
console.log('删除车辆信息', sid_list)
delVehicle(sid_list).then((response) => {
if (response.code === '200') {
this.$notify({
title: '提示',
message: '删除成功',
type: 'success',
duration: 2000,
});
// this.list.splice(index, 1)
this.getYudingcheliang()
} else {
this.$notify({
title: '删除失败',
message: response.msg,
type: 'error',
})
}
//
selectVehicle(depositVehicleList) {
for (var i = 0; i < depositVehicleList.length; i++) {
this.list.push({
brand: depositVehicleList[i].brandName,
model: depositVehicleList[i].vehicleAlias,
vin: depositVehicleList[i].vinNo,
colour: depositVehicleList[i].carColor,
location: depositVehicleList[i].location,
price: depositVehicleList[i].guidedPrice,
modelSid: depositVehicleList[i].modelSid,
configSid: depositVehicleList[i].configSid,
carSid: depositVehicleList[i].sid
})
} else {
this.list.splice(index, 1)
}
},
//
handleDelete(row, index) {
this.list.splice(index, 1)
// if (row.sid !== '') {
// const sid_list = []
// sid_list.push(row.sid, row.vehicleSid)
// console.log('', sid_list)
// } else {
// this.list.splice(index, 1)
// }
},
// ------------ ------------
//
handleyudingcheliang() {
this.visible = false;
this.xuanzekehuShow = false;
this.xuanzecheliangShow = true;
this.yudingcheliangShow = false;
},
//
handleCustomer() {
this.xuanzekehuShow = true
this.xuanzecheliangShow = false;
this.visible = false;
this.yudingcheliangShow = false;
},
//
yudingcheliangfanhui() {
this.visible = true;
this.xuanzecheliangShow = false
this.xuanzekehuShow = false
this.yudingcheliangShow = false;
},
},
}

240
anrui-buscenter/anrui-buscenter-ui/src/views/workflow/xiaoshouguanliFlow/xunidingdanFlow/cheliangyudingInfo.vue

@ -2,105 +2,109 @@
<div class="app-container">
<div v-show="visible">
<div class="tab-header webtop">
<div>销售虚拟订单详细信息(车辆)</div>
<div>销售简易订单详情</div>
<!-- <div v-else></div> -->
<div>
<el-button type="danger" @click="openRevoke"> </el-button>
</div>
</div>
<div class="listconadd">
<el-form ref="dataForm" :model="temp" label-position="right" class="formadd">
<el-form
ref="dataForm"
:model="temp"
label-position="right"
class="formadd"
>
<div class="tit">
销售虚拟订车单
<div class="times">
<div><span>单据编号</span><span>{{ temp.billNo }}</span></div>
<div><span>制单日期</span><span>{{ temp.createDate }}</span></div>
<div><span>分公司</span><span>{{ temp.departmentName }}</span></div>
<div><span>申请人</span><span>{{ temp.staffName }}</span></div>
<div><span>申请日期</span><span>{{ temp.createDate }}</span></div>
<div><span>金额单位</span><span></span></div>
</div>
</div>
<el-row class="bordertopline">
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label">部门名称</span></el-form-item>
<el-col :span="2" class="tleftb">
<el-form-item>订单类型</el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-col :span="6" class="trightb">
<el-form-item>
{{ temp.orgName }}
<span>{{ temp.depositBillType }}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label">销售专员</span></el-form-item>
<el-col :span="2" class="tleftb">
<el-form-item>客户名称</el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-form-item>
{{ temp.staffName }}
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label">虚拟订单类型</span></el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-form-item>
<span>{{temp.depositBillType}}</span>
</el-form-item>
</el-col>
<el-col :span="12" class="tleftb"/>
</el-row>
<el-row class="bordertopline">
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label">客户名称</span></el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-col :span="6" class="trightb">
<el-form-item>
{{ temp.customerName }}
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label">联系电话</span></el-form-item>
<el-col :span="2" class="tleftb">
<el-form-item>联系电话</el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-col :span="6" class="trightb">
<el-form-item>
{{ temp.mobile }}
</el-form-item>
</el-col>
</el-row>
<!--Start 预定车辆信息-->
<div class="titcon">
<div class="title">预订车辆信息</div>
</div>
<el-table v-loading="listLoading" :data="list" border style="width: 100%" :index="index">
<el-table-column align="center" label="序号" type="index" width="50"/>
<el-table-column label="操作" align="center" width="250px" class-name="small-padding fixed-width">
</el-table-column>
<!--Start 预订车辆信息-->
<!-- <div class="title">-->
<div class="title">预订车辆信息</div>
<!-- </div>-->
<el-table
v-loading="listLoading"
:data="list"
border
style="width: 100%"
:index="index"
>
<el-table-column
align="center"
label="序号"
type="index"
width="50"
/>
<el-table-column label="品牌" align="center">
<template slot-scope="scope">
<span>{{scope.row.brandName}}</span>
<span>{{ scope.row.brand }}</span>
</template>
</el-table-column>
<el-table-column label="车型名称" align="center">
<template slot-scope="scope">
<span>{{scope.row.vehicleAlias}}</span>
<span>{{ scope.row.carName }}</span>
</template>
</el-table-column>
<el-table-column label="车架号" align="center">
<template slot-scope="scope" @click="">
<span>{{scope.row.vinNo}}</span>
<span>{{ scope.row.vin }}</span>
</template>
</el-table-column>
<el-table-column label="颜色" align="center">
<template slot-scope="scope" @click="">
<span>{{ scope.row.colour }}</span>
</template>
</el-table-column>
<el-table-column label="存放地点" align="center">
<template slot-scope="scope">
<span>{{scope.row.location}}</span>
<span>{{ scope.row.location }}</span>
</template>
</el-table-column>
<el-table-column label="销售指导价" align="center">
<template slot-scope="scope">
<span>{{scope.row.guidedPrice}}</span>
<span>{{ scope.row.price }}</span>
</template>
</el-table-column>
<el-table-column label="预计金日期" align="center">
<el-table-column label="预计金日期" align="center">
<template slot-scope="scope">
<span>{{scope.row.reserve_deposit_date}}</span>
<span>{{ scope.row.reserveDate }}</span>
</template>
</el-table-column>
<el-table-column label="备注" align="center">
<template slot-scope="scope">
<span>{{scope.row.remarks}}</span>
<span>{{ scope.row.remarks }}</span>
</template>
</el-table-column>
</el-table>
@ -111,8 +115,9 @@
</template>
<script>
import {mapGetters} from 'vuex'
import {selectSid} from '@/api/jichuxinxi/busdeposit'
import {mapGetters} from "vuex";
import {getReserveCarDetails} from "@/api/jichuxinxi/busdeposit";
import req from '@/api/flow/jianyidingdan.js'
export default {
name: "cheliangyudingInfo",
@ -124,22 +129,18 @@
// ---------
YongHuid: [],
visible: true,
stateId: '0',
stateId: "0",
FormLoading: false,
listLoading: false,
list: [],
temp: {}, //
textMap: {
update: '修改',
create: '创建',
update: "修改",
create: "创建",
},
submitDto: {
businessSid: '',
userSid: window.sessionStorage.getItem('userSid')
},
updateDto: {
nodeState: '',
sid: '',
userSid: window.sessionStorage.getItem("userSid"),
},
nodeState: '',
billNo: '',
@ -153,57 +154,112 @@
tificateT: [],
dnumbDate: [],
dialogStatus: '', //
}
// ------------------------------------
//
revokeList: {
businessSid: '',
instanceId: '',
taskId: '',
userSid: ''
},
};
},
computed: {
...mapGetters([
'id',
'roles',
'rolesIds',
'departmentId',
'departmentCode',
"id",
"roles",
"rolesIds",
"departmentId",
"departmentCode",
]),
},
mounted() {
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 2,
data: document.body.scrollHeight + 220 + 'px'
}
}, '*')
},
created() {
// ===sid
console.log('iframe页面获取到的url:' + window.location.href)
var a = window.location.href.indexOf("?") + 1 // ?
var b = window.location.href.indexOf("#data") // #data
const info = window.location.href.slice(a, b)
var sid = info.substr(info.indexOf("=") + 1)
this.showInfo(sid);
//
this.init()
// ===
var one = window.location.href.indexOf('&data') + 6
// urlunescape()web,使
const data = window.location.href.substr(one) // urlunescape()web,使
const obj = JSON.parse(decodeURIComponent(data))
console.log('obj',obj)
this.showInfo(obj.businessSid)
//
this.revokeList.businessSid = obj.businessSid
this.revokeList.instanceId = obj.instanceId
this.revokeList.taskId = obj.taskId
this.revokeList.taskDefKey = obj.taskDefKey
this.revokeList.userSid = window.sessionStorage.getItem('userSid')
//
this.transactState = obj.transactState
//
// this.getModelDetail(obj.deployId)
// this.getFlowViewer(obj.instanceId)
},
methods: {
// ------------------
showInfo(sid) {
console.log('修改打开', sid)
this.submitDto.businessSid = sid
console.log("修改打开", sid);
this.submitDto.businessSid = sid;
this.$nextTick(() => {
this.$refs['dataForm'].clearValidate()
})
selectSid(sid).then((response) => {
this.$refs["dataForm"].clearValidate();
});
getReserveCarDetails(sid).then((response) => {
if (response.code) {
this.temp = response.data
this.list = response.data.depositVehicleList
this.nodeState = response.data.nodeState
if (this.nodeState == '') {
this.disabled = false
}
this.list = response.data.vehicleList
} else {
this.$notify({
title: '提示',
message: '查看失败',
type: 'error',
title: "提示",
message: "查看失败",
type: "error",
duration: 2000,
})
});
}
});
},
init() {
openRevoke() {
this.$confirm('是否确认执行撤回操作', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.handleRevoke()
}).catch(() => {
this.$message({
type: 'info',
message: '已取消撤回'
})
})
},
/** 撤回任务 */
handleRevoke() {
// this.revokeList.comment = this.dialogList.comment
req.revokeTask(this.revokeList).then((response) => {
if (response.success) {
this.$message({
showClose: true,
message: '执行成功',
type: 'success'
});
//
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 1
}
}, '*')
}
})
}
},
}
</script>

649
anrui-buscenter/anrui-buscenter-ui/src/views/workflow/xiaoshouguanliFlow/xunidingdanFlow/dingjinshouqu.vue

@ -4,124 +4,123 @@
<div class="tab-header webtop">
<div>销售虚拟订单管理详细信息</div>
<div>
<!-- <el-button type="primary" @click="openAgree"> </el-button>-->
<!-- <el-button type="danger" @click="openReject"> </el-button>-->
<!-- <el-button type="danger" @click="openStop"> </el-button>-->
<el-button type="primary" @click="openAgree('同意')"> </el-button>
<el-button type="danger" @click="openReject('驳回')"> </el-button>
<el-button type="danger" @click="openStop('终止')"> </el-button>
</div>
</div>
<div class="listconadd">
<el-form ref="dataForm" :model="temp" label-position="right" label-width="100%" class="formadd">
<div class="tit">
销售虚拟订单
销售简易订单
<div class="times">
<div><span>单据编号</span><span>{{ temp.billNo }}</span></div>
<div><span>制单日期</span><span>{{ temp.createDate }}</span></div>
<div><span>分公司</span><span>{{ temp.departmentName }}</span></div>
<div><span>申请人</span><span>{{ temp.staffName }}</span></div>
<div><span>申请日期</span><span>{{ temp.createDate }}</span></div>
<div><span>金额单位</span><span></span></div>
</div>
</div>
<el-row class="bordertopline">
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label">部门名称</span></el-form-item>
<el-col :span="3" class="tleftb">
<el-form-item><span>订单类型</span></el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-col :span="5" class="trightb">
<el-form-item>
{{ temp.orgName }}
<span>{{ temp.depositBillType }}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label">业务员</span></el-form-item>
<el-col :span="3" class="tleftb">
<el-form-item><span>付款人</span></el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-col :span="5" class="trightb">
<el-form-item>
{{ temp.staffName }}
<span>{{ temp.payName }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label">虚拟订单类型</span></el-form-item>
<el-col :span="3" class="tleftb">
<el-form-item><span>联系电话</span></el-form-item>
</el-col>
<el-col :span="20" class="trightb">
<el-col :span="5" class="trightb">
<el-form-item>
<span>{{temp.depositBillType}}</span>
<span>{{ temp.mobile }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label"><span class="icon">*</span>付款人</span></el-form-item>
<el-col :span="3" class="tleftb">
<el-form-item><span>车辆台数</span></el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-col :span="5" class="trightb">
<el-form-item>
{{ temp.draweeName }}
<span>{{ temp.carNumber }}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label"><span class="icon">*</span>联系电话</span></el-form-item>
<el-col :span="3" class="tleftb">
<el-form-item><span>订金金额</span></el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-col :span="13" class="trightb">
<el-form-item>
{{ temp.draweeMobile }}
<span>{{ temp.deposit }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label">车辆台数</span></el-form-item>
<el-col :span="3" class="tleftb">
<el-form-item><span>付款日期</span></el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-col :span="5" class="trightb">
<el-form-item>
{{ temp.vehicleNum }}
<span>{{ temp.payDate }}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label"><span class="icon">*</span>订金金额</span></el-form-item>
<el-col :span="3" class="tleftb">
<el-form-item><span>付款方式</span></el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-col :span="5" class="trightb">
<el-form-item>
{{ temp.deposit }}
<span>{{ temp.payType }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="3" class="tleftb">
<el-form-item><span slot="label"><span class="icon">*</span>付款日期</span></el-form-item>
<el-form-item><span>付款银行账号</span></el-form-item>
</el-col>
<el-col :span="5" class="trightb">
<el-form-item>
{{ temp.paymentDate }}
<el-input v-model="temp.payNumber" class="addinputw" placeholder="" clearable/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="3" class="tleftb">
<el-form-item><span slot="label"><span class="icon">*</span>付款方式</span></el-form-item>
<el-form-item><span>收款银行账号</span></el-form-item>
</el-col>
<el-col :span="5" class="trightb">
<el-form-item>
{{ temp.payType }}
<span>{{ temp.collectionNumber }}</span>
</el-form-item>
</el-col>
<el-col :span="3" class="tleftb">
<el-form-item><span slot="label"><span class="icon">*</span>收款银行账号</span></el-form-item>
<el-form-item><span>收款银行</span></el-form-item>
</el-col>
<el-col :span="5" class="trightb">
<el-col :span="13" class="trightb">
<el-form-item>
{{ temp.proBankAcc }}
<span>{{ temp.collectionBank }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label">备注</span></el-form-item>
<el-col :span="3" class="tleftb">
<el-form-item><span>备注</span></el-form-item>
</el-col>
<el-col :span="20" class="trightb">
<el-col :span="21" class="trightb">
<el-form-item>
{{ temp.remarks }}
<span>{{ temp.remarks }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label"><span class="icon">*</span>付款凭证</span></el-form-item>
<el-form-item><span slot="label">付款凭证</span></el-form-item>
</el-col>
<el-col :span="20" class="trightb">
<el-form-item>
@ -134,15 +133,15 @@
<div class="title">客户信息</div>
</div>
<el-table v-loading="listLoading" :data="list" border style="width: 100%" :index="index">
<el-table-column align="center" label="序号" type="index" width="50"/>
<el-table-column align="center" label="序号" type="index" width="60"/>
<el-table-column label="客户名称" align="center">
<template slot-scope="scope">
<span>{{scope.row.customerName}}</span>
<span>{{ scope.row.customerName }}</span>
</template>
</el-table-column>
<el-table-column label="联系电话" align="center">
<template slot-scope="scope">
<span>{{scope.row.customerMobile}}</span>
<span>{{ scope.row.mobile }}</span>
</template>
</el-table-column>
</el-table>
@ -150,263 +149,329 @@
</el-form>
</div>
</div>
<el-dialog title="填写审批意见" :visible.sync="nodeDialogVisible" width="80%">
<el-form label-position="right" class="formadd">
<el-row v-show="currentLink">
<el-col :span="4" class="tleftb">当前环节</el-col>
<el-col :span="20" class="trightb">
<el-form-item prop="purchasingUnitName"><span>{{ current.taskName }}->{{ nextNode.name }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row style="border-bottom: 1px solid #e0e3eb;">
<el-col :span="4" class="tleftb">意见</el-col>
<el-col :span="20" class="trightb">
<el-input size="small" v-model="dialogList.comment" placeholder="审批意见" class="addinputw"
clearable></el-input>
</el-col>
</el-row>
<div style="text-align:center;margin-top: 20px;">
<el-button type="primary" size="mini" @click="confirm"> </el-button>
<el-button type="info " size="mini" @click="nodeDialogVisible = false"> </el-button>
</div>
</el-form>
</el-dialog>
</div>
</template>
<script>
import {mapGetters} from 'vuex'
import {fetchSid} from '@/api/jichuxinxi/busdeposit'
import { businessAgree, rejectTask, breakTask, revokeTask} from '@/api/flow/todo'
import {fetchSid} from '@/api/jichuxinxi/busdeposit'
import req from '@/api/flow/jianyidingdan.js'
export default {
name: "dingjinshouqu",
data() {
return {
sid: '',
viewTitle: '',
index: 0,
imgUrl: '',
// dialogStatus: 'add',
// ---------
edit: true,
visible: true,
stateId: '0',
FormLoading: false,
listLoading: false,
list: [],
temp: {
billNo: '',
createDate: '',
}, //
textMap: {
update: '修改',
create: '创建',
},
//
dialogList: {},
agreeList: { //
businessSid: '',
comment: '',
instanceId: '',
taskId: '',
userSid: window.sessionStorage.getItem('userSid')
},
regectList: { //
comment: '',
instanceId: '',
taskId: '',
userSid: window.sessionStorage.getItem('userSid')
},
stopList: { //
comment: '',
instanceId: '',
taskId: '',
userSid: window.sessionStorage.getItem('userSid')
},
mobile: '',
orgName: '',
staffName: '',
_userSid: '',
customerName: [],
xuniSid: '',
tificateT: [],
dnumbDate: [],
dialogStatus: '', //
// ------------------------------------
export default {
name: "dingjinshouqu",
data() {
return {
disabled: '',
viewTitle: '',
index: 0,
imgUrl: '',
// ---------
YongHuid: [],
edit: true,
visible: true,
stateId: '0',
FormLoading: false,
listLoading: false,
list: [],
temp: {},
// ------------------------------------
currentLink: true, //
dialogList: {
comment: ''
},
xmlData: '', // xml
taskList: [],
startTask: true,
current: {
taskDefKey: '',
taskName: '' //
},
nextNode: {}, //
nodeDialogVisible: false,
//
agreeList: {
businessSid: '',
comment: '',
instanceId: '',
taskId: '',
orgSidPath: '',
taskDefKey: '',
userSid: ''
},
//
regectList: {
businessSid: '',
comment: '',
instanceId: '',
taskId: '',
userSid: ''
},
//
stopList: {
businessSid: '',
comment: '',
instanceId: '',
taskId: '',
userSid: ''
}
}
},
mounted() {
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 2,
data: document.body.scrollHeight + 220 + 'px'
}
}, '*')
},
created() {
// ===
var one = window.location.href.indexOf('&data') + 6
const data = window.location.href.substr(one) // urlunescape()web,使
const obj = JSON.parse(decodeURIComponent(data))
console.log('获取到的obj', obj)
//
this.agreeList.businessSid = obj.businessSid
this.agreeList.instanceId = obj.instanceId
this.agreeList.taskId = obj.taskId
this.agreeList.taskDefKey = obj.taskDefKey
this.agreeList.userSid = window.sessionStorage.getItem('userSid')
this.agreeList.orgSidPath = window.sessionStorage.getItem('orgSidPath')
this.current.taskDefKey = obj.taskDefKey
this.current.taskName = obj.taskName
//
this.regectList.businessSid = obj.businessSid
this.regectList.instanceId = obj.instanceId
this.regectList.taskId = obj.taskId
this.regectList.userSid = window.sessionStorage.getItem('userSid')
//
this.stopList.businessSid = obj.businessSid
this.stopList.instanceId = obj.instanceId
this.stopList.taskId = obj.taskId
this.stopList.userSid = window.sessionStorage.getItem('userSid')
//
this.transactState = obj.transactState
//
this.showInfo(obj.businessSid)
this.getFlowViewer(obj.instanceId)
this.getModelDetail(obj.deployId)
},
methods: {
showInfo(sid) {
fetchSid(sid).then((response) => {
if (response.code === '200') {
this.temp = response.data
this.imgUrl = this.temp.payImages[this.temp.payImages.length - 1]
this.list = response.data.customerList
} else {
this.$notify({
title: '提示',
message: '查看失败',
type: 'error',
duration: 2000,
})
}
})
},
computed: {
...mapGetters([
'id',
'roles',
'rolesIds',
'departmentId',
'departmentCode',
]),
// ---------- ------------------------------
/** xml 文件 */
getModelDetail(deployId) {
// xml
req.readXml(deployId).then((res) => {
this.xmlData = res.data
})
},
mounted() {
window.init = this.init;
//
getFlowViewer(procInsId) {
req.getFlowViewer(procInsId).then((res) => {
this.taskList = res.data
})
},
created() {
// ===sid
console.log('iframe页面获取到的url:' + window.location.href)
var a = window.location.href.indexOf("?") + 1 // ?
var b = window.location.href.indexOf("#data") // #data
const info = window.location.href.slice(a, b)
var sid = info.substr(info.indexOf("=") + 1)
this.showInfo(sid);
// ===
var one = window.location.href.lastIndexOf("#") + 1
var two = window.location.href.lastIndexOf("}") + 1
const data = decodeURI(window.location.href.slice(one, two)) // urlunescape()web,使
var tar = data.substr(data.indexOf("=") + 1)
const obj = JSON.parse(tar)
console.log('iframe页面获取的obj:', obj)
//
this.agreeList.businessSid = sid
this.agreeList.instanceId = obj.instanceId
this.agreeList.taskId = obj.taskId
//
this.regectList.instanceId = obj.instanceId
this.regectList.taskId = obj.taskId
//
this.stopList.instanceId = obj.instanceId
this.stopList.taskId = obj.taskId
//
openAgree(val) {
this.operation = val
this.dialogList.comment = '同意'
this.currentLink = true //
// const formVariables = {
// businessSid: this.agreeList.businessSid
// }
req.getNextNodesForSubmit({taskDefKey: this.current.taskDefKey}).then((resp) => {
if (resp.success) {
var arr = resp.data
this.nextNode = arr[0]
this.nodeDialogVisible = true
}
this.submitdisabled = false
})
},
methods: {
init(sid) {
console.log('我是iframe页面里的内容', sid)
},
//
openAgree() {
this.$confirm('是否确认执行同意操作', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.handleAgree()
}).catch(() => {
this.$message({
type: 'info',
message: '已取消同意'
});
});
},
/** 同意任务 */
handleAgree() {
this.agreeList.comment = this.comment
businessAgree(this.agreeList).then((response) => {
if (response.code === '200') {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000,
})
this.refreshIt()
} else {
this.$notify({
title: '提示',
message: '执行失败',
type: 'error',
duration: 2000,
})
}
//
openReject(val) {
this.operation = val
this.dialogList.comment = ''
this.currentLink = true //
// const formVariables = {
// businessSid: this.regectList.businessSid
// }
req.getPreviousNodesForReject({taskDefKey: this.current.taskDefKey}).then((resp) => {
if (resp.success) {
var arr = resp.data
this.nextNode = arr[0]
this.nodeDialogVisible = true
}
this.submitdisabled = false
})
},
//
openStop(val) {
this.operation = val
this.dialogList.comment = ''
this.currentLink = false //
this.nodeDialogVisible = true
},
/** 选择代办人确认 */
confirm() {
if (this.operation === '同意') {
this.handleAgree()
} else if (this.operation === '驳回') {
this.handleReject()
} else if (this.operation === '终止') {
this.handleStop()
}
},
/** 同意任务 */
handleAgree() {
this.agreeList.comment = this.dialogList.comment
if (this.agreeList.comment == '') {
this.$message({
showClose: true,
message: '请填写同意意见!',
type: 'error'
})
},
//
openReject() {
this.$confirm('是否确认执行驳回操作', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.handleReject()
}).catch(() => {
return
}
req.agreeDingjinTask(this.agreeList).then((response) => {
if (response.success) {
this.$message({
type: 'info',
message: '已取消驳回'
});
});
},
/** 驳回任务 */
handleReject() {
this.regectList.comment = this.comment
rejectTask(this.regectList).then((response) => {
if (response.code === '200') {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000,
})
this.refreshIt()
} else {
this.$notify({
title: '提示',
message: '执行失败',
type: 'error',
duration: 2000,
})
}
showClose: true,
message: '执行成功',
type: 'success'
})
this.nodeDialogVisible = false
//
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 1
}
}, '*')
}
})
},
/** 驳回任务 */
handleReject() {
this.regectList.comment = this.dialogList.comment
if (this.regectList.comment == '') {
this.$message({
showClose: true,
message: '请填写驳回意见!',
type: 'error'
})
},
//
openStop() {
this.$confirm('是否确认执行终止操作', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.handleStop()
}).catch(() => {
return
}
req.rejectTask(this.regectList).then((response) => {
if (response.success) {
this.$message({
type: 'info',
message: '已取消终止'
});
});
},
/** 终止任务 */
handleStop() {
this.stopList.comment = this.comment
breakTask(this.stopList).then((response) => {
if (response.code === '200') {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000,
})
this.refreshIt()
} else {
this.$notify({
title: '提示',
message: '执行失败',
type: 'error',
duration: 2000,
})
}
})
},
//
showInfo(sid) {
fetchSid(sid).then((response) => {
if (response.code === '200') {
this.temp = response.data
this.imgUrl = this.temp.paymentProofList[this.temp.paymentProofList.length - 1]
this.list = response.data.customerList
} else {
this.$notify({
title: '提示',
message: '查看失败',
type: 'error',
duration: 2000,
})
}
showClose: true,
message: '执行成功',
type: 'success'
})
this.nodeDialogVisible = false
//
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 1
}
}, '*')
}
})
},
/** 终止任务 */
handleStop() {
this.stopList.comment = this.dialogList.comment
if (this.stopList.comment == '') {
this.$message({
showClose: true,
message: '请填写终止意见!',
type: 'error'
})
},
}
return
}
req.breakTask(this.stopList).then((response) => {
if (response.success) {
this.$message({
showClose: true,
message: '执行成功',
type: 'success'
})
this.nodeDialogVisible = false
//
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 1
}
}, '*')
}
})
},
}
}
</script>
<style scoped>
.tit {
margin: 0 0 20px 0;
padding: 10px 0 0 0;
}
.tit {
margin: 0 0 20px 0;
padding: 10px 0 0 0;
}
.times {
display: flex;
flex-direction: row;
justify-content: space-around;
padding: 30px 0 10px 0;
margin: 0 auto 0px auto;
width: 70%;
font-size: 14px;
}
.times {
display: flex;
flex-direction: row;
justify-content: space-around;
padding: 30px 0 10px 0;
margin: 0 auto 0px auto;
width: 70%;
font-size: 14px;
}
/deep/ .el-form-item__content {
margin-left: 0 !important;
}
/deep/ .el-form-item__content {
margin-left: 0 !important;
}
</style>

566
anrui-buscenter/anrui-buscenter-ui/src/views/workflow/xiaoshouguanliFlow/xunidingdanFlow/dingjinshouquEdit.vue

@ -2,11 +2,11 @@
<div class="app-container">
<div v-show="visible">
<div class="tab-header webtop">
<div>销售虚拟订单编辑(订金)</div>
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" @click="handleUpdate()">保存</el-button>
<el-button type="primary" size="small" @click="handleSubmit()">提交
</el-button>
<el-button type="primary" size="small" @click="handleCreate()">保存</el-button>
<el-button type="primary" size="small" :disabled="disabled" @click="handleSubmit()">提交</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd">
@ -14,129 +14,132 @@
<div class="tit">
销售虚拟订单
<div class="times">
<div><span>单据编号</span><span>{{ temp.billNo }}</span></div>
<div><span>制单日期</span><span>{{ temp.createDate }}</span></div>
<div><span>分公司</span><span>{{ temp.departmentName }}</span></div>
<div><span>申请人</span><span>{{ temp.staffName }}</span></div>
<div><span>申请日期</span><span>{{ temp.createDate }}</span></div>
<div><span>金额单位</span><span></span></div>
</div>
</div>
<el-row class="bordertopline">
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label">部门名称</span></el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-form-item>
{{ temp.orgName }}
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label">业务员</span></el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-form-item>
{{ temp.staffName }} <!-- ?? -->
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label">虚拟订单类型</span></el-form-item>
<el-col :span="3" class="tleftb">
<el-form-item><span>订单类型</span></el-form-item>
</el-col>
<el-col :span="20" class="trightb">
<el-col :span="5" class="trightb">
<el-form-item>
<span>{{temp.depositBillType}}</span>
<span>{{ temp.depositBillType }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label"><span class="icon">*</span>付款人</span></el-form-item>
<el-col :span="3" class="tleftb">
<el-form-item><span><span class="icon">*</span>付款人</span></el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-col :span="5" class="trightb">
<el-form-item>
<el-input v-model="temp.draweeName" class="addinputw" placeholder=""
<el-input v-model="temp.payName" class="addinputw" placeholder=""
clearable/>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label"><span class="icon">*</span>联系电话</span></el-form-item>
<el-col :span="3" class="tleftb">
<el-form-item><span><span class="icon">*</span>联系电话</span></el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-form-item>
<el-input v-model="temp.draweeMobile" class="addinputw" placeholder="" clearable/>
<el-col :span="5" class="trightb">
<el-form-item prop="mobile">
<el-input v-model="temp.mobile" class="addinputw" placeholder="" clearable/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label">车辆台数</span></el-form-item>
<el-col :span="3" class="tleftb">
<el-form-item><span>车辆台数</span></el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-col :span="5" class="trightb">
<el-form-item>
<el-input v-model="temp.vehicleNum" class="addinputw" placeholder=""
<el-input v-model="temp.carNumber" class="addinputw" placeholder=""
clearable/>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label"><span class="icon">*</span>金金额</span></el-form-item>
<el-col :span="3" class="tleftb">
<el-form-item><span><span class="icon">*</span>金金额</span></el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-col :span="13" class="trightb">
<el-form-item>
<el-input v-model="temp.deposit" class="addinputw" placeholder="" clearable/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="3" class="tleftb">
<el-form-item><span slot="label"><span class="icon">*</span>付款日期</span></el-form-item>
<el-form-item><span><span class="icon">*</span>付款日期</span></el-form-item>
</el-col>
<el-col :span="5" class="trightb">
<el-form-item>
<el-date-picker
v-model="temp.paymentDate"
v-model="temp.payDate"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd">
value-format="yyyy-MM-dd"
class="addinputw">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="3" class="tleftb">
<el-form-item><span slot="label"><span class="icon">*</span>付款方式</span></el-form-item>
<el-form-item><span><span class="icon">*</span>付款方式</span></el-form-item>
</el-col>
<el-col :span="5" class="trightb">
<el-form-item>
<el-select v-model="temp.payType" class="addinputw" placeholder="" @change="changePaymentType">
<el-select v-model="temp.payTypeKey" class="addinputw" placeholder="" @change="changePaymentType">
<el-option v-for="(item, index) in paymentType_list" :key="index.dictKey" :label="item.dictValue"
:value="item.dictKey"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="3" class="tleftb">
<el-form-item><span slot="label"><span class="icon">*</span>款银行账号</span></el-form-item>
<el-form-item><span><span class="icon">*</span>款银行账号</span></el-form-item>
</el-col>
<el-col :span="5" class="trightb">
<el-form-item>
<el-input v-model="temp.proBankAcc" class="addinputw" placeholder=""
clearable/>
<el-input v-model="temp.payNumber" class="addinputw" placeholder="" clearable/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label">备注</span></el-form-item>
<el-col :span="3" class="tleftb">
<el-form-item><span><span class="icon">*</span>收款银行账号</span></el-form-item>
</el-col>
<el-col :span="20" class="trightb">
<el-col :span="5" class="trightb">
<el-form-item>
<el-input v-model="temp.remarks" class="addinputw" placeholder=""
clearable/>
<el-select v-model="temp.collectionNumberKey" class="addinputw" placeholder=""
@change="changeProBankAccValue">
<el-option v-for="(item, index) in ProBankAcc_list" :key="index.dictKey" :label="item.dictValue"
:value="item.dictKey"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="3" class="tleftb">
<el-form-item><span><span class="icon">*</span>收款银行</span></el-form-item>
</el-col>
<el-col :span="13" class="trightb">
<el-select v-model="temp.collectionBankKey" class="addinputw" placeholder="" @change="changeproBank">
<el-option v-for="(item, index) in proBank_list" :key="index.dictKey" :label="item.dictValue"
:value="item.dictKey"/>
</el-select>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label"><span class="icon">*</span>付款凭证</span></el-form-item>
<el-col :span="3" class="tleftb">
<el-form-item><span>备注</span></el-form-item>
</el-col>
<el-col :span="21" class="trightb">
<el-form-item>
<el-input v-model="temp.remarks" class="addinputw" placeholder="" clearable/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="3" class="tleftb">
<el-form-item><span><span class="icon">*</span>付款凭证</span></el-form-item>
<div class="tips"><span>只可上传一张付款凭证</span></div>
</el-col>
<el-col :span="20" class="trightb">
<el-col :span="21" class="trightb">
<el-form-item>
<Upload ref="uploadImg" v-model="list1" :limit="1" bucket="map" :upload-data="{type:'0001'}"/>
</el-form-item>
@ -147,14 +150,15 @@
<div class="title">客户信息</div>
<div class="baocun">
<el-button type="primary" size="small" icon="el-icon-plus" class="btntopblueline"
@click="handleyudingcheliang()">新增
@click="handleyudingcheliang()">添加
</el-button>
</div>
</div>
<el-table v-loading="listLoading" :data="list" border style="width: 100%" :index="index">
<el-table-column align="center" label="序号" type="index" width="50"/>
<el-table-column label="操作" align="center" width="250px" class-name="small-padding fixed-width">
<el-table-column align="center" label="序号" type="index" width="60"/>
<el-table-column label="操作" align="center" width="80px" class-name="small-padding fixed-width">
<template slot-scope="scope">
<!-- <el-button size="mini" type="primary" @click="handleUpdate(row)">编辑</el-button>-->
<el-button size="mini" type="danger" @click="handleDelete(scope.row,scope.$index,list[scope.$index])">
删除
</el-button>
@ -162,12 +166,12 @@
</el-table-column>
<el-table-column label="客户名称" align="center">
<template slot-scope="scope">
<span>{{scope.row.customerName}}</span>
<span>{{ scope.row.customerName }}</span>
</template>
</el-table-column>
<el-table-column label="联系电话" align="center">
<template slot-scope="scope">
<span>{{scope.row.customerMobile}}</span>
<span>{{ scope.row.mobile }}</span>
</template>
</el-table-column>
</el-table>
@ -177,62 +181,77 @@
</div>
<!-- 客户信息 -->
<xuanzekehu v-show="kehudanganAddShow" ref="addAndUpdate" @dingjinfanhui="noClickclose"
@handleCustomerList="selectCustomer"></xuanzekehu>
@handleCustomer="selectCustomer"></xuanzekehu>
</div>
</template>
<script>
import {mapGetters} from 'vuex'
import {update, fetchSid, typeValues} from '@/api/jichuxinxi/busdeposit'
import {businessAgree, rejectTask, breakTask} from '@/api/flow/todo'
import {Getdel} from '@/api/jichuxinxi/busdepositvehicle'
import {submitApprove} from '@/api/portal/workFlow'
import Upload from '@/components/uploadFile/upload.vue' //
import xuanzekehu from "../../../xiaoshouguanli/xunidingdan/com/xuanzekehu.vue"
import {mapGetters} from 'vuex'
import {depositDetail, saveDing, submitApprove, typeValues} from '@/api/jichuxinxi/busdeposit'
import {fetchBySid, getPathSidByUserSid} from '@/api/dictcommons/dictcommons'
import req from '@/api/flow/jianyidingdan.js'
import Upload from '@/components/uploadFile/upload.vue' //
import xuanzekehu from "@/views/xiaoshouguanli/xunidingdan/com/xuanzekehu"
export default {
name: "dingjinshouquEdit",
components: {Upload, xuanzekehu},
data() {
var checkSubmit = (rule, value, callback) => {
const Submit =
/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/
if (Submit.test(value)) {
return callback()
}
callback(new Error('请输入手机号'))
}
return {
// ---
list1: [],
viewTitle: '',
dialogStatus: '',
index: 0,
disabled: false, //
// dialogStatus: 'add',
// ---------
YongHuid: [],
edit: true,
visible: true,
stateId: '0',
FormLoading: false,
listLoading: false,
list: [],
paymentType_list: [],
customer_list: [],
proBank_list: [],
ProBankAcc_list: [],
temp: {
sid: '',
billNo: '',
createDate: '',
orgName: '',
staffName: '',
depositBillType: '',
paymentProofList: []
departmentName:'',
staffName:'',
createDate:'',
payName: '',
payImages: [], //
collectionNumber: '', //
collectionNumberKey: '', //
payTypeKey: '', //
payType: '', //
payDate: '', //
collectionBankKey: '', //
collectionBank: '', //
collectionBankSid: '', // Sid
payNumber: '', //
deposit: '', //
carNumber: '', //
mobile: '', //
remarks: '', //
customerList: [],
userSid: window.sessionStorage.getItem('userSid'), // Sid
virtualOrderSid: '', // Sid
taskId: '', // Id
procInsId: '', // ID
}, //
textMap: {
update: '修改',
create: '创建',
},
initList: {
depositBillTypeKey: '',
depositBillType: '',
userSid: window.sessionStorage.getItem('userSid')
},
nodeState: '', //
sid_list: {},
comment: '',
submitDto: {
businessSid: '',
userSid: window.sessionStorage.getItem('userSid')
},
xuniSid: '',
orgName: '',
staffName: '',
@ -244,7 +263,15 @@
hetongdanganguanliAddShow: false,
hetongdanganguanliInfoShow: false,
kehudanganAddShow: false,
rules: {},
rules: {
mobile: [
{
required: true,
validator: checkSubmit,
trigger: 'blur',
},
],
},
// ------------------------------------
}
},
@ -258,64 +285,152 @@
]),
},
mounted() {
// window.init = this.init;
// this.$nextTick(() => {
// //
// window.addEventListener('sid', this.init);
// // json
// })
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 2,
data: document.body.scrollHeight + 220 + 'px'
}
}, '*')
},
created() {
console.log('iframe页面获取到的url:' + window.location.href)
// ===sid
var a = window.location.href.indexOf("?") + 1 // ?
var b = window.location.href.indexOf("#data") // #data
const info = window.location.href.slice(a, b)
var sid = info.substr(info.indexOf("=") + 1)
this.showEdit(sid);
console.log('sid',sid)
// ===
var one = window.location.href.lastIndexOf("#") + 1
var two = window.location.href.lastIndexOf("}") + 1
const data = decodeURI(window.location.href.slice(one, two)) // urlunescape()web,使
var tar = data.substr(data.indexOf("=") + 1)
const obj = JSON.parse(tar)
console.log('iframe页面获取的obj:', obj)
this.getPaymentType();
var one = window.location.href.indexOf('&data') + 6
const data = window.location.href.substr(one) // urlunescape()web,使
const obj = JSON.parse(decodeURIComponent(data))
this.showEdit(obj.businessSid,obj.instanceId,obj.taskId)
},
methods: {
// ----------------------------
//
init() {
getType() {
//
typeValues({
type: 'paymentType'
}).then((res) => {
if (res.code === '200') {
this.paymentType_list = res.data
console.log('下拉框请求111', res.data)
}
})
//
typeValues({
type: 'receiptBank'
}).then((res) => {
if (res.code === '200') {
this.proBank_list = res.data
console.log('下拉框请求111', res.data)
}
})
},
changePaymentType(value) {
console.log('触发下拉框按钮')
let bb = {}
this.paymentType_list.forEach((e) => {
// eslint-disable-next-line eqeqeq
if (e.dictKey == value) {
bb = {
type: e.dictType,
name: e.dictValue,
key: e.dictKey,
sid: e.sid
}
}
})
this.temp.payType = bb.name
this.temp.payTypeKey = bb.key
console.log('name', this.temp.payType, 'key', this.temp.payTypeKey)
},
changeproBank(value) {
console.log('触发下拉框按钮')
let bb = null
this.proBank_list.forEach((e) => {
if (e.dictKey == value) {
bb = {
type: e.dictType,
name: e.dictValue,
key: e.dictKey,
sid: e.sid
}
}
})
this.temp.collectionBank = bb.name
this.temp.collectionBankKey = bb.key
this.getProBankAcc(bb.sid)
},
getProBankAcc(sid) {
typeValues({psid: sid, type: 'receiptAccount'}).then((res) => {
if (res.code === '200') {
this.ProBankAcc_list = res.data
console.log('下拉框请求111', res.data)
}
})
},
changeProBankAccValue(value) {
console.log('触发下拉框按钮')
let bb = null
this.ProBankAcc_list.forEach((e) => {
if (e.dictKey == value) {
bb = {
type: e.dictType,
name: e.dictValue,
key: e.dictKey,
sid: e.sid
}
}
})
this.temp.collectionNumber = bb.name
this.temp.collectionNumberKey = bb.key
console.log('name', this.temp.collectionNumber, 'key', this.temp.collectionNumberKey)
},
getPathSid() {
const userSid = window.sessionStorage.getItem('userSid')
getPathSidByUserSid({userSid: userSid}).then((res) => {
if (res.success) {
this.getCreateOrgName(res.data)
}
})
},
getCreateOrgName(sid) {
fetchBySid(sid).then((res) => {
if (res.success) {
this.temp.departmentName = res.data.name
}
})
},
//
showEdit(sid) {
// console.log('', this.$refs['uploadImg'].stateName)
showEdit(businessSid,instanceId,taskId) {
this.stateId = '1'
console.log('上传图片组件', this.$refs['uploadImg'].stateName)
this.$nextTick(() => {
this.$refs['dataForm'].clearValidate()
})
this.submitDto.businessSid = sid
this.temp.sid = sid
fetchSid(sid).then((response) => {
this.temp.sid = businessSid
this.dialogStatus = 'edit'
this.viewTitle = '【编辑】销售简易订单'
const data = {
virtualOrderSid:businessSid,
userSid:window.sessionStorage.getItem('userSid')
}
depositDetail(data).then((response) => {
if (response.code) {
this.temp = response.data
this.list = response.data.customerList
if (response.data.paymentProofList.length > 0) {
const imgName = response.data.paymentProofList[response.data.paymentProofList.length - 1].split("/");
if (response.data.payImages.length > 0) {
const imgName = response.data.payImages[response.data.payImages.length - 1].split("/");
this.list1.push({
name: imgName[imgName.length - 1],
url: response.data.paymentProofList[response.data.paymentProofList.length - 1],
url: response.data.payImages[response.data.payImages.length - 1],
});
this.$refs['uploadImg'].showImg(this.list1)
}
this.temp.paymentProofList = []
this.temp.instanceId = instanceId
this.temp.taskId = taskId
this.temp.payImages = []
this.getType()
// this.getPathSid()
}
})
},
// ----------------------------
getUrl() {
console.log('已有图片', this.list1)
if (this.list1.length !== 0) {
@ -323,113 +438,61 @@
this.list1.splice(0, 1);
const img_list = []
img_list.push(this.list1[this.list1.length - 1].url)
this.temp.paymentProofList = img_list
this.temp.payImages = img_list
} else {
const img_list = []
img_list.push(this.list1[this.list1.length - 1].url)
this.temp.paymentProofList = img_list
this.temp.payImages = img_list
}
}
},
selectCustomer(row) {
this.list.push({
customerName: row.name,
customerMobile: row.mobile,
mobile: row.mobile,
customerSid: row.sid,
sid: ''
// headImage
})
},
getPaymentType() {
typeValues({
type: 'paymentType'
}).then((res) => {
if (res.code === '200') {
this.paymentType_list = res.data
console.log('下拉框请求111', res.data)
}
})
},
changePaymentType(value) {
console.log('触发下拉框按钮')
let bb = {}
this.paymentType_list.forEach((e) => {
// eslint-disable-next-line eqeqeq
if (e.dictKey == value) {
bb = {
type: e.dictType,
name: e.dictValue,
key: e.dictKey,
sid: e.sid
}
}
})
this.temp.payType = bb.name
this.temp.payTypeKey = bb.key
console.log('name', this.temp.payType)
handleDelete(row, index) {
console.log('客户表中的row', row);
this.list.splice(index, 1)
// if (row.sid !== '') {
// this.sid_list.customerSid = row.customerSid
// this.sid_list.sid = this.temp.sid
// console.log('', this.sid_list)
// } else {
// this.list.splice(index, 1)
// }
},
//----------------------------
//
handleUpdate() {
handleCreate() {
this.$refs['dataForm'].validate((valid) => {
// this.getUrl()
// this.temp.customerList = this.list
this.getUrl()
this.temp.customerList = this.list
if (valid) {
this.temp.staffSid = this.YongHuid.staffSid
this.temp.orgSid = this.YongHuid.organizationSid
this.temp.orgName = this.orgName
this.temp.staffName = this.staffName
this.FormLoading = true
this.dialogStatus = 'create'
this.temp.staffSid = window.sessionStorage.getItem('staffSid')
this.temp.orgSid = window.sessionStorage.getItem('orgSid')
this.temp.userSid = window.sessionStorage.getItem('userSid')
this.temp.customerList = this.list
this.getUrl()
update(this.temp).then((response) => {
saveDing(this.temp).then((response) => {
this.FormLoading = false
if (response.code === '200') {
this.$notify({
title: '提示',
message: '修改成功',
type: 'success',
duration: 2000,
})
this.xuniSid = response.data
this.handleReturn('true')
} else {
this.$notify({
title: '失败',
message: '修改失败',
title: '提示',
message: '添加失败',
type: 'error',
duration: 2000,
})
}
})
}
})
},
//
handleDelete(row, index) {
console.log('客户表中的row', row);
if (row.sid !== '') {
this.sid_list.customerSid = row.customerSid
this.sid_list.sid = this.temp.sid
console.log('删除客户信息', this.sid_list)
Getdel(this.sid_list).then((response) => {
if (response.code === '200') {
// this.list.splice(index, 1)
this.$notify({
title: '提示',
message: '删除成功',
type: 'success',
duration: 2000,
})
} else {
this.$notify({
title: '删除失败',
message: response.msg,
type: 'error',
})
}
})
} else {
this.list.splice(index, 1)
}
},
//
handleSubmit() {
this.$confirm('是否确定提交该业务', '提示', {
@ -442,25 +505,13 @@
this.temp.customerList = this.list
if (valid) {
this.FormLoading = true
this.temp.staffSid = this.YongHuid.staffSid
this.temp.orgSid = this.YongHuid.organizationSid
this.temp.orgName = this.orgName
this.temp.staffName = this.staffName
this.temp.staffSid = window.sessionStorage.getItem('staffSid')
this.temp.orgSid = window.sessionStorage.getItem('orgSid')
this.temp.userSid = window.sessionStorage.getItem('userSid')
this.getUrl()
this.temp.customerList = this.list
console.log('submitDto', this.submitDto)
//
submitApprove(this.temp).then((response) => {
if (response.code === '200') {
this.$notify({
title: '提示',
message: '提交成功',
type: 'success',
duration: 2000,
})
this.handleReturn('true')
} else {
this.$notify({
title: '提交失败',
@ -477,18 +528,36 @@
//
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.temp.id = ''
this.temp.sid = '' // SID
this.temp = {
billNo: '',
createDate: '',
orgName: '',
staffName: '',
depositBillType: '',
paymentProofList: []
}
departmentName:'',
staffName:'',
createDate:'',
payName: '',
payImages: [], //
collectionNumber: '', //
collectionNumberKey: '', //
payTypeKey: '', //
payType: '', //
payDate: '', //
collectionBankKey: '', //
collectionBank: '', //
collectionBankSid: '', // Sid
payNumber: '', //
deposit: '', //
carNumber: '', //
mobile: '', //
remarks: '', //
customerList: [],
userSid: '', // Sid
virtualOrderSid: '', // Sid
taskId: '', // Id
procInsId: '' // ID
} //
this.disabled = false
this.$refs['uploadImg'].stateName = '' //
this.list1 = []
this.list = []
this.$refs['dataForm'].resetFields()
this.$emit('doback')
},
@ -505,9 +574,8 @@
this.hetongdanganguanliAddShow = false
this.hetongdanganguanliInfoShow = false
this.kehudanganAddShow = false
},
}
}
,
}
</script>
@ -527,24 +595,6 @@
font-size: 14px;
}
.mw {
margin: 0 !important;
padding-left: 5px;
}
.yulan {
text-align: right;
margin-top: 15px;
}
.hang {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
padding: 20px 10px;
}
/deep/ .el-form-item__content {
margin-left: 0 !important;
}
@ -554,4 +604,8 @@
color: #606266;
text-align: right;
}
.formadd .el-row .el-col /deep/ .el-form-item .addinputw {
width: 100%;
}
</style>

226
anrui-buscenter/anrui-buscenter-ui/src/views/workflow/xiaoshouguanliFlow/xunidingdanFlow/dingjinshouquInfo.vue

@ -4,122 +4,121 @@
<div class="tab-header webtop">
<div>销售虚拟订单管理详细信息</div>
<div>
<el-button type="danger" @click="openRevoke"> </el-button>
</div>
</div>
<div class="listconadd">
<el-form ref="dataForm" :model="temp" label-position="right" label-width="100%" class="formadd">
<div class="tit">
销售虚拟订单
销售简易订单
<div class="times">
<div><span>单据编号</span><span>{{ temp.billNo }}</span></div>
<div><span>制单日期</span><span>{{ temp.createDate }}</span></div>
<div><span>分公司</span><span>{{ temp.departmentName }}</span></div>
<div><span>申请人</span><span>{{ temp.staffName }}</span></div>
<div><span>申请日期</span><span>{{ temp.createDate }}</span></div>
<div><span>金额单位</span><span>{{ temp.price }}</span></div>
</div>
</div>
<el-row class="bordertopline">
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label">部门名称</span></el-form-item>
<el-col :span="3" class="tleftb">
<el-form-item><span>订单类型</span></el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-col :span="5" class="trightb">
<el-form-item>
{{ temp.orgName }}
<span>{{ temp.depositBillType }}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label">业务员</span></el-form-item>
<el-col :span="3" class="tleftb">
<el-form-item><span>付款人</span></el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-col :span="5" class="trightb">
<el-form-item>
{{ temp.staffName }}
<span>{{ temp.payName }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label">虚拟订单类型</span></el-form-item>
<el-col :span="3" class="tleftb">
<el-form-item><span>联系电话</span></el-form-item>
</el-col>
<el-col :span="20" class="trightb">
<el-col :span="5" class="trightb">
<el-form-item>
<span>{{temp.depositBillType}}</span>
<span>{{ temp.mobile }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label"><span class="icon">*</span>付款人</span></el-form-item>
<el-col :span="3" class="tleftb">
<el-form-item><span>车辆台数</span></el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-col :span="5" class="trightb">
<el-form-item>
{{ temp.draweeName }}
<span>{{ temp.carNumber }}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label"><span class="icon">*</span>联系电话</span></el-form-item>
<el-col :span="3" class="tleftb">
<el-form-item><span>订金金额</span></el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-col :span="13" class="trightb">
<el-form-item>
{{ temp.draweeMobile }}
<span>{{ temp.deposit }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label">车辆台数</span></el-form-item>
<el-col :span="3" class="tleftb">
<el-form-item><span>付款日期</span></el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-col :span="5" class="trightb">
<el-form-item>
{{ temp.vehicleNum }}
<span>{{ temp.payDate }}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label"><span class="icon">*</span>订金金额</span></el-form-item>
<el-col :span="3" class="tleftb">
<el-form-item><span>付款方式</span></el-form-item>
</el-col>
<el-col :span="8" class="trightb">
<el-col :span="5" class="trightb">
<el-form-item>
{{ temp.deposit }}
<span>{{ temp.payType }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="3" class="tleftb">
<el-form-item><span slot="label"><span class="icon">*</span>付款日期</span></el-form-item>
<el-form-item><span>付款银行账号</span></el-form-item>
</el-col>
<el-col :span="5" class="trightb">
<el-form-item>
{{ temp.paymentDate }}
<el-input v-model="temp.payNumber" class="addinputw" placeholder="" clearable/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="3" class="tleftb">
<el-form-item><span slot="label"><span class="icon">*</span>付款方式</span></el-form-item>
<el-form-item><span>收款银行账号</span></el-form-item>
</el-col>
<el-col :span="5" class="trightb">
<el-form-item>
{{ temp.payType }}
<span>{{ temp.collectionNumber }}</span>
</el-form-item>
</el-col>
<el-col :span="3" class="tleftb">
<el-form-item><span slot="label"><span class="icon">*</span>收款银行账号</span></el-form-item>
<el-form-item><span>收款银行</span></el-form-item>
</el-col>
<el-col :span="5" class="trightb">
<el-col :span="13" class="trightb">
<el-form-item>
{{ temp.proBankAcc }}
<span>{{ temp.collectionBank }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label">备注</span></el-form-item>
<el-col :span="3" class="tleftb">
<el-form-item><span>备注</span></el-form-item>
</el-col>
<el-col :span="20" class="trightb">
<el-col :span="21" class="trightb">
<el-form-item>
{{ temp.remarks }}
<span>{{ temp.remarks }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<el-form-item><span slot="label"><span class="icon">*</span>付款凭证</span></el-form-item>
<el-form-item><span slot="label">付款凭证</span></el-form-item>
</el-col>
<el-col :span="20" class="trightb">
<el-form-item>
@ -132,15 +131,15 @@
<div class="title">客户信息</div>
</div>
<el-table v-loading="listLoading" :data="list" border style="width: 100%" :index="index">
<el-table-column align="center" label="序号" type="index" width="50"/>
<el-table-column align="center" label="序号" type="index" width="60"/>
<el-table-column label="客户名称" align="center">
<template slot-scope="scope">
<span>{{scope.row.customerName}}</span>
<span>{{ scope.row.customerName }}</span>
</template>
</el-table-column>
<el-table-column label="联系电话" align="center">
<template slot-scope="scope">
<span>{{scope.row.customerMobile}}</span>
<span>{{ scope.row.mobile }}</span>
</template>
</el-table-column>
</el-table>
@ -152,83 +151,72 @@
</template>
<script>
import {mapGetters} from 'vuex'
import {fetchSid} from '@/api/jichuxinxi/busdeposit'
import {fetchSid} from '@/api/jichuxinxi/busdeposit'
import req from '@/api/flow/jianyidingdan.js'
export default {
name: "dingjinshouquInfo",
data() {
return {
sid: '',
disabled: '',
viewTitle: '',
index: 0,
imgUrl: '',
// dialogStatus: 'add',
// ---------
YongHuid: [],
edit: true,
visible: true,
stateId: '0',
FormLoading: false,
listLoading: false,
list: [],
temp: {
billNo: '',
createDate: '',
}, //
textMap: {
update: '修改',
create: '创建',
temp: {},
// ------------------------------------
//
revokeList: {
businessSid: '',
instanceId: '',
taskId: '',
userSid: ''
},
mobile: '',
orgName: '',
staffName: '',
_userSid: '',
customerName: [],
xuniSid: '',
tificateT: [],
dnumbDate: [],
dialogStatus: '', //
// ------------------------------------
}
},
computed: {
...mapGetters([
'id',
'roles',
'rolesIds',
'departmentId',
'departmentCode',
]),
},
mounted() {
window.init = this.init;
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 2,
data: document.body.scrollHeight + 220 + 'px'
}
}, '*')
},
created() {
console.log('iframe页面获取到的url:' + window.location.href)
// ===sid
console.log('iframe页面获取到的url:' + window.location.href)
var a = window.location.href.indexOf("?") + 1 // ?
var b = window.location.href.indexOf("#data") // #data
const info = window.location.href.slice(a, b)
var sid = info.substr(info.indexOf("=") + 1)
this.showInfo(sid);
// ===
var one = window.location.href.lastIndexOf("#") + 1
var two = window.location.href.lastIndexOf("}") + 1
const data = decodeURI(window.location.href.slice(one, two)) // urlunescape()web,使
var tar = data.substr(data.indexOf("=") + 1)
const obj = JSON.parse(tar)
console.log('iframe页面获取的obj:', obj)
var one = window.location.href.indexOf('&data') + 6
// urlunescape()web,使
const data = window.location.href.substr(one) // urlunescape()web,使
const obj = JSON.parse(decodeURIComponent(data))
console.log('obj',obj)
this.showInfo(obj.businessSid)
//
this.revokeList.businessSid = obj.businessSid
this.revokeList.instanceId = obj.instanceId
this.revokeList.taskId = obj.taskId
this.revokeList.taskDefKey = obj.taskDefKey
this.revokeList.userSid = window.sessionStorage.getItem('userSid')
//
this.transactState = obj.transactState
//
// this.getModelDetail(obj.deployId)
// this.getFlowViewer(obj.instanceId)
},
methods: {
init(sid) {
console.log('我是iframe页面里的内容', sid)
},
showInfo(sid) {
fetchSid(sid).then((response) => {
if (response.code === '200') {
this.temp = response.data
this.imgUrl = this.temp.paymentProofList[this.temp.paymentProofList.length - 1]
this.imgUrl = this.temp.payImages[this.temp.payImages.length - 1]
this.list = response.data.customerList
} else {
this.$notify({
@ -240,7 +228,41 @@
}
})
},
openRevoke() {
this.$confirm('是否确认执行撤回操作', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.handleRevoke()
}).catch(() => {
this.$message({
type: 'info',
message: '已取消撤回'
})
})
},
/** 撤回任务 */
handleRevoke() {
// this.revokeList.comment = this.dialogList.comment
req.revokeTask(this.revokeList).then((response) => {
if (response.success) {
this.$message({
showClose: true,
message: '执行成功',
type: 'success'
});
//
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 1
}
}, '*')
}
})
},
}
}
</script>

166
anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/xiaoshoudingdan/xiaoshoudingdanAdd.vue

@ -33,85 +33,92 @@
<span>制单日期</span>
<span>{{ temp.createDate }}</span>
</div>
<div>
<span>编号</span>
<span>{{ temp.billNo }}</span>
</div>
<!-- <div>-->
<!-- <span>编号</span>-->
<!-- <span>{{ temp.billNo }}</span>-->
<!-- </div>-->
</div>
</div>
<!-- ==================== 客户信息 ======================================== -->
<div class="titleleft">客户信息</div>
<el-row class="bordertopline">
<el-col :span="3">
<span>客户名称</span>
</el-col>
<el-col :span="9">
<el-form-item prop="customerName">
<span>{{ temp.customerName }}</span>
<!-- <el-select v-model="temp.busOrderDto.customerSid" class="addinputw customer_sel" clearable filterable-->
<!-- placeholder="请选择" @change="customerChange">-->
<!-- <el-option v-for="item in customerList" :key="item.sid" :label="item.customerName"-->
<!-- :value="item.sid"/>-->
<!-- </el-select>-->
<el-button class="btntopblueline chooseForm" size="small" type="primary" @click="openCustomerList()">
选择客户
</el-button>
<el-button class="btntopblueline chooseForm" size="small" type="primary" @click="openCustomerCreate()">
新增客户
</el-button>
</el-form-item>
</el-col>
<el-col :span="3">
<span>联系电话</span>
</el-col>
<el-col :span="9">
<el-form-item prop="mobile">
<span>{{ temp.mobile }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="3">
<span>开票类型</span>
</el-col>
<el-col :span="9">
<el-form-item prop="billingType">
<el-radio-group v-model="temp.billingTypeKey">
<el-radio v-for="item in billingType_list" :key="item.dictKey" :label="item.dictKey"
@change="billingTypeChange">{{ item.dictValue }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="3">
<span>付款方式</span>
</el-col>
<el-col :span="9">
<el-form-item prop="billingType">
<el-radio-group v-model="temp.payTypeKey">
<el-radio v-for="item in payType_list" :key="item.dictKey" :label="item.dictKey"
@change="payTypeChange">{{ item.dictValue }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="3">
<span>挂靠公司</span>
</el-col>
<el-col :span="9">
<el-form-item prop="affiliatedCompanySid">
<el-select v-model="temp.affiliatedCompanySid"
@change="affiliatedCompanyChange(temp.affiliatedCompanySid)" class="addinputw" clearable
filterable placeholder="请选择">
<el-option v-for="item in guaKaoCompanyList" :key="item.sid" :label="item.orgName"
:value="item.sid"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12"/>
</el-row>
<div>
<el-row class="bordertopline">
<el-col :span="3">
<span>客户名称</span>
</el-col>
<el-col :span="14">
<el-form-item prop="customerName">
<span>{{ temp.customerName }}</span>
<!-- <el-select v-model="temp.busOrderDto.customerSid" class="addinputw customer_sel" clearable filterable-->
<!-- placeholder="请选择" @change="customerChange">-->
<!-- <el-option v-for="item in customerList" :key="item.sid" :label="item.customerName"-->
<!-- :value="item.sid"/>-->
<!-- </el-select>-->
<div>
<el-button class="btntopblueline chooseForm" size="small" type="primary" @click="openCustomerList()">
选择客户
</el-button>
<el-button class="btntopblueline chooseForm" size="small" type="primary"
@click="openCustomerCreate()">
新增客户
</el-button>
</div>
</el-form-item>
</el-col>
<el-col :span="3">
<span>联系电话</span>
</el-col>
<el-col :span="4">
<el-form-item prop="mobile">
<span>{{ temp.mobile }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="3">
<span>开票类型</span>
</el-col>
<el-col :span="7">
<el-form-item prop="billingType">
<el-radio-group v-model="temp.billingTypeKey">
<el-radio v-for="item in billingType_list" :key="item.dictKey" :label="item.dictKey"
@change="billingTypeChange">{{ item.dictValue }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="3">
<span>付款方式</span>
</el-col>
<el-col :span="4" class="left_sty">
<el-form-item prop="billingType">
<el-radio-group v-model="temp.payTypeKey">
<el-radio v-for="item in payType_list" :key="item.dictKey" :label="item.dictKey"
@change="payTypeChange">{{ item.dictValue }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="3">
<span>挂靠公司</span>
</el-col>
<el-col :span="4" class="left_sty">
<el-form-item prop="affiliatedCompanySid">
<el-select v-model="temp.affiliatedCompanySid"
@change="affiliatedCompanyChange(temp.affiliatedCompanySid)" class="addinputw" clearable
filterable placeholder="请选择">
<el-option v-for="item in guaKaoCompanyList" :key="item.sid" :label="item.orgName"
:value="item.sid"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
</div>
<!-- <el-row>-->
<!-- -->
<!-- <el-col :span="12"/>-->
<!-- </el-row>-->
<!-- ==================== 车型确定 ======================================== -->
<div class="titleleft">
<span>车型确定</span>
@ -2456,11 +2463,6 @@ export default {
}
</script>
<style scoped>
.formadd {
width: 95%;
margin: 0 auto;
}
.shangzhuangstyle /deep/ .el-col-4 {
text-align: left
}
@ -2473,6 +2475,10 @@ export default {
text-align: left
}
.formadd /deep/ .el-row .left_sty {
text-align: left
}
.tit {
margin: 0 0 10px 0;
padding: 10px 0 0 0;

8
anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/xunidingdan/com/xuanzecheliang.vue

@ -44,11 +44,11 @@
<el-form-item label="版本">
<el-input v-model="listQuery.params.vehicleVersion" placeholder="请输入" clearable class="filter-item"/>
</el-form-item>
<div class="searchbtns">
<el-button type="primary" @click="handleFilter">查询</el-button>
<el-button type="primary" @click="handleReset">重置</el-button>
</div>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" icon="el-icon-search" size="small" @click="handleFilter">查询</el-button>
<el-button type="primary" icon="el-icon-refresh" size="small" @click="handleReset">重置</el-button>
</div>
</div>
</div>
<div class="listtop">

11
anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/xunidingdan/com/xuanzekehu.vue

@ -16,10 +16,10 @@
<el-form-item label="客户姓名"> <!--客户姓名/公司名称/手机号/微信号/证件号码-->
<el-input v-model="listQuery.params.name" placeholder="请输入" clearable class="filter-item"/>
</el-form-item>
<div class="searchbtns">
<el-button type="primary" @click="handleFilter">查询</el-button>
</div>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" icon="el-icon-search" size="small" @click="handleFilter">查询</el-button>
</div>
</div>
</div>
<pageye v-show="total>0" :total="total" :page.sync="listQuery.current" :limit.sync="listQuery.size"
@ -72,7 +72,6 @@
</div>
</div>
</div>
<xuanzekehu-add ref="addAndUpdate" @handleReturn="resetState"></xuanzekehu-add>
<el-dialog
title="客户登记-类型"
:visible.sync="dialogVisible"
@ -95,6 +94,7 @@
<el-button @click="dialogVisible = false"> </el-button>
</span>
</el-dialog>
<kehudangan-add ref="addAndUpdate" @handleReturn="resetState"/>
</div>
</template>
@ -104,10 +104,12 @@
import pageye from '@/components/pagination/pageye'
import {pagerList,typeValues} from '@/api/jichuxinxi/busdepositvehicle'
import xuanzekehuAdd from "./xuanzekehuAdd";
import KehudanganAdd from "@/views/kehuguanli/kehudangan/kehudanganAdd";
export default {
name: "xuanzekehu",
components: {
KehudanganAdd,
Pagination,
pageye,
xuanzekehuAdd,
@ -292,7 +294,6 @@
handleConfirm(row) {
console.log('选择客户row', row)
this.$emit('handleCustomer', row)
this.$emit('handleCustomerList', row)
this.handleReturn()
},
handleUpdate(row) {

782
anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/xunidingdan/xunidingdanAdd.vue

@ -2,12 +2,10 @@
<div class="app-container">
<div v-show="visible">
<div class="tab-header webtop">
<div>{{viewTitle}}</div>
<!-- <div v-else></div> -->
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" :disabled="FormLoading" @click="handleCreate()">保存</el-button>
<el-button type="primary" size="small" :disabled="disabled" @click="handleSubmit()">提交</el-button>
<el-button type="primary" size="small">打印</el-button>
<el-button type="info" size="small" @click="handleReturn()">返回</el-button>
</div>
</div>
@ -16,37 +14,19 @@
<div class="tit">
销售虚拟订车单
<div class="times">
<div><span>分公司</span><span>{{ temp.billNo }}</span></div>
<div><span>申请人</span><span>{{ temp.createName }}</span></div>
<div><span>分公司</span><span>{{ temp.departmentName }}</span></div>
<div><span>申请人</span><span>{{ temp.staffName }}</span></div>
<div><span>申请日期</span><span>{{ temp.createDate }}</span></div>
<div><span>金额单位</span><span>{{ temp.price }}</span></div>
<div><span>金额单位</span><span></span></div>
</div>
</div>
<!-- <el-row class="bordertopline">-->
<!-- <el-col :span="4" class="tleftb">-->
<!-- <el-form-item><span slot="label">部门名称</span></el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="8" class="trightb">-->
<!-- <el-form-item>-->
<!-- {{ temp.orgName }}-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="4" class="tleftb">-->
<!-- <el-form-item><span slot="label">销售专员</span></el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="8" class="trightb">-->
<!-- <el-form-item>-->
<!-- {{ temp.staffName }}-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<el-row class="bordertopline">
<el-col :span="2" class="tleftb">
<el-form-item>订单类型</el-form-item>
</el-col>
<el-col :span="6" class="trightb">
<el-form-item>
<span>{{temp.depositBillType}}</span>
<span>{{ temp.depositBillType }}</span>
</el-form-item>
</el-col>
<el-col :span="2" class="tleftb">
@ -77,7 +57,7 @@
</div>
<el-table v-loading="listLoading" :data="list" border style="width: 100%" :index="index">
<el-table-column align="center" label="序号" type="index" width="50"/>
<el-table-column label="操作" align="center" width="250px" class-name="small-padding fixed-width">
<el-table-column label="操作" align="center" width="80px" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="danger"
@click="handleDelete(scope.row,scope.$index,list[scope.$index])">删除
@ -86,44 +66,44 @@
</el-table-column>
<el-table-column label="品牌" align="center">
<template slot-scope="scope">
<span>{{scope.row.brandName}}</span>
<span>{{ scope.row.brand }}</span>
</template>
</el-table-column>
<el-table-column label="车型" align="center">
<el-table-column label="车型" width="220px" align="center">
<template slot-scope="scope">
<span>{{scope.row.vehicleAlias}}</span>
<span>{{ scope.row.model }}</span>
</template>
</el-table-column>
<el-table-column label="车架号" align="center">
<el-table-column label="车架号" width="140px" align="center">
<template slot-scope="scope" @click="">
<span>{{scope.row.vinNo}}</span>
<span>{{ scope.row.vin }}</span>
</template>
</el-table-column>
<el-table-column label="颜色" align="center">
<el-table-column label="颜色" width="100px" align="center">
<template slot-scope="scope" @click="">
<span>{{scope.row.color}}</span>
<span>{{ scope.row.colour }}</span>
</template>
</el-table-column>
<el-table-column label="存放地点" align="center">
<el-table-column label="存放地点" width="220px" align="center">
<template slot-scope="scope">
<span>{{scope.row.location}}</span>
<span>{{ scope.row.location }}</span>
</template>
</el-table-column>
<el-table-column label="销售指导价" align="center">
<el-table-column label="销售指导价" width="120px" align="center">
<template slot-scope="scope">
<span>{{scope.row.guidedPrice}}</span>
<span>{{ scope.row.price }}</span>
</template>
</el-table-column>
<el-table-column label="预计订金日期" align="center">
<el-table-column label="预计订金日期" width="220px" align="center">
<template slot-scope="scope">
<el-select v-model="scope.row.reserve_deposit_date" class="addinputw" placeholder="请选择"
@change="changeDeposit_date(scope.row)">
<el-option v-for="(item, index) in deposit_list" :key="index.dictKey" :label="item.dictValue"
:value="item.dictValue"/>
</el-select>
<el-date-picker v-model="scope.row.depositDate" type="date" style="width:90%"
value-format="yyyy-MM-dd"
placeholder="选择日期"
:picker-options="pickerOptions">
</el-date-picker>
</template>
</el-table-column>
<el-table-column label="备注" align="center">
<el-table-column label="备注" width="300px" align="center">
<template slot-scope="scope">
<el-input v-model="scope.row.remarks" class="addinputw" placeholder="请输入备注" clearable/>
</template>
@ -143,440 +123,330 @@
</template>
<script>
import {mapGetters} from 'vuex'
import {saveChe, updateVehicle, saveEcho, selectSid, typeValues} from '@/api/jichuxinxi/busdeposit'
import {delVehicle} from '@/api/jichuxinxi/busdepositvehicle'
import yudingcheliang from './com/yudingcheliang.vue'
import {loginDetails} from '@/api/dictcommons/basemanufacturer'
import {getStorage} from '@/utils/auth'
import {submitVehicleApprove} from '@/api/portal/workFlow'
// import {formatDate} from '@/utils/dateUtils'
// import {KeHuNamesDown} from '@/api/jichuxinxi/crmcustomer'
import hetongdanganguanliAdd from '@/views/hetongguanli/hetongdanganguanli/hetongdanganguanliAdd.vue'
import hetongdanganguanliInfo from '@/views/hetongguanli/hetongdanganguanli/hetongdanganguanliInfo.vue'
import kehudanganAdd from '@/views/kehuguanli/kehudangan/kehudanganAdd.vue'
import xuanzecheliang from "./com/xuanzecheliang"
import xuanzekehu from "./com/xuanzekehu";
import {fetchBySid, getPathSidByUserSid} from '@/api/dictcommons/dictcommons'
import {saveChe, selectSid, submitVehicleApprove, typeValues} from '@/api/jichuxinxi/busdeposit'
import yudingcheliang from "@/views/xiaoshouguanli/xunidingdan/com/yudingcheliang"
import hetongdanganguanliAdd from '@/views/hetongguanli/hetongdanganguanli/hetongdanganguanliAdd.vue'
import hetongdanganguanliInfo from '@/views/hetongguanli/hetongdanganguanli/hetongdanganguanliInfo.vue'
import kehudanganAdd from '@/views/kehuguanli/kehudangan/kehudanganAdd.vue'
import xuanzecheliang from "@/views/xiaoshouguanli/xunidingdan/com/xuanzecheliang"
import xuanzekehu from "@/views/xiaoshouguanli/xunidingdan/com/xuanzekehu"
export default {
name: 'Add',
components: {
yudingcheliang,
hetongdanganguanliAdd,
hetongdanganguanliInfo,
kehudanganAdd,
xuanzecheliang,
xuanzekehu
},
data() {
return {
viewTitle: '',
index: 0,
disabled: false, //
// dialogStatus: 'add',
// ---------
YongHuid: [],
edit: true,
visible: true,
stateId: '0',
FormLoading: false,
listLoading: false,
list: [],
temp: {
sid: '',
billNo: '',
createDate: '',
createName:window.sessionStorage.getItem('name'),
nodeState: '',
userSid: window.sessionStorage.getItem('userSid')
}, //
textMap: {
update: '修改',
create: '创建',
},
initList: {
depositBillTypeKey: '',
depositBillType: '',
userSid: window.sessionStorage.getItem('userSid')
},
submitDto: {
businessSid: '',
userSid: window.sessionStorage.getItem('userSid')
export default {
name: 'Add',
components: {
yudingcheliang,
hetongdanganguanliAdd,
hetongdanganguanliInfo,
kehudanganAdd,
xuanzecheliang,
xuanzekehu
},
data() {
return {
//
pickerOptions: {
disabledDate(time) {
let threeDay = 60 * 60 * 24 * 1000 * 3;
return time.getTime() < Date.now() || time.getTime() > Date.now() + threeDay;
},
xuniSid: '',
mobile: '',
orgName: '',
},
viewTitle: '',
index: 0,
disabled: false, //
// dialogStatus: 'add',
// ---------
YongHuid: [],
edit: true,
visible: true,
stateId: '0',
FormLoading: false,
listLoading: false,
list: [],
temp: {
staffName: '',
_userSid: '',
deposit_list: [],
customerName: [],
tificateT: [],
dnumbDate: [],
dialogStatus: '', //
yudingcheliangShow: false,
hetongdanganguanliAddShow: false,
hetongdanganguanliInfoShow: false,
kehudanganAddShow: false,
xuanzecheliangShow: false, //
xuanzekehuShow: false, //
rules: {},
// ------------------------------------
}
customerSid: '', // sid
virtualOrderSid: '', // s
customerName: '', //
virtualOrderId: '', // s
sellerName: '', //
departmentName: '', //
mobile: '', //
createDate: '', //
carList: [],
taskId: '', // Id
procInsId: '', // ID
userSid: window.sessionStorage.getItem('userSid')
}, //
xuniSid: '',
mobile: '',
orgName: '',
staffName: '',
_userSid: '',
deposit_list: [],
customerName: [],
tificateT: [],
dnumbDate: [],
dialogStatus: '', //
yudingcheliangShow: false,
xuanzecheliangShow: false, //
xuanzekehuShow: false, //
rules: {},
// ------------------------------------
}
},
methods: {
//-
getDeposit_date() {
typeValues({
type: 'reserveDepositDate'
}).then((res) => {
if (res.code === '200') {
this.deposit_list = res.data
console.log('下拉框请求预计订金日期', res.data)
}
})
},
computed: {
...mapGetters([
'id',
'roles',
'rolesIds',
'departmentId',
'departmentCode',
]),
changeDeposit_date(row) {
for (var i = 0; i < this.deposit_list.length; i++) {
if (this.deposit_list[i].dictValue === row.depositDate) {
row.depositDate = this.deposit_list[i].dictValue
this.list[i].reserve_deposit_date_key = this.deposit_list[i].dictKey
}
}
},
created() {
//
this.init()
getPathSid() {
const userSid = window.sessionStorage.getItem('userSid')
getPathSidByUserSid({userSid: userSid}).then((res) => {
if (res.success) {
this.getCreateOrgName(res.data)
}
})
},
methods: {
// ------------ ------------
//
resetTemp() {
this.temp = {};
this.list = []
},
init() {
var token = getStorage();
loginDetails(token).then((response) => {
console.log('resss', response);
if (response.code === '200') {
this.YongHuid = response.data;
this.orgName = this.YongHuid.departmentName;
this.staffName = this.YongHuid.name;
this._userSid = this.YongHuid.sid;
console.log('8888', this._userSid)
}
});
this.getDeposit_date()
},
showAdd(depositBillType, depositBillTypeKey) {
this.stateId = '0';
this.$nextTick(() => {
this.$refs['dataForm'].clearValidate()
});
this.initList.depositBillType = depositBillType
this.initList.depositBillTypeKey = depositBillTypeKey
console.log('112233', this.initList)
this.dialogStatus = 'add';
this.viewTitle = '【新增】销售简易订单';
this.getDingdan(this.initList)
},
showEdit(sid, nodeState) {
this.$nextTick(() => {
this.$refs['dataForm'].clearValidate()
});
this.stateId = '1'
this.temp.sid = sid
this.dialogStatus = 'edit';
this.viewTitle = '【编辑】销售简易订单';
if (nodeState == '' || nodeState == '发起订单') {
this.disabled = false
} else {
this.disabled = true
getCreateOrgName(sid) {
fetchBySid(sid).then((res) => {
if (res.success) {
this.temp.departmentName = res.data.name
}
console.log('112233', sid)
selectSid(sid).then((response) => {
if (response.code) {
this.temp = response.data
this.list = response.data.depositVehicleList
}
});
},
//
getDingdan(initList) {
saveEcho(initList).then((response) => {
if (response.code == '200') {
this.temp.billNo = response.data.billNo
this.temp.createDate = response.data.createDate
this.temp.orgName = response.data.orgName
this.temp.staffName = response.data.staffName
this.temp.depositBillType = response.data.depositBillType
this.temp.depositBillTypeKey = response.data.depositBillTypeKey
}
})
},
//-
getDeposit_date() {
typeValues({
type: 'reserveDepositDate'
}).then((res) => {
if (res.code === '200') {
this.deposit_list = res.data
console.log('下拉框请求预计订金日期', res.data)
}
})
},
changeDeposit_date(row) {
for (var i = 0; i < this.deposit_list.length; i++) {
if (this.deposit_list[i].dictValue === row.reserve_deposit_date) {
row.reserve_deposit_date = this.deposit_list[i].dictValue
this.list[i].reserve_deposit_date_key = this.deposit_list[i].dictKey
}
})
},
showAdd(depositBillType, depositBillTypeKey) {
this.stateId = '0';
this.$nextTick(() => {
this.$refs['dataForm'].clearValidate()
});
var nowDate = new Date();
var date = {
year: nowDate.getFullYear(),
month: nowDate.getMonth() + 1,
day: nowDate.getDate(),
}
var dayDate = date.year + '-' + (date.month >= 10 ? date.month : '0' + date.month) + '-' + (date.day >= 10 ? date.day : '0' + date.day)
this.temp.createDate = dayDate //
this.temp.staffName = window.sessionStorage.getItem('name') //
this.temp.depositBillType = depositBillType
this.temp.depositBillTypeKey = depositBillTypeKey
this.dialogStatus = 'add';
this.viewTitle = '【新增】销售简易订单';
this.getDeposit_date()
this.getPathSid() //
},
showEdit(sid, depositBillType) {
this.$nextTick(() => {
this.$refs['dataForm'].clearValidate()
});
this.stateId = '1'
this.temp.sid = sid
this.dialogStatus = 'edit';
this.viewTitle = '【编辑】销售简易订单';
const data = {
customerSid: '',
virtualOrderSid: sid,
userSid: window.sessionStorage.getItem('userSid')
}
selectSid(data).then((response) => {
if (response.code) {
this.temp = response.data
this.list = response.data.carList
this.temp.depositBillType = depositBillType
}
},
// ------------ ------------
//
handleCreate() {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
this.dialogStatus = 'create';
if (this.stateId === '0') {
this.temp.depositVehicleList = this.list;
this.temp.staffSid = this.YongHuid.staffSid;
this.temp.orgName = this.orgName;
this.temp.staffName = this.staffName;
this.temp.orgSid = this.YongHuid.organizationSid;
this.temp.userSid = window.sessionStorage.getItem('userSid')
saveChe(this.temp).then((response) => {
this.FormLoading = true;
if (response.code === '200') {
this.xuniSid = response.data;
this.$notify({
title: '提示',
message: '添加成功',
type: 'success',
duration: 2000,
})
this.FormLoading = false;
this.handleReturn('true')
// this.$emit('doback')
} else {
this.$notify({
title: '提示',
message: '添加失败',
type: 'error',
duration: 2000,
})
}
})
} else {
this.temp.depositVehicleList = this.list;
this.temp.staffSid = this.YongHuid.staffSid;
this.temp.orgSid = this.YongHuid.organizationSid;
this.temp.orgName = this.orgName;
this.temp.staffName = this.staffName;
this.temp.userSid = window.sessionStorage.getItem('userSid')
updateVehicle(this.temp).then((response) => {
this.dialogStatus = 'update';
console.log('response', response);
this.FormLoading = false;
if (response.code === '200') {
this.$notify({
title: '提示',
message: '修改成功',
type: 'success',
duration: 2000,
})
this.handleReturn('true')
} else {
this.$notify({
title: '失败',
message: '修改失败',
type: 'error',
})
}
})
}
}
})
},
});
this.getDeposit_date()
},
//
handleSubmit() {
this.$confirm('是否确定提交该业务', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
this.FormLoading = true;
this.dialogStatus = 'create';
if (this.stateId === '0') {
this.temp.depositVehicleList = this.list;
this.temp.staffSid = this.YongHuid.staffSid;
this.temp.orgName = this.orgName;
this.temp.staffName = this.staffName;
this.temp.orgSid = this.YongHuid.organizationSid;
this.temp.userSid = window.sessionStorage.getItem('userSid')
console.log('提交时sid', this.temp.sid)
//
submitVehicleApprove(this.temp).then((response) => {
if (response.code === '200') {
this.$notify({
title: '提示',
message: '提交成功',
type: 'success',
duration: 2000,
})
this.handleReturn('true')
} else {
this.$notify({
title: '提交失败',
message: response.msg,
type: 'error',
})
}
})
} else {
this.temp.depositVehicleList = this.list;
this.temp.staffSid = this.YongHuid.staffSid;
this.temp.orgSid = this.YongHuid.organizationSid;
this.temp.orgName = this.orgName;
this.temp.staffName = this.staffName;
this.temp.userSid = window.sessionStorage.getItem('userSid')
//
submitVehicleApprove(this.temp).then((response) => {
if (response.code === '200') {
this.$notify({
title: '提示',
message: '提交成功',
type: 'success',
duration: 2000,
})
this.handleReturn('true')
} else {
this.$notify({
title: '提交失败',
message: response.msg,
type: 'error',
})
}
})
}
}
})
})
},
//
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist');
this.temp.sid = ''; // SID
this.temp = {
sid: '',
billNo: '',
createDate: '',
nodeState: '',
} //
this.disabled = false
this.list = []
this.$refs['dataForm'].resetFields();
this.$emit('doback')
},
//
handleDelete(row, index) {
console.log('033', row);
if (row.sid !== '') {
const sid_list = []
sid_list.push(row.sid, row.vehicleSid)
console.log('删除车辆信息', sid_list)
delVehicle(sid_list).then((response) => {
// ------------ ------------
//
handleCreate() {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
this.dialogStatus = 'create';
this.temp.carList = this.list;
this.temp.staffSid = window.sessionStorage.getItem('staffSid')
this.temp.orgSid = window.sessionStorage.getItem('orgSid')
saveChe(this.temp).then((response) => {
this.FormLoading = true;
if (response.code === '200') {
this.$notify({
title: '提示',
message: '删除成功',
type: 'success',
duration: 2000,
});
this.xuniSid = response.data;
this.FormLoading = false;
this.handleReturn('true')
// this.$emit('doback')
} else {
this.$notify({
title: '删除失败',
message: response.msg,
title: '提示',
message: '添加失败',
type: 'error',
duration: 2000,
})
}
})
} else {
this.list.splice(index, 1)
}
},
// ------------ ------------
//
handleyudingcheliang() {
this.visible = false;
this.xuanzekehuShow = false;
this.xuanzecheliangShow = true;
this.kehudanganAddShow = false;
this.yudingcheliangShow = false;
this.hetongdanganguanliAddShow = false;
this.hetongdanganguanliInfoShow = false;
},
//
handleCustomer() {
this.xuanzekehuShow = true
this.xuanzecheliangShow = false;
this.visible = false;
this.yudingcheliangShow = false;
this.hetongdanganguanliAddShow = false;
this.hetongdanganguanliInfoShow = false;
this.kehudanganAddShow = false
},
//
yudingcheliangfanhui() {
this.visible = true;
this.xuanzecheliangShow = false
this.xuanzekehuShow = false
this.kehudanganAddShow = false;
this.yudingcheliangShow = false;
this.hetongdanganguanliAddShow = false;
this.hetongdanganguanliInfoShow = false;
},
//
selectVehicle(depositVehicleList) {
for (var i = 0; i < depositVehicleList.length; i++) {
this.list.push({
brandName: depositVehicleList[i].brandName,
guidedPrice: depositVehicleList[i].guidedPrice,
location: depositVehicleList[i].location,
vinNo: depositVehicleList[i].vinNo,
sid: '',
vehicleAlias: depositVehicleList[i].vehicleAlias,
vehicleSid: depositVehicleList[i].sid
})
}
},
//
selectCustomer(row) {
this.temp.customerName = row.name
this.temp.customerSid = row.sid
this.temp.mobile = row.mobile
},
})
},
//
handleSubmit() {
this.$confirm('是否确定提交该业务', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
this.FormLoading = true;
this.dialogStatus = 'create';
this.temp.carList = this.list;
this.temp.staffSid = window.sessionStorage.getItem('staffSid')
this.temp.orgSid = window.sessionStorage.getItem('orgSid')
console.log('提交时sid', this.temp.sid)
//
submitVehicleApprove(this.temp).then((response) => {
if (response.code === '200') {
this.$notify({
title: '提示',
message: '提交成功',
type: 'success',
duration: 2000,
})
this.handleReturn('true')
} else {
this.$notify({
title: '提交失败',
message: response.msg,
type: 'error',
})
}
})
}
})
})
},
//
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist');
this.temp.sid = ''; // SID
this.temp = {
staffName: '',
customerSid: '', // sid
virtualOrderSid: '', // s
customerName: '', //
virtualOrderId: '', // s
sellerName: '', //
departmentName: '', //
mobile: '', //
createDate: '', //
carList: [],
taskId: '', // Id
procInsId: '', // ID
userSid: window.sessionStorage.getItem('userSid')
}
this.disabled = false
this.list = []
this.$refs['dataForm'].resetFields();
this.$emit('doback')
},
}
//
selectCustomer(row) {
this.temp.customerName = row.name
this.temp.customerSid = row.sid
this.temp.mobile = row.mobile
},
//
selectVehicle(depositVehicleList) {
for (var i = 0; i < depositVehicleList.length; i++) {
this.list.push({
brand: depositVehicleList[i].brandName,
model: depositVehicleList[i].vehicleAlias,
vin: depositVehicleList[i].vinNo,
colour: depositVehicleList[i].carColor,
location: depositVehicleList[i].location,
price: depositVehicleList[i].guidedPrice,
modelSid: depositVehicleList[i].modelSid,
configSid: depositVehicleList[i].configSid,
carSid: depositVehicleList[i].sid
})
}
},
//
handleDelete(row, index) {
this.list.splice(index, 1)
// if (row.sid !== '') {
// const sid_list = []
// sid_list.push(row.sid, row.vehicleSid)
// console.log('', sid_list)
// } else {
// this.list.splice(index, 1)
// }
},
// ------------ ------------
//
handleyudingcheliang() {
this.visible = false;
this.xuanzekehuShow = false;
this.xuanzecheliangShow = true;
this.yudingcheliangShow = false;
},
//
handleCustomer() {
this.xuanzekehuShow = true
this.xuanzecheliangShow = false;
this.visible = false;
this.yudingcheliangShow = false;
},
//
yudingcheliangfanhui() {
this.visible = true;
this.xuanzecheliangShow = false
this.xuanzekehuShow = false
this.yudingcheliangShow = false;
},
},
}
</script>
<style scoped>
.tit {
margin: 0 0 20px 0;
padding: 10px 0 0 0;
}
.tit {
margin: 0 0 20px 0;
padding: 10px 0 0 0;
}
.times {
display: flex;
flex-direction: row;
justify-content: space-around;
padding: 30px 0 10px 0;
margin: 0 auto 0px auto;
width: 70%;
font-size: 14px;
}
.times {
display: flex;
flex-direction: row;
justify-content: space-around;
padding: 30px 0 10px 0;
margin: 0 auto 0px auto;
width: 70%;
font-size: 14px;
}
/deep/ .el-form-item__content {
margin-left: 0 !important;
}
/deep/ .el-form-item__content {
margin-left: 0 !important;
}
.changeIt {
line-height: 40px;
font-size: 17px;
float: right;
}
.changeIt {
line-height: 40px;
font-size: 17px;
float: right;
}
</style>

692
anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/xunidingdan/xunidingdanguanli.vue

@ -1,29 +1,8 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<button-bar view-title="销售简易订单管理" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<div class="tab-header webtop">
<div>销售简易订单管理</div>
<div>
<!-- <el-button type="primary" size="small" @click="handleGenerate()">生成销售订单</el-button>-->
<el-button type="primary" size="small" @click="handleCreate()">新增</el-button>
<el-button type="primary" size="small" @click="handleUpdate()">编辑</el-button>
<el-button type="danger" size="small" @click="handleDelete()">删除</el-button>
<!-- <el-button type="primary" size="small">打印</el-button>-->
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
<el-dialog
title="请选择订单类型"
:visible.sync="dialogVisible"
width="22%">
<div class="diaCenter">
<el-radio v-model="billTypeKey" label="01">订金收取</el-radio>
<el-radio v-model="billTypeKey" label="02">车辆预订</el-radio>
</div>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="handleConfirm()"> </el-button>
<el-button @click="dialogVisible = false">退 </el-button>
</span>
</el-dialog>
</div>
<div class="webcon">
<div class="searchcon">
@ -31,7 +10,7 @@
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="130px" class="tab-header">
<el-form-item label="订单类型">
<el-select v-model="listQuery.params.billType" placeholder="请选择" @change="depositTypeChange">
<el-select v-model="listQuery.params.depositBillTypeKey" placeholder="请选择">
<el-option
v-for="item in depositType"
:key="item.dictKey"
@ -66,29 +45,33 @@
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" icon="el-icon-search" size="small" @click="handleFilter">查询</el-button>
<el-button type="primary" icon="el-icon-search" size="small" @click="handleFilter">查询</el-button>
<el-button type="primary" icon="el-icon-refresh" size="small" @click="handleReset">重置</el-button>
</div>
</div>
</div>
<div class="listtop">
<div class="tit">销售简易订单列表</div>
<pageye v-show="total > 0" :total="total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
<pageye v-show="total > 0" :total="total" :page.sync="listQuery.current" :limit.sync="listQuery.size"
class="pagination" @pagination="getList"/>
</div>
<div class="">
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%" @selection-change="handleSelectionChange">
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%"
@selection-change="handleSelectionChange">
<el-table-column width="50px" type="selection" align="center"/>
<el-table-column width="80px" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column width="150px" label="操作" align="center">
<el-table-column width="130px" label="操作" align="center">
<template slot-scope="scope">
<div class="searchbtns">
<el-button size="small" type="primary" :disabled="scope.row.nodeState == '' ? false:scope.row.nodeState == '发起订单'?false : true" @click="changeNodeState(scope.row)">办理
<el-button size="mini" type="primary"
:disabled="scope.row.nodeState == '待提交' ? false:scope.row.nodeState == '发起订单'?false : true"
@click="handleEdit(scope.row)">办理
</el-button>
<el-button size="small" type="primary" @click="handleCheck(scope.row)">查看</el-button>
<el-button size="mini" type="primary" @click="handleCheck(scope.row)">查看</el-button>
</div>
</template>
</el-table-column>
<el-table-column label="状态" align="center">
<el-table-column label="状态" align="left" header-align="center">
<template slot-scope="scope">
<span>{{ scope.row.nodeState }}</span>
</template>
@ -98,9 +81,9 @@
<span>{{ scope.row.depositBillType }}</span>
</template>
</el-table-column>
<el-table-column label="分公司" align="center"><!--原单据编号-->
<el-table-column label="分公司" width="150px" align="center"><!--原单据编号-->
<template slot-scope="scope">
<span>{{ scope.row.billNo }}</span>
<span>{{ scope.row.orgName }}</span>
</template>
</el-table-column>
<el-table-column label="申请人" align="center">
@ -113,12 +96,7 @@
<span>{{ scope.row.createDate }}</span>
</template>
</el-table-column>
<!-- <el-table-column label="销售专员" align="center">-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{ scope.row.staffName }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="客户(付款人)" width="145px" align="center">
<el-table-column label="客户(付款人)" width="130px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.name }}</span>
</template>
@ -133,12 +111,12 @@
<span>{{ scope.row.deposit }}</span>
</template>
</el-table-column>
<el-table-column label="已使用订金(元)" width="155px" align="center">
<el-table-column label="已使用订金(元)" width="150px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.usedDeposit }}</span>
</template>
</el-table-column>
<el-table-column label="预订车辆" align="center">
<el-table-column label="预订车辆" width="110px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.depositVehicle }}</span>
</template>
@ -148,10 +126,24 @@
<div class="pages">
<div class="tit"/>
<!-- 翻页 -->
<pagination v-show="total > 0" :total="total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
<pagination v-show="total > 0" :total="total" :page.sync="listQuery.current" :limit.sync="listQuery.size"
class="pagination" @pagination="getList"/>
</div>
</div>
</div>
<el-dialog
title="请选择订单类型"
:visible.sync="dialogVisible"
width="22%">
<div class="diaCenter">
<el-radio v-model="billTypeKey" label="01">订金收取</el-radio>
<el-radio v-model="billTypeKey" label="02">车辆预订</el-radio>
</div>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="handleConfirm()"> </el-button>
<el-button @click="dialogVisible = false">退 </el-button>
</span>
</el-dialog>
<!-- 车辆预订 新增编辑页面 -->
<div-add v-show="viewState == 2 || viewState == 3" ref="divadd" @doback="resetState" @reloadlist="getList"/>
<!--车辆预订 详情页面 -->
@ -168,7 +160,6 @@
<script>
import {mapGetters} from 'vuex'
import {deleteBySids, listPage, typeValues} from '@/api/jichuxinxi/busdeposit'
// import {submitApprove, updateState} from '@/api/portal/workFlow'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import divAdd from './xunidingdanAdd.vue'
@ -176,7 +167,7 @@ import divInfo from './xunidingdaninfo.vue'
import xunidingjinAdd from './xunidingjinAdd'
import xunidingjininfo from './xunidingjininfo'
import hetongdanganguanliInfo from '@/views/hetongguanli/hetongdanganguanli/hetongdanganguanliInfo.vue'
import ButtonBar from '@/components/ButtonBar'
export default {
name: 'Xunidingdanguanli',
@ -187,112 +178,225 @@ export default {
divInfo,
xunidingjinAdd,
xunidingjininfo,
hetongdanganguanliInfo
hetongdanganguanliInfo,
ButtonBar
},
data() {
return {
disabled: false, //
billTypeKey: '',
dialogVisible: false, //
isSearchShow: false,
searchxianshitit: '显示查询条件',
btndisabled: false,
viewState: 1, // 1 2- 3 4 5-
// -----------
depositType: [], //
tableKey: 0,
list: [],
nodeState_list: [], //
sids: [],
billType: [],
total: 1,
FormLoading: false,
listLoading: false,
listQuery: {
current: 1,
size: 20,
params: {
userSid: window.sessionStorage.getItem('userSid'),
orgName: '',
staffName: '',
customerName: '',
billType: '',
startTime: '',
endTime: ''
}
},
submitDto: {
businessSid: '',
userSid: window.sessionStorage.getItem('userSid')
data() {
return {
viewState: 1, // 1 2- 3 4 5-
disabled: false, //
billTypeKey: '',
dialogVisible: false, //
isSearchShow: false,
searchxianshitit: '显示查询条件',
btndisabled: false,
btnList: [
{
type: 'primary',
size: 'small',
icon: 'plus',
btnKey: 'toAdd',
btnLabel: '新增'
},
updateDto: {
nodeState: '',
sid: ''
{
type: 'danger',
size: 'small',
icon: 'del',
btnKey: 'doDel',
btnLabel: '删除'
},
nodeState: '',
selectDate: undefined,
temp: {}, //
visible: true,
hetongdanganguanliInfoShow: false
// ------------------------------------
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
// -----------
depositType: [], //
tableKey: 0,
list: [],
nodeState_list: [], //
sids: [],
billType: [],
total: 1,
FormLoading: false,
listLoading: false,
listQuery: {
current: 1,
size: 20,
params: {
userSid: window.sessionStorage.getItem('userSid'),
orgName: '',
staffName: '',
customerName: '',
billType: '',
startTime: '',
endTime: ''
}
},
nodeState: '',
selectDate: undefined,
visible: true,
hetongdanganguanliInfoShow: false
// ------------------------------------
}
},
computed: {
...mapGetters([
'id',
'roles',
'rolesIds',
'departmentId',
'departmentCode'
])
},
created() {
//
this.init()
//
this.getList()
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
methods: {
init() {
this.getType()
},
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
computed: {
...mapGetters([
'id',
'roles',
'rolesIds',
'departmentId',
'departmentCode'
])
// ------------------
resetState() {
this.viewState = 1
},
created() {
//
this.init()
//
this.getList()
// -
getType() {
typeValues({
type: 'depositBillType'
}).then((res) => {
if (res.code === '200') {
this.depositType = res.data
console.log('下拉框请求订单类型', res.data)
}
})
},
methods: {
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
btnHandle(btnKey) {
console.log('XXXXXXXXXXXXXXX ' + btnKey)
switch (btnKey) {
case 'toAdd':
this.toAdd()
break
case 'doDel':
this.doDel()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
//
handleGenerate() {
},
//
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
//
getList() {
this.listLoading = true
listPage(this.listQuery).then((response) => {
this.listLoading = false
if (
response.code === '200' &&
response.data &&
response.data.total > 0
) {
this.list = response.data.records
for (var i = 0; i < response.data.records.length; i++) {
var timeArr = response.data.records[i].createDate.split(' ');
this.list[i].createDate = timeArr[0];
}
this.total = response.data.total
} else {
this.searchxianshitit = '显示查询条件'
}
},
init() {
this.getType()
},
// ------------------
resetState() {
this.viewState = 1
},
//
handleReset() {
this.listQuery = {
current: 1,
size: 20
this.list = []
this.total = 0
}
},
})
},
//
handleSelectionChange(row) {
console.log('row', row)
const aa = []
const bb = []
const cc = []
row.forEach((element) => {
aa.push(element.sid)
bb.push(element.depositBillTypeKey)
cc.push(element.nodeState)
});
this.sids = aa
this.billType = bb
this.nodeState_list = cc
console.log('选择sid', this.sids)
console.log('选择订单类型', this.billType)
console.log('流程状态', this.nodeState_list)
},
// -
getType() {
typeValues({
type: 'depositBillType'
}).then((res) => {
if (res.code === '200') {
this.depositType = res.data
console.log('下拉框请求订单类型', res.data)
// ID
doDel() {
if (this.sids.length > 0) {
const sids = this.sids
deleteBySids(sids).then((response) => {
if (response.code === '200') {
this.$notify({
title: '提示',
message: '删除成功',
type: 'success',
duration: 2000
})
this.getList()
} else {
this.$notify({
title: '删除失败',
message: response.msg,
type: 'error'
})
}
})
},
depositTypeChange(value) {
console.log('触发下拉框按钮')
} else {
this.$notify({
title: '提示',
message: '没有选择资方信息!!',
type: 'error',
duration: 2000
})
return
}
},
//
toAdd() {
this.dialogVisible = true
},
//
handleConfirm() {
if (this.billTypeKey !== '') {
let bb = {}
this.depositType.forEach((e) => {
if (e.dictKey === value) {
if (e.dictKey === this.billTypeKey) {
bb = {
type: e.dictType,
name: e.dictValue,
@ -301,232 +405,116 @@ export default {
}
}
})
this.listQuery.params.billType = bb.name
// this.formobj.scmOtherInboundDto.billType = bb.sid
console.log('name', this.listQuery.params.billType)
},
//
handleGenerate() {
},
//
handleCreate() {
this.dialogVisible = true
},
//
handleConfirm() {
if (this.billTypeKey !== '') {
let bb = {}
this.depositType.forEach((e) => {
if (e.dictKey === this.billTypeKey) {
bb = {
type: e.dictType,
name: e.dictValue,
key: e.dictKey,
sid: e.sid
}
}
})
const billType = bb.name
if (this.billTypeKey == '01') {
this.dialogVisible = false;
this.viewState = 5
this.$refs['divDing'].showAdd(billType, this.billTypeKey)
} else if (this.billTypeKey == '02') {
this.dialogVisible = false
this.viewState = 2
this.$refs['divadd'].showAdd(billType, this.billTypeKey)
}
} else {
this.$message({
message: '请选择虚拟订车单类型',
type: 'warning'
})
}
},
//
handleUpdate() {
if (this.sids.length == 1) {
if (this.billType[0] == '01') {
this.viewState = 5
this.dialogStatus = 'edit'
const sid = this.sids[0]
const nodeState = this.nodeState_list[0]
this.$refs['divDing'].showEdit(sid, nodeState)
} else {
this.viewState = 3
this.dialogStatus = 'edit'
const sid = this.sids[0]
const nodeState = this.nodeState_list[0]
this.$refs['divadd'].showEdit(sid, nodeState)
}
} else if (this.sids.length == 0) {
this.$notify({
title: '您还未选择,请选择数据!!!',
type: 'error'
})
} else if (this.sids.length > 1) {
this.$notify({
title: '您未选择的数据过多,请选择一条数据编辑!!',
type: 'error'
})
const billType = bb.name
if (this.billTypeKey == '01') {
this.dialogVisible = false;
this.viewState = 5
this.$refs['divDing'].showAdd(billType, this.billTypeKey)
} else if (this.billTypeKey == '02') {
this.dialogVisible = false
this.viewState = 2
this.$refs['divadd'].showAdd(billType, this.billTypeKey)
}
},
//
handleCheck(row) {
if (row.depositBillTypeKey == '01') {
this.viewState = 6
this.$refs['divDingInfo'].showInfo(row.sid, row.nodeState)
} else {
this.viewState = 4
this.$refs['divinfo'].showInfo(row.sid, row.nodeState)
}
},
handleInfo() {
this.viewState = 4
},
// ------------------
noClickclose() {
this.viewState = 1
this.hetongdanganguanliInfoShow = false
},
//
handleCheckhetong() {
this.viewState = false
this.hetongdanganguanliInfoShow = true
},
//
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
//
getList() {
this.listLoading = true
listPage(this.listQuery).then((response) => {
this.listLoading = false
if (
response.code === '200' &&
response.data &&
response.data.total > 0
) {
this.list = response.data.records
for (var i = 0; i < response.data.records.length; i++) {
var timeArr = response.data.records[i].createDate.split(' ');
this.list[i].createDate = timeArr[0];
}
this.total = response.data.total
} else {
this.list = []
this.total = 0
}
} else {
this.$message({
message: '请选择虚拟订车单类型',
type: 'warning'
})
},
//
handleFilter() {
this.listQuery.current = 1
this.getList()
},
//
handleSelectionChange(row) {
console.log('row', row)
const aa = []
const bb = []
const cc = []
row.forEach((element) => {
aa.push(element.sid)
bb.push(element.depositBillTypeKey)
cc.push(element.nodeState)
});
this.sids = aa
this.billType = bb
this.nodeState_list = cc
console.log('选择sid', this.sids)
console.log('选择订单类型', this.billType)
console.log('流程状态', this.nodeState_list)
},
// ID
handleDelete() {
if (this.sids.length > 0) {
const sids = this.sids
deleteBySids(sids).then((response) => {
if (response.code === '200') {
this.$notify({
title: '提示',
message: '删除成功',
type: 'success',
duration: 2000
})
this.getList()
} else {
this.$notify({
title: '删除失败',
message: response.msg,
type: 'error'
})
}
})
} else {
this.$notify({
title: '提示',
message: '没有选择资方信息!!',
type: 'error',
duration: 2000
})
return
}
},
//
changeNodeState(row) {
console.log('111', row)
if (row.nodeState == '' || row.nodeState == '发起订单') {
if (row.depositBillTypeKey == '01') {
this.viewState = 5
this.dialogStatus = 'edit'
this.$refs['divDing'].showEdit(row.sid, row.nodeState)
} else if (row.depositBillTypeKey == '02') {
this.viewState = 3
this.dialogStatus = 'edit'
this.$refs['divadd'].showEdit(row.sid, row.nodeState)
}
}
},
//
handleEdit(row) {
if (row.depositBillTypeKey == '01') {
this.viewState = 5
this.dialogStatus = 'edit'
this.$refs['divDing'].showEdit(row.sid,row.depositBillType)
} else if (row.depositBillTypeKey == '02') {
this.viewState = 3
this.dialogStatus = 'edit'
this.$refs['divadd'].showEdit(row.sid,row.depositBillType)
}
},
//
handleCheck(row) {
if (row.depositBillTypeKey == '01') {
this.viewState = 6
this.$refs['divDingInfo'].showInfo(row.sid,row.depositBillType)
} else {
this.viewState = 4
this.$refs['divinfo'].showInfo(row.sid, row.depositBillType)
}
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
},
//
handleFilter() {
this.listQuery.current = 1
this.getList()
},
//
handleReset() {
this.listQuery = {
current: 1,
size: 20,
params: {
userSid: window.sessionStorage.getItem('userSid'),
orgName: '',
staffName: '',
customerName: '',
billType: '',
startTime: '',
endTime: ''
}
},
//
handleDaoChu() {
// basefinbankExportExcel(this.sids).then((res) => {
// const blob = new Blob([res], {
// type: 'application/vnd.ms-excel',
// })
// const objectUrl = URL.createObjectURL(blob)
// window.location.href = objectUrl
// this.$notify({
// title: '',
// message: '',
// type: 'success',
// duration: 2000,
// })
// })
}
this.getList()
},
// ------------------
noClickclose() {
this.viewState = 1
this.hetongdanganguanliInfoShow = false
},
//
handleCheckhetong() {
this.viewState = false
this.hetongdanganguanliInfoShow = true
},
//
handleDaoChu() {
// basefinbankExportExcel(this.sids).then((res) => {
// const blob = new Blob([res], {
// type: 'application/vnd.ms-excel',
// })
// const objectUrl = URL.createObjectURL(blob)
// window.location.href = objectUrl
// this.$notify({
// title: '',
// message: '',
// type: 'success',
// duration: 2000,
// })
// })
}
}
}
</script>
<style scoped lang="scss">
/* .listcon{height: calc(100vh - 480px);overflow-y: auto;overflow-x: hidden;} */
.el-input__icon {
width: 40px;
}
/* .listcon{height: calc(100vh - 480px);overflow-y: auto;overflow-x: hidden;} */
.el-input__icon {
width: 40px;
}
.el-form-item .el-form-item__label {
width: 100% !important;
}
.el-form-item .el-form-item__label {
width: 100% !important;
}
.block {
display: inline-block;
}
.block {
display: inline-block;
}
.el-form-item__content label {
padding: 0 5px;
}
.el-form-item__content label {
padding: 0 5px;
}
</style>

57
anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/xunidingdan/xunidingdaninfo.vue

@ -5,17 +5,7 @@
<div>销售简易订单详情</div>
<!-- <div v-else></div> -->
<div>
<el-button
type="primary"
size="small"
:disabled="this.nodeState == '' ? false : this.nodeState == '发起订单' ? false : true"
@click="handleSubmit()"
>提交
</el-button>
<el-button type="primary" size="small">打印</el-button>
<el-button type="info" size="small" @click="handleReturn()"
>关闭
</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd">
@ -28,10 +18,10 @@
<div class="tit">
销售虚拟订车单
<div class="times">
<div><span>分公司</span><span>{{ temp.billNo }}</span></div>
<div><span>申请人</span><span>{{ temp.createName }}</span></div>
<div><span>分公司</span><span>{{ temp.departmentName }}</span></div>
<div><span>申请人</span><span>{{ temp.staffName }}</span></div>
<div><span>申请日期</span><span>{{ temp.createDate }}</span></div>
<div><span>金额单位</span><span>{{ temp.price }}</span></div>
<div><span>金额单位</span><span></span></div>
</div>
</div>
<el-row class="bordertopline">
@ -40,7 +30,7 @@
</el-col>
<el-col :span="6" class="trightb">
<el-form-item>
<span>{{temp.depositBillType}}</span>
<span>{{ temp.depositBillType }}</span>
</el-form-item>
</el-col>
<el-col :span="2" class="tleftb">
@ -61,9 +51,9 @@
</el-col>
</el-row>
<!--Start 预订车辆信息-->
<!-- <div class="title">-->
<div class="title">预订车辆信息</div>
<!-- </div>-->
<!-- <div class="title">-->
<div class="title">预订车辆信息</div>
<!-- </div>-->
<el-table
v-loading="listLoading"
:data="list"
@ -79,22 +69,22 @@
/>
<el-table-column label="品牌" align="center">
<template slot-scope="scope">
<span>{{ scope.row.brandName }}</span>
<span>{{ scope.row.brand }}</span>
</template>
</el-table-column>
<el-table-column label="车型名称" align="center">
<template slot-scope="scope">
<span>{{ scope.row.vehicleAlias }}</span>
<span>{{ scope.row.carName }}</span>
</template>
</el-table-column>
<el-table-column label="车架号" align="center">
<template slot-scope="scope" @click="">
<span>{{ scope.row.vinNo }}</span>
<span>{{ scope.row.vin }}</span>
</template>
</el-table-column>
<el-table-column label="颜色" align="center">
<template slot-scope="scope" @click="">
<span>{{ scope.row.color }}</span>
<span>{{ scope.row.colour }}</span>
</template>
</el-table-column>
<el-table-column label="存放地点" align="center">
@ -104,12 +94,12 @@
</el-table-column>
<el-table-column label="销售指导价" align="center">
<template slot-scope="scope">
<span>{{ scope.row.guidedPrice }}</span>
<span>{{ scope.row.price }}</span>
</template>
</el-table-column>
<el-table-column label="预计订金日期" align="center">
<template slot-scope="scope">
<span>{{ scope.row.reserve_deposit_date }}</span>
<span>{{ scope.row.reserveDate }}</span>
</template>
</el-table-column>
<el-table-column label="备注" align="center">
@ -126,8 +116,7 @@
<script>
import {mapGetters} from "vuex";
import {selectSid} from "@/api/jichuxinxi/busdeposit";
import {submitVehicleApprove} from "@/api/portal/workFlow";
import {getReserveCarDetails} from "@/api/jichuxinxi/busdeposit";
export default {
name: "Add",
@ -175,10 +164,6 @@ export default {
"departmentCode",
]),
},
created() {
//
this.init();
},
methods: {
// ------------------
handleReturn(isreload) {
@ -188,17 +173,17 @@ export default {
this.$emit("doback");
},
showInfo(sid, nodeState) {
showInfo(sid, depositBillType) {
console.log("修改打开", sid);
this.submitDto.businessSid = sid;
this.nodeState = nodeState
this.$nextTick(() => {
this.$refs["dataForm"].clearValidate();
});
selectSid(sid).then((response) => {
getReserveCarDetails(sid).then((response) => {
if (response.code) {
this.temp = response.data;
this.list = response.data.depositVehicleList;
this.temp = response.data
this.temp.depositBillType = depositBillType
this.list = response.data.vehicleList
} else {
this.$notify({
title: "提示",
@ -236,8 +221,6 @@ export default {
});
});
},
init() {
},
},
};
</script>

1097
anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/xunidingdan/xunidingjinAdd.vue

File diff suppressed because it is too large

233
anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/xunidingdan/xunidingjininfo.vue

@ -4,11 +4,6 @@
<div class="tab-header webtop">
<div>销售虚拟订单管理详细信息</div>
<div>
<el-button type="primary" size="small"
:disabled="this.nodeState == '' ? false : this.nodeState == '发起订单' ? false : true"
@click="handleSubmit()">提交
</el-button>
<!-- <el-button type="primary" size="small">打印</el-button>-->
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
@ -17,10 +12,10 @@
<div class="tit">
销售简易订单
<div class="times">
<div><span>分公司</span><span>{{ temp.billNo }}</span></div>
<div><span>申请人</span><span>{{ temp.createName }}</span></div>
<div><span>分公司</span><span>{{ temp.departmentName }}</span></div>
<div><span>申请人</span><span>{{ temp.staffName }}</span></div>
<div><span>申请日期</span><span>{{ temp.createDate }}</span></div>
<div><span>金额单位</span><span>{{ temp.price }}</span></div>
<div><span>金额单位</span><span></span></div>
</div>
</div>
<el-row class="bordertopline">
@ -29,7 +24,7 @@
</el-col>
<el-col :span="5" class="trightb">
<el-form-item>
<span>{{temp.depositBillType}}</span>
<span>{{ temp.depositBillType }}</span>
</el-form-item>
</el-col>
<el-col :span="3" class="tleftb">
@ -37,7 +32,7 @@
</el-col>
<el-col :span="5" class="trightb">
<el-form-item>
<span>{{temp.draweeName}}</span>
<span>{{ temp.payName }}</span>
</el-form-item>
</el-col>
<el-col :span="3" class="tleftb">
@ -45,7 +40,7 @@
</el-col>
<el-col :span="5" class="trightb">
<el-form-item>
<span>{{temp.draweeMobile}}</span>
<span>{{ temp.mobile }}</span>
</el-form-item>
</el-col>
</el-row>
@ -55,7 +50,7 @@
</el-col>
<el-col :span="5" class="trightb">
<el-form-item>
<span>{{temp.vehicleNum}}</span>
<span>{{ temp.carNumber }}</span>
</el-form-item>
</el-col>
<el-col :span="3" class="tleftb">
@ -63,7 +58,7 @@
</el-col>
<el-col :span="13" class="trightb">
<el-form-item>
<span>{{temp.deposit}}</span>
<span>{{ temp.deposit }}</span>
</el-form-item>
</el-col>
</el-row>
@ -73,7 +68,7 @@
</el-col>
<el-col :span="5" class="trightb">
<el-form-item>
<span>{{temp.paymentDate}}</span>
<span>{{ temp.payDate }}</span>
</el-form-item>
</el-col>
<el-col :span="3" class="tleftb">
@ -81,7 +76,7 @@
</el-col>
<el-col :span="5" class="trightb">
<el-form-item>
<span>{{temp.payType}}</span>
<span>{{ temp.payType }}</span>
</el-form-item>
</el-col>
<el-col :span="3" class="tleftb">
@ -89,7 +84,7 @@
</el-col>
<el-col :span="5" class="trightb">
<el-form-item>
<el-input v-model="temp.payBankAcc" class="addinputw" placeholder="" clearable/>
<el-input v-model="temp.payNumber" class="addinputw" placeholder="" clearable/>
</el-form-item>
</el-col>
</el-row>
@ -99,7 +94,7 @@
</el-col>
<el-col :span="5" class="trightb">
<el-form-item>
<span>{{temp.proBankAccValue}}</span>
<span>{{ temp.collectionNumber }}</span>
</el-form-item>
</el-col>
<el-col :span="3" class="tleftb">
@ -107,7 +102,7 @@
</el-col>
<el-col :span="13" class="trightb">
<el-form-item>
<span>{{temp.proBankValue}}</span>
<span>{{ temp.collectionBank }}</span>
</el-form-item>
</el-col>
</el-row>
@ -117,7 +112,7 @@
</el-col>
<el-col :span="21" class="trightb">
<el-form-item>
<span>{{temp.remarks}}</span>
<span>{{ temp.remarks }}</span>
</el-form-item>
</el-col>
</el-row>
@ -136,15 +131,15 @@
<div class="title">客户信息</div>
</div>
<el-table v-loading="listLoading" :data="list" border style="width: 100%" :index="index">
<el-table-column align="center" label="序号" type="index" width="50"/>
<el-table-column align="center" label="序号" type="index" width="60"/>
<el-table-column label="客户名称" align="center">
<template slot-scope="scope">
<span>{{scope.row.customerName}}</span>
<span>{{ scope.row.customerName }}</span>
</template>
</el-table-column>
<el-table-column label="联系电话" align="center">
<template slot-scope="scope">
<span>{{scope.row.customerMobile}}</span>
<span>{{ scope.row.mobile }}</span>
</template>
</el-table-column>
</el-table>
@ -156,149 +151,73 @@
</template>
<script>
import {mapGetters} from 'vuex'
import {fetchSid} from '@/api/jichuxinxi/busdeposit'
import {submitApprove, updateState} from '@/api/portal/workFlow'
import {fetchSid} from '@/api/jichuxinxi/busdeposit'
export default {
name: "xunidingjininfo",
data() {
return {
disabled: '',
viewTitle: '',
index: 0,
imgUrl: '',
// dialogStatus: 'add',
// ---------
YongHuid: [],
edit: true,
visible: true,
stateId: '0',
FormLoading: false,
listLoading: false,
list: [],
temp: {
billNo: '',
createDate: '',
}, //
textMap: {
update: '修改',
create: '创建',
},
submitDto: {
businessSid: '',
userSid: window.sessionStorage.getItem('userSid')
},
updateDto: {
nodeState: '',
sid: '',
},
nodeState: '',
mobile: '',
orgName: '',
staffName: '',
_userSid: '',
customerName: [],
xuniSid: '',
tificateT: [],
dnumbDate: [],
dialogStatus: '', //
yudingcheliangShow: false,
hetongdanganguanliAddShow: false,
hetongdanganguanliInfoShow: false,
kehudanganAddShow: false,
// ------------------------------------
}
},
computed: {
...mapGetters([
'id',
'roles',
'rolesIds',
'departmentId',
'departmentCode',
]),
export default {
name: "xunidingjininfo",
data() {
return {
disabled: '',
viewTitle: '',
index: 0,
imgUrl: '',
// ---------
YongHuid: [],
edit: true,
visible: true,
stateId: '0',
FormLoading: false,
listLoading: false,
list: [],
temp: {},
}
},
methods: {
showInfo(sid,depositBillType) {
fetchSid(sid).then((response) => {
if (response.code === '200') {
this.temp = response.data
this.imgUrl = this.temp.payImages[this.temp.payImages.length - 1]
this.list = response.data.customerList
this.temp.depositBillType = depositBillType
} else {
this.$notify({
title: '提示',
message: '查看失败',
type: 'error',
duration: 2000,
})
}
})
},
created() {
//
// this.init()
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.temp.sid = '' // SID
this.$refs['dataForm'].resetFields()
this.$emit('doback')
},
methods: {
init() {
},
showInfo(sid, nodeState) {
this.submitDto.businessSid = sid
this.nodeState = nodeState
fetchSid(sid).then((response) => {
if (response.code === '200') {
this.temp = response.data
this.imgUrl = this.temp.paymentProofList[this.temp.paymentProofList.length - 1]
this.list = response.data.customerList
} else {
this.$notify({
title: '提示',
message: '查看失败',
type: 'error',
duration: 2000,
})
}
})
},
//
handleSubmit() {
this.$confirm('是否确定提交该业务', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
//
this.temp.userSid = window.sessionStorage.getItem('userSid')
submitApprove(this.temp).then((response) => {
if (response.code === '200') {
this.$notify({
title: '提示',
message: '添加成功',
type: 'success',
duration: 2000,
})
} else {
this.$notify({
title: '添加失败',
message: response.msg,
type: 'error',
})
}
})
})
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.temp.sid = '' // SID
this.$refs['dataForm'].resetFields()
this.$emit('doback')
},
}
}
}
</script>
<style scoped>
.tit {
margin: 0 0 20px 0;
padding: 10px 0 0 0;
}
.tit {
margin: 0 0 20px 0;
padding: 10px 0 0 0;
}
.times {
display: flex;
flex-direction: row;
justify-content: space-around;
padding: 30px 0 10px 0;
margin: 0 auto 0px auto;
width: 70%;
font-size: 14px;
}
.times {
display: flex;
flex-direction: row;
justify-content: space-around;
padding: 30px 0 10px 0;
margin: 0 auto 0px auto;
width: 70%;
font-size: 14px;
}
/deep/ .el-form-item__content {
margin-left: 0 !important;
}
/deep/ .el-form-item__content {
margin-left: 0 !important;
}
</style>

14
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java

@ -3,6 +3,8 @@ package com.yxt.anrui.fin.api.kingdee;
import com.yxt.anrui.fin.api.kingdee.appayable.APPayable;
import com.yxt.anrui.fin.api.kingdee.appaybill.ApPayBill;
import com.yxt.anrui.fin.api.kingdee.arreceivable.ARReceivable;
import com.yxt.anrui.fin.api.kingdee.purmrb.PurMrb;
import com.yxt.anrui.fin.api.kingdee.stkinstock.StkInStock;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -41,5 +43,15 @@ public interface FinKingDeeFeign {
@ApiOperation("保存付款单的接口")
@PostMapping("/draftApPayBill")
@ResponseBody
public ResultBean draftApPayBill(ApPayBill apPayBill) ;
public ResultBean draftApPayBill(@RequestBody ApPayBill apPayBill) ;
@ApiOperation("保存采购入库单的接口")
@PostMapping("/draftStkInStock")
@ResponseBody
public ResultBean draftStkInStock(@RequestBody StkInStock stkInStock) ;
@ApiOperation("保存采购退料单的接口")
@PostMapping("/draftPurMrb")
@ResponseBody
public ResultBean draftPurMrb(@RequestBody PurMrb purMrb) ;
}

12
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java

@ -3,6 +3,8 @@ package com.yxt.anrui.fin.api.kingdee;
import com.yxt.anrui.fin.api.kingdee.appayable.APPayable;
import com.yxt.anrui.fin.api.kingdee.appaybill.ApPayBill;
import com.yxt.anrui.fin.api.kingdee.arreceivable.ARReceivable;
import com.yxt.anrui.fin.api.kingdee.purmrb.PurMrb;
import com.yxt.anrui.fin.api.kingdee.stkinstock.StkInStock;
import com.yxt.common.core.result.ResultBean;
public class FinKingDeeFeignFallBack
@ -21,4 +23,14 @@ implements FinKingDeeFeign{
public ResultBean draftApPayBill(ApPayBill apPayBill) {
return null;
}
@Override
public ResultBean draftStkInStock(StkInStock stkInStock) {
return null;
}
@Override
public ResultBean draftPurMrb(PurMrb purMrb) {
return null;
}
}

214
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/purmrb/PurMrb.java

@ -0,0 +1,214 @@
package com.yxt.anrui.fin.api.kingdee.purmrb;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* 采购退料单
*/
@Data
public class PurMrb {
/**
* 退料日期:FDate (必填项)
*/
@NotBlank
private String FDate;
/**
* 退料组织:FStockOrgId (必填项)
*/@NotBlank
private String FStockOrgId;
/**
* 需求组织:FRequireOrgId (必填项)
*/@NotBlank
private String FRequireOrgId;
/**
* 采购组织:FPurchaseOrgId (必填项)
*/@NotBlank
private String FPurchaseOrgId;
/**
* 供应商:FSupplierID (必填项)
*/@NotBlank
private String FSupplierID;
/**
* 接收方:FACCEPTORID
*/@NotBlank
private String FACCEPTORID;
/**
* 结算方:FSettleId
*/@NotBlank
private String FSettleId;
/**
* 收款方:FCHARGEID
*/@NotBlank
private String FCHARGEID;
/**
* 货主:FOwnerIdHead (必填项)
*/@NotBlank
private String FOwnerIdHead;
/**
* 结算组织:FSettleOrgId (必填项)
*/@NotBlank
private String FSettleOrgId;
/**
* 物料列表
*/@NotBlank
private List<FPURMRBENTRY> FPURMRBENTRY=new ArrayList<>();
@Data
public static class FPURMRBENTRY{
/**
* 物料编码:FMATERIALID (必填项)
*/@NotBlank
private String FMATERIALID;
/**
* 物料说明:FMaterialDesc
*/@NotBlank
private String FMaterialDesc;
/**
* 库存单位:FUnitID (必填项)
*/@NotBlank
private String FUnitID;
/**
* 批号:FLot
*/@NotBlank
private String FLot;
/**
* 实退数量:FRMREALQTY
*/@NotBlank
private double FRMREALQTY;
/**
* 补料数量:FREPLENISHQTY
*/@NotBlank
private double FREPLENISHQTY;
/**
* 扣款数量:FKEAPAMTQTY
*/@NotBlank
private double FKEAPAMTQTY;
/**
* 计价单位:FPRICEUNITID (必填项)
*/@NotBlank
private String FPRICEUNITID;
/**
* 仓库:FSTOCKID
*/@NotBlank
private String FSTOCKID;
/**
* 库存状态:FStockStatusId
*/@NotBlank
private String FStockStatusId;
/**
* 计价基本数量:FPriceBaseQty
*/@NotBlank
private double FPriceBaseQty;
/**
* 采购单位:FCarryUnitId (必填项)
*/@NotBlank
private String FCarryUnitId;
/**
* 采购数量:FCarryQty
*/@NotBlank
private double FCarryQty;
/**
* 采购基本数量:FCarryBaseQty
*/@NotBlank
private double FCarryBaseQty;
}
private final static PurMrb purMrb = new PurMrb();
static {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date=new Date();
/**
* 退料日期:FDate (必填项)
*/
purMrb.setFDate(sdf.format(date));
/**
* 退料组织:FStockOrgId (必填项)
*/purMrb.setFStockOrgId("101");
/**
* 需求组织:FRequireOrgId (必填项)
*/purMrb.setFRequireOrgId( "101");
/**
* 采购组织:FPurchaseOrgId (必填项)
*/purMrb.setFPurchaseOrgId("101");
/**
* 供应商:FSupplierID (必填项)
*/purMrb.setFSupplierID("010001");
/**
* 接收方:FACCEPTORID
*/purMrb.setFACCEPTORID("010001");
/**
* 结算方:FSettleId
*/purMrb.setFSettleId("010001");
/**
* 收款方:FCHARGEID
*/purMrb.setFCHARGEID("010001");
/**
* 货主:FOwnerIdHead (必填项)
*/purMrb.setFOwnerIdHead("101");
/**
* 结算组织:FSettleOrgId (必填项)
*/purMrb.setFSettleOrgId("101");
List<FPURMRBENTRY> FPURMRBENTRY=new ArrayList<>();
FPURMRBENTRY fp=new FPURMRBENTRY();
/**
* 物料编码:FMATERIALID (必填项)
*/fp.setFMATERIALID(" JX091054");
/**
* 物料说明:FMaterialDesc
*/fp.setFMaterialDesc("X牵引6*4-550超");
/**
* 库存单位:FUnitID (必填项)
*/fp.setFUnitID("liang");
/**
* 批号:FLot
*/fp.setFLot("liang");
/**
* 实退数量:FRMREALQTY
*/fp.setFRMREALQTY(1.0);
/**
* 补料数量:FREPLENISHQTY
*/fp.setFREPLENISHQTY(1.0);
/**
* 扣款数量:FKEAPAMTQTY
*/fp.setFKEAPAMTQTY(1.0);
/**
* 计价单位:FPRICEUNITID (必填项)
*/fp.setFPRICEUNITID("liang");
/**
* 仓库:FSTOCKID
*/fp.setFSTOCKID("CK001");
/**
* 库存状态:FStockStatusId
*/fp.setFStockStatusId("KCZT01_SYS");
/**
* 计价基本数量:FPriceBaseQty
*/fp.setFPriceBaseQty(1.0);
/**
* 采购单位:FCarryUnitId (必填项)
*/fp.setFCarryUnitId("liang");
/**
* 采购数量:FCarryQty
*/fp.setFCarryQty(1.0);
/**
* 采购基本数量:FCarryBaseQty
*/fp.setFCarryBaseQty(1.0);
FPURMRBENTRY.add(fp);
/**
* 物料列表
*/purMrb.setFPURMRBENTRY(FPURMRBENTRY);
}
public static PurMrb createPurMrb() {
return purMrb;
}
}

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

@ -0,0 +1,181 @@
package com.yxt.anrui.fin.api.kingdee.stkinstock;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* 采购入库单
*/
@Data
public class StkInStock {
private String sid;
/**
* //采购组织:FPurchaseOrgId (必填项)
*/
@NotBlank
private String FPurchaseOrgId;
/**
* // 收料组织:FStockOrgId (必填项)
*/
@NotBlank
private String FStockOrgId;
/**
* // 采购部门:FPurchaseDeptId (必填项)
*/
@NotBlank
private String FPurchaseDeptId;
/**
* // 供应商:FSupplierId (必填项)
*/
@NotBlank
private String FSupplierId;
/**
* // 入库日期:FDate (必填项)
*/
@NotBlank
private String FDate;
/**
* // 货主:FOwnerIdHead (必填项)
*/
@NotBlank
private String FOwnerIdHead;
/**
* // 单据类型:FBillTypeID (必填项)
*/
@NotBlank
private String FBillTypeID="RKD01_SYS";
/**
* // 货主类型:FOwnerTypeIdHead (必填项)
*/
@NotBlank
private String FOwnerTypeIdHead;
/**
* // 定价时点:FPriceTimePoint (必填项)
*/
@NotBlank
private String FPriceTimePoint;
/**
* // 结算币别:FSettleCurrId (必填项)
*/
@NotBlank
private String FSettleCurrId;
/**
* // 结算组织:FSettleOrgId (必填项)
*/
@NotBlank
private String FSettleOrgId;
/**
* // 物料列表:FInStockEntry (必填项)
*/
@NotBlank
private List<FInStockEntry> FInStockEntry=new ArrayList<>();
@Data
public static class FInStockEntry{
/**
* // 物料编码:FMaterialId (必填项)
*/
@NotBlank
private String FMaterialId;
/**
* // 库存单位:FUnitID (必填项)
*/
@NotBlank
private String FUnitID;
/**
* // 实收数量:FRealQty
*/
@NotBlank
private double FRealQty;
/**
* // 计价数量:FPriceUnitQty
*/
@NotBlank
private String FPriceUnitQty;
/**
* // 采购数量:FRemainInStockQty
*/
@NotBlank
private double FRemainInStockQty;
/**
* // 批号:FLot
*/
@NotBlank
private String FLot;
/**
* // 仓库:FStockId
*/
@NotBlank
private String FStockId;
/**
* // 计价单位:FPriceUnitID (必填项)
*/
@NotBlank
private String FPriceUnitID;
/**
* // 采购单位:FRemainInStockUnitId (必填项)
*/
@NotBlank
private String FRemainInStockUnitId;
}
private final static StkInStock stkInStock = new StkInStock();
static {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date=new Date();
stkInStock.setSid(sdf.format(date));
stkInStock.setFPurchaseOrgId("101");
stkInStock.setFStockOrgId("101");
stkInStock.setFPurchaseDeptId("05.04");
stkInStock.setFSupplierId("010001");
stkInStock.setFDate(sdf.format(date));
stkInStock.setFOwnerIdHead("101");
stkInStock.setFOwnerTypeIdHead("BD_OwnerOrg");
stkInStock.setFPriceTimePoint("1");
stkInStock.setFSettleCurrId("PRE001");
stkInStock.setFSettleOrgId("101");
List<FInStockEntry> FInStockEntry=new ArrayList<>();
FInStockEntry fise=new FInStockEntry();
fise.setFMaterialId(" JX091054");
fise.setFRealQty(1.0);
fise.setFPriceUnitQty("0");
fise.setFRemainInStockQty(1.0);
fise.setFLot("1234567890");
fise.setFStockId("CK001");
fise.setFUnitID("liang");
fise.setFPriceUnitID("liang");
fise.setFRemainInStockUnitId("liang");
FInStockEntry.add(fise);
stkInStock.setFInStockEntry(FInStockEntry);
}
public static StkInStock createStkInStock() {
return stkInStock;
}
}

38
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java

@ -4,17 +4,18 @@ import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign;
import com.yxt.anrui.fin.api.kingdee.appayable.APPayable;
import com.yxt.anrui.fin.api.kingdee.appaybill.ApPayBill;
import com.yxt.anrui.fin.api.kingdee.arreceivable.ARReceivable;
import com.yxt.anrui.fin.api.kingdee.purmrb.PurMrb;
import com.yxt.anrui.fin.api.kingdee.stkinstock.StkInStock;
import com.yxt.anrui.fin.biz.kingdee.appaybill.ApPayBillService;
import com.yxt.anrui.fin.biz.kingdee.entrybill.EntryBillService;
import com.yxt.anrui.fin.biz.kingdee.purmrb.PurMrbService;
import com.yxt.anrui.fin.biz.kingdee.receivablebill.ReceivableBillService;
import com.yxt.anrui.fin.biz.kingdee.stkinstock.STKInStockService;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
@Api(tags = "单据调用金蝶的保存接口")
@RestController("com.yxt.anrui.fin.biz.kingdee.FinKingDeeFeignRest")
@ -35,26 +36,49 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
*/
@Autowired
private ApPayBillService apPayBillService;
/**
* 采购入库单service
*/
@Autowired
private STKInStockService stkInStockService;
@Autowired
private PurMrbService purMrbService;
@ApiOperation("入账保存应付单的接口")
@PostMapping("/draftEntryBill")
@ResponseBody
@Override
public ResultBean draftEntryBill(APPayable APPayable) {
public ResultBean draftEntryBill(@RequestBody APPayable APPayable) {
return entryBillService.draftEntryBill(APPayable);
}
@ApiOperation("保存应收单的接口")
@PostMapping("/draftReceivableBill")
@ResponseBody
@Override
public ResultBean draftReceivableBill(ARReceivable aRReceivable) {
public ResultBean draftReceivableBill(@RequestBody ARReceivable aRReceivable) {
return receivableBillService.draftReceivableBill(aRReceivable);
}
@ApiOperation("保存付款单的接口")
@PostMapping("/draftApPayBill")
@ResponseBody
@Override
public ResultBean draftApPayBill(ApPayBill apPayBill) {
public ResultBean draftApPayBill(@RequestBody ApPayBill apPayBill) {
return apPayBillService.draftApPayBill(apPayBill);
}
@ApiOperation("保存采购入库单的接口")
@PostMapping("/draftStkInStock")
@ResponseBody
@Override
public ResultBean draftStkInStock(@RequestBody StkInStock stkInStock) {
return stkInStockService.draftStkInStock(stkInStock);
}
@ApiOperation("保存采购退料单的接口")
@PostMapping("/draftPurMrb")
@ResponseBody
@Override
public ResultBean draftPurMrb(@RequestBody PurMrb purMrb) {
return purMrbService.draftPurMrb(purMrb);
}
}

6
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/KingDeeSaveSKD.java

@ -88,7 +88,11 @@ public class KingDeeSaveSKD {
log.info(jsonParam.getData());
/*String ss="{\"formId\":\"AR_receivable\",\"data\":\"{\\\"Creator\\\":\\\"\\\",\\\"NeedUpDateFields\\\":[],\\\"NeedReturnFields\\\":[],\\\"IsDeleteEntry\\\":\\\"True\\\",\\\"SubSystemId\\\":\\\"\\\",\\\"IsVerifyBaseDataField\\\":\\\"false\\\",\\\"IsEntryBatchFill\\\":\\\"True\\\",\\\"ValidateFlag\\\":\\\"True\\\",\\\"NumberSearch\\\":\\\"True\\\",\\\"InterationFlags\\\":\\\"\\\",\\\"Model\\\":{\\\"FID\\\":0,\\\"FBillTypeID\\\":{\\\"FNUMBER\\\":\\\"YSD01_SYS\\\"},\\\"FDATE\\\":\\\"2022-08-02 00:00:00\\\",\\\"FISINIT\\\":false,\\\"FENDDATE_H\\\":\\\"2022-08-02 00:00:00\\\",\\\"FCUSTOMERID\\\":{\\\"FNumber\\\":\\\" JXYXB\\\"},\\\"FCURRENCYID\\\":{\\\"FNumber\\\":\\\"PRE001\\\"},\\\"FISPRICEEXCLUDETAX\\\":true,\\\"FSETTLEORGID\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FPAYORGID\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FSALEORGID\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FISTAX\\\":true,\\\"FCancelStatus\\\":\\\"A\\\",\\\"FBUSINESSTYPE\\\":\\\"BZ\\\",\\\"FSetAccountType\\\":\\\"1\\\",\\\"FISHookMatch\\\":false,\\\"FISINVOICEARLIER\\\":false,\\\"F_PMZC_Assistant2\\\":{\\\"FNumber\\\":\\\"01\\\"},\\\"FsubHeadSuppiler\\\":{\\\"FORDERID\\\":{\\\"FNumber\\\":\\\" JXYXB\\\"},\\\"FTRANSFERID\\\":{\\\"FNumber\\\":\\\" JXYXB\\\"},\\\"FChargeId\\\":{\\\"FNumber\\\":\\\" JXYXB\\\"}},\\\"FsubHeadFinc\\\":{\\\"FACCNTTIMEJUDGETIME\\\":\\\"2022-08-02 00:00:00\\\",\\\"FMAINBOOKSTDCURRID\\\":{\\\"FNumber\\\":\\\"PRE001\\\"},\\\"FEXCHANGETYPE\\\":{\\\"FNumber\\\":\\\"HLTX01_SYS\\\"},\\\"FExchangeRate\\\":1.0,\\\"FTaxAmountFor\\\":121.01,\\\"FNoTaxAmountFor\\\":12100.99},\\\"FEntityDetail\\\":[{\\\"FMATERIALID\\\":{\\\"FNumber\\\":\\\" JX091054\\\"},\\\"FMaterialDesc\\\":\\\"X牵引6*4-550超\\\",\\\"FPRICEUNITID\\\":{\\\"FNumber\\\":\\\"liang\\\"},\\\"FPriceQty\\\":1.0,\\\"FTaxPrice\\\":12222.0,\\\"FPrice\\\":12100.99,\\\"FEntryTaxRate\\\":1.0,\\\"FNoTaxAmountFor_D\\\":12100.99,\\\"FTAXAMOUNTFOR_D\\\":121.01,\\\"FALLAMOUNTFOR_D\\\":12222.0,\\\"FDeliveryControl\\\":false,\\\"FStockUnitId\\\":{\\\"FNumber\\\":\\\"liang\\\"},\\\"FStockQty\\\":1.0,\\\"FIsFree\\\":false,\\\"FStockBaseQty\\\":1.0,\\\"FSalUnitId\\\":{\\\"FNumber\\\":\\\"liang\\\"},\\\"FSalQty\\\":1.0,\\\"FSalBaseQty\\\":1.0,\\\"FPriceBaseDen\\\":1.0,\\\"FSalBaseNum\\\":1.0,\\\"FStockBaseNum\\\":1.0}],\\\"FEntityPlan\\\":[{\\\"FENDDATE\\\":\\\"2022-08-02 00:00:00\\\",\\\"FPAYRATE\\\":100.0,\\\"FPAYAMOUNTFOR\\\":12222.0}]}}\"}";
log.info("ss-:{}",ss);*/
/* String ss="{\"formId\":\"AP_PAYBILL\",\"data\":\"{\\\"Creator\\\":\\\"\\\",\\\"NeedUpDateFields\\\":[],\\\"NeedReturnFields\\\":[],\\\"IsDeleteEntry\\\":\\\"True\\\",\\\"SubSystemId\\\":\\\"\\\",\\\"IsVerifyBaseDataField\\\":\\\"false\\\",\\\"IsEntryBatchFill\\\":\\\"True\\\",\\\"ValidateFlag\\\":\\\"True\\\",\\\"NumberSearch\\\":\\\"True\\\",\\\"InterationFlags\\\":\\\"\\\",\\\"Model\\\":{\\\"FID\\\":0,\\\"FBillTypeID\\\":{\\\"FNUMBER\\\":\\\"FKDLX01_SYS\\\"},\\\"FDATE\\\":\\\"2022-08-10 00:00:00\\\",\\\"FCONTACTUNITTYPE\\\":\\\"BD_Supplier\\\",\\\"FCONTACTUNIT\\\":{\\\"FNumber\\\":\\\"010001\\\"},\\\"FRECTUNITTYPE\\\":\\\"BD_Supplier\\\",\\\"FRECTUNIT\\\":{\\\"FNumber\\\":\\\"010001\\\"},\\\"FISINIT\\\":false,\\\"FCURRENCYID\\\":{\\\"FNumber\\\":\\\"PRE001\\\"},\\\"FEXCHANGERATE\\\":1.0,\\\"FSETTLERATE\\\":1.0,\\\"FSETTLEORGID\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FPURCHASEORGID\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FPURCHASEDEPTID\\\":{\\\"FNumber\\\":\\\"05.04\\\"},\\\"FDOCUMENTSTATUS\\\":\\\"Z\\\",\\\"FCancelStatus\\\":\\\"A\\\",\\\"FPAYORGID\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FISSAMEORG\\\":true,\\\"FIsCredit\\\":false,\\\"FSETTLECUR\\\":{\\\"FNUMBER\\\":\\\"PRE001\\\"},\\\"FIsWriteOff\\\":false,\\\"FREALPAY\\\":false,\\\"F_PAEZ_Assistant\\\":{\\\"FNumber\\\":\\\"001\\\"},\\\"FPAYBILLENTRY\\\":[{\\\"FSETTLETYPEID\\\":{\\\"FNumber\\\":\\\"02\\\"},\\\"FPURPOSEID\\\":{\\\"FNumber\\\":\\\"SFKYT08_SYS\\\"},\\\"FPAYTOTALAMOUNTFOR\\\":1000.0,\\\"FPAYAMOUNTFOR_E\\\":1000.0,\\\"FSETTLEPAYAMOUNTFOR\\\":1000.0,\\\"FREALPAYAMOUNTFOR_D\\\":1000.0,\\\"FPAYAMOUNT_E\\\":1000.0,\\\"FACCOUNTID\\\":{\\\"FNumber\\\":\\\"100473861600010002\\\"},\\\"FPOSTDATE\\\":\\\"2022-08-10 00:00:00\\\",\\\"FRuZhangType\\\":\\\"1\\\",\\\"FPayType\\\":\\\"A\\\"}]}}\"}";
/* String ss="{\"formId\":\"AP_PAYBILL\",\"data\":\"{\\\"Creator\\\":\\\"\\\",\\\"NeedUpDateFields\\\":[],\\\"NeedReturnFields\\\":[],\\\"IsDeleteEntry\\\":\\\"True\\\",\\\"SubSystemId\\\":\\\"\\\",\\\"IsVerifyBaseDataField\\\":\\\"false\\\",\\\"IsEntryBatchFill\\\":\\\"True\\\",\\\"ValidateFlag\\\":\\\"True\\\",\\\"NumberSearch\\\":\\\"True\\\",\\\"InterationFlags\\\":\\\"\\\",\\\"Model\\\":{\\\"FID\\\":0,\\\"FBillTypeID\\\":{\\\"FNUMBER\\\":\\\"FKDLX01_SYS\\\"},\\\"FDATE\\\":\\\"2022-08-10 00:00:00\\\",\\\"FCONTACTUNITTYPE\\\":\\\"BD_Supplier\\\",\\\"FCONTACTUNIT\\\":{\\\"FNumber\\\":\\\"010001\\\"},\\\"FRECTUNITTYPE\\\":\\\"BD_Supplier\\\",\\\"FRECTUNIT\\\":{\\\"FNumber\\\":\\\"010001\\\"},\\\"FISINIT\\\":false,\\\"FCURRENCYID\\\":{\\\"FNumber\\\":\\\"PRE001\\\"},\\\"FEXCHANGERATE\\\":1.0,\\\"FSETTLERATE\\\":1.0,\\\"FSETTLEORGID\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FPURCHASEORGID\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FPURCHASEDEPTID\\\":{\\\"FNumber\\\":\\\"05.04\\\"},\\\"FDOCUMENTSTATUS\\\":\\\"Z\\\",\\\"FCancelStatus\\\":\\\"A\\\",\\\"FPAYORGID\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FISSAMEORG\\\":true,\\\"FIsCredit\\\":false,\\\"FSETTLECUR\\\":{\\\"FNUMBER\\\":\\\"PRE001\\\"},\\\"FIsWriteOff\\\":false,\\\"FREALPAY\\\":false,\\\"F_PAEZ_Assistant\\\":{\\\"FNumber\\\":\\\"001\\\"},\\\"FPAYBILLENTRY\\\":[{\\\"FSETTLETYPEID\\\":{\\\"FNumber\\\":\\\"02\\\"},\\\"FPURPOSEID\\\":{\\\"FNumber\\\":\\\"SFKYT08_SYS\\\"},\\\"FPAYTOTALAMOUNTFOR\\\":1000.0,\\\"FPAYAMOUNTFOR_E\\\":1000.0,\\\"FSETTLEPAYAMOUNTFOR\\\":1000.0,\\\"FREALPAYAMOUNTFOR_D\\\":1000.0,\\\"FPAYAMOUNT_E\\\":1000.0,\\\"FACCOUNTID\\\":{\\\"FNumber\\\":\\\"100473861600010002\\\"},\\\"FPOSTDATE\\\":\\\"2022-08-10 00:00:00\\\",\\\"FRuZhangType\\\":\\\"1\\\",\\\"FPayType\\\":\\\"A\\\"}]}}\"}";
log.info("ss-:{}",ss);*/
/*String ss="{\"formId\":\"STK_InStock\",\"data\":\"{\\\"Creator\\\":\\\"\\\",\\\"NeedUpDateFields\\\":[],\\\"NeedReturnFields\\\":[],\\\"IsDeleteEntry\\\":\\\"True\\\",\\\"SubSystemId\\\":\\\"\\\",\\\"IsVerifyBaseDataField\\\":\\\"false\\\",\\\"IsEntryBatchFill\\\":\\\"True\\\",\\\"ValidateFlag\\\":\\\"True\\\",\\\"NumberSearch\\\":\\\"True\\\",\\\"InterationFlags\\\":\\\"\\\",\\\"Model\\\":{\\\"FID\\\":0,\\\"FBillTypeID\\\":{\\\"FNUMBER\\\":\\\"RKD01_SYS\\\"},\\\"FDate\\\":\\\"2022-08-12 00:00:00\\\",\\\"FStockOrgId\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FDemandOrgId\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FPurchaseOrgId\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FPurchaseDeptId\\\":{\\\"FNumber\\\":\\\"05.04\\\"},\\\"FSupplierId\\\":{\\\"FNumber\\\":\\\"010001\\\"},\\\"FSupplyId\\\":{\\\"FNumber\\\":\\\"010001\\\"},\\\"FSettleId\\\":{\\\"FNumber\\\":\\\"010001\\\"},\\\"FChargeId\\\":{\\\"FNumber\\\":\\\"010001\\\"},\\\"FOwnerTypeIdHead\\\":\\\"BD_OwnerOrg\\\",\\\"FOwnerIdHead\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FInStockFin\\\":{\\\"FSettleOrgId\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FSettleCurrId\\\":{\\\"FNumber\\\":\\\"PRE001\\\"},\\\"FIsIncludedTax\\\":true,\\\"FPriceTimePoint\\\":\\\"1\\\",\\\"FLocalCurrId\\\":{\\\"FNumber\\\":\\\"PRE001\\\"},\\\"FExchangeTypeId\\\":{\\\"FNumber\\\":\\\"HLTX01_SYS\\\"},\\\"FExchangeRate\\\":1.0,\\\"FISPRICEEXCLUDETAX\\\":true},\\\"FInStockEntry\\\":[{\\\"FRowType\\\":\\\"Standard\\\",\\\"FMaterialId\\\":{\\\"FNumber\\\":\\\" JX091054\\\"},\\\"FUnitID\\\":{\\\"FNumber\\\":\\\"liang\\\"},\\\"FRealQty\\\":1.0,\\\"FPriceUnitID\\\":{\\\"FNumber\\\":\\\"liang\\\"},\\\"FLot\\\": {\\\"FNumber\\\": \\\"1234567890\\\"},\\\"FStockId\\\":{\\\"FNumber\\\":\\\"CK001\\\"},\\\"FTaxPrice\\\":1000.0,\\\"FPrice\\\":1000.0,\\\"FStockStatusId\\\":{\\\"FNumber\\\":\\\"KCZT01_SYS\\\"},\\\"FGiveAway\\\":false,\\\"FCheckInComing\\\":false,\\\"FIsReceiveUpdateStock\\\":false,\\\"FPriceBaseQty\\\":1.0,\\\"FRemainInStockUnitId\\\":{\\\"FNumber\\\":\\\"liang\\\"},\\\"FBILLINGCLOSE\\\":false,\\\"FRemainInStockQty\\\":1.0,\\\"FAPNotJoinQty\\\":1.0,\\\"FRemainInStockBaseQty\\\":1.0}]}}\"}";
log.info("ss-:{}",ss);*/
/*String ss="{\"formId\":\"PUR_MRB\",\"data\":\"{\\\"Creator\\\":\\\"\\\",\\\"NeedUpDateFields\\\":[],\\\"NeedReturnFields\\\":[],\\\"IsDeleteEntry\\\":\\\"True\\\",\\\"SubSystemId\\\":\\\"\\\",\\\"IsVerifyBaseDataField\\\":\\\"false\\\",\\\"IsEntryBatchFill\\\":\\\"True\\\",\\\"ValidateFlag\\\":\\\"True\\\",\\\"NumberSearch\\\":\\\"True\\\",\\\"InterationFlags\\\":\\\"\\\",\\\"Model\\\":{\\\"FID\\\":0,\\\"FBillTypeID\\\":{\\\"FNUMBER\\\":\\\"TLD01_SYS\\\"},\\\"FDate\\\":\\\"2022-08-12 00:00:00\\\",\\\"FMRTYPE\\\":\\\"B\\\",\\\"FMRMODE\\\":\\\"A\\\",\\\"FStockOrgId\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FRequireOrgId\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FPurchaseOrgId\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FSupplierID\\\":{\\\"FNumber\\\":\\\"010001\\\"},\\\"FACCEPTORID\\\":{\\\"FNumber\\\":\\\"010001\\\"},\\\"FSettleId\\\":{\\\"FNumber\\\":\\\"010001\\\"},\\\"FCHARGEID\\\":{\\\"FNumber\\\":\\\"010001\\\"},\\\"FOwnerTypeIdHead\\\":\\\"BD_OwnerOrg\\\",\\\"FOwnerIdHead\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FPURMRBFIN\\\":{\\\"FSettleOrgId\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FSettleCurrId\\\":{\\\"FNumber\\\":\\\"PRE001\\\"},\\\"FIsIncludedTax\\\":true,\\\"FPRICETIMEPOINT\\\":\\\"1\\\",\\\"FLOCALCURRID\\\":{\\\"FNumber\\\":\\\"PRE001\\\"},\\\"FEXCHANGETYPEID\\\":{\\\"FNumber\\\":\\\"HLTX01_SYS\\\"},\\\"FEXCHANGERATE\\\":1.0,\\\"FISPRICEEXCLUDETAX\\\":true},\\\"FPURMRBENTRY\\\":[{\\\"FRowType\\\":\\\"Standard\\\",\\\"FMATERIALID\\\":{\\\"FNumber\\\":\\\" JX091054\\\"},\\\"FMaterialDesc\\\":\\\"X牵引6*4-550超\\\",\\\"FUnitID\\\":{\\\"FNumber\\\":\\\"liang\\\"},\\\"Flot\\\":{\\\"FNumber\\\":\\\"liang\\\"},\\\"FRMREALQTY\\\":1.0,\\\"FREPLENISHQTY\\\":1.0,\\\"FKEAPAMTQTY\\\":1.0,\\\"FPRICEUNITID\\\":{\\\"FNumber\\\":\\\"liang\\\"},\\\"FSTOCKID\\\":{\\\"FNumber\\\":\\\"CK001\\\"},\\\"FStockStatusId\\\":{\\\"FNumber\\\":\\\"KCZT01_SYS\\\"},\\\"FIsReceiveUpdateStock\\\":false,\\\"FGiveAway\\\":false,\\\"FPriceBaseQty\\\":1.0,\\\"FCarryUnitId\\\":{\\\"FNumber\\\":\\\"liang\\\"},\\\"FCarryQty\\\":1.0,\\\"FCarryBaseQty\\\":1.0,\\\"FBILLINGCLOSE\\\":false,\\\"FIsStock\\\":false}]}}\"}";
log.info("ss-:{}",ss);*/
StringEntity entity = new StringEntity(jsonParam.getData(), "utf-8");
log.info(JSON.toJSONString(entity));

1
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appaybill/ApPayBillService.java

@ -51,6 +51,7 @@ public class ApPayBillService extends FinKingDeeService {
}
return rb;
}
/**
* 准备 物料列表的数据 ApPayBill
*/

64
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/purmrb/PurMrbCastToKingDeeBillFields.java

@ -0,0 +1,64 @@
package com.yxt.anrui.fin.biz.kingdee.purmrb;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.parser.Feature;
import com.yxt.anrui.fin.biz.kingdee.KingDeeUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 封装转换的类
*/
public class PurMrbCastToKingDeeBillFields {
private static Logger log=LoggerFactory.getLogger(PurMrbCastToKingDeeBillFields.class);
/**
* 构造金蝶需要的数据结构 并对字段赋值
*
* @param map_fEntityModel_
* @param vehicleList
* @return
*/
public static String getKingDeeData(Map<String,String> map_fEntityModel_,List<Map<String,String>> vehicleList){
/**
* 取模板
*/
String readJsonFile = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/purmrb/data.json");
String fEntityData_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/purmrb/data_data.json");
String fEntityModel_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/purmrb/data_model.json");
String fPURMRBENTRY_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/purmrb/data_FPURMRBENTRY.json");
log.info("readJsonFile:{}",readJsonFile);
log.info("fEntityData_:{}",fEntityData_);
log.info("fEntityModel_:{}",fEntityModel_);
log.info("fPURMRBENTRY_:{}",fPURMRBENTRY_);
//模板字符创转json
JSONObject jsonObj= JSONObject.parseObject(readJsonFile, Feature.OrderedField);
JSONObject jsonFEntityData_= JSONObject.parseObject(fEntityData_,Feature.OrderedField);
fEntityModel_ =KingDeeUtils.replaceTemplateParams(fEntityModel_, map_fEntityModel_);
JSONObject jsonFEntityModel_= JSONObject.parseObject(fEntityModel_,Feature.OrderedField);
List<JSONObject> list_fEntityDetail_=new ArrayList<>();
//对模板字段赋值 根据传递进来的map数据的集合进行赋值
for(int i=0;i<vehicleList.size();i++){
Map<String,String> params=vehicleList.get(i);
Map<String,String> map_fEntityDetail_=new HashMap<>();
for (Map.Entry<String, String> entry : params.entrySet()) {
map_fEntityDetail_.put(entry.getKey(),entry.getValue());
}
fPURMRBENTRY_ =KingDeeUtils.replaceTemplateParams(fPURMRBENTRY_, map_fEntityDetail_);
list_fEntityDetail_.add(JSONObject.parseObject(fPURMRBENTRY_,Feature.OrderedField));
}
jsonFEntityModel_.put("FPURMRBENTRY", JSONArray.parseArray(JSON.toJSONString(list_fEntityDetail_)));
jsonFEntityData_.put("Model",JSONObject.parseObject(JSON.toJSONString(jsonFEntityModel_),Feature.OrderedField));
jsonObj.put("data",jsonFEntityData_.toJSONString());
return jsonObj.toJSONString();
}
}

79
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/purmrb/PurMrbService.java

@ -0,0 +1,79 @@
package com.yxt.anrui.fin.biz.kingdee.purmrb;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.fin.api.kingdee.KingDeeBillId;
import com.yxt.anrui.fin.api.kingdee.purmrb.PurMrb;
import com.yxt.anrui.fin.api.kingdee.stkinstock.StkInStock;
import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService;
import com.yxt.common.core.result.ResultBean;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class PurMrbService extends FinKingDeeService {
/**
* 保存采购入库单
* @param purMrb
* @return
*/
public ResultBean draftPurMrb(PurMrb purMrb) {
// purMrb=PurMrb.createPurMrb();
ResultBean rb=ResultBean.fireFail();
//业务表的主表数据集合
Map<String,String> map_fEntityModel_=new HashMap<>();
//业务日期
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(purMrb);
List<PurMrb.FPURMRBENTRY> fpurmrbentry = purMrb.getFPURMRBENTRY();
for (Map.Entry<String, Object> entry : stringObjectMap.entrySet()) {
if (entry.getValue() instanceof String) {
map_fEntityModel_.put(entry.getKey(), (String) entry.getValue());
}else if(entry.getValue() instanceof Double){
map_fEntityModel_.put(entry.getKey(), entry.getValue().toString());
}
}
//准备 物料列表的数据 ForEntryBill
ResultBean<List<Map<String, String>>> vehicleListMap = createVehicleListsForPurMrb(fpurmrbentry);
if(!vehicleListMap.getSuccess()){
return rb.setMsg(vehicleListMap.getMsg());
}
String kingDeeData = PurMrbCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_,vehicleListMap.getData());
try {
return saveBill(KingDeeBillId.PUR_MRB.getID(),kingDeeData);
} catch (Exception e) {
e.printStackTrace();
}
return rb;
}
/**
* 准备 物料列表的数据 StkInStock
*/
private ResultBean<List<Map<String, String>>>
createVehicleListsForPurMrb( List<PurMrb.FPURMRBENTRY> vehicleList) {
ResultBean<List<Map<String, String>>> rb=ResultBean.fireFail();
//物料的数组集合
List<Map<String,String>> vehicleListMap=new ArrayList<>();
for(int i = 0; i< vehicleList.size(); i++){
PurMrb.FPURMRBENTRY f= vehicleList.get(i);
Map<String,String> m=new HashMap<>();
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(f);
for (Map.Entry<String, Object> entry : stringObjectMap.entrySet()) {
if (entry.getValue() instanceof String) {
log.info("String key:{},value:{}",entry.getKey(),(String) entry.getValue());
m.put(entry.getKey(), (String) entry.getValue());
}else if(entry.getValue() instanceof Double){
log.info("Double key:{},value:{}",entry.getKey(),entry.getValue());
m.put(entry.getKey(), entry.getValue().toString());
}
}
vehicleListMap.add(m);
}
return rb.success().setData(vehicleListMap);
}
}

4
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/purmrb/data.json

@ -0,0 +1,4 @@
{
"formId": "PUR_MRB",
"data": "@KD_data"
}

35
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/purmrb/data_FPURMRBENTRY.json

@ -0,0 +1,35 @@
{
"FRowType": "Standard",
"FMATERIALID": {
"FNumber": "@KD_FMATERIALID"
},
"FMaterialDesc": "@KD_FMaterialDesc",
"FUnitID": {
"FNumber": "@KD_FUnitID"
},
"FLot": {
"FNumber": "@KD_Flot"
},
"FRMREALQTY": @KD_FRMREALQTY,
"FREPLENISHQTY": @KD_FREPLENISHQTY,
"FKEAPAMTQTY": @KD_FKEAPAMTQTY,
"FPRICEUNITID": {
"FNumber": "@KD_FPRICEUNITID"
},
"FSTOCKID": {
"FNumber": "@KD_FSTOCKID"
},
"FStockStatusId": {
"FNumber": "@KD_FStockStatusId"
},
"FIsReceiveUpdateStock": false,
"FGiveAway": false,
"FPriceBaseQty": @KD_FPriceBaseQty,
"FCarryUnitId": {
"FNumber": "@KD_FCarryUnitId"
},
"FCarryQty": @KD_FCarryQty,
"FCarryBaseQty": @KD_FCarryBaseQty,
"FBILLINGCLOSE": false,
"FIsStock": false
}

13
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/purmrb/data_data.json

@ -0,0 +1,13 @@
{
"Creator": "",
"NeedUpDateFields": [],
"NeedReturnFields": [],
"IsDeleteEntry": "True",
"SubSystemId": "",
"IsVerifyBaseDataField": "false",
"IsEntryBatchFill": "True",
"ValidateFlag": "True",
"NumberSearch": "True",
"InterationFlags": "",
"Model": {}
}

53
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/purmrb/data_model.json

@ -0,0 +1,53 @@
{
"FID": 0,
"FBillTypeID": {
"FNUMBER": "TLD01_SYS"
},
"FDate": "@KD_FDate",
"FMRTYPE": "B",
"FMRMODE": "A",
"FStockOrgId": {
"FNumber": "@KD_FStockOrgId"
},
"FRequireOrgId": {
"FNumber": "@KD_FRequireOrgId"
},
"FPurchaseOrgId": {
"FNumber": "@KD_FPurchaseOrgId"
},
"FSupplierID": {
"FNumber": "@KD_FSupplierID"
},
"FACCEPTORID": {
"FNumber": "@KD_FACCEPTORID"
},
"FSettleId": {
"FNumber": "@KD_FSettleId"
},
"FCHARGEID": {
"FNumber": "@KD_FCHARGEID"
},
"FOwnerTypeIdHead": "BD_OwnerOrg",
"FOwnerIdHead": {
"FNumber": "@KD_FOwnerIdHead"
},
"FPURMRBFIN": {
"FSettleOrgId": {
"FNumber": "@KD_FSettleOrgId"
},
"FSettleCurrId": {
"FNumber": "PRE001"
},
"FIsIncludedTax": true,
"FPRICETIMEPOINT": "1",
"FLOCALCURRID": {
"FNumber": "PRE001"
},
"FEXCHANGETYPEID": {
"FNumber": "HLTX01_SYS"
},
"FEXCHANGERATE": 1.0,
"FISPRICEEXCLUDETAX": true
},
"FPURMRBENTRY": []
}

242
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/purmrb/remarks.txt

@ -0,0 +1,242 @@
一、请求参数说明:
1.formid:业务对象表单Id,字符串类型(必录)
2.data:Json格式数据(详情参考Json格式数据)(必录)
2.1.Creator:创建者内码(非必录)
2.2.NeedUpDateFields:需要更新的字段,数组类型,格式:[key1,key2,...](非必录),注(更新单据体字段得加上单据体key)
2.3.NeedReturnFields:需返回结果的字段集合,数组类型,格式:[key,entitykey.key,...](非必录),注(返回单据体字段格式:entitykey.key)
2.4.IsDeleteEntry:是否删除已存在的分录,布尔类型,默认true(非必录)
2.5.SubSystemId:表单所在的子系统内码,字符串类型(非必录)
2.6.IsVerifyBaseDataField:是否验证所有的基础资料有效性,布尔类,默认false(非必录)
2.7.IsEntryBatchFill:是否批量填充分录,默认true(非必录)
2.8.ValidateFlag:是否验证标志,布尔类型,默认true(非必录)
2.9.NumberSearch:是否用编码搜索基础资料,布尔类型,默认true(非必录)
2.10.InterationFlags:交互标志集合,字符串类型,分号分隔,格式:"flag1;flag2;..."(非必录),例如(允许负库存标识:STK_InvCheckResult)
2.11.Model:表单数据包,Json类型(必录)
五、字段说明:
关联数量(基本单位):FBASEJOINQTY
辅助属性:FAuxPropID
库存辅单位:FAUXUNITID
基本单位:FBASEUNITID
基本补料数量:FBaseReplayQty
源单类型:FSRCBillTypeId
源单编号:FSRCBillNo
仓位:FSTOCKLOCID
基本单位单价:FBaseUnitPrice
库存辅单位数量:FAUXUNITQTY
库存基本数量:FBASEUNITQTY
保管者:FKEEPERID
库存更新标识:FSTOCKFLAG
关联数量:FJOINQTY
计价单位:FPRICEUNITID (必填项)
库存单位:FUnitID (必填项)
实退数量:FRMREALQTY
应退数量:FRMMUSTQTY
采购数量(基本单位):FBasePOQty
保质期单位:FExpUnit
材料成本:FMaterialCosts
批号:FLot
保质期:FExpPeriod
单价:FPrice
金额:FAmount
在架寿命期:FSHELFLIFE
供应商批号:FSupplierLot
已钩稽数量:FJOINEDQTY
未钩稽数量:FUNJOINQTY
采购费用:FPurCost
已开票数量:FINVOICEDQTY
已钩稽金额:FJOINEDAMOUNT
钩稽状态:FJOINSTATUS
加工费:FProcessFee
未钩稽金额:FUNJOINAMOUNT
完全钩稽:FFULLYJOINED
需求跟踪号:FREQTRACENO
订单单号:FORDERNO
到期日:FEXPIRYDATE
合同单号:FCONTRACTNO
计价数量:FPRICEUNITQTY
系统定价:FSYSPRICE
价格系数:FPRICECOEFFICIENT
成本价:FCostPrice
含税单价:FTAXPRICE
补料数量:FREPLENISHQTY
扣款数量:FKEAPAMTQTY
规格型号:FMateriaModel
物料类别:FMateriaType
仓库:FSTOCKID
BOM版本:FBOMID
生产日期:FProduceDate
库存状态:FStockStatusId
备注:FNOTE
不含税扣款金额:FKEAPEXCLTAXAMT
总成本(本位币):FCOSTAMOUNT_LC
不含税补料金额:FREPLENISHEXCLTAXAMT
含税扣款金额:FKEAPINCLTAXAMT
税额(本位币):FTAXAMOUNT_LC
货主:FOWNERID
保管者类型:FKEEPERTYPEID
价税合计(本位币):FALLAMOUNT_LC
货主类型:FOWNERTYPEID
折扣率(%):FDISCOUNTRATE
净价:FTAXNETPRICE
价格上限:FUPPRICE
价格下限:FDOWNPRICE
总成本:FENTRYCOSTAMOUNT
价税合计:FALLAMOUNT
含税补料金额:FREPLENISHINCLTAXAMT
税率:FENTRYTAXRATE
税额:FENTRYTAXAMOUNT
应付关闭日期:FPAYABLECLOSEDATE
应付关闭状态:FPayableCloseStatus
未关联应付数量(计价单位):FAPNOTJOINQTY
关联应付金额:FAPJOINAMOUNT
收料辅序子单据体内码:FRECSUBENTRYID
行标识:FRowId
父行标识:FParentRowId
产品类型:FRowType
父项产品:FParentMatId
库存基本分母:FSTOCKBASEDEN
携带的主业务单位:FSRCBIZUNITID
立账关闭:FBILLINGCLOSE
采购基本分子:FPURBASENUM
关联应付数量(库存基本):FStockBaseAPJoinQty
采购订单分录内码:FPOORDERENTRYID
分录价目表:FPriceListEntry
关联数量(采购基本):FBASEPURJOINQTY
成本价(本位币):FCOSTPRICE_LC
计入成本金额:FTaxCostAmount
增值税:FVAT
税额:FTaxAmount
计入成本比例%:FCostPercent
卖方代扣代缴:FSellerWithholding
序列号:FSerialId
备注:FSerialNote
买方代扣代缴:FBuyerWithholding
序列号:FSerialNo
材料成本(本位币):FMaterialCosts_LC
费用代码:FCostId
第三方单据分录ID:FTHIRDENTRYID
加工费(本位币):FProcessFee_LC
费用名称:FCostName
税率名称:FTaxRateId
税率%:FTaxRate
金额:FCostAmount
备注:FCostNOTE
收料批号:FReceiveLot
订单需求组织:FPoRequireOrgId
收料仓位:FReceiveStockLocId
收料库存更新标志:FReceiveStockFlag
收料辅助属性:FReceiveAuxPropId
项目编号:FProjectNo
销售退货关联数量:FJoinSalReturnQty
源单行号:FSRCSeq
计划跟踪号:FMtoNo
税组合:FTaxCombination
物料说明:FMaterialDesc
金额(本位币):FAmount_LC
折扣额:FDiscount
关联应付数量(计价基本):FBaseAPJoinQty
收料仓库:FReceiveStockId
收料库存状态:FReceiveStockStatusId
业务流程:FBFLowId
扣款数量(基本单位):FBaseKeapamtQty
收料计划跟踪号:FReceiveMtoNo
是否赠品:FGiveAway
辅单位:FExtAuxUnitId
实退数量(辅单位):FExtAuxUnitQty
计价基本数量:FPriceBaseQty
采购数量:FCarryQty
采购基本数量:FCarryBaseQty
定价单位:FSetPriceUnitID
采购单位:FCarryUnitId (必填项)
序列号单位:FSNUnitID
序列号单位数量:FSNQty
基本单位关联销售退货数量:FBaseJoinSalReturnQty
费用项目:FChargeProjectID
关联退货数量(辅单位):FSECJOINSALRETURNQTY
开票结束状态:FInvoicedStatus
已开票关联数量:FInvoicedJoinQty
是否可库存:FIsStock
收料更新库存:FIsReceiveUpdateStock
接收方联系人(旧):FACCEPTCONTACTID
接收方:FACCEPTORID
作废状态:FCancelStatus
结算方:FSettleId
业务类型:FBusinessType
跨组织业务类型:FTransferBizType
对应组织:FCorrespondOrgId
接收方地址:FAcceptAddress
应付状态:FAPSTATUS
需求组织:FRequireOrgId (必填项)
收款方:FCHARGEID
采购组:FPURCHASERGROUPID
退料部门:FMRDeptId
供应商:FSupplierID (必填项)
采购员:FPURCHASERID
采购部门:FPURCHASEDEPTID
送货单号:FDELIVERYNO
采购组织:FPurchaseOrgId (必填项)
备注:FDESCRIPTION
承运商:FCarrierID
退料组织:FStockOrgId (必填项)
退料日期:FDate (必填项)
单据编号:FBillNo
单据状态:FDocumentStatus
单据类型:FBillTypeID (必填项)
提货单号:FTAKEDELIVERYNO
库存组:FSTOCKERGROUPID
货主类型:FOwnerTypeIdHead (必填项)
货主:FOwnerIdHead (必填项)
作废人:FCancelerId
作废日期:FCancelDate
创建人:FCreatorId
审核人:FApproverId
运输单号:FCARRYNO
退料方式:FMRMODE (必填项)
退料原因:FMRREASON
仓管员:FSTOCKERID
退料类型:FMRTYPE (必填项)
补料方式:FREPLENISHMODE
最后修改人:FModifierId
审核日期:FApproveDate
创建日期:FCreateDate
最后修改日期:FModifyDate
税额:FBILLTAXAMOUNT
总成本:FBILLCOSTAMOUNT
付款条件:FPAYCONDITIONID
结算币别:FSettleCurrId (必填项)
价税合计:FBILLALLAMOUNT
折扣表:FDISCOUNTLISTID
汇率:FEXCHANGERATE
汇率类型:FEXCHANGETYPEID
价目表:FPRICELISTID
接收方联系人:FAcceptorContactID
扫描点:FScanPoint
确认状态:FConfirmStatus
结算组织:FSettleOrgId (必填项)
结算方式:FSETTLETYPEID
付款组织:FPayOrgId
价外税:FISPRICEEXCLUDETAX
先到票后入库:FISINVOICEARLIER
货主客户:FOwnerCustomerID
结算组织供应商:FSettleSupplierID
第三方来源:FTHIRDSRCTYPE
物料编码:FMATERIALID (必填项)
物料名称:FMaterialName
第三方单据ID:FTHIRDBILLID
第三方单据编号:FTHIRDBILLNO
价税合计(本位币):FBILLALLAMOUNT_LC
税额(本位币):FBILLTAXAMOUNT_LC
定价时点:FPRICETIMEPOINT (必填项)
本位币:FLOCALCURRID
总成本(本位币):FBILLCOSTAMOUNT_LC
金额(本位币):FBillAmount_LC
跨组织结算生成:FISGENFORIOS
含税:FIsIncludedTax
金额:FBillAmount
组织间结算跨法人标识:FIsInterLegalPerson
创建日期偏移单位:FCDateOffsetUnit
序列号上传:FScanBox
创建日期偏移量:FCDateOffsetValue
确认人:FConfirmerId
确认日期:FConfirmDate

0
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/purmrb/testParams.txt

1
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/purmrb/webapi测试的数据.txt

@ -0,0 +1 @@
"{\"formId\":\"PUR_MRB\",\"data\":\"{\\\"Creator\\\":\\\"\\\",\\\"NeedUpDateFields\\\":[],\\\"NeedReturnFields\\\":[],\\\"IsDeleteEntry\\\":\\\"True\\\",\\\"SubSystemId\\\":\\\"\\\",\\\"IsVerifyBaseDataField\\\":\\\"false\\\",\\\"IsEntryBatchFill\\\":\\\"True\\\",\\\"ValidateFlag\\\":\\\"True\\\",\\\"NumberSearch\\\":\\\"True\\\",\\\"InterationFlags\\\":\\\"\\\",\\\"Model\\\":{\\\"FID\\\":0,\\\"FBillTypeID\\\":{\\\"FNUMBER\\\":\\\"TLD01_SYS\\\"},\\\"FDate\\\":\\\"2022-08-12 00:00:00\\\",\\\"FMRTYPE\\\":\\\"B\\\",\\\"FMRMODE\\\":\\\"A\\\",\\\"FStockOrgId\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FRequireOrgId\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FPurchaseOrgId\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FSupplierID\\\":{\\\"FNumber\\\":\\\"010001\\\"},\\\"FACCEPTORID\\\":{\\\"FNumber\\\":\\\"010001\\\"},\\\"FSettleId\\\":{\\\"FNumber\\\":\\\"010001\\\"},\\\"FCHARGEID\\\":{\\\"FNumber\\\":\\\"010001\\\"},\\\"FOwnerTypeIdHead\\\":\\\"BD_OwnerOrg\\\",\\\"FOwnerIdHead\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FPURMRBFIN\\\":{\\\"FSettleOrgId\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FSettleCurrId\\\":{\\\"FNumber\\\":\\\"PRE001\\\"},\\\"FIsIncludedTax\\\":true,\\\"FPRICETIMEPOINT\\\":\\\"1\\\",\\\"FLOCALCURRID\\\":{\\\"FNumber\\\":\\\"PRE001\\\"},\\\"FEXCHANGETYPEID\\\":{\\\"FNumber\\\":\\\"HLTX01_SYS\\\"},\\\"FEXCHANGERATE\\\":1.0,\\\"FISPRICEEXCLUDETAX\\\":true},\\\"FPURMRBENTRY\\\":[{\\\"FRowType\\\":\\\"Standard\\\",\\\"FMATERIALID\\\":{\\\"FNumber\\\":\\\" JX091054\\\"},\\\"FMaterialDesc\\\":\\\"X牵引6*4-550超\\\",\\\"FUnitID\\\":{\\\"FNumber\\\":\\\"liang\\\"},\\\"Flot\\\":{\\\"FNumber\\\":\\\"liang\\\"},\\\"FRMREALQTY\\\":1.0,\\\"FREPLENISHQTY\\\":1.0,\\\"FKEAPAMTQTY\\\":1.0,\\\"FPRICEUNITID\\\":{\\\"FNumber\\\":\\\"liang\\\"},\\\"FSTOCKID\\\":{\\\"FNumber\\\":\\\"CK001\\\"},\\\"FStockStatusId\\\":{\\\"FNumber\\\":\\\"KCZT01_SYS\\\"},\\\"FIsReceiveUpdateStock\\\":false,\\\"FGiveAway\\\":false,\\\"FPriceBaseQty\\\":1.0,\\\"FCarryUnitId\\\":{\\\"FNumber\\\":\\\"liang\\\"},\\\"FCarryQty\\\":1.0,\\\"FCarryBaseQty\\\":1.0,\\\"FBILLINGCLOSE\\\":false,\\\"FIsStock\\\":false}]}}\"}";

BIN
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/purmrb/采购退料单的参数必填备注.xlsx

Binary file not shown.

66
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/STKInStockCastToKingDeeBillFields.java

@ -0,0 +1,66 @@
package com.yxt.anrui.fin.biz.kingdee.stkinstock;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.parser.Feature;
import com.yxt.anrui.fin.biz.kingdee.KingDeeUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 封装转换的类
*/
public class STKInStockCastToKingDeeBillFields {
private static Logger log=LoggerFactory.getLogger(STKInStockCastToKingDeeBillFields.class);
/**
* 构造金蝶需要的数据结构 并对字段赋值
*
* @param map_fEntityModel_
* @param vehicleList
* @return
*/
public static String getKingDeeData(Map<String,String> map_fEntityModel_,List<Map<String,String>> vehicleList){
/**
* 取模板
*/
String readJsonFile = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/stkinstock/data.json");
String fEntityData_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/stkinstock/data_data.json");
String fEntityModel_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/stkinstock/data_model.json");
String fInStockEntry_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/stkinstock/data_FInStockEntry.json");
log.info("readJsonFile:{}",readJsonFile);
log.info("fEntityData_:{}",fEntityData_);
log.info("fEntityModel_:{}",fEntityModel_);
log.info("fInStockEntry_:{}",fInStockEntry_);
//模板字符创转json
JSONObject jsonObj= JSONObject.parseObject(readJsonFile, Feature.OrderedField);
JSONObject jsonFEntityData_= JSONObject.parseObject(fEntityData_,Feature.OrderedField);
fEntityModel_ =KingDeeUtils.replaceTemplateParams(fEntityModel_, map_fEntityModel_);
JSONObject jsonFEntityModel_= JSONObject.parseObject(fEntityModel_,Feature.OrderedField);
List<JSONObject> list_fEntityDetail_=new ArrayList<>();
//对模板字段赋值 根据传递进来的map数据的集合进行赋值
for(int i=0;i<vehicleList.size();i++){
Map<String,String> params=vehicleList.get(i);
Map<String,String> map_fEntityDetail_=new HashMap<>();
for (Map.Entry<String, String> entry : params.entrySet()) {
map_fEntityDetail_.put(entry.getKey(),entry.getValue());
}
fInStockEntry_ =KingDeeUtils.replaceTemplateParams(fInStockEntry_, map_fEntityDetail_);
list_fEntityDetail_.add(JSONObject.parseObject(fInStockEntry_,Feature.OrderedField));
}
jsonFEntityModel_.put("FInStockEntry", JSONArray.parseArray(JSON.toJSONString(list_fEntityDetail_)));
jsonFEntityData_.put("Model",JSONObject.parseObject(JSON.toJSONString(jsonFEntityModel_),Feature.OrderedField));
jsonObj.put("data",jsonFEntityData_.toJSONString());
return jsonObj.toJSONString();
}
}

79
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/STKInStockService.java

@ -0,0 +1,79 @@
package com.yxt.anrui.fin.biz.kingdee.stkinstock;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.fin.api.kingdee.KingDeeBillId;
import com.yxt.anrui.fin.api.kingdee.appaybill.ApPayBill;
import com.yxt.anrui.fin.api.kingdee.stkinstock.StkInStock;
import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService;
import com.yxt.common.core.result.ResultBean;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class STKInStockService extends FinKingDeeService {
/**
* 保存采购入库单
* @param stkInStock
* @return
*/
public ResultBean draftStkInStock(StkInStock stkInStock) {
stkInStock=StkInStock.createStkInStock();
ResultBean rb=ResultBean.fireFail();
//业务表的主表数据集合
Map<String,String> map_fEntityModel_=new HashMap<>();
//业务日期
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(stkInStock);
List<StkInStock.FInStockEntry> fInStockEntry = stkInStock.getFInStockEntry();
for (Map.Entry<String, Object> entry : stringObjectMap.entrySet()) {
if (entry.getValue() instanceof String) {
map_fEntityModel_.put(entry.getKey(), (String) entry.getValue());
}else if(entry.getValue() instanceof Double){
map_fEntityModel_.put(entry.getKey(), entry.getValue().toString());
}
}
//准备 物料列表的数据 ForEntryBill
ResultBean<List<Map<String, String>>> vehicleListMap = createVehicleListsForStkInStock(fInStockEntry);
if(!vehicleListMap.getSuccess()){
return rb.setMsg(vehicleListMap.getMsg());
}
String kingDeeData =STKInStockCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_,vehicleListMap.getData());
try {
return saveBill(KingDeeBillId.STK_INSTOCK.getID(),kingDeeData);
} catch (Exception e) {
e.printStackTrace();
}
return rb;
}
/**
* 准备 物料列表的数据 StkInStock
*/
private ResultBean<List<Map<String, String>>>
createVehicleListsForStkInStock(List<StkInStock.FInStockEntry> vehicleList) {
ResultBean<List<Map<String, String>>> rb=ResultBean.fireFail();
//物料的数组集合
List<Map<String,String>> vehicleListMap=new ArrayList<>();
for(int i = 0; i< vehicleList.size(); i++){
StkInStock.FInStockEntry f= vehicleList.get(i);
Map<String,String> m=new HashMap<>();
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(f);
for (Map.Entry<String, Object> entry : stringObjectMap.entrySet()) {
if (entry.getValue() instanceof String) {
log.info("String key:{},value:{}",entry.getKey(),(String) entry.getValue());
m.put(entry.getKey(), (String) entry.getValue());
}else if(entry.getValue() instanceof Double){
log.info("Double key:{},value:{}",entry.getKey(),entry.getValue());
m.put(entry.getKey(), entry.getValue().toString());
}
}
vehicleListMap.add(m);
}
return rb.success().setData(vehicleListMap);
}
}

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

@ -0,0 +1,4 @@
{
"formId": "STK_InStock",
"data": "@KD_data"
}

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

@ -0,0 +1,36 @@
{
"FRowType": "Standard",
"FMaterialId": {
"FNumber": "@KD_FMaterialId"
},
"FUnitID": {
"FNumber": "@KD_FUnitID"
},
"FRealQty": @KD_FRealQty,
"FPriceUnitID": {
"FNumber": "@KD_FPriceUnitID"
},
"FLot": {
"FNumber": "@KD_Flot"
},
"FStockId": {
"FNumber": "@KD_FStockId"
},
"FTaxPrice": 1000.0,
"FPrice": 1000.0,
"FStockStatusId": {
"FNumber": "KCZT01_SYS"
},
"FGiveAway": false,
"FCheckInComing": false,
"FIsReceiveUpdateStock": false,
"FPriceBaseQty": 1.0,
"FRemainInStockUnitId": {
"FNumber": "@KD_FRemainInStockUnitId"
},
"FBILLINGCLOSE": false,
"FRemainInStockQty": @KD_FRemainInStockQty,
"FAPNotJoinQty": 1.0,
"FRemainInStockBaseQty": 1.0
}

13
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/data_data.json

@ -0,0 +1,13 @@
{
"Creator": "",
"NeedUpDateFields": [],
"NeedReturnFields": [],
"IsDeleteEntry": "True",
"SubSystemId": "",
"IsVerifyBaseDataField": "false",
"IsEntryBatchFill": "True",
"ValidateFlag": "True",
"NumberSearch": "True",
"InterationFlags": "",
"Model": {}
}

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

@ -0,0 +1,54 @@
{
"FID": 0,
"FBillTypeID": {
"FNUMBER": "RKD01_SYS"
},
"FDate": "@KD_FDate",
"FStockOrgId": {
"FNumber": "@KD_FStockOrgId"
},
"FDemandOrgId": {
"FNumber": ""
},
"FPurchaseOrgId": {
"FNumber": "@KD_FPurchaseOrgId"
},
"FPurchaseDeptId": {
"FNumber": "@KD_FPurchaseDeptId"
},
"FSupplierId": {
"FNumber": "@KD_FSupplierId"
},
"FSupplyId": {
"FNumber": ""
},
"FSettleId": {
"FNumber": ""
},
"FChargeId": {
"FNumber": ""
},
"FOwnerTypeIdHead": "@KD_FOwnerTypeIdHead",
"FOwnerIdHead": {
"FNumber": "@KD_FOwnerIdHead"
},
"FInStockFin": {
"FSettleOrgId": {
"FNumber": "@KD_FSettleOrgId"
},
"FSettleCurrId": {
"FNumber": "@KD_FSettleCurrId"
},
"FIsIncludedTax": true,
"FPriceTimePoint": "@KD_FPriceTimePoint",
"FLocalCurrId": {
"FNumber": "PRE001"
},
"FExchangeTypeId": {
"FNumber": "HLTX01_SYS"
},
"FExchangeRate": 1.0,
"FISPRICEEXCLUDETAX": true
},
"FInStockEntry": []
}

240
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/remarks.txt

@ -0,0 +1,240 @@
一、请求参数说明:
1.formid:业务对象表单Id,字符串类型(必录)
2.data:Json格式数据(详情参考Json格式数据)(必录)
2.1.Creator:创建者内码(非必录)
2.2.NeedUpDateFields:需要更新的字段,数组类型,格式:[key1,key2,...](非必录),注(更新单据体字段得加上单据体key)
2.3.NeedReturnFields:需返回结果的字段集合,数组类型,格式:[key,entitykey.key,...](非必录),注(返回单据体字段格式:entitykey.key)
2.4.IsDeleteEntry:是否删除已存在的分录,布尔类型,默认true(非必录)
2.5.SubSystemId:表单所在的子系统内码,字符串类型(非必录)
2.6.IsVerifyBaseDataField:是否验证所有的基础资料有效性,布尔类,默认false(非必录)
2.7.IsEntryBatchFill:是否批量填充分录,默认true(非必录)
2.8.ValidateFlag:是否验证标志,布尔类型,默认true(非必录)
2.9.NumberSearch:是否用编码搜索基础资料,布尔类型,默认true(非必录)
2.10.InterationFlags:交互标志集合,字符串类型,分号分隔,格式:"flag1;flag2;..."(非必录),例如(允许负库存标识:STK_InvCheckResult)
2.11.Model:表单数据包,Json类型(必录)
五、字段说明:
收货库存更新标志:FReceiveStockFlag
加工费:FProcessFee
已开票数量:FINVOICEDQTY
关联应付数量(计价基本):FBaseAPJoinQty
货主:FOWNERID
已钩稽数量:FJOINEDQTY
材料成本:FMaterialCosts
货主类型:FOWNERTYPEID
保管者:FKeeperID
仓位:FStockLocId
保质期单位:FEXPUnit
订单单号:FPOOrderNo
收货库存状态:FReceiveStockStatus
源单编号:FSRCBillNo
保管者类型:FKeeperTypeId
保质期:FExpPeriod
源单类型:FSRCBILLTYPEID
未钩稽数量:FUNJOINQTY
价格上限:FUpPrice
价格下限:FDownPrice
单价:FPrice
系统定价:FSysPrice
折扣额:FDiscount
退料关联数量(库存基本):FBaseReturnJoinQty
金额:FAmount
金额(本位币):FAmount_LC
税组合:FTaxCombination
完全钩稽:FFULLYJOINED
行钩稽状态:FJOINSTATUS
已钩稽金额:FJOINEDAMOUNT
未钩稽金额:FUNJOINAMOUNT
收货货主类型:FReceiveOwnerTypeId
收货货主:FReceiveOwnerId
在架寿命期:FShelfLife
批号:FLot
辅助属性:FAuxPropId
免费:FIsFree
库存状态:FStockStatusId
源单行内码:FSRCRowId
有效期至:FExpiryDate
成本价:FCostPrice
税率(%):FEntryTaxRate
BOM版本:FBOMId
含税单价:FTaxPrice
数量(库存辅单位):FAuxUnitQty
物料类别:FMaterialType
规格型号:FUOM
净重:FNetWeight
物料名称:FMaterialName
应收数量:FMustQty
实收数量:FRealQty
合同单号:FContractlNo
需求跟踪号:FReqTraceNo
税额:FEntryTaxAmount
库存单位:FUnitID (必填项)
基本单位:FBaseUnitID
入库库存更新标志:FStockFlag
基本单位单价:FBaseUnitPrice
计价单位:FPriceUnitID (必填项)
关联数量(基本单位):FBaseJoinQty
库存基本数量:FBaseUnitQty
库存辅单位:FAuxUnitID
价税合计(本位币):FAllAmount_LC
计价数量:FPriceUnitQty
净价:FTaxNetPrice
折扣率(%):FDiscountRate
价格系数:FPriceCoefficient
税额(本位币):FTaxAmount_LC
总成本(本位币):FCostAmount_LC
总成本:FEntryCostAmount
价税合计:FAllAmount
退料关联数量:FReturnJoinQty
加工费(本位币):FProcessFee_LC
材料成本(本位币):FMaterialCosts_LC
父行标识:FParentRowId
第三方单据分录ID:FTHIRDENTRYID
产品线:F_PAEZ_BaseProperty2
车辆系别:F_PAEZ_BaseProperty3
物料分组:F_PAEZ_BaseProperty
车辆类型:F_PAEZ_BaseProperty1
行标识:FRowId
应付关闭日期:FPAYABLECLOSEDATE
拆单数量(计价):FDisPriceQty
关联应付金额:FAPJoinAmount
应付关闭状态:FPayableCloseStatus
产品类型:FRowType
父项产品:FParentMatId
拆单前原计价数量:FBeforeDisPriceQty
收料辅序子单据体内码:FRECSUBENTRYID
车辆驱动:F_PAEZ_BaseProperty4
增值税:FVAT
卖方代扣代缴:FSellerWithholding
计入成本比例%:FCostPercent
计入成本金额:FTaxCostAmount
序列号:FSerialId
备注:FSerialNote
买方代扣代缴:FBuyerWithholding
序列号:FSerialNo
税额:FTaxAmount
金额:FCostAmount
备注:FCostNOTE
车辆马力:F_PAEZ_BaseProperty5
车辆颜色:F_PAEZ_BaseProperty6
税率名称:FTaxRateId
税率%:FTaxRate
费用代码:FCostId
费用名称:FCostName
未关联应付数量(计价单位):FAPNotJoinQty
样本破坏数量(计价单位):FSampleDamageQty
样本破坏数量(计价基本):FSampleDamageBaseQty
序列号单位数量:FSNQty
辅助单位退料关联数量:FSECRETURNJOINQTY
开票结束状态:FInvoicedStatus
已开票关联数量:FInvoicedJoinQty
来料检验:FCheckInComing
收料更新库存:FIsReceiveUpdateStock
序列号单位:FSNUnitID
收货仓库:FReceiveStockID
收货仓位:FReceiveStockLocId
业务流程:FBFLowId
收货批号:FReceiveLot
项目编号:FProjectNo
是否赠品:FGiveAway
收货辅助属性:FReceiveAuxPropId
计划跟踪号:FMtoNo
辅单位:FExtAuxUnitId
携带的主业务单位:FSRCBIZUNITID
退料关联数量(采购基本):FRETURNSTOCKJNBASEQTY
采购基本分子:FPURBASENUM
库存基本分母:FStockBaseDen
采购订单分录内码:FPOORDERENTRYID
分录价目表:FPriceListEntry
关联应付数量(库存基本):FStockBaseAPJoinQty
成本价(本位币):FCOSTPRICE_LC
立账关闭:FBILLINGCLOSE
入库类型:FWWInType
计价基本数量:FPriceBaseQty
实收数量(辅单位):FExtAuxUnitQty
收货计划跟踪号:FReceiveMtoNo
采购数量:FRemainInStockQty
采购基本数量:FRemainInStockBaseQty
定价单位:FSetPriceUnitID
采购单位:FRemainInStockUnitId (必填项)
供货方联系人(旧):FSupplyContact
收款方:FChargeId
供货方:FSupplyId
结算方:FSettleId
采购部门:FPurchaseDeptId (必填项)
采购组:FPurchaserGroupId
采购员:FPurchaserId
业务类型:FBusinessType
收料部门:FStockDeptId
仓管员:FStockerId
供应商:FSupplierId (必填项)
库存组:FStockerGroupId
最后修改人:FModifierId
最后修改日期:FModifyDate
创建人:FCreatorId
创建日期:FCreateDate
采购组织:FPurchaseOrgId (必填项)
收料组织:FStockOrgId (必填项)
入库日期:FDate (必填项)
单据编号:FBillNo
单据状态:FDocumentStatus
货主:FOwnerIdHead (必填项)
需求组织:FDemandOrgId
单据类型:FBillTypeID (必填项)
货主类型:FOwnerTypeIdHead (必填项)
审核人:FApproverId
作废人:FCancellerId
审核日期:FApproveDate
作废状态:FCancelStatus
提货单号:FTakeDeliveryBill
作废日期:FCancelDate
送货单号:FDeliveryBill
本位币:FLocalCurrId
税额(本位币):FBillTaxAmount_LC
付款条件:FPayConditionId
汇率:FExchangeRate
折扣表:FDiscountListId
定价时点:FPriceTimePoint (必填项)
总成本(本位币):FBilCostAmount_LC
价税合计(本位币):FBillAllAmount_LC
汇率类型:FExchangeTypeId
结算币别:FSettleCurrId (必填项)
整单费用:FBillCost
付款组织:FPayOrgId
结算组织:FSettleOrgId (必填项)
价税合计:FBillAllAmount
结算方式:FSettleTypeId
税额:FBillTaxAmount
总成本:FBillCostAmount
价目表:FPriceListId
物料编码:FMaterialId (必填项)
仓库:FStockId
第三方单据ID:FTHIRDBILLID
第三方单据编号:FTHIRDBILLNO
供应商批号:FSupplierLot
毛重:FGrossWeight
生产日期:FProduceDate
备注:FNote
第三方来源:FTHIRDSRCTYPE
含税:FIsIncludedTax
货主客户:FOwnerCustomerID
金额(本位币):FBillAmount_LC
金额:FBillAmount
价外税:FISPRICEEXCLUDETAX
先到票后入库:FISINVOICEARLIER
结算组织供应商:FSettleSupplierID
跨组织结算生成:FISGENFORIOS
打印次数:F_PAEZ_PrintTimes
跨组织业务类型:FTransferBizType
应付状态:FAPSTATUS
对应组织:FCorrespondOrgId
供货方地址:FSupplyAddress
确认人:FConfirmerId
确认日期:FConfirmDate
拆单新单标识:FDisassemblyFlag
确认状态:FConfirmStatus
供货方联系人:FProviderContactID
序列号上传:FScanBox
组织间结算跨法人标识:FIsInterLegalPerson
创建日期偏移量:FCDateOffsetValue
创建日期偏移单位:FCDateOffsetUnit

0
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/testParams.txt

1
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/webapi测试的数据.txt

@ -0,0 +1 @@
"{\"formId\":\"STK_InStock\",\"data\":\"{\\\"Creator\\\":\\\"\\\",\\\"NeedUpDateFields\\\":[],\\\"NeedReturnFields\\\":[],\\\"IsDeleteEntry\\\":\\\"True\\\",\\\"SubSystemId\\\":\\\"\\\",\\\"IsVerifyBaseDataField\\\":\\\"false\\\",\\\"IsEntryBatchFill\\\":\\\"True\\\",\\\"ValidateFlag\\\":\\\"True\\\",\\\"NumberSearch\\\":\\\"True\\\",\\\"InterationFlags\\\":\\\"\\\",\\\"Model\\\":{\\\"FID\\\":0,\\\"FBillTypeID\\\":{\\\"FNUMBER\\\":\\\"RKD01_SYS\\\"},\\\"FDate\\\":\\\"2022-08-12 00:00:00\\\",\\\"FStockOrgId\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FDemandOrgId\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FPurchaseOrgId\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FPurchaseDeptId\\\":{\\\"FNumber\\\":\\\"05.04\\\"},\\\"FSupplierId\\\":{\\\"FNumber\\\":\\\"010001\\\"},\\\"FSupplyId\\\":{\\\"FNumber\\\":\\\"010001\\\"},\\\"FSettleId\\\":{\\\"FNumber\\\":\\\"010001\\\"},\\\"FChargeId\\\":{\\\"FNumber\\\":\\\"010001\\\"},\\\"FOwnerTypeIdHead\\\":\\\"BD_OwnerOrg\\\",\\\"FOwnerIdHead\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FInStockFin\\\":{\\\"FSettleOrgId\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FSettleCurrId\\\":{\\\"FNumber\\\":\\\"PRE001\\\"},\\\"FIsIncludedTax\\\":true,\\\"FPriceTimePoint\\\":\\\"1\\\",\\\"FLocalCurrId\\\":{\\\"FNumber\\\":\\\"PRE001\\\"},\\\"FExchangeTypeId\\\":{\\\"FNumber\\\":\\\"HLTX01_SYS\\\"},\\\"FExchangeRate\\\":1.0,\\\"FISPRICEEXCLUDETAX\\\":true},\\\"FInStockEntry\\\":[{\\\"FRowType\\\":\\\"Standard\\\",\\\"FMaterialId\\\":{\\\"FNumber\\\":\\\" JX091054\\\"},\\\"FUnitID\\\":{\\\"FNumber\\\":\\\"liang\\\"},\\\"FRealQty\\\":1.0,\\\"FPriceUnitID\\\":{\\\"FNumber\\\":\\\"liang\\\"},\\\"FLot\\\": {\\\"FNumber\\\": \\\"1234567890\\\"},\\\"FStockId\\\":{\\\"FNumber\\\":\\\"CK001\\\"},\\\"FTaxPrice\\\":1000.0,\\\"FPrice\\\":1000.0,\\\"FStockStatusId\\\":{\\\"FNumber\\\":\\\"KCZT01_SYS\\\"},\\\"FGiveAway\\\":false,\\\"FCheckInComing\\\":false,\\\"FIsReceiveUpdateStock\\\":false,\\\"FPriceBaseQty\\\":1.0,\\\"FRemainInStockUnitId\\\":{\\\"FNumber\\\":\\\"liang\\\"},\\\"FBILLINGCLOSE\\\":false,\\\"FRemainInStockQty\\\":1.0,\\\"FAPNotJoinQty\\\":1.0,\\\"FRemainInStockBaseQty\\\":1.0}]}}\"}"

BIN
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/采购入库单的参数必填备注.xlsx

Binary file not shown.

13
anrui-fin/anrui-fin-biz/src/test/java/com/yxt/anrui/fin/AnruiFinAppTests.java

@ -7,15 +7,14 @@ import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.io.*;
@RunWith(SpringRunner.class)
@SpringBootTest
public class AnruiFinAppTests {
Logger log= LoggerFactory.getLogger(AnruiFinAppTests.class);
//Logger log= LoggerFactory.getLogger(AnruiFinAppTests.class);
@Test
public void contextLoads() {
String jsonStr = "";
/*String jsonStr = "";
try {
File jsonFile = new File("src/test/java/com/yxt/anrui/fin/ss/1211231.txt");
FileReader fileReader = new FileReader(jsonFile);
@ -31,7 +30,13 @@ public class AnruiFinAppTests {
log.info(jsonStr);
} catch (IOException e) {
e.printStackTrace();
}
}*/
String s="123456778";
String ss=s.toString();
ss=ss.replace("7","");
System.out.println(s);
System.out.println(ss);
}
}

18
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/flow/FlowableService.java

@ -549,10 +549,11 @@ public class FlowableService extends MybatisBaseService<FlowableMapper, Flowable
if (appSubsetVersions != null) {
List<Integer> integers = appVer.get(key);
for (int i = 0; i < integers.size(); i++) {
Integer integer = integers.get(i);
String path = fileUploadComponent.getUrlPrefix();
voList.get(i).getAppVariables().setPath(path+appSubsetVersions.getUpdateUrl());
voList.get(i).getAppVariables().setModuleVersion(appSubsetVersions.getVersionCode());
voList.get(i).getAppVariables().setModulePluginName(appSubsetVersions.getModulePluginName());
voList.get(integer).getAppVariables().setPath(path+appSubsetVersions.getUpdateUrl());
voList.get(integer).getAppVariables().setModuleVersion(appSubsetVersions.getVersionCode());
voList.get(integer).getAppVariables().setModulePluginName(appSubsetVersions.getModulePluginName());
}
}
}
@ -560,6 +561,8 @@ public class FlowableService extends MybatisBaseService<FlowableMapper, Flowable
page.setCurrent(resultBean.getData().getCurrent());
page.setSize(resultBean.getData().getSize());
page.setTotal(resultBean.getData().getTotal());
long pages = (resultBean.getData().getTotal() + resultBean.getData().getSize() -1) / resultBean.getData().getSize();
page.setPages(pages);
return rb.success().setData(page);
}
@ -633,10 +636,11 @@ public class FlowableService extends MybatisBaseService<FlowableMapper, Flowable
if (appSubsetVersions != null) {
List<Integer> integers = appVer.get(key);
for (int i = 0; i < integers.size(); i++) {
Integer integer = integers.get(i);
String path = fileUploadComponent.getUrlPrefix();
voList.get(i).getAppVariables().setPath(path+appSubsetVersions.getUpdateUrl());
voList.get(i).getAppVariables().setModuleVersion(appSubsetVersions.getVersionCode());
voList.get(i).getAppVariables().setModulePluginName(appSubsetVersions.getModulePluginName());
voList.get(integer).getAppVariables().setPath(path+appSubsetVersions.getUpdateUrl());
voList.get(integer).getAppVariables().setModuleVersion(appSubsetVersions.getVersionCode());
voList.get(integer).getAppVariables().setModulePluginName(appSubsetVersions.getModulePluginName());
}
}
}
@ -644,6 +648,8 @@ public class FlowableService extends MybatisBaseService<FlowableMapper, Flowable
page.setCurrent(resultBean.getData().getCurrent());
page.setSize(resultBean.getData().getSize());
page.setTotal(resultBean.getData().getTotal());
long pages = (resultBean.getData().getTotal() + resultBean.getData().getSize() -1) / resultBean.getData().getSize();
page.setPages(pages);
return rb.success().setData(page);
}
}

50
anrui-scm/anrui-scm-ui/src/api/supplychain/hegezhengpandian.js

@ -0,0 +1,50 @@
import request from '@/utils/request'
// 合格证盘点记录分页列表 1
export function listPage(data) {
return request({
url: '/scm/v1/scmcertinventory/listPage',
data,
method: 'post',
headers: { 'Content-Type': 'application/json' }
})
}
// 合格证待盘点记录分页列表 1
export function listPages(data) {
return request({
url: '/scm/v1/scmcertstayinventory/listPage',
data,
method: 'post',
headers: { 'Content-Type': 'application/json' }
})
}
// 判断是否生成合格证盘点记录 createOrgSid 1
export function getInventoryRecords(data) {
return request({
url: '/scm/v1/scmcertinventory/getInventoryRecords/' + data,
method: 'get'
})
}
// 生成合格证盘点记录(详情) createOrgSid
export function generateInventoryRecords(data) {
return request({
url: '/scm/v1/scmcertinventory/generateInventoryRecords/' + data,
method: 'get'
})
}
// 合格证盘点确认保存 1
export function certInventoryConfirm(data) {
return request({
url: '/scm/v1/scmcertinventory/certInventoryConfirm',
data,
method: 'post',
headers: { 'Content-Type': 'application/json' }
})
}

109
anrui-scm/anrui-scm-ui/src/views/supplychain/hegezhengpandianjilu/hegezhengpandianjilu.vue

@ -11,28 +11,28 @@
<div v-show="isSearchShow" class="search">
<el-form :inline="true" class="tab-header">
<el-form-item label="最新盘库日期">
<el-date-picker v-model="listQuery.params.inspectedStartDate" class="filter-item" type="date"
<el-date-picker v-model="listQuery.params.inventoryStartDate" class="filter-item" type="date"
format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="请选择"/>
<label></label>
<el-date-picker v-model="listQuery.params.inspectedEndDate" class="filter-item" type="date"
<el-date-picker v-model="listQuery.params.inventoryEndDate" class="filter-item" type="date"
format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="请选择"/>
</el-form-item>
<el-form-item label="车架号">
<el-input v-model="listQuery.params.vin" placeholder="请输入车架号" clearable/>
<el-input v-model="listQuery.params.vinNo" placeholder="请输入车架号" clearable/>
</el-form-item>
<el-form-item label="合格证编号">
<el-input v-model="listQuery.params.vin" placeholder="请输入合格证编号" clearable/>
<el-input v-model="listQuery.params.certNo" placeholder="请输入合格证编号" clearable/>
</el-form-item>
<el-form-item label="存放地点">
<el-select v-model="listQuery.params.location" class="addinputw" clearable placeholder="请选择">
<el-select v-model="listQuery.params.locationSid" class="addinputw" clearable placeholder="请选择">
<el-option v-for="(item,index) in location_list" :key="item.sid" :label="item.warehouseName"
:value="item.sid"/>
</el-select>
</el-form-item>
<el-form-item label="状态">
<el-select v-model="listQuery.params.InventoryState" class="addinputw" placeholder="请选择" clearable>
<el-select v-model="listQuery.params.inventoryState" class="addinputw" placeholder="请选择" clearable>
<el-option v-for="item in stateType_list" :key="item.dictKey" :label="item.dictValue"
:value="item.dictValue" />
:value="item.dictValue"/>
</el-select>
</el-form-item>
</el-form>
@ -62,13 +62,13 @@
</el-button>
</template>
</el-table-column>
<el-table-column width="200px" prop="vin" label="合格证编号" align="center"/>
<el-table-column width="200px" prop="vin" label="车架号" align="center"/>
<el-table-column prop="model" label="最新盘库日期" align="center"/>
<el-table-column width="160px" prop="purchaseType" label="最新存放地点" align="center"/>
<el-table-column width="140px" prop="dispatchedDate" label="最新盘库人员" align="center"/>
<el-table-column width="140px" prop="inspectedDate" label="状态" align="center"/>
<el-table-column width="140px" prop="inspectedName" label="备注" align="center"/>
<el-table-column width="200px" prop="certNo" label="合格证编号" align="center"/>
<el-table-column width="200px" prop="vinNo" label="车架号" align="center"/>
<el-table-column prop="inventoryDate" label="最新盘库日期" align="center"/>
<el-table-column width="160px" prop="location" label="最新存放地点" align="center"/>
<el-table-column width="140px" prop="inventoryName" label="最新盘库人员" align="center"/>
<el-table-column width="140px" prop="inventoryState" label="状态" align="center"/>
<el-table-column width="140px" prop="remarks" label="备注" align="center"/>
</el-table>
</div>
<!--End 项目列表-->
@ -92,25 +92,17 @@
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>合格证编码</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.mainSid }}</span></el-form-item>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.certNo }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>车架号</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.mainSid }}</span></el-form-item>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.vinNo }}</span></el-form-item>
</el-col>
<!-- <el-col :span="12">-->
<!-- <div class="span-sty spanOneWidth"><span>合格证</span></div>-->
<!-- <el-form-item>-->
<!-- <el-select v-model="formobj.certificate" class="addinputw addinputwOne" placeholder="请选择" style="width: 30%" @change="changeCertificateType(scope.row,this)" clearable>-->
<!-- <el-option v-for="item in certificateType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>盘库日期</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.InventoryDate }}</span></el-form-item>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.inventoryDate }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>存放地点</span></div>
@ -125,7 +117,7 @@
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>状态</span></div>
<el-form-item>
<el-select v-model="formobj.InventoryState" class="addinputw addinputwOne" placeholder="请选择"
<el-select v-model="formobj.inventoryState" class="addinputw addinputwOne" placeholder="请选择"
style="width: 30%" @change="changeStateType(scope.row,this)" clearable>
<el-option v-for="item in stateType_list" :key="item.dictKey" :label="item.dictValue"
:value="item.dictValue"></el-option>
@ -152,19 +144,22 @@
<hegezhengpandianjilu-add v-show="viewState == 2 || viewState == 3" ref="divadd" @doback="resetState"
@reloadlist="getList"/>
<!--详情部分组件-->
</div>
</template>
<script>
import { selectCarInspectedList, typeValues } from '@/api/supplychain/yancheguanli'
import { getPathSidByUserSid } from '@/api/cheliang/basevehiclemodel'
import { fetchByUseOrgSid } from '@/api/cheliang/dictcommons'
import ButtonBar from '@/components/ButtonBar'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import hegezhengpandianjiluAdd from '@/views/supplychain/hegezhengpandianjilu/hegezhengpandianjiluAdd'
import {
certInventoryConfirm,
generateInventoryRecords,
getInventoryRecords,
listPage
} from '@/api/supplychain/hegezhengpandian'
export default {
name: 'hegezhengpandianjilu',
@ -202,11 +197,13 @@ export default {
size: 10,
total: 0,
params: {
vin: '',
model: '',
purchaseType: '',
inspectedStartDate: '',
inspectedEndDate: '',
certNo: '', //
vinNo: '', //
locationSid: '', // sid
inventoryStartDate: '', //
inventoryEndDate: '', //
inventoryState: '', // 1/2
createOrgSid: '', // sid
userSid: window.sessionStorage.getItem('userSid')
}
},
@ -237,7 +234,6 @@ export default {
}
},
created() {
this.getType()
this.getPathSid()
},
mounted() {
@ -247,15 +243,6 @@ export default {
resetState() {
this.viewState = 1
},
getType() {
typeValues({
type: 'purchaseOrderType '
}).then((response) => {
if (response.code === '200' && response.data) {
// this.purchaseType_list = response.data
}
})
},
getPathSid() {
const userSid = window.sessionStorage.getItem('userSid')
getPathSidByUserSid({ userSid: userSid }).then((res) => {
@ -279,6 +266,18 @@ export default {
}
})
},
changeStateType(value) {
let bb = null
this.stateType_list.forEach((e) => {
if (e.dictValue === value) {
bb = {
key: e.dictKey,
value: e.dictValue
}
}
})
this.formobj.InventoryStateKey = bb.key
},
btnHandle(btnKey) {
console.log('XXXXXXXXXXXXXXX ' + btnKey)
switch (btnKey) {
@ -296,7 +295,11 @@ export default {
}
},
generatedRecords() {
getInventoryRecords(this.useOrg).then((res) => {
if (res.success) {
this.$message({ showClose: true, type: 'success', message: res.msg })
}
})
},
doCheck() {
this.viewState = 2
@ -316,11 +319,13 @@ export default {
size: 10,
total: 0,
params: {
vin: '',
model: '',
purchaseType: '',
inspectedStartDate: '',
inspectedEndDate: '',
certNo: '', //
vinNo: '', //
locationSid: '', // sid
inventoryStartDate: '', //
inventoryEndDate: '', //
inventoryState: '', // 1/2
createOrgSid: '', // sid
userSid: window.sessionStorage.getItem('userSid')
}
}
@ -329,7 +334,7 @@ export default {
loadList() {
const _this = this
this.tableLoading = true
selectCarInspectedList(this.listQuery)
listPage(this.listQuery)
.then(resp => {
_this.tableLoading = false
const data = resp.data
@ -349,7 +354,7 @@ export default {
},
//
handleQueDing() {
updateState(this.formobj).then((res) => {
certInventoryConfirm(this.formobj).then((res) => {
this.dialogVisible = false
if (res.success) {
this.$message({ showClose: true, type: 'success', message: res.msg })

113
anrui-scm/anrui-scm-ui/src/views/supplychain/hegezhengpandianjilu/hegezhengpandianjiluAdd.vue

@ -26,14 +26,14 @@
</div>
<el-form :inline="true" class="tab-header">
<el-form-item label="车架号">
<el-input v-model="listQuery.params.vin" placeholder="请输入车架号" clearable/>
<el-input v-model="listQuery.params.vinNo" placeholder="请输入车架号" clearable/>
</el-form-item>
<el-form-item label="合格证编号">
<el-input v-model="listQuery.params.vin" placeholder="请输入合格证编号" clearable/>
<el-input v-model="listQuery.params.certNo" placeholder="请输入合格证编号" clearable/>
</el-form-item>
</el-form>
<div class="btn">
<el-button type="primary" icon="el-icon-search" size="small" @click="getList">查询</el-button>
<el-button type="primary" icon="el-icon-search" size="small" @click="handleSelect">查询</el-button>
</div>
<div class="title">
<div>库存车辆列表</div>
@ -50,15 +50,20 @@
<span>{{ scope.row.mainSid }}</span>
</template>
</el-table-column>
<el-table-column label="合格证" width="150" align="center">
<el-table-column label="合格证编码" width="140px" align="center">
<template slot-scope="scope">
<el-select v-model="scope.row.certificate" placeholder="请选择" style="width: 80%"
@change="changeCertificateType(scope.row,this)" clearable>
<el-option v-for="item in certificateType_list" :key="item.dictKey" :label="item.dictValue"
:value="item.dictValue"></el-option>
</el-select>
<span>{{ scope.row.certNo }}</span>
</template>
</el-table-column>
<!-- <el-table-column label="合格证" width="150" align="center">-->
<!-- <template slot-scope="scope">-->
<!-- <el-select v-model="scope.row.certificate" placeholder="请选择" style="width: 80%"-->
<!-- @change="changeCertificateType(scope.row,this)" clearable>-->
<!-- <el-option v-for="item in certificateType_list" :key="item.dictKey" :label="item.dictValue"-->
<!-- :value="item.dictValue"></el-option>-->
<!-- </el-select>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="存放地点" align="center">
<template slot-scope="scope">
<span>{{ scope.row.location }}</span>
@ -66,17 +71,17 @@
</el-table-column>
<el-table-column label="上次盘库日期" align="center" width="150px">
<template slot-scope="scope">
<span>{{ scope.row.lastDate }}</span>
<span>{{ scope.row.inventoryDate }}</span>
</template>
</el-table-column>
<el-table-column label="上次盘库人员" align="center" width="150px">
<template slot-scope="scope">
<span>{{ scope.row.lastName }}</span>
<span>{{ scope.row.inventoryName }}</span>
</template>
</el-table-column>
<el-table-column label="状态" width="150" align="center">
<template slot-scope="scope">
<el-select v-model="scope.row.InventoryState" placeholder="请选择" style="width: 80%"
<el-select v-model="scope.row.inventoryState" placeholder="请选择" style="width: 80%"
@change="changeStateType(scope.row,this)" clearable>
<el-option v-for="item in stateType_list" :key="item.dictKey" :label="item.dictValue"
:value="item.dictValue"></el-option>
@ -96,8 +101,9 @@
</template>
<script>
import req from '@/api/kucunguanli/panku'
import { fetchByUseOrgSid, getUserByOrgSid, typeValues } from '@/api/cheliang/dictcommons'
import { fetchByUseOrgSid, getUserByOrgSid } from '@/api/cheliang/dictcommons'
import { getPathSidByUserSid } from '@/api/cheliang/basevehiclemodel'
import { certInventoryConfirm, listPages } from '@/api/supplychain/hegezhengpandian'
export default {
name: 'hegezhengpandianjiluAdd',
@ -132,16 +138,16 @@ export default {
inventorySid: '',
certificate: '',
certificateKey: '',
InventoryState: '',
InventoryStateKey: '',
inventoryState: '',
inventoryStateKey: '',
remarks: '',
loginName: window.sessionStorage.getItem('name'),
loginSid: window.sessionStorage.getItem('userSid')
},
listQuery: {
params: {
locationSid: '',
mainSid: '',
certNo: '',
vinNo: '',
createOrgSid: ''
},
current: 1,
@ -167,18 +173,21 @@ export default {
this.warehouse_list = res.data
}
})
typeValues({ type: 'certificate' }).then((res) => {
if (res.success) {
this.certificateType_list = res.data
// typeValues({ type: 'certificate' }).then((res) => {
// if (res.success) {
// this.certificateType_list = res.data
// }
// })
},
getPathSid() {
const userSid = window.sessionStorage.getItem('userSid')
getPathSidByUserSid({ userSid: userSid }).then((res) => {
if (res.code === '200') {
this.listQuery.params.createOrgSid = res.data
this.useOrg = res.data
this.getList()
}
})
this.getList()
},
//
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
showAdd(createOrgSid) {
this.$nextTick(() => {
@ -187,8 +196,14 @@ export default {
this.listQuery.params.createOrgSid = createOrgSid
this.init()
},
//
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
getList() {
req.pagelist(this.listQuery).then((res) => {
listPages(this.listQuery).then((res) => {
if (res.success) {
this.list = res.data.records
} else {
@ -199,34 +214,30 @@ export default {
handleSelect() {
this.getList()
},
changeLocation(value) {
this.listQuery.params.locationSid = value
this.getList()
},
changeStateType(row) {
let bb = null
this.stateType_list.forEach((e) => {
if (e.dictValue === row.InventoryState) {
bb = {
key: e.dictKey,
value: e.dictValue
}
}
})
row.InventoryStateKey = bb.key
},
changeCertificateType(row) {
let bb = null
this.certificateType_list.forEach((e) => {
if (e.dictValue === row.certificate) {
if (e.dictValue === row.inventoryState) {
bb = {
key: e.dictKey,
value: e.dictValue
}
}
})
row.certificateKey = bb.key
row.inventoryStateKey = bb.key
},
// changeCertificateType(row) {
// let bb = null
// this.certificateType_list.forEach((e) => {
// if (e.dictValue === row.certificate) {
// bb = {
// key: e.dictKey,
// value: e.dictValue
// }
// }
// })
// row.certificateKey = bb.key
// },
changeInventoryName(value) {
let bb = null
this.staff_list.forEach((e) => {
@ -247,14 +258,14 @@ export default {
this.temp.location = row.location
this.temp.certificate = row.certificate
this.temp.certificateKey = row.certificateKey
this.temp.InventoryState = row.InventoryState
this.temp.InventoryStateKey = row.InventoryStateKey
this.temp.inventoryState = row.inventoryState
this.temp.inventoryStateKey = row.inventoryStateKey
this.temp.remarks = row.remarks
console.log(this.temp)
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
req.saveInventory(this.temp).then((resp) => {
certInventoryConfirm(this.temp).then((resp) => {
this.submitdisabled = false
if (resp.success) {
this.$message({
@ -292,7 +303,7 @@ export default {
margin-bottom: 5px;
}
.spe_style{
.spe_style {
}

1
anrui-scm/anrui-scm-ui/src/views/weishoumaiduan/weishoumaiduanguanli/unsoldguanli.vue

@ -163,6 +163,7 @@ export default {
},
mounted() {
// vuewindowpostMessagehandleMessage
window.addEventListener('message', this.handleMessage)
this.$refs['btnbar'].setButtonList(this.btnList)
},
methods: {

2
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/flowable/OrderSubmitDto.java

@ -26,6 +26,7 @@ public class OrderSubmitDto implements Dto {
private String distributorMobile;
@ApiModelProperty(value = "中介单位sid")
@JsonProperty("intermediarySid")
private String distributorSid;
@ApiModelProperty(value = "单车中介服务费")
@JsonProperty("agencyFee")
@ -34,6 +35,7 @@ public class OrderSubmitDto implements Dto {
@JsonProperty("recommender")
private String name;
@ApiModelProperty(value = "内部引荐人sid")
@JsonProperty("recommenderSid")
private String userSid;
@ApiModelProperty(value = "数量")
@JsonProperty("number")

3
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/order/OrderDepositInfoVo.java

@ -18,4 +18,7 @@ public class OrderDepositInfoVo implements Vo {
private String depositTotal;
@ApiModelProperty(value = "订金备注")
private String depositRemarks;
@ApiModelProperty(value = "订金结转方式")
private String type;
}

13
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/order/OrderDetailsVo.java

@ -57,4 +57,17 @@ public class OrderDetailsVo implements Vo {
@ApiModelProperty(value = "订金信息")
private OrderDepositInfoVo depositInfo;
@ApiModelProperty("是否有保险信息")
private Boolean insuranceState;
@ApiModelProperty("是否有补充说明")
private Boolean remarksState;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("流程实例id")
private String procInsId;
@ApiModelProperty("任务id")
private String taskId;
}

2
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/order/OrderDiscountListVo.java

@ -17,7 +17,7 @@ public class OrderDiscountListVo implements Vo {
@ApiModelProperty(value = "价值")
private String price;
@ApiModelProperty(value = "说明")
private String explain;
private String discountExplain;
@ApiModelProperty(value = "数量")
private String number;
@ApiModelProperty(value = "总价值")

10
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/order/OrderStateVo.java

@ -64,4 +64,14 @@ public class OrderStateVo implements Vo {
@ApiModelProperty("客户名称")
private String customerName;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("流程id")
private String procInsId;
@ApiModelProperty("任务id")
private String taskId;
}

2
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/vehicleApply/VehicleApplyVo.java

@ -48,6 +48,8 @@ public class VehicleApplyVo implements Vo {
@ApiModelProperty(value = "用户sid")
private String userSid;
@JsonProperty("type")
private String applyType;
}

Loading…
Cancel
Save