Browse Source

Merge remote-tracking branch 'origin/master'

master
yunuo970428 3 years ago
parent
commit
e3714488f2
  1. 5
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemanufacturerretware/BaseManufacturerRetwareFeign.java
  2. 5
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemanufacturerretware/BaseManufacturerRetwareFeignFallback.java
  3. 3
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/CommonContract.java
  4. 3
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/PrintConfirmDto.java
  5. 1
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/common/enums/BillTypeEnum.java
  6. 39
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/common/enums/CommonContractEnum.java
  7. 5
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemanufacturerretware/BaseManufacturerRetwareRest.java
  8. 52
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemanufacturerretware/BaseManufacturerRetwareService.java
  9. 5
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractMapper.java
  10. 68
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractMapper.xml
  11. 63
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractService.java
  12. 15
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busmaindeposit/BusMainDepositMapper.xml
  13. 1
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderMapper.xml
  14. 48
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java
  15. 1
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java
  16. 105
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/appayable/APPayable.java
  17. 14
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/auditKd/AuditKD.java
  18. 41
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/bdmaterial/BdMaterial.java
  19. 52
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/purmrb/PurMrb.java
  20. 46
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/stkinstock/StkInStock.java
  21. 12
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/submitkd/SubmitKD.java
  22. 1
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java
  23. 97
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeService.java
  24. 87
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/KingDeeSaveSKD.java
  25. 3
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/KingDeeUtils.java
  26. 105
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appayable/APPayableCastToKingDeeBillFields.java
  27. 15
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appayable/testParams.txt
  28. 53
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appaybill/ApPayBillService.java
  29. 15
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appaybill/testParams.txt
  30. 3
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/BdMaterialCastToKingDeeBillFields.java
  31. 109
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/BdMaterialService.java
  32. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/data_model.json
  33. 0
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/testParams.txt
  34. BIN
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/物料的参数必填备注.xlsx
  35. 53
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/purmrb/PurMrbService.java
  36. 0
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/purmrb/testParams.txt
  37. 15
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/testParams.txt
  38. 2
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/testParams2.txt
  39. 49
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/saloutstock/SalOutStockService.java
  40. 0
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/saloutstock/testParams.txt
  41. 51
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/STKInStockService.java
  42. 0
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/testParams.txt
  43. 18
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/appversion/AppVersionFeign.java
  44. 10
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/appversion/AppVersionFeignFallback.java
  45. 15
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/appversion/AppVersionRest.java
  46. 4
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclegression/ScmVehicleGressionService.java
  47. 2
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleinventory/ScmVehicleInventoryService.java
  48. 9
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/insurance/InsuranceDto.java
  49. 7
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/virtualOrders/vehicle/DepositVehicleDetailVo.java

5
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemanufacturerretware/BaseManufacturerRetwareFeign.java

@ -71,6 +71,11 @@ public interface BaseManufacturerRetwareFeign {
@PostMapping("/confirm")
@ResponseBody
public ResultBean confirm(@RequestBody BaseManufacturerRetwareVehDto dto);
@ApiOperation("获取出门证存放路径")
@PostMapping("/createPdf")
@ResponseBody
public ResultBean<String> createPdf(@RequestParam("sid") String sid);
@ApiOperation("根据sid删除记录")
@DeleteMapping("/delBySids")

5
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemanufacturerretware/BaseManufacturerRetwareFeignFallback.java

@ -65,6 +65,11 @@ public class BaseManufacturerRetwareFeignFallback implements BaseManufacturerRet
return null;
}
@Override
public ResultBean<String> createPdf(String sid) {
return null;
}
@Override
public ResultBean delBySids( String[] sids){
return ResultBean.fireFail().setMsg("接口anrui-base/basemanufacturerretware/delBySids无法访问");

3
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/CommonContract.java

@ -86,7 +86,8 @@ public class CommonContract extends BaseEntity {
@ApiModelProperty("身份证信息附件")
private String idImagesUrl;
@ApiModelProperty("车型sid")
private String modelSid;
@ApiModelProperty("车型名称")
private String modelName;
@ApiModelProperty("台数")

3
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/PrintConfirmDto.java

@ -41,4 +41,7 @@ public class PrintConfirmDto implements Dto {
@ApiModelProperty("是否在保险公司购买保险:1是0否")
private String insuranceKey;
@ApiModelProperty("用户sid")
private String userSid;
}

1
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/common/enums/BillTypeEnum.java

@ -19,6 +19,7 @@ public enum BillTypeEnum {
KCDDBGSQ("KCDDBG","库存地点变更申请"),
JYDDDJSQ("JYDDDJSQ","简易订单订金收取"),
JYDDCLYD("JYDDCLYD","简易订单车辆预定"),
XSDD("XSDD","销售订单"),
;
private String billType;

39
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/common/enums/CommonContractEnum.java

@ -0,0 +1,39 @@
package com.yxt.anrui.base.common.enums;
import lombok.Getter;
/**
* @Author dimengzhe
* @Date 2022/8/19 14:18
* @Description
*/
public class CommonContractEnum {
@Getter
public static enum contractType {
/**
* 新车买卖合同
*/
XC_CONTRACT("001", "新车买卖合同(订车、现车、欠款)");
/**
* code值
*/
private final String code;
/**
* 备注
*/
private final String remarks;
/**
* 构造器
*
* @param code code值
* @param remarks 备注
*/
private contractType(String code, String remarks) {
this.code = code;
this.remarks = remarks;
}
}
}

5
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemanufacturerretware/BaseManufacturerRetwareRest.java

@ -84,6 +84,11 @@ public class BaseManufacturerRetwareRest implements BaseManufacturerRetwareFeign
return baseManufacturerRetwareService.confirm(dto);
}
@Override
public ResultBean<String> createPdf(String sid) {
return baseManufacturerRetwareService.createPdf(sid);
}
@Override
@ApiOperation("根据sid批量删除")
@PostMapping("/delBySids")

52
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemanufacturerretware/BaseManufacturerRetwareService.java

@ -33,6 +33,9 @@ import com.yxt.anrui.base.api.basemanufacturerretwareveh.BaseManufacturerRetware
import com.yxt.anrui.base.api.basemanufacturerretwareveh.BaseManufacturerRetwareVehDetailsVo;
import com.yxt.anrui.base.api.basemanufacturerretwareveh.BaseManufacturerRetwareVehDto;
import com.yxt.anrui.base.api.basevehicle.BaseVehicle;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleSelectVo;
import com.yxt.anrui.base.api.basevehicle.ExiCarConfigDetailVo;
import com.yxt.anrui.base.api.busvehicleapply.BusVehicleApplyDto;
import com.yxt.anrui.base.biz.basemanufacturerretwareveh.BaseManufacturerRetwareVehService;
import com.yxt.anrui.base.biz.basevehicle.BaseVehicleService;
@ -40,9 +43,13 @@ import com.yxt.anrui.base.common.enums.BillTypeEnum;
import com.yxt.anrui.base.common.enums.VehicleState;
import com.yxt.anrui.base.common.utils.Rule;
import com.yxt.anrui.base.common.utils.domain.BillNo;
import com.yxt.anrui.portal.api.sysorganization.SysOrganization;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.scm.api.scmvehiclegression.ScmVehicleGression;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.utils.WordUtils;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
@ -59,7 +66,10 @@ import com.yxt.anrui.base.api.basemanufacturerretware.BaseManufacturerRetwareFei
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Project: anrui-base(厂家退库) <br/>
@ -85,6 +95,8 @@ public class BaseManufacturerRetwareService extends MybatisBaseService<BaseManuf
private BaseManufacturerRetwareVehService baseManufacturerRetwareVehService;
@Autowired
private BaseVehicleService baseVehicleService;
@Autowired
private FileUploadComponent fileUploadComponent;
private QueryWrapper<BaseManufacturerRetware> createQueryWrapper(BaseManufacturerRetwareQuery query) {
// todo: 这里根据具体业务调整查询条件
@ -261,4 +273,44 @@ public class BaseManufacturerRetwareService extends MybatisBaseService<BaseManuf
}
return rb.success().setMsg("修改成功");
}
public ResultBean<String> createPdf(String sid) {
ResultBean rb = ResultBean.fireFail();
BaseManufacturerRetwareVeh baseManufacturerRetwareVeh = baseManufacturerRetwareVehService.fetchBySid(sid);
String mainSid = baseManufacturerRetwareVeh.getMainSid();
BaseManufacturerRetware baseManufacturerRetware = fetchBySid(mainSid);
SysOrganization sysOrganization = sysOrganizationFeign.selectBySid(baseManufacturerRetware.getUseOrgSid()).getData();
BaseVehicle baseVehicle = baseVehicleService.selectByVinNoAndOrgSid(baseManufacturerRetwareVeh.getVinNo(), baseManufacturerRetware.getCreateOrgSid());
ExiCarConfigDetailVo exiCarConfigDetailVo = baseVehicleService.selectExiCarConfig(baseVehicle.getModelSid(), baseVehicle.getModelConfigSid());
Map<String, Object> dataMap = new HashMap<String, Object>();
dataMap.put("date", DateUtil.today());
dataMap.put("contractNo", "—");
dataMap.put("orgName", sysOrganization.getName());
dataMap.put("name", "—");
dataMap.put("modelName", baseVehicle.getModelName() + exiCarConfigDetailVo.getCarColor());
dataMap.put("number", 1);
dataMap.put("vinNo", baseManufacturerRetwareVeh.getVinNo());
dataMap.put("reason", "厂家退库办理");
dataMap.put("operator", baseManufacturerRetware.getOperatorName());
// dataMap.put("finOperator", "-");
dataMap.put("carCollector", "—");
// dataMap.put("signature", "-");
// 模板名
String typeName = "出门证模板";
// 模板路径
String sourcePath = "D:\\anrui\\upload\\template\\";
// 生成的word文件名
String fileName = "出门证.doc";
String dateStr = DateUtil.format(new Date(), "yyyyMMdd");
// 生成文件路径
String targetPath = sourcePath + dateStr;
// 调用生成word方法
WordUtils.creatWord(dataMap, typeName, sourcePath, targetPath, fileName);
// 新生成的word路径;
String wordPath = targetPath + "\\" + fileName;
// 生成pdf的文件名
String pdfName = "出门证_" + fileUploadComponent.dateFileName() + ".pdf";
WordUtils.doc2pdf(wordPath, targetPath, pdfName);
return rb.success().setData("template" + "/" + dateStr + "/" + pdfName);
}
}

5
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractMapper.java

@ -5,13 +5,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.base.api.basevehiclemodel.BaseVehicleModelExportVo;
import com.yxt.anrui.base.api.commoncontract.*;
import com.yxt.common.core.result.ResultBean;
import org.apache.ibatis.annotations.*;
import java.util.List;
import java.util.Map;
/**
* Project: anrui-base(安瑞基础) <br/>
@ -80,4 +77,6 @@ public interface CommonContractMapper extends BaseMapper<CommonContract> {
* @return
*/
AppCommonContractInitVo getContractInfo(@Param("contractSid") String contractSid, @Param("staffSid") String staffSid);
int selectNum(String bill);
}

68
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractMapper.xml

@ -3,7 +3,7 @@
<mapper namespace="com.yxt.anrui.base.biz.commoncontract.CommonContractMapper">
<insert id="saveList">
INSERT INTO common_contract(sid, contractNo, contractType, partyA, partyB, partyC, createBySid,
createDate, address, deposit,contractAmount,remarks)
createDate, address, deposit, contractAmount, remarks)
VALUES
<foreach collection="list" item="item" index="index" separator=",">
(UUID(),<!--sid-->
@ -23,8 +23,11 @@
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.anrui.base.api.commoncontract.CommonContractVo">
SELECT * FROM common_contract
<where>${ew.sqlSegment}</where>
SELECT *
FROM common_contract
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selectCountByTypeAndOrgAndCreateDate" resultType="int">
@ -35,23 +38,23 @@
AND createDate = #{createDate}
</select>
<select id="listExcel" resultType="com.yxt.anrui.base.api.commoncontract.CommonContractExportVo">
SELECT
cc.`contractNo`,
cc.`contractType`,
cc.`partyA`,
cc.`partyB`,
cc.`partyC`,
suser.`userName` creatName,
cc.`createDate`,
cc.`address`,
cc.`deposit`,
cc.`contractAmount`,
cc.`remarks`
FROM
common_contract cc
LEFT JOIN anrui_portal.`sys_user` suser
ON cc.createBySid = suser.`sid`
<where>${ew.sqlSegment}</where>
SELECT cc.`contractNo`,
cc.`contractType`,
cc.`partyA`,
cc.`partyB`,
cc.`partyC`,
suser.`userName` creatName,
cc.`createDate`,
cc.`address`,
cc.`deposit`,
cc.`contractAmount`,
cc.`remarks`
FROM common_contract cc
LEFT JOIN anrui_portal.`sys_user` suser
ON cc.createBySid = suser.`sid`
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selectCreatSidByName" resultType="java.lang.String">
SELECT sid
@ -65,16 +68,17 @@
</select>
<select id="getContractList" resultType="com.yxt.anrui.base.api.commoncontract.AppCommonContractPageVo">
SELECT
sid AS contractSid,
contractNo AS contractId,
contractTypeKey AS contractType,
partyB,
handler,
contractAmount AS contractPrice,
nodeState
SELECT sid AS contractSid,
contractNo AS contractId,
contractTypeKey AS contractType,
partyB,
handler,
contractAmount AS contractPrice,
nodeState
FROM common_contract
<where>${ew.sqlSegment}</where>
<where>
${ew.sqlSegment}
</where>
</select>
<!--移动端-初始化合同审核-->
@ -102,4 +106,10 @@
#{item}
</foreach>
</delete>
<select id="selectNum" resultType="int">
select IFNULL(CAST(REPLACE(MAX(contractNo), #{bill}, '') AS SIGNED),0) as code
from common_contract
where contractNo LIKE concat(#{bill}, '%')
</select>
</mapper>

63
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractService.java

@ -11,6 +11,10 @@ import com.yxt.anrui.base.biz.basetrailer.BaseTrailerService;
import com.yxt.anrui.base.biz.basevehiclebrand.BaseVehicleBrandService;
import com.yxt.anrui.base.biz.basevehiclemodel.BaseVehicleModelService;
import com.yxt.anrui.base.biz.commonappendix.CommonAppendixService;
import com.yxt.anrui.base.common.enums.BillTypeEnum;
import com.yxt.anrui.base.common.enums.CommonContractEnum;
import com.yxt.anrui.base.common.utils.Rule;
import com.yxt.anrui.base.common.utils.domain.BillNo;
import com.yxt.anrui.buscenter.api.busdeposit.BusDepositFeign;
import com.yxt.anrui.buscenter.api.busdepositfictitious.BusDepositFictitiousDetailsVo;
import com.yxt.anrui.buscenter.api.busdepositfictitious.BusDepositFictitiousFeign;
@ -26,6 +30,7 @@ import com.yxt.anrui.flowable.api.sysformlink.SysFormStateVo;
import com.yxt.anrui.portal.api.dictcommon.DictCommonFeign;
import com.yxt.anrui.portal.api.dictcommon.DictCommonVo;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgVo;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
@ -49,6 +54,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.File;
import java.math.BigDecimal;
import java.text.MessageFormat;
import java.text.SimpleDateFormat;
import java.util.*;
@ -1186,6 +1192,9 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
map.put("priceRemarks", priceRemarks);
map.put("depositTotal", depositTotal);
map.put("address", address);
//生成合同编号
String contractNo = getApplyCode(dto.getUserSid());
map.put("contractNo", contractNo);
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
@ -1219,11 +1228,63 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
printConfirmVo.setDownloadUrl(future2.get());
list.add(printConfirmVo);
}
//生成合同数据
Future<String> future3 = pool.submit(() -> {
//新增合同信息
CommonContract commonContract = new CommonContract();
//合同编号
commonContract.setContractNo(contractNo);
//合同类型
commonContract.setContractTypeKey(CommonContractEnum.contractType.XC_CONTRACT.getCode());
commonContract.setContractType(CommonContractEnum.contractType.XC_CONTRACT.getRemarks());
//客户sid
commonContract.setCustomerSid(appOrderDetailsVo.getCustomerSid());
//业务员sid、业务员
commonContract.setStaffSid(appOrderDetailsVo.getUserSid());
commonContract.setStaffName(appOrderDetailsVo.getSellerName());
//分公司sid
commonContract.setOrgSid(appOrderDetailsVo.getOrgSid());
//业务表sid
commonContract.setBusSid(dto.getBusSid());
//甲方名称、乙方名称、其他方名称、
commonContract.setPartyA(createOrgName);
commonContract.setPartyB(customerName);
//签订日期、签订地点
//订金、合同金额
commonContract.setDeposit(new BigDecimal(depositTotal));
//合同附件
//身份证信息附件
//车型sid
commonContract.setModelSid(appOrderModelInfoVo.getModelSid());
//车型名称
commonContract.setModelName(appOrderModelInfoVo.getModelName());
//车辆台数
commonContract.setNum(Integer.valueOf(num).intValue());
//车辆单价
commonContract.setPrice(new BigDecimal(transactionPrice));
//单台订金
commonContract.setOneDeposit(new BigDecimal(depositInfo.getDeposit()));
save(commonContract);
return commonContract.getSid();
});
} catch (Exception e) {
e.printStackTrace();
return rb.setMsg("生成文件失败");
}
return rb.success().setData(list);
}
public String getApplyCode(String userSid) {
//获取分公司sid
ResultBean<String> resultBean = sysStaffOrgFeign.getPathSidByUserSid(userSid);
ResultBean<SysOrganizationVo> resultBean1 = sysOrganizationFeign.fetchBySid(resultBean.getData());
String orgCode = resultBean1.getData().getOrgCode();
BillNo b = new BillNo();
b.setOrgCode(orgCode);
b.setBillType(BillTypeEnum.XSDD.getBillType());
String bill = Rule.getBill(b);
int i = baseMapper.selectNum(bill);
String billNo = Rule.getBillNo(bill, i);
return billNo;
}
}

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

@ -37,7 +37,8 @@
<!--虚拟订单列表-->
<select id="getVirtualOrders" resultType="com.yxt.anrui.buscenter.api.busmaindeposit.AppBusMainDepositVo">
SELECT bmd.sid AS virtualOrderSid,
SELECT
bmd.sid AS virtualOrderSid,
bmd.billNo AS virtualOrderId,
bmd.createDate AS virtualOrderDate,
bmd.depositBillTypeKey as virtualOrderType,
@ -58,12 +59,14 @@
</where>
<if test="name != '' and name != null">
UNION ALL
SELECT bmd.sid AS virtualOrderSid,
SELECT
bmd.sid AS virtualOrderSid,
bmd.billNo AS virtualOrderId,
bmd.createDate AS virtualOrderDate,
bmd.depositBillTypeKey as virtualOrderType,
bmd.staffName AS sellerName,
bmd.nodeState AS virtualOrderState,
bmd.orgName,
if(length(bmd.nodeState) > 0, nodeState, '待提交') AS virtualOrderState,
bmd.remarks
FROM bus_main_deposit bmd
LEFT JOIN bus_deposit_vehicle_customer bdvc ON bmd.sid = bdvc.billSid
@ -77,12 +80,14 @@
</if>
</where>
UNION ALL
SELECT bmd.sid AS virtualOrderSid,
SELECT
bmd.sid AS virtualOrderSid,
bmd.billNo AS virtualOrderId,
bmd.createDate AS virtualOrderDate,
bmd.depositBillTypeKey as virtualOrderType,
bmd.staffName AS sellerName,
bmd.nodeState AS virtualOrderState,
bmd.orgName,
if(length(bmd.nodeState) > 0, nodeState, '待提交') AS virtualOrderState,
bmd.remarks
FROM bus_main_deposit bmd
LEFT JOIN bus_deposit_vehicle_customer bdvc ON bmd.sid = bdvc.billSid

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

@ -74,6 +74,7 @@
, '%')
</if>
</where>
order by bo.id
</select>
<!--根据销售订单sid查询车型信息-->
<select id="selectModelInfoByOrderSid"

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

@ -1153,7 +1153,6 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
qw.eq("bo.staffSid", query.getStaffSid());
}
}
qw.orderByDesc("bo.id");
return qw;
}
@ -1978,9 +1977,13 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
ResultBean<List<AppBaseVehicleOrderVo>> orderVoResultBean = baseVehicleFeign.selectAppList(modelSid, configSid, orgSid);
if (orderVoResultBean.getSuccess()) {
List<AppBaseVehicleOrderVo> voList = orderVoResultBean.getData();
for (AppBaseVehicleOrderVo vehicleOrderVo : voList) {
vinNoList.add(vehicleOrderVo.getVin());
voList.removeAll(Collections.singleton(null));
if(!voList.isEmpty()){
for (AppBaseVehicleOrderVo vehicleOrderVo : voList) {
vinNoList.add(vehicleOrderVo.getVin());
}
}
}
//该销售订单所选择的现车的列表
List<AppNowCarListVo> nowCarList = busSalesOrderVehicleService.selectAppDetailsVoBySaleOrderSid(sid);
@ -2020,27 +2023,30 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
ResultBean<List<AppBusVehicleApplyListVo>> applyListResultBean = busVehicleApplyDetailFeign.getAppApplyList(modelSid, configSid);
if (applyListResultBean.getSuccess()) {
List<AppBusVehicleApplyListVo> applyListVos = applyListResultBean.getData();
for (AppBusVehicleApplyListVo applyListVo : applyListVos) {
AppReadyCarVo appReadyCarVo = new AppReadyCarVo();
BeanUtil.copyProperties(applyListVo, appReadyCarVo);
if (StringUtils.isNotBlank(applyListVo.getTotalNum())) {
//总数量
int totalNum = Integer.parseInt(applyListVo.getTotalNum());
if (StringUtils.isNotBlank(applyListVo.getLockingNum())) {
//锁定数量
int lockNum = Integer.parseInt(applyListVo.getLockingNum());
//可使用数量
int canUseNum = totalNum - lockNum;
appReadyCarVo.setCanUseNum(String.valueOf(canUseNum));
applyListVos.removeAll(Collections.singleton(null));
if(!applyListVos.isEmpty()){
for (AppBusVehicleApplyListVo applyListVo : applyListVos) {
AppReadyCarVo appReadyCarVo = new AppReadyCarVo();
BeanUtil.copyProperties(applyListVo, appReadyCarVo);
if (StringUtils.isNotBlank(applyListVo.getTotalNum())) {
//总数量
int totalNum = Integer.parseInt(applyListVo.getTotalNum());
if (StringUtils.isNotBlank(applyListVo.getLockingNum())) {
//锁定数量
int lockNum = Integer.parseInt(applyListVo.getLockingNum());
//可使用数量
int canUseNum = totalNum - lockNum;
appReadyCarVo.setCanUseNum(String.valueOf(canUseNum));
} else {
appReadyCarVo.setCanUseNum(String.valueOf(totalNum));
}
} else {
appReadyCarVo.setCanUseNum(String.valueOf(totalNum));
appReadyCarVo.setCanUseNum("0");
}
} else {
appReadyCarVo.setCanUseNum("0");
//将每个采购订单的编号及可使用数量放入map集合中用来对比车型信息是否发生了变化
map.put(applyListVo.getOrderId(), appReadyCarVo.getCanUseNum());
appReadyCar.add(appReadyCarVo);
}
//将每个采购订单的编号及可使用数量放入map集合中用来对比车型信息是否发生了变化
map.put(applyListVo.getOrderId(), appReadyCarVo.getCanUseNum());
appReadyCar.add(appReadyCarVo);
}
appCarInfo.setReadyCar(appReadyCar);
//销售订单下的所选择的采购订单列表

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

@ -64,4 +64,5 @@ public interface FinKingDeeFeign {
@PostMapping("/draftBdMaterial")
@ResponseBody
public ResultBean draftBdMaterial(@RequestBody BdMaterial bdMaterial) ;
}

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

@ -107,4 +107,109 @@ 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;
}*/
}

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

@ -1,5 +1,6 @@
package com.yxt.anrui.fin.api.kingdee.auditKd;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
/**
@ -7,21 +8,16 @@ import lombok.Data;
*/
@Data
public class AuditKD {
// 1.formid:业务对象表单Id,字符串类型(必录)
private String formid;
// 2.data:Json格式数据(详情参考Json格式数据)(必录)
private DataKD data;
// 2.data:Json格式数据(详情参考Json格式数据)(必录)
@Data
public static class DataKD{
// 2.1.CreateOrgId:创建者组织内码,字符串类型(非必录)
@JsonProperty("CreateOrgId")
private String CreateOrgId;
//2.2.Numbers:单据编码集合,数组类型,格式:[No1,No2,...](使用编码时必录)
@JsonProperty("Numbers")
private String[] Numbers;
//2.3.Ids:单据内码集合,字符串类型,格式:"Id1,Id2,..."(使用内码时必录)
@JsonProperty("Ids")
private String Ids;
//2.4.InterationFlags:交互标志集合,字符串类型,分号分隔,格式:"flag1;flag2;..."(非必录),例如(允许负库存标识:STK_InvCheckResult)
@JsonProperty("InterationFlags")
private String InterationFlags;
}
}

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

@ -1,13 +1,25 @@
package com.yxt.anrui.fin.api.kingdee.bdmaterial;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.anrui.fin.api.kingdee.purmrb.PurMrb;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* 物料
*/
@Data
public class BdMaterial {
/**
* 目标组织:TOrgId
*/
@JsonProperty("TOrgIds")
private String TOrgIds;
/**
*创建组织:FCreateOrgId (必填项)
*/
@ -21,11 +33,40 @@ public class BdMaterial {
/**
*名称:FName (必填项)
*/
@NotBlank(message = "名称:FName (必填项)")
@JsonProperty("FName")
private String FName;
/**
*物料分组:FMaterialGroup (必填项)
*/
@NotBlank(message = "物料分组:FMaterialGroup (必填项)")
@JsonProperty("FMaterialGroup")
private String FMaterialGroup;
private final static BdMaterial bdMaterial = new BdMaterial();
static {
/**
*物料分组:FMaterialGroup (必填项)
*/
bdMaterial.setFMaterialGroup("01");
/**
*名称:FName (必填项)
*/
bdMaterial.setFName("物料名称1911");
/**
*使用组织:FUseOrgId (必填项)
*/
bdMaterial.setFUseOrgId("100");
/**
*创建组织:FCreateOrgId (必填项)
*/
bdMaterial.setFCreateOrgId("100");
/**
* 目标组织:TOrgId
*/
bdMaterial.setTOrgIds("101");
}
public static BdMaterial createBdMaterial() {
return bdMaterial;
}
}

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

@ -21,57 +21,57 @@ public class PurMrb {
*/
@NotBlank
@JsonProperty("FDate")
private String FDate;
public String FDate;
/**
* 退料组织:FStockOrgId (必填项)
*/@NotBlank
@JsonProperty("FStockOrgId")
private String FStockOrgId;
public String FStockOrgId;
/**
* 需求组织:FRequireOrgId (必填项)
*/@NotBlank
@JsonProperty("FRequireOrgId")
private String FRequireOrgId;
public String FRequireOrgId;
/**
* 采购组织:FPurchaseOrgId (必填项)
*/@NotBlank
@JsonProperty("FPurchaseOrgId")
private String FPurchaseOrgId;
public String FPurchaseOrgId;
/**
* 供应商:FSupplierID (必填项)
*/@NotBlank
@JsonProperty("FSupplierID")
private String FSupplierID;
public String FSupplierID;
/**
* 接收方:FACCEPTORID
*/@NotBlank
@JsonProperty("FACCEPTORID")
private String FACCEPTORID;
public String FACCEPTORID;
/**
* 结算方:FSettleId
*/@NotBlank
@JsonProperty("FSettleId")
private String FSettleId;
public String FSettleId;
/**
* 收款方:FCHARGEID
*/@NotBlank
@JsonProperty("FCHARGEID")
private String FCHARGEID;
public String FCHARGEID;
/**
* 货主:FOwnerIdHead (必填项)
*/@NotBlank
@JsonProperty("FOwnerIdHead")
private String FOwnerIdHead;
public String FOwnerIdHead;
/**
* 结算组织:FSettleOrgId (必填项)
*/@NotBlank
@JsonProperty("FSettleOrgId")
private String FSettleOrgId;
public String FSettleOrgId;
/**
* 物料列表
*/@NotBlank
@JsonProperty("FPURMRBENTRY")
private List<FPURMRBENTRY> FPURMRBENTRY=new ArrayList<>();
public List<FPURMRBENTRY> FPURMRBENTRY=new ArrayList<>();
@Data
@ -80,76 +80,76 @@ public class PurMrb {
* 物料编码:FMATERIALID (必填项)
*/@NotBlank
@JsonProperty("FMATERIALID")
private String FMATERIALID;
public String FMATERIALID;
/**
* 物料说明:FMaterialDesc
*/@NotBlank
@JsonProperty("FMaterialDesc")
private String FMaterialDesc;
public String FMaterialDesc;
/**
* 库存单位:FUnitID (必填项)
*/@NotBlank
@JsonProperty("FUnitID")
private String FUnitID;
public String FUnitID;
/**
* 批号:FLot
*/@NotBlank
@JsonProperty("FLot")
private String FLot;
public String FLot;
/**
* 实退数量:FRMREALQTY
*/@NotBlank
@JsonProperty("FRMREALQTY")
private double FRMREALQTY;
public double FRMREALQTY;
/**
* 补料数量:FREPLENISHQTY
*/@NotBlank
@JsonProperty("FREPLENISHQTY")
private double FREPLENISHQTY;
public double FREPLENISHQTY;
/**
* 扣款数量:FKEAPAMTQTY
*/@NotBlank
@JsonProperty("FKEAPAMTQTY")
private double FKEAPAMTQTY;
public double FKEAPAMTQTY;
/**
* 计价单位:FPRICEUNITID (必填项)
*/@NotBlank
@JsonProperty("FPRICEUNITID")
private String FPRICEUNITID;
public String FPRICEUNITID;
/**
* 仓库:FSTOCKID
*/@NotBlank
@JsonProperty("FSTOCKID")
private String FSTOCKID;
public String FSTOCKID;
/**
* 库存状态:FStockStatusId
*/@NotBlank
@JsonProperty("FStockStatusId")
private String FStockStatusId;
public String FStockStatusId;
/**
* 计价基本数量:FPriceBaseQty
*/@NotBlank
@JsonProperty("FPriceBaseQty")
private double FPriceBaseQty;
public double FPriceBaseQty;
/**
* 采购单位:FCarryUnitId (必填项)
*/@NotBlank
@JsonProperty("FCarryUnitId")
private String FCarryUnitId;
public String FCarryUnitId;
/**
* 采购数量:FCarryQty
*/@NotBlank
@JsonProperty("FCarryQty")
private double FCarryQty;
public double FCarryQty;
/**
* 采购基本数量:FCarryBaseQty
*/@NotBlank
@JsonProperty("FCarryBaseQty")
private double FCarryBaseQty;
public double FCarryBaseQty;
}
private final static PurMrb purMrb = new PurMrb();
public final static PurMrb purMrb = new PurMrb();
static {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

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

@ -14,78 +14,78 @@ import java.util.List;
*/
@Data
public class StkInStock {
private String sid;
public String sid;
/**
* //采购组织:FPurchaseOrgId (必填项)
*/@JsonProperty("FPurchaseOrgId")
@NotBlank
private String FPurchaseOrgId;
public String FPurchaseOrgId;
/**
* // 收料组织:FStockOrgId (必填项)
*/@JsonProperty("FStockOrgId")
@NotBlank
private String FStockOrgId;
public String FStockOrgId;
/**
* // 采购部门:FPurchaseDeptId (必填项)
*/@JsonProperty("FPurchaseDeptId")
@NotBlank
private String FPurchaseDeptId;
public String FPurchaseDeptId;
/**
* // 供应商:FSupplierId (必填项)
*/@JsonProperty("FSupplierId")
@NotBlank
private String FSupplierId;
public String FSupplierId;
/**
* // 入库日期:FDate (必填项)
*/@JsonProperty("FDate")
@NotBlank
private String FDate;
public String FDate;
/**
* // 货主:FOwnerIdHead (必填项)
*/@JsonProperty("FOwnerIdHead")
@NotBlank
private String FOwnerIdHead;
public String FOwnerIdHead;
/**
* // 单据类型:FBillTypeID (必填项)
*/@JsonProperty("FBillTypeID")
@NotBlank
private String FBillTypeID="RKD01_SYS";
public String FBillTypeID="RKD01_SYS";
/**
* // 货主类型:FOwnerTypeIdHead (必填项)
*/@JsonProperty("FOwnerTypeIdHead")
@NotBlank
private String FOwnerTypeIdHead;
public String FOwnerTypeIdHead;
/**
* // 定价时点:FPriceTimePoint (必填项)
*/@JsonProperty("FPriceTimePoint")
@NotBlank
private String FPriceTimePoint;
public String FPriceTimePoint;
/**
* // 结算币别:FSettleCurrId (必填项)
*/@JsonProperty("FSettleCurrId")
@NotBlank
private String FSettleCurrId;
public String FSettleCurrId;
/**
* // 结算组织:FSettleOrgId (必填项)
*/@JsonProperty("FSettleOrgId")
@NotBlank
private String FSettleOrgId;
public String FSettleOrgId;
/**
* // 物料列表:FInStockEntry (必填项)
*/@JsonProperty("FInStockEntry")
@NotBlank
private List<FInStockEntry> FInStockEntry=new ArrayList<>();
public List<FInStockEntry> FInStockEntry=new ArrayList<>();
@Data
public static class FInStockEntry{
@ -94,58 +94,58 @@ public class StkInStock {
* // 物料编码:FMaterialId (必填项)
*/@JsonProperty("FMaterialId")
@NotBlank
private String FMaterialId;
public String FMaterialId;
/**
* // 库存单位:FUnitID (必填项)
*/@JsonProperty("FUnitID")
@NotBlank
private String FUnitID;
public String FUnitID;
/**
* // 实收数量:FRealQty
*/@JsonProperty("FRealQty")
@NotBlank
private double FRealQty;
public double FRealQty;
/**
* // 计价数量:FPriceUnitQty
*/@JsonProperty("FPriceUnitQty")
@NotBlank
private String FPriceUnitQty;
public String FPriceUnitQty;
/**
* // 采购数量:FRemainInStockQty
*/@JsonProperty("FRemainInStockQty")
@NotBlank
private double FRemainInStockQty;
public double FRemainInStockQty;
/**
* // 批号:FLot
*/@JsonProperty("FLot")
@NotBlank
private String FLot;
public String FLot;
/**
* // 仓库:FStockId
*/@JsonProperty("FStockId")
@NotBlank
private String FStockId;
public String FStockId;
/**
* // 计价单位:FPriceUnitID (必填项)
*/@JsonProperty("FPriceUnitID")
@NotBlank
private String FPriceUnitID;
public String FPriceUnitID;
/**
* // 采购单位:FRemainInStockUnitId (必填项)
*/@JsonProperty("FRemainInStockUnitId")
@NotBlank
private String FRemainInStockUnitId;
public String FRemainInStockUnitId;
}
private final static StkInStock stkInStock = new StkInStock();
public final static StkInStock stkInStock = new StkInStock();
static {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

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

@ -1,5 +1,6 @@
package com.yxt.anrui.fin.api.kingdee.submitkd;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
/**
@ -7,18 +8,13 @@ import lombok.Data;
*/
@Data
public class SubmitKD {
//1.formid:业务对象表单Id,字符串类型(必录)
private String formid;
//2.data:Json格式数据(详情参考Json格式数据)(必录)
private DataKD data;
//2.data:Json格式数据(详情参考Json格式数据)(必录)
@Data
public static class DataKD{
//2.1.CreateOrgId:创建者组织内码,字符串类型(非必录)
@JsonProperty("CreateOrgId")
private String CreateOrgId;
// 2.2.Numbers:单据编码集合,数组类型,格式:[No1,No2,...](使用编码时必录)
@JsonProperty("Numbers")
private String[] Numbers;
//2.3.Ids:单据内码集合,字符串类型,格式:"Id1,Id2,..."(使用内码时必录)
@JsonProperty("Ids")
private String Ids;
}
}

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

@ -111,5 +111,4 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
public ResultBean draftBdMaterial(@RequestBody BdMaterial bdMaterial) {
return bdMaterialService.draftBdMaterial(bdMaterial);
}
}

97
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeService.java

@ -7,7 +7,11 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 转换业务数据到金蝶的接口上
@ -16,20 +20,103 @@ import java.util.List;
public class FinKingDeeService {
public static final Logger log = LoggerFactory.getLogger(FinKingDeeService.class);
/**
* 调用金蝶的接口
* 调用金蝶的保存接口
* @param data
* @return
*/
public ResultBean saveBill(String formId,String data) throws Exception {
KingDeeParams kdp=new KingDeeParams();
kdp.setData(data);
kdp.setFormId(formId);
public ResultBean<List<KingDeeResult>> saveBill(String formId,String data) throws Exception {
KingDeeParams kdp = getKingDeeParams(formId, data);
log.info("kdp:{}",JSONObject.toJSONString(kdp));
ResultBean<List<KingDeeResult>> listResultBean = KingDeeSaveSKD.SavePurRKD(kdp);
log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean));
return listResultBean;
}
/**
* 调用提交金蝶的数据接口
* @param formId
* @param data
* @return
*/
public ResultBean<List<KingDeeResult>> submitKingDeeBillData(String formId,String data) {
KingDeeParams kdp = getKingDeeParams(formId, data);
log.info("kdp:{}",JSONObject.toJSONString(kdp));
ResultBean<List<KingDeeResult>> listResultBean = KingDeeSaveSKD.submitKingDeeBillData(kdp);
log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean));
return listResultBean;
}
/**
* 调用审核金蝶的数据接口
* @param formId
* @param data
* @return
*/
public ResultBean<List<KingDeeResult>> auditKingDeeBillData(String formId,String data) {
KingDeeParams kdp = getKingDeeParams(formId, data);
log.info("kdp:{}",JSONObject.toJSONString(kdp));
ResultBean<List<KingDeeResult>> listResultBean = KingDeeSaveSKD.auditKingDeeBillData(kdp);
log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean));
return listResultBean;
}
/**
* 调用分配金蝶的数据接口
* @param formId
* @param data
* @return
*/
public ResultBean<List<KingDeeResult>> allocateKingDeeBillData(String formId, String data) {
KingDeeParams kdp = getKingDeeParams(formId, data);
log.info("kdp:{}",JSONObject.toJSONString(kdp));
ResultBean<List<KingDeeResult>> listResultBean = KingDeeSaveSKD.allocateKingDeeBillData(kdp);
log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean));
return listResultBean;
}
private KingDeeParams getKingDeeParams(String formId, String data) {
KingDeeParams kdp=new KingDeeParams();
kdp.setData(data);
kdp.setFormId(formId);
return kdp;
}
/**
* 构造map参数
* @param stringObjectMap
*/
public static Map<String, String> createMapParams(Map<String, Object> stringObjectMap) {
Map<String, String> map_fEntityModel_=new HashMap<>();
for (Map.Entry<String, Object> entry : stringObjectMap.entrySet()) {
if (entry.getValue() instanceof String) {
log.info("String key:{},value:{}",entry.getKey(),(String) entry.getValue());
map_fEntityModel_.put(entry.getKey(), (String) entry.getValue());
}else if(entry.getValue() instanceof Double){
log.info("Double key:{},value:{}",entry.getKey(),entry.getValue());
map_fEntityModel_.put(entry.getKey(), entry.getValue().toString());
}
}
return map_fEntityModel_;
}
public static Map<String,String> object2Map(Object obj) throws IllegalAccessException {
Map<String,String> map = new HashMap<String, String>();
Field[] fields = obj.getClass().getDeclaredFields();
for(Field field:fields){
log.info("key:{},value:{}",field.getName(),field.get(obj));
field.setAccessible(true);
if (field.get(obj)!=null && field.get(obj) instanceof String) {
map.put(field.getName(), (String) field.get(obj));
}else if(field.get(obj)!=null && field.get(obj) instanceof Double ){
map.put(field.getName(), field.get(obj).toString());
}
}
return map;
}
public static <T> List<Map<String, String>> createVehicleLists(List<T> objectList) throws IllegalAccessException {
ArrayList<Map<String, String>> resultList = new ArrayList<>();
for (T t : objectList) {
resultList.add(object2Map(t));
}
return resultList;
}
/**
* 调用金蝶接口的数据格式
*/

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

@ -4,6 +4,8 @@ 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.anrui.fin.api.kingdee.auditKd.AuditKD;
import com.yxt.anrui.fin.api.kingdee.submitkd.SubmitKD;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
import org.apache.http.Header;
@ -47,18 +49,17 @@ public class KingDeeSaveSKD {
* 登录金蝶的账户信息
*/
private static String lcid = "2052";
private static String url="http://121.36.43.55/k3cloud/Kingdee.BOS.WebApi.ServicesStub.";
// 数据保存接口地址
private static String Save_URL = "http://121.36.43.55/k3cloud/Kingdee.BOS.WebApi.ServicesStub." +
"DynamicFormService.Save.common.kdsvc";
private static String Save_URL = url+"DynamicFormService.Save.common.kdsvc";
//数据提交接口的地址
private static String Submit_URL = "http://121.36.43.55/k3cloud/Kingdee.BOS.WebApi.ServicesStub." +
"DynamicFormService.Submit";
private static String Submit_URL = url+"DynamicFormService.Submit.common.kdsvc";
//数据审核接口的地址
private static String Audit_URL = "http://121.36.43.55/k3cloud/Kingdee.BOS.WebApi.ServicesStub." +
"DynamicFormService.Audit";
private static String Audit_URL = url+"DynamicFormService.Audit.common.kdsvc";
//数据分配接口的地址
private static String Allocate_URL = url+"DynamicFormService.Allocate.common.kdsvc";
//登录,校验用户的API接口地址
private static String Login_URL = "http://121.36.43.55/k3cloud/Kingdee.BOS.WebApi.ServicesStub." +
"AuthService.ValidateUser.common.kdsvc";
private static String Login_URL = url+"AuthService.ValidateUser.common.kdsvc";
/**
@ -90,7 +91,6 @@ public class KingDeeSaveSKD {
try {
URI save_uri = new URI(Save_URL);
HttpPost method = new HttpPost(save_uri);
//采购入库单保存参数
log.info(jsonParam.getData());
/*String ss="{\"formId\":\"AR_receivable\",\"data\":\"{\\\"Creator\\\":\\\"\\\",\\\"NeedUpDateFields\\\":[],\\\"NeedReturnFields\\\":[],\\\"IsDeleteEntry\\\":\\\"True\\\",\\\"SubSystemId\\\":\\\"\\\",\\\"IsVerifyBaseDataField\\\":\\\"false\\\",\\\"IsEntryBatchFill\\\":\\\"True\\\",\\\"ValidateFlag\\\":\\\"True\\\",\\\"NumberSearch\\\":\\\"True\\\",\\\"InterationFlags\\\":\\\"\\\",\\\"Model\\\":{\\\"FID\\\":0,\\\"FBillTypeID\\\":{\\\"FNUMBER\\\":\\\"YSD01_SYS\\\"},\\\"FDATE\\\":\\\"2022-08-02 00:00:00\\\",\\\"FISINIT\\\":false,\\\"FENDDATE_H\\\":\\\"2022-08-02 00:00:00\\\",\\\"FCUSTOMERID\\\":{\\\"FNumber\\\":\\\" JXYXB\\\"},\\\"FCURRENCYID\\\":{\\\"FNumber\\\":\\\"PRE001\\\"},\\\"FISPRICEEXCLUDETAX\\\":true,\\\"FSETTLEORGID\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FPAYORGID\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FSALEORGID\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FISTAX\\\":true,\\\"FCancelStatus\\\":\\\"A\\\",\\\"FBUSINESSTYPE\\\":\\\"BZ\\\",\\\"FSetAccountType\\\":\\\"1\\\",\\\"FISHookMatch\\\":false,\\\"FISINVOICEARLIER\\\":false,\\\"F_PMZC_Assistant2\\\":{\\\"FNumber\\\":\\\"01\\\"},\\\"FsubHeadSuppiler\\\":{\\\"FORDERID\\\":{\\\"FNumber\\\":\\\" JXYXB\\\"},\\\"FTRANSFERID\\\":{\\\"FNumber\\\":\\\" JXYXB\\\"},\\\"FChargeId\\\":{\\\"FNumber\\\":\\\" JXYXB\\\"}},\\\"FsubHeadFinc\\\":{\\\"FACCNTTIMEJUDGETIME\\\":\\\"2022-08-02 00:00:00\\\",\\\"FMAINBOOKSTDCURRID\\\":{\\\"FNumber\\\":\\\"PRE001\\\"},\\\"FEXCHANGETYPE\\\":{\\\"FNumber\\\":\\\"HLTX01_SYS\\\"},\\\"FExchangeRate\\\":1.0,\\\"FTaxAmountFor\\\":121.01,\\\"FNoTaxAmountFor\\\":12100.99},\\\"FEntityDetail\\\":[{\\\"FMATERIALID\\\":{\\\"FNumber\\\":\\\" JX091054\\\"},\\\"FMaterialDesc\\\":\\\"X牵引6*4-550超\\\",\\\"FPRICEUNITID\\\":{\\\"FNumber\\\":\\\"liang\\\"},\\\"FPriceQty\\\":1.0,\\\"FTaxPrice\\\":12222.0,\\\"FPrice\\\":12100.99,\\\"FEntryTaxRate\\\":1.0,\\\"FNoTaxAmountFor_D\\\":12100.99,\\\"FTAXAMOUNTFOR_D\\\":121.01,\\\"FALLAMOUNTFOR_D\\\":12222.0,\\\"FDeliveryControl\\\":false,\\\"FStockUnitId\\\":{\\\"FNumber\\\":\\\"liang\\\"},\\\"FStockQty\\\":1.0,\\\"FIsFree\\\":false,\\\"FStockBaseQty\\\":1.0,\\\"FSalUnitId\\\":{\\\"FNumber\\\":\\\"liang\\\"},\\\"FSalQty\\\":1.0,\\\"FSalBaseQty\\\":1.0,\\\"FPriceBaseDen\\\":1.0,\\\"FSalBaseNum\\\":1.0,\\\"FStockBaseNum\\\":1.0}],\\\"FEntityPlan\\\":[{\\\"FENDDATE\\\":\\\"2022-08-02 00:00:00\\\",\\\"FPAYRATE\\\":100.0,\\\"FPAYAMOUNTFOR\\\":12222.0}]}}\"}";
log.info("ss-:{}",ss);*/
@ -133,16 +133,21 @@ public class KingDeeSaveSKD {
/**
* 调用提交金蝶的数据接口
* @param jsonParam
* @param httpclient
* @return
*/
public static ResultBean<List<KingDeeResult>> submitKingDeeBillData(FinKingDeeService.KingDeeParams jsonParam, HttpClient httpclient) {
public static ResultBean<List<KingDeeResult>> submitKingDeeBillData(FinKingDeeService.KingDeeParams jsonParam) {
// 定义httpClient的实例
HttpClient httpclient = new DefaultHttpClient();
/********** 用户登录Begin ************************/
ResultBean<List<KingDeeResult>> rb1 = loginKingDeeSystem(httpclient);
if (!rb1.getSuccess()) return rb1;
ResultBean<List<KingDeeResult> > rb= ResultBean.fireFail();
try {
URI save_uri = new URI(Save_URL);
URI save_uri = new URI(Submit_URL);
HttpPost method = new HttpPost(save_uri);
//采购入库单保存参数
log.info(jsonParam.getData());
//String ss= "{\"formId\":\"BD_MATERIAL\",\"data\":\"{\\\"CreateOrgId\\\":\\\"\\\",\\\"Numbers\\\":[],\\\"Ids\\\":\\\"6263811\\\"}\"}";
//StringEntity entity = new StringEntity(ss, "utf-8");
StringEntity entity = new StringEntity(jsonParam.getData(), "utf-8");
log.info(JSON.toJSONString(entity));
entity.setContentEncoding("UTF-8");
@ -162,7 +167,6 @@ public class KingDeeSaveSKD {
return rb.setMsg("操作失败");
}
log.info(str);
// auditKingDeeBillData();
return createResultBean(str);
}
} catch (Exception e) {
@ -173,16 +177,63 @@ public class KingDeeSaveSKD {
/**
* 调用审核金蝶的数据接口
* @param jsonParam
* @param httpclient
* @return
*/
public static ResultBean<List<KingDeeResult>> auditKingDeeBillData(FinKingDeeService.KingDeeParams jsonParam, HttpClient httpclient) {
public static ResultBean<List<KingDeeResult>> auditKingDeeBillData(FinKingDeeService.KingDeeParams jsonParam) {
// 定义httpClient的实例
HttpClient httpclient = new DefaultHttpClient();
/********** 用户登录Begin ************************/
ResultBean<List<KingDeeResult>> rb1 = loginKingDeeSystem(httpclient);
if (!rb1.getSuccess()) return rb1;
ResultBean<List<KingDeeResult> > rb= ResultBean.fireFail();
try {
URI save_uri = new URI(Save_URL);
URI save_uri = new URI(Audit_URL);
HttpPost method = new HttpPost(save_uri);
//采购入库单保存参数
log.info(jsonParam.getData());
log.info("jsonParam:{}",jsonParam);
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;
}
/**
* 分配金蝶返回的数据
* @param jsonParam
* @return
*/
public static ResultBean<List<KingDeeResult>> allocateKingDeeBillData(FinKingDeeService.KingDeeParams jsonParam) {
// 定义httpClient的实例
HttpClient httpclient = new DefaultHttpClient();
/********** 用户登录Begin ************************/
ResultBean<List<KingDeeResult>> rb1 = loginKingDeeSystem(httpclient);
if (!rb1.getSuccess()) return rb1;
ResultBean<List<KingDeeResult> > rb= ResultBean.fireFail();
try {
URI save_uri = new URI(Allocate_URL);
HttpPost method = new HttpPost(save_uri);
//采购入库单保存参数
log.info("jsonParam:{}",JSON.toJSON(jsonParam.getData()));
StringEntity entity = new StringEntity(jsonParam.getData(), "utf-8");
log.info(JSON.toJSONString(entity));
entity.setContentEncoding("UTF-8");

3
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/KingDeeUtils.java

@ -8,13 +8,12 @@ import java.util.Map;
public class KingDeeUtils {
public static String readJsonFile(String filename) { //#传文件的路径
String jsonStr = "";
try {
BufferedReader br= FileUtil.getUtf8Reader(filename);
StringBuffer sb = new StringBuffer();
String data = null;
while((data = br.readLine()) != null) {
sb.append((String) data);
sb.append(data);
}
return sb.toString();
} catch (IOException e) {

105
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appayable/APPayableCastToKingDeeBillFields.java

@ -56,109 +56,6 @@ public class APPayableCastToKingDeeBillFields {
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;
}*/
}

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

@ -1,15 +0,0 @@
{
"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超"
}
]
}

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

@ -7,6 +7,7 @@ import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService;
import com.yxt.common.core.result.ResultBean;
import org.springframework.stereotype.Service;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -23,57 +24,17 @@ public class ApPayBillService extends FinKingDeeService {
public ResultBean draftApPayBill(ApPayBill apPayBill) {
// apPayBill=ApPayBill.createApPayBill();
ResultBean rb=ResultBean.fireFail();
//业务表的主表数据集合
Map<String,String> map_fEntityModel_=new HashMap<>();
//业务日期
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(apPayBill);
List<ApPayBill.FPAYBILLENTRY> fpaybillentrYs = apPayBill.getFPAYBILLENTRY();
for (Map.Entry<String, Object> entry : stringObjectMap.entrySet()) {
if (entry.getValue() instanceof String) {
map_fEntityModel_.put(entry.getKey(), (String) entry.getValue());
}else if(entry.getValue() instanceof Double){
map_fEntityModel_.put(entry.getKey(), entry.getValue().toString());
}
}
//准备 物料列表的数据 ForEntryBill
ResultBean<List<Map<String, String>>> vehicleListMap = createVehicleListsForApPayBill(fpaybillentrYs);
if(!vehicleListMap.getSuccess()){
return rb.setMsg(vehicleListMap.getMsg());
}
String kingDeeData = ApPayBillCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_,vehicleListMap.getData());
try {
//业务表的主表数据集合
Map<String,String> map_fEntityModel_= object2Map(apPayBill);//createMapParams(stringObjectMap);
//准备 物料列表的数据 ForEntryBill
List<ApPayBill.FPAYBILLENTRY> fpaybillentrYs = apPayBill.getFPAYBILLENTRY();
List<Map<String, String>> vehicleListMap = createVehicleLists(fpaybillentrYs);
String kingDeeData = ApPayBillCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_,vehicleListMap);
return saveBill(KingDeeBillId.AP_PAYBILL.getID(),kingDeeData);
} catch (Exception e) {
e.printStackTrace();
}
return rb;
}
/**
* 准备 物料列表的数据 ApPayBill
*/
private ResultBean<List<Map<String, String>>>
createVehicleListsForApPayBill(List<ApPayBill.FPAYBILLENTRY> vehicleList) {
ResultBean<List<Map<String, String>>> rb=ResultBean.fireFail();
//物料的数组集合
List<Map<String,String>> vehicleListMap=new ArrayList<>();
for(int i = 0; i< vehicleList.size(); i++){
ApPayBill.FPAYBILLENTRY f= vehicleList.get(i);
Map<String,String> m=new HashMap<>();
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(f);
for (Map.Entry<String, Object> entry : stringObjectMap.entrySet()) {
if (entry.getValue() instanceof String) {
log.info("String key:{},value:{}",entry.getKey(),(String) entry.getValue());
m.put(entry.getKey(), (String) entry.getValue());
}else if(entry.getValue() instanceof Double){
log.info("Double key:{},value:{}",entry.getKey(),entry.getValue());
m.put(entry.getKey(), entry.getValue().toString());
}
}
vehicleListMap.add(m);
}
return rb.success().setData(vehicleListMap);
}
}

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

@ -1,15 +0,0 @@
{
"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超"
}
]
}

3
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/BdMaterialCastToKingDeeBillFields.java

@ -41,9 +41,6 @@ public class BdMaterialCastToKingDeeBillFields {
fEntityModel_ =KingDeeUtils.replaceTemplateParams(fEntityModel_, map_fEntityModel_);
JSONObject jsonFEntityModel_= JSONObject.parseObject(fEntityModel_,Feature.OrderedField);
List<JSONObject> list_fEntityDetail_=new ArrayList<>();
jsonFEntityModel_.put("FEntity", JSONArray.parseArray(JSON.toJSONString(list_fEntityDetail_)));
jsonFEntityData_.put("Model",JSONObject.parseObject(JSON.toJSONString(jsonFEntityModel_),Feature.OrderedField));
jsonObj.put("data",jsonFEntityData_.toJSONString());

109
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/BdMaterialService.java

@ -2,13 +2,15 @@ package com.yxt.anrui.fin.biz.kingdee.bdmaterial;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.fin.api.kingdee.KingDeeBillId;
import com.yxt.anrui.fin.api.kingdee.KingDeeResult;
import com.yxt.anrui.fin.api.kingdee.bdmaterial.BdMaterial;
import com.yxt.anrui.fin.api.kingdee.saloutstock.SalOutStock;
import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -18,7 +20,7 @@ import java.util.Map;
*/
@Service
public class BdMaterialService extends FinKingDeeService {
private static Logger log= LoggerFactory.getLogger(BdMaterialService.class);
/**
* 保存采购出库单
* @param bdMaterial
@ -27,21 +29,104 @@ public class BdMaterialService extends FinKingDeeService {
public ResultBean draftBdMaterial(BdMaterial bdMaterial) {
// bdMaterial=BdMaterial.createBdMaterial();
ResultBean rb=ResultBean.fireFail();
Map<String,String> map_fEntityModel_=new HashMap<>();
//物料信息转map参数
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(bdMaterial);
for (Map.Entry<String, Object> entry : stringObjectMap.entrySet()) {
if (entry.getValue() instanceof String) {
map_fEntityModel_.put(entry.getKey(), (String) entry.getValue());
}else if(entry.getValue() instanceof Double){
map_fEntityModel_.put(entry.getKey(), entry.getValue().toString());
}
}
//业务表的主表数据集合
Map<String,String> map_fEntityModel_=createMapParams(stringObjectMap);
String kingDeeData = BdMaterialCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_);
try {
return saveBill(KingDeeBillId.BD_MATERIAL.getID(),kingDeeData);
ResultBean<List<KingDeeResult>> resultBean = saveBill(KingDeeBillId.BD_MATERIAL.getID(), kingDeeData);
if(!resultBean.getSuccess()){
log.info("物料保存失败!");
return rb.setMsg("物料保存失败!");
}
log.info("物料保存成功!");
String submitKD = getSubmitKD(resultBean);
ResultBean<List<KingDeeResult>> resultBean1 = submitKingDeeBillData(KingDeeBillId.BD_MATERIAL.getID(), submitKD);
if(!resultBean1.getSuccess()){
log.info("物料提交失败!");
return rb.setMsg("物料提交失败!");
}
log.info("物料提交成功!");
String auditKD = getAuditKD(resultBean);
ResultBean<List<KingDeeResult>> resultBean2 = auditKingDeeBillData(KingDeeBillId.BD_MATERIAL.getID(), auditKD);
if(!resultBean2.getSuccess()){
log.info("物料审核失败!");
return rb.setMsg("物料审核失败!");
}
log.info("物料审核成功!");
String allocate = getAllocate(resultBean1,bdMaterial.getTOrgIds());
ResultBean<List<KingDeeResult>> resultBean3 = allocateKingDeeBillData(KingDeeBillId.BD_MATERIAL.getID(), allocate);
if(!resultBean3.getSuccess()){
log.info("物料分配失败!");
return rb.setMsg("物料分配失败!");
}
log.info("物料分配成功!");
return resultBean3;
} catch (Exception e) {
e.printStackTrace();
}
return rb;
}
/**
* 构造分配接口的数据格式
* @param resultBean
* @return
*/
private String getAllocate(ResultBean<List<KingDeeResult>> resultBean,String tOrgIds) {
/* 2.1.PkIds被分配的基础资料内码集合字符串类型格式"PkId1,PkId2,..."必录
2.2.TOrgIds目标组织内码集合字符串类型格式"TOrgId1,TOrgId2,..."必录
2.3.IsAutoSubmitAndAudit是否自动提交与审核布尔类型默认false非必录*/
List<KingDeeResult> data = resultBean.getData();
StringBuilder Ids=new StringBuilder();
for (int i=0;i<data.size();i++){
Ids.append(data.get(i).getId()).append(",");
}
String s = Ids.toString();
s=s.substring(0,s.length()-1);
return "{\"formId\":\"BD_MATERIAL\",\"data\":\"{\\\"PkIds\\\":\\\""+s+"\\\",\\\"TOrgIds\\\":\\\""+tOrgIds+"\\\",\\\"IsAutoSubmitAndAudit\\\":\\\"true\\\"}\"}";
}
/**
* 构造审核接口的数据格式
* @param resultBean
* @return
*/
private String getAuditKD(ResultBean<List<KingDeeResult>> resultBean) {
//2.1.CreateOrgId:创建者组织内码,字符串类型(非必录)
//2.2.Numbers:单据编码集合,数组类型,格式:[No1,No2,...](使用编码时必录)
//2.3.Ids:单据内码集合,字符串类型,格式:"Id1,Id2,..."(使用内码时必录)
List<KingDeeResult> data = resultBean.getData();
StringBuilder Ids=new StringBuilder();
for (int i=0;i<data.size();i++){
Ids.append(data.get(i).getId()).append(",");
}
String s = Ids.toString();
s=s.substring(0,s.length()-1);
return "{\"formId\":\"BD_MATERIAL\",\"data\":\"{\\\"CreateOrgId\\\":\\\"\\\",\\\"Numbers\\\":[],\\\"Ids\\\":\\\""+s+"\\\",\\\"InterationFlags\\\":\\\"\\\"}\"}";
}
/**
* 构造提交接口的数据格式
* @param resultBean
* @return
*/
private String getSubmitKD(ResultBean<List<KingDeeResult>> resultBean) {
//2.1.CreateOrgId:创建者组织内码,字符串类型(非必录)
//2.2.Numbers:单据编码集合,数组类型,格式:[No1,No2,...](使用编码时必录)
//2.3.Ids:单据内码集合,字符串类型,格式:"Id1,Id2,..."(使用内码时必录)
List<KingDeeResult> data = resultBean.getData();
StringBuilder Ids=new StringBuilder();
for (int i=0;i<data.size();i++){
Ids.append(data.get(i).getId()).append(",");
}
String s = Ids.toString();
s=s.substring(0,s.length()-1);
return "{\"formId\":\"BD_MATERIAL\",\"data\":\"{\\\"CreateOrgId\\\":\\\"\\\",\\\"Numbers\\\":[],\\\"Ids\\\":\\\""+s+"\\\"}\"}";
}
}

4
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/data_model.json

@ -49,7 +49,7 @@
"FCountCycle": "1",
"FCountDay": 1,
"FIsMustCounting": false,
"FIsBatchManage": false,
"FIsBatchManage": true,
"FIsKFPeriod": false,
"FIsExpParToFlot": false,
"FCurrencyId": {
@ -231,7 +231,7 @@
"FInvPtyId": {
"FNumber": "04"
},
"FIsEnable": false,
"FIsEnable": true,
"FIsAffectPrice": false,
"FIsAffectPlan": false,
"FIsAffectCost": false

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

BIN
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/物料的参数必填备注.xlsx

Binary file not shown.

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

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

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

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

@ -1,15 +0,0 @@
{
"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超"
}
]
}

2
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/testParams2.txt

@ -1,2 +0,0 @@
{"formId":"AR_receivable","data":"{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\",\"Model\":{\"FID\":0,\"FBillTypeID\":{\"FNUMBER\":\"YSD01_SYS\"},\"FDATE\":\"2022-08-02 05:26:28\",\"FENDDATE\":\"2022-08-02 05:26:28\",\"FISINIT\":false,\"FENDDATE_H\":\"2022-08-02 05:26:28\",\"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\":\" \"},\"FsubHeadSuppiler\":{\"FORDERID\":{\"FNumber\":\" JXYXB\"},\"FTRANSFERID\":{\"FNumber\":\" JXYXB\"},\"FChargeId\":{\"FNumber\":\" JXYXB\"}},\"FsubHeadFinc\":{\"FACCNTTIMEJUDGETIME\":\"2022-08-02 00:00:00\",\"FMAINBOOKSTDCURRID\":{\"FNumber\":\"PRE001\"},\"FEXCHANGETYPE\":{\"FNumber\":\"HLTX01_SYS\"},\"FExchangeRate\":1.0}, \"FEntityDetail\":[{\"FMaterialDesc\":\"X牵引6*4-550超\",\"FIsFree\":false,\"FSalUnitId\":{\"FNumber\":\"\"},\"FSalBaseNum\":1.0,\"FStockUnitId\":{\"FNumber\":\"\"},\"FMATERIALID\":{\"FNumber\":\" JX091054\"},\"FPRICEUNITID\":{\"FNumber\":\"\"},\"FDeliveryControl\":false,\"FPriceBaseDen\":1.0,\"FStockBaseNum\":1.0},{\"FMaterialDesc\":\"X牵引6*4-550超\",\"FIsFree\":false,\"FSalUnitId\":{\"FNumber\":\"\"},\"FSalBaseNum\":1.0,\"FStockUnitId\":{\"FNumber\":\"\"},\"FMATERIALID\":{\"FNumber\":\" JX091054\"},\"FPRICEUNITID\":{\"FNumber\":\"\"},\"FDeliveryControl\":false,\"FPriceBaseDen\":1.0,\"FStockBaseNum\":1.0}]}}"}
{"formId":"AR_receivable","data":"{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\",\"Model\":{\"FID\":0,\"FBillTypeID\":{\"FNUMBER\":\"YSD01_SYS\"},\"FDATE\":\"2022-08-02 00:00:00\",\"FENDDATE\":\"2022-08-02 05:26:28\",\"FISINIT\":false,\"FENDDATE_H\":\"2022-08-02 00:00:00\",\"FCUSTOMERID\":{\"FNumber\":\" JXYXB\"},\"FCURRENCYID\":{\"FNumber\":\"PRE001\"},\"FISPRICEEXCLUDETAX\":true,\"FSETTLEORGID\":{\"FNumber\":\"101\"},\"FPAYORGID\":{\"FNumber\":\"101\"},\"FSALEORGID\":{\"FNumber\":\"101\"},\"FISTAX\":true,\"FCancelStatus\":\"A\",\"FBUSINESSTYPE\":\"BZ\",\"FSetAccountType\":\"1\",\"FISHookMatch\":false,\"FISINVOICEARLIER\":false,\"F_PMZC_Assistant2\":{\"FNumber\":\"01\"},\"FsubHeadSuppiler\":{\"FORDERID\":{\"FNumber\":\" JXYXB\"},\"FTRANSFERID\":{\"FNumber\":\" JXYXB\"},\"FChargeId\":{\"FNumber\":\" JXYXB\"}},\"FsubHeadFinc\":{\"FACCNTTIMEJUDGETIME\":\"2022-08-02 00:00:00\",\"FMAINBOOKSTDCURRID\":{\"FNumber\":\"PRE001\"},\"FEXCHANGETYPE\":{\"FNumber\":\"HLTX01_SYS\"},\"FExchangeRate\":1.0,\"FTaxAmountFor\":121.01,\"FNoTaxAmountFor\":12100.99},\"FEntityDetail\":[{\"FMATERIALID\":{\"FNumber\":\" JX091054\"},\"FMaterialDesc\":\"X牵引6*4-550超\",\"FPRICEUNITID\":{\"FNumber\":\"liang\"},\"FPriceQty\":1.0,\"FTaxPrice\":12222.0,\"FPrice\":12100.99,\"FEntryTaxRate\":1.0,\"FNoTaxAmountFor_D\":12100.99,\"FTAXAMOUNTFOR_D\":121.01,\"FALLAMOUNTFOR_D\":12222.0,\"FDeliveryControl\":false,\"FStockUnitId\":{\"FNumber\":\"liang\"},\"FStockQty\":1.0,\"FIsFree\":false,\"FStockBaseQty\":1.0,\"FSalUnitId\":{\"FNumber\":\"liang\"},\"FSalQty\":1.0,\"FSalBaseQty\":1.0,\"FPriceBaseDen\":1.0,\"FSalBaseNum\":1.0,\"FStockBaseNum\":1.0}],\"FEntityPlan\":[{\"FENDDATE\":\"2022-08-02 00:00:00\",\"FPAYRATE\":100.0,\"FPAYAMOUNTFOR\":12222.0}]}}"}

49
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/saloutstock/SalOutStockService.java

@ -26,55 +26,18 @@ public class SalOutStockService extends FinKingDeeService {
public ResultBean draftSalOutStock(SalOutStock salOutStock) {
// salOutStock=SalOutStock.createSalOutStock();
ResultBean rb=ResultBean.fireFail();
//业务表的主表数据集合
Map<String,String> map_fEntityModel_=new HashMap<>();
//业务日期
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(salOutStock);
List<SalOutStock.FEntity> fEntity = salOutStock.getFEntity();
for (Map.Entry<String, Object> entry : stringObjectMap.entrySet()) {
if (entry.getValue() instanceof String) {
map_fEntityModel_.put(entry.getKey(), (String) entry.getValue());
}else if(entry.getValue() instanceof Double){
map_fEntityModel_.put(entry.getKey(), entry.getValue().toString());
}
}
//准备 物料列表的数据 ForEntryBill
ResultBean<List<Map<String, String>>> vehicleListMap = createVehicleListsFEntity(fEntity);
if(!vehicleListMap.getSuccess()){
return rb.setMsg(vehicleListMap.getMsg());
}
String kingDeeData = SalOutStockCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_,vehicleListMap.getData());
try {
//业务表的主表数据集合
Map<String,String> map_fEntityModel_= object2Map(salOutStock);
//准备 物料列表的数据 ForEntryBill
List<SalOutStock.FEntity> fEntity = salOutStock.getFEntity();
List<Map<String, String>> vehicleListMap = createVehicleLists(fEntity);
String kingDeeData = SalOutStockCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_,vehicleListMap);
return saveBill(KingDeeBillId.SAL_OUTSTOCK.getID(),kingDeeData);
} catch (Exception e) {
e.printStackTrace();
}
return rb;
}
/**
* 准备 物料列表的数据 StkInStock
*/
private ResultBean<List<Map<String, String>>>
createVehicleListsFEntity(List<SalOutStock.FEntity> vehicleList) {
ResultBean<List<Map<String, String>>> rb=ResultBean.fireFail();
//物料的数组集合
List<Map<String,String>> vehicleListMap=new ArrayList<>();
for(int i = 0; i< vehicleList.size(); i++){
SalOutStock.FEntity f= vehicleList.get(i);
Map<String,String> m=new HashMap<>();
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(f);
for (Map.Entry<String, Object> entry : stringObjectMap.entrySet()) {
if (entry.getValue() instanceof String) {
log.info("String key:{},value:{}",entry.getKey(),(String) entry.getValue());
m.put(entry.getKey(), (String) entry.getValue());
}else if(entry.getValue() instanceof Double){
log.info("Double key:{},value:{}",entry.getKey(),entry.getValue());
m.put(entry.getKey(), entry.getValue().toString());
}
}
vehicleListMap.add(m);
}
return rb.success().setData(vehicleListMap);
}
}

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

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

@ -24,56 +24,17 @@ public class STKInStockService extends FinKingDeeService {
public ResultBean draftStkInStock(StkInStock stkInStock) {
// stkInStock=StkInStock.createStkInStock();
ResultBean rb=ResultBean.fireFail();
//业务表的主表数据集合
Map<String,String> map_fEntityModel_=new HashMap<>();
//业务日期
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(stkInStock);
List<StkInStock.FInStockEntry> fInStockEntry = stkInStock.getFInStockEntry();
for (Map.Entry<String, Object> entry : stringObjectMap.entrySet()) {
if (entry.getValue() instanceof String) {
map_fEntityModel_.put(entry.getKey(), (String) entry.getValue());
}else if(entry.getValue() instanceof Double){
map_fEntityModel_.put(entry.getKey(), entry.getValue().toString());
}
}
//准备 物料列表的数据 ForEntryBill
ResultBean<List<Map<String, String>>> vehicleListMap = createVehicleListsForStkInStock(fInStockEntry);
if(!vehicleListMap.getSuccess()){
return rb.setMsg(vehicleListMap.getMsg());
}
String kingDeeData =STKInStockCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_,vehicleListMap.getData());
try {
//业务表的主表数据集合
Map<String,String> map_fEntityModel_= object2Map(stkInStock);
List<StkInStock.FInStockEntry> fInStockEntry = stkInStock.getFInStockEntry();
//准备 物料列表的数据 ForEntryBill
List<Map<String, String>> vehicleListMap = createVehicleLists(fInStockEntry);
String kingDeeData =STKInStockCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_,vehicleListMap);
return saveBill(KingDeeBillId.STK_INSTOCK.getID(),kingDeeData);
} catch (Exception e) {
e.printStackTrace();
}
return rb;
}
/**
* 准备 物料列表的数据 StkInStock
*/
private ResultBean<List<Map<String, String>>>
createVehicleListsForStkInStock(List<StkInStock.FInStockEntry> vehicleList) {
ResultBean<List<Map<String, String>>> rb=ResultBean.fireFail();
//物料的数组集合
List<Map<String,String>> vehicleListMap=new ArrayList<>();
for(int i = 0; i< vehicleList.size(); i++){
StkInStock.FInStockEntry f= vehicleList.get(i);
Map<String,String> m=new HashMap<>();
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(f);
for (Map.Entry<String, Object> entry : stringObjectMap.entrySet()) {
if (entry.getValue() instanceof String) {
log.info("String key:{},value:{}",entry.getKey(),(String) entry.getValue());
m.put(entry.getKey(), (String) entry.getValue());
}else if(entry.getValue() instanceof Double){
log.info("Double key:{},value:{}",entry.getKey(),entry.getValue());
m.put(entry.getKey(), entry.getValue().toString());
}
}
vehicleListMap.add(m);
}
return rb.success().setData(vehicleListMap);
}
}

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

18
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/appversion/AppVersionFeign.java

@ -1,15 +1,16 @@
package com.yxt.anrui.portal.api.appversion;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
import java.util.Map;
/**
* Project: anrui-portal(门户建设) <br/>
@ -35,7 +36,7 @@ public interface AppVersionFeign {
@ApiOperation(value = "获取最新版本")
@ResponseBody
@GetMapping("/selectNewAppVersion")
public ResultBean selectNewAppVersion();
public ResultBean<Map<String, Object>> selectNewAppVersion();
@ApiOperation("更新主框架")
@ResponseBody
@ -44,4 +45,9 @@ public interface AppVersionFeign {
@RequestParam("upgradeInfo") String upgradeInfo,
@RequestParam("iconUrl") String iconUrl);
@ApiOperation(value = "二维码下载地址")
@ResponseBody
@GetMapping("/selectCodeImg")
ResultBean<String> selectCodeImg();
}

10
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/appversion/AppVersionFeignFallback.java

@ -7,6 +7,7 @@ import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
import java.util.Map;
/**
* Project: anrui-portal(门户建设) <br/>
@ -26,12 +27,17 @@ public class AppVersionFeignFallback implements AppVersionFeign {
@Override
public ResultBean selectNewAppVersion() {
return ResultBean.fireFail().setMsg("接口anrui-portal/appversion/selectNewAppVersion无法访问");
public ResultBean<Map<String, Object>> selectNewAppVersion() {
return new ResultBean<Map<String, Object>>().fail().setMsg("接口anrui-portal/appversion/selectNewAppVersion无法访问");
}
@Override
public ResultBean save(MultipartFile multipartFile, String upgradeInfo, String iconUrl){
return ResultBean.fireFail().setMsg("接口anrui-portal/appversion/save无法访问");
}
@Override
public ResultBean<String> selectCodeImg() {
return null;
}
}

15
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/appversion/AppVersionRest.java

@ -5,6 +5,7 @@ import com.yxt.anrui.portal.api.appversion.*;
import com.yxt.anrui.portal.biz.sysuser.SysUserService;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.utils.JPushServer;
import com.yxt.common.base.utils.QRCodeUtil;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
import com.yxt.messagecenter.api.message.AppMessageDto;
@ -20,6 +21,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -67,7 +69,7 @@ public class AppVersionRest implements AppVersionFeign {
private FileUploadComponent fileUploadComponent;
@Override
public ResultBean selectNewAppVersion() {
public ResultBean<Map<String, Object>> selectNewAppVersion() {
AppVersionVo appVersionVo = appVersionService.selectNewAppVersion();
Map<String, Object> map = new HashMap<String, Object>();
if(appVersionVo != null){
@ -109,6 +111,17 @@ public class AppVersionRest implements AppVersionFeign {
return ResultBean.fireSuccess().setMsg(resultBean.getMsg());
}
@Override
public ResultBean<String> selectCodeImg() {
ResultBean<String> rb = ResultBean.fireFail();
ResultBean<Map<String,Object>> resultBean = selectNewAppVersion();
String url = fileUploadComponent.getUrlPrefix()+"安瑞APP下载.png";
File file = new File(fileUploadComponent.getUploadPath());
AppVersionVo appVersionVo = (AppVersionVo) resultBean.getData().get("appVersionVo");
QRCodeUtil.createCodeToFile(appVersionVo.getUpdateUrl(),file,"安瑞APP下载.png");
return rb.success().setData(url);
}
public ResultBean save2(AppVersionDto appVersionDto) {
AppVersion appVersion = new AppVersion();
appVersionDto.fillEntity(appVersion);

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

@ -719,9 +719,9 @@ public class ScmVehicleGressionService extends MybatisBaseService<ScmVehicleGres
vehicleGression.setLocation(scmVehicleGression.getTargetLocationSid());
vehicleGression.setLocationName(scmVehicleGression.getTargetLocation());
baseVehicleFeign.updateVehicleGressionByVin(vehicleGression);
String pdfPath = createPdf(bv.getBusinessSid());
/* String pdfPath = createPdf(bv.getBusinessSid());
//将生成的出门证添加到出门证表中
/* ScmExitPermit scmExitPermit = new ScmExitPermit();
ScmExitPermit scmExitPermit = new ScmExitPermit();
scmExitPermit.setLinkSid(bv.getBusinessSid());
scmExitPermit.setUrl(pdfPath);
scmExitPermitService.insert(scmExitPermit);*/

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

@ -279,7 +279,7 @@ public class ScmVehicleInventoryService extends MybatisBaseService<ScmVehicleInv
String inventoryName = dto.getInventoryName();
String inventoryState = dto.getInventoryState();
String remarks = dto.getRemarks();
if (inventoryState.equals("不通过") && StringUtils.isBlank(remarks)) {
if ("不通过".equals(inventoryState) && StringUtils.isBlank(remarks)) {
return rb.setMsg("备注请填写不通过原因");
}
// if (StringUtils.isBlank(inventoryName)) {

9
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/saleOrders/insurance/InsuranceDto.java

@ -1,5 +1,6 @@
package com.yxt.anrui.terminal.api.autoservice.saleOrders.insurance;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -14,9 +15,15 @@ public class InsuranceDto implements Dto {
private static final long serialVersionUID = -5257658534230972125L;
@ApiModelProperty("业务表sid")
private String businessSid;
@JsonProperty("businessSid")
private String busSid;
@ApiModelProperty("是否优惠,1是,0否")
private String discountKey;
@ApiModelProperty("是否有保险:1是,0否")
private String insuranceKey;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("合同sid")
private String contractSid;
}

7
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/virtualOrders/vehicle/DepositVehicleDetailVo.java

@ -1,5 +1,6 @@
package com.yxt.anrui.terminal.api.autoservice.virtualOrders.vehicle;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.anrui.buscenter.api.busdepositvehicle.AppBusDepositVehicleListVo;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
@ -14,7 +15,8 @@ public class DepositVehicleDetailVo implements Vo {
@ApiModelProperty(value = "虚拟订单编号")
private String virtualOrderId;
@ApiModelProperty(value = "制单日期")
private String virtualOrderDate;
@JsonProperty("virtualOrderDate")
private String createDate;
@ApiModelProperty(value = "客户sid")
private String customerSid;
@ -31,7 +33,8 @@ public class DepositVehicleDetailVo implements Vo {
@ApiModelProperty(value = "部门名称")
private String departmentName;
@ApiModelProperty(value = "销售专员")
private String sellerName;
@JsonProperty("sellerName")
private String staffName;
@ApiModelProperty(value = "更新状态地址")
private String updateStateUrl;
@ApiModelProperty(value = "说明")

Loading…
Cancel
Save