Browse Source

完善成本调整单的推送

master
fanzongzhe0036 4 months ago
parent
commit
e71c884fe5
  1. 6
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java
  2. 6
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java
  3. 1
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/KingDeeBillId.java
  4. 40
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/costadjustmentsbill/CostAdjustmentsBill.java
  5. 16
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java
  6. 59
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/CostAdjustmentsBillCastToKingDeeBillFields.java
  7. 87
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/CostAdjustmentsBillService.java
  8. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data.json
  9. 116
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data_FEntity.json
  10. 13
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data_data.json
  11. 38
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data_model.json
  12. 97
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/remarks.txt
  13. 25
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatecheckapply/ScmVehrebateCheckapplyService.java
  14. 43
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatewithapply/ScmVehRebateWithApplyService.java

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

@ -14,6 +14,7 @@ import com.yxt.anrui.fin.api.kingdee.bdsupplier.BdSupplier;
import com.yxt.anrui.fin.api.kingdee.capitalcreditresult.CapitalCreditResult;
import com.yxt.anrui.fin.api.kingdee.cnbankcnt.CNBankacnt;
import com.yxt.anrui.fin.api.kingdee.cnrecpaypurpose.CNRecpaypurpose;
import com.yxt.anrui.fin.api.kingdee.costadjustmentsbill.CostAdjustmentsBill;
import com.yxt.anrui.fin.api.kingdee.orgorganizations.OrgOrganizations;
import com.yxt.anrui.fin.api.kingdee.otherarreceivable.OtherReceivable;
import com.yxt.anrui.fin.api.kingdee.purmrb.PurMrb;
@ -181,6 +182,11 @@ public interface FinKingDeeFeign {
@ResponseBody
ResultBean<String> pushOtherReceivableBill(@RequestBody @Valid CapitalCreditResult creditResult);
@ApiOperation("保存成本调整单")
@PostMapping("/pushCostAdjustmentsBill")
@ResponseBody
ResultBean<String> pushCostAdjustmentsBill(@RequestBody @Valid CostAdjustmentsBill costAdjustmentsBill);
@ApiOperation("暂存付款单的接口")
@PostMapping("/draftArReceivebill")

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

@ -14,6 +14,7 @@ import com.yxt.anrui.fin.api.kingdee.bdsupplier.BdSupplier;
import com.yxt.anrui.fin.api.kingdee.capitalcreditresult.CapitalCreditResult;
import com.yxt.anrui.fin.api.kingdee.cnbankcnt.CNBankacnt;
import com.yxt.anrui.fin.api.kingdee.cnrecpaypurpose.CNRecpaypurpose;
import com.yxt.anrui.fin.api.kingdee.costadjustmentsbill.CostAdjustmentsBill;
import com.yxt.anrui.fin.api.kingdee.orgorganizations.OrgOrganizations;
import com.yxt.anrui.fin.api.kingdee.otherarreceivable.OtherReceivable;
import com.yxt.anrui.fin.api.kingdee.purmrb.PurMrb;
@ -153,6 +154,11 @@ implements FinKingDeeFeign{
return null;
}
@Override
public ResultBean<String> pushCostAdjustmentsBill(@Valid CostAdjustmentsBill costAdjustmentsBill) {
return null;
}
@Override
public ResultBean<String> draftArReceivebill(ARReceivebill arReceivebill) {
return null;

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

@ -7,6 +7,7 @@ public enum KingDeeBillId {
GL_VOUCHER("GL_VOUCHER", "凭证"),
AP_PAYBILL("AP_PAYBILL", "付款单"),
SAL_RETURNSTOCK("SAL_RETURNSTOCK","销售退货单"),
HS_AdjustmentBill("HS_AdjustmentBill","成本调整单"),
AR_RECEIVEBILL("AR_RECEIVEBILL", "收款单"),
STK_INSTOCK("STK_InStock", "采购入库单"),
PUR_MRB("PUR_MRB", "采购退料单"),

40
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/costadjustmentsbill/CostAdjustmentsBill.java

@ -0,0 +1,40 @@
package com.yxt.anrui.fin.api.kingdee.costadjustmentsbill;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author Administrator
* @description
* @date 2023/9/12 18:13
*/
@Data
public class CostAdjustmentsBill {
@ApiModelProperty("往来单位/供应商编码")
public String commUnit;
@ApiModelProperty("核算组织/分公司编码")
public String useOrgCode;
@ApiModelProperty("业务日期")
public String bussDate;
@ApiModelProperty("单据明细")
public List<CostAdjustmentsBillDetailDto> resultDetails;
@Data
public static class CostAdjustmentsBillDetailDto implements Dto {
@ApiModelProperty("分公司编码")
public String companyCode;
@ApiModelProperty("物料编码")
public String materialID;
@ApiModelProperty("调整金额")
public String amount;
@ApiModelProperty("部门编码")
public String deptCode;
}
}

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

@ -17,6 +17,7 @@ import com.yxt.anrui.fin.api.kingdee.bdsupplier.BdSupplier;
import com.yxt.anrui.fin.api.kingdee.capitalcreditresult.CapitalCreditResult;
import com.yxt.anrui.fin.api.kingdee.cnbankcnt.CNBankacnt;
import com.yxt.anrui.fin.api.kingdee.cnrecpaypurpose.CNRecpaypurpose;
import com.yxt.anrui.fin.api.kingdee.costadjustmentsbill.CostAdjustmentsBill;
import com.yxt.anrui.fin.api.kingdee.kingdeeUtils.KingDeeOrgAndDeptCode;
import com.yxt.anrui.fin.api.kingdee.kingdeeUtils.KingDeeUtils;
import com.yxt.anrui.fin.api.kingdee.orgorganizations.OrgOrganizations;
@ -28,8 +29,8 @@ import com.yxt.anrui.fin.api.kingdee.saloutstock.SalOutStock;
import com.yxt.anrui.fin.api.kingdee.stkinstock.StkInStock;
import com.yxt.anrui.fin.api.kingdee.stktransferdirect.StkTransferDirect;
import com.yxt.anrui.fin.api.kingdee.voucher.*;
import com.yxt.anrui.fin.biz.kingdee.appaybill.ApPayBillService;
import com.yxt.anrui.fin.biz.kingdee.appayable.APPayableService;
import com.yxt.anrui.fin.biz.kingdee.appaybill.ApPayBillService;
import com.yxt.anrui.fin.biz.kingdee.arreceivebill.ArReceivebillService;
import com.yxt.anrui.fin.biz.kingdee.bank.BDBankService;
import com.yxt.anrui.fin.biz.kingdee.bdcustomer.BdCustomerService;
@ -41,6 +42,7 @@ import com.yxt.anrui.fin.biz.kingdee.bdsupplier.BdSupplierService;
import com.yxt.anrui.fin.biz.kingdee.capitalcreditresult.OtherReceivableBillCreditResultService;
import com.yxt.anrui.fin.biz.kingdee.cnbankcnt.CNBankcntService;
import com.yxt.anrui.fin.biz.kingdee.cnrecpaypurpose.CNRecpaypurposeService;
import com.yxt.anrui.fin.biz.kingdee.costadjustmentsbill.CostAdjustmentsBillService;
import com.yxt.anrui.fin.biz.kingdee.orgorganizations.OrgOrganizationsService;
import com.yxt.anrui.fin.biz.kingdee.otherreceivablebill.OtherReceivableBillService;
import com.yxt.anrui.fin.biz.kingdee.purmrb.PurMrbService;
@ -67,7 +69,9 @@ import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Api(tags = "单据调用金蝶的暂存接口")
@RestController("com.yxt.anrui.fin.biz.kingdee.FinKingDeeFeignRest")
@ -75,6 +79,8 @@ import java.util.*;
@Slf4j
public class FinKingDeeFeignRest implements FinKingDeeFeign {
@Autowired
private CostAdjustmentsBillService costAdjustmentsBillService;
/**
* 应付单service
*/
@ -1574,6 +1580,12 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
return creditResultService.pushOtherReceivableBill(creditResult);
}
@Override
public ResultBean<String> pushCostAdjustmentsBill(@Valid CostAdjustmentsBill costAdjustmentsBill) {
log.info("FinKingDeeFeignRest-pushOtherReceivableBill:{}", JSONObject.toJSONString(costAdjustmentsBill));
return costAdjustmentsBillService.costAdjustmentsBillService(costAdjustmentsBill);
}
@Override
public ResultBean<String> draftSalesReturnOrders(SalesReturn salesReturn) {
log.info("FinKingDeeFeignRest-draftSalesReturnOrders:{}", JSONObject.toJSONString(salesReturn));

59
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/CostAdjustmentsBillCastToKingDeeBillFields.java

@ -0,0 +1,59 @@
package com.yxt.anrui.fin.biz.kingdee.costadjustmentsbill;
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 CostAdjustmentsBillCastToKingDeeBillFields {
/**
* 构造金蝶需要的数据结构 并对字段赋值
*
* @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/costadjustmentsbill/data.json");
String fEntityData_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data_data.json");
String fEntityModel_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data_model.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_fEntity_ = new ArrayList<>();
//对模板字段赋值 根据传递进来的map数据的集合进行赋值
for (int i = 0; i < vehicleList.size(); i++) {
String fEntity_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data_FEntity.json");
Map<String, String> params = vehicleList.get(i);
Map<String, String> map_fEntity_ = new HashMap<>();
for (Map.Entry<String, String> entry : params.entrySet()) {
map_fEntity_.put(entry.getKey(), entry.getValue());
}
fEntity_ = KingDeeUtils.replaceTemplateParams(fEntity_, map_fEntity_);
list_fEntity_.add(JSONObject.parseObject(fEntity_, Feature.OrderedField));
}
jsonFEntityModel_.put("FEntity", JSONArray.parseArray(JSON.toJSONString(list_fEntity_)));
jsonFEntityData_.put("Model", JSONObject.parseObject(JSON.toJSONString(jsonFEntityModel_), Feature.OrderedField));
jsonObj.put("data", jsonFEntityData_.toJSONString());
return jsonObj.toJSONString();
}
}

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

@ -0,0 +1,87 @@
package com.yxt.anrui.fin.biz.kingdee.costadjustmentsbill;
import com.yxt.anrui.fin.api.kingdee.KingDeeBillId;
import com.yxt.anrui.fin.api.kingdee.KingDeeBillUrl;
import com.yxt.anrui.fin.api.kingdee.costadjustmentsbill.CostAdjustmentsBill;
import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class CostAdjustmentsBillService extends FinKingDeeService {
/**
* 生成的成本调整单的数据推送到金蝶的平台中
*
* @param costAdjustmentsBill
* @return
*/
public ResultBean costAdjustmentsBillService(CostAdjustmentsBill costAdjustmentsBill) {
ResultBean rb = ResultBean.fireFail();
//业务表的主表数据集合
Map<String, String> map_fEntityModel_ = new HashMap<>();
//往来单位
if (StringUtils.isBlank(costAdjustmentsBill.getCommUnit())) {
return rb.setMsg("往来单位不能为空");
}
map_fEntityModel_.put("FSUPPLIERID", costAdjustmentsBill.getCommUnit());
//业务日期
if (StringUtils.isBlank(costAdjustmentsBill.getBussDate())) {
return rb.setMsg("业务日期不能为空");
}
map_fEntityModel_.put("FDate", costAdjustmentsBill.getBussDate());
//核算组织
if (StringUtils.isBlank(costAdjustmentsBill.getUseOrgCode())) {
return rb.setMsg("核算组织不能为空");
}
map_fEntityModel_.put("FAcctOrgID", costAdjustmentsBill.getUseOrgCode());
List<CostAdjustmentsBill.CostAdjustmentsBillDetailDto> costAdjustmentsBillDetailDtos = costAdjustmentsBill.getResultDetails() == null ? new ArrayList<>() : costAdjustmentsBill.getResultDetails();
//准备 物料列表的数据
ResultBean<List<Map<String, String>>> vehicleListMap = createVehicleListsForReceivableBill(costAdjustmentsBillDetailDtos);
if (!vehicleListMap.getSuccess()) {
return rb.setMsg(vehicleListMap.getMsg());
}
String kingDeeData = CostAdjustmentsBillCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_, vehicleListMap.getData());
try {
ResultBean<String> resultBean1 = accessKingDeeInterface(KingDeeBillId.HS_AdjustmentBill.getID(), kingDeeData, KingDeeBillUrl.SAVE_URL.getURL());
if (!resultBean1.getSuccess()) {
log.info("成本调整单保存失败!");
return rb.setMsg("成本调整单保存失败!");
}
log.info("成本调整单保存成功!");
} catch (Exception e) {
e.printStackTrace();
}
return rb;
}
public ResultBean<List<Map<String, String>>> createVehicleListsForReceivableBill(List<CostAdjustmentsBill.CostAdjustmentsBillDetailDto> collectionDetails) {
ResultBean<List<Map<String, String>>> rb = ResultBean.fireFail();
List<Map<String, String>> collectionDetailMap = new ArrayList<>();
for (int i = 0; i < collectionDetails.size(); i++) {
CostAdjustmentsBill.CostAdjustmentsBillDetailDto c = collectionDetails.get(i);
Map<String, String> m = new HashMap<>();
if (StringUtils.isBlank(c.getCompanyCode())) {
return rb.setMsg("库存组织不能为空");
}
if (StringUtils.isBlank(c.getMaterialID())) {
return rb.setMsg("物料编码不能为空");
}
m.put("FStockOrgID", c.getCompanyCode());
m.put("FOwnerID", c.getCompanyCode());
m.put("FMaterialID", c.getMaterialID());
m.put("FDepartmentId", c.getDeptCode());
m.put("FAdjustmentAMOUNT", c.getAmount());
collectionDetailMap.add(m);
}
return rb.success().setData(collectionDetailMap);
}
}

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

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

116
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data_FEntity.json

@ -0,0 +1,116 @@
{
"FEntryID": "0",
"FStockOrgID": {
"FNumber": "@KD_FStockOrgID"
},
"FMaterialID": {
"FNumber": "@KD_FMaterialID"
},
"FAuxPropId": {
"FAUXPROPID__FF100001": {
"FNumber": ""
},
"FAUXPROPID__FF100005": {
"FNumber": ""
},
"FAUXPROPID__FF100002": {
"FNumber": ""
},
"FAUXPROPID__FF100004": {
"FNumber": ""
},
"FAUXPROPID__FF100006": {
"FNumber": ""
}
},
"FLOT": {
"FNumber": ""
},
"FBOMId": {
"FNumber": ""
},
"FSTOCKSTATUSID": {
"FNumber": "KCZT01_SYS"
},
"FAdjustmentAMOUNT": "@KD_FAdjustmentAMOUNT",
"FAdjustmentAMOUNTFor": "0",
"FStockID": {
"FNumber": "ARZSCK"
},
"FOwnerID": {
"FNumber": "@KD_FOwnerID"
},
"FSTOCKLOCID": {
"FSTOCKLOCID__FF100001": {
"FNumber": ""
},
"FSTOCKLOCID__FF100002": {
"FNumber": ""
},
"FSTOCKLOCID__FF100003": {
"FNumber": ""
},
"FSTOCKLOCID__FF100004": {
"FNumber": ""
},
"FSTOCKLOCID__FF100005": {
"FNumber": ""
},
"FSTOCKLOCID__FF100006": {
"FNumber": ""
},
"FSTOCKLOCID__FF100007": {
"FNumber": ""
},
"FSTOCKLOCID__FF100008": {
"FNumber": ""
},
"FSTOCKLOCID__FF100009": {
"FNumber": ""
},
"FSTOCKLOCID__FF100010": {
"FNumber": ""
}
},
"FAcctgRangeID": {
"FNumber": ""
},
"FMtoNo": "",
"FSeqId": "",
"FPROJECTNO": "",
"FOwnerTypeId": "",
"FPrice": "0",
"FSeqEntryId": "0",
"FInvoiceRateType": {
"FNumber": ""
},
"FStockRateType": {
"FNumber": ""
},
"FOriginalCurrencyId": {
"FNumber": ""
},
"FStockRate": "0",
"FInvoiceRate": "0",
"FRateDiff": "0",
"FPriceDiff": "0",
"FQty": "0",
"FCostCenterID": {
"FNumber": ""
},
"FSRCSEQ": "0",
"FSRCBILLNO": "",
"FSRCBILLTYPEID": {
"FNumber": ""
},
"FDepartmentId": {
"FNUMBER": "@KD_FDepartmentId"
},
"FExpense": [{
"FExpenseEntryID": "0",
"FExpenseID": {
"FNumber": ""
},
"FExpenseAmount": "0"
}]
}

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

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

38
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/data_model.json

@ -0,0 +1,38 @@
{
"FID": "0",
"FBillTypeID": {
"FNUMBER": "CGRKTZD01_SYS"
},
"FBillNo": "",
"FBusinessType": "1",
"FSUPPLIERID": {
"FNumber": "@KD_FSUPPLIERID"
},
"FDate": "@KD_FDATE",
"FACCTGSYSTEMID": {
"FNumber": "01"
},
"FAcctOrgID": {
"FNumber": "@KD_FAcctOrgID"
},
"FACCTPOLICYID": {
"FNumber": "KJZC01_SYS"
},
"FCurrencyID": {
"FNumber": ""
},
"FAdjustmentReason": "",
"FAcctgId": "0",
"FDocumentStatus": "",
"FCreateOrgId": {
"FNumber": ""
},
"FCreatorId": {
"FUserID": ""
},
"FInOutIndex": "",
"F_PAEZ_Assistant": {
"FNumber": "01"
},
"FEntity": []
}

97
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/costadjustmentsbill/remarks.txt

@ -0,0 +1,97 @@
一、请求参数说明:
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类型(必录)
字段说明:
来源单据号:FSRCBILLNO
原单分录内码:FSRCEntryID
来源单据行号:FSRCSEQ
原单内码:FSRCBILLID
成本中心:FCostCenterID
数量:FQty
来源单据类别:FSRCBILLTYPEID
汇率差异:FRateDiff
入库单汇率类型:FStockRateType
发票汇率类型:FInvoiceRateType
价格差异:FPriceDiff
原币币别:FOriginalCurrencyId
采购入库单汇率:FStockRate
应付单汇率:FInvoiceRate
存货类别:FMaterialType
出入库序列:FInOutIndex (必填项)
来源类型:FFROMTYPE
成本调整类型:F_PAEZ_Assistant
期初类型:FINITTYPE
物料编码:FMaterialID (必填项)
物料名称:FMaterialName
规格型号:FMaterialModel
仓库名称:FStockName
核算范围编码:FAcctgRangeID
核算范围:FAcctgRangeName
仓库:FStockID (必填项)
核算维度Id:FAcctgDimeEntryId
FSeqEntryId:FSeqEntryId
应付单编号:FInvoiceBillNo
维度ID:FDimeentryId
库存状态:FSTOCKSTATUSID (必填项)
单价:FPrice
跨期调整:FCrossPeriodAdjust
费用项目:FExpenseID
费用项目名称:FExpenseName
金额:FExpenseAmount
部门:FDepartmentId
应付单行号:FInvoiceSeq
应付单单据类型:FInvoiceBillTypeId
钩稽序号:FHookLogID
批号:FLOT
货主名称:FOwnerName
调整金额(原币):FAdjustmentAMOUNTFor
BOM版本:FBOMId
调整金额:FAdjustmentAMOUNT
货主:FOwnerID (必填项)
库存组织:FStockOrgID (必填项)
库存组织名称:FStockOrgName
仓位:FSTOCKLOCID
货主类型:FOwnerTypeId
辅助属性:FAuxPropId
基本单位:FBASICUNITID
计划跟踪号:FMtoNo
项目编号:FPROJECTNO
序列号:FSeqId
修改日期:FModifyDate
创建人:FCreatorId
审核人:FAuditorID
审核日期:FAuditDate
创建日期:FCreateDate
创建组织:FCreateOrgId (必填项)
单据状态:FDocumentStatus (必填项)
币别:FCurrencyID
业务日期:FDate
单据编号:FBillNo
核算体系名称:FACCTGSYSTEMNAME
核算体系编码:FACCTGSYSTEMID (必填项)
往来单位:FSUPPLIERID
会计政策名称:FACCTPOLICYNAME
是否为出库核算生成:FIsAcctgGenerate
核算内码:FAcctgId
会计政策编码:FACCTPOLICYID (必填项)
调整原因:FAdjustmentReason
修改人:FModifierId
作废人:FForbidderID
作废状态:FForbidStatus
作废日期:FForbidDate
核算组织名称:FAcctOrgName
核算组织编码:FAcctOrgID (必填项)
业务类型:FBusinessType
单据类型:FBillTypeID

25
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatecheckapply/ScmVehrebateCheckapplyService.java

@ -37,6 +37,7 @@ import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeig
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTemp;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign;
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign;
import com.yxt.anrui.fin.api.kingdee.costadjustmentsbill.CostAdjustmentsBill;
import com.yxt.anrui.fin.api.kingdee.voucher.GeneralVoucher;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
@ -478,8 +479,12 @@ public class ScmVehrebateCheckapplyService extends MybatisBaseService<ScmVehreba
GeneralVoucher generalVoucher = new GeneralVoucher();
generalVoucher.setBussDate(format);
List<GeneralVoucher.GeneralVoucherDetail> voucherDetails = new ArrayList<>();
CostAdjustmentsBill costAdjustmentsBill = new CostAdjustmentsBill();
costAdjustmentsBill.setBussDate(format);
List<CostAdjustmentsBill.CostAdjustmentsBillDetailDto> resultDetails = new ArrayList<>();
if (!v.isEmpty()) {
for (ScmVehRebate rebate : v) {
String useOrgCode = "";
String deptCode = ""; //采购系统部门编码
String salesDeptCode = ""; //销售部门编码
String customerCode = ""; //出库单客户编码
@ -493,6 +498,7 @@ public class ScmVehrebateCheckapplyService extends MybatisBaseService<ScmVehreba
if (null != vehicle) {
if (StringUtils.isNotBlank(vehicle.getManufacturerCode())) {
gysCode = vehicle.getManufacturerCode();
costAdjustmentsBill.setCommUnit(vehicle.getManufacturerCode());
}
vinCode = vehicle.getVinNo().substring(vehicle.getVinNo().length() - 8);
}
@ -518,6 +524,8 @@ public class ScmVehrebateCheckapplyService extends MybatisBaseService<ScmVehreba
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
if (null != organizationVo) {
generalVoucher.setUseOrgCode(organizationVo.getOrgCode());
costAdjustmentsBill.setUseOrgCode(organizationVo.getOrgCode());
useOrgCode = organizationVo.getOrgCode();
}
}
@ -649,6 +657,19 @@ public class ScmVehrebateCheckapplyService extends MybatisBaseService<ScmVehreba
voucherDetails.add(voucherDetail2);
}
}
if (null != rebate.getDiffAmount()) {
BigDecimal esRebate = rebate.getDiffAmount();
if (esRebate.compareTo(BigDecimal.ZERO) != 0) {
CostAdjustmentsBill.CostAdjustmentsBillDetailDto dto = new CostAdjustmentsBill.CostAdjustmentsBillDetailDto();
dto.setCompanyCode(useOrgCode);
dto.setMaterialID(vinCode);
dto.setDeptCode(deptCode);
dto.setAmount(esRebate.negate().toString());
resultDetails.add(dto);
}
}
}
}
@ -728,6 +749,10 @@ public class ScmVehrebateCheckapplyService extends MybatisBaseService<ScmVehreba
generalVoucher.setVoucherDetails(voucherDetails);
finKingDeeFeign.saveRebateReviewVoucher(generalVoucher);
}
if (!resultDetails.isEmpty()) {
costAdjustmentsBill.setResultDetails(resultDetails);
finKingDeeFeign.pushCostAdjustmentsBill(costAdjustmentsBill);
}
}
});
}

43
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatewithapply/ScmVehRebateWithApplyService.java

@ -32,6 +32,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basevehicle.BaseVehicle;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign;
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign;
import com.yxt.anrui.fin.api.kingdee.costadjustmentsbill.CostAdjustmentsBill;
import com.yxt.anrui.fin.api.kingdee.voucher.GeneralVoucher;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
@ -420,17 +421,25 @@ public class ScmVehRebateWithApplyService extends MybatisBaseService<ScmVehRebat
GeneralVoucher generalVoucher = new GeneralVoucher();
generalVoucher.setBussDate(format);
List<GeneralVoucher.GeneralVoucherDetail> voucherDetails = new ArrayList<>();
CostAdjustmentsBill costAdjustmentsBill = new CostAdjustmentsBill();
costAdjustmentsBill.setBussDate(format);
List<CostAdjustmentsBill.CostAdjustmentsBillDetailDto> resultDetails = new ArrayList<>();
if (!v.isEmpty()) {
for (ScmVehRebate rebate : v) {
String useOrgCode = "";
String vinCode = "";
String deptCode = "";
if (StringUtils.isNotBlank(rebate.getUseOrgSid())) {
String useOrgSid = rebate.getUseOrgSid();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
if (null != organizationVo) {
generalVoucher.setUseOrgCode(organizationVo.getOrgCode());
costAdjustmentsBill.setUseOrgCode(organizationVo.getOrgCode());
useOrgCode = organizationVo.getOrgCode();
}
}
if (!rebate.getRebateTypeValue().equals("金融贴息")) {
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
if (StringUtils.isNotBlank(rebate.getUseOrgSid())) {
String useOrgSid = rebate.getUseOrgSid();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
if (null != organizationVo) {
generalVoucher.setUseOrgCode(organizationVo.getOrgCode());
}
}
voucherDetail.setTimeFlag(finalSummaryTag);
String palceGenDate = rebate.getPalceGenDate();
String[] palceGenDateSplit = palceGenDate.split("-");
@ -443,12 +452,15 @@ public class ScmVehRebateWithApplyService extends MybatisBaseService<ScmVehRebat
SysOrganizationVo data = sysOrganizationFeign.fetchBySid(rebate.getPurchaseSystemSid()).getData();
if (null != data) {
voucherDetail.setDeptCode(data.getOrgCode()); //部门编码赋值
deptCode = data.getOrgCode();
}
BaseVehicle vehicle = baseVehicleFeign.fetchBySid(rebate.getVehSid()).getData();
if (null != vehicle) {
if (StringUtils.isNotBlank(vehicle.getManufacturerCode())) {
voucherDetail.setManufacturer(vehicle.getManufacturerCode());
costAdjustmentsBill.setCommUnit(vehicle.getManufacturerCode());
}
vinCode = vehicle.getVinNo().substring(vehicle.getVinNo().length() - 8);
}
voucherDetail.setCustomerCode("DZFCJFL");
if (null != rebate.getExpectTreatCost()) {
@ -457,12 +469,29 @@ public class ScmVehRebateWithApplyService extends MybatisBaseService<ScmVehRebat
voucherDetails.add(voucherDetail);
}
}
//添加成本调整单
if (StringUtils.isNotBlank(rebate.getEstimateRebate())) {
BigDecimal esRebate = new BigDecimal(rebate.getEstimateRebate());
if (esRebate.compareTo(BigDecimal.ZERO) != 0) {
CostAdjustmentsBill.CostAdjustmentsBillDetailDto dto = new CostAdjustmentsBill.CostAdjustmentsBillDetailDto();
dto.setCompanyCode(useOrgCode);
dto.setMaterialID(vinCode);
dto.setDeptCode(deptCode);
dto.setAmount(esRebate.negate().toString());
resultDetails.add(dto);
}
}
}
}
if (!voucherDetails.isEmpty()) {
generalVoucher.setVoucherDetails(voucherDetails);
finKingDeeFeign.saveRebatePrepareVoucher(generalVoucher);
}
if (!resultDetails.isEmpty()) {
costAdjustmentsBill.setResultDetails(resultDetails);
finKingDeeFeign.pushCostAdjustmentsBill(costAdjustmentsBill);
}
}
});
}

Loading…
Cancel
Save