Kaynağa Gözat

价格批量调整

Boil 4 hafta önce
ebeveyn
işleme
6200d357a0

+ 162 - 57
code/wnq/nckd-wnq01-wnq-scm/src/main/java/nckd/wnq01/wnq/scm/plugin/form/BatchPriceAdjBaseEditPlugin.java

@@ -6,7 +6,9 @@ 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.ChangeData;
 import kd.bos.entity.datamodel.events.PropertyChangedArgs;
+import kd.bos.form.IFormView;
 import kd.bos.form.ShowType;
 import kd.bos.form.cardentry.CardEntry;
 import kd.bos.form.control.Control;
@@ -40,45 +42,77 @@ public class BatchPriceAdjBaseEditPlugin extends AbstractBillPlugIn implements P
     @Override
     public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
         String name = beforeF7SelectEvent.getProperty().getName();
+
+        switch (name) {
+            case "nckd_xqys_d":
+                beforeSelectF7Xqysd(beforeF7SelectEvent);
+                break;
+            case "nckd_customer":
+                beforeSelectF7Customer(beforeF7SelectEvent);
+                break;
+            case "nckd_saletypes_d":
+                beforeSelectF7SaleTypes(beforeF7SelectEvent);
+                break;
+
+        }
+    }
+
+    private void beforeSelectF7SaleTypes(BeforeF7SelectEvent beforeF7SelectEvent) {
         EntryGrid putentry = this.getView().getControl("nckd_putentry");
         int[] selectRows = putentry.getSelectRows();
-        DynamicObject entry = this.getView().getModel().getEntryRowEntity("nckd_putentry",selectRows[0]);
+        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()));
-                }
+        DynamicObjectCollection nckdSaletypes = entry.getDynamicObjectCollection("nckd_saletypes");
+        if (!nckdSaletypes.isEmpty()) {
+            List<Object> fbasedataids = nckdSaletypes.stream().map(x -> x.getDynamicObject("fbasedataid").getPkValue()).collect(Collectors.toList());
+            qFilters.add(new QFilter("id", QCP.in, fbasedataids));
+        }
 
-                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":
+        if (!qFilters.isEmpty())
+            formShowParameter.getListFilterParameter().setQFilters(qFilters);
+    }
 
 
+    private void beforeSelectF7Customer(BeforeF7SelectEvent beforeF7SelectEvent) {
+        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<>();
+        DynamicObjectCollection nckd_subentryentity = entry.getDynamicObjectCollection("nckd_subentryentity");
+        DynamicObject subentry = nckd_subentryentity.get(beforeF7SelectEvent.getRow());
+        DynamicObject nckdXqysD = subentry.getDynamicObject("nckd_xqys_d");
+        DynamicObject fkNckdSaletypesD = subentry.getDynamicObject("nckd_saletypes_d");
+        if (null != nckdXqysD) {
+            qFilters.add(new QFilter("nckd_xqy", QCP.equals, nckdXqysD.getPkValue()));
+        }
 
-                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);
+    }
 
-                if(null != fkNckdSaletypesD){
-                    qFilters.add(new QFilter("nckd_xslb", QCP.equals, fkNckdSaletypesD.getPkValue()));
-                }
-                if (!qFilters.isEmpty())
-                    formShowParameter.getListFilterParameter().setQFilters(qFilters);
-                break;
+    private void beforeSelectF7Xqysd(BeforeF7SelectEvent beforeF7SelectEvent) {
+        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<>();
+        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.in, fbasedataids));
         }
+        if (!qFilters.isEmpty())
+            formShowParameter.getListFilterParameter().setQFilters(qFilters);
     }
 
     @Override
@@ -87,7 +121,7 @@ public class BatchPriceAdjBaseEditPlugin extends AbstractBillPlugIn implements P
 
         Control tripEntry = this.getControl("nckd_putentry");
         if (tripEntry instanceof CardEntry) {
-            ((CardEntry)tripEntry).addRowClickListener(this);
+            ((CardEntry) tripEntry).addRowClickListener(this);
         }
         Toolbar toolbar = this.getView().getControl("nckd_advcontoolbarap1");
         toolbar.addItemClickListener(this);
@@ -96,25 +130,33 @@ public class BatchPriceAdjBaseEditPlugin extends AbstractBillPlugIn implements P
         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");
+        this.addClickListeners(new String[]{"nckd_alldai", "nckd_allsan", "nckd_updatetripentry", "nckd_cardentryflexpanel12", "nckd_addtjlabel1", "nckd_addptentry"});
+        this.addItemClickListeners("nckd_alldai", "nckd_allsan");
+
+        BasedataEdit nckd_xqys_d = this.getControl("nckd_xqys_d");
+        nckd_xqys_d.addBeforeF7SelectListener(this);
+
+        BasedataEdit nckd_saletypes_d = this.getControl("nckd_saletypes_d");
+        nckd_saletypes_d.addBeforeF7SelectListener(this);
 
+        BasedataEdit nckd_customer = this.getControl("nckd_customer");
+        nckd_customer.addBeforeF7SelectListener(this);
     }
 
 
     @Override
     public void beforeItemClick(BeforeItemClickEvent evt) {
         super.beforeItemClick(evt);
-        Control source = (Control)evt.getSource();
+        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())){
+                || 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){
+            if (selectRows == null || selectRows.length < 1) {
                 this.getView().showErrorNotification("请先选择一个普调分录");
                 evt.setCancel(true);
             }
@@ -143,7 +185,7 @@ public class BatchPriceAdjBaseEditPlugin extends AbstractBillPlugIn implements P
     @Override
     public void click(EventObject evt) {
         super.click(evt);
-        String key = ((Control)evt.getSource()).getKey();
+        String key = ((Control) evt.getSource()).getKey();
         //String entityId = this.getView().getEntityId();
         IDataModel model = this.getModel();
         //DynamicObject dataEntity = model.getDataEntity();
@@ -168,34 +210,34 @@ public class BatchPriceAdjBaseEditPlugin extends AbstractBillPlugIn implements P
     }
 
     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){
+        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){
+            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_materialhang", material);
 
-                    subentry.set("nckd_cbj",material.getBigDecimal("nckd_decimalfield1"));
-                    BigDecimal nckdDecimalfield = null==material.getBigDecimal("nckd_decimalfield") ? BigDecimal.ZERO : material.getBigDecimal("nckd_decimalfield") ;
+                    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);
+                    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);
+                    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");
                 }
 
@@ -206,7 +248,70 @@ public class BatchPriceAdjBaseEditPlugin extends AbstractBillPlugIn implements P
     @Override
     public void propertyChanged(PropertyChangedArgs e) {
         super.propertyChanged(e);
+        String name = e.getProperty().getName();
+        ChangeData[] changeSet = e.getChangeSet();
+        ChangeData changeData = changeSet[0];
+        Object newValue = changeData.getNewValue();
+        int rowIndex = changeData.getRowIndex();
+        int parentRowIndex = changeData.getParentRowIndex();
+        IFormView view = this.getView();
+        IDataModel model = view.getModel();
+        if (StringUtils.equals("nckd_materiel_t", name) || StringUtils.equals("nckd_tiaojiatyped_t", name) || StringUtils.equals("nckd_tiaojiafudu_t", name)) {
+
+            Object nckdTiaojiatypedT = model.getValue("nckd_tiaojiatyped_t", rowIndex);
+            Object nckdTiaojiafuduT = model.getValue("nckd_tiaojiafudu_t", rowIndex);
+            Object nckdMaterielT = model.getValue("nckd_materiel_t", rowIndex);
+            if (nckdTiaojiatypedT != null && nckdTiaojiafuduT != null && nckdMaterielT != null) {
+                DynamicObject material = BusinessDataServiceHelper.loadSingleFromCache(((DynamicObject) nckdMaterielT).getPkValue(), ((DynamicObject) nckdMaterielT).getDynamicObjectType().getName());
+                model.setValue("nckd_cbj_t", material.getBigDecimal("nckd_decimalfield1"), rowIndex);
+                BigDecimal nckdDecimalfield = null == material.getBigDecimal("nckd_decimalfield") ? BigDecimal.ZERO : material.getBigDecimal("nckd_decimalfield");
+                BigDecimal tiaozjiage = (BigDecimal) nckdTiaojiafuduT;
+                String nckdTiaojiatype = (String) nckdTiaojiatypedT;
+                BigDecimal newprice = null;
+                if (StringUtils.equals("S", nckdTiaojiatype)) {
+                    newprice = nckdDecimalfield.add(tiaozjiage);
+                } else if (StringUtils.equals("X", nckdTiaojiatype)) {
+                    newprice = nckdDecimalfield.subtract(tiaozjiage);
+                }
+                view.getModel().beginInit();
+                model.setValue("nckd_tiaojiafudu_t", tiaozjiage, rowIndex);
+                model.setValue("nckd_tiaojiatyped_t", nckdTiaojiatype, rowIndex);
+                model.setValue("nckd_yuanprice_t", nckdDecimalfield, rowIndex);
+                view.getModel().endInit();
+                model.setValue("nckd_newprice_t", newprice, rowIndex);
+                view.updateView("entryentity");
+
+            }
+        }
+        if (StringUtils.equals("nckd_materialhang", name) && null != newValue) {
+            DynamicObjectCollection entity = this.getModel().getEntryEntity("nckd_putentry");
+            DynamicObject entry = entity.get(parentRowIndex);
+            DynamicObjectCollection nckdTjdetailentry = entry.getDynamicObjectCollection("nckd_tjdetailentry");
+            DynamicObject material = BusinessDataServiceHelper.loadSingleFromCache(((DynamicObject) newValue).getPkValue(), ((DynamicObject) newValue).getDynamicObjectType().getName());
+            DynamicObject subentry = nckdTjdetailentry.get(rowIndex);
+
+            this.getView().getModel().beginInit();
+            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");
+
     }
+}
+
+
 
     @Override
     public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) {

+ 37 - 5
code/wnq/nckd-wnq01-wnq-scm/src/main/java/nckd/wnq01/wnq/scm/plugin/form/BatchPriceAdjMobEditPlugin.java

@@ -27,6 +27,7 @@ import java.util.*;
  */
 public class BatchPriceAdjMobEditPlugin extends AbstractMobBillPlugIn implements ClickListener, RowClickEventListener,Plugin {
     public static final String NCKD_PUTENTRY = "nckd_putentry";
+    public static final String ENTRYENTITY = "entryentity";
     protected IPageCache pageCache;
 
     @Override
@@ -39,6 +40,9 @@ public class BatchPriceAdjMobEditPlugin extends AbstractMobBillPlugIn implements
         super.registerListener(e);
         AbstractGrid tripgrid = this.getView().getControl(NCKD_PUTENTRY);
         tripgrid.addRowClickListener(this);
+
+        AbstractGrid entryentityGrid = this.getView().getControl(ENTRYENTITY);
+        entryentityGrid.addRowClickListener(this);
     }
 
 
@@ -48,16 +52,18 @@ public class BatchPriceAdjMobEditPlugin extends AbstractMobBillPlugIn implements
         switch (source.getKey()) {
             case NCKD_PUTENTRY:
                 this.chooosePutEntryRow();
+            case ENTRYENTITY:
+                this.choooseTstjEntryRow();
             default:
         }
     }
 
-    private void chooosePutEntryRow() {
+    private void choooseTstjEntryRow() {
         this.setAllPriceInfoId();
-        AbstractGrid grid = this.getView().getControl(NCKD_PUTENTRY);
+        AbstractGrid grid = this.getView().getControl(ENTRYENTITY);
         int index = grid.getEntryState().getFocusRow();
         MobileBillShowParameter showParameter = new MobileBillShowParameter();
-        showParameter.setFormId(this.getPutEntryEditForm());
+        showParameter.setFormId(this.getTstjEntryEditForm());
         Map<String, Object> mapCustomParam = new HashMap();
         mapCustomParam.put("index", index);
         mapCustomParam.put("status", 1);
@@ -72,6 +78,28 @@ public class BatchPriceAdjMobEditPlugin extends AbstractMobBillPlugIn implements
         showParameter.setCloseCallBack(new CloseCallBack(this, showParameter.getFormId()));
         //Object[] parma = new Object[]{this.getView(), this.getModel(), showParameter, mapCustomParam};
 
+        this.getView().showForm(showParameter);
+    }
+
+    private void chooosePutEntryRow() {
+        AbstractGrid grid = this.getView().getControl(ENTRYENTITY);
+        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("viewTstjEntryIndex", 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);
 
     }
@@ -80,12 +108,16 @@ public class BatchPriceAdjMobEditPlugin extends AbstractMobBillPlugIn implements
         return "nckd_puentry_mb";
     }
 
+    private String getTstjEntryEditForm() {
+        return "nckd_tstjentry_mb";
+    }
+
     private void setAllPriceInfoId() {
         DynamicObjectCollection ptEntry = this.getModel().getEntryEntity(NCKD_PUTENTRY);
-        ptEntry.stream().forEach((puentryItem) -> {
+        ptEntry.forEach((puentryItem) -> {
             this.setAndGetSelectedRowEntryId(puentryItem);
             DynamicObjectCollection expenseEntry = puentryItem.getDynamicObjectCollection("nckd_tjdetailentry");
-            expenseEntry.stream().forEach((tjdetailentry) -> this.setAndGetSelectedRowEntryId(tjdetailentry));
+            expenseEntry.forEach(this::setAndGetSelectedRowEntryId);
         });
         this.getModel().setValue(NCKD_PUTENTRY, ptEntry);
     }

+ 76 - 0
code/wnq/nckd-wnq01-wnq-scm/src/main/java/nckd/wnq01/wnq/scm/plugin/form/TstjEntryMobEditPlugin.java

@@ -0,0 +1,76 @@
+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.fi.er.business.servicehelper.CoreBaseBillServiceHelper;
+import kd.fi.er.formplugin.util.EntryCopyUtil;
+import kd.sdk.plugin.Plugin;
+
+import java.util.EventObject;
+import java.util.Map;
+
+/**
+ * 单据界面插件(移动端)
+ */
+public class TstjEntryMobEditPlugin 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("entryentity");
+        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("entryentity");
+            trip.clear();
+            EntryCopyUtil.copyEntry2TargetColl(trip, viewTrip);
+        }
+
+    }
+
+}

+ 149 - 101
code/wnq/nckd-wnq01-wnq-scm/src/main/java/nckd/wnq01/wnq/scm/plugin/operate/BatchPriceAdjOpPlugin.java

@@ -45,111 +45,159 @@ public class BatchPriceAdjOpPlugin extends AbstractOperationServicePlugIn implem
             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()+"。");
+                joinPtDesc(bill, dai, san);
+                joinTstjDesc(bill);
+            }
+
+        }
+    }
+
+    private void joinTstjDesc(DynamicObject bill) {
+        DynamicObjectCollection nckdTstjentry = bill.getDynamicObjectCollection("entryentity");
+        for (DynamicObject entry : nckdTstjentry) {
+            StringBuilder desc= new StringBuilder();
+
+            DynamicObject nckdQuyus = entry.getDynamicObject("nckd_quyus_t");
+            if(null != nckdQuyus){
+                desc.append(nckdQuyus.getString("name")).append("区域");
+            }
+            DynamicObject nckdXqysT = entry.getDynamicObject("nckd_xqys_t");
+            if(null != nckdXqysT){
+                desc.append(nckdXqysT.getString("name")).append("小区域");
+            }
+            DynamicObject nckdSaletypes = entry.getDynamicObject("nckd_saletypes_t");
+            if(null != nckdSaletypes){
+                desc.append(nckdSaletypes.getString("name")).append("销售类别");
+            }
+            DynamicObject nckdTjjdT = entry.getDynamicObject("nckd_tjjd_t");
+            if(null != nckdTjjdT){
+                desc.append(nckdTjjdT.getString("name")).append("调价基地");
+            }
+
+            DynamicObject nckdCustomerT = entry.getDynamicObject("nckd_customer_t");
+            if(null != nckdCustomerT){
+                desc.append(nckdCustomerT.getString("name")).append("客户");
+            }
+
+            DynamicObject nckdMaterielT = entry.getDynamicObject("nckd_materiel_t");
+            if(null != nckdMaterielT){
+                desc.append("对").append(nckdCustomerT.getString("name")).append("物料");
+            }
+
+            String nckdTiaojiatype = entry.getString("nckd_tiaojiatyped_t");
+            if (StringUtils.equals("S",nckdTiaojiatype)){
+                desc.append("价格调增");
+            } else if (StringUtils.equals("X",nckdTiaojiatype)) {
+                desc.append("价格调减");
+            }
+            BigDecimal nckdTiaozjiage = entry.getBigDecimal("nckd_tiaojiafudu_t");
+            desc.append(nckdTiaozjiage.setScale(2)).append("元。");
+            entry.set("nckd_desc_t",desc+"。");
+        }
+    }
+
+    private void joinPtDesc(DynamicObject bill, List<DynamicObject> dai, List<DynamicObject> san) {
+        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()+"。");
         }
     }