Forráskód Böngészése

批量调价单新

Boil 4 hete
szülő
commit
ad710c8d57

+ 144 - 12
code/wnq/nckd-wnq01-wnq-scm/src/main/java/nckd/wnq01/wnq/scm/plugin/form/BatchPriceAdjBaseEditPlugin.java

@@ -2,30 +2,32 @@ package nckd.wnq01.wnq.scm.plugin.form;
 
 import kd.bos.bill.AbstractBillPlugIn;
 import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.dataentity.entity.DynamicObjectCollection;
 import kd.bos.dataentity.resource.ResManager;
+import kd.bos.dataentity.utils.StringUtils;
 import kd.bos.entity.datamodel.IDataModel;
 import kd.bos.entity.datamodel.events.PropertyChangedArgs;
 import kd.bos.form.ShowType;
 import kd.bos.form.cardentry.CardEntry;
 import kd.bos.form.control.Control;
-import kd.bos.form.control.events.ClickListener;
-import kd.bos.form.control.events.RowClickEventListener;
+import kd.bos.form.control.EntryGrid;
+import kd.bos.form.control.Toolbar;
+import kd.bos.form.control.events.*;
 import kd.bos.form.events.ClosedCallBackEvent;
+import kd.bos.form.field.BasedataEdit;
 import kd.bos.form.field.events.BeforeF7SelectEvent;
 import kd.bos.form.field.events.BeforeF7SelectListener;
-import kd.fi.er.business.ext.enums.ErExtcaseEnum;
-import kd.fi.er.business.ext.helper.ErExtHelper;
-import kd.fi.er.business.utils.CalculateTripSumUtil;
-import kd.fi.er.business.utils.ErEntityTypeUtils;
+import kd.bos.list.ListShowParameter;
+import kd.bos.orm.query.QCP;
+import kd.bos.orm.query.QFilter;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
 import kd.fi.er.common.ShowPageUtils;
-import kd.fi.er.formplugin.web.TripBaseBillEdit;
 import kd.fi.er.model.FormModel;
 import kd.sdk.plugin.Plugin;
 
-import java.util.EventObject;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @Author: Boil
@@ -37,17 +39,105 @@ public class BatchPriceAdjBaseEditPlugin extends AbstractBillPlugIn implements P
 
     @Override
     public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
+        String name = beforeF7SelectEvent.getProperty().getName();
+        EntryGrid putentry = this.getView().getControl("nckd_putentry");
+        int[] selectRows = putentry.getSelectRows();
+        DynamicObject entry = this.getView().getModel().getEntryRowEntity("nckd_putentry",selectRows[0]);
+        ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
+        List<QFilter> qFilters = new ArrayList<>();
+        switch (name){
+            case "nckd_xqys_d":
+                DynamicObject nckdQuyus = entry.getDynamicObject("nckd_quyus");
+                DynamicObjectCollection nckdXqys = entry.getDynamicObjectCollection("nckd_xqys");
+                if(null != nckdQuyus){
+                    qFilters.add(new QFilter("nckd_qy", QCP.equals, nckdQuyus.getPkValue()));
+                }
 
+                if (!nckdXqys.isEmpty()){
+                    List<Object> fbasedataids = nckdXqys.stream().map(x -> x.getDynamicObject("fbasedataid").getPkValue()).collect(Collectors.toList());
+                    qFilters.add(new QFilter("id",QCP.not_in,fbasedataids));
+                }
+                if (!qFilters.isEmpty())
+                    formShowParameter.getListFilterParameter().setQFilters(qFilters);
+                break;
+            case "nckd_customer":
+
+
+
+                DynamicObjectCollection nckdTjdetailentry = entry.getDynamicObjectCollection("nckd_tjdetailentry");
+                DynamicObject subentry = nckdTjdetailentry.get(beforeF7SelectEvent.getRow());
+                DynamicObject nckdXqysD = subentry.getDynamicObject("nckd_xqys_d");
+                DynamicObject fkNckdSaletypesD = subentry.getDynamicObject("fk_nckd_saletypes_d");
+                if(null != nckdXqysD){
+                    qFilters.add(new QFilter("nckd_xqy", QCP.equals, nckdXqysD.getPkValue()));
+                }
+
+                if(null != fkNckdSaletypesD){
+                    qFilters.add(new QFilter("nckd_xslb", QCP.equals, fkNckdSaletypesD.getPkValue()));
+                }
+                if (!qFilters.isEmpty())
+                    formShowParameter.getListFilterParameter().setQFilters(qFilters);
+                break;
+        }
     }
 
     @Override
     public void registerListener(EventObject e) {
         super.registerListener(e);
-        this.addClickListeners(new String[]{"nckd_updatetripentry", "nckd_cardentryflexpanel12", "nckd_addtjlabel1", "nckd_addptentry"});
+
         Control tripEntry = this.getControl("nckd_putentry");
         if (tripEntry instanceof CardEntry) {
             ((CardEntry)tripEntry).addRowClickListener(this);
         }
+        Toolbar toolbar = this.getView().getControl("nckd_advcontoolbarap1");
+        toolbar.addItemClickListener(this);
+        toolbar.addClickListener(this);
+
+        Toolbar toolbar2 = this.getView().getControl("nckd_advcontoolbarap2");
+        toolbar2.addItemClickListener(this);
+        toolbar2.addClickListener(this);
+        this.addClickListeners(new String[]{"nckd_alldai","nckd_allsan","nckd_updatetripentry", "nckd_cardentryflexpanel12", "nckd_addtjlabel1", "nckd_addptentry"});
+        this.addItemClickListeners("nckd_alldai","nckd_allsan");
+
+    }
+
+
+    @Override
+    public void beforeItemClick(BeforeItemClickEvent evt) {
+        super.beforeItemClick(evt);
+        Control source = (Control)evt.getSource();
+        if (StringUtils.equals("nckd_alldai", evt.getItemKey())
+                || StringUtils.equals("nckd_allsan",  evt.getItemKey())
+                || StringUtils.equals("nckd_advconbaritemap2",  evt.getItemKey())
+                || StringUtils.equals("nckd_advconbaritemap3",  evt.getItemKey())
+                || StringUtils.equals("nckd_advconbaritemap",  evt.getItemKey())
+                || StringUtils.equals("nckd_advconbaritemap1",  evt.getItemKey())){
+            EntryGrid nckdPutentry = this.getView().getControl("nckd_putentry");
+            int[] selectRows = nckdPutentry.getSelectRows();
+            if (selectRows==null || selectRows.length<1){
+                this.getView().showErrorNotification("请先选择一个普调分录");
+                evt.setCancel(true);
+            }
+        }
+    }
+
+    @Override
+    public void beforeClick(BeforeClickEvent evt) {
+        super.beforeClick(evt);
+    }
+
+    @Override
+    public void itemClick(ItemClickEvent evt) {
+        super.itemClick(evt);
+        String key = evt.getItemKey();
+        switch (key) {
+            case "nckd_alldai":
+                allAddentry("袋装");
+                break;
+            case "nckd_allsan":
+                allAddentry("散装");
+                break;
+        }
     }
 
     @Override
@@ -68,6 +158,48 @@ public class BatchPriceAdjBaseEditPlugin extends AbstractBillPlugIn implements P
             case "nckd_addptentry":
                 this.openPtEntry(-1, true);
                 break;
+            case "nckd_alldai":
+                allAddentry("袋装");
+                break;
+            case "nckd_allsan":
+                allAddentry("散装");
+                break;
+        }
+    }
+
+    private void allAddentry(String materialType) {
+        DynamicObject[] materialArr = BusinessDataServiceHelper.load("bd_material", "id,masterid,name,nckd_decimalfield,nckd_decimalfield1", new QFilter[]{new QFilter("name", QCP.like, "%"+materialType+"%")});
+        if (materialArr.length>0){
+            EntryGrid nckdPutentry = this.getView().getControl("nckd_putentry");
+            int[] selectRows = nckdPutentry.getSelectRows();
+            DynamicObjectCollection entity=this.getModel().getEntryEntity("nckd_putentry");
+            if(selectRows!=null && selectRows.length>0){
+                DynamicObject entry = entity.get(selectRows[0]);
+                DynamicObjectCollection nckdTjdetailentry = entry.getDynamicObjectCollection("nckd_tjdetailentry");
+                for (DynamicObject material : materialArr) {
+                    DynamicObject subentry = nckdTjdetailentry.addNew();
+                    this.getView().getModel().beginInit();
+                    subentry.set("nckd_materialhang",material);
+
+                    subentry.set("nckd_cbj",material.getBigDecimal("nckd_decimalfield1"));
+                    BigDecimal nckdDecimalfield = null==material.getBigDecimal("nckd_decimalfield") ? BigDecimal.ZERO : material.getBigDecimal("nckd_decimalfield") ;
+                    BigDecimal tiaozjiage = null == entry.getBigDecimal("nckd_tiaozjiage") ? BigDecimal.ZERO : entry.getBigDecimal("nckd_tiaozjiage");
+                    String nckdTiaojiatype = entry.getString("nckd_tiaojiatype");
+                    BigDecimal newprice=null;
+                    if(StringUtils.equals("S",nckdTiaojiatype)){
+                        newprice=nckdDecimalfield.add(tiaozjiage);
+                    }else if (StringUtils.equals("X",nckdTiaojiatype)){
+                        newprice=nckdDecimalfield.subtract(tiaozjiage);
+                    }
+                    subentry.set("nckd_tiaojiafudu",tiaozjiage);
+                    subentry.set("nckd_tiaojiatyped",nckdTiaojiatype);
+                    subentry.set("nckd_yuanprice",nckdDecimalfield);
+                    this.getView().getModel().endInit();;
+                    subentry.set("nckd_newprice",newprice);
+                    this.getView().updateView("nckd_tjdetailentry");
+                }
+
+            }
         }
     }
 

+ 102 - 0
code/wnq/nckd-wnq01-wnq-scm/src/main/java/nckd/wnq01/wnq/scm/plugin/form/BatchPriceAdjMobEditPlugin.java

@@ -0,0 +1,102 @@
+package nckd.wnq01.wnq.scm.plugin.form;
+
+import kd.bos.bill.AbstractMobBillPlugIn;
+import kd.bos.bill.MobileBillShowParameter;
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.dataentity.entity.DynamicObjectCollection;
+import kd.bos.form.CloseCallBack;
+import kd.bos.form.IPageCache;
+import kd.bos.form.ShowType;
+import kd.bos.form.cardentry.CardEntry;
+import kd.bos.form.control.AbstractGrid;
+import kd.bos.form.control.events.ClickListener;
+import kd.bos.form.control.events.RowClickEvent;
+import kd.bos.form.control.events.RowClickEventListener;
+import kd.bos.orm.ORM;
+import kd.fi.er.business.ext.enums.ErExtcaseEnum;
+import kd.fi.er.business.ext.helper.ErExtHelper;
+import kd.fi.er.common.ShowPageUtils;
+import kd.fi.er.formplugin.daily.web.workflow.ErMobWorkFlowOtherViewEditUtils;
+import kd.fi.er.formplugin.mobile.TripReimburseBill;
+import kd.sdk.plugin.Plugin;
+
+import java.util.*;
+
+/**
+ * 价格批量调整单移动端表单插件
+ */
+public class BatchPriceAdjMobEditPlugin extends AbstractMobBillPlugIn implements ClickListener, RowClickEventListener,Plugin {
+    public static final String NCKD_PUTENTRY = "nckd_putentry";
+    protected IPageCache pageCache;
+
+    @Override
+    public void initialize() {
+        super.initialize();
+        this.pageCache = this.getPageCache();
+    }
+
+    public void registerListener(EventObject e) {
+        super.registerListener(e);
+        AbstractGrid tripgrid = this.getView().getControl(NCKD_PUTENTRY);
+        tripgrid.addRowClickListener(this);
+    }
+
+
+    @Override
+    public void entryRowClick(RowClickEvent evt) {
+        CardEntry source = (CardEntry)evt.getSource();
+        switch (source.getKey()) {
+            case NCKD_PUTENTRY:
+                this.chooosePutEntryRow();
+            default:
+        }
+    }
+
+    private void chooosePutEntryRow() {
+        this.setAllPriceInfoId();
+        AbstractGrid grid = this.getView().getControl(NCKD_PUTENTRY);
+        int index = grid.getEntryState().getFocusRow();
+        MobileBillShowParameter showParameter = new MobileBillShowParameter();
+        showParameter.setFormId(this.getPutEntryEditForm());
+        Map<String, Object> mapCustomParam = new HashMap();
+        mapCustomParam.put("index", index);
+        mapCustomParam.put("status", 1);
+        this.pageCache.put("viewPutEntryIndex", String.valueOf(index));
+
+        ErMobWorkFlowOtherViewEditUtils.setWorkFlowParams(mapCustomParam, this.getView());
+        ShowPageUtils.setFormStatusToCustomParam(mapCustomParam, this.getView());
+        showParameter.setCustomParams(mapCustomParam);
+        showParameter.getOpenStyle().setShowType(ShowType.Floating);
+        //showParameter.setAppId("18XD+/5EDN8X");
+        showParameter.setHasRight(true);
+        showParameter.setCloseCallBack(new CloseCallBack(this, showParameter.getFormId()));
+        //Object[] parma = new Object[]{this.getView(), this.getModel(), showParameter, mapCustomParam};
+
+        this.getView().showForm(showParameter);
+
+    }
+
+    private String getPutEntryEditForm() {
+        return "nckd_puentry_mb";
+    }
+
+    private void setAllPriceInfoId() {
+        DynamicObjectCollection ptEntry = this.getModel().getEntryEntity(NCKD_PUTENTRY);
+        ptEntry.stream().forEach((puentryItem) -> {
+            this.setAndGetSelectedRowEntryId(puentryItem);
+            DynamicObjectCollection expenseEntry = puentryItem.getDynamicObjectCollection("nckd_tjdetailentry");
+            expenseEntry.stream().forEach((tjdetailentry) -> this.setAndGetSelectedRowEntryId(tjdetailentry));
+        });
+        this.getModel().setValue(NCKD_PUTENTRY, ptEntry);
+    }
+
+    private Long setAndGetSelectedRowEntryId(DynamicObject entryEntity) {
+        Long entryId = (Long)entryEntity.getPkValue();
+        if (Objects.equals(entryId, 0L)) {
+            entryId = ORM.create().genLongId(this.getView().getEntityId());
+            entryEntity.set("id", entryId);
+        }
+
+        return entryId;
+    }
+}

+ 1 - 1
code/wnq/nckd-wnq01-wnq-scm/src/main/java/nckd/wnq01/wnq/scm/plugin/form/PtEntryEdit.java

@@ -167,7 +167,7 @@ public class PtEntryEdit extends AbstractFormPlugin implements BeforeF7SelectLis
             List<QFilter> qFilters = new ArrayList<>();
             if(null != this.getModel().getValue("nckd_quyus") ) {
                 DynamicObject quyus = (DynamicObject) this.getModel().getValue("nckd_quyus");
-                qFilters.add(new QFilter("nckd_qy.id", QCP.equals, quyus.getPkValue()));
+                qFilters.add(new QFilter("nckd_qy", QCP.equals, quyus.getPkValue()));
                 formShowParameter.getListFilterParameter().setQFilters(qFilters);
             }else{
                 this.getView().showErrorNotification("请先选择区域字段");

+ 96 - 0
code/wnq/nckd-wnq01-wnq-scm/src/main/java/nckd/wnq01/wnq/scm/plugin/form/PtEntryMobEditPlugin.java

@@ -0,0 +1,96 @@
+package nckd.wnq01.wnq.scm.plugin.form;
+
+import kd.bos.bill.AbstractMobBillPlugIn;
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.dataentity.entity.DynamicObjectCollection;
+import kd.bos.entity.datamodel.IDataModel;
+import kd.bos.entity.datamodel.events.BizDataEventArgs;
+import kd.bos.form.FormShowParameter;
+import kd.bos.form.IFormView;
+import kd.bos.util.CollectionUtils;
+import kd.fi.er.business.servicehelper.CommonServiceHelper;
+import kd.fi.er.business.servicehelper.CoreBaseBillServiceHelper;
+import kd.fi.er.business.servicehelper.DailyBillServiceHelper;
+import kd.fi.er.business.utils.AmountChangeUtil;
+import kd.fi.er.business.utils.ErCommonUtils;
+import kd.fi.er.business.utils.SystemParamterUtil;
+import kd.fi.er.formplugin.util.EntryCopyUtil;
+import kd.sdk.plugin.Plugin;
+
+import java.math.BigDecimal;
+import java.util.EventObject;
+import java.util.Map;
+
+/**
+ * 单据界面插件(移动端)
+ */
+public class PtEntryMobEditPlugin extends AbstractMobBillPlugIn implements Plugin {
+
+
+
+    @Override
+    public void createNewData(BizDataEventArgs e) {
+        super.createNewData(e);
+        FormShowParameter showParameter = this.getView().getFormShowParameter();
+        Map<String, Object> mapCustomParam = showParameter.getCustomParams();
+        int status = (Integer)mapCustomParam.get("status");
+        IDataModel pModel = this.getView().getParentView().getModel();
+        if (status == 1 && pModel.getDataEntity().getDataEntityType().getName().equals(this.getView().getEntityId())) {
+            e.setDataEntity(pModel.getDataEntity());
+        }
+    }
+
+
+    @Override
+    public void afterCreateNewData(EventObject e) {
+        super.afterCreateNewData(e);
+        IDataModel model = this.getModel();
+        CoreBaseBillServiceHelper.setFromStatus(this);
+        IFormView parentView = this.getView().getParentView();
+        IDataModel parentModel = parentView.getModel();
+        Map<String, Object> mapCustomParam = this.getView().getFormShowParameter().getCustomParams();
+        Integer status = null;
+        if (mapCustomParam != null) {
+            Object index = mapCustomParam.get("index");
+            if (index != null) {
+                this.getPageCache().put("parentViewTripIndex", index.toString());
+            }
+
+            status = (Integer)mapCustomParam.get("status");
+        }
+
+       if (status != null && status == 1) {
+            this.updateTripentryInfo(model, parentModel, mapCustomParam);
+        }
+
+    }
+
+    private void updateTripentryInfo(IDataModel model, IDataModel parentModel, Map<String, Object> mapCustomParam) {
+        DynamicObjectCollection ptrip = (DynamicObjectCollection)parentModel.getDataEntity(true).get("nckd_putentry");
+        Object indexObj = mapCustomParam.get("index");
+        if (indexObj != null) {
+            int index = Integer.parseInt(indexObj.toString());
+            DynamicObject viewTrip = ptrip.get(index);
+
+
+            DynamicObjectCollection trip = (DynamicObjectCollection)this.getModel().getDataEntity(true).get("nckd_putentry");
+            trip.clear();
+            EntryCopyUtil.copyEntry2TargetColl(trip, viewTrip);
+//            if (CollectionUtils.isNotEmpty(trip)) {
+//                trip.get(0).set("seq", 1);
+//            }
+//
+//            DynamicObject tripEntryCol = trip.get(0);
+//            int tripday = tripEntryCol.getInt("tripday");
+//            int entryCountIndex = model.getEntryRowCount("entryentity");
+//
+//            for(int i = 0; i < entryCountIndex; ++i) {
+//                model.setValue("daycount", tripday, i, 0);
+//                model.setValue("entrycurrency", model.getValue("entrycurrency", i, 0), i, 0);
+//            }
+
+        }
+
+    }
+
+}

+ 170 - 0
code/wnq/nckd-wnq01-wnq-scm/src/main/java/nckd/wnq01/wnq/scm/plugin/operate/BatchPriceAdjOpPlugin.java

@@ -0,0 +1,170 @@
+package nckd.wnq01.wnq.scm.plugin.operate;
+
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.dataentity.entity.DynamicObjectCollection;
+import kd.bos.dataentity.utils.StringUtils;
+import kd.bos.entity.EntityMetadataCache;
+import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
+import kd.bos.entity.plugin.PreparePropertysEventArgs;
+import kd.bos.entity.plugin.args.AfterOperationArgs;
+import kd.bos.entity.plugin.args.BeforeOperationArgs;
+import kd.bos.entity.plugin.args.BeginOperationTransactionArgs;
+import kd.bos.entity.plugin.args.EndOperationTransactionArgs;
+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.text.SimpleDateFormat;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * 价格批量调整单插件
+ */
+public class BatchPriceAdjOpPlugin extends AbstractOperationServicePlugIn implements Plugin {
+    private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
+    @Override
+    public void onPreparePropertys(PreparePropertysEventArgs e) {
+        super.onPreparePropertys(e);
+        List<String> fieldKeys = e.getFieldKeys();
+        Set<String> ProjectAllFields = EntityMetadataCache.getDataEntityType(this.billEntityType.getName()).getAllFields().keySet();
+        fieldKeys.addAll(ProjectAllFields);
+        fieldKeys.add("nckd_tjdetailentry.nckd_materialhang");
+
+    }
+
+
+    @Override
+    public void beginOperationTransaction(BeginOperationTransactionArgs e) {
+        super.beginOperationTransaction(e);
+        String operationKey = e.getOperationKey();
+        if (StringUtils.equals("submit",operationKey) || StringUtils.equals("save",operationKey)){
+             DynamicObject[] materialArr = BusinessDataServiceHelper.load("bd_material", "id,masterid,name,nckd_decimalfield,nckd_decimalfield1", new QFilter[]{new QFilter("name", QCP.like, "%袋装%").or(new QFilter("name", QCP.like, "%散装%"))});
+            List<DynamicObject> dai = Arrays.stream(materialArr).filter(x -> x.getString("name").contains("袋装")).collect(Collectors.toList());
+            List<DynamicObject> san= Arrays.stream(materialArr).filter(x -> x.getString("name").contains("散装")).collect(Collectors.toList());
+            for (DynamicObject bill : e.getDataEntities()) {
+                DynamicObjectCollection nckdPutentry = bill.getDynamicObjectCollection("nckd_putentry");
+                for (DynamicObject entry : nckdPutentry) {
+                    StringBuilder desc= new StringBuilder();
+
+                    DynamicObject nckdQuyus = entry.getDynamicObject("nckd_quyus");
+                    if(null != nckdQuyus){
+                        desc.append(nckdQuyus.getString("name")).append("区域");
+                    }
+                    DynamicObjectCollection nckdXqys = entry.getDynamicObjectCollection("nckd_xqys");
+                    if(!nckdXqys.isEmpty()){
+                        List<String> xqyNames = nckdXqys.stream().map(x -> x.getDynamicObject("fbasedataid").getString("name")).distinct().collect(Collectors.toList());
+                        if (xqyNames.size()==1){
+                            desc.append(",").append(xqyNames.get(0)).append("小区域");
+                        }else{
+                            desc.append(",").append(String.join("、", xqyNames)).append("等小区域");
+                        }
+                    }
+                    DynamicObjectCollection nckdSaletypes = entry.getDynamicObjectCollection("nckd_saletypes");
+                    if(!nckdSaletypes.isEmpty()){
+                        List<String> saletypeNames = nckdSaletypes.stream().map(x -> x.getDynamicObject("fbasedataid").getString("name")).distinct().collect(Collectors.toList());
+                        if (saletypeNames.size()==1){
+                            desc.append(",").append(saletypeNames.get(0)).append("销售类型");
+                        }else{
+                            desc.append(",").append(String.join("、", saletypeNames)).append("等销售类型");
+                        }
+                    }
+                    DynamicObjectCollection nckdTjjd = entry.getDynamicObjectCollection("nckd_tjjd");
+                    if(!nckdTjjd.isEmpty()){
+                        List<String> tjjdNames = nckdTjjd.stream().map(x -> x.getDynamicObject("fbasedataid").getString("name")).distinct().collect(Collectors.toList());
+                        if (tjjdNames.size()==1){
+                            desc.append(",").append(tjjdNames.get(0)).append("调价基地");
+                        }else{
+                            desc.append(",").append(String.join("、", tjjdNames)).append("等调价基地");
+                        }
+                    }
+                    Date nckdTzsxsj = entry.getDate("nckd_tzsxsj");
+                    String format = sdf.format(nckdTzsxsj);
+                    desc.append("自").append(format).append("起");
+
+                    DynamicObjectCollection nckdTjdetailentry = entry.getDynamicObjectCollection("nckd_tjdetailentry");
+
+                    List<String> daicount=new ArrayList<String>();
+                    List<String> sancount=new ArrayList<String>();
+                    for (DynamicObject tjdetailentry : nckdTjdetailentry) {
+                        DynamicObject nckdMaterialhang = tjdetailentry.getDynamicObject("nckd_materialhang");
+                        String name = nckdMaterialhang.getString("name");
+                        if (name.contains("袋装")){
+                            daicount.add(name);
+                        }else if (name.contains("散装")){
+                            sancount.add(name);
+                        }
+                    }
+
+                    String materialStr="对";
+                    if (!daicount.isEmpty()){
+                        if (daicount.size()==dai.size()){
+                            materialStr=materialStr+"全部袋装";
+                        }else {
+                            materialStr=  materialStr+String.join("、",daicount);
+                        }
+                    }
+
+                    if (!sancount.isEmpty()){
+                        if (sancount.size()==san.size()){
+                            materialStr=materialStr+",全部散装";
+                        }else {
+                            materialStr=  materialStr+String.join("、",sancount);
+                        }
+                    }
+
+                    desc.append(materialStr).append("等物料");
+
+                    String nckdTiaojiatype = entry.getString("nckd_tiaojiatype");
+                    if (StringUtils.equals("S",nckdTiaojiatype)){
+                        desc.append("价格调增");
+                    } else if (StringUtils.equals("X",nckdTiaojiatype)) {
+                        desc.append("价格调减");
+                    }
+                    BigDecimal nckdTiaozjiage = entry.getBigDecimal("nckd_tiaozjiage");
+                    desc.append(nckdTiaozjiage.setScale(2)).append("元。");
+                    StringBuilder lwsr=new StringBuilder();
+                    DynamicObjectCollection nckdSubentryentity = entry.getDynamicObjectCollection("nckd_subentryentity");
+                    for (DynamicObject subentryItem : nckdSubentryentity) {
+                        DynamicObject xQuyus = subentryItem.getDynamicObject("nckd_xqys_d");
+                        if(null != xQuyus){
+                            lwsr.append(xQuyus.getString("name")).append("小区域");
+                        }
+
+                        DynamicObject saletype = subentryItem.getDynamicObject("nckd_saletypes_d");
+                        if(null != saletype){
+                            lwsr.append(saletype.getString("name")).append("销售类型");
+                        }
+
+                        DynamicObject customer = subentryItem.getDynamicObject("nckd_customer");
+                        if(null != customer){
+                            lwsr.append(customer.getString("name")).append("客户");
+                        }
+                        lwsr.append("不调整");
+                    }
+                    desc.append(lwsr);
+                    entry.set("nckd_desc",desc.toString()+"。");
+                }
+
+            }
+
+        }
+    }
+
+    @Override
+    public void beforeExecuteOperationTransaction(BeforeOperationArgs e) {
+        super.beforeExecuteOperationTransaction(e);
+    }
+
+    @Override
+    public void endOperationTransaction(EndOperationTransactionArgs e) {
+        super.endOperationTransaction(e);
+    }
+
+    @Override
+    public void afterExecuteOperationTransaction(AfterOperationArgs e) {
+        super.afterExecuteOperationTransaction(e);
+    }
+}