package grand;
|
|
import foundation.action.ActionProvider;
|
import foundation.ai.KingdeeAIProvider;
|
import foundation.dao.DataPackage;
|
import foundation.dao.DataSource;
|
import foundation.dao.Filter;
|
import foundation.dao.PackageItem;
|
import foundation.data.entity.Entity;
|
import foundation.data.entity.EntitySet;
|
import foundation.data.object.DataObject;
|
import foundation.data.object.EntitySaver;
|
|
public class ImplantHandler extends ActionProvider {
|
|
@Override
|
protected void publishMethod() {
|
//1. 更新植入单明细状态
|
addMethod("updateDetailBookCode");
|
|
//2. 更新植入单明细状态
|
addMethod("invalidInvoice");
|
|
//3. 植入单提交校验发票
|
addMethod("checkInvoice");
|
}
|
|
public void updateDetailBookCode() throws Exception {
|
DataPackage dataPackage = dataReader.getDataPackage();
|
DataPackage host = dataPackage.getHost();
|
PackageItem detailItem = host.getItem("so_implant_detail");
|
|
String bookCode = context.getStepParam();
|
|
DataObject dataObject = detailItem.getDataObject();
|
EntitySet details = detailItem.getEntitySet(DataSource.DB);
|
|
EntitySaver saver = null;
|
for (Entity entity : details) {
|
saver = dataObject.createEntitySaver(entity);
|
saver.set("book_code", bookCode);
|
saver.update();
|
}
|
}
|
|
public void refreshStateInvoice() throws Exception {
|
DataPackage dataPackage = dataReader.getDataPackage();
|
String invoiceState = context.getStepParam();
|
DataPackage host = dataPackage.getHost();
|
PackageItem invoiceItem = host.getItem("so_implant_invoice");
|
Entity masterEntity = dataPackage.getMasterEntity();
|
DataObject dataObject = invoiceItem.getDataObject();
|
EntitySet invoices = dataObject.getTableEntitySet(new Filter("implant_id", host.getMasterId()));
|
|
String typeCode = masterEntity.getString("type_code");
|
|
if (!invalidInvoiceCheck(typeCode)) {
|
return ;
|
}
|
|
EntitySaver saver = null;
|
for (Entity entity : invoices) {
|
if (entity.getBoolean("is_alive")) {
|
saver = dataObject.createEntitySaver(entity);
|
saver.set("is_alive", invoiceState);
|
saver.update();
|
}
|
}
|
}
|
|
public boolean invalidInvoiceCheck(String typeCode) throws Exception {
|
boolean invalidInvoiceCheck = false;
|
|
if ("alter_invoice".equalsIgnoreCase(typeCode) || "whole".equalsIgnoreCase(typeCode) ) {
|
invalidInvoiceCheck = true;
|
}
|
|
return invalidInvoiceCheck;
|
}
|
|
public void distinctCheck() throws Exception {
|
DataPackage dataPackage = dataReader.getDataPackage();
|
dataPackage.loadOneDataFromDB();
|
|
PackageItem invoiceItem = dataPackage.getItem("so_implant_invoice");
|
EntitySet entitySet = invoiceItem.getEntitySet(DataSource.DB);
|
|
if (entitySet.size() > 0 ) {
|
Entity entity = entitySet.getEntity(0);
|
boolean invalidInvoiceCheck = KingdeeAIProvider.distinctCheck(entity.getString("code"), entity.getString("number"));
|
|
if (!invalidInvoiceCheck) {
|
context.terminateTask();
|
dataWriter.reportOneError("distinctCheck", "发票已上报");
|
}
|
}
|
}
|
}
|