فهرست منبع

Merge remote-tracking branch 'origin/master'

徐昊 8 ماه پیش
والد
کامیت
09a4c06a16

+ 350 - 0
src/main/java/fi/fa/opplugin/AssetMidBillOpPlugin.java

@@ -0,0 +1,350 @@
+package fi.fa.opplugin;
+
+import com.alibaba.druid.util.StringUtils;
+import kd.bos.dataentity.OperateOption;
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.dataentity.entity.DynamicObjectCollection;
+import kd.bos.entity.operate.result.OperationResult;
+import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
+import kd.bos.entity.plugin.args.BeginOperationTransactionArgs;
+import kd.bos.exception.KDBizException;
+import kd.bos.orm.query.QCP;
+import kd.bos.orm.query.QFilter;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
+import kd.bos.servicehelper.operation.OperationServiceHelper;
+import kd.bos.servicehelper.operation.SaveServiceHelper;
+import org.apache.commons.lang3.ObjectUtils;
+import java.util.ArrayList;
+import java.util.List;
+
+public class AssetMidBillOpPlugin extends AbstractOperationServicePlugIn {
+    @Override
+    public void beginOperationTransaction(BeginOperationTransactionArgs e) {
+        super.beginOperationTransaction(e);
+        DynamicObject[] dynamicObjects = e.getDataEntities();
+        for (int i = 0; i < dynamicObjects.length; i++) {
+            if (StringUtils.equals(e.getOperationKey(), "push")) {
+                DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
+                String nckd_flag = info.getString("nckd_flag");
+                if ("1".equals(nckd_flag)) {
+                    throw new KDBizException("单据" + info.getString("number") + "已经下推生成了资产调拨单,不允许重复下推!");
+                }else {
+                    String dispatchType = info.getString("nckd_dispatch_type");
+                    String direction = info.getString("nckd_direction");
+                    String nckd_card_real_code = info.getString("nckd_card_number_tag");
+                    String[] asset = nckd_card_real_code.split(",");
+                    // 存储键的数组
+                    String[] keys = new String[asset.length];
+                    List<String> number = new ArrayList<>();
+                    List<String> cardNumber = new ArrayList<>();
+                    // 遍历每个键值对并获取键
+                    for (int j = 0; j < asset.length; j++) {
+                        String[] keyValue = asset[j].split(":");
+                        if (keyValue.length > 0) {
+                            number.add(keyValue[0]);
+                        }
+                    }
+                    //查询e管家实物卡片清单
+                    QFilter cardFilter = new QFilter("number", QCP.in,number);
+                    DynamicObject[] eCard = BusinessDataServiceHelper.load("nckd_fa_card_real_list","nckd_card_real_code",new QFilter[] {cardFilter});
+                    for (DynamicObject object : eCard) {
+                        cardNumber.add(object.getString("nckd_card_real_code"));
+                    }
+                    if ("0".equals(dispatchType)) {
+                        List<String> list = new ArrayList<>();
+                        list.add("A00100101900240600002");
+                        list.add("A00100101900240600008");
+                        QFilter filter = new QFilter("number", QCP.in,"A00100101900240600002");
+                        filter.and("isbak",  QCP.equals, "0");
+                        DynamicObject[] card = BusinessDataServiceHelper.load("fa_card_real","id",new QFilter[] {filter});
+//                        if (asset.length == card.length) {
+                            DynamicObject dispatch = BusinessDataServiceHelper.newDynamicObject("fa_dispatch");
+                            //单据头
+                            dispatch.set("dispatchdate", info.getDate("nckd_date_out"));//调出日期
+                            dispatch.set("assetunit", getOrg(info.getString("nckd_org_out")));//调出组织
+                            dispatch.set("inassetunit", getOrg(info.getString("nckd_org_in")));//调入组织
+                            dispatch.set("org", getOrg(info.getString("nckd_org_out")));//调出核算组织
+                            dispatch.set("inorg", getOrg(info.getString("nckd_org_in")));//调入核算组织
+                            dispatch.set("reason", info.getString("nckd_reason"));//调出原因
+                            dispatch.set("dispatchtype", "A");//调拨类型 A="平价调拨",B="非平价调拨"
+                            dispatch.set("changemode", 14);//减少方式默认"调出"
+                            dispatch.set("currency", 1);//币种
+                            dispatch.set("currencyrate", 1);//结算汇率
+                            //制单信息
+                            dispatch.set("billstatus", "A");//暂存
+                        //调出方向
+                        if("0".equals(direction)){
+                            dispatch.set("outuser", getUser(info.getString("nckd_user_out")));//调出申请人
+                            dispatch.set("inuser", getUser(info.getString("nckd_user_in")));//调入负责人
+                            dispatch.set("creator", getUser(info.getString("nckd_user_out")));//创建人
+                            dispatch.set("modifier", getUser(info.getString("nckd_user_out")));//修改人
+                            dispatch.set("auditor", getUser(info.getString("nckd_user_out")));//审核人
+                            dispatch.set("appliant", getUser(info.getString("nckd_user_out")));//调拨申请人
+                        }//调入方向
+                        else if ("1".equals(direction)) {
+                            dispatch.set("outuser", getUser(info.getString("nckd_user_in")));//调出申请人
+                            dispatch.set("inuser", getUser(info.getString("nckd_user_out")));//调入负责人
+                            dispatch.set("creator", getUser(info.getString("nckd_user_in")));//创建人
+                            dispatch.set("modifier", getUser(info.getString("nckd_user_in")));//修改人
+                            dispatch.set("auditor", getUser(info.getString("nckd_user_in")));//审核人
+                            dispatch.set("appliant", getUser(info.getString("nckd_user_in")));//调拨申请人
+                        }
+                            for (int c = 0; c < card.length; c++) {
+                                DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(card[c].getPkValue(), card[c].getDynamicObjectType().getName());
+                                //创建调出单分录
+                                DynamicObjectCollection entryEntity = dispatch.getDynamicObjectCollection("dispatchentry");
+                                DynamicObject entry1 = entryEntity.addNew();
+                                entry1.set("realcard", cardInfo);//资产编码
+                                entry1.set("measurement", cardInfo.getDynamicObject("unit").getLong("id"));//计量单位
+                                entry1.set("dispatchqty", cardInfo.getInt("assetamount"));//数量
+                                entry1.set("inusedept", getOrg(info.getString("nckd_dept_in")));//调入使用部门
+                            }
+                            //执行保存-提交-审核
+                            OperationResult saveResult = SaveServiceHelper.saveOperate("fa_dispatch", new DynamicObject[]{dispatch}, OperateOption.create());
+                            if (saveResult.isSuccess()){
+                                info.set("nckd_flag", "1");
+                                SaveServiceHelper.save(new DynamicObject[]{info});
+                                this.operationResult.setSuccess(true);
+                                this.operationResult.setMessage("下推资产调出单成功");
+                                this.operationResult.setShowMessage(true);
+                                OperationResult submitResult = OperationServiceHelper.executeOperate("submit", "fa_dispatch",saveResult.getSuccessPkIds().toArray(),OperateOption.create());
+                                OperationResult auditResult = OperationServiceHelper.executeOperate("audit", "fa_dispatch",submitResult.getSuccessPkIds().toArray(),OperateOption.create());
+                            }else {
+                                this.operationResult.setShowMessage(true);
+                                this.operationResult.setSuccess(false);
+                                this.operationResult.setMessage("下推资产调出单单失败");
+                            }
+
+//                        }else {
+//                            throw new KDBizException("请先拆分实物卡片再下推生单!");
+//                        }
+
+                    }else if ("1".equals(dispatchType)) {
+                        DynamicObject changeDept = BusinessDataServiceHelper.newDynamicObject("fa_change_dept");
+                        //单据头
+                        DynamicObject orgInfo = queryOrg(getOrg(info.getString("nckd_org_in")));
+                        changeDept.set("org", orgInfo);//核算组织
+                        changeDept.set("changedate", info.getDate("nckd_date_out"));//记账日期
+                        changeDept.set("appliantid", getUser(info.getString("nckd_user_out")));//变更申请人
+                        changeDept.set("remark", info.getString("nckd_reason"));//调出原因
+                        changeDept.set("sourcetype", 2);//来源方式(5:API生成)
+                        changeDept.set("changetype", queryChangeType(Long.parseLong("733953285719123968")));//变更类型,默认部门变更
+                        changeDept.set("chtypedetail", "1");//变更类型明细默认实物变更1
+                        changeDept.set("voucherflag", "A");//记账标识默认无需记账A
+                        changeDept.set("billstatus", "A");//暂存
+                        QFilter filter = new QFilter("number", QCP.in,"A00100101900240600007");
+                        filter.and("isbak",  QCP.equals, "0");
+                        DynamicObject[] card = BusinessDataServiceHelper.load("fa_card_real","id",new QFilter[] {filter});
+                        for (int c = 0; c < card.length; c++) {
+                            DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(card[c].getPkValue(), card[c].getDynamicObjectType().getName());
+                            //查询财务卡片
+                            DynamicObject fin = queryFinCard(cardInfo.getLong("id"));//财务卡片id
+                            //创建变更字段分录
+                            DynamicObjectCollection fieldentry = changeDept.getDynamicObjectCollection("fieldentry");
+                            if (!getOrg(info.getString("nckd_org_in")).equals(cardInfo.getDynamicObject("headusedept").getLong("id"))){
+                                DynamicObject entry1 = fieldentry.addNew();
+                                entry1.set("realcard1", cardInfo);//资产编码
+                                entry1.set("depreuse1", queryDepreuse(Long.parseLong("418714318096331776")));//折旧用途默认
+                                entry1.set("currency1", 1);//币别
+                                entry1.set("basecurrency1", 1);//本币位
+                                entry1.set("assetnumber",cardInfo.getString("number"));//资产编码
+                                entry1.set("bizdate1", info.getDate("nckd_date_out"));//业务日期
+                                entry1.set("field", "fa_card_real.headusedept");//变更字段-部门
+                                entry1.set("beforevalue", String.valueOf(cardInfo.getDynamicObject("headusedept").getLong("id")));//变更前值
+                                entry1.set("aftervalue", getOrg(info.getString("nckd_dept_in")).toString());//变更后值
+                                entry1.set("realcardmasterid", cardInfo);//实物卡片id
+                                entry1.set("fincard1", fin);//财务卡片
+                            }
+                            if (ObjectUtils.isEmpty(cardInfo.getDynamicObject("headuseperson")) ||
+                                    ObjectUtils.isNotEmpty(cardInfo.getDynamicObject("headuseperson")) && !getUser(info.getString("nckd_used_user")).equals(cardInfo.getDynamicObject("headuseperson").getLong("id"))) {
+                                String beforevalue = cardInfo.getDynamicObject("headuseperson") == null ? "" : String.valueOf(cardInfo.getDynamicObject("headuseperson").getLong("id"));
+                                DynamicObject entry2 = fieldentry.addNew();
+                                entry2.set("realcard1", cardInfo);//资产编码
+                                entry2.set("depreuse1", queryDepreuse(Long.parseLong("418714318096331776")));//折旧用途默认
+                                entry2.set("currency1", 1);//币别
+                                entry2.set("basecurrency1", 1);//本币位
+                                entry2.set("assetnumber",cardInfo.getString("number"));//资产编码
+                                entry2.set("bizdate1", info.getDate("nckd_date_out"));//业务日期
+                                entry2.set("field", "fa_card_real.headuseperson");//变更字段-使用人
+                                entry2.set("beforevalue", beforevalue);//变更前值
+                                entry2.set("aftervalue", String.valueOf(getUser(info.getString("nckd_used_user")).getLong("id")));//变更后值
+                                entry2.set("realcardmasterid", cardInfo);//实物卡片id
+                                entry2.set("fincard1", fin);//财务卡片
+                            }
+
+                            //创建实物变更分录
+                            DynamicObjectCollection realentry = changeDept.getDynamicObjectCollection("realentry");
+                            DynamicObject realentry1 = realentry.addNew();
+                            realentry1.set("realcard", cardInfo.getLong("id"));//资产编码
+
+                            //创建财务变更分录
+                            DynamicObjectCollection finentry = realentry1.getDynamicObjectCollection("finentry");
+                            DynamicObject finentry1 = finentry.addNew();
+                            finentry1.set("depreuse", queryDepreuse(Long.parseLong("418714318096331776")));//折旧用途默认
+                            finentry1.set("fincard", fin);
+                            finentry1.set("bizdate", info.getDate("nckd_date_out"));
+
+                        }
+                        //执行保存-提交-审核
+                        OperationResult saveResult = SaveServiceHelper.saveOperate("fa_change_dept", new DynamicObject[]{changeDept}, OperateOption.create());
+                        if (saveResult.isSuccess()) {
+                            info.set("nckd_flag", "1");
+                            SaveServiceHelper.save(new DynamicObject[]{info});
+                            this.operationResult.setShowMessage(true);
+                            this.operationResult.setSuccess(true);
+                            this.operationResult.setMessage("下推资产变更单成功");
+                            OperationResult submitResult = OperationServiceHelper.executeOperate("submit", "fa_change_dept",saveResult.getSuccessPkIds().toArray(),OperateOption.create());
+                            OperationResult auditResult = OperationServiceHelper.executeOperate("audit", "fa_change_dept",submitResult.getSuccessPkIds().toArray(),OperateOption.create());
+                        }else {
+                            this.operationResult.setShowMessage(true);
+                            this.operationResult.setSuccess(false);
+                            this.operationResult.setMessage("下推资产变更单失败");
+                        }
+                    }
+                    else if ("2".equals(dispatchType)) {
+                        DynamicObject busProcess = BusinessDataServiceHelper.newDynamicObject("nckd_ywcld");
+                        busProcess.set("nckd_bizdate", info.getDate("nckd_date_out"));//业务日期
+                        busProcess.set("nckd_detailtype", "D");//业务类型 D:报废
+                        busProcess.set("nckd_costcompany", getOrg(info.getString("nckd_org_in")));//资产组织
+                        busProcess.set("nckd_textfield1", info.getString("nckd_reason"));//摘要事由
+                        busProcess.set("nckd_applierv", getUser(info.getString("nckd_user_out")));//制单人
+
+                        //制单信息
+                        busProcess.set("creator", getUser(info.getString("nckd_user_out")));//创建人
+                        busProcess.set("createtime", info.getDate("nckd_date_out"));//创建时间
+                        busProcess.set("modifier", getUser(info.getString("nckd_user_out")));//修改人
+                        busProcess.set("modifytime", info.getDate("nckd_date_out"));//修改时间
+                        busProcess.set("auditor", getUser(info.getString("nckd_user_out")));//审核人
+                        busProcess.set("auditdate", info.getDate("nckd_date_out"));//审核时间
+                        busProcess.set("billstatus", "A");//状态
+                        QFilter filter = new QFilter("number", QCP.equals,"A00100101900240700007");
+                        cardFilter.and("isbak",  QCP.equals, "0");
+                        DynamicObject[] card = BusinessDataServiceHelper.load("fa_card_real","id",new QFilter[] {filter});
+                        for (int c = 0; c < card.length; c++) {
+                            DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(card[c].getPkValue(), card[c].getDynamicObjectType().getName());
+                            //创建报废明细分录
+                            DynamicObjectCollection entryEntity = busProcess.getDynamicObjectCollection("nckd_entryentity6");
+                            DynamicObject entry1 = entryEntity.addNew();
+                            entry1.set("nckd_basedatafield", cardInfo);//资产编码
+                            Integer count = Integer.valueOf(info.getString("nckd_count"));
+                            entry1.set("nckd_integerfield", count);//报废数量
+                        }
+                        //执行保存-提交-审核
+                        OperationResult saveResult = SaveServiceHelper.saveOperate("nckd_ywcld", new DynamicObject[]{busProcess}, OperateOption.create());
+                        if (saveResult.isSuccess()){
+                            info.set("nckd_flag", "1");
+                            SaveServiceHelper.save(new DynamicObject[]{info});
+                            this.operationResult.setShowMessage(true);
+                            this.operationResult.setSuccess(true);
+                            this.operationResult.setMessage("下推业务处理单成功");
+                            OperationResult submitResult = OperationServiceHelper.executeOperate("submit", "nckd_ywcld",saveResult.getSuccessPkIds().toArray(),OperateOption.create());
+                            OperationResult auditResult = OperationServiceHelper.executeOperate("audit", "nckd_ywcld",submitResult.getSuccessPkIds().toArray(),OperateOption.create());
+                        }else {
+                            this.operationResult.setShowMessage(true);
+                            this.operationResult.setSuccess(false);
+                            this.operationResult.setMessage("下推业务处理单失败");
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * @description 查询用户表获取用户
+     * @param eUser
+     * @return Long
+     */
+    private DynamicObject getUser(String eUser) {
+        QFilter filter = new QFilter("number", QCP.in, eUser);
+        DynamicObject[] user = BusinessDataServiceHelper.load("bos_user","id",new QFilter[] {filter});
+        if (user.length > 0) {
+            DynamicObject userInfo = BusinessDataServiceHelper.loadSingle(user[0].getPkValue(), user[0].getDynamicObjectType().getName());
+            return userInfo;
+        }
+        return null;
+    }
+
+    /**
+     * @description 查询组织对照表获取组织id
+     * @param eOrgId
+     * @return Long
+     */
+    private Long getOrg(String eOrgId) {
+        QFilter orgFilter = new QFilter("nckd_e_org", QCP.equals,eOrgId);
+        DynamicObject[] orgControl = BusinessDataServiceHelper.load("nckd_base_org_ext","id",new QFilter[] {orgFilter});
+        if (orgControl.length > 0) {
+            DynamicObject orgControlInfo = BusinessDataServiceHelper.loadSingle(orgControl[0].getPkValue(), orgControl[0].getDynamicObjectType().getName());
+            Long orgId = Long.parseLong(orgControlInfo.getString("nckd_org_number"));
+            return orgId;
+        }//组织对照表查询不到,查询组织表
+        else {
+            if (StringUtils.isEmpty(eOrgId)) {
+                return null;
+            }
+            QFilter filter = new QFilter("id", QCP.equals,Long.parseLong(eOrgId));
+            DynamicObject[] org = BusinessDataServiceHelper.load("bos_org","id",new QFilter[] {filter});
+            if (org.length > 0) {
+                DynamicObject orgInfo = BusinessDataServiceHelper.loadSingle(org[0].getPkValue(), org[0].getDynamicObjectType().getName());
+                return orgInfo.getLong("id");
+            }
+            return null;
+        }
+    }
+
+    /**
+     * @description 查询财务卡片
+     * @param realCardId
+     */
+    private DynamicObject queryFinCard(Long realCardId) {
+        QFilter cardFilter = new QFilter("realcardmasterid", QCP.equals,realCardId);
+        DynamicObject[] card = BusinessDataServiceHelper.load("fa_card_fin","id",new QFilter[] {cardFilter});
+        for (int c = 0; c < card.length; c++) {
+            DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(card[c].getPkValue(), card[c].getDynamicObjectType().getName());
+            return cardInfo;
+        }
+        return null;
+    }
+
+    /**
+     * @description 查询折旧用途
+     * @param id
+     */
+    private DynamicObject queryDepreuse(Long id) {
+        QFilter orgQFilter= new QFilter("id", QCP.equals,id);
+        DynamicObject[] depreuse = BusinessDataServiceHelper.load("fa_depreuse","id",new QFilter[] {orgQFilter});
+        for (int c = 0; c < depreuse.length; c++) {
+            DynamicObject depreuseInfo = BusinessDataServiceHelper.loadSingle(depreuse[c].getPkValue(), depreuse[c].getDynamicObjectType().getName());
+            return depreuseInfo;
+        }
+        return null;
+    }
+
+    /**
+     * @description 查询变更类型
+     * @param id
+     */
+    private DynamicObject queryChangeType(Long id) {
+        QFilter orgQFilter= new QFilter("id", QCP.equals,id);
+        DynamicObject[] changeType = BusinessDataServiceHelper.load("fa_change_type","id",new QFilter[] {orgQFilter});
+        for (int c = 0; c < changeType.length; c++) {
+            DynamicObject changeInfo = BusinessDataServiceHelper.loadSingle(changeType[c].getPkValue(), changeType[c].getDynamicObjectType().getName());
+            return changeInfo;
+        }
+        return null;
+    }
+
+    /**
+     * @description 查询组织
+     * @param orgId
+     */
+    private DynamicObject queryOrg(Long orgId) {
+        QFilter orgQFilter= new QFilter("id", QCP.equals,orgId);
+        DynamicObject[] org = BusinessDataServiceHelper.load("bos_org","id",new QFilter[] {orgQFilter});
+        for (int c = 0; c < org.length; c++) {
+            DynamicObject orgInfo = BusinessDataServiceHelper.loadSingle(org[c].getPkValue(), org[c].getDynamicObjectType().getName());
+            return orgInfo;
+        }
+        return null;
+    }
+}

+ 4 - 2
src/main/java/fi/fa/opplugin/FaChangeDeptBillOpPlugin.java

@@ -7,6 +7,8 @@ import kd.bos.entity.plugin.args.BeginOperationTransactionArgs;
 import kd.bos.orm.query.QCP;
 import kd.bos.orm.query.QFilter;
 import kd.bos.servicehelper.BusinessDataServiceHelper;
+import kd.bos.servicehelper.operation.SaveServiceHelper;
+
 //资产变更单
 public class FaChangeDeptBillOpPlugin extends AbstractOperationServicePlugIn {
     @Override
@@ -43,7 +45,7 @@ public class FaChangeDeptBillOpPlugin extends AbstractOperationServicePlugIn {
                             if (userInfo != null) {
                                 cardInfo.set("nckd_use_name", userInfo.getString("number"));//使用人
                             }
-//                        SaveServiceHelper.save(new DynamicObject[]{cardInfo});
+                        SaveServiceHelper.save(new DynamicObject[]{cardInfo});
                         }
                     }
                 }
@@ -78,7 +80,7 @@ public class FaChangeDeptBillOpPlugin extends AbstractOperationServicePlugIn {
                             if (userInfo != null) {
                                 cardInfo.set("nckd_use_name", userInfo.getString("number"));//使用人
                             }
-//                        SaveServiceHelper.save(new DynamicObject[]{cardInfo});
+                        SaveServiceHelper.save(new DynamicObject[]{cardInfo});
                         }
                     }
                 }

+ 2 - 2
src/main/java/fi/fa/opplugin/FaDispatchBillOpPlugin.java

@@ -30,7 +30,7 @@ public class FaDispatchBillOpPlugin extends AbstractOperationServicePlugIn {
                         //回写e管家实物清单字段
                         cardInfo.set("nckd_orgfield", info.getDynamicObject("inassetunit").getLong("id"));//归属组织
                         cardInfo.set("nckd_dept", dispatchentry.getDynamicObject("inusedept").getLong("id"));//归属部门
-//                        SaveServiceHelper.save(new DynamicObject[]{cardInfo});
+                        SaveServiceHelper.save(new DynamicObject[]{cardInfo});
                     }
                 }
             }
@@ -48,7 +48,7 @@ public class FaDispatchBillOpPlugin extends AbstractOperationServicePlugIn {
                         //还原e卡片实物清单字段
                         cardInfo.set("nckd_orgfield", info.getDynamicObject("assetunit").getLong("id"));//归属组织
                         cardInfo.set("nckd_dept", dispatchentry.getDynamicObject("realcard").getDynamicObject("headusedept").getLong("id"));//归属部门
-//                        SaveServiceHelper.save(new DynamicObject[]{cardInfo});
+                        SaveServiceHelper.save(new DynamicObject[]{cardInfo});
                     }
                 }
             }

+ 0 - 4
src/main/java/fi/fa/opplugin/RealCardSplitF7OpPlugin.java

@@ -18,10 +18,6 @@ import java.util.EventObject;
 public class RealCardSplitF7OpPlugin extends AbstractFormPlugin implements BeforeF7SelectListener {
     @Override
     public void registerListener(EventObject e) {
-        //监听单据字段
-//        super.registerListener(e);
-//        RefBillEdit bill = this.getView().getControl("split_realcard");
-//        bill.addBeforeF7SelectListener(this);
     }
     @Override
     public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {

+ 35 - 13
src/main/java/fi/fa/webService/DispatchMidController.java

@@ -94,6 +94,7 @@ public class DispatchMidController implements Serializable {
         midDispatch.set("nckd_dept_in", jsonObject.getString("inDeptId"));//调入部门
         midDispatch.set("nckd_used_user", jsonObject.getString("user"));//调入使用人
         midDispatch.set("nckd_storeplace", jsonObject.getString("storeplace"));//调入存放地点
+        midDispatch.set("nckd_direction", jsonObject.getString("direction"));//调入存放地点
         //拼接资产信息的组织和编码
         String cardNumber = "";
         JSONArray assetArray = jsonObject.getJSONArray("asset");
@@ -206,15 +207,14 @@ public class DispatchMidController implements Serializable {
      */
     private void Push(JSONObject jsonObject, HashMap<String , Long> map) {
         String dispatchType = jsonObject.getString("dispatchType");
+        String direction = jsonObject.getString("direction");
         //组织间,生成资产调出单
         if ("0".equals(dispatchType)) {
             DynamicObject dispatch = BusinessDataServiceHelper.newDynamicObject("fa_dispatch");
             String nckd_card_real_code = jsonObject.getString("nckd_card_real_code");
-//            nckd_card_real_code = "A00100101900240600005";
+            nckd_card_real_code = "A00100101900240600002";
 
             //单据头
-            dispatch.set("outuser", map.get("sendUser"));//调出申请人
-            dispatch.set("inuser", map.get("recieveUser"));//调入负责人
             dispatch.set("dispatchdate", jsonObject.getDate("sendDate"));//调出日期
             dispatch.set("assetunit", map.get("outOrgId"));//调出组织
             dispatch.set("inassetunit", map.get("orgId"));//调入组织
@@ -226,14 +226,27 @@ public class DispatchMidController implements Serializable {
             dispatch.set("currency", 1);//币种
             dispatch.set("currencyrate", 1);//结算汇率
             //制单信息
-            dispatch.set("creator", map.get("sendUser"));//创建人
             dispatch.set("createtime", jsonObject.getDate("sendDate"));//创建时间
-            dispatch.set("modifier", map.get("recieveUser"));//修改人
             dispatch.set("modifytime", jsonObject.getDate("sendDate"));//修改时间
-            dispatch.set("auditor", map.get("recieveUser"));//审核人
             dispatch.set("auditdate", jsonObject.getDate("sendDate"));//审核时间
             dispatch.set("billstatus", "A");//暂存
-            dispatch.set("appliant", map.get("sendUser"));//调拨申请人
+            //调出方向
+            if("0".equals(direction)){
+                dispatch.set("outuser", map.get("sendUser"));//调出申请人
+                dispatch.set("inuser", map.get("recieveUser"));//调入负责人
+                dispatch.set("creator", map.get("sendUser"));//创建人
+                dispatch.set("modifier", map.get("sendUser"));//修改人
+                dispatch.set("auditor", map.get("sendUser"));//审核人
+                dispatch.set("appliant", map.get("sendUser"));//调拨申请人
+            }//调入方向
+            else if ("1".equals(direction)) {
+                dispatch.set("outuser", map.get("recieveUser"));//调出申请人
+                dispatch.set("inuser", map.get("sendUser"));//调入负责人
+                dispatch.set("creator", map.get("recieveUser"));//创建人
+                dispatch.set("modifier", map.get("recieveUser"));//修改人
+                dispatch.set("auditor", map.get("recieveUser"));//审核人
+                dispatch.set("appliant", map.get("recieveUser"));//调拨申请人
+            }
             //单据体
             //根据资产编号查询实物卡片
             QFilter cardFilter = new QFilter("number", QCP.equals,nckd_card_real_code);
@@ -263,25 +276,34 @@ public class DispatchMidController implements Serializable {
         else if ("1".equals(dispatchType)) {
             DynamicObject changeDept = BusinessDataServiceHelper.newDynamicObject("fa_change_dept");
             String nckd_card_real_code = jsonObject.getString("nckd_card_real_code");
-//            nckd_card_real_code = "A00100101900240600007";
+            nckd_card_real_code = "A00100101900240600007";
             DynamicObject orgInfo = queryOrg(map.get("orgId"));
             //单据头
             changeDept.set("org", orgInfo);//核算组织
             changeDept.set("changedate", jsonObject.getDate("sendDate"));//记账日期
-            changeDept.set("appliantid", getUser(jsonObject.getString("sendUser")));//变更申请人
             changeDept.set("remark", jsonObject.getString("reason"));//调出原因
             changeDept.set("sourcetype", 2);//来源方式(5:API生成)
             changeDept.set("changetype", queryChangeType(Long.parseLong("733953285719123968")));//变更类型,默认部门变更
             changeDept.set("chtypedetail", "1");//变更类型明细默认实物变更1
             changeDept.set("voucherflag", "A");//记账标识默认无需记账A
             //制单信息
-            changeDept.set("creator", getUser(jsonObject.getString("sendUser")));//创建人
             changeDept.set("createtime", jsonObject.getDate("sendDate"));//创建时间
-            changeDept.set("modifier", getUser(jsonObject.getString("recieveUser")));//修改人
             changeDept.set("modifytime", jsonObject.getDate("sendDate"));//修改时间
-            changeDept.set("auditor", getUser(jsonObject.getString("recieveUser")));//审核人
             changeDept.set("auditdate", jsonObject.getDate("sendDate"));//审核时间
             changeDept.set("billstatus", "A");//默认审核
+            //调出方向
+            if("0".equals(direction)){
+                changeDept.set("creator", getUser(jsonObject.getString("sendUser")));//创建人
+                changeDept.set("modifier", getUser(jsonObject.getString("sendUser")));//修改人
+                changeDept.set("auditor", getUser(jsonObject.getString("sendUser")));//审核人
+                changeDept.set("appliantid", getUser(jsonObject.getString("sendUser")));//变更申请人
+            }//调入方向
+            else if ("1".equals(direction)) {
+                changeDept.set("creator", getUser(jsonObject.getString("recieveUser")));//创建人
+                changeDept.set("modifier", getUser(jsonObject.getString("recieveUser")));//修改人
+                changeDept.set("auditor", getUser(jsonObject.getString("recieveUser")));//审核人
+                changeDept.set("appliantid", getUser(jsonObject.getString("recieveUser")));//变更申请人
+            }
             //单据体
             //根据资产编号查询实物卡片
             QFilter cardFilter = new QFilter("number", QCP.equals,nckd_card_real_code);
@@ -349,7 +371,7 @@ public class DispatchMidController implements Serializable {
         else if ("2".equals(dispatchType)) {
             DynamicObject busProcess = BusinessDataServiceHelper.newDynamicObject("nckd_ywcld");
             String nckd_card_real_code = jsonObject.getString("nckd_card_real_code");
-//            nckd_card_real_code = "A00100101900240700007";
+            nckd_card_real_code = "A00100101900240700007";
             DynamicObject orgInfo = queryOrg(map.get("orgId"));
             busProcess.set("nckd_bizdate", jsonObject.getDate("sendDate"));//业务日期
             busProcess.set("nckd_detailtype", "D");//业务类型 D:报废