123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- package fi.fa.webService;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import kd.bos.dataentity.entity.DynamicObject;
- import kd.bos.openapi.common.custom.annotation.ApiController;
- import kd.bos.openapi.common.custom.annotation.ApiMapping;
- import kd.bos.openapi.common.custom.annotation.ApiParam;
- import kd.bos.openapi.common.custom.annotation.ApiPostMapping;
- import kd.bos.openapi.common.result.CustomApiResult;
- import kd.bos.orm.query.QCP;
- import kd.bos.orm.query.QFilter;
- import kd.bos.servicehelper.BusinessDataServiceHelper;
- import kd.bos.servicehelper.operation.SaveServiceHelper;
- import java.io.Serializable;
- /**
- * 接收e管家资产调拨单接口
- */
- @ApiController(value = "midDispatch", desc = "自定义API 中间表新增")
- @ApiMapping(value = "saveMidDispatchApi")
- public class DispatchMidController implements Serializable {
- /**
- * @description 资产调拨单中间表新增接口,资产调拨单下推接口
- * @param info
- * @return CustomApiResult
- */
- @ApiPostMapping(value = "/add", desc = "新增资产调拨单中间表")
- public CustomApiResult<Object> AddMidDispatch (@ApiParam(value = "e管家资产调拨单") JSONObject info) {
- StringBuilder resultString = new StringBuilder();
- JSONArray data = info.getJSONArray("data");
- //循环传入的数据
- for (int i = 0; i < data.size(); i++) {
- try{
- JSONObject eobject = data.getJSONObject(i);
- //第一步:保存进中间表
- SaveMidDispatch(eobject);
- } catch (Exception e){
- resultString.append("保存过程中发生异常:").append(e.getMessage()).append("\n");
- }
- }
- return resultString.length() == 0
- ? CustomApiResult.success("推送中间表成功成功!")
- : CustomApiResult.fail("404", resultString.toString());
- }
- /**
- * @description 保存中间表
- * @param jsonObject
- */
- private void SaveMidDispatch(JSONObject jsonObject) {
- String dispatchType = jsonObject.getString("dispatchType");
- DynamicObject minInfo = null;
- if ("0".equals(dispatchType)) {
- //查询调出中间表,如果有则修改,没有则新增
- QFilter filter = new QFilter("number", QCP.equals, jsonObject.getString("billno"));
- DynamicObject[] mid = BusinessDataServiceHelper.load("nckd_e_dispatch_mid","id",new QFilter[] {filter});
- if (mid.length > 0) {
- minInfo = BusinessDataServiceHelper.loadSingle(mid[0].getPkValue(), mid[0].getDynamicObjectType().getName());
- }else {
- minInfo = BusinessDataServiceHelper.newDynamicObject("nckd_e_dispatch_mid");
- }
- minInfo.set("nckd_changemode", "调出");//减少方式默认调出
- minInfo.set("nckd_user_out", jsonObject.getString("sendUser"));//调出类型对应人员
- minInfo.set("nckd_user_in", jsonObject.getString("receiveUser"));//调入负责人
- minInfo.set("nckd_org_out", jsonObject.getString("outOrgId"));//调出组织
- minInfo.set("nckd_org_in", jsonObject.getString("orgId"));//调入组织
- minInfo.set("nckd_used_user", jsonObject.getString("receiveUser"));//调入使用人
- minInfo.set("nckd_direction", jsonObject.getString("direction"));//调入调出类型
- minInfo.set("nckd_storeplace", jsonObject.getString("storeplace"));//调入存放地点
- } else if ("1".equals(dispatchType)) {
- //查询变更中间表,如果有则修改,没有则新增
- QFilter filter = new QFilter("number", QCP.equals, jsonObject.getString("billno"));
- DynamicObject[] mid = BusinessDataServiceHelper.load("nckd_e_change_mid","id",new QFilter[] {filter});
- if (mid.length > 0) {
- minInfo = BusinessDataServiceHelper.loadSingle(mid[0].getPkValue(), mid[0].getDynamicObjectType().getName());
- }else {
- minInfo = BusinessDataServiceHelper.newDynamicObject("nckd_e_change_mid");
- }
- minInfo.set("nckd_user_out", jsonObject.getString("sendUser"));//调出类型对应人员
- minInfo.set("nckd_user_in", jsonObject.getString("receiveUser"));//调入负责人
- minInfo.set("nckd_org_in", jsonObject.getString("orgId"));//归属机构
- minInfo.set("nckd_used_user", jsonObject.getString("receiveUser"));//调入使用人
- minInfo.set("nckd_direction", jsonObject.getString("direction"));//调入调出类型
- minInfo.set("nckd_storeplace", jsonObject.getString("storeplace"));//调入存放地点
- } else if ("2".equals(dispatchType)) {
- //查询报废单中间表,如果有则修改,没有则新增
- QFilter filter = new QFilter("number", QCP.equals, jsonObject.getString("billno"));
- DynamicObject[] mid = BusinessDataServiceHelper.load("nckd_e_discard_mid","id",new QFilter[] {filter});
- if (mid.length > 0) {
- minInfo = BusinessDataServiceHelper.loadSingle(mid[0].getPkValue(), mid[0].getDynamicObjectType().getName());
- }else {
- minInfo = BusinessDataServiceHelper.newDynamicObject("nckd_e_discard_mid");
- }
- minInfo.set("nckd_org_in", jsonObject.getString("orgId"));//归属机构
- minInfo.set("nckd_user_out", jsonObject.getString("sendUser"));//报废申请人
- }
- minInfo.set("number", jsonObject.getString("billno"));//来源单据号
- minInfo.set("nckd_date_out", jsonObject.getDate("sendDate"));//调出日期
- minInfo.set("nckd_reason", jsonObject.getString("reason"));//调拨原因
- minInfo.set("nckd_dispatch_type", jsonObject.getString("dispatchType"));//调拨类型 枚举 组织间,组织内
- minInfo.set("nckd_dept_in", jsonObject.getString("inDeptId"));//调入部门
- minInfo.set("createtime", jsonObject.getDate("sendDate"));//创建时间
- minInfo.set("status", "A");//暂存
- //拼接资产信息的组织和编码
- String cardNumber = "";
- JSONArray assetArray = jsonObject.getJSONArray("asset");
- for (int j = 0; j < assetArray.size(); j++) {
- //判断资产的组织是否相同
- JSONObject asset = assetArray.getJSONObject(j);
- String number = asset.getString("number");
- String orgId = asset.getString("orgId");
- cardNumber = cardNumber + number+ ":" + orgId + ",";
- if ("2".equals(jsonObject.getString("dispatchType"))) {
- minInfo.set("nckd_count", asset.getString("count"));//资产数量
- }
- }
- minInfo.set("nckd_card_number", cardNumber);
- SaveServiceHelper.save(new DynamicObject[]{minInfo});
- }
- }
|