lc/lc123/cloud/app/plugin/operate/sys/MaterialAuditOp.java

166 lines
10 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package tqq9.lc123.cloud.app.plugin.operate.sys;
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.entity.plugin.AbstractOperationServicePlugIn;
import kd.bos.entity.plugin.args.AfterOperationArgs;
import kd.bos.logging.Log;
import kd.bos.logging.LogFactory;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.QueryServiceHelper;
import kd.bos.servicehelper.operation.OperationServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;
import org.apache.commons.lang3.StringUtils;
import java.math.BigDecimal;
import java.util.List;
/**
* 物料审核操作
* 审核成功后,生成对应的商城商品
*/
public class MaterialAuditOp extends AbstractOperationServicePlugIn {
private static final Log log = LogFactory.getLog(MaterialAuditOp.class);
@Override
public void afterExecuteOperationTransaction(AfterOperationArgs e) {
super.afterExecuteOperationTransaction(e);
OperationResult operationResult = this.getOperationResult();
if (operationResult.isSuccess()){
DynamicObject[] dataEntities = e.getDataEntities();
for (DynamicObject material : dataEntities) {
material = BusinessDataServiceHelper.loadSingle(material.getPkValue(), "bd_material");
String tqq9_srcnumber = material.getString("tqq9_srcnumber");
//查询是否有源单编码,如果有就是物料变更,如果没有就是正常物料审核
if(StringUtils.isNotBlank(tqq9_srcnumber)){
//物料变更逻辑
String tqq9_changefields = material.getString("tqq9_changefields_tag");
if(StringUtils.isNotBlank(tqq9_changefields)){
QFilter f = new QFilter("number", "=", tqq9_srcnumber);
boolean exists = QueryServiceHelper.exists("bd_material", new QFilter[]{f});
if(exists){
DynamicObject srcMaterial = BusinessDataServiceHelper.loadSingle("bd_material", new QFilter[]{f});
String[] fieldArr = tqq9_changefields.split(",");
for (String changeField : fieldArr) {
srcMaterial.set(changeField, material.get(changeField));
}
SaveServiceHelper.save(new DynamicObject[]{srcMaterial});
OperationResult opResult = OperationServiceHelper.executeOperate("unaudit", "bd_material", new DynamicObject[]{material}, OperateOption.create());
log.info("反审核物料修改信息["+material.getString("number")+"]的结果:"+opResult.isSuccess());
if(opResult.isSuccess()){
opResult = OperationServiceHelper.executeOperate("delete", "bd_material", new DynamicObject[]{material}, OperateOption.create());
log.info("删除物料修改信息["+material.getString("number")+"]的结果:"+opResult.isSuccess());
}
}
}
}else{
//物料新增审核,封装商品逻辑:查询对应的商品是否存在
DynamicObject goods;
Long materialID = material.getLong("id");
QFilter f = new QFilter("tqq9_mater.id", "=", materialID);
DynamicObject[] goodsArr = BusinessDataServiceHelper.load("tqq9_goodspackage", "id", new QFilter[]{f});
if (goodsArr != null && goodsArr.length > 0){
goods = goodsArr[0];
goods = BusinessDataServiceHelper.loadSingle(goods.getPkValue(), goods.getDynamicObjectType().getName());
}else {
goods = BusinessDataServiceHelper.newDynamicObject("tqq9_goodspackage");
goods.set("number", material.getString("number"));
goods.set("tqq9_mater", material);
}
//创建组织-默认励齿集团
DynamicObject createorg = null;
f = new QFilter("number", "=", "LICHI");
DynamicObject[] orgArr = BusinessDataServiceHelper.load("bos_org", "id,name,number", new QFilter[]{f});
if(orgArr != null && orgArr.length > 0){
createorg = orgArr[0];
}
//币种-默认CNY
DynamicObject currency = null;
f = new QFilter("number", "=", "CNY");
DynamicObject[] currencyArr = BusinessDataServiceHelper.load("bd_currency", "id,name,number", new QFilter[]{f});
if(currencyArr != null && currencyArr.length > 0){
currency = currencyArr[0];
}
//查询税率和税率基础资料
DynamicObject tqq9_ssbm = material.getDynamicObject("tqq9_ssbm");
tqq9_ssbm = BusinessDataServiceHelper.loadSingle(tqq9_ssbm.getPkValue(), tqq9_ssbm.getDynamicObjectType().getName(),"id,name,number,taxrate");
BigDecimal taxrate = tqq9_ssbm.getBigDecimal("taxrate");
if(taxrate != null){
goods.set("tqq9_saletaxdcm", taxrate);
QFilter f1 = new QFilter("taxrate", "=", taxrate.multiply(new BigDecimal(100)));
DynamicObject[] bd_taxratesArr = BusinessDataServiceHelper.load("bd_taxrate", "id,number,name,taxrate", new QFilter[]{f1});
goods.set("tqq9_saletaxrate", bd_taxratesArr[0]);
}
//给商品信息赋值
goods.set("createorg", createorg);
goods.set("name", material.getString("name"));
goods.set("tqq9_regproname", material.getString("tqq9_zccpmc"));
goods.set("tqq9_platform", "A,B,C");//平台
goods.set("tqq9_brand", material.getDynamicObject("tqq9_brand"));
goods.set("tqq9_wlcd", material.getDynamicObject("tqq9_wlcd1"));
goods.set("tqq9_taxno", tqq9_ssbm);
goods.set("tqq9_medicaltype", material.getString("tqq9_ylfl"));
goods.set("tqq9_level", material.getString("tqq9_spdj"));
goods.set("tqq9_currency", currency);//币种
goods.set("tqq9_onsale_sh", "B");
goods.set("tqq9_onsale_bj", "B");
goods.set("tqq9_onsale_gz", "B");
goods.set("tqq9_saleunit", material.getDynamicObject("baseunit"));//销售单位
goods.set("tqq9_keepcondition", material.getString("tqq9_ccystj"));
goods.set("tqq9_medicalclass", material.getDynamicObject("tqq9_ylflml"));
goods.set("tqq9_skutype2", material.getString("tqq9_combofield_spflii"));
goods.set("tqq9_ckutype3", material.getString("tqq9_combofield_spfliii"));
goods.set("tqq9_skutype4", material.getString("tqq9_spfliii"));
goods.set("tqq9_isauto", true);
goods.set("enable", "1");
goods.set("status", "A");
goods.set("creator",material.getDynamicObject("creator"));
goods.set("createtime",material.getDate("createtime"));
goods.set("modifier",material.getDynamicObject("modifier"));
goods.set("modifytime",material.getDate("modifytime"));
operationResult = OperationServiceHelper.executeOperate("save",
"tqq9_goodspackage", new DynamicObject[]{goods}, OperateOption.create());
if(!operationResult.isSuccess()){
log.info("物料["+material.getString("number")+"]审核封装商品保存出错msg"+operationResult.getMessage());
List<IOperateInfo> allErrorOrValidateInfo = operationResult.getAllErrorOrValidateInfo();
for (IOperateInfo iOperateInfo : allErrorOrValidateInfo) {
String message = iOperateInfo.getMessage();
log.info("物料["+material.getString("number")+"]审核封装商品保存出错:"+message);
}
}else{
operationResult = OperationServiceHelper.executeOperate("submit",
"tqq9_goodspackage", new DynamicObject[]{goods}, OperateOption.create());
if(operationResult.isSuccess()){
operationResult = OperationServiceHelper.executeOperate("audit",
"tqq9_goodspackage", new DynamicObject[]{goods}, OperateOption.create());
if(operationResult.isSuccess()){
log.info("物料["+material.getString("number")+"]审核封装商品审核成功。");
}else{
log.info("物料["+material.getString("number")+"]审核封装商品审核出错msg"+operationResult.getMessage());
List<IOperateInfo> allErrorOrValidateInfo = operationResult.getAllErrorOrValidateInfo();
for (IOperateInfo iOperateInfo : allErrorOrValidateInfo) {
String message = iOperateInfo.getMessage();
log.info("物料["+material.getString("number")+"]审核封装商品审核出错:"+message);
}
}
}else{
log.info("物料["+material.getString("number")+"]审核封装商品提交出错msg"+operationResult.getMessage());
List<IOperateInfo> allErrorOrValidateInfo = operationResult.getAllErrorOrValidateInfo();
for (IOperateInfo iOperateInfo : allErrorOrValidateInfo) {
String message = iOperateInfo.getMessage();
log.info("物料["+material.getString("number")+"]审核封装商品提交出错:"+message);
}
}
}
}
}
}
}
}