Browse Source

Merge remote-tracking branch 'origin/master'

zhanglei
yunuo970428 3 years ago
parent
commit
2045823b26
  1. 4
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleDto.java
  2. 19
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleFeign.java
  3. 7
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleFeignFallback.java
  4. 97
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/common/enums/CertificState.java
  5. 47
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/common/enums/ManPurOrderType.java
  6. 52
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/common/enums/OperVehicleState.java
  7. 2
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.java
  8. 3
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml
  9. 42
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleRest.java
  10. 180
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java
  11. 14
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java
  12. 3
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java
  13. 3
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java
  14. 13
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/KingDeeResult.java
  15. 113
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/appayable/APPayable.java
  16. 6
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/arreceivable/ARReceivable.java
  17. 22
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/arreceivable/kingdeedata/FCUSTOMERID.java
  18. 22
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/arreceivable/kingdeedata/FSALEDEPTID.java
  19. 22
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/arreceivable/kingdeedata/FSALEORGID.java
  20. 22
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/arreceivable/kingdeedata/FSalUnitId.java
  21. 22
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/arreceivable/kingdeedata/F_PAEZ_Assistant1.java
  22. 22
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/arreceivable/kingdeedata/F_PAEZ_Base.java
  23. 22
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/arreceivable/kingdeedata/F_PMZC_Assistant.java
  24. 22
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/arreceivable/kingdeedata/F_PMZC_Assistant1.java
  25. 22
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/arreceivable/kingdeedata/F_PMZC_Assistant2.java
  26. 22
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/arreceivable/kingdeedata/F_PMZC_Base.java
  27. 242
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/arreceivable/kingdeedata/Model.java
  28. 116
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/entrybill/APPayable.java
  29. 5
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java
  30. 43
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignService.java
  31. 224
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/KingDeeSaveSKD.java
  32. BIN
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/entrybill/应付单的参数必填备注.xlsx
  33. 164
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/ReceivableBillCastToKingDeeBillFields.java
  34. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/receivablebilldata.json
  35. 20
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/receivablebilldata_FEntityDetail.json
  36. 13
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/receivablebilldata_data.json
  37. 56
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/receivablebilldata_model.json
  38. 221
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/remarks.txt
  39. 15
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/testParams.txt
  40. BIN
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/应收单的参数必填备注.xlsx
  41. 14
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/app/AppSysUserFeign.java
  42. 5
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/app/AppSysUserFeignFallback.java
  43. 9
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/flow/FlowableService.java
  44. 13
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserMapper.java
  45. 8
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserMapper.xml
  46. 10
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserService.java
  47. 5
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/app/AppSysUserRest.java
  48. 3
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundFeign.java
  49. 2
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundFeignFallback.java
  50. 4
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundRest.java
  51. 19
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundService.java

4
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleDto.java

@ -62,9 +62,9 @@ public class BaseVehicleDto implements Dto {
private String salesDate;
@ApiModelProperty(value = "买断日期")
private String solidDate;
@ApiModelProperty("结算状态key")
@ApiModelProperty("买断状态key")
private String settlementStatus;
@ApiModelProperty("结算状态value")
@ApiModelProperty("买断状态value")
private String settlementStatusValue;
@ApiModelProperty("采购退库日期")
private String returnDate;

19
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleFeign.java

@ -66,9 +66,20 @@ public interface BaseVehicleFeign {
* @param dto 数据传输对象
* @return
*/
@ApiOperation("批量推送车辆台账")
@PostMapping("/saveAll")
public ResultBean saveAll(@Valid @RequestBody List<BaseVehicleDto> dto);
@ApiOperation("批量推送车辆台账(新增或修改)")
@PostMapping("/saveOrUpdate")
public ResultBean saveOrUpdate(@Valid @RequestBody List<BaseVehicleDto> dto, @RequestParam("eventType") String eventType);
/**
* 批量推送车辆台账
* 只是更新验车推送数据作用验车推送需要更新的字段属性
*
* @param dto 数据传输对象
* @return
*/
@ApiOperation("验车批量推送车辆台账")
@PostMapping("/inspectVeh")
public ResultBean inspectVeh(@Valid @RequestBody List<BaseVehicleDto> dto);
/**
* 车辆台账出库
@ -194,7 +205,7 @@ public interface BaseVehicleFeign {
*/
@ApiOperation("车型详细配置接口(新)")
@PostMapping("/selectExiCarConfig")
public ResultBean<ExiCarConfigDetailVo> selectExiCarConfig(@RequestParam("modelSid") String modelSid, @RequestParam("configSid") String configSid,@RequestParam("vehModelConfigSid") String vehModelConfigSid);
public ResultBean<ExiCarConfigDetailVo> selectExiCarConfig(@RequestParam("modelSid") String modelSid, @RequestParam("configSid") String configSid, @RequestParam("vehModelConfigSid") String vehModelConfigSid);
/**
* 现车分页列表

7
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleFeignFallback.java

@ -42,7 +42,12 @@ public class BaseVehicleFeignFallback implements BaseVehicleFeign {
}
@Override
public ResultBean saveAll(@Valid List<BaseVehicleDto> dto) {
public ResultBean saveOrUpdate(List<BaseVehicleDto> dto, String eventType) {
return null;
}
@Override
public ResultBean inspectVeh(List<BaseVehicleDto> dto) {
return null;
}

97
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/common/enums/CertificState.java

@ -0,0 +1,97 @@
package com.yxt.anrui.base.common.enums;
import lombok.Getter;
/**
* @Author God
* @Date 2022/8/01 15:44
* @Description 设备合格证状态
*/
public class CertificState {
/**
* 合格证状态
*/
@Getter
public static enum CertificateState {
/**
* 虚拟
*/
CERSTATE_XN("001", "虚拟"),
/**
* 待转
*/
CERSTATE_DZ("002", "待转"),
/**
* 申请中
*/
CERSTATE_SQZ("003", "申请中"),
/**
* 正式
*/
CERSTATE_ZS("004", "正式");
/**
* code值
*/
private final String code;
/**
* 备注
*/
private final String remarks;
/**
* 构造器
*
* @param code code值
* @param remarks 备注
*/
private CertificateState(String code, String remarks) {
this.code = code;
this.remarks = remarks;
}
}
/**
* 移交状态
*/
@Getter
public static enum TransferState {
/**
* 未接收
*/
TRANSTATE_WJS("001", "未接收"),
/**
* 已接收
*/
TRANSTATE_YJS("002", "已接收"),
/**
* 待移交
*/
TRANSTATE_DYJ("003", "待移交"),
/**
* 已移交
*/
TRANSTATE_YYJ("004", "已移交");
/**
* code值
*/
private final String code;
/**
* 备注
*/
private final String remarks;
/**
* 构造器
*
* @param code code值
* @param remarks 备注
*/
private TransferState(String code, String remarks) {
this.code = code;
this.remarks = remarks;
}
}
}

47
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/common/enums/ManPurOrderType.java

@ -0,0 +1,47 @@
package com.yxt.anrui.base.common.enums;
import lombok.Getter;
/**
* @Author God
* @Date 2022/8/01 15:44
* @Description 厂家采购订单类型
*/
public class ManPurOrderType {
@Getter
public static enum ManOrderType {
/**
* 排产
*/
PC_ORDER("001", "排产"),
/**
* 外采
*/
WC_ORDER("002", "外采"),
/**
* 调车
*/
TC_ORDER("003", "调车");
/**
* code值
*/
private final String code;
/**
* 备注
*/
private final String remarks;
/**
* 构造器
*
* @param code code值
* @param remarks 备注
*/
private ManOrderType(String code, String remarks) {
this.code = code;
this.remarks = remarks;
}
}
}

52
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/common/enums/OperVehicleState.java

@ -0,0 +1,52 @@
package com.yxt.anrui.base.common.enums;
import lombok.Getter;
/**
* @Author God
* @Date 2022/8/01 15:44
* @Description 车辆台账操作状态
*/
public class OperVehicleState {
@Getter
public static enum EventType {
/**
* 更新车辆台账数据
*/
UPDATE_VEHICLE("001", "更新车辆台账数据"),
/**
* 入账生成台账
*/
RZ_SAVEVEH("002", "入账生成台账"),
/**
* 外采入库生成台账
*/
WC_SAVEVEH("003", "外采入库生成台账"),
/**
* 调车入库生成台账
*/
TC_SAVEVEH("004", "调车入库生成台账");
/**
* code值
*/
private final String code;
/**
* 备注
*/
private final String remarks;
/**
* 构造器
*
* @param code code值
* @param remarks 备注
*/
private EventType(String code, String remarks) {
this.code = code;
this.remarks = remarks;
}
}
}

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

@ -304,7 +304,7 @@ public interface BaseVehicleMapper extends BaseMapper<BaseVehicle> {
* @param settlementStatus 结算状态
* @return
*/
int updateStatusByVinNo(@Param("vinNoList") List<String> stringList, @Param("settlementStatus") String settlementStatus);
int updateStatusByVinNo(@Param("vinNoList") List<String> stringList, @Param("settlementStatus") String settlementStatus,@Param("settlementStatusValue") String settlementStatusValue);
/**
* 未售买断选择车辆分页列表

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

@ -706,7 +706,8 @@
<update id="updateStatusByVinNo">
update base_vehicle
set settlementStatus = #{settlementStatus}
set settlementStatus = #{settlementStatus},
settlementStatusValue = #{settlementStatusValue}
where vinNo in
<foreach item="vinNo" collection="vinNoList" open="(" separator="," close=")">
#{vinNo}

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

@ -1,6 +1,7 @@
package com.yxt.anrui.base.biz.basevehicle;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basemodelconfig.AppCarConfigSummaryVo;
import com.yxt.anrui.base.api.basemodelconfig.BaseModelConfig;
@ -14,6 +15,7 @@ import com.yxt.anrui.base.biz.basevehiclebrand.BaseVehicleBrandService;
import com.yxt.anrui.base.biz.basevehiclecertificate.BaseVehicleCertificateService;
import com.yxt.anrui.base.biz.basevehiclemodel.BaseVehicleModelService;
import com.yxt.anrui.base.biz.busvehicleinquiry.BusVehicleInquiryService;
import com.yxt.anrui.base.common.enums.OperVehicleState;
import com.yxt.anrui.base.common.enums.VehicleState;
import com.yxt.anrui.scm.api.scmvehiclegression.ScmVehicleGressionPageVo;
import com.yxt.common.base.utils.ExportExcelUtils;
@ -131,7 +133,7 @@ public class BaseVehicleRest implements BaseVehicleFeign {
baseVehicle.setWitPinStateValue(dto.getWitPinStateValue());
boolean isSave = baseVehicleService.save(baseVehicle);
BaseVehicleCertificate baseVehicleCertificate = new BaseVehicleCertificate();
if (StringUtils.isNotBlank(dto.getVinNo())){
if (StringUtils.isNotBlank(dto.getVinNo())) {
baseVehicleCertificate.setVinNo(dto.getVinNo());
baseVehicleCertificate.setCertificateState(dto.getCertificateState());
baseVehicleCertificate.setCertificateStateValue(dto.getCertificateStateValue());
@ -139,21 +141,50 @@ public class BaseVehicleRest implements BaseVehicleFeign {
baseVehicleCertificate.setTransferStateKey("001");
baseVehicleCertificate.setTransferStateValue("未接收");
baseVehicleCertificateService.save(baseVehicleCertificate);
}else {
} else {
return rb.setMsg("车架号不能为空");
}
return rb.success().setData(baseVehicle.getSid()).setMsg("保存成功");
}
@Override
public ResultBean saveAll(List<BaseVehicleDto> dto) {
public ResultBean saveOrUpdate(List<BaseVehicleDto> dto, String eventType) {
ResultBean rb = ResultBean.fireFail();
if (null == dto || 0 < dto.size() || eventType.isEmpty()) {
return rb.setMsg("参数错误");
}
for (BaseVehicleDto baseVehicleDto : dto) {
ResultBean resultBean = save(baseVehicleDto);
BaseVehicle baseVehicle = baseVehicleService.selectByVinNo(baseVehicleDto.getVinNo());
if (null == baseVehicle)
baseVehicle = new BaseVehicle();
BeanUtil.copyProperties(baseVehicleDto, baseVehicle, new CopyOptions().setIgnoreNullValue(true));
//更新车辆台账数据
if (eventType.equals(OperVehicleState.EventType.UPDATE_VEHICLE.getCode()))
baseVehicleService.updateVeh(baseVehicle);
//入账生成台账
if (eventType.equals(OperVehicleState.EventType.RZ_SAVEVEH.getCode()))
baseVehicleService.saveVeh_rz(baseVehicle);
//外采入库生成台账
if (eventType.equals(OperVehicleState.EventType.WC_SAVEVEH.getCode()))
baseVehicleService.saveVeh_wc(baseVehicle);
//调车入库生成台账
if (eventType.equals(OperVehicleState.EventType.TC_SAVEVEH.getCode()))
baseVehicleService.saveVeh_tc(baseVehicle);
}
return rb.success().setMsg("保存成功");
}
/***
* 只是更新验车推送数据作用验车推送需要更新的字段属性
*/
@Override
public ResultBean inspectVeh(List<BaseVehicleDto> dto) {
return baseVehicleService.inspectVeh(dto);
}
@Override
public ResultBean vehicleOutLibrary(BaseVehicleOutLibrary baseVehicleOutLibrary) {
return baseVehicleService.vehicleOutLibrary(baseVehicleOutLibrary);
@ -329,7 +360,6 @@ public class BaseVehicleRest implements BaseVehicleFeign {
}
/**
* 车型详细配置接口
*
@ -340,7 +370,7 @@ public class BaseVehicleRest implements BaseVehicleFeign {
@Override
public ResultBean<ExiCarConfigDetailVo> selectExiCarConfig(String modelSid, String configSid, String vehModelConfigSid) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(vehModelConfigSid)){
if (StringUtils.isBlank(vehModelConfigSid)) {
ExiCarConfigDetailVo exiCarConfigDetailVo = baseVehicleService.selectExiCarConfig(modelSid, configSid);
return rb.success().setData(exiCarConfigDetailVo);
}

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

@ -1,5 +1,7 @@
package com.yxt.anrui.base.biz.basevehicle;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.date.DateUtil;
import com.alibaba.nacos.api.config.filter.IFilterConfig;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -21,6 +23,8 @@ import com.yxt.anrui.base.biz.basevehiclemodel.BaseVehicleModelService;
import com.yxt.anrui.base.biz.basevehiclemodelappendix.BaseVehicleModelAppendixService;
import com.yxt.anrui.base.biz.basevehinstall.BaseVehinstallService;
import com.yxt.anrui.base.biz.commonappendix.CommonAppendixService;
import com.yxt.anrui.base.common.enums.CertificState;
import com.yxt.anrui.base.common.enums.ManPurOrderType;
import com.yxt.anrui.base.common.enums.VehicleState;
import com.yxt.anrui.buscenter.api.busmaindeposit.pc.PcBusMainDepositFeign;
import com.yxt.anrui.buscenter.api.busmaindeposit.pc.PcBusMainDepositVehicleQuery;
@ -45,6 +49,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ -1053,7 +1058,7 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
if (params.getVinNoList().size() > 0) {
qw.notIn("bv.vinNo", params.getVinNoList());
}
qw.eq("bv.isDelete",0);
qw.eq("bv.isDelete", 0);
//锁定状态
qw.eq("bv.lockedState", VehicleState.LockEnum.UN_LOCK.getCode());
// qw.and(wrapper -> wrapper.isNull("bv.lockedStateValue").or().eq("bv.lockedStateValue", ""));
@ -1120,7 +1125,8 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
public int updateStatusByVinNo(BaseVehicleUpdateQuery baseVehicleUpdateQuery) {
List<String> stringList = baseVehicleUpdateQuery.getVinNoLis();
String settlementStatus = baseVehicleUpdateQuery.getSettlementStatus();
return baseMapper.updateStatusByVinNo(stringList, settlementStatus);
String settlementStatusValue = baseVehicleUpdateQuery.getSettlementStatusValue();
return baseMapper.updateStatusByVinNo(stringList, settlementStatus,settlementStatusValue);
}
/**
@ -1653,7 +1659,7 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
remarks.append(contractNo);
}
String salePrice = baseVehicleOutLibrary.getSalePrice();
baseMapper.updateVehicleOutLibrary(vehicleSid,VehicleState.StockEnum.OUT_STOCK.getCode(),VehicleState.StockEnum.OUT_STOCK.getRemarks(), DateUtil.today(),salePrice,remarks.toString());
baseMapper.updateVehicleOutLibrary(vehicleSid, VehicleState.StockEnum.OUT_STOCK.getCode(), VehicleState.StockEnum.OUT_STOCK.getRemarks(), DateUtil.today(), salePrice, remarks.toString());
CrmCustomerTempDto crmCustomerTempDto = new CrmCustomerTempDto();
crmCustomerTempDto.setCustomerTypeKey(baseVehicleOutLibrary.getCustomerTypeKey());
crmCustomerTempDto.setCustomerType(baseVehicleOutLibrary.getCustomerType());
@ -1672,11 +1678,177 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
String solidDate = baseVehicleBuyBlank.getSolidDate();
CommonAppendix commonAppendix = baseVehicleBuyBlank.getCommonAppendix();
for (String s : vehicleSid) {
baseMapper.updateVehicleBuyBreak(s,solidDate,VehicleState.BuyoutEnum.BUYOUT.getCode(),VehicleState.BuyoutEnum.BUYOUT.getRemarks());
baseMapper.updateVehicleBuyBreak(s, solidDate, VehicleState.BuyoutEnum.BUYOUT.getCode(), VehicleState.BuyoutEnum.BUYOUT.getRemarks());
commonAppendix.setLinkSid(s);
commonAppendix.setAttachType(CommonAttachTypeEnum.VEHBUYBLANK.getAttachType());
commonAppendixService.save(commonAppendix);
}
return rb.success().setMsg("买断成功");
}
public ResultBean inspectVeh(List<BaseVehicleDto> dto) {
ResultBean rb = ResultBean.fireFail();
for (BaseVehicleDto baseVehicleDto : dto) {
String vinNo = baseVehicleDto.getVinNo();
ResultBean<BaseVehicleVo> baseVehicleVoResultBean = selVehicleByVinNo(vinNo);
BaseVehicleVo data = baseVehicleVoResultBean.getData();
if (data != null) {
String sid = data.getSid();
BaseVehicle baseVehicle = fetchBySid(sid);
//保修卡号
String warrantyCardNo = baseVehicleDto.getWarrantyCardNo();
//特殊或差异说明
String specialInstructions = baseVehicleDto.getSpecialInstructions();
baseVehicle.setWarrantyCardNo(warrantyCardNo);
baseVehicle.setSpecialInstructions(specialInstructions);
boolean isTrue = updateById(baseVehicle);
if (!isTrue) {
return rb.setMsg("更新台账验车数据失败");
}
} else {
return rb.success().setMsg("无需更新车辆台账");
}
}
return rb.success().setMsg("更新台账验车数据成功");
}
//验车:保修卡号、特殊情况说明
//排产入库:库存状态、到货日期、库存地点
// 退库申请 退库办理:库存状态
// 未售买断提交申请 未售买断审批不通过:买断状态
// 买断操作:买断状态、买断日期
// 调车提交申请 调车审核不通过:调车状态
public ResultBean updateVeh(BaseVehicle baseVehicle) {
ResultBean rb = ResultBean.fireFail();
if (null == baseVehicle)
return rb.success().setMsg("参数错误");
if (!updateById(baseVehicle)) {
return rb.setMsg("更新车辆台账据失败");
}
return rb.success().setMsg("更新车辆台账数据成功");
}
//入账生成台账
public ResultBean saveVeh_rz(BaseVehicle baseVehicle) {
ResultBean rb = ResultBean.fireFail();
if (null == baseVehicle) {
return rb.setMsg("参数错误");
}
baseVehicle.setSettlementStatus(VehicleState.BuyoutEnum.UN_BUYOUT.getCode());
baseVehicle.setSettlementStatusValue(VehicleState.BuyoutEnum.UN_BUYOUT.getRemarks());
baseVehicle.setLockedState(VehicleState.LockEnum.UN_LOCK.getCode());
baseVehicle.setLockedStateValue(VehicleState.LockEnum.UN_LOCK.getRemarks());
baseVehicle.setVehicleState(VehicleState.StockEnum.ING_STOCK.getCode());
baseVehicle.setVehicleStateValue(VehicleState.StockEnum.ING_STOCK.getRemarks());
baseVehicle.setWitPinState(VehicleState.ShuntingEnum.UN_SHUNTING.getCode());
baseVehicle.setWitPinStateValue(VehicleState.ShuntingEnum.UN_SHUNTING.getRemarks());
baseVehicle.setManPurOrderTypeKey(ManPurOrderType.ManOrderType.PC_ORDER.getCode());
baseVehicle.setManPurOrderTypeValue(ManPurOrderType.ManOrderType.PC_ORDER.getRemarks());
if (save(baseVehicle)) {
BaseVehicleCertificate baseVehicleCertificate = new BaseVehicleCertificate();
baseVehicleCertificate.setVinNo(baseVehicle.getVinNo());
baseVehicleCertificate.setCertificateState(CertificState.CertificateState.CERSTATE_XN.getCode());
baseVehicleCertificate.setCertificateStateValue(CertificState.CertificateState.CERSTATE_XN.getRemarks());
baseVehicleCertificate.setVehicleSid(baseVehicle.getSid());
baseVehicleCertificate.setTransferStateKey(CertificState.TransferState.TRANSTATE_WJS.getCode());
baseVehicleCertificate.setTransferStateValue(CertificState.TransferState.TRANSTATE_WJS.getRemarks());
baseVehicleCertificateService.save(baseVehicleCertificate);
return rb.success().setMsg("入账新增车辆台账数据成功");
}
return rb.setMsg("入账新增车辆台账据失败");
}
//外采生成台账
public ResultBean saveVeh_wc(BaseVehicle baseVehicle) {
ResultBean rb = ResultBean.fireFail();
if (null == baseVehicle) {
return rb.setMsg("参数错误");
}
baseVehicle.setSettlementStatus(VehicleState.BuyoutEnum.UN_BUYOUT.getCode());
baseVehicle.setSettlementStatusValue(VehicleState.BuyoutEnum.UN_BUYOUT.getRemarks());
baseVehicle.setLockedState(VehicleState.LockEnum.UN_LOCK.getCode());
baseVehicle.setLockedStateValue(VehicleState.LockEnum.UN_LOCK.getRemarks());
baseVehicle.setVehicleState(VehicleState.StockEnum.STOCK.getCode());
baseVehicle.setVehicleStateValue(VehicleState.StockEnum.STOCK.getRemarks());
baseVehicle.setWitPinState(VehicleState.ShuntingEnum.OUTCOLL.getCode());
baseVehicle.setWitPinStateValue(VehicleState.ShuntingEnum.OUTCOLL.getRemarks());
baseVehicle.setManPurOrderTypeKey(ManPurOrderType.ManOrderType.WC_ORDER.getCode());
baseVehicle.setManPurOrderTypeValue(ManPurOrderType.ManOrderType.WC_ORDER.getRemarks());
if (!save(baseVehicle)) {
BaseVehicleCertificate baseVehicleCertificate = new BaseVehicleCertificate();
baseVehicleCertificate.setVinNo(baseVehicle.getVinNo());
baseVehicleCertificate.setCertificateState(CertificState.CertificateState.CERSTATE_DZ.getCode());
baseVehicleCertificate.setCertificateStateValue(CertificState.CertificateState.CERSTATE_DZ.getRemarks());
baseVehicleCertificate.setVehicleSid(baseVehicle.getSid());
baseVehicleCertificate.setTransferStateKey(CertificState.TransferState.TRANSTATE_WJS.getCode());
baseVehicleCertificate.setTransferStateValue(CertificState.TransferState.TRANSTATE_WJS.getRemarks());
baseVehicleCertificateService.save(baseVehicleCertificate);
return rb.success().setMsg("外采入库新增车辆台账据成功");
}
return rb.setMsg("外采新增车辆台账数据失败");
}
//调车入库生成台账
public ResultBean saveVeh_tc(BaseVehicle baseVehicle) {
ResultBean rb = ResultBean.fireFail();
if (null == baseVehicle) {
return rb.setMsg("参数错误");
}
//调出分公司车辆台账更新调车状态
baseVehicle.setWitPinState(VehicleState.ShuntingEnum.WITPIN.getCode());
baseVehicle.setWitPinStateValue(VehicleState.ShuntingEnum.WITPIN.getRemarks());
if (!updateById(baseVehicle)) {
return rb.setMsg("调车入库更新调出方车辆台账据失败");
}
//新建调入分公司车辆台账,设置调入分公司sid
BaseVehicle new_baseVehicle = new BaseVehicle();
baseVehicle.setId(null);
baseVehicle.setSid(null);
baseVehicle.setCreateTime(null);
baseVehicle.setModifyTime(null);
baseVehicle.setCreateBySid(null);
BeanUtil.copyProperties(baseVehicle, new_baseVehicle, new CopyOptions().setIgnoreNullValue(true));
//调车状态
new_baseVehicle.setWitPinState(VehicleState.ShuntingEnum.WITPURCHASE.getCode());
new_baseVehicle.setWitPinStateValue(VehicleState.ShuntingEnum.WITPURCHASE.getRemarks());
//库存状态
new_baseVehicle.setVehicleState(VehicleState.StockEnum.STOCK.getCode());
new_baseVehicle.setVehicleStateValue(VehicleState.StockEnum.STOCK.getRemarks());
//锁定状态
new_baseVehicle.setLockedState(VehicleState.LockEnum.UN_LOCK.getCode());
new_baseVehicle.setLockedStateValue(VehicleState.LockEnum.UN_LOCK.getRemarks());
//买断状态
new_baseVehicle.setSettlementStatus(VehicleState.BuyoutEnum.UN_BUYOUT.getCode());
new_baseVehicle.setSettlementStatusValue(VehicleState.BuyoutEnum.UN_BUYOUT.getRemarks());
//采购订单类型
new_baseVehicle.setManPurOrderTypeKey(ManPurOrderType.ManOrderType.TC_ORDER.getCode());
new_baseVehicle.setManPurOrderTypeKey(ManPurOrderType.ManOrderType.TC_ORDER.getRemarks());
if (!save(new_baseVehicle)) {
BaseVehicleCertificate baseVehicleCertificate = new BaseVehicleCertificate();
baseVehicleCertificate.setVinNo(new_baseVehicle.getVinNo());
baseVehicleCertificate.setCertificateState(CertificState.CertificateState.CERSTATE_XN.getCode());
baseVehicleCertificate.setCertificateStateValue(CertificState.CertificateState.CERSTATE_XN.getRemarks());
baseVehicleCertificate.setVehicleSid(new_baseVehicle.getSid());
baseVehicleCertificate.setTransferStateKey(CertificState.TransferState.TRANSTATE_WJS.getCode());
baseVehicleCertificate.setTransferStateValue(CertificState.TransferState.TRANSTATE_WJS.getRemarks());
baseVehicleCertificateService.save(baseVehicleCertificate);
return rb.success().setMsg("调车入库新增调入方车辆台账据成功");
}
return rb.setMsg("调车入库新增调入方车辆台账数据失败");
}
}

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

@ -292,6 +292,11 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
}
UpdateFlowFieldVo ufVo = voResultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(ufVo));
//更新车辆的结算状态为预买断
//结算状态设置为预买断
String settlementStatus = VehicleState.BuyoutEnum.PRE_BUYOUT.getCode();
String settlementStatusValue = VehicleState.BuyoutEnum.PRE_BUYOUT.getRemarks();
updateByVinNo(bv.getBusinessSid(), settlementStatus, settlementStatusValue);
return voResultBean;
}
if (r == 2) {
@ -305,11 +310,6 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
bv.setInstanceId(dto.getInstanceId());
return complete(bv);
}
//更新车辆的结算状态为预买断
//结算状态设置为预买断
String settlementStatus = VehicleState.BuyoutEnum.PRE_BUYOUT.getCode();
String settlementStatusValue = VehicleState.BuyoutEnum.PRE_BUYOUT.getRemarks();
updateByVinNo(bv.getBusinessSid(), settlementStatus, settlementStatusValue);
return rb;
}
@ -349,10 +349,10 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
BaseVehicleActualSales baseVehicleActualSales = fetchBySid(bv.getBusinessSid());
if (bv.getTaskId().equals(baseVehicleActualSales.getTaskId())) {
//判断车辆的结算状态是否包含预买断的状态,如果是的话,返回审核失败
boolean isTrue = isTrue(bv.getBusinessSid());
/*boolean isTrue = isTrue(bv.getBusinessSid());
if (isTrue) {
return rb.setMsg("审核失败!该申请中包含结算状态已是预买断状态的车辆");
}
}*/
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());

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

@ -1,6 +1,7 @@
package com.yxt.anrui.fin.api.kingdee;
import com.yxt.anrui.fin.api.kingdee.appayable.APPayable;
import com.yxt.anrui.fin.api.kingdee.arreceivable.ARReceivable;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -35,5 +36,5 @@ public interface FinKingDeeFeign {
@ApiOperation("入账保存应收单的接口")
@PostMapping("/draftReceivableBill")
@ResponseBody
ResultBean draftReceivableBill(@RequestBody APPayable APPayable);
ResultBean draftReceivableBill(@RequestBody ARReceivable aRReceivable);
}

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

@ -1,6 +1,7 @@
package com.yxt.anrui.fin.api.kingdee;
import com.yxt.anrui.fin.api.kingdee.appayable.APPayable;
import com.yxt.anrui.fin.api.kingdee.arreceivable.ARReceivable;
import com.yxt.common.core.result.ResultBean;
public class FinKingDeeFeignFallBack
@ -11,7 +12,7 @@ implements FinKingDeeFeign{
}
@Override
public ResultBean draftReceivableBill(APPayable APPayable) {
public ResultBean draftReceivableBill(ARReceivable aRReceivable) {
return null;
}
}

13
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/KingDeeResult.java

@ -0,0 +1,13 @@
package com.yxt.anrui.fin.api.kingdee;
import lombok.Data;
/**
* 金蝶接口返回的数据类型
*/
@Data
public class KingDeeResult {
private String id;
private String number;
private String dIndex;
}

113
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/appayable/APPayable.java

@ -1,5 +1,9 @@
package com.yxt.anrui.fin.api.kingdee.appayable;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.parser.Feature;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -7,6 +11,8 @@ import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -96,7 +102,7 @@ public class APPayable {
@ApiModelProperty("车辆列表")
private List<ScmApplyInboundVehicleDto> vehicleList;
@Data
public static class ScmApplyInboundVehicleDto implements Dto {
@ApiModelProperty("车辆信息sid")
@ -114,109 +120,4 @@ public class APPayable {
@ApiModelProperty("备注")
private String remarks;
}
/**
* 业务实体类按照模板进行装换
* @param params
* @param readJsonFile
* @param fEntityDetail_
* @param fEntityPlan_
* @return
*/
public static String cloneKingDeeParams(Map<String,Object> params, String readJsonFile, String fEntityDetail_, String fEntityPlan_){
readJsonFile = readJsonFile.replace("@KD_Creator", "zs");
//单据类型:FBillTypeID (必填项)
readJsonFile = readJsonFile.replace("@KD_FBillTypeID", "YFD01_SYS");
//业务日期:FDATE (必填项)
readJsonFile = readJsonFile.replace("@KD_FDATE", "2022-07-26");
//单据状态:FDOCUMENTSTATUS (必填项)
readJsonFile = readJsonFile.replace("@KD_FDOCUMENTSTATUS", "Z");
//供应商:FSUPPLIERID (必填项)
readJsonFile = readJsonFile.replace("@KD_FSUPPLIERID", "010001");
//币别:FCURRENCYID (必填项)
readJsonFile = readJsonFile.replace("@KD_FCURRENCYID", "PRE001");
//付款条件:FPayConditon
readJsonFile = readJsonFile.replace("@KD_FPayConditon", "");
//业务类型:FBUSINESSTYPE (必填项)
readJsonFile = readJsonFile.replace("@KD_FBUSINESSTYPE", "CG");
//结算组织:FSETTLEORGID (必填项)
readJsonFile = readJsonFile.replace("@KD_FSETTLEORGID", "101");
//付款组织:FPAYORGID (必填项)
readJsonFile = readJsonFile.replace("@KD_FPAYORGID", "101");
//采购部门:FPURCHASEDEPTID (必填项)
readJsonFile = readJsonFile.replace("@KD_FPURCHASEDEPTID", "01");
//作废状态:FCancelStatus (必填项)
readJsonFile = readJsonFile.replace("@KD_FCancelStatus", "A");
StringBuilder sb=new StringBuilder();
for(int i=0;i<1;i++){
String fEntityDetail=fEntityDetail_.toString();
//物料编码:FMATERIALID
fEntityDetail = fEntityDetail.replace("@KD_FMATERIALID", " JX091054");
//物料说明:FMaterialDesc
fEntityDetail = fEntityDetail.replace("@KD_FMaterialDesc", "X牵引6*4-550超");
//计价单位:FPRICEUNITID
fEntityDetail = fEntityDetail.replace("@KD_FPRICEUNITID", " liang");
//单价:FPrice
fEntityDetail = fEntityDetail.replace("@KD_FPrice@", "312500.0");
//计价数量:FPriceQty
fEntityDetail = fEntityDetail.replace("@KD_FPriceQty", "2.0");
//含税单价:FTaxPrice
fEntityDetail = fEntityDetail.replace("@KD_FTaxPrice@", "350000.0");
//含税净价:FPriceWithTax
fEntityDetail = fEntityDetail.replace("@KD_FPriceWithTax", "346500.0");
//税率(%):FEntryTaxRate
fEntityDetail = fEntityDetail.replace("@KD_FEntryTaxRate", "12.0");
//运输编号:F_PMZC_Assistant
fEntityDetail = fEntityDetail.replace("@KD_F_PMZC_Assistant", "1904110789");
//物流车辆:F_PMZC_Base
fEntityDetail = fEntityDetail.replace("@KD_F_PMZC_Base", "0001F");
//物流项目:F_PMZC_Base1
fEntityDetail = fEntityDetail.replace("@KD_F_PMZC_Base1", "01.001");
//折扣率(%):FEntryDiscountRate
fEntityDetail = fEntityDetail.replace("@KD_FEntryDiscountRate", "1.0");
//折扣额:FDISCOUNTAMOUNTFOR
fEntityDetail = fEntityDetail.replace("@KD_FDISCOUNTAMOUNTFOR", "7000.0");
//不含税金额:FNoTaxAmountFor_D
fEntityDetail = fEntityDetail.replace("@KD_FNoTaxAmountFor_D", "618750.0");
//税额:FTAXAMOUNTFOR_D
fEntityDetail = fEntityDetail.replace("@KD_FTAXAMOUNTFOR_D", "74250.0");
//价税合计:FALLAMOUNTFOR_D
fEntityDetail = fEntityDetail.replace("@KD_F_PMZC_Base1", "693000.0");
//库存单位:FStockUnitId
fEntityDetail = fEntityDetail.replace("@KD_FStockUnitId", "liang");
//库存数量:FStockQty
fEntityDetail = fEntityDetail.replace("@KD_FStockQty", "2.0");
//库存基本数量:FStockBaseQty
fEntityDetail = fEntityDetail.replace("@KD_F_PMZC_Base1", "2.0");
//计价基本分母:FPriceBaseDen
fEntityDetail = fEntityDetail.replace("@KD_FPriceBaseDen", "1.0");
//库存基本分子:FStockBaseNum
fEntityDetail = fEntityDetail.replace("@KD_FStockBaseNum", "1.0");
//含税单价:FTaxPrice
fEntityDetail = fEntityDetail.replace("@KD_FTaxPrice@", "350000.0");
//税率(%):FEntryTaxRate
fEntityDetail = fEntityDetail.replace("@KD_FEntryTaxRate", "12.0");
//价税合计:FALLAMOUNTFOR_D
fEntityDetail = fEntityDetail.replace("@KD_FALLAMOUNTFOR_D", "693000.0");
//库存基本数量:FStockBaseQty
fEntityDetail = fEntityDetail.replace("@KD_FStockBaseQty", "2.0");
sb.append(fEntityDetail).append(",");
}
String sbs=sb.substring(0,sb.length()-1);
readJsonFile=readJsonFile.replace("@KD_FEntityDetail",sbs);
StringBuilder sb_fEntityPlan=new StringBuilder();
for(int i=0;i<1;i++){
String fEntityPlan=fEntityPlan_.toString();
//应付金额:FPAYAMOUNTFOR
fEntityPlan = fEntityPlan.replace("@KD_FPAYAMOUNTFOR", "693000.00");
//应付比例(%):FPAYRATE
fEntityPlan = fEntityPlan.replace("@KD_FPAYRATE", "100.00000");
//表头计划 - 到期日:FENDDATE
fEntityPlan = fEntityPlan.replace("@KD_FENDDATE", "2022-07-22 00:00:00");
sb_fEntityPlan.append(fEntityPlan).append(",");
}
String sb_fEntityPlans=sb_fEntityPlan.substring(0,sb_fEntityPlan.length()-1);
readJsonFile=readJsonFile.replace("@KD_FEntityPlan",sb_fEntityPlans);
return readJsonFile;
}
}

6
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/arreceivable/ARReceivable.java

@ -2,12 +2,13 @@ package com.yxt.anrui.fin.api.kingdee.arreceivable;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import java.math.BigDecimal;
import java.util.List;
@Data
public class ARReceivable {
@ApiModelProperty("车辆入账单sid")
@ -94,7 +95,8 @@ public class ARReceivable {
@ApiModelProperty("车辆列表")
private List<ScmApplyInboundVehicleDto> vehicleList;
class ScmApplyInboundVehicleDto implements Dto {
@Data
public static class ScmApplyInboundVehicleDto implements Dto {
@ApiModelProperty("车辆信息sid")
private String sid;

22
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/arreceivable/kingdeedata/FCUSTOMERID.java

@ -1,22 +0,0 @@
/**
* Copyright 2022 bejson.com
*/
package com.yxt.anrui.fin.api.kingdee.arreceivable.kingdeedata;
/**
* Auto-generated: 2022-07-19 18:43:26
*
* @author bejson.com (i@bejson.com)
* @website http://www.bejson.com/java2pojo/
*/
public class FCUSTOMERID {
private String FNumber;
public void setFNumber(String FNumber) {
this.FNumber = FNumber;
}
public String getFNumber() {
return FNumber;
}
}

22
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/arreceivable/kingdeedata/FSALEDEPTID.java

@ -1,22 +0,0 @@
/**
* Copyright 2022 bejson.com
*/
package com.yxt.anrui.fin.api.kingdee.arreceivable.kingdeedata;
/**
* Auto-generated: 2022-07-19 18:43:26
*
* @author bejson.com (i@bejson.com)
* @website http://www.bejson.com/java2pojo/
*/
public class FSALEDEPTID {
private String FNumber;
public void setFNumber(String FNumber) {
this.FNumber = FNumber;
}
public String getFNumber() {
return FNumber;
}
}

22
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/arreceivable/kingdeedata/FSALEORGID.java

@ -1,22 +0,0 @@
/**
* Copyright 2022 bejson.com
*/
package com.yxt.anrui.fin.api.kingdee.arreceivable.kingdeedata;
/**
* Auto-generated: 2022-07-19 18:43:26
*
* @author bejson.com (i@bejson.com)
* @website http://www.bejson.com/java2pojo/
*/
public class FSALEORGID {
private String FNumber;
public void setFNumber(String FNumber) {
this.FNumber = FNumber;
}
public String getFNumber() {
return FNumber;
}
}

22
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/arreceivable/kingdeedata/FSalUnitId.java

@ -1,22 +0,0 @@
/**
* Copyright 2022 bejson.com
*/
package com.yxt.anrui.fin.api.kingdee.arreceivable.kingdeedata;
/**
* Auto-generated: 2022-07-19 18:43:26
*
* @author bejson.com (i@bejson.com)
* @website http://www.bejson.com/java2pojo/
*/
public class FSalUnitId {
private String FNumber;
public void setFNumber(String FNumber) {
this.FNumber = FNumber;
}
public String getFNumber() {
return FNumber;
}
}

22
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/arreceivable/kingdeedata/F_PAEZ_Assistant1.java

@ -1,22 +0,0 @@
/**
* Copyright 2022 bejson.com
*/
package com.yxt.anrui.fin.api.kingdee.arreceivable.kingdeedata;
/**
* Auto-generated: 2022-07-19 18:43:26
*
* @author bejson.com (i@bejson.com)
* @website http://www.bejson.com/java2pojo/
*/
public class F_PAEZ_Assistant1 {
private String FNumber;
public void setFNumber(String FNumber) {
this.FNumber = FNumber;
}
public String getFNumber() {
return FNumber;
}
}

22
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/arreceivable/kingdeedata/F_PAEZ_Base.java

@ -1,22 +0,0 @@
/**
* Copyright 2022 bejson.com
*/
package com.yxt.anrui.fin.api.kingdee.arreceivable.kingdeedata;
/**
* Auto-generated: 2022-07-19 18:43:26
*
* @author bejson.com (i@bejson.com)
* @website http://www.bejson.com/java2pojo/
*/
public class F_PAEZ_Base {
private String FNUMBER;
public void setFNUMBER(String FNUMBER) {
this.FNUMBER = FNUMBER;
}
public String getFNUMBER() {
return FNUMBER;
}
}

22
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/arreceivable/kingdeedata/F_PMZC_Assistant.java

@ -1,22 +0,0 @@
/**
* Copyright 2022 bejson.com
*/
package com.yxt.anrui.fin.api.kingdee.arreceivable.kingdeedata;
/**
* Auto-generated: 2022-07-19 18:43:26
*
* @author bejson.com (i@bejson.com)
* @website http://www.bejson.com/java2pojo/
*/
public class F_PMZC_Assistant {
private String FNumber;
public void setFNumber(String FNumber) {
this.FNumber = FNumber;
}
public String getFNumber() {
return FNumber;
}
}

22
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/arreceivable/kingdeedata/F_PMZC_Assistant1.java

@ -1,22 +0,0 @@
/**
* Copyright 2022 bejson.com
*/
package com.yxt.anrui.fin.api.kingdee.arreceivable.kingdeedata;
/**
* Auto-generated: 2022-07-19 18:43:26
*
* @author bejson.com (i@bejson.com)
* @website http://www.bejson.com/java2pojo/
*/
public class F_PMZC_Assistant1 {
private String FNumber;
public void setFNumber(String FNumber) {
this.FNumber = FNumber;
}
public String getFNumber() {
return FNumber;
}
}

22
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/arreceivable/kingdeedata/F_PMZC_Assistant2.java

@ -1,22 +0,0 @@
/**
* Copyright 2022 bejson.com
*/
package com.yxt.anrui.fin.api.kingdee.arreceivable.kingdeedata;
/**
* Auto-generated: 2022-07-19 18:43:26
*
* @author bejson.com (i@bejson.com)
* @website http://www.bejson.com/java2pojo/
*/
public class F_PMZC_Assistant2 {
private String FNumber;
public void setFNumber(String FNumber) {
this.FNumber = FNumber;
}
public String getFNumber() {
return FNumber;
}
}

22
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/arreceivable/kingdeedata/F_PMZC_Base.java

@ -1,22 +0,0 @@
/**
* Copyright 2022 bejson.com
*/
package com.yxt.anrui.fin.api.kingdee.arreceivable.kingdeedata;
/**
* Auto-generated: 2022-07-19 18:43:26
*
* @author bejson.com (i@bejson.com)
* @website http://www.bejson.com/java2pojo/
*/
public class F_PMZC_Base {
private String FNUMBER;
public void setFNUMBER(String FNUMBER) {
this.FNUMBER = FNUMBER;
}
public String getFNUMBER() {
return FNUMBER;
}
}

242
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/arreceivable/kingdeedata/Model.java

@ -1,242 +0,0 @@
/**
* Copyright 2022 bejson.com
*/
package com.yxt.anrui.fin.api.kingdee.arreceivable.kingdeedata;
import java.util.Date;
import java.util.List;
/**
* Auto-generated: 2022-07-19 18:43:26
*
* @author bejson.com (i@bejson.com)
* @website http://www.bejson.com/java2pojo/
*/
public class Model {
/*
private int FID;
private FBillTypeID FBillTypeID;
private String FBillNo;
private Date FDATE;
private boolean FISINIT;
private Date FENDDATE_H;
private FCUSTOMERID FCUSTOMERID;
private FCURRENCYID FCURRENCYID;
private FPayConditon FPayConditon;
private boolean FISPRICEEXCLUDETAX;
private FSETTLEORGID FSETTLEORGID;
private FPAYORGID FPAYORGID;
private FSALEORGID FSALEORGID;
private boolean FISTAX;
private FSALEDEPTID FSALEDEPTID;
private String FCancelStatus;
private String FBUSINESSTYPE;
private String FAR_Remark;
private String FSetAccountType;
private boolean FISHookMatch;
private boolean FISINVOICEARLIER;
private F_PAEZ_Assistant1 F_PAEZ_Assistant1;
private F_PAEZ_Base F_PAEZ_Base;
private F_PMZC_Assistant2 F_PMZC_Assistant2;
private FsubHeadSuppiler FsubHeadSuppiler;
private FsubHeadFinc FsubHeadFinc;
private List<FEntityDetail> FEntityDetail;
private List<FEntityPlan> FEntityPlan;
public void setFID(int FID) {
this.FID = FID;
}
public int getFID() {
return FID;
}
public void setFBillTypeID(FBillTypeID FBillTypeID) {
this.FBillTypeID = FBillTypeID;
}
public FBillTypeID getFBillTypeID() {
return FBillTypeID;
}
public void setFBillNo(String FBillNo) {
this.FBillNo = FBillNo;
}
public String getFBillNo() {
return FBillNo;
}
public void setFDATE(Date FDATE) {
this.FDATE = FDATE;
}
public Date getFDATE() {
return FDATE;
}
public void setFISINIT(boolean FISINIT) {
this.FISINIT = FISINIT;
}
public boolean getFISINIT() {
return FISINIT;
}
public void setFENDDATE_H(Date FENDDATE_H) {
this.FENDDATE_H = FENDDATE_H;
}
public Date getFENDDATE_H() {
return FENDDATE_H;
}
public void setFCUSTOMERID(FCUSTOMERID FCUSTOMERID) {
this.FCUSTOMERID = FCUSTOMERID;
}
public FCUSTOMERID getFCUSTOMERID() {
return FCUSTOMERID;
}
public void setFCURRENCYID(FCURRENCYID FCURRENCYID) {
this.FCURRENCYID = FCURRENCYID;
}
public FCURRENCYID getFCURRENCYID() {
return FCURRENCYID;
}
public void setFPayConditon(FPayConditon FPayConditon) {
this.FPayConditon = FPayConditon;
}
public FPayConditon getFPayConditon() {
return FPayConditon;
}
public void setFISPRICEEXCLUDETAX(boolean FISPRICEEXCLUDETAX) {
this.FISPRICEEXCLUDETAX = FISPRICEEXCLUDETAX;
}
public boolean getFISPRICEEXCLUDETAX() {
return FISPRICEEXCLUDETAX;
}
public void setFSETTLEORGID(FSETTLEORGID FSETTLEORGID) {
this.FSETTLEORGID = FSETTLEORGID;
}
public FSETTLEORGID getFSETTLEORGID() {
return FSETTLEORGID;
}
public void setFPAYORGID(FPAYORGID FPAYORGID) {
this.FPAYORGID = FPAYORGID;
}
public FPAYORGID getFPAYORGID() {
return FPAYORGID;
}
public void setFSALEORGID(FSALEORGID FSALEORGID) {
this.FSALEORGID = FSALEORGID;
}
public FSALEORGID getFSALEORGID() {
return FSALEORGID;
}
public void setFISTAX(boolean FISTAX) {
this.FISTAX = FISTAX;
}
public boolean getFISTAX() {
return FISTAX;
}
public void setFSALEDEPTID(FSALEDEPTID FSALEDEPTID) {
this.FSALEDEPTID = FSALEDEPTID;
}
public FSALEDEPTID getFSALEDEPTID() {
return FSALEDEPTID;
}
public void setFCancelStatus(String FCancelStatus) {
this.FCancelStatus = FCancelStatus;
}
public String getFCancelStatus() {
return FCancelStatus;
}
public void setFBUSINESSTYPE(String FBUSINESSTYPE) {
this.FBUSINESSTYPE = FBUSINESSTYPE;
}
public String getFBUSINESSTYPE() {
return FBUSINESSTYPE;
}
public void setFAR_Remark(String FAR_Remark) {
this.FAR_Remark = FAR_Remark;
}
public String getFAR_Remark() {
return FAR_Remark;
}
public void setFSetAccountType(String FSetAccountType) {
this.FSetAccountType = FSetAccountType;
}
public String getFSetAccountType() {
return FSetAccountType;
}
public void setFISHookMatch(boolean FISHookMatch) {
this.FISHookMatch = FISHookMatch;
}
public boolean getFISHookMatch() {
return FISHookMatch;
}
public void setFISINVOICEARLIER(boolean FISINVOICEARLIER) {
this.FISINVOICEARLIER = FISINVOICEARLIER;
}
public boolean getFISINVOICEARLIER() {
return FISINVOICEARLIER;
}
public void setF_PAEZ_Assistant1(F_PAEZ_Assistant1 F_PAEZ_Assistant1) {
this.F_PAEZ_Assistant1 = F_PAEZ_Assistant1;
}
public F_PAEZ_Assistant1 getF_PAEZ_Assistant1() {
return F_PAEZ_Assistant1;
}
public void setF_PAEZ_Base(F_PAEZ_Base F_PAEZ_Base) {
this.F_PAEZ_Base = F_PAEZ_Base;
}
public F_PAEZ_Base getF_PAEZ_Base() {
return F_PAEZ_Base;
}
public void setF_PMZC_Assistant2(F_PMZC_Assistant2 F_PMZC_Assistant2) {
this.F_PMZC_Assistant2 = F_PMZC_Assistant2;
}
public F_PMZC_Assistant2 getF_PMZC_Assistant2() {
return F_PMZC_Assistant2;
}
public void setFsubHeadSuppiler(FsubHeadSuppiler FsubHeadSuppiler) {
this.FsubHeadSuppiler = FsubHeadSuppiler;
}
public FsubHeadSuppiler getFsubHeadSuppiler() {
return FsubHeadSuppiler;
}
public void setFsubHeadFinc(FsubHeadFinc FsubHeadFinc) {
this.FsubHeadFinc = FsubHeadFinc;
}
public FsubHeadFinc getFsubHeadFinc() {
return FsubHeadFinc;
}
public void setFEntityDetail(List<FEntityDetail> FEntityDetail) {
this.FEntityDetail = FEntityDetail;
}
public List<FEntityDetail> getFEntityDetail() {
return FEntityDetail;
}
public void setFEntityPlan(List<FEntityPlan> FEntityPlan) {
this.FEntityPlan = FEntityPlan;
}
public List<FEntityPlan> getFEntityPlan() {
return FEntityPlan;
}
*/
}

116
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/entrybill/APPayable.java

@ -1,116 +0,0 @@
package com.yxt.anrui.fin.api.kingdee.entrybill;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import java.math.BigDecimal;
import java.util.List;
@Data
public class APPayable {
@ApiModelProperty("车辆入账单sid")
private String sid;
@ApiModelProperty("用户sid")
@NotBlank(message = "用户sid不能为空")
private String userSid;
@ApiModelProperty("申请编号")
@NotBlank(message = "申请编号不能为空")
private String applicationCode;
@ApiModelProperty("申请人sid")
@NotBlank(message = "申请人不能为空")
private String applicationSid;
@ApiModelProperty("申请人名称")
@NotBlank(message = "申请人不能为空")
private String applicationName;
@ApiModelProperty("申请日期")
@Pattern(regexp = "^(\\s*)|([1-9]\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]))$", message = "申请日期日期格式不正确")
private String applicationDate;
@ApiModelProperty("采购订单sid")
@NotBlank(message = "采购订单不能为空")
private String vehicleOrderSid;
@ApiModelProperty("采购订单编号")
@NotBlank(message = "采购订单编号不能为空")
private String purchaseOrderNo;
@ApiModelProperty("车型sid ")
@NotBlank(message = "车型不能为空")
private String modelSid;
@ApiModelProperty("车型名称 ")
@NotBlank(message = "车型名称不能为空")
private String modelName;
@ApiModelProperty("常用配置 ")
private String configName;
@ApiModelProperty("常用配置Sid")
private String configSid;
@ApiModelProperty("厂家合同价")
private BigDecimal contractPrice;
@ApiModelProperty("其中上装价格")
private BigDecimal amongSzPrice;
@ApiModelProperty("上装价格计算依据")
private String szPriceCalBasis;
@ApiModelProperty("一次运费")
private BigDecimal onceFreight;
@ApiModelProperty("二次运费")
private BigDecimal secondaryFreight;
@ApiModelProperty("下浮比例")
private String lowerProportion;
@ApiModelProperty("下浮金额")
private BigDecimal lowerMoney;
@ApiModelProperty("下浮合计")
private BigDecimal lowerTotal;
@ApiModelProperty("下浮备注")
private String lowerRemarks;
@ApiModelProperty("厂家结算价")
private BigDecimal costPrice;
@ApiModelProperty("内部编码")
private String insideCode;
@ApiModelProperty("厂家入库日期")
private String priceDate;
@ApiModelProperty("厂家发车日期")
private String departureDate;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("流程状态")
private String nodeState;
@ApiModelProperty("车辆台数")
private String num;
@ApiModelProperty("车辆列表")
private List<ScmApplyInboundVehicleDto> vehicleList;
class ScmApplyInboundVehicleDto implements Dto {
@ApiModelProperty("车辆信息sid")
private String sid;
@ApiModelProperty("车辆入库单sid")
private String applySid;
@ApiModelProperty("车型sid")
private String modelSid;
@ApiModelProperty("车架号(VIN)")
private String vinNo;
@ApiModelProperty("备注")
private String remarks;
}
}

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

@ -2,6 +2,7 @@ package com.yxt.anrui.fin.biz.kingdee;
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign;
import com.yxt.anrui.fin.api.kingdee.appayable.APPayable;
import com.yxt.anrui.fin.api.kingdee.arreceivable.ARReceivable;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -29,7 +30,7 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
@PostMapping("/draftReceivableBill")
@ResponseBody
@Override
public ResultBean draftReceivableBill(APPayable APPayable) {
return finKingDeeFeignService.draftReceivableBill(APPayable);
public ResultBean draftReceivableBill(ARReceivable aRReceivable) {
return finKingDeeFeignService.draftReceivableBill(aRReceivable);
}
}

43
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignService.java

@ -7,8 +7,10 @@ import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.parser.Feature;
import com.yxt.anrui.fin.api.kingdee.KingDeeBillId;
import com.yxt.anrui.fin.api.kingdee.appayable.APPayable;
import com.yxt.anrui.fin.api.kingdee.arreceivable.ARReceivable;
import com.yxt.anrui.fin.api.kingdee.kingdeedata.Data;
import com.yxt.anrui.fin.biz.kingdee.entrybill.EntryBillCastToKingDeeBillFields;
import com.yxt.anrui.fin.biz.kingdee.receivablebill.ReceivableBillCastToKingDeeBillFields;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
import org.slf4j.Logger;
@ -72,16 +74,45 @@ public class FinKingDeeFeignService {
return rb;
}
/**
* 生成的应单的数据推送到金蝶的平台中
* @param APPayable
* 生成的应单的数据推送到金蝶的平台中
* @param aRReceivable
* @return
*/
public ResultBean draftReceivableBill(APPayable APPayable) {
public ResultBean draftReceivableBill(ARReceivable aRReceivable) {
ResultBean rb=ResultBean.fireFail();
Data data=new Data();
// EntryBillCastToKingDeeBillFields.cast(APPayable,data);
//业务表的主表数据集合
Map<String,String> map_fEntityModel_=new HashMap<>();
//物料的数组集合
List<Map<String,String>> vehicleListMap=new ArrayList<>();
if(aRReceivable.getApplicationDate()==null){
return rb.setMsg("业务日期 不能为空");
}
//业务日期
map_fEntityModel_.put("FDATE",aRReceivable.getApplicationDate());
//供应商:FSUPPLIERID (必填项)
if(aRReceivable.getApplicationDate()==null){
return rb.setMsg("供应商 不能为空");
}
map_fEntityModel_.put("FSUPPLIERID","010001");
List<ARReceivable.ScmApplyInboundVehicleDto> vehicleList = aRReceivable.getVehicleList()==null?new ArrayList<>(): aRReceivable.getVehicleList();
for(int i=0;i<vehicleList.size();i++){
ARReceivable.ScmApplyInboundVehicleDto f=vehicleList.get(i);
Map<String,String> m=new HashMap<>();
if(StringUtils.isBlank(f.getVinNo())){
return rb.setMsg("物料编码 不能为空");
}
if(StringUtils.isBlank(f.getRemarks())){
return rb.setMsg("物料名称 不能为空");
}
m.put("FMATERIALID",f.getVinNo());
m.put("FMaterialDesc",f.getRemarks());
vehicleListMap.add(m);
}
// ReceivableBillCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_, vehicleListMap);
String kingDeeData = ReceivableBillCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_,vehicleListMap);
try {
return null;//saveBill(KingDeeBillId.AR_RECEIVABLE.getID(),"data");
return saveBill(KingDeeBillId.AP_PAYABLE.getID(),kingDeeData);
} catch (Exception e) {
e.printStackTrace();
}

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

@ -1,8 +1,10 @@
package com.yxt.anrui.fin.biz.kingdee;
import cn.hutool.json.JSONString;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yxt.anrui.fin.api.kingdee.KingDeeResult;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
import org.apache.http.Header;
import org.apache.http.HttpResponse;
@ -11,11 +13,17 @@ import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.net.URI;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class KingDeeSaveSKD {
private static Logger log= LoggerFactory.getLogger(KingDeeSaveSKD.class);
private static String sessionkey = "kdservice-sessionid";
private static String aspnetsessionkey = "ASP.NET_SessionId";
@ -23,6 +31,28 @@ public class KingDeeSaveSKD {
private static String sessionValue = "";
private static String aspnetsessionValue = "";
/**
* 登录金蝶的账户信息
*/
private static String acctID = "61dce6601125a0";
/**
* 登录金蝶的账户信息
*/
private static String userName = "信息部1";
/**
* 登录金蝶的账户信息
*/
private static String password = "123321";
/**
* 登录金蝶的账户信息
*/
private static String lcid = "2052";
// 数据保存接口地址
private static String Save_URL = "http://121.36.43.55/k3cloud/Kingdee.BOS.WebApi.ServicesStub." +
"DynamicFormService.Save.common.kdsvc";
//登录,校验用户的API接口地址
private static String Login_URL = "http://121.36.43.55/k3cloud/Kingdee.BOS.WebApi.ServicesStub." +
"AuthService.ValidateUser.common.kdsvc";
/**
@ -30,140 +60,152 @@ public class KingDeeSaveSKD {
*
* @throws Exception
*/
@SuppressWarnings({"resource", "deprecation"})
public static ResultBean SavePurRKD(FinKingDeeFeignService.KingDeeParams jsonParam ) throws Exception {
public static ResultBean<List<KingDeeResult> > SavePurRKD(FinKingDeeFeignService.KingDeeParams jsonParam ) throws Exception {
// 定义httpClient的实例
HttpClient httpclient = new DefaultHttpClient();
JSONObject jsonResult = null;
/********** 用户登录Begin ************************/
ResultBean<List<KingDeeResult>> rb1 = loginKingDeeSystem(httpclient);
if (!rb1.getSuccess()) return rb1;
/********** 用户登录END ************************/
/********** 保存Beigin************************/
return saveKingDeeBillData(jsonParam, httpclient);
/********** 保存采购入库单End************************/
}
/**
* 调用保存金蝶的数据接口
* @param jsonParam
* @param httpclient
* @return
*/
public static ResultBean<List<KingDeeResult>> saveKingDeeBillData(FinKingDeeFeignService.KingDeeParams jsonParam,HttpClient httpclient) {
ResultBean<List<KingDeeResult> > rb= ResultBean.fireFail();
try {
//登录,校验用户的API接口地址
String Login_URL = "http://121.36.43.55/k3cloud/Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser.common.kdsvc";
URI save_uri = new URI(Save_URL);
HttpPost method = new HttpPost(save_uri);
//采购入库单保存参数
log.info(jsonParam.getData());
//String ss="{\"formId\":\"AP_Payable\",\"data\":\"{\\\"Creator\\\":\\\"\\\",\\\"NeedUpDateFields\\\":[],\\\"NeedReturnFields\\\":[],\\\"IsDeleteEntry\\\":\\\"True\\\",\\\"SubSystemId\\\":\\\"\\\",\\\"IsVerifyBaseDataField\\\":\\\"false\\\",\\\"IsEntryBatchFill\\\":\\\"True\\\",\\\"ValidateFlag\\\":\\\"True\\\",\\\"NumberSearch\\\":\\\"True\\\",\\\"InterationFlags\\\":\\\"\\\",\\\"Model\\\":{\\\"FID\\\":0,\\\"FBillTypeID\\\":{\\\"FNUMBER\\\":\\\"YFD01_SYS\\\"},\\\"FBillNo\\\":\\\"212114564322123\\\",\\\"FISINIT\\\":false,\\\"FDATE\\\":\\\"2022-07-30 00:00:00\\\",\\\"FENDDATE_H\\\":\\\"2022-07-30 00:00:00\\\",\\\"FDOCUMENTSTATUS\\\":\\\"Z\\\",\\\"FSUPPLIERID\\\":{\\\"FNumber\\\":\\\"010001\\\"},\\\"FCURRENCYID\\\":{\\\"FNumber\\\":\\\"PRE001\\\"},\\\"FISPRICEEXCLUDETAX\\\":true,\\\"FBUSINESSTYPE\\\":\\\"CG\\\",\\\"FISTAX\\\":true,\\\"FSETTLEORGID\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FPAYORGID\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FSetAccountType\\\":\\\"2\\\",\\\"FISTAXINCOST\\\":false,\\\"FISHookMatch\\\":false,\\\"FPURCHASEDEPTID\\\":{\\\"FNumber\\\":\\\"01\\\"},\\\"FCancelStatus\\\":\\\"A\\\", \\\"FISBYIV\\\":false,\\\"FISGENHSADJ\\\":false,\\\"FISINVOICEARLIER\\\":false,\\\"FEntityDetail\\\":[{\\\"FMaterialDesc\\\":\\\"内六角 \\\",\\\"FNoTaxAmountFor_D\\\":98.02,\\\"FIsFree\\\":false,\\\"FALLAMOUNTFOR_D\\\":99.0,\\\"FEntryTaxRate\\\":1.0,\\\"FDISCOUNTAMOUNTFOR\\\":1.0,\\\"FStockUnitId\\\":{\\\"FNumber\\\":\\\"ba\\\"},\\\"FMATERIALID\\\":{\\\"FNumber\\\":\\\"&12\\\"},\\\"FPRICEUNITID\\\":{\\\"FNumber\\\":\\\"ba\\\"},\\\"FEntryDiscountRate\\\":1.0,\\\"FStockBaseQty\\\":1.0,\\\"FPrice\\\":1.0,\\\"FTAXAMOUNTFOR_D\\\":0.98,\\\"FISOUTSTOCK\\\":false,\\\"F_PMZC_Base1\\\":{\\\"FNUMBER\\\":\\\"01.001\\\"},\\\"FTaxPrice\\\":1.0,\\\"F_PMZC_Base\\\":{\\\"FNUMBER\\\":\\\"0001F\\\"},\\\"FPriceWithTax\\\":99.0,\\\"FPriceBaseDen\\\":1.0,\\\"FPriceQty\\\":1.0,\\\"FStockBaseNum\\\":1.0,\\\"FINCLUDECOST\\\":false,\\\"F_PMZC_Assistant\\\":{\\\"FNumber\\\":\\\"1904110789\\\"},\\\"FStockQty\\\":1.0}],\\\"FsubHeadSuppiler\\\":{},\\\"FsubHeadFinc\\\":{\\\"FMAINBOOKSTDCURRID\\\":{\\\"FNumber\\\":\\\"PRE001\\\"},\\\"FACCNTTIMEJUDGETIME\\\":\\\"2022-07-30 00:00:00\\\",\\\"FEXCHANGETYPE\\\":{\\\"FNumber\\\":\\\"HLTX01_SYS\\\"},\\\"FExchangeRate\\\":1.0}}}\"}";
StringEntity entity = new StringEntity(jsonParam.getData(), "utf-8");
log.info(JSON.toJSONString(entity));
entity.setContentEncoding("UTF-8");
entity.setContentType("application/json");
//把成功登录的Session信息传进去,获取连接信息
method.setHeader(sessionkey, sessionValue);
method.setHeader(aspnetsessionkey, aspnetsessionValue);
//方法参数
method.setEntity(entity);
HttpResponse result = httpclient.execute(method);
// 请求发送成功,并得到响应
if (result.getStatusLine().getStatusCode() == 200) {
log.info("请求成功");
// 读取服务器返回过来的json字符串数据
String str = EntityUtils.toString(result.getEntity());
if(StringUtils.isBlank(str)){
return rb.setMsg("操作失败");
}
log.info(str);
return createResultBean(str);
}
} catch (Exception e) {
e.printStackTrace();
}
return rb;
}
public static ResultBean<List<KingDeeResult>> loginKingDeeSystem( HttpClient httpclient) {
ResultBean<List<KingDeeResult> > rb= ResultBean.fireFail();
try {
URI uri = new URI(Login_URL);
HttpPost method = new HttpPost(uri);
//登录请求参数
String jsonParamdl = "{\"acctID\":\"61dce6601125a0\"," +
"\"userName\":\"信息部1\",\"password\":\"123321\",\"lcid\":2052}";
Map<String,String> loginParams=new HashMap<>();
loginParams.put("acctID",acctID);
loginParams.put("userName",userName);
loginParams.put("password",password);
loginParams.put("lcid",lcid);
String jsonParamdl=JSON.toJSONString(loginParams);
StringEntity entity = new StringEntity(jsonParamdl, "utf-8");
entity.setContentEncoding("UTF-8");
entity.setContentType("application/json");
method.setEntity(entity);
HttpResponse result = httpclient.execute(method);
// 请求发送成功,并得到响应
if (result.getStatusLine().getStatusCode() == 200) {
String str = "";
// 读取服务器返回过来的json字符串数据
str = EntityUtils.toString(result.getEntity());
String str = EntityUtils.toString(result.getEntity());
// 把json字符串转换成json对象
jsonResult = JSONObject.parseObject(str);
JSONObject jsonResult = JSONObject.parseObject(str);
//判断登录是否成功
if (jsonResult.getInteger("LoginResultType") == 1) {
System.out.println("登录成功!");
log.info("登录成功!");
// 获取Cookie
Header[] headers = result.getHeaders("Set-Cookie");
for (int i = 1; i < headers.length; i++) {
Header header = headers[i];
String headerValue = header.getValue();
// 登录成功返回的登录session信息,保存下来,下面再调用接口的时候传给服务端
if (headerValue.trim().startsWith(sessionkey)) {
int endIndex = headerValue.indexOf(';');
sessionValue = headerValue.substring(20, endIndex);
} else if (headerValue.trim().startsWith( aspnetsessionkey)) {
int endIndex = headerValue.indexOf(';');
aspnetsessionValue = headerValue.substring(18, endIndex);
}
}
return ResultBean.fireSuccess();
}
// 登录失败,不继续
else {
System.out.println("登录失败!");
return null;
log.info("登录失败!");
return rb;
}
} else {
System.out.println("登录异常!");
log.info("登录异常!");
}
} catch (Exception e) {
e.printStackTrace();
return null;
return rb;
}
return rb;
}
/********** 用户登录END ************************/
/********** 保存采购入库单Beigin************************/
try {
// 数据保存接口地址
String Save_URL = "http://121.36.43.55/k3cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save.common.kdsvc";
URI save_uri = new URI(Save_URL);
HttpPost method = new HttpPost(save_uri);
//采购入库单保存参数
//String ff="{\"formId\":\"AP_Payable\",\"data\":\"{ \\\"Creator\\\": \\\"zs\\\", \\\"NeedUpDateFields\\\": [], \\\"NeedReturnFields\\\": [], \\\"IsDeleteEntry\\\": \\\"True\\\", \\\"SubSystemId\\\": \\\"\\\", \\\"IsVerifyBaseDataField\\\": \\\"false\\\", \\\"IsEntryBatchFill\\\": \\\"True\\\", \\\"ValidateFlag\\\": \\\"True\\\", \\\"NumberSearch\\\": \\\"True\\\", \\\"InterationFlags\\\": \\\"\\\", \\\"Model\\\": { \\\"FID\\\": 0, \\\"FBillTypeID\\\": { \\\"FNUMBER\\\": \\\"YFD01_SYS\\\" }, \\\"FBillNo\\\": \\\"121a11221aa3123\\\", \\\"FISINIT\\\": false, \\\"FDATE\\\": \\\"2022-07-29 00:00:00\\\", \\\"FENDDATE_H\\\": \\\"2022-07-29 00:00:00\\\", \\\"FDOCUMENTSTATUS\\\": \\\"Z\\\", \\\"FSUPPLIERID\\\": { \\\"FNumber\\\": \\\"010001\\\" }, \\\"FCURRENCYID\\\": { \\\"FNumber\\\": \\\"PRE001\\\" }, \\\"FPayConditon\\\": { \\\"FNumber\\\": \\\"FKTJ01_SYS\\\" }, \\\"FISPRICEEXCLUDETAX\\\": true, \\\"FBUSINESSTYPE\\\": \\\"CG\\\", \\\"FISTAX\\\": true, \\\"FSETTLEORGID\\\": { \\\"FNumber\\\": \\\"101\\\" }, \\\"FPAYORGID\\\": { \\\"FNumber\\\": \\\"101\\\" }, \\\"FSetAccountType\\\": \\\"2\\\", \\\"FISTAXINCOST\\\": false, \\\"FAP_Remark\\\": \\\"1231\\\", \\\"FISHookMatch\\\": false, \\\"FPURCHASEDEPTID\\\": { \\\"FNumber\\\": \\\"01\\\" }, \\\"FCancelStatus\\\": \\\"A\\\", \\\"FISBYIV\\\": false, \\\"FISGENHSADJ\\\": false, \\\"FISINVOICEARLIER\\\": false, \\\"F_PAEZ_Text\\\": \\\"231231231231\\\", \\\"F_PMZC_Assistant1\\\": { \\\"FNumber\\\": \\\"00\\\" }, \\\"FsubHeadSuppiler\\\": { \\\"FORDERID\\\": { \\\"FNumber\\\": \\\"010001\\\" }, \\\"FTRANSFERID\\\": { \\\"FNumber\\\": \\\"010001\\\" }, \\\"FChargeId\\\": { \\\"FNumber\\\": \\\"010001\\\" } }, \\\"FsubHeadFinc\\\": { \\\"FACCNTTIMEJUDGETIME\\\": \\\"2022-07-29 00:00:00\\\", \\\"FMAINBOOKSTDCURRID\\\": { \\\"FNumber\\\": \\\"PRE001\\\" }, \\\"FEXCHANGETYPE\\\": { \\\"FNumber\\\": \\\"HLTX01_SYS\\\" }, \\\"FExchangeRate\\\": 1.0, \\\"FTaxAmountFor\\\": 0.98, \\\"FNoTaxAmountFor\\\": 98.02 }, \\\"FEntityDetail\\\": [ { \\\"FMATERIALID\\\": { \\\"FNumber\\\": \\\"&12\\\" }, \\\"FMaterialDesc\\\": \\\"@KD_FMaterialDesc\\\", \\\"FPRICEUNITID\\\": { \\\"FNumber\\\": \\\"ba\\\" }, \\\"FPrice\\\": 99.01, \\\"FPriceQty\\\": 1.0, \\\"FTaxPrice\\\": 100.0, \\\"FPriceWithTax\\\": 99.0, \\\"FEntryTaxRate\\\": 1.0, \\\"F_PMZC_Assistant\\\": { \\\"FNumber\\\": \\\"1904110789\\\" }, \\\"F_PMZC_Base\\\": { \\\"FNUMBER\\\": \\\"0001F\\\" }, \\\"F_PMZC_Base1\\\": { \\\"FNUMBER\\\": \\\"01.001\\\" }, \\\"FEntryDiscountRate\\\": 1.0, \\\"FDISCOUNTAMOUNTFOR\\\": 1.0, \\\"FNoTaxAmountFor_D\\\": 98.02, \\\"FTAXAMOUNTFOR_D\\\": 0.98, \\\"FALLAMOUNTFOR_D\\\": 99.0, \\\"FINCLUDECOST\\\": false, \\\"FISOUTSTOCK\\\": false, \\\"FIsFree\\\": false, \\\"FStockUnitId\\\": { \\\"FNumber\\\": \\\"ba\\\" }, \\\"FStockQty\\\": 1.0, \\\"FStockBaseQty\\\": 1.0, \\\"FPriceBaseDen\\\": 1.0, \\\"FStockBaseNum\\\": 1.0 } ], \\\"FEntityPlan\\\": [ { \\\"FENDDATE\\\": \\\"2022-07-29 00:00:00\\\", \\\"FPAYAMOUNTFOR\\\": 99.0, \\\"FPAYRATE\\\": 100.0 } ] }}\"}";
System.out.println(jsonParam.getData());
//String dd="{\"formId\":\"AP_Payable\",\"data\":\"{\\\"Creator\\\":\\\"\\\",\\\"NeedUpDateFields\\\":[],\\\"NeedReturnFields\\\":[],\\\"IsDeleteEntry\\\":\\\"True\\\",\\\"SubSystemId\\\":\\\"\\\",\\\"IsVerifyBaseDataField\\\":\\\"false\\\",\\\"IsEntryBatchFill\\\":\\\"True\\\",\\\"ValidateFlag\\\":\\\"True\\\",\\\"NumberSearch\\\":\\\"True\\\",\\\"InterationFlags\\\":\\\"\\\",\\\"Model\\\":{\\\"FID\\\":0,\\\"FBillTypeID\\\":{\\\"FNUMBER\\\":\\\"YFD01_SYS\\\"},\\\"FBillNo\\\":\\\"222124564322123\\\",\\\"FISINIT\\\":false,\\\"FDATE\\\":\\\"2022-07-29 00:00:00\\\",\\\"FENDDATE_H\\\":\\\"2022-07-29 00:00:00\\\",\\\"FDOCUMENTSTATUS\\\":\\\"Z\\\",\\\"FSUPPLIERID\\\":{\\\"FNumber\\\":\\\"010001\\\"},\\\"FCURRENCYID\\\":{\\\"FNumber\\\":\\\"PRE001\\\"},\\\"FISPRICEEXCLUDETAX\\\":true,\\\"FBUSINESSTYPE\\\":\\\"CG\\\",\\\"FISTAX\\\":true,\\\"FSETTLEORGID\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FPAYORGID\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FSetAccountType\\\":\\\"2\\\",\\\"FISTAXINCOST\\\":false,\\\"FISHookMatch\\\":false,\\\"FPURCHASEDEPTID\\\":{\\\"FNumber\\\":\\\"01\\\"},\\\"FCancelStatus\\\":\\\"A\\\", \\\"FISBYIV\\\":false,\\\"FISGENHSADJ\\\":false,\\\"FISINVOICEARLIER\\\":false,\\\"FEntityDetail\\\":[{\\\"FMaterialDesc\\\":\\\"@KD_FMaterialDesc\\\",\\\"FNoTaxAmountFor_D\\\":98.02,\\\"FIsFree\\\":false,\\\"FALLAMOUNTFOR_D\\\":99.0,\\\"FEntryTaxRate\\\":1.0,\\\"FDISCOUNTAMOUNTFOR\\\":1.0,\\\"FStockUnitId\\\":{\\\"FNumber\\\":\\\"ba\\\"},\\\"FMATERIALID\\\":{\\\"FNumber\\\":\\\"&12\\\"},\\\"FPRICEUNITID\\\":{\\\"FNumber\\\":\\\"ba\\\"},\\\"FEntryDiscountRate\\\":1.0,\\\"FStockBaseQty\\\":1.0,\\\"FPrice\\\":99.01,\\\"FTAXAMOUNTFOR_D\\\":0.98,\\\"FISOUTSTOCK\\\":false,\\\"F_PMZC_Base1\\\":{\\\"FNUMBER\\\":\\\"01.001\\\"},\\\"FTaxPrice\\\":100.0,\\\"F_PMZC_Base\\\":{\\\"FNUMBER\\\":\\\"0001F\\\"},\\\"FPriceWithTax\\\":99.0,\\\"FPriceBaseDen\\\":1.0,\\\"FPriceQty\\\":1.0,\\\"FStockBaseNum\\\":1.0,\\\"FINCLUDECOST\\\":false,\\\"F_PMZC_Assistant\\\":{\\\"FNumber\\\":\\\"1904110789\\\"},\\\"FStockQty\\\":1.0}],\\\"FsubHeadSuppiler\\\":{},\\\"FsubHeadFinc\\\":{\\\"FMAINBOOKSTDCURRID\\\":{\\\"FNumber\\\":\\\"PRE001\\\"},\\\"FACCNTTIMEJUDGETIME\\\":\\\"2022-07-29 00:00:00\\\",\\\"FEXCHANGETYPE\\\":{\\\"FNumber\\\":\\\"HLTX01_SYS\\\"},\\\"FExchangeRate\\\":1.0}}}\"}";
String ss="{\"formId\":\"AP_Payable\",\"data\":\"{\\\"Creator\\\":\\\"\\\",\\\"NeedUpDateFields\\\":[],\\\"NeedReturnFields\\\":[],\\\"IsDeleteEntry\\\":\\\"True\\\",\\\"SubSystemId\\\":\\\"\\\",\\\"IsVerifyBaseDataField\\\":\\\"false\\\",\\\"IsEntryBatchFill\\\":\\\"True\\\",\\\"ValidateFlag\\\":\\\"True\\\",\\\"NumberSearch\\\":\\\"True\\\",\\\"InterationFlags\\\":\\\"\\\",\\\"Model\\\":{\\\"FID\\\":0,\\\"FBillTypeID\\\":{\\\"FNUMBER\\\":\\\"YFD01_SYS\\\"},\\\"FBillNo\\\":\\\"212114564322123\\\",\\\"FISINIT\\\":false,\\\"FDATE\\\":\\\"2022-07-30 00:00:00\\\",\\\"FENDDATE_H\\\":\\\"2022-07-30 00:00:00\\\",\\\"FDOCUMENTSTATUS\\\":\\\"Z\\\",\\\"FSUPPLIERID\\\":{\\\"FNumber\\\":\\\"010001\\\"},\\\"FCURRENCYID\\\":{\\\"FNumber\\\":\\\"PRE001\\\"},\\\"FISPRICEEXCLUDETAX\\\":true,\\\"FBUSINESSTYPE\\\":\\\"CG\\\",\\\"FISTAX\\\":true,\\\"FSETTLEORGID\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FPAYORGID\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FSetAccountType\\\":\\\"2\\\",\\\"FISTAXINCOST\\\":false,\\\"FISHookMatch\\\":false,\\\"FPURCHASEDEPTID\\\":{\\\"FNumber\\\":\\\"01\\\"},\\\"FCancelStatus\\\":\\\"A\\\", \\\"FISBYIV\\\":false,\\\"FISGENHSADJ\\\":false,\\\"FISINVOICEARLIER\\\":false,\\\"FEntityDetail\\\":[{\\\"FMaterialDesc\\\":\\\"内六角 \\\",\\\"FNoTaxAmountFor_D\\\":98.02,\\\"FIsFree\\\":false,\\\"FALLAMOUNTFOR_D\\\":99.0,\\\"FEntryTaxRate\\\":1.0,\\\"FDISCOUNTAMOUNTFOR\\\":1.0,\\\"FStockUnitId\\\":{\\\"FNumber\\\":\\\"ba\\\"},\\\"FMATERIALID\\\":{\\\"FNumber\\\":\\\"&12\\\"},\\\"FPRICEUNITID\\\":{\\\"FNumber\\\":\\\"ba\\\"},\\\"FEntryDiscountRate\\\":1.0,\\\"FStockBaseQty\\\":1.0,\\\"FPrice\\\":1.0,\\\"FTAXAMOUNTFOR_D\\\":0.98,\\\"FISOUTSTOCK\\\":false,\\\"F_PMZC_Base1\\\":{\\\"FNUMBER\\\":\\\"01.001\\\"},\\\"FTaxPrice\\\":1.0,\\\"F_PMZC_Base\\\":{\\\"FNUMBER\\\":\\\"0001F\\\"},\\\"FPriceWithTax\\\":99.0,\\\"FPriceBaseDen\\\":1.0,\\\"FPriceQty\\\":1.0,\\\"FStockBaseNum\\\":1.0,\\\"FINCLUDECOST\\\":false,\\\"F_PMZC_Assistant\\\":{\\\"FNumber\\\":\\\"1904110789\\\"},\\\"FStockQty\\\":1.0}],\\\"FsubHeadSuppiler\\\":{},\\\"FsubHeadFinc\\\":{\\\"FMAINBOOKSTDCURRID\\\":{\\\"FNumber\\\":\\\"PRE001\\\"},\\\"FACCNTTIMEJUDGETIME\\\":\\\"2022-07-30 00:00:00\\\",\\\"FEXCHANGETYPE\\\":{\\\"FNumber\\\":\\\"HLTX01_SYS\\\"},\\\"FExchangeRate\\\":1.0}}}\"}";
//String ss="{\"formId\":\"AP_Payable\",\"data\":\"{\\\"Creator\\\":\\\"zs\\\", \\\"NeedUpDateFields\\\":[], \\\"NeedReturnFields\\\":[], \\\"IsDeleteEntry\\\":\\\"True\\\", \\\"SubSystemId\\\":\\\"\\\", \\\"IsVerifyBaseDataField\\\":\\\"false\\\", \\\"IsEntryBatchFill\\\":\\\"True\\\", \\\"ValidateFlag\\\":\\\"True\\\", \\\"NumberSearch\\\":\\\"True\\\", \\\"InterationFlags\\\":\\\"\\\", \\\"Model\\\":{ \\\"FID\\\":0, \\\"FBillTypeID\\\":{ \\\"FNUMBER\\\":\\\"YFD01_SYS\\\" }, \\\"FBillNo\\\":\\\"2221211223123\\\", \\\"FISINIT\\\":false, \\\"FDATE\\\":\\\"2022-07-29 00:00:00\\\", \\\"FENDDATE_H\\\":\\\"2022-07-29 00:00:00\\\", \\\"FDOCUMENTSTATUS\\\":\\\"Z\\\", \\\"FSUPPLIERID\\\":{ \\\"FNumber\\\":\\\"010001\\\" }, \\\"FCURRENCYID\\\":{ \\\"FNumber\\\":\\\"PRE001\\\" }, \\\"FPayConditon\\\":{ \\\"FNumber\\\":\\\"FKTJ01_SYS\\\" }, \\\"FISPRICEEXCLUDETAX\\\":true, \\\"FBUSINESSTYPE\\\":\\\"CG\\\", \\\"FISTAX\\\":true, \\\"FSETTLEORGID\\\":{ \\\"FNumber\\\":\\\"101\\\" }, \\\"FPAYORGID\\\":{ \\\"FNumber\\\":\\\"101\\\" }, \\\"FSetAccountType\\\":\\\"2\\\", \\\"FISTAXINCOST\\\":false, \\\"FAP_Remark\\\":\\\"1231\\\", \\\"FISHookMatch\\\":false, \\\"FPURCHASEDEPTID\\\":{ \\\"FNumber\\\":\\\"01\\\" }, \\\"FCancelStatus\\\":\\\"A\\\", \\\"FISBYIV\\\":false, \\\"FISGENHSADJ\\\":false, \\\"FISINVOICEARLIER\\\":false, \\\"F_PAEZ_Text\\\":\\\"231231231231\\\", \\\"F_PMZC_Assistant1\\\":{ \\\"FNumber\\\":\\\"00\\\" }, \\\"FsubHeadSuppiler\\\":{ \\\"FORDERID\\\":{ \\\"FNumber\\\":\\\"010001\\\" }, \\\"FTRANSFERID\\\":{ \\\"FNumber\\\":\\\"010001\\\" }, \\\"FChargeId\\\":{ \\\"FNumber\\\":\\\"010001\\\" } }, \\\"FsubHeadFinc\\\":{ \\\"FACCNTTIMEJUDGETIME\\\":\\\"2022-07-29 00:00:00\\\", \\\"FMAINBOOKSTDCURRID\\\":{ \\\"FNumber\\\":\\\"PRE001\\\" }, \\\"FEXCHANGETYPE\\\":{ \\\"FNumber\\\":\\\"HLTX01_SYS\\\" }, \\\"FExchangeRate\\\":1.0, \\\"FTaxAmountFor\\\":0.98, \\\"FNoTaxAmountFor\\\":98.02 }, \\\"FEntityDetail\\\":[ { \\\"FMATERIALID\\\":{ \\\"FNumber\\\":\\\"&12\\\" }, \\\"FMaterialDesc\\\":\\\"@KD_FMaterialDesc\\\", \\\"FPRICEUNITID\\\":{ \\\"FNumber\\\":\\\"ba\\\" }, \\\"FPrice\\\":99.01, \\\"FPriceQty\\\":1.0, \\\"FTaxPrice\\\":100.0, \\\"FPriceWithTax\\\":99.0, \\\"FEntryTaxRate\\\":1.0, \\\"F_PMZC_Assistant\\\":{ \\\"FNumber\\\":\\\"1904110789\\\" }, \\\"F_PMZC_Base\\\":{ \\\"FNUMBER\\\":\\\"0001F\\\" }, \\\"F_PMZC_Base1\\\":{ \\\"FNUMBER\\\":\\\"01.001\\\" }, \\\"FEntryDiscountRate\\\":1.0, \\\"FDISCOUNTAMOUNTFOR\\\":1.0, \\\"FNoTaxAmountFor_D\\\":98.02, \\\"FTAXAMOUNTFOR_D\\\":0.98, \\\"FALLAMOUNTFOR_D\\\":99.0, \\\"FINCLUDECOST\\\":false, \\\"FISOUTSTOCK\\\":false, \\\"FIsFree\\\":false, \\\"FStockUnitId\\\":{ \\\"FNumber\\\":\\\"ba\\\" }, \\\"FStockQty\\\":1.0, \\\"FStockBaseQty\\\":1.0, \\\"FPriceBaseDen\\\":1.0, \\\"FStockBaseNum\\\":1.0 } ], \\\"FEntityPlan\\\":[ { \\\"FENDDATE\\\":\\\"2022-07-29 00:00:00\\\", \\\"FPAYAMOUNTFOR\\\":99.0, \\\"FPAYRATE\\\":100.0 } ] }}\"}";
StringEntity entity = new StringEntity(jsonParam.getData(), "utf-8");
//StringEntity entity = new StringEntity(JSON.toJSONString( jsonParam), "utf-8");
System.out.println(JSON.toJSON(entity));
entity.setContentEncoding("UTF-8");
entity.setContentType("application/json");
//把成功登录的Session信息传进去,获取连接信息
method.setHeader(sessionkey, sessionValue);
method.setHeader(aspnetsessionkey, aspnetsessionValue);
//方法参数
method.setEntity(entity);
HttpResponse result = httpclient.execute(method);
// 请求发送成功,并得到响应
if (result.getStatusLine().getStatusCode() == 200) {
System.out.println("请求成功");
String str = "";
// 读取服务器返回过来的json字符串数据
str = EntityUtils.toString(result.getEntity());
System.out.println(str);
// 成功的字符串类似
// {"Result":{"ResponseStatus":{"IsSuccess":true},"Id":100040,"Number":"CGRK00016"}}
// 失败 的字符串类似
// {"Result":{"ResponseStatus":{"ErrorCode":500,"IsSuccess":false,"Errors":[{"FieldName":"FStockId","Message":"单据体“明细信息”第1行字段“仓库”是必填项"},{"FieldName":"AbstractInteractionResult","Message":"AbstractInteractionResult.InteractionContext is null"}]},"Id":""}}
// 把json字符串转换成json对象,方便操作
jsonResult = JSONObject.parseObject(str);
}
} catch (Exception e) {
System.out.println("post请求提交失败:" + e);
/**
* 解析金蝶返回的数据
* @param str
* @return
*/
public static ResultBean<List<KingDeeResult>> createResultBean(String str) {
log.info(str);
ResultBean<List<KingDeeResult>> rb=ResultBean.fireFail();
if(StringUtils.isBlank(str)){
return rb.setMsg("操作失败");
}
JSONObject jsonResult;
jsonResult = JSONObject.parseObject(str);
Object obj = jsonResult.get("Result");
JSONObject result_kd = JSONObject.parseObject(JSON.toJSONString(obj));
Object responseStatus = result_kd.get("ResponseStatus");
String text = JSON.toJSONString(responseStatus);
JSONObject jsonObject = JSONObject.parseObject(text);
Object isSuccess = jsonObject.get("IsSuccess");
String s = JSON.toJSONString(isSuccess);
Boolean aBoolean = Boolean.valueOf(s);
if(!aBoolean){
return rb.setMsg("操作失败");
}
return null;
/********** 保存采购入库单End************************/
Object successEntitys = jsonObject.get("SuccessEntitys");
JSONArray objects = JSONArray.parseArray(JSON.toJSONString(successEntitys));
List<KingDeeResult> list=new ArrayList();
objects.forEach(f->{
JSONObject jr=JSONObject.parseObject(JSON.toJSONString(f));
KingDeeResult kingDeeResult = new KingDeeResult();
kingDeeResult.setDIndex(jr.get("DIndex").toString());
kingDeeResult.setId(jr.get("Id").toString());
kingDeeResult.setNumber(jr.get("Number").toString());
list.add(kingDeeResult);
});
return new ResultBean<List<KingDeeResult>> (aBoolean,"操作成功!","200").setData(list);
}
}

BIN
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/entrybill/应付单的参数必填备注.xlsx

Binary file not shown.

164
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/ReceivableBillCastToKingDeeBillFields.java

@ -0,0 +1,164 @@
package com.yxt.anrui.fin.biz.kingdee.receivablebill;
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 java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 封装转换的类
*/
public class ReceivableBillCastToKingDeeBillFields {
/**
* 构造金蝶需要的数据结构 并对字段赋值
*
* @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/receivablebill/receivablebilldata.json");
String fEntityData_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/receivablebill/receivablebilldata_data.json");
String fEntityModel_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/receivablebill/receivablebilldata_model.json");
String fEntityDetail_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/receivablebill/receivablebilldata_FEntityDetail.json");
//模板字符创转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());
}
fEntityDetail_ =KingDeeUtils.replaceTemplateParams(fEntityDetail_, map_fEntityDetail_);
list_fEntityDetail_.add(JSONObject.parseObject(fEntityDetail_,Feature.OrderedField));
}
jsonFEntityModel_.put("FEntityDetail", JSONArray.parseArray(JSON.toJSONString(list_fEntityDetail_)));
jsonFEntityData_.put("Model",JSONObject.parseObject(JSON.toJSONString(jsonFEntityModel_),Feature.OrderedField));
jsonObj.put("data",jsonFEntityData_.toJSONString());
return jsonObj.toJSONString();
}
/**
* 业务实体类按照模板进行装换
* @param params
* @param readJsonFile
* @param fEntityDetail_
* @param fEntityPlan_
* @return
*/
/* public static String cloneKingDeeParams(Map<String,Object> params, String readJsonFile, String fEntityDetail_, String fEntityPlan_){
readJsonFile = readJsonFile.replace("@KD_Creator", "zs");
//单据类型:FBillTypeID (必填项)
readJsonFile = readJsonFile.replace("@KD_FBillTypeID", "YFD01_SYS");
//业务日期:FDATE (必填项)
readJsonFile = readJsonFile.replace("@KD_FDATE", "2022-07-26");
//单据状态:FDOCUMENTSTATUS (必填项)
readJsonFile = readJsonFile.replace("@KD_FDOCUMENTSTATUS", "Z");
//供应商:FSUPPLIERID (必填项)
readJsonFile = readJsonFile.replace("@KD_FSUPPLIERID", "010001");
//币别:FCURRENCYID (必填项)
readJsonFile = readJsonFile.replace("@KD_FCURRENCYID", "PRE001");
//付款条件:FPayConditon
readJsonFile = readJsonFile.replace("@KD_FPayConditon", "");
//业务类型:FBUSINESSTYPE (必填项)
readJsonFile = readJsonFile.replace("@KD_FBUSINESSTYPE", "CG");
//结算组织:FSETTLEORGID (必填项)
readJsonFile = readJsonFile.replace("@KD_FSETTLEORGID", "101");
//付款组织:FPAYORGID (必填项)
readJsonFile = readJsonFile.replace("@KD_FPAYORGID", "101");
//采购部门:FPURCHASEDEPTID (必填项)
readJsonFile = readJsonFile.replace("@KD_FPURCHASEDEPTID", "01");
//作废状态:FCancelStatus (必填项)
readJsonFile = readJsonFile.replace("@KD_FCancelStatus", "A");
StringBuilder sb=new StringBuilder();
for(int i=0;i<1;i++){
String fEntityDetail=fEntityDetail_.toString();
//物料编码:FMATERIALID
fEntityDetail = fEntityDetail.replace("@KD_FMATERIALID", " JX091054");
//物料说明:FMaterialDesc
fEntityDetail = fEntityDetail.replace("@KD_FMaterialDesc", "X牵引6*4-550超");
//计价单位:FPRICEUNITID
fEntityDetail = fEntityDetail.replace("@KD_FPRICEUNITID", " liang");
//单价:FPrice
fEntityDetail = fEntityDetail.replace("@KD_FPrice@", "312500.0");
//计价数量:FPriceQty
fEntityDetail = fEntityDetail.replace("@KD_FPriceQty", "2.0");
//含税单价:FTaxPrice
fEntityDetail = fEntityDetail.replace("@KD_FTaxPrice@", "350000.0");
//含税净价:FPriceWithTax
fEntityDetail = fEntityDetail.replace("@KD_FPriceWithTax", "346500.0");
//税率(%):FEntryTaxRate
fEntityDetail = fEntityDetail.replace("@KD_FEntryTaxRate", "12.0");
//运输编号:F_PMZC_Assistant
fEntityDetail = fEntityDetail.replace("@KD_F_PMZC_Assistant", "1904110789");
//物流车辆:F_PMZC_Base
fEntityDetail = fEntityDetail.replace("@KD_F_PMZC_Base", "0001F");
//物流项目:F_PMZC_Base1
fEntityDetail = fEntityDetail.replace("@KD_F_PMZC_Base1", "01.001");
//折扣率(%):FEntryDiscountRate
fEntityDetail = fEntityDetail.replace("@KD_FEntryDiscountRate", "1.0");
//折扣额:FDISCOUNTAMOUNTFOR
fEntityDetail = fEntityDetail.replace("@KD_FDISCOUNTAMOUNTFOR", "7000.0");
//不含税金额:FNoTaxAmountFor_D
fEntityDetail = fEntityDetail.replace("@KD_FNoTaxAmountFor_D", "618750.0");
//税额:FTAXAMOUNTFOR_D
fEntityDetail = fEntityDetail.replace("@KD_FTAXAMOUNTFOR_D", "74250.0");
//价税合计:FALLAMOUNTFOR_D
fEntityDetail = fEntityDetail.replace("@KD_F_PMZC_Base1", "693000.0");
//库存单位:FStockUnitId
fEntityDetail = fEntityDetail.replace("@KD_FStockUnitId", "liang");
//库存数量:FStockQty
fEntityDetail = fEntityDetail.replace("@KD_FStockQty", "2.0");
//库存基本数量:FStockBaseQty
fEntityDetail = fEntityDetail.replace("@KD_F_PMZC_Base1", "2.0");
//计价基本分母:FPriceBaseDen
fEntityDetail = fEntityDetail.replace("@KD_FPriceBaseDen", "1.0");
//库存基本分子:FStockBaseNum
fEntityDetail = fEntityDetail.replace("@KD_FStockBaseNum", "1.0");
//含税单价:FTaxPrice
fEntityDetail = fEntityDetail.replace("@KD_FTaxPrice@", "350000.0");
//税率(%):FEntryTaxRate
fEntityDetail = fEntityDetail.replace("@KD_FEntryTaxRate", "12.0");
//价税合计:FALLAMOUNTFOR_D
fEntityDetail = fEntityDetail.replace("@KD_FALLAMOUNTFOR_D", "693000.0");
//库存基本数量:FStockBaseQty
fEntityDetail = fEntityDetail.replace("@KD_FStockBaseQty", "2.0");
sb.append(fEntityDetail).append(",");
}
String sbs=sb.substring(0,sb.length()-1);
readJsonFile=readJsonFile.replace("@KD_FEntityDetail",sbs);
StringBuilder sb_fEntityPlan=new StringBuilder();
for(int i=0;i<1;i++){
String fEntityPlan=fEntityPlan_.toString();
//应付金额:FPAYAMOUNTFOR
fEntityPlan = fEntityPlan.replace("@KD_FPAYAMOUNTFOR", "693000.00");
//应付比例(%):FPAYRATE
fEntityPlan = fEntityPlan.replace("@KD_FPAYRATE", "100.00000");
//表头计划 - 到期日:FENDDATE
fEntityPlan = fEntityPlan.replace("@KD_FENDDATE", "2022-07-22 00:00:00");
sb_fEntityPlan.append(fEntityPlan).append(",");
}
String sb_fEntityPlans=sb_fEntityPlan.substring(0,sb_fEntityPlan.length()-1);
readJsonFile=readJsonFile.replace("@KD_FEntityPlan",sb_fEntityPlans);
return readJsonFile;
}*/
}

4
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/receivablebilldata.json

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

20
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/receivablebilldata_FEntityDetail.json

@ -0,0 +1,20 @@
{
"FMATERIALID": {
"FNumber": " JX091054"
},
"FMaterialDesc": "X牵引6*4-550超",
"FPRICEUNITID": {
"FNumber": "liang"
},
"FDeliveryControl": false,
"FStockUnitId": {
"FNumber": "liang"
},
"FIsFree": false,
"FSalUnitId": {
"FNumber": "liang"
},
"FPriceBaseDen": 1.0,
"FSalBaseNum": 1.0,
"FStockBaseNum": 1.0
}

13
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/receivablebilldata_data.json

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

56
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/receivablebilldata_model.json

@ -0,0 +1,56 @@
{
"FID": 0,
"FBillTypeID": {
"FNUMBER": "YSD01_SYS"
},
"FDATE": "@KD_FDATE",
"FISINIT": false,
"FENDDATE_H": "",
"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-01 00:00:00",
"FMAINBOOKSTDCURRID": {
"FNumber": "PRE001"
},
"FEXCHANGETYPE": {
"FNumber": "HLTX01_SYS"
},
"FExchangeRate": 1.0
},
"FEntityDetail": []
}

221
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/remarks.txt

@ -0,0 +1,221 @@
一、请求参数说明:
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类型(必录)
五、字段说明:
销售单位:FSalUnitId
库存基本数量:FStockBaseQty
库存数量:FStockQty
销售基本数量:FSalBaseQty
库存基本分子:FStockBaseNum
销售基本分子:FSalBaseNum
计价基本分母:FPriceBaseDen
库存单位:FStockUnitId
工序号:FOPERNUMBER
序列号:FSEQNUMBER
工序计划号:FOPNO
作业:FPROCESSID
是否赠品:FIsFree
源单行内码:FSRCROWID
生产车间:FFPRODEPARTMENTID
销售基本数量(财务):FSALFINBASEQTY
已下推负数财务应收数量:FPushRedQty
销售发票价税合计期初:FIVINIALLAMOUNTFOR
客户物料编码:FCustMatID
车辆类型:F_PAEZ_BaseProperty
优惠额:F_PAEZ_Decimal
客户物料名称:FCustMatName
销售发票数量(基本单位)期初:FBUYIVINIBASICQTY
销售订单行内码:FORDERENTRYID
成本金额:FCOSTAMTSUM
销售数量:FSalQty
源单单据类型:FSOURCEBILLTYPEID
销售发票数量期初:FBUYIVINIQTY
已收款金额:FRECEIVEAMOUNT
销售订单行号:FORDERENTRYSEQ
业务单据内码:FBizID
业务单据分录内码:FBizEntryId
特殊核销金额:FSpecialAmountFor
业务单据类型:FBizBillTypeId
物料说明:FMaterialDesc
业务单据名称:FBizFormId
业务单据编号:FBizBillNo
特殊核销数量:FSpecialQTY
已开票核销数量:FOPENQTY_D
销售发票数量:FBUYIVQTY
销售发票数量(基本单位):FBUYIVBASICQTY
卖家代扣增值税税率:FTEMPTAXRATE
结算清单调拨类型:FSettleTran
已开票金额(下推审核反写、核销反写):FHadMatchAmountFor
已核销不含税金额:FMatchNotTaxAmtFor
卡片编码:FASSETID
费用项目名称:FCOSTNAME
费用项目编码:FCOSTID
资产名称:FAssetName
生产订单行号:FMOENTRYSEQ
生产订单编号:FMONUMBER
费用承担部门:FCOSTDEPARTMENTID
库存组织:FSTOCKORGID
关联出库数量(基本单位):FBaseStockOutJoinQty
发货上限(基本单位):FBaseDeliveryMaxQty
销售订单内码(删除):FSaleOrderID
控制发货数量:FDeliveryControl
业务流程:FBFLowId
批号:FLot
辅助属性:FAUXPROPID
物料分组:F_PAEZ_BaseProperty1
增值税:FVAT
计入成本金额:FCostAmount
计入成本比例:FCostPercent
卖方代扣代缴:FSellerWithholding
物料名称:FMETRIALNAME
物料编码:FMETRIALID
买方代扣代缴:FBuyerWithholding
税额:FTaxAmount_T
物料名称:FMATERIALNAME_S
物料编码:FMATERIALID_S
订单收款计划明细内码:FRECEIVABLEENTRYID
订单行号:FMATERIALSEQ
税率(%):FTaxRate
税率名称:FTaxRateId
收(退)款单关联金额本位币:FWRITTENOFFAMOUNT
成本金额:FCOSTAMT
成本价:FCOSTPrice
会计政策:FACCTPOLICY
基本单位数量:FBaseQty
基本单位:FBASICUNIT
明细内码:FDEntryID
源单行号:FSEQSRC
核算体系:FACCTSYS
计价单位:FPriceUnit
货物类别:FMETRIALTYPE
规格型号:FMetrialModel
计价数量:FPriceUnitQty
源单内码:FROWNOSRC
源单单号:FBILLNOSRC
源出库单类型:FOUTSTOCKTYPE
本位币:FMAINBOOKSTDCURRID (必填项)
结算方式:FSettleTypeID
订货方:FORDERID
税额:FTaxAmountFor
不含税金额本位币:FNoTaxAmount
税额本位币:FTaxAmount
不含税金额:FNoTaxAmountFor
付款方:FChargeId
赠送套餐:F_PAEZ_Decimal3
销售折让:F_PAEZ_Decimal2
返利金额:F_PAEZ_Decimal1
物流车辆:F_PMZC_Base
收货方:FTRANSFERID
物流客户:F_PMZC_Assistant1
运输编号:F_PMZC_Assistant
应收比例(%):FPAYRATE
表头计划 - 收(退)款单关联金额:FRELATEHADPAYAMOUNT_P
表头计划 - 未核销金额(作废):FNOTWRITTENOFFAMOUNTFOR_P
已核销金额:FWRITTENOFFAMOUNTFOR_P
销售订单内码:FSALEORDERID_S
销售订单号:FORDERBILLNO
付款申请关联金额:FAPPLYAMOUNT
表头计划 - 核销状态:FWRITTENOFFSTATUS_P
汇率:FExchangeRate
汇率类型:FEXCHANGETYPE (必填项)
价税合计本位币:FALLAMOUNT
到期日计算日期:FACCNTTIMEJUDGETIME
应收金额本位币:FPAYAMOUNT
应收金额:FPAYAMOUNTFOR
表头计划 - 到期日:FENDDATE
作废日期:FCancelDate
作废人:FCancellerId
按含税单价录入:FISTAX
作废状态:FCancelStatus (必填项)
销售组织:FSALEORGID
客户:FCUSTOMERID (必填项)
收款条件:FPayConditon
会计核算体系:FACCOUNTSYSTEM
价税合计:FALLAMOUNTFOR
创建人:FCreatorId
货主:FOWNERID
货主类型:FOWNERTYPE
到期日:FENDDATE_H
销售员:FSALEERID
销售组:FSALEGROUPID
销售部门:FSALEDEPTID
创建日期:FCreateDate
审核日期:FAPPROVEDATE
修改人:FModifierId
修改日期:FModifyDate
表头基本 - 收款核销状态:FWRITTENOFFSTATUS
审核人:FAPPROVERID
单据类型:FBillTypeID (必填项)
表头基本 - 收(退)款单的关联金额:FRelateHadPayAmount
单据状态:FDocumentStatus
单据编号:FBillNo
业务日期:FDATE (必填项)
币别:FCURRENCYID (必填项)
表头基本 -未收款核销金额(作废):FNOTWRITTENOFFAMOUNTFOR
结算组织:FSETTLEORGID (必填项)
表头基本 - 开票核销状态:FOPENSTATUS
税率(%):FEntryTaxRate
不含税金额:FNoTaxAmountFor_D
折扣率(%):FEntryDiscountRate
税额:FTAXAMOUNTFOR_D
销售发票价税合计:FIVALLAMOUNTFOR
备注:FComment
价税合计:FALLAMOUNTFOR_D
折扣额:FDISCOUNTAMOUNTFOR
物料类别:FMaterialType
规格型号:FModel
物料名称:FMaterialName
单价:FPrice
计价数量:FPriceQty
价格系数:FPriceCoefficient
含税单价:FTaxPrice
含税净价:FPriceWithTax
计价基本数量:FBASICUNITQTY
基本单位:FBASICUNITID
基本单位关联数量:FBaseJoinQty
税组合:FTaxCombination
源单编号:FSourceBillNo
源单类型:FSOURCETYPE
计价单位:FPRICEUNITID
价税合计本位币:FALLAMOUNT_D
税额本位币:FTAXAMOUNT_D
折扣额本位币:FDISCOUNTAMOUNT
不含税金额本位币:FNOTAXAMOUNT_D
销售订单号:FORDERNUMBER
表体明细 - 已开票核销金额:FOPENAMOUNTFOR_D
表体明细 - 开票核销状态:FOPENSTATUS_D
业务类型:FBUSINESSTYPE
核销方式:FMatchMethodID
零售:FISRETAIL
现销 :FCASHSALE
信用检查结果:FCreditCheckResult
收款组织:FPAYORGID (必填项)
销售业务类型:FSALESBUSTYPE
是否期初单据:FISINIT
转出客户:FOUTCUSTOMERID
扫描点:FScanPoint
生成方式:FByVerify
项目类别:F_PAEZ_Assistant1
物料编码:FMATERIALID
是否开票:F_PMZC_Assistant2
中介单位:F_PAEZ_Base
红蓝字:FRedBlue
备注:FAR_Remark
价外税:FISPRICEEXCLUDETAX
B2C业务:FISB2C
立账类型:FSetAccountType
先到票后出库:FISINVOICEARLIER
转销:FIsWriteOff
参与暂估应收核销:FISHookMatch

15
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/testParams.txt

@ -0,0 +1,15 @@
{
"sid": "63",
"userSid": "73",
"applicationDate": "2022-08-01 06:22:08",
"applicationCode": "1659335563",
"vehicleList": [
{
"sid": "25",
"applySid": "11",
"modelSid": " JX091054",
"vinNo": " JX091054",
"remarks": "X牵引6*4-550超"
}
]
}

BIN
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/应收单的参数必填备注.xlsx

Binary file not shown.

14
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/app/AppSysUserFeign.java

@ -13,6 +13,7 @@ import javax.servlet.http.HttpServletRequest;
/**
* 手机端用户登录注册接口
*
* @Author liuguohui
* @Date 2021/9/3
*/
@ -43,10 +44,10 @@ public interface AppSysUserFeign {
@ApiOperation(value = "手机更改密码")
@ResponseBody
@PostMapping("/updatePassword")
public ResultBean updatePassword(@RequestParam (value = "userSid", required = true) String userSid,
@RequestParam (value = "appId", required = true) String appId,
@RequestParam (value = "oldPassword", required = true) String oldPassword,
@RequestParam (value = "newPassword", required = true) String newPassword,
public ResultBean updatePassword(@RequestParam(value = "userSid", required = true) String userSid,
@RequestParam(value = "appId", required = true) String appId,
@RequestParam(value = "oldPassword", required = true) String oldPassword,
@RequestParam(value = "newPassword", required = true) String newPassword,
HttpServletRequest httpServletRequest);
@ApiOperation(value = "手机找回密码验证验证码")
@ -71,4 +72,9 @@ public interface AppSysUserFeign {
@ResponseBody
@PostMapping("/getUserSidByToken")
public ResultBean<String> getUserSidByToken(@RequestParam("token") String token);
@ApiOperation(value = "解绑某个用户或解绑所有的用户")
@ResponseBody
@PutMapping("/updateAppId")
ResultBean updateAppId(@RequestParam(value = "mobile", required = false) String mobile);
}

5
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/app/AppSysUserFeignFallback.java

@ -55,4 +55,9 @@ public class AppSysUserFeignFallback implements AppSysUserFeign {
public ResultBean getUserSidByToken(String token) {
return ResultBean.fireFail().setMsg("网站维护,请稍后再试");
}
@Override
public ResultBean updateAppId(String mobile) {
return null;
}
}

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

@ -48,6 +48,7 @@ import com.yxt.anrui.portal.api.flow.app.FlowTaskDoQuery;
import com.yxt.anrui.portal.api.flow.app.FlowTaskDoVo;
import com.yxt.anrui.portal.api.flow.app.FlowTaskFinishVo;
import com.yxt.anrui.portal.biz.appsubsetversion.AppSubsetVersionService;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.ConstantUtils;
import com.yxt.common.base.utils.StringUtils;
@ -88,6 +89,8 @@ public class FlowableService extends MybatisBaseService<FlowableMapper, Flowable
private SysProUrlFeign sysProUrlFeign;
@Autowired
private AppSubsetVersionService appSubsetVersionService;
@Autowired
private FileUploadComponent fileUploadComponent;
public ResultBean businessStart(@ApiParam(value = "流程定义id") @PathVariable(value = "procDefId") String procDefId,
@ApiParam(value = "用户sid") @PathVariable(value = "userSid") String userSid,
@ -546,7 +549,8 @@ public class FlowableService extends MybatisBaseService<FlowableMapper, Flowable
if (appSubsetVersions != null) {
List<Integer> integers = appVer.get(key);
for (int i = 0; i < integers.size(); i++) {
voList.get(i).getAppVariables().setPath(appSubsetVersions.getUpdateUrl());
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());
}
@ -629,7 +633,8 @@ public class FlowableService extends MybatisBaseService<FlowableMapper, Flowable
if (appSubsetVersions != null) {
List<Integer> integers = appVer.get(key);
for (int i = 0; i < integers.size(); i++) {
voList.get(i).getAppVariables().setPath(appSubsetVersions.getUpdateUrl());
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());
}

13
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserMapper.java

@ -166,4 +166,17 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
List<SysUserVo> fetchBySids(@Param("sids")List<String> sids);
List<SysUserVo> getUserByRoleSid(String roleSid);
/**
* 根据手机号解绑用户绑定的设备
* @param mobile
* @return
*/
int updateAppIdByMobile(String mobile);
/**
* 解绑所有用户绑定的设备
* @return
*/
int updateAppIdAll();
}

8
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserMapper.xml

@ -255,4 +255,12 @@
left join sys_staffinfo si on si.sid = su.staffSid
where sr.roleSid = #{roleSid}
</select>
<update id="updateAppIdByMobile">
update sys_user set appId = NULL where mobile = #{mobile}
</update>
<update id="updateAppIdAll">
update sys_user set appId = NULL
</update>
</mapper>

10
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserService.java

@ -936,4 +936,14 @@ public class SysUserService extends MybatisBaseService<SysUserMapper, SysUser> {
List<SysUserVo> entity = baseMapper.fetchBySids(list);
return entity;
}
public ResultBean updateAppIdByMobile(String mobile) {
ResultBean rb = ResultBean.fireFail();
if(StringUtils.isNotBlank(mobile)){
baseMapper.updateAppIdByMobile(mobile);
}else{
baseMapper.updateAppIdAll();
}
return rb.success().setMsg("解绑成功");
}
}

5
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/app/AppSysUserRest.java

@ -333,6 +333,11 @@ public class AppSysUserRest implements AppSysUserFeign {
}
}
@Override
public ResultBean updateAppId(String mobile) {
return sysUserService.updateAppIdByMobile(mobile);
}
// 解绑设备关联的账号
// 解绑账号绑定的设备

3
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundFeign.java

@ -76,8 +76,7 @@ public interface ScmApplyInboundFeign {
@ApiOperation(value = "流程历史流转记录")
@GetMapping(value = "/task/flowRecord/{procInsId}/{deployId}")
public ResultBean flowRecord(@ApiParam(value = "流程实例id") @PathVariable(value = "procInsId") String procInsId,
@ApiParam(value = "目前没用") @PathVariable(value = "deployId") String deployId);
public ResultBean flowRecord(@ApiParam(value = "流程实例id") @PathVariable(value = "procInsId") String procInsId);
@ApiOperation(value = "获取下一个环节")
@GetMapping(value = "/getNextNodesForSubmit")

2
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundFeignFallback.java

@ -80,7 +80,7 @@ public class ScmApplyInboundFeignFallback implements ScmApplyInboundFeign {
}
@Override
public ResultBean flowRecord(String procInsId, String deployId) {
public ResultBean flowRecord(String procInsId) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-scm/scmapplyinbound/flowRecord无法访问");
}

4
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundRest.java

@ -91,8 +91,8 @@ public class ScmApplyInboundRest implements ScmApplyInboundFeign {
}
@Override
public ResultBean flowRecord(String procInsId, String deployId) {
return scmApplyInboundService.flowRecord(procInsId, deployId);
public ResultBean flowRecord(String procInsId) {
return scmApplyInboundService.flowRecord(procInsId);
}
@Override

19
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundService.java

@ -8,6 +8,7 @@ import com.yxt.anrui.base.api.basevehicle.BaseVehicleDto;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign;
import com.yxt.anrui.base.api.busvehicleorder.BusVehicleOrderFeign;
import com.yxt.anrui.base.api.commonappendix.CommonAttachTypeEnum;
import com.yxt.anrui.base.common.enums.OperVehicleState;
import com.yxt.anrui.base.common.enums.VehicleState;
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
@ -417,6 +418,7 @@ public class ScmApplyInboundService extends MybatisBaseService<ScmApplyInboundMa
List<ScmApplyInboundVehicleDto> scmApplyInboundVehicleDtos = scmApplyInboundVehicleService.fetchByMainSid(businessSid);
List<BaseVehicleDto> baseVehicleDtos = new ArrayList<>();
for (ScmApplyInboundVehicleDto scmApplyInboundVehicleDto : scmApplyInboundVehicleDtos) {
//验车数据推送
ScmEntryVehicleExamineDto scmEntryVehicleExamineDto = new ScmEntryVehicleExamineDto();
//配置的名称
scmEntryVehicleExamineDto.setConfigName(booad.getConfigName());
@ -453,25 +455,15 @@ public class ScmApplyInboundService extends MybatisBaseService<ScmApplyInboundMa
baseVehicleDto.setConfigName(booad.getConfigName());
baseVehicleDto.setInsideCode(booad.getInsideCode());
baseVehicleDto.setOrderingNo(booad.getPurchaseOrderNo());
baseVehicleDto.setSettlementStatus("0");
baseVehicleDto.setSettlementStatusValue("未买断");
baseVehicleDto.setLockedState("03");
baseVehicleDto.setLockedStateValue("未锁定");
baseVehicleDto.setVehicleState("0003");
baseVehicleDto.setVehicleStateValue("在途");
baseVehicleDto.setWitPinState(VehicleState.ShuntingEnum.UN_SHUNTING.getCode());
baseVehicleDto.setWitPinStateValue(VehicleState.ShuntingEnum.UN_SHUNTING.getRemarks());
baseVehicleDto.setManPurOrderTypeKey("001");
baseVehicleDto.setManPurOrderTypeValue("排产订单");
baseVehicleDto.setContractPrice(Integer.parseInt(booad.getContractPrice().toString()));
baseVehicleDto.setFreight(Integer.parseInt(booad.getOnceFreight().subtract(booad.getSecondaryFreight()).toString()));
baseVehicleDto.setFreight(Integer.parseInt(booad.getOnceFreight().add(booad.getSecondaryFreight()).toString()));
baseVehicleDto.setCostPrice(Integer.parseInt(booad.getCostPrice().toString()));
baseVehicleDto.setPriceDate(booad.getPriceDate());
baseVehicleDto.setDepartureDate(booad.getDepartureDate());
baseVehicleDto.setInsideCode(booad.getInsideCode());
baseVehicleDtos.add(baseVehicleDto);
}
baseVehicleFeign.saveAll(baseVehicleDtos);
baseVehicleFeign.saveOrUpdate(baseVehicleDtos,OperVehicleState.EventType.RZ_SAVEVEH.getCode());
busVehicleOrderFeign.updateState(scmApplyInbound.getVehicleOrderSid());
}
return rb.success().setData(resultBean.getData());
@ -563,10 +555,9 @@ public class ScmApplyInboundService extends MybatisBaseService<ScmApplyInboundMa
* 流程历史流转记录
*
* @param procInsId
* @param deployId
* @return
*/
public ResultBean flowRecord(String procInsId, String deployId) {
public ResultBean flowRecord(String procInsId) {
return flowTaskFeign.businessFlowRecord(procInsId);
}

Loading…
Cancel
Save