使用Java-SDK保存采购申请单原创
金蝶云社区-aeowuguozhi
aeowuguozhi
2人赞赏了该文章 407次浏览 未经作者许可,禁止转载编辑于2023年12月07日 10:18:02

核心代码:

@Service
public class PurchaseRequisitionServiceImpl implements IPurchaseRequisitionService {

    private final String FORMID = "PUR_Requisition";


    /**
     * 保存采购申请单
     *
     * @param params
     * @return
     * @throws Exception
     */
    @Override
    public Object save(Map<String, Object> params) throws Exception {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        // 请求参数 - 物料编码
        String materialNumber = String.valueOf(params.get("extra_material_fnumber"));
        // 请求参数 - 申请的物料的数量
        Integer applicationNumber = Integer.valueOf(String.valueOf(params.get("extra_material_application_number")));
        K3CloudApi api = new K3CloudApi();
        PurchaseRequisitionSaveParam saveParam = new PurchaseRequisitionSaveParam();
        PurchaseRequisitionSaveModelParam saveModel  = new PurchaseRequisitionSaveModelParam();
        // 请求参数 Model.XX
        // 标准采购申请
        saveModel.setFBillTypeID(new FBillTypeID("CGSQD01_SYS"));
        saveModel.setFApplicationDate(LocalDate.now().format(formatter));
        saveModel.setFRequestType("物料");
        saveModel.setFApplicationOrgId(new FApplicationOrgId("XXXXXXXXXXXXXXXXX")); 
        // 各实体 -  暂时新增一条物料采购
        FEntity[] FEntities = new FEntity[1];
        FEntity fEntity = new FEntity();
        fEntity.setFRequireOrgId(new FRequireOrgId("XXXXXXXXXXXXXXXXX"));
        fEntity.setFMaterialId(new FMaterialId(materialNumber));
        // 固定设置物料的基本单位是g。所以在查询物料列表的时候固定是g就行了
        fEntity.setFUnitID(new FUnitId("g"));
        fEntity.setFReqQty(applicationNumber);
        fEntity.setFPurchaseOrgId(new FPurchaseOrgId("XXXXXXXXXXXXXXXXX"));
        fEntity.setFPriceUnitId(new FPriceUnitId("g"));
        fEntity.setFREQSTOCKUNITID(new FREQSTOCKUNITID("g"));
        FEntities[0] = fEntity;
        saveModel.setFEntity(FEntities);
        saveParam.setModel(saveModel);
        //请求参数设置完毕,请求参数转json字符串
        Gson gson = new Gson();
        String jsonData = gson.toJson(saveParam);
        //调用接口
        String resultJson = api.save(FORMID, jsonData);
        //用于记录结果
        //对返回结果进行解析和校验
        RepoRet repoRet = gson.fromJson(resultJson, RepoRet.class);
        if (repoRet.getResult().getResponseStatus().isIsSuccess()) {
            System.out.printf("接口返回结果: %s%n", gson.toJson(repoRet.getResult()));
            return gson.toJson(repoRet.getResult());
        } else {
            throw new ServiceException(gson.toJson(repoRet.getResult().getResponseStatus()));
        }
    }

}

登录进去ERP的供应链,采购申请单,就会看到新增了一条采购申请单了。


可能遇到的问题:

  1. 保存采购申请单的请求参数:基本单位要与采购的物料的基本单位一致。

  2. 保存采购申请单的请求参数:FApplicationOrgId 使用组织要与物料的使用组织一致。

供应链-保存采购申请单.jpg

图标赞 2
2人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!