|
@@ -473,8 +473,8 @@ public class JianhuiServiceImpl implements JianhuiService {
|
|
|
|
|
|
|
|
// filterString.add(UtilMap.map("FieldName, Compare, Value, Left, Right, Logic","FModifyDate","39","2025-03-12 00:00:00","","","0"));//修改日期大于等于xx
|
|
// filterString.add(UtilMap.map("FieldName, Compare, Value, Left, Right, Logic","FModifyDate","39","2025-03-12 00:00:00","","","0"));//修改日期大于等于xx
|
|
|
// filterString.add(UtilMap.map("FieldName, Compare, Value, Left, Right, Logic","FModifyDate","16","2025-03-14 00:00:00","","","0"));//修改日期小于等于xx
|
|
// filterString.add(UtilMap.map("FieldName, Compare, Value, Left, Right, Logic","FModifyDate","16","2025-03-14 00:00:00","","","0"));//修改日期小于等于xx
|
|
|
-// filterString.add(UtilMap.map("FieldName, Compare, Value, Left, Right, Logic","FCreateDate","39","2025-06-28 00:00:00","","","0"));//创建日期大于等于xx
|
|
|
|
|
-// filterString.add(UtilMap.map("FieldName, Compare, Value, Left, Right, Logic","FCreateDate","16","2025-07-07 00:00:00","","","0"));//创建日期小于等于xx
|
|
|
|
|
|
|
+// filterString.add(UtilMap.map("FieldName, Compare, Value, Left, Right, Logic","FCreateDate","39","2025-08-24 00:00:00","","","0"));//创建日期大于等于xx
|
|
|
|
|
+// filterString.add(UtilMap.map("FieldName, Compare, Value, Left, Right, Logic","FCreateDate","16","2025-08-25 00:00:00","","","0"));//创建日期小于等于xx
|
|
|
// filterString.add(UtilMap.map("FieldName, Compare, Value, Left, Right, Logic","FApproveDate","39","2025-03-14 00:00:00","","","0"));//审核日期大于等于xx
|
|
// filterString.add(UtilMap.map("FieldName, Compare, Value, Left, Right, Logic","FApproveDate","39","2025-03-14 00:00:00","","","0"));//审核日期大于等于xx
|
|
|
// filterString.add(UtilMap.map("FieldName, Compare, Value, Left, Right, Logic","FNumber","67","Y0070002","","","0"));//编码等于xx
|
|
// filterString.add(UtilMap.map("FieldName, Compare, Value, Left, Right, Logic","FNumber","67","Y0070002","","","0"));//编码等于xx
|
|
|
// filterString.add(UtilMap.map("FieldName, Compare, Value, Left, Right, Logic","FNumber","17","0001","","","0"));//编码包含xx
|
|
// filterString.add(UtilMap.map("FieldName, Compare, Value, Left, Right, Logic","FNumber","17","0001","","","0"));//编码包含xx
|
|
@@ -1272,6 +1272,8 @@ public class JianhuiServiceImpl implements JianhuiService {
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public McR syncData() {
|
|
public McR syncData() {
|
|
|
|
|
+ log.info("-----------------开始同步金蝶业务数据-------------------------");
|
|
|
|
|
+
|
|
|
syncCustomers();//同步客户
|
|
syncCustomers();//同步客户
|
|
|
syncSalesman();//同步业务员
|
|
syncSalesman();//同步业务员
|
|
|
syncSupplier();//同步供应商
|
|
syncSupplier();//同步供应商
|
|
@@ -1284,6 +1286,8 @@ public class JianhuiServiceImpl implements JianhuiService {
|
|
|
.formDataJson(JSONObject.toJSONString(UtilMap.map("dateField_m8sdk1ny", new Date().getTime())))
|
|
.formDataJson(JSONObject.toJSONString(UtilMap.map("dateField_m8sdk1ny", new Date().getTime())))
|
|
|
.build(), YDConf.FORM_OPERATION.create);
|
|
.build(), YDConf.FORM_OPERATION.create);
|
|
|
|
|
|
|
|
|
|
+ log.info("-----------------金蝶业务数据同步完成-------------------------");
|
|
|
|
|
+
|
|
|
return McR.success();
|
|
return McR.success();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -1325,7 +1329,115 @@ public class JianhuiServiceImpl implements JianhuiService {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void manualSyncMaterialData(String userId,String startTime,String endTime) {
|
|
|
|
|
+ //发送工作通知
|
|
|
|
|
+ if (Strings.isNotBlank(userId)){
|
|
|
|
|
+ Map param2 = new HashMap();
|
|
|
|
|
+ param2.put("access_token",ddClient.getAccessToken());
|
|
|
|
|
+ Map body3 = new HashMap();
|
|
|
|
|
+ body3.put("agent_id",ddConf.getAgentId());
|
|
|
|
|
+ body3.put("userid_list",userId);
|
|
|
|
|
+ Map msg = new HashMap();
|
|
|
|
|
+ msg.put("msgtype","text");
|
|
|
|
|
+ //获取当前时间 精确到秒
|
|
|
|
|
+ String time = DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
+ msg.put("text", UtilMap.map("content","开始同步金蝶物料数据 时间:" + time));
|
|
|
|
|
+ body3.put("msg",msg);
|
|
|
|
|
+ UtilHttp.doPost("https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2",null,param2,body3);
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
+ try {
|
|
|
|
|
+ K3CloudApi client = new K3CloudApi(initIden());
|
|
|
|
|
+
|
|
|
|
|
+ List<Map> result = new ArrayList<>();
|
|
|
|
|
+ List<Map> materialList = new ArrayList<>();
|
|
|
|
|
+
|
|
|
|
|
+ int startRow = 0;
|
|
|
|
|
+ int limit = 2000;
|
|
|
|
|
+
|
|
|
|
|
+ BillQuery billQuery = new BillQuery();
|
|
|
|
|
+ billQuery.setFormId("BD_MATERIAL");
|
|
|
|
|
+ billQuery.setFieldKeys("FUseOrgId,FNumber,FName,FSpecification,FDocumentStatus,FForbidStatus,FErpClsID,FBaseUnitId,FRefStatus");
|
|
|
|
|
+ List<Map> filterString = new ArrayList<>();
|
|
|
|
|
+
|
|
|
|
|
+ filterString.add(UtilMap.map("FieldName, Compare, Value, Left, Right, Logic","FCreateDate","39",startTime,"","","0"));//创建日期大于等于xx
|
|
|
|
|
+ filterString.add(UtilMap.map("FieldName, Compare, Value, Left, Right, Logic","FCreateDate","16",endTime,"","","0"));//创建日期小于等于xx
|
|
|
|
|
+
|
|
|
|
|
+ billQuery.setFilterString(filterString);
|
|
|
|
|
+ billQuery.setLimit(limit);
|
|
|
|
|
+ do {
|
|
|
|
|
+ billQuery.setStartRow(startRow);
|
|
|
|
|
+ String s = client.billQuery(JSONObject.toJSONString(billQuery));
|
|
|
|
|
+ result = (List<Map>)JSONObject.parse(s);
|
|
|
|
|
+ materialList.addAll(result);
|
|
|
|
|
+
|
|
|
|
|
+ startRow += limit;
|
|
|
|
|
+ }while (result.size() == limit);
|
|
|
|
|
+
|
|
|
|
|
+ for (Map material : materialList) {
|
|
|
|
|
+ Map formData = new HashMap();
|
|
|
|
|
+ formData.put("textField_m6ak640p",material.get("FUseOrgId"));//使用组织
|
|
|
|
|
+ formData.put("textField_m6ak640v",material.get("FNumber"));//编码
|
|
|
|
|
+ formData.put("selectField_m83u6et1",getString(material.get("FNumber")).substring(0,1).equals("C") ? "成品" : "配件");
|
|
|
|
|
+ formData.put("textField_m6ak640w",material.get("FName"));//名称
|
|
|
|
|
+ formData.put("textField_m6ak640x",material.get("FSpecification"));//规格型号
|
|
|
|
|
+ formData.put("textField_m6ak6413",FDOCUMENTSTATUS.get(material.get("FDocumentStatus").toString()));//单据状态
|
|
|
|
|
+ formData.put("textField_m6ak6414",FFORBIDSTATUS.get(material.get("FForbidStatus").toString()));//禁用状态
|
|
|
|
|
+ formData.put("textField_m6ak6415",FERPCLSID.get(material.get("FErpClsID").toString()));//物料属性
|
|
|
|
|
+ formData.put("textField_m6ak641c",material.get("FRefStatus"));//已使用
|
|
|
|
|
+
|
|
|
|
|
+ //查找计量单位信息
|
|
|
|
|
+ String FBaseUnitId = material.get("FBaseUnitId").toString();
|
|
|
|
|
+ View view = new View();
|
|
|
|
|
+ view.setId(FBaseUnitId);
|
|
|
|
|
+ String resultJson = client.view("BD_UNIT", JSONObject.toJSONString(view));
|
|
|
|
|
+ Gson gson = new Gson();
|
|
|
|
|
+ RepoRet repoRet = gson.fromJson(resultJson, RepoRet.class);
|
|
|
|
|
+ if (isTrue(repoRet)){
|
|
|
|
|
+ Map unitInfo = (Map) repoRet.getResult().getResult();
|
|
|
|
|
+ String unitName = ((List<Map>) unitInfo.get("Name")).get(0).get("Value").toString();
|
|
|
|
|
+
|
|
|
|
|
+ String unitCode = unitInfo.get("Number").toString();
|
|
|
|
|
+
|
|
|
|
|
+ formData.put("textField_m6ak6416",unitName);//基本单位
|
|
|
|
|
+ formData.put("textField_m6ak641d",unitCode);//单位编码
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ ydClient.operateData(YDParam.builder()
|
|
|
|
|
+ .formUuid("FORM-2A5CAB7EB91D493AAFC90D8C7479A7F5KPR7")
|
|
|
|
|
+ .searchFieldJson(JSONObject.toJSONString(Arrays.asList(new YDSearch("textField_m6ak640v",material.get("FNumber"),"编码", YDSearch.Type.TEXT_FIELD,YDSearch.Operator.EQ))))
|
|
|
|
|
+ .formDataJson(JSONObject.toJSONString(formData))
|
|
|
|
|
+ .build(), YDConf.FORM_OPERATION.upsert);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }catch (Exception e){
|
|
|
|
|
+ fail(e.getMessage());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //新增数据底表更新时间
|
|
|
|
|
+ ydClient.operateData(YDParam.builder()
|
|
|
|
|
+ .formUuid("FORM-5BAA6A050AC449438568D5A50FE2D2684RBN")
|
|
|
|
|
+ .formDataJson(JSONObject.toJSONString(UtilMap.map("dateField_m8sdk1ny", new Date().getTime())))
|
|
|
|
|
+ .build(), YDConf.FORM_OPERATION.create);
|
|
|
|
|
+
|
|
|
|
|
+ //发送工作通知
|
|
|
|
|
+ if (Strings.isNotBlank(userId)){
|
|
|
|
|
+ Map param2 = new HashMap();
|
|
|
|
|
+ param2.put("access_token",ddClient.getAccessToken());
|
|
|
|
|
+ Map body3 = new HashMap();
|
|
|
|
|
+ body3.put("agent_id",ddConf.getAgentId());
|
|
|
|
|
+ body3.put("userid_list",userId);
|
|
|
|
|
+ Map msg = new HashMap();
|
|
|
|
|
+ msg.put("msgtype","text");
|
|
|
|
|
+ //获取当前时间 精确到秒
|
|
|
|
|
+ String time = DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
+ msg.put("text", UtilMap.map("content","金蝶物料数据已更新 时间:" + time));
|
|
|
|
|
+ body3.put("msg",msg);
|
|
|
|
|
+ UtilHttp.doPost("https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2",null,param2,body3);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
|
|
|
private String getMultiLanguageTextName(Object object){
|
|
private String getMultiLanguageTextName(Object object){
|