diff --git a/lc123/cloud/app/plugin/operate/im/PurInHzrkConvertPlugin.java b/lc123/cloud/app/plugin/operate/im/PurInHzrkConvertPlugin.java deleted file mode 100644 index d10f632..0000000 --- a/lc123/cloud/app/plugin/operate/im/PurInHzrkConvertPlugin.java +++ /dev/null @@ -1,161 +0,0 @@ -package tqq9.lc123.cloud.app.plugin.operate.im; - -import com.alibaba.nacos.common.utils.StringUtils; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import kd.bos.dataentity.entity.DynamicObject; -import kd.bos.dataentity.entity.DynamicObjectCollection; -import kd.bos.dataentity.metadata.IDataEntityProperty; -import kd.bos.dataentity.metadata.clr.DataEntityPropertyCollection; -import kd.bos.entity.ExtendedDataEntity; -import kd.bos.entity.ExtendedDataEntitySet; -import kd.bos.entity.botp.plugin.AbstractConvertPlugIn; -import kd.bos.entity.botp.plugin.args.AfterConvertEventArgs; -import kd.bos.logging.Log; -import kd.bos.logging.LogFactory; -import kd.bos.orm.query.QCP; -import kd.bos.orm.query.QFilter; -import kd.bos.servicehelper.BusinessDataServiceHelper; -import kd.sdk.plugin.Plugin; - -import java.math.BigDecimal; -import java.util.*; - -/** - * 采购入库转换插件 - */ -public class PurInHzrkConvertPlugin extends AbstractConvertPlugIn implements Plugin { - - private final static Log logger = LogFactory.getLog(PurInHzrkConvertPlugin.class); - private static String IM_PURINBILL = "im_purinbill"; - private final static HashMap wareTypeMap = new HashMap() {{ - put("地堆区", "SHZC01"); - put("存储区", "SHZC01"); - put("立库区", "SHZC01"); - put("新仓", "SHZC01"); - put("破损区", "SHZC02"); - put("零拣区", "SHZC02"); - put("收货中转", "SHZC03"); - put("退货中转", "SHZC03"); - put("虚拟区", "SHZC03"); - }}; - - - /** - * 入库回传下推写入对应的 - * quantity 入库数量 - * manufactureDate 生产日期 - * expirationDate 失效期 - * batch 批次 - * registrationCode 注册证号 - * licenceCode 生产许可证号 - * producer 生产厂商 - * - * @param e - */ - @Override - public void afterConvert(AfterConvertEventArgs e) { - super.afterConvert(e); - ExtendedDataEntitySet targetExtDataEntitySet = e.getTargetExtDataEntitySet(); - ExtendedDataEntity[] extendedDataEntities = targetExtDataEntitySet.FindByEntityKey(IM_PURINBILL); - Map variables = this.getOption().getVariables(); - for (ExtendedDataEntity extendedDataEntity : extendedDataEntities) { - //采购入库单 - DynamicObject dataEntity = extendedDataEntity.getDataEntity(); - DynamicObjectCollection dynamicObjectCollection = dataEntity.getDynamicObjectCollection("billentry"); - ListIterator iterator = dynamicObjectCollection.listIterator(); - while (iterator.hasNext()) { - DynamicObject entry = iterator.next(); - String srcbillentryid = entry.getString("srcbillentryid"); - //核心单据号一致,写入数据 - if (variables.containsKey(srcbillentryid)) { - String jsonString = variables.get(srcbillentryid); - ObjectMapper objectMapper = new ObjectMapper(); - List> jsonList = null; - try { - jsonList = objectMapper.readValue(jsonString, objectMapper.getTypeFactory().constructCollectionType(List.class, HashMap.class)); - } catch (JsonProcessingException ex) { - throw new RuntimeException(ex); - } - if (jsonList != null) { - dataEntity.set("tqq9_isrebulidlink",true); - for (int i = 0; i < jsonList.size(); i++) { - HashMap jsonMap = jsonList.get(i); - String VoucherType = jsonMap.get("VoucherType").toString();//类型 - Date manufactureDate = null; - Date expirationDate = null; - if (jsonMap.get("manufactureDate") instanceof Long) { - manufactureDate = new Date((Long) jsonMap.get("manufactureDate")); //生产日期 - } - if (jsonMap.get("expirationDate") instanceof Long) { - expirationDate = new Date((Long) jsonMap.get("expirationDate")); //生产日期 - } - BigDecimal quantity = BigDecimal.ZERO; - if (StringUtils.equals("pm_receiptnotice", VoucherType)) { - quantity = new BigDecimal(jsonMap.get("quantity").toString());//入库数量 - } else { - quantity = new BigDecimal(jsonMap.get("quantity").toString()).negate();//入库数量 - } - String batch = jsonMap.get("batch") != null ? jsonMap.get("batch").toString() : null; // 批次 - String toZone = jsonMap.get("toZone") != null ? jsonMap.get("toZone").toString() : null; // 库区 - DynamicObject bd_warehouse=null; - if(toZone!=null){ - String wareNumber = wareTypeMap.get(toZone); - bd_warehouse = BusinessDataServiceHelper.loadSingle("bd_warehouse", new QFilter[]{new QFilter("number", QCP.equals, wareNumber)}); - } - String wmsDetailId = jsonMap.get("wmsDetailId") != null ? jsonMap.get("wmsDetailId").toString() : null; // WMS分录id - String uniqueCode = jsonMap.get("uniqueCode") != null ? jsonMap.get("uniqueCode").toString() : null; // 商品编码 - String registrationCode = jsonMap.get("registrationCode") != null ? jsonMap.get("registrationCode").toString() : null; // 注册证号 - String licenceCode = jsonMap.get("licenceCode") != null ? jsonMap.get("licenceCode").toString() : null; // 生产许可证号 - String producer = jsonMap.get("producer") != null ? jsonMap.get("producer").toString() : null; // 生产厂商 - DynamicObject tqq9_goodspackage = BusinessDataServiceHelper.loadSingle("tqq9_goodspackage", new QFilter[]{new QFilter("tqq9_mater.number", QCP.equals, uniqueCode).and("tqq9_isauto", QCP.equals, true)}); - DynamicObject tqq9_registration = BusinessDataServiceHelper.loadSingle("tqq9_registration", new QFilter[]{new QFilter("number", QCP.equals, registrationCode)}); - DynamicObject tqq9_proxyandfactory = BusinessDataServiceHelper.loadSingle("tqq9_proxyandfactory", new QFilter[]{new QFilter("number", QCP.equals, producer)}); - // 处理第一次逻辑 - if (i == 0) { - // 第一次直接赋值 - entry.set("qty", quantity); - entry.set("baseqty", quantity); - entry.set("tqq9_goods", tqq9_goodspackage); - entry.set("producedate", manufactureDate); - entry.set("expirydate", expirationDate); - entry.set("lotnumber", batch); - entry.set("warehouse", bd_warehouse); - entry.set("tqq9_wmsdetailid", wmsDetailId); - entry.set("tqq9_licenseno", licenceCode); - entry.set("tqq9_registration", tqq9_registration); - entry.set("tqq9_proxyandfactory", tqq9_proxyandfactory); - DynamicObjectCollection billentry_lk = entry.getDynamicObjectCollection("billentry_lk"); - billentry_lk.clear(); - } else { - DataEntityPropertyCollection properties = entry.getDataEntityType().getProperties(); - // 后续循环复制entry并赋值 - DynamicObject newEntry = new DynamicObject(dynamicObjectCollection.getDynamicObjectType()); - for (IDataEntityProperty property : properties) { - newEntry.set(property.getName(), entry.get(property.getName())); - } - newEntry.set("qty", quantity); - newEntry.set("baseqty", quantity); - newEntry.set("tqq9_goods", tqq9_goodspackage); - newEntry.set("producedate", manufactureDate); - newEntry.set("expirydate", expirationDate); - newEntry.set("lotnumber", batch); - newEntry.set("warehouse", bd_warehouse); - newEntry.set("tqq9_wmsdetailid", wmsDetailId); - newEntry.set("tqq9_licenseno", licenceCode); - newEntry.set("tqq9_registration", tqq9_registration); - newEntry.set("tqq9_proxyandfactory", tqq9_proxyandfactory); - DynamicObjectCollection billentry_lk = newEntry.getDynamicObjectCollection("billentry_lk"); - billentry_lk.clear(); - // 处理完新entry后的逻辑(比如加入集合或其他操作) - iterator.add(newEntry); - } - } - } - } - } - } - - } - -} \ No newline at end of file