wanwei vor 8 Monaten
Ursprung
Commit
178f3711dd
1 geänderte Dateien mit 129 neuen und 30 gelöschten Zeilen
  1. 129 30
      src/main/java/fi/fa/webService/DispatchMidController.java

+ 129 - 30
src/main/java/fi/fa/webService/DispatchMidController.java

@@ -53,7 +53,7 @@ public class DispatchMidController implements Serializable {
                 String errorCode = Check(eobject, map);
                 //第三步:下推生成调拨单
                 if (StringUtils.isEmpty(errorCode) && StringUtils.isEmpty(errorChange)) {
-                    //下推生成资产调拨
+                    //下推生成单
                     Push(eobject, map);
                 }
                 // 错误拼接
@@ -103,6 +103,9 @@ public class DispatchMidController implements Serializable {
             String number = asset.getString("number");
             String orgId = asset.getString("orgId");
             cardNumber = number+ ":" + orgId + ",";
+            if ("2".equals(jsonObject.getString("dispatchType"))) {
+                midDispatch.set("nckd_count", asset.getString("count"));//资产数量
+            }
         }
         midDispatch.set("nckd_card_number_tag", cardNumber);
         SaveServiceHelper.save(new DynamicObject[]{midDispatch});
@@ -116,11 +119,12 @@ public class DispatchMidController implements Serializable {
     private  String Check(JSONObject jsonObject, HashMap<String , Long> map) {
         String billno = jsonObject.getString("billno");//源单编号
         String user = jsonObject.getString("user");//使用人
+        String dispatchType = jsonObject.getString("dispatchType");//调拨类型
         List<String> numberList = new ArrayList<>();
         // 校验该单据是否已经下推生成调拨单
-//        if (isAlreadyDispatched(billno)) {
-//            return "单据" + billno + "已经生成调拨单,请勿重复推送!";
-//        }
+        if (isAlreadyDispatched(billno)) {
+            return "单据" + billno + "已经生成调拨单,请勿重复推送!";
+        }
         // 获取资产编号数组
         JSONArray assetArray = jsonObject.getJSONArray("asset");
         if (assetArray.isEmpty()) {
@@ -151,16 +155,31 @@ public class DispatchMidController implements Serializable {
                 if (StringUtils.isEmpty(code)) {
                     //星瀚未生成实物卡片,更新实物卡片清单数据-查询组织对照表
                     Long orgId = getOrg(e_orgId);
-                    if (ObjectUtils.isNotEmpty(orgId)) {
+                    if (ObjectUtils.isNotEmpty(orgId) && ("0".equals(dispatchType))) {
                         //更新归属机构,归属部门,使用人
                         for (int a = 0; a < dynamicObjects.length ; a++) {
                             DynamicObject ecardInfoList = BusinessDataServiceHelper.loadSingle(dynamicObjects[a].getPkValue(), dynamicObjects[a].getDynamicObjectType().getName());
                             ecardInfoList.set("nckd_orgfield",orgId);
                             ecardInfoList.set("nckd_dept",map.get("inDeptId"));
+                            SaveServiceHelper.save(new DynamicObject[]{ecardInfoList});
+                        }
+                    }else if (ObjectUtils.isNotEmpty(orgId) && "1".equals(dispatchType)) {
+                        //更新是否报废为是
+                        for (int a = 0; a < dynamicObjects.length ; a++) {
+                            DynamicObject ecardInfoList = BusinessDataServiceHelper.loadSingle(dynamicObjects[a].getPkValue(), dynamicObjects[a].getDynamicObjectType().getName());
+                            ecardInfoList.set("nckd_dept",map.get("inDeptId"));
                             ecardInfoList.set("nckd_use_name",user);
                             SaveServiceHelper.save(new DynamicObject[]{ecardInfoList});
                         }
-                    }else {
+                    }
+                    else if (ObjectUtils.isNotEmpty(orgId) && "2".equals(dispatchType)) {
+                        //更新是否报废为是
+                        for (int a = 0; a < dynamicObjects.length ; a++) {
+                            DynamicObject ecardInfoList = BusinessDataServiceHelper.loadSingle(dynamicObjects[a].getPkValue(), dynamicObjects[a].getDynamicObjectType().getName());
+                            ecardInfoList.set("nckd_discard",1);
+                            SaveServiceHelper.save(new DynamicObject[]{ecardInfoList});
+                        }
+                    } else {
                         return "资产信息的组织在组织对照表中未查询到数据,生成调拨单失败";
                     }
                 }else {
@@ -191,7 +210,7 @@ public class DispatchMidController implements Serializable {
         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 = "A00100101900240600005";
 
             //单据头
             dispatch.set("outuser", map.get("sendUser"));//调出申请人
@@ -244,7 +263,7 @@ 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);//核算组织
@@ -289,7 +308,7 @@ public class DispatchMidController implements Serializable {
                     entry1.set("fincard1", fin);//财务卡片
                 }
                 if (ObjectUtils.isEmpty(cardInfo.getDynamicObject("headuseperson")) ||
-                    ObjectUtils.isNotEmpty(cardInfo.getDynamicObject("headuseperson")) && map.get("user").equals(cardInfo.getDynamicObject("headuseperson").getLong("id"))) {
+                    ObjectUtils.isNotEmpty(cardInfo.getDynamicObject("headuseperson")) && !map.get("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);//资产编码
@@ -326,6 +345,48 @@ public class DispatchMidController implements Serializable {
                 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 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";
+            DynamicObject orgInfo = queryOrg(map.get("orgId"));
+            busProcess.set("nckd_bizdate", jsonObject.getDate("sendDate"));//业务日期
+            busProcess.set("nckd_detailtype", "D");//业务类型 D:报废
+            busProcess.set("nckd_costcompany", map.get("orgId"));//资产组织
+            busProcess.set("nckd_textfield1", jsonObject.getString("reason"));//摘要事由
+            busProcess.set("nckd_applierv", getUser(jsonObject.getString("sendUser")));//制单人
+
+            //制单信息
+            busProcess.set("creator", getUser(jsonObject.getString("sendUser")));//创建人
+            busProcess.set("createtime", jsonObject.getDate("sendDate"));//创建时间
+            busProcess.set("modifier", getUser(jsonObject.getString("sendUser")));//修改人
+            busProcess.set("modifytime", jsonObject.getDate("sendDate"));//修改时间
+            busProcess.set("auditor", getUser(jsonObject.getString("sendUser")));//审核人
+            busProcess.set("auditdate", jsonObject.getDate("sendDate"));//审核时间
+            busProcess.set("billstatus", "A");//状态
+            //单据体
+            //根据资产编号查询实物卡片
+            QFilter cardFilter = new QFilter("number", QCP.equals,nckd_card_real_code);
+            cardFilter.and("isbak",  QCP.equals, "0");
+            DynamicObject[] card = BusinessDataServiceHelper.load("fa_card_real","id",new QFilter[] {cardFilter});
+            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(jsonObject.getJSONArray("asset").getJSONObject(0).getString("count"));
+                entry1.set("nckd_integerfield", count);//报废数量
+            }
+            //执行保存-提交-审核
+            OperationResult saveResult = SaveServiceHelper.saveOperate("nckd_ywcld", new DynamicObject[]{busProcess}, OperateOption.create());
+            if (saveResult.isSuccess()){
+                //生单后反写中间表,防止反复生单
+                OncePush(jsonObject.getString("billno"));
+                OperationResult submitResult = OperationServiceHelper.executeOperate("submit", "nckd_ywcld",saveResult.getSuccessPkIds().toArray(),OperateOption.create());
+                OperationResult auditResult = OperationServiceHelper.executeOperate("audit", "nckd_ywcld",submitResult.getSuccessPkIds().toArray(),OperateOption.create());
+            }
         }
 
     }
@@ -344,6 +405,9 @@ public class DispatchMidController implements Serializable {
             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) {
@@ -375,28 +439,63 @@ public class DispatchMidController implements Serializable {
      * @param jsonObject,map
      * @return String
      */
-    private String Control (JSONObject jsonObject, HashMap<String , Long> map) {
-        //查询人员
-        DynamicObject sendUser = getUser(jsonObject.getString("sendUser"));//调出申请人
-        DynamicObject recieveUser = getUser(jsonObject.getString("recieveUser"));//调入负责人
-        DynamicObject user = getUser(jsonObject.getString("user"));//调入使用人
-        if (ObjectUtils.isEmpty(sendUser) || ObjectUtils.isEmpty(recieveUser) || ObjectUtils.isEmpty(user)) {
-            return "人员信息转换失败";
-        }
-        map.put("sendUser", sendUser.getLong("id"));
-        map.put("recieveUser", recieveUser.getLong("id"));
-        map.put("user", user.getLong("id"));
-
-        //查询组织
-        Long outOrgId = getOrg(jsonObject.getString("outOrgId"));//调出组织
-        Long orgId = getOrg(jsonObject.getString("orgId"));//调入组织
-        Long inDeptId = getOrg(jsonObject.getString("inDeptId"));//调入部门
-        if (ObjectUtils.isEmpty(outOrgId) || ObjectUtils.isEmpty(orgId) || ObjectUtils.isEmpty(inDeptId)) {
-            return "组织信息转换失败";
+    private String Control(JSONObject jsonObject, HashMap<String , Long> map) {
+        String dispatchType = jsonObject.getString("dispatchType");
+        if ("0".equals(dispatchType)) {
+            //查询人员
+            DynamicObject sendUser = getUser(jsonObject.getString("sendUser"));//调出申请人
+            DynamicObject recieveUser = getUser(jsonObject.getString("recieveUser"));//调入负责人
+            if (ObjectUtils.isEmpty(sendUser) || ObjectUtils.isEmpty(recieveUser)) {
+                return "人员信息转换失败";
+            }
+            map.put("sendUser", sendUser.getLong("id"));
+            map.put("recieveUser", recieveUser.getLong("id"));
+            //查询组织
+            Long outOrgId = getOrg(jsonObject.getString("outOrgId"));//调出组织
+            Long orgId = getOrg(jsonObject.getString("orgId"));//调入组织
+            Long inDeptId = getOrg(jsonObject.getString("inDeptId"));//调入部门
+            if (ObjectUtils.isEmpty(outOrgId) || ObjectUtils.isEmpty(orgId) || ObjectUtils.isEmpty(inDeptId)) {
+                return "组织信息转换失败";
+            }
+            map.put("outOrgId", outOrgId);
+            map.put("orgId", orgId);
+            map.put("inDeptId", inDeptId);
+            return null;
+        } else if ("1".equals(dispatchType)) {
+            //查询人员
+            DynamicObject sendUser = getUser(jsonObject.getString("sendUser"));//调出申请人
+            DynamicObject recieveUser = getUser(jsonObject.getString("recieveUser"));//调入负责人
+            DynamicObject user = getUser(jsonObject.getString("user"));//调入使用人
+            if (ObjectUtils.isEmpty(sendUser) || ObjectUtils.isEmpty(recieveUser) || ObjectUtils.isEmpty(user)) {
+                return "人员信息转换失败";
+            }
+            map.put("sendUser", sendUser.getLong("id"));
+            map.put("recieveUser", recieveUser.getLong("id"));
+            map.put("user", user.getLong("id"));
+            //查询组织
+            Long orgId = getOrg(jsonObject.getString("orgId"));//调入组织
+            Long inDeptId = getOrg(jsonObject.getString("inDeptId"));//调入部门
+            if (ObjectUtils.isEmpty(orgId) || ObjectUtils.isEmpty(inDeptId)) {
+                return "组织信息转换失败";
+            }
+            map.put("orgId", orgId);
+            map.put("inDeptId", inDeptId);
+            return null;
+        }else if ("2".equals(dispatchType)) {
+            //查询人员
+            DynamicObject sendUser = getUser(jsonObject.getString("sendUser"));//调出申请人
+            if (ObjectUtils.isEmpty(sendUser)) {
+                return "人员信息转换失败";
+            }
+            map.put("sendUser", sendUser.getLong("id"));
+            //查询组织
+            Long orgId = getOrg(jsonObject.getString("orgId"));//资产组织
+            if (ObjectUtils.isEmpty(orgId)) {
+                return "组织信息转换失败";
+            }
+            map.put("orgId", orgId);
+            return null;
         }
-        map.put("outOrgId", outOrgId);
-        map.put("orgId", orgId);
-        map.put("inDeptId", inDeptId);
         return null;
     }