119 lines
5.9 KiB
Java
119 lines
5.9 KiB
Java
package tqq9.lc123.cloud.app.api.controller;
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.drew.lang.annotations.NotNull;
|
|
import kd.bos.dataentity.OperateOption;
|
|
import kd.bos.dataentity.entity.DynamicObject;
|
|
import kd.bos.entity.operate.result.IOperateInfo;
|
|
import kd.bos.entity.operate.result.OperationResult;
|
|
import kd.bos.openapi.common.custom.annotation.ApiController;
|
|
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.QFilter;
|
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
import kd.bos.servicehelper.operation.OperationServiceHelper;
|
|
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
|
import tqq9.lc123.cloud.app.api.model.FWBillStateUpdModel;
|
|
import tqq9.lc123.cloud.app.api.utils.ApiResultExt;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
@ApiController(value = "FWBillStateUpdController", desc = "泛微-单据状态更新接口")
|
|
public class FWBillStateUpdController {
|
|
|
|
@ApiPostMapping(value = "/FWBillUpd", desc = "泛微-单据状态更新api接口")
|
|
public CustomApiResult<ApiResultExt> billUpd
|
|
(@NotNull @ApiParam(value = "入参", example = "") FWBillStateUpdModel model) {
|
|
String KDBillNumber = model.getKDBillNumber();
|
|
String KDBillType = model.getKDBillType();
|
|
int state = model.getState();
|
|
String message = model.getMessage();
|
|
|
|
ApiResultExt resultExt = new ApiResultExt();
|
|
ApiResultExt.Error errors = new ApiResultExt.Error();
|
|
ArrayList<String> errorList = new ArrayList<>();
|
|
List<ApiResultExt.ResultBean> results = new ArrayList<>();
|
|
ApiResultExt.ResultBean resultBean = new ApiResultExt.ResultBean();
|
|
resultBean.setBillStatus(true);
|
|
resultBean.setBillIndex(0);
|
|
resultBean.setNumber(KDBillNumber);
|
|
|
|
|
|
DynamicObject approveLog = BusinessDataServiceHelper.newDynamicObject("tqq9_fwapprovelog");
|
|
approveLog.set("name", KDBillType);
|
|
approveLog.set("tqq9_billno", KDBillNumber);
|
|
approveLog.set("tqq9_returnstring_tag", JSONObject.toJSONString(model));
|
|
approveLog.set("tqq9_message", message);
|
|
approveLog.set("status", "A");
|
|
approveLog.set("enable", "1");
|
|
|
|
//校验单据标识是否正确
|
|
QFilter f1 = new QFilter("number", "=", KDBillType);
|
|
DynamicObject[] bos_entityobjects = BusinessDataServiceHelper.load("bos_entityobject", "id,name,number,modeltype", new QFilter[]{f1});
|
|
if(bos_entityobjects == null && bos_entityobjects.length == 0){
|
|
errorList.add("参数KDBillType["+KDBillType+"]不是正确的标识");
|
|
}else{
|
|
DynamicObject bosEntity = bos_entityobjects[0];
|
|
String modeltype = bosEntity.getString("modeltype");
|
|
String enetityNumber = bosEntity.getString("number");
|
|
String enetityName = bosEntity.getString("name");
|
|
String billNoFieldName = "billno";
|
|
if("BaseFormModel".equals(modeltype) || "gl_voucher".equals(enetityNumber)){
|
|
billNoFieldName = "number";
|
|
}
|
|
if("pm_xspurorderbill".equals(enetityNumber) || "conm_xpurcontract".equals(enetityNumber)){
|
|
billNoFieldName = "changebillno";
|
|
}
|
|
//查询对应的安居
|
|
QFilter qf1 = new QFilter(billNoFieldName, "=", KDBillNumber);
|
|
DynamicObject[] billArr = BusinessDataServiceHelper.load(enetityNumber, "id,tqq9_issuccess", new QFilter[]{qf1});
|
|
if(billArr != null && billArr.length > 0){
|
|
DynamicObject bill = BusinessDataServiceHelper.loadSingle(billArr[0].getPkValue(), enetityNumber);
|
|
if(state == 0){
|
|
bill.set("tqq9_issuccess", true);
|
|
approveLog.set("tqq9_issuccess", true);
|
|
}
|
|
SaveServiceHelper.save(new DynamicObject[]{bill});
|
|
|
|
approveLog.set("tqq9_entityname", enetityName);
|
|
OperationServiceHelper.executeOperate("save", "tqq9_fwapprovelog", new DynamicObject[]{approveLog}, OperateOption.create());
|
|
if(state == 0){
|
|
OperationResult submitResult = OperationServiceHelper.executeOperate("audit", enetityNumber, new DynamicObject[]{bill}, OperateOption.create());
|
|
if(!submitResult.isSuccess()){
|
|
List<IOperateInfo> allErrorOrValidateInfo = submitResult.getAllErrorOrValidateInfo();
|
|
for (IOperateInfo iOperateInfo : allErrorOrValidateInfo) {
|
|
errorList.add(enetityName+"审核时否生错误:"+iOperateInfo.getMessage());
|
|
}
|
|
}
|
|
}else{
|
|
OperationResult submitResult = OperationServiceHelper.executeOperate("unsubmit", enetityNumber, new DynamicObject[]{bill}, OperateOption.create());
|
|
if(!submitResult.isSuccess()){
|
|
List<IOperateInfo> allErrorOrValidateInfo = submitResult.getAllErrorOrValidateInfo();
|
|
for (IOperateInfo iOperateInfo : allErrorOrValidateInfo) {
|
|
errorList.add(enetityName+"撤销时发生错误:"+iOperateInfo.getMessage());
|
|
}
|
|
}
|
|
}
|
|
}else{
|
|
errorList.add("根据参数KDBillType["+KDBillType+"]。KDBillNumber["+KDBillNumber+"]没有查询到对应的"+enetityName+"信息");
|
|
}
|
|
}
|
|
if(errorList.size() > 0){
|
|
resultBean.setBillStatus(false);
|
|
errors.setRowMsg(errorList);
|
|
resultBean.setErrors(errors);
|
|
|
|
resultExt.setFailCount(1);
|
|
resultExt.setSuccessCount(0);
|
|
}else{
|
|
resultExt.setFailCount(0);
|
|
resultExt.setSuccessCount(1);
|
|
}
|
|
results.add(resultBean);
|
|
resultExt.setResult(results);
|
|
return CustomApiResult.success(resultExt);
|
|
}
|
|
}
|