固定资产接口0.2
This commit is contained in:
parent
2da61bee0b
commit
9187c6d535
|
@ -3,6 +3,7 @@ package shkd.fi.fa.plugin;
|
||||||
import kd.bos.openapi.api.plugin.ApiSavePlugin;
|
import kd.bos.openapi.api.plugin.ApiSavePlugin;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -10,7 +11,87 @@ import java.util.Map;
|
||||||
public class SaveFaAssetCardApiSavePlugin implements ApiSavePlugin {
|
public class SaveFaAssetCardApiSavePlugin implements ApiSavePlugin {
|
||||||
@Override
|
@Override
|
||||||
public List<Map<String, Object>> preHandleRequestData(List<Map<String, Object>> reqData) {
|
public List<Map<String, Object>> preHandleRequestData(List<Map<String, Object>> reqData) {
|
||||||
|
List<Map<String, Object>> reqData2 = new ArrayList<Map<String, Object>>();
|
||||||
return reqData;
|
List<Map<String, Object>> finentryList = null;
|
||||||
|
Map<String, Object> finentry = null;
|
||||||
|
Map<String, Object> tempNumber = null;
|
||||||
|
for(Map<String, Object> temp1 : reqData) {
|
||||||
|
// 核算组织.编码 默认值 B-021B-061
|
||||||
|
if(!temp1.containsKey("org")) {
|
||||||
|
tempNumber = new HashMap<String, Object>();
|
||||||
|
tempNumber.put("number", "B-021B-061");
|
||||||
|
temp1.put("org", tempNumber);
|
||||||
|
}
|
||||||
|
// 资产组织.编码 默认值 B-021B-061
|
||||||
|
if(!temp1.containsKey("assetunit")){
|
||||||
|
tempNumber = new HashMap<String, Object>();
|
||||||
|
tempNumber.put("number", "B-021B-061");
|
||||||
|
temp1.put("assetunit", tempNumber);
|
||||||
|
}
|
||||||
|
// 来源方式.编码 默认值 01.01 购入
|
||||||
|
if(!temp1.containsKey("originmethod")){
|
||||||
|
tempNumber = new HashMap<String, Object>();
|
||||||
|
tempNumber.put("number", "01.01");
|
||||||
|
temp1.put("originmethod", tempNumber);
|
||||||
|
}
|
||||||
|
// 存放地点.编码 默认值 021 上海
|
||||||
|
if(!temp1.containsKey("storeplace")){
|
||||||
|
tempNumber = new HashMap<String, Object>();
|
||||||
|
tempNumber.put("number", "021");
|
||||||
|
temp1.put("storeplace", tempNumber);
|
||||||
|
}
|
||||||
|
//使用状态.编码 默认值:正常使用
|
||||||
|
tempNumber = new HashMap<String, Object>();
|
||||||
|
tempNumber.put("number", "00101");
|
||||||
|
temp1.put("usestatus", tempNumber);
|
||||||
|
//使用部门.编码 默认值:16005873 晨曦控股目前用不了
|
||||||
|
tempNumber = new HashMap<String, Object>();
|
||||||
|
tempNumber.put("number", "16002062");
|
||||||
|
temp1.put("headusedept", tempNumber);
|
||||||
|
// 资产数量
|
||||||
|
Integer assetamount = (Integer)temp1.get("assetamount");
|
||||||
|
// 财务分录
|
||||||
|
finentry = ((List<Map<String, Object>>)temp1.get("finentry")).get(0);
|
||||||
|
finentry.put("seq", 1); // seq
|
||||||
|
// 财务分录.预计寿命 默认1
|
||||||
|
finentry.put("fin_preusingamount", BigDecimal.ONE);
|
||||||
|
// 折旧用途.编码 默认:账面折旧
|
||||||
|
tempNumber = new HashMap<String, Object>();
|
||||||
|
tempNumber.put("number", "01");
|
||||||
|
finentry.put("fin_depreuse", tempNumber);
|
||||||
|
// 折旧方法.编码 默认:平均年限法
|
||||||
|
tempNumber = new HashMap<String, Object>();
|
||||||
|
tempNumber.put("number", "100");
|
||||||
|
finentry.put("fin_depremethod", tempNumber);
|
||||||
|
// 财务分录.财务入账日期 默认:启用日期
|
||||||
|
finentry.put("fin_finaccountdate", temp1.get("realaccountdate"));
|
||||||
|
//资产原值
|
||||||
|
BigDecimal originalval = (BigDecimal)finentry.get("fin_originalval");
|
||||||
|
BigDecimal originalval3 = BigDecimal.ZERO;
|
||||||
|
// 资产原值 除 资产数量 = 资产原值单价
|
||||||
|
BigDecimal originalval2 = originalval.divide(BigDecimal.valueOf(assetamount), 2, BigDecimal.ROUND_DOWN);
|
||||||
|
for (int i = 0; i < assetamount; i++) {
|
||||||
|
finentryList = new ArrayList<Map<String, Object>>();
|
||||||
|
Map<String, Object> temp3 = new HashMap<String, Object>();
|
||||||
|
finentryList.add(temp3);
|
||||||
|
temp3.putAll(finentry);
|
||||||
|
temp3.put("fin_originalval", originalval2);
|
||||||
|
Map<String, Object> temp2 = new HashMap<String, Object>();
|
||||||
|
temp2.putAll(temp1);
|
||||||
|
// 财务分录.
|
||||||
|
temp2.put("finentry", finentryList);
|
||||||
|
// 资产数量. 默认1(接口因为需求定义为int,系统默认BigDecimal类型,否则按String类型处理)
|
||||||
|
temp2.put("assetamount", 1);
|
||||||
|
reqData2.add(temp2);
|
||||||
|
originalval3 = originalval3.add(originalval2);
|
||||||
|
}
|
||||||
|
// 分割前后的资产原值不一致的情况,差额添加到最后一件上
|
||||||
|
if(!originalval.equals(originalval3)) {
|
||||||
|
BigDecimal originalval4 = originalval2.add((originalval.subtract(originalval3)));
|
||||||
|
((List<Map<String, Object>>)reqData2.get((reqData2.size() - 1)).get("finentry"))
|
||||||
|
.get(0).put("fin_originalval", originalval4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return reqData2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue