ERP:完善同步物料信息接口、同步供应商信息接口、同步销售订单信息接口、同步采购订单信息接口、同步项目信息接口
master
xins 1 year ago
parent 550fb33713
commit bbc5be0c4c

@ -5,9 +5,8 @@ import com.hw.common.core.constant.ServiceNameConstants;
import com.hw.common.core.domain.R; import com.hw.common.core.domain.R;
import com.hw.jindie.api.factory.RemoteJindieFallbackFactory; import com.hw.jindie.api.factory.RemoteJindieFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestParam;
/** /**
* @ClassName : RemoteJindieService * @ClassName : RemoteJindieService
@ -19,10 +18,23 @@ import org.springframework.web.bind.annotation.RequestParam;
public interface RemoteJindieService { public interface RemoteJindieService {
/** 同步供应商*/ /** 同步供应商*/
@GetMapping("/jindie/ErpSupplierInfo") @PostMapping("/jindie/syncSupplierInfoFromErp")
R<Integer> ErpSupplierInfo(@RequestHeader(SecurityConstants.FROM_SOURCE) String source); R<Integer> syncSupplierInfoFromErp(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/** 同步物料*/ /** 同步物料*/
@GetMapping("/jindie/syncMaterialInfo") @PostMapping("/jindie/syncMaterialInfoFromErp")
R<Integer> ErpMesMaterialInfo(@RequestHeader(SecurityConstants.FROM_SOURCE) String source); R<Integer> syncMaterialInfoFromErp(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/** 同步项目信息*/
@PostMapping("/jindie/syncProjectInfoFromErp")
R<Integer> syncProjectInfoFromErp(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/** 同步销售订单*/
@PostMapping("/jindie/syncSaleOrderFromErp")
R<Integer> syncSaleOrderFromErp(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/** 同步采购订单*/
@PostMapping("/jindie/syncPurchaseOrderFromErp")
R<Integer> syncPurchaseOrderFromErp(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
} }

@ -14,13 +14,28 @@ public class RemoteJindieFallbackFactory implements FallbackFactory<RemoteJindie
public RemoteJindieService create(Throwable throwable) { public RemoteJindieService create(Throwable throwable) {
return new RemoteJindieService() { return new RemoteJindieService() {
@Override @Override
public R<Integer> ErpSupplierInfo(String source) { public R<Integer> syncSupplierInfoFromErp(String source) {
return null; return R.fail("同步供应商信息失败:" + throwable.getMessage());
} }
@Override @Override
public R<Integer> ErpMesMaterialInfo(String source) { public R<Integer> syncMaterialInfoFromErp(String source) {
return null; return R.fail("同步物料信息失败:" + throwable.getMessage());
}
@Override
public R<Integer> syncProjectInfoFromErp(String source) {
return R.fail("同步项目信息失败:" + throwable.getMessage());
}
@Override
public R<Integer> syncSaleOrderFromErp(String source) {
return R.fail("同步销售订单信息失败:" + throwable.getMessage());
}
@Override
public R<Integer> syncPurchaseOrderFromErp(String source) {
return R.fail("同步采购订单信息失败:" + throwable.getMessage());
} }
}; };
} }

@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSONObject;
import com.hw.common.core.web.domain.AjaxResult; import com.hw.common.core.web.domain.AjaxResult;
import com.hw.common.log.annotation.Log; import com.hw.common.log.annotation.Log;
import com.hw.common.log.enums.BusinessType; import com.hw.common.log.enums.BusinessType;
import com.hw.common.security.annotation.InnerAuth;
import com.hw.jindie.service.IKingdeeErpSyncService; import com.hw.jindie.service.IKingdeeErpSyncService;
import com.hw.jindie.service.impl.KingdeeErpService; import com.hw.jindie.service.impl.KingdeeErpService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -27,10 +28,12 @@ public class KingdeeErpSyncController {
private KingdeeErpService kingdeeErpService; private KingdeeErpService kingdeeErpService;
/** /**
* erp * erpMES
* */ * */
@GetMapping("/ErpSupplierInfo") @PostMapping("/syncSupplierInfoFromErp")
public AjaxResult ErpSupplierInfo(){ @Log(title = "ERP供应商信息", businessType = BusinessType.INSERT)
@InnerAuth
public AjaxResult syncSupplierInfoFromErp(){
try { try {
return AjaxResult.success(kingdeeErpSyncService.syncSupplierInfoFromErp(0)); return AjaxResult.success(kingdeeErpSyncService.syncSupplierInfoFromErp(0));
} catch (Exception e){ } catch (Exception e){
@ -40,12 +43,13 @@ public class KingdeeErpSyncController {
} }
/** /**
* * ERPMES
*/ */
// @RequiresPermissions("wms:mobile:addrawinstock") // @RequiresPermissions("wms:mobile:addrawinstock")
@Log(title = "物料信息", businessType = BusinessType.INSERT) @Log(title = "ERP物料信息", businessType = BusinessType.INSERT)
@GetMapping(("/syncMaterialInfo")) @PostMapping(("/syncMaterialInfoFromErp"))
public AjaxResult syncMaterialInfo() { @InnerAuth
public AjaxResult syncMaterialInfoFromErp() {
try { try {
return AjaxResult.success(kingdeeErpSyncService.syncMaterialInfoFromErp(0)); return AjaxResult.success(kingdeeErpSyncService.syncMaterialInfoFromErp(0));
} catch (Exception e) { } catch (Exception e) {
@ -55,6 +59,61 @@ public class KingdeeErpSyncController {
} }
/**
* ERPMES
* */
@PostMapping("/syncProjectInfoFromErp")
@Log(title = "ERP项目信息", businessType = BusinessType.INSERT)
@InnerAuth
public AjaxResult syncProjectInfoFromErp(){
try {
return AjaxResult.success(kingdeeErpSyncService.syncProjectInfoFromErp(0));
}
catch (Exception e) {
return AjaxResult.error();
}
}
/**
* ERPERP
* */
@PostMapping("/syncSaleOrderFromErp")
@Log(title = "ERP销售订单", businessType = BusinessType.INSERT)
@InnerAuth
public AjaxResult syncSaleOrderFromErp(){
try {
return AjaxResult.success(kingdeeErpSyncService.syncSaleOrderFromErp(0));
}
catch (Exception e) {
e.printStackTrace();
return AjaxResult.error();
}
}
/**
* ERPMES
* */
@PostMapping("/syncPurchaseOrderFromErp")
@Log(title = "ERP采购订单", businessType = BusinessType.INSERT)
@InnerAuth
public AjaxResult syncPurchaseOrderFromErp(){
try {
return AjaxResult.success(kingdeeErpSyncService.syncPurchaseOrderFromErp(0));
}
catch (Exception e) {
return AjaxResult.error();
}
}
/** /**
* ->-> * ->->
* *
@ -193,41 +252,6 @@ public class KingdeeErpSyncController {
} }
} }
/**
* ERP
* */
@GetMapping("/ERPProject")
public AjaxResult getERPProject(){
try {
return AjaxResult.success(kingdeeErpSyncService.syncProjectInfoFromErp(0));
}
catch (Exception e) {
return AjaxResult.error();
}
}
/**
* ERP
* */
@GetMapping("/ERPMesSaleOrder")
public AjaxResult getERPMesSaleOrder(){
try {
return AjaxResult.success(kingdeeErpSyncService.syncSaleOrderFromErp(0));
}
catch (Exception e) {
return AjaxResult.error();
}
}
/**
* ERP
* */
@GetMapping("/ERPPurchase")
public AjaxResult getERPPurchase(){
try {
return AjaxResult.success(kingdeeErpSyncService.syncPurchaseOrderFromErp(0));
}
catch (Exception e) {
return AjaxResult.error();
}
}
} }

@ -42,6 +42,8 @@ public class MesBaseSupplierInfo extends BaseEntity
@Excel(name = "审核日期", width = 30, dateFormat = "yyyy-MM-dd") @Excel(name = "审核日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date auditDate; private Date auditDate;
private Date erpModifyDate;
public void setSupplierId(Long supplierId) public void setSupplierId(Long supplierId)
{ {
this.supplierId = supplierId; this.supplierId = supplierId;
@ -97,6 +99,14 @@ public class MesBaseSupplierInfo extends BaseEntity
return auditDate; return auditDate;
} }
public Date getErpModifyDate() {
return erpModifyDate;
}
public void setErpModifyDate(Date erpModifyDate) {
this.erpModifyDate = erpModifyDate;
}
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

@ -131,7 +131,7 @@ public class MesPurchaseOrder extends BaseEntity {
@Excel(name = "是否标识1-是0-否") @Excel(name = "是否标识1-是0-否")
private String isFlag; private String isFlag;
//采购单位id //采购单位id
private String unitId; private Long unitId;
//库存单位 //库存单位
private Long stockUnitId; private Long stockUnitId;
//计价单位 //计价单位
@ -148,11 +148,11 @@ public class MesPurchaseOrder extends BaseEntity {
private Long supplierId; private Long supplierId;
public String getUnitId() { public Long getUnitId() {
return unitId; return unitId;
} }
public void setUnitId(String unitId) { public void setUnitId(Long unitId) {
this.unitId = unitId; this.unitId = unitId;
} }

@ -173,6 +173,8 @@ public class MesSaleOrder extends BaseEntity {
//库存组织 //库存组织
private Long stockOrgId; private Long stockOrgId;
private String tondBase;
public Long getStockId() { public Long getStockId() {
return stockId; return stockId;
@ -406,6 +408,14 @@ public class MesSaleOrder extends BaseEntity {
return isFlag; return isFlag;
} }
public String getTondBase() {
return tondBase;
}
public void setTondBase(String tondBase) {
this.tondBase = tondBase;
}
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)

@ -77,7 +77,7 @@ public interface MesBaseMaterialInfoMapper
* ERP * ERP
* @return String * @return String
*/ */
public String getMaxErpModifyDate(); public String selectMaxErpModifyDate();
/** /**
* *
@ -95,10 +95,5 @@ public interface MesBaseMaterialInfoMapper
*/ */
public int batchMesBaseMaterialInfo(List<MesBaseMaterialInfo> mesBaseMaterialInfos); public int batchMesBaseMaterialInfo(List<MesBaseMaterialInfo> mesBaseMaterialInfos);
/**
*
* */
public MesBaseMaterialInfo selectMesBaseMaterialInfoByCode(String materialCode);
} }

@ -59,4 +59,30 @@ public interface MesBaseSupplierInfoMapper
* @return * @return
*/ */
public int deleteMesBaseSupplierInfoBySupplierIds(Long[] supplierIds); public int deleteMesBaseSupplierInfoBySupplierIds(Long[] supplierIds);
/**
* ERP
* @return String
*/
public String selectMaxErpModifyDate();
/**
*
*
* @param erpId ERP
* @return
*/
public MesBaseSupplierInfo selectMesBaseSupplierInfoByErpId(Long erpId);
/**
*
*
* @param mesBaseSupplierInfos
* @return
*/
public int batchMesBaseSupplierInfo(List<MesBaseSupplierInfo> mesBaseSupplierInfos);
} }

@ -1,5 +1,6 @@
package com.hw.jindie.mapper; package com.hw.jindie.mapper;
import com.hw.jindie.domain.MesBaseSupplierInfo;
import com.hw.jindie.domain.MesProjectInfo; import com.hw.jindie.domain.MesProjectInfo;
import java.util.List; import java.util.List;
@ -64,4 +65,21 @@ public interface MesProjectInfoMapper
* erpid * erpid
* */ * */
public MesProjectInfo selectMesProjectInfoByErpId(Long erpId); public MesProjectInfo selectMesProjectInfoByErpId(Long erpId);
/**
* ERP
* @return String
*/
public String selectMaxErpModifyDate();
/**
*
*
* @param mesProjectInfos
* @return
*/
public int batchMesBaseProjectInfo(List<MesProjectInfo> mesProjectInfos);
} }

@ -1,6 +1,7 @@
package com.hw.jindie.mapper; package com.hw.jindie.mapper;
import com.hw.jindie.domain.MesPurchaseOrder; import com.hw.jindie.domain.MesPurchaseOrder;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@ -10,8 +11,7 @@ import java.util.List;
* @author Yinq * @author Yinq
* @date 2024-02-19 * @date 2024-02-19
*/ */
public interface MesPurchaseOrderMapper public interface MesPurchaseOrderMapper {
{
/** /**
* *
* *
@ -59,8 +59,31 @@ public interface MesPurchaseOrderMapper
* @return * @return
*/ */
public int deleteMesPurchaseOrderByPurchaseOrderIds(Long[] purchaseOrderIds); public int deleteMesPurchaseOrderByPurchaseOrderIds(Long[] purchaseOrderIds);
/** /**
* erpid * ERP
* */ *
public MesPurchaseOrder selectMesPurchaseOrderByErpId(Long erpId); * @return String
*/
public String selectMaxErpModifyDate();
/**
*
*
* @param erpId ERP
* @param fentryId ERP
* @return
*/
public MesPurchaseOrder selectMesPurchaseOrderByUI(@Param("erpId") Long erpId,
@Param("fentryId") Long fentryId);
/**
*
*
* @param mesPurchaseOrders
* @return
*/
public int batchMesBasePurchaseOrder(List<MesPurchaseOrder> mesPurchaseOrders);
} }

@ -1,6 +1,7 @@
package com.hw.jindie.mapper; package com.hw.jindie.mapper;
import com.hw.jindie.domain.MesSaleOrder; import com.hw.jindie.domain.MesSaleOrder;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@ -10,8 +11,7 @@ import java.util.List;
* @author Yinq * @author Yinq
* @date 2024-02-19 * @date 2024-02-19
*/ */
public interface MesSaleOrderMapper public interface MesSaleOrderMapper {
{
/** /**
* *
* *
@ -60,8 +60,29 @@ public interface MesSaleOrderMapper
*/ */
public int deleteMesSaleOrderBySaleOrderIds(Long[] saleOrderIds); public int deleteMesSaleOrderBySaleOrderIds(Long[] saleOrderIds);
/** /**
* erpid * ERP
* */ *
public MesSaleOrder selectMesSaleOrderByErpId(Long erpId); * @return String
*/
public String selectMaxErpModifyDate();
/**
*
*
* @param erpId ERP
* @param fentryId ERP
* @return
*/
public MesSaleOrder selectMesSaleOrderByUI(@Param("erpId") Long erpId,
@Param("fentryId") Long fentryId);
/**
*
*
* @param mesSaleOrders
* @return
*/
public int batchMesBaseSaleOrder(List<MesSaleOrder> mesSaleOrders);
} }

@ -2,16 +2,12 @@ package com.hw.jindie.service.impl;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.hw.common.core.utils.DateUtils; import com.hw.common.core.utils.DateUtils;
import com.hw.common.core.utils.StringUtils; import com.hw.common.core.utils.StringUtils;
import com.hw.jindie.domain.*; import com.hw.jindie.domain.*;
import com.hw.jindie.mapper.*; import com.hw.jindie.mapper.*;
import com.hw.jindie.service.IKingdeeErpSyncService; import com.hw.jindie.service.IKingdeeErpSyncService;
import com.kingdee.bos.webapi.entity.RepoRet;
import com.kingdee.bos.webapi.sdk.K3CloudApi; import com.kingdee.bos.webapi.sdk.K3CloudApi;
import io.swagger.models.auth.In;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -40,23 +36,33 @@ public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService {
@Autowired @Autowired
private MesPurchaseOrderMapper mesPurchaseOrderMapper; private MesPurchaseOrderMapper mesPurchaseOrderMapper;
private static final int limit = 100;
/** /**
* @throws Exception * @throws Exception
* @Description:ERP * @Description:ERP
*/ */
@Override
public int syncSupplierInfoFromErp(int startRow) throws Exception { public int syncSupplierInfoFromErp(int startRow) throws Exception {
String maxErpModifyDate = mesBaseSupplierInfoMapper.selectMaxErpModifyDate();
return syncSupplierInfoFromErp(startRow, maxErpModifyDate);
}
/**
* @throws Exception
* @Description:ERP,使
*/
public int syncSupplierInfoFromErp(int startRow, String maxErpModifyDate) throws Exception {
System.out.println("startRow=" + startRow + ",,,maxErpModifyDate=" + maxErpModifyDate);
K3CloudApi api = new K3CloudApi(); K3CloudApi api = new K3CloudApi();
// "FormId": "BD_Supplier",
// "FieldKeys": "FNumber ,FName,FCreateDate,FModifyDate,FAuditDate",
// "FilterString": "FDocumentStatus='C' AND FCreateDate>'2022-01-01' ",
JSONObject queryJson = new JSONObject(); JSONObject queryJson = new JSONObject();
String formId = "BD_Supplier"; String formId = "BD_Supplier";
String fieldKeys = "FSupplierId,FNumber,FName,FCreateDate,FModifyDate,FAuditDate,FCreatorId,FModifierId"; String fieldKeys = "FSupplierId,FNumber,FName,FCreateDate,FModifyDate,FAuditDate,FCreatorId,FModifierId";
String orderString = ""; String orderString = "";
int topRowCount = 0; int topRowCount = 0;
// int startRow = 0; // int startRow = 0;
int limit = 2; // int limit = 2;
queryJson.put("FormId", formId); queryJson.put("FormId", formId);
queryJson.put("FieldKeys", fieldKeys); queryJson.put("FieldKeys", fieldKeys);
queryJson.put("OrderString", orderString); queryJson.put("OrderString", orderString);
@ -64,7 +70,15 @@ public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService {
queryJson.put("StartRow", startRow); queryJson.put("StartRow", startRow);
queryJson.put("Limit", limit); queryJson.put("Limit", limit);
queryJson.put("SubSystemId", ""); queryJson.put("SubSystemId", "");
//条件查询 //条件查询
System.out.println("maxErpModifyDate=" + maxErpModifyDate);
if (StringUtils.isNotEmpty(maxErpModifyDate)) {
String filterString = "FModifyDate >'" + maxErpModifyDate + "'";
queryJson.put("FilterString", filterString);
}
System.out.println(queryJson.toString());
// if (StringUtils.isNotEmpty(beginTime) && StringUtils.isNotEmpty(endTime)) { // if (StringUtils.isNotEmpty(beginTime) && StringUtils.isNotEmpty(endTime)) {
// String filterString = "FCreateDate >'" + beginTime + "' AND '" + endTime + "' >FCreateDate"; // String filterString = "FCreateDate >'" + beginTime + "' AND '" + endTime + "' >FCreateDate";
// queryJson.put("FilterString", filterString); // queryJson.put("FilterString", filterString);
@ -76,66 +90,83 @@ public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService {
String result = api.billQuery(queryJson.toString()); String result = api.billQuery(queryJson.toString());
JSONArray resultArray = JSONArray.parseArray(result); if (StringUtils.isEmpty(result)) {
// System.out.println(resultArray.size()); return 1;
// System.out.println("供应商查询接口: " + result); }
JSONArray resultArray = JSONArray.parseArray(result);
if (resultArray == null) {
return 1;
}
List<MesBaseSupplierInfo> toInsertSupplierInfoList = new ArrayList<>();
List<MesBaseSupplierInfo> toUpdateSupplierInfoList = new ArrayList<>();
Date currentDate = new Date();
for (int i = 0; i < resultArray.size(); i++) { for (int i = 0; i < resultArray.size(); i++) {
try { try {
JSONObject resultObject = (JSONObject) resultArray.get(i); JSONObject resultObject = (JSONObject) resultArray.get(i);
MesBaseSupplierInfo mesBaseSupplierInfo = new MesBaseSupplierInfo(); MesBaseSupplierInfo mesBaseSupplierInfo = new MesBaseSupplierInfo();
//供应商编号 //供应商编号
String FNumber = (String) resultObject.get("FNumber"); String FNumber = resultObject.getString("FNumber");
//供应商名称 //供应商名称
String FName = (String) resultObject.get("FName"); String FName = resultObject.getString("FName");
//erp主键id //erp主键id
Integer erpId = resultObject.get("FSupplierId") == null ? 0 : (Integer) resultObject.get("FSupplierId"); Long erpId = resultObject.getLong("FSupplierId");
//创建时间 //创建时间
String FCreateDate = (String) resultObject.get("FCreateDate"); String FCreateDate = resultObject.getString("FCreateDate");
//更新时间 //更新时间
String FModifyDate = (String) resultObject.get("FModifyDate"); String FModifyDate = resultObject.getString("FModifyDate");
//审核日期 //审核日期
String FAuditDate = (String) resultObject.get("FAuditDate"); String FAuditDate = resultObject.getString("FAuditDate");
mesBaseSupplierInfo.setErpId(Long.valueOf(erpId));
List<MesBaseSupplierInfo> mesBaseSupplierInfos = mesBaseSupplierInfoMapper.selectMesBaseSupplierInfoList(mesBaseSupplierInfo);
mesBaseSupplierInfo.setErpId(erpId);
mesBaseSupplierInfo.setSupplierCode(FNumber); mesBaseSupplierInfo.setSupplierCode(FNumber);
mesBaseSupplierInfo.setSupplierName(FName); mesBaseSupplierInfo.setSupplierName(FName);
//供应商状态 //供应商状态
mesBaseSupplierInfo.setSupplierStatus("1"); mesBaseSupplierInfo.setSupplierStatus("1");
// mesBaseSupplierInfo.setCreateBy(FCreatorId); mesBaseSupplierInfo.setUpdateTime(currentDate);
// mesBaseSupplierInfo.setUpdateBy(FModifierId);
if (StringUtils.isNotEmpty(FCreateDate)) { if (StringUtils.isNotEmpty(FCreateDate)) {
mesBaseSupplierInfo.setCreateTime(conversionERPTime(FCreateDate)); mesBaseSupplierInfo.setCreateTime(conversionERPTime(FCreateDate));
} }
if (StringUtils.isNotEmpty(FModifyDate)) { if (StringUtils.isNotEmpty(FModifyDate)) {
mesBaseSupplierInfo.setUpdateTime(conversionERPTime(FModifyDate)); mesBaseSupplierInfo.setErpModifyDate(conversionERPTime(FModifyDate));
} }
if (StringUtils.isNotEmpty(FAuditDate)) { if (StringUtils.isNotEmpty(FAuditDate)) {
mesBaseSupplierInfo.setAuditDate(conversionERPTime(FAuditDate)); mesBaseSupplierInfo.setAuditDate(conversionERPTime(FAuditDate));
} }
// System.out.println(mesBaseSupplierInfo); MesBaseSupplierInfo existedMesBaseSupplierInfo = mesBaseSupplierInfoMapper.selectMesBaseSupplierInfoByErpId(erpId);
//通过erp主键判断表中是否有重复的数据如果有则更新没有则插入
if (mesBaseSupplierInfos.size() == 0) { if (existedMesBaseSupplierInfo != null) {
mesBaseSupplierInfoMapper.insertMesBaseSupplierInfo(mesBaseSupplierInfo); mesBaseSupplierInfo.setSupplierId(existedMesBaseSupplierInfo.getSupplierId());
toUpdateSupplierInfoList.add(mesBaseSupplierInfo);
} else { } else {
//todo 主键 toInsertSupplierInfoList.add(mesBaseSupplierInfo);
mesBaseSupplierInfo.setSupplierId(mesBaseSupplierInfos.get(0).getSupplierId());
mesBaseSupplierInfoMapper.updateMesBaseSupplierInfo(mesBaseSupplierInfo);
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
if (!toInsertSupplierInfoList.isEmpty()) {
mesBaseSupplierInfoMapper.batchMesBaseSupplierInfo(toInsertSupplierInfoList);
}
if (!toUpdateSupplierInfoList.isEmpty()) {
for (MesBaseSupplierInfo toUpdatedSupplierInfo : toUpdateSupplierInfoList) {
mesBaseSupplierInfoMapper.updateMesBaseSupplierInfo(toUpdatedSupplierInfo);
}
}
System.out.println("size:"+resultArray.size());
//如果返回的数组的数量等于分页数量,则继续获取下一页数据
if (resultArray.size() == limit) { if (resultArray.size() == limit) {
// System.out.println(startRow); // System.out.println(startRow);
//通过递归同步所有供应商,测试先不用 //通过递归同步所有供应商,测试先不用
int i = syncSupplierInfoFromErp(startRow + resultArray.size()); int i = syncSupplierInfoFromErp(startRow + resultArray.size(), maxErpModifyDate);
// return i; // return i;
return 1; return 1;
} else { } else {
@ -151,6 +182,15 @@ public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService {
*/ */
@Override @Override
public int syncMaterialInfoFromErp(int startRow) throws Exception { public int syncMaterialInfoFromErp(int startRow) throws Exception {
String maxErpModifyDate = mesBaseMaterialInfoMapper.selectMaxErpModifyDate();
return syncMaterialInfoFromErp(startRow, maxErpModifyDate);
}
/**
* @throws Exception
* @Description:ERP使
*/
public int syncMaterialInfoFromErp(int startRow, String maxErpModifyDate) throws Exception {
K3CloudApi api = new K3CloudApi(); K3CloudApi api = new K3CloudApi();
String FDocumentStatus = "C"; String FDocumentStatus = "C";
@ -162,7 +202,7 @@ public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService {
String orderString = ""; String orderString = "";
int topRowCount = 0; int topRowCount = 0;
// int startRow = 0; // int startRow = 0;
int limit = 20; // int limit = 20;
queryJson.put("FormId", formId); queryJson.put("FormId", formId);
queryJson.put("FieldKeys", fieldKeys); queryJson.put("FieldKeys", fieldKeys);
queryJson.put("OrderString", orderString); queryJson.put("OrderString", orderString);
@ -170,8 +210,8 @@ public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService {
queryJson.put("StartRow", startRow); queryJson.put("StartRow", startRow);
queryJson.put("Limit", limit); queryJson.put("Limit", limit);
queryJson.put("SubSystemId", ""); queryJson.put("SubSystemId", "");
//条件查询 //条件查询
String maxErpModifyDate = mesBaseMaterialInfoMapper.getMaxErpModifyDate();
if (StringUtils.isNotEmpty(maxErpModifyDate)) { if (StringUtils.isNotEmpty(maxErpModifyDate)) {
String filterString = "FModifyDate >'" + maxErpModifyDate + "'"; String filterString = "FModifyDate >'" + maxErpModifyDate + "'";
queryJson.put("FilterString", filterString); queryJson.put("FilterString", filterString);
@ -179,50 +219,60 @@ public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService {
System.out.println(queryJson.toString()); System.out.println(queryJson.toString());
String result = api.billQuery(queryJson.toString()); String result = api.billQuery(queryJson.toString());
if (StringUtils.isEmpty(result)) {
return 1;
}
JSONArray resultArray = JSONArray.parseArray(result); JSONArray resultArray = JSONArray.parseArray(result);
if (resultArray == null) {
return 1;
}
System.out.println("物料单据查询接口: " + result); System.out.println("物料单据查询接口: " + result);
List<MesBaseMaterialInfo> toInsertMaterialInfoList = new ArrayList<>(); List<MesBaseMaterialInfo> toInsertMaterialInfoList = new ArrayList<>();
List<MesBaseMaterialInfo> toUpdateMaterialInfoList = new ArrayList<>(); List<MesBaseMaterialInfo> toUpdateMaterialInfoList = new ArrayList<>();
Date currentDate = new Date();
for (int i = 0; i < resultArray.size(); i++) { for (int i = 0; i < resultArray.size(); i++) {
JSONObject resultObject = (JSONObject) resultArray.get(i); JSONObject resultObject = (JSONObject) resultArray.get(i);
MesBaseMaterialInfo mesBaseMaterialInfo = new MesBaseMaterialInfo(); MesBaseMaterialInfo mesBaseMaterialInfo = new MesBaseMaterialInfo();
//erp主键 //erp主键
Integer erpId = (Integer) resultObject.get("FMaterialId"); Long erpId = resultObject.getLong("FMaterialId");
//物料编码 //物料编码
String materialCode = (String) resultObject.get("FNumber"); String materialCode = resultObject.getString("FNumber");
//物料名称 //物料名称
String materialName = (String) resultObject.get("FName"); String materialName = resultObject.getString("FName");
//计量单位ID //计量单位ID
Integer materaialUnitId = resultObject.get("FBaseUnitId") == null ? null : (Integer) resultObject.get("FBaseUnitId"); Long materialUnitId = resultObject.getLong("FBaseUnitId");
//物料规格 //物料规格
String materialSpec = resultObject.get("FSpecification") == null ? null : (String) resultObject.get("FSpecification"); String materialSpec = resultObject.getString("FSpecification");
//净重 //净重
BigDecimal netWeight = resultObject.get("FNETWEIGHT") == null ? null : (BigDecimal) resultObject.get("FNETWEIGHT"); BigDecimal netWeight = resultObject.getBigDecimal("FNETWEIGHT");
//毛重 //毛重
BigDecimal grossWeight = resultObject.get("FGROSSWEIGHT") == null ? null : (BigDecimal) resultObject.get("FGROSSWEIGHT"); BigDecimal grossWeight = resultObject.getBigDecimal("FGROSSWEIGHT");
//创建时间 //创建时间
String createDateStr = resultObject.get("FCreateDate") == null ? null : (String) resultObject.get("FCreateDate"); String createDateStr = resultObject.getString("FCreateDate");
//erp最后更新日期 //erp最后更新日期
String modifyDateStr = resultObject.get("FModifyDate") == null ? null : (String) resultObject.get("FModifyDate"); String modifyDateStr = resultObject.getString("FModifyDate");
//审核日期 //审核日期
String approveDateStr = resultObject.get("FApproveDate") == null ? null : (String) resultObject.get("FApproveDate"); String approveDateStr = resultObject.getString("FApproveDate");
//创建组织 //创建组织
Integer createOrgId = resultObject.get("FCreateOrgId") == null ? null : (Integer) resultObject.get("FCreateOrgId"); Long createOrgId = resultObject.getLong("FCreateOrgId");
//使用组织 //使用组织
Integer useOrgId = resultObject.get("FUseOrgId") == null ? null : (Integer) resultObject.get("FUseOrgId"); Long useOrgId = resultObject.getLong("FUseOrgId");
//采购计量单价 //采购计量单价
Integer purchasePriceUnitId = resultObject.get("FPurchasePriceUnitId") == null ? null : (Integer) resultObject.get("FPurchasePriceUnit"); Long purchasePriceUnitId = resultObject.getLong("FPurchasePriceUnitId");
mesBaseMaterialInfo.setErpId(erpId);
mesBaseMaterialInfo.setMaterialCode(materialCode); mesBaseMaterialInfo.setMaterialCode(materialCode);
mesBaseMaterialInfo.setMaterialName(materialName); mesBaseMaterialInfo.setMaterialName(materialName);
mesBaseMaterialInfo.setMaterialUnitId(Long.valueOf(materaialUnitId)); mesBaseMaterialInfo.setMaterialUnitId(materialUnitId);
mesBaseMaterialInfo.setMaterialSpec(materialSpec); mesBaseMaterialInfo.setMaterialSpec(materialSpec);
mesBaseMaterialInfo.setNetWeight(netWeight); mesBaseMaterialInfo.setNetWeight(netWeight);
mesBaseMaterialInfo.setGrossWeight(grossWeight); mesBaseMaterialInfo.setGrossWeight(grossWeight);
mesBaseMaterialInfo.setCreateOrgId(Long.valueOf(createOrgId)); mesBaseMaterialInfo.setCreateOrgId(createOrgId);
mesBaseMaterialInfo.setUseOrgId(Long.valueOf(useOrgId)); mesBaseMaterialInfo.setUseOrgId(useOrgId);
mesBaseMaterialInfo.setPurchasePriceUnitId(Long.valueOf(purchasePriceUnitId)); mesBaseMaterialInfo.setUpdateTime(currentDate);
mesBaseMaterialInfo.setPurchasePriceUnitId(purchasePriceUnitId);
if (StringUtils.isNotEmpty(createDateStr)) { if (StringUtils.isNotEmpty(createDateStr)) {
mesBaseMaterialInfo.setCreateTime(conversionERPTime(createDateStr)); mesBaseMaterialInfo.setCreateTime(conversionERPTime(createDateStr));
@ -236,16 +286,13 @@ public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService {
mesBaseMaterialInfo.setApproveDate(conversionERPTime(approveDateStr)); mesBaseMaterialInfo.setApproveDate(conversionERPTime(approveDateStr));
} }
MesBaseMaterialInfo existedMesBaseMaterialInfo = mesBaseMaterialInfoMapper.selectMesBaseMaterialInfoByErpId(erpId);
MesBaseMaterialInfo existedMesBaseMaterialInfo = mesBaseMaterialInfoMapper.selectMesBaseMaterialInfoByErpId(Long.valueOf(erpId));
if (existedMesBaseMaterialInfo != null) { if (existedMesBaseMaterialInfo != null) {
mesBaseMaterialInfo.setMaterialId(existedMesBaseMaterialInfo.getMaterialId()); mesBaseMaterialInfo.setMaterialId(existedMesBaseMaterialInfo.getMaterialId());
toUpdateMaterialInfoList.add(mesBaseMaterialInfo); toUpdateMaterialInfoList.add(mesBaseMaterialInfo);
} else { } else {
toInsertMaterialInfoList.add(mesBaseMaterialInfo); toInsertMaterialInfoList.add(mesBaseMaterialInfo);
} }
} }
if (!toInsertMaterialInfoList.isEmpty()) { if (!toInsertMaterialInfoList.isEmpty()) {
@ -257,11 +304,12 @@ public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService {
} }
} }
System.out.println("size:"+resultArray.size());
/**分页递归获取所有物料信息*/ /**分页递归获取所有物料信息*/
if (resultArray.size() == limit) { if (resultArray.size() == limit) {
// System.out.println(startRow); // System.out.println(startRow);
//通过递归同步所有物料信息,测试先不用 //通过递归同步所有物料信息,测试先不用
int i = syncMaterialInfoFromErp(startRow + resultArray.size()); int i = syncMaterialInfoFromErp(startRow + resultArray.size(), maxErpModifyDate);
// return i; // return i;
return 1; return 1;
} else { } else {
@ -271,14 +319,23 @@ public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService {
} }
/**
* @throws Exception
* @DescrptionERP
*/
@Override
public int syncSaleOrderFromErp(int startRow) throws Exception {
String maxErpModifyDate = mesSaleOrderMapper.selectMaxErpModifyDate();
return syncSaleOrderFromErp(startRow, maxErpModifyDate);
}
/** /**
* @throws Exception * @throws Exception
* @DescrptionERP * @DescrptionERP
*/ */
public int syncSaleOrderFromErp(int startRow) throws Exception { public int syncSaleOrderFromErp(int startRow,String maxErpModifyDate) throws Exception {
K3CloudApi api = new K3CloudApi(); K3CloudApi api = new K3CloudApi();
String FDocumentStatus = "C"; // String FDocumentStatus = "C";
// String json = "{\n" + // String json = "{\n" +
// " \"FormId\": \"SAL_SaleOrder\",\n" + // " \"FormId\": \"SAL_SaleOrder\",\n" +
// " \"FieldKeys\": \"FID,FBillNo,FApproveDate,FSaleOrderEntry_FEntryID,FMaterialId.FNumber,FMaterialName,FQty ,FMinPlanDeliveryDate,\",\n" + // " \"FieldKeys\": \"FID,FBillNo,FApproveDate,FSaleOrderEntry_FEntryID,FMaterialId.FNumber,FMaterialName,FQty ,FMinPlanDeliveryDate,\",\n" +
@ -292,18 +349,18 @@ public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService {
JSONObject queryJson = new JSONObject(); JSONObject queryJson = new JSONObject();
String formId = "SAL_SaleOrder"; String formId = "SAL_SaleOrder";
String fieldKeys = "FID,FBillNo,FApproveDate,FSaleOrderEntry_FEntryID,FMaterialId.FNumber,FMaterialName," + String fieldKeys = "FID,FBillNo,FApproveDate,FSaleOrderEntry_FEntryID,FMaterialId,FMaterialId.FNumber,FMaterialName,FDocumentStatus," +
"FQty,FModifyDate,FMinPlanDeliveryDate,FAuxPropId,FStockId,FOwnerId,FSaleDeptId,FPrice,FStockOrgId"; "FQty,FCreateDate,FModifyDate,FMinPlanDeliveryDate,FAuxPropId,FStockId,FOwnerId,FSaleDeptId,FPrice,FStockOrgId,F_TOND_Base";
// //
String filterString = "FNumber='98010102'"; // String filterString = "FNumber='98010102'";
filterString = ""; // String filterString = "";
String orderString = ""; String orderString = "";
int topRowCount = 0; int topRowCount = 0;
// int startRow = 0; // int startRow = 0;
int limit = 10; // int limit = 10;
queryJson.put("FormId", formId); queryJson.put("FormId", formId);
queryJson.put("FieldKeys", fieldKeys); queryJson.put("FieldKeys", fieldKeys);
queryJson.put("FilterString", filterString); // queryJson.put("FilterString", filterString);
queryJson.put("OrderString", orderString); queryJson.put("OrderString", orderString);
queryJson.put("TopRowCount", topRowCount); queryJson.put("TopRowCount", topRowCount);
queryJson.put("StartRow", startRow); queryJson.put("StartRow", startRow);
@ -311,66 +368,83 @@ public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService {
queryJson.put("SubSystemId", ""); queryJson.put("SubSystemId", "");
System.out.println(queryJson.toString()); System.out.println(queryJson.toString());
//条件查询
System.out.println("maxErpModifyDate=" + maxErpModifyDate);
if (StringUtils.isNotEmpty(maxErpModifyDate)) {
String filterString = "FModifyDate >'" + maxErpModifyDate + "'";
queryJson.put("FilterString", filterString);
}
System.out.println(queryJson.toString());
String result = api.billQuery(queryJson.toString()); String result = api.billQuery(queryJson.toString());
JSONArray resultArray = JSONArray.parseArray(result); JSONArray resultArray = JSONArray.parseArray(result);
System.out.println(resultArray.size()); System.out.println(resultArray.size());
System.out.println("销售订单单据查询接口: " + result); System.out.println("销售订单单据查询接口: " + result);
List<MesSaleOrder> mesSaleOrderListInsert = new ArrayList<>(); List<MesSaleOrder> toInsertSaleOrderList = new ArrayList<>();
List<MesSaleOrder> mesSaleOrderListUpdate = new ArrayList<>(); List<MesSaleOrder> toUpdateSaleOrderList = new ArrayList<>();
Date currentDate = new Date();
for (int i = 0; i < resultArray.size(); i++) { for (int i = 0; i < resultArray.size(); i++) {
try { try {
JSONObject resultObject = (JSONObject) resultArray.get(i); JSONObject resultObject = (JSONObject) resultArray.get(i);
MesSaleOrder mesSaleOrder = new MesSaleOrder(); MesSaleOrder mesSaleOrder = new MesSaleOrder();
//erp主键 //erp主键
Integer erpId = (Integer) resultObject.get("FID"); Long erpId = resultObject.getLong("FID");
//销售订单编号id //销售订单编号id
String saleOrderCode = (String) resultObject.get("FBillNo"); String saleOrderCode = resultObject.getString("FBillNo");
//审核日期 //审核日期
String approveDate = resultObject.get("FApproveDate") == null ? null : (String) resultObject.get("FApproveDate"); String approveDate = resultObject.getString("FApproveDate");
//订单明细id //订单明细id
Integer fentyrId = resultObject.get("FSaleOrderEntry_FEntryID")==null?0:(Integer) resultObject.get("FSaleOrderEntry_FEntryID"); Long fentyrId = resultObject.getLong("FSaleOrderEntry.FEntryID");
//ERP物料id
Long fmaterialId = resultObject.getLong("FMaterialId");
//物料编码 //物料编码
String materialCode = resultObject.get("FMaterialId.FNumber")==null?null:(String) resultObject.get("FMaterialId.FNumber"); String materialCode = resultObject.getString("FMaterialId.FNumber");
//物料名称 //物料名称
String materialName = resultObject.get("FMaterialName")==null?null:(String) resultObject.get("FMaterialName"); String materialName = resultObject.getString("FMaterialName");
//订单数量 //订单数量
BigDecimal orderAmount = resultObject.get("FQty")==null?new BigDecimal(0):(BigDecimal) resultObject.get("FQty"); BigDecimal orderAmount = resultObject.getBigDecimal("FQty");
//erp最后修改日期 //erp最后修改日期
String erpModifyDate = resultObject.get("FModifyDate")==null?null:(String) resultObject.get("FModifyDate"); String erpModifyDate = resultObject.getString("FModifyDate");
//计划交货日期 //计划交货日期
String planDeliveryDate = resultObject.get("FMinPlanDeliveryDate")==null?null:(String) resultObject.get("FMinPlanDeliveryDate"); String planDeliveryDate = resultObject.getString("FMinPlanDeliveryDate");
//辅助属性 //辅助属性
Integer auxPropId = resultObject.get("FAuxPropId")==null?0:(Integer) resultObject.get("FAuxPropId"); Long auxPropId = resultObject.getLong("FAuxPropId");
//仓库 //仓库
Integer stockId = resultObject.get("FStockId")==null?0:(Integer) resultObject.get("FStockId"); Long stockId = resultObject.getLong("FStockId");
//货主 //货主
Integer ownerId = resultObject.get("FOwnerId")==null?0:(Integer) resultObject.get("FOwnerId"); Long ownerId = resultObject.getLong("FOwnerId");
//销售部门 //销售部门
Integer saleDeptId = resultObject.get("FSaleDeptId")==null?0:(Integer) resultObject.get("FSaleDeptId"); Long saleDeptId = resultObject.getLong("FSaleDeptId");
//单价 //单价
BigDecimal price = resultObject.get("FPrice")==null?new BigDecimal(0):(BigDecimal) resultObject.get("FPrice"); BigDecimal price = resultObject.getBigDecimal("FPrice");
//库存组织 //库存组织
Integer stockOrgId = resultObject.get("FStockOrgId")==null?0:(Integer) resultObject.get("FStockOrgId"); Long stockOrgId = resultObject.getLong("FStockOrgId");
//单据状态
String documentStatus = resultObject.getString("FDocumentStatus");
String tondBase = resultObject.getString("F.TOND.Base");
String FCreateDate = resultObject.getString("FCreateDate");
mesSaleOrder.setErpId(Long.valueOf(erpId)); mesSaleOrder.setErpId(erpId);
mesSaleOrder.setSaleorderCode(saleOrderCode); mesSaleOrder.setSaleorderCode(saleOrderCode);
mesSaleOrder.setFentryId(Long.valueOf(fentyrId)); mesSaleOrder.setFentryId(fentyrId);
//物料id mesSaleOrder.setDocumentStatus(documentStatus);
if (materialCode!=null){ //erp物料id
if(mesBaseMaterialInfoMapper.selectMesBaseMaterialInfoByCode(materialCode)!=null){ mesSaleOrder.setMaterialId(fmaterialId);
mesSaleOrder.setMaterialId (mesBaseMaterialInfoMapper.selectMesBaseMaterialInfoByCode(materialCode).getMaterialId());
}
}
mesSaleOrder.setMaterialCode(materialCode); mesSaleOrder.setMaterialCode(materialCode);
mesSaleOrder.setMaterialName(materialName); mesSaleOrder.setMaterialName(materialName);
mesSaleOrder.setOrderAmount(orderAmount); mesSaleOrder.setOrderAmount(orderAmount);
mesSaleOrder.setAuxPropId(Long.valueOf(auxPropId)); mesSaleOrder.setAuxPropId(auxPropId);
mesSaleOrder.setStockId(Long.valueOf(stockId)); mesSaleOrder.setStockId(stockId);
mesSaleOrder.setOwnerId(Long.valueOf(ownerId)); mesSaleOrder.setOwnerId(ownerId);
mesSaleOrder.setSaleDeptId(Long.valueOf(saleDeptId)); mesSaleOrder.setSaleDeptId(saleDeptId);
mesSaleOrder.setPrice(price); mesSaleOrder.setPrice(price);
mesSaleOrder.setStockOrgId(Long.valueOf(stockOrgId)); mesSaleOrder.setStockOrgId(stockOrgId);
mesSaleOrder.setTondBase(tondBase);
mesSaleOrder.setUpdateTime(currentDate);
if (StringUtils.isNotEmpty(FCreateDate)) {
mesSaleOrder.setCreateTime(conversionERPTime(FCreateDate));
}
if (planDeliveryDate != null) { if (planDeliveryDate != null) {
mesSaleOrder.setPlanDeliveryDate(conversionERPTime(planDeliveryDate)); mesSaleOrder.setPlanDeliveryDate(conversionERPTime(planDeliveryDate));
} }
@ -380,40 +454,37 @@ public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService {
if (approveDate != null) { if (approveDate != null) {
mesSaleOrder.setApproveDate(conversionERPTime(approveDate)); mesSaleOrder.setApproveDate(conversionERPTime(approveDate));
} }
MesSaleOrder mesSaleOrder1 = mesSaleOrderMapper.selectMesSaleOrderByErpId(Long.valueOf(erpId));
if (mesSaleOrder1!=null){
mesSaleOrder.setSaleOrderId(mesSaleOrder1.getSaleOrderId());
mesSaleOrderMapper.insertMesSaleOrder(mesSaleOrder);
// mesSaleOrderListUpdate.add(mesSaleOrder);
}
else {
// mesSaleOrderListInsert.add(mesSaleOrder);
mesSaleOrderMapper.updateMesSaleOrder(mesSaleOrder);
}
// if (mesSaleOrderListInsert!=null){
// for (MesSaleOrder mesSaleOrders : mesSaleOrderListInsert){
// mesSaleOrderMapper.insertMesSaleOrder(mesSaleOrders);
// System.out.println(mesSaleOrders);
// }
// }
// if (mesSaleOrderListUpdate != null) {
// for (MesSaleOrder mesSaleOrders : mesSaleOrderListUpdate){
// mesSaleOrderMapper.updateMesSaleOrder(mesSaleOrders);
// System.out.println(mesSaleOrders);
// }
// }
MesSaleOrder existedMesSaleOrder = mesSaleOrderMapper.selectMesSaleOrderByUI(erpId, fentyrId);
if (existedMesSaleOrder != null) {
mesSaleOrder.setSaleOrderId(existedMesSaleOrder.getSaleOrderId());
toUpdateSaleOrderList.add(mesSaleOrder);
} else {
toInsertSaleOrderList.add(mesSaleOrder);
} }
catch (Exception e)
{ } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
if (!toInsertSaleOrderList.isEmpty()) {
mesSaleOrderMapper.batchMesBaseSaleOrder(toInsertSaleOrderList);
}
if (!toUpdateSaleOrderList.isEmpty()) {
for (MesSaleOrder toUpdatedSaleOrder : toUpdateSaleOrderList) {
mesSaleOrderMapper.updateMesSaleOrder(toUpdatedSaleOrder);
}
}
System.out.println("size:"+resultArray.size());
/**分页递归获取所有物料信息*/ /**分页递归获取所有物料信息*/
if (resultArray.size() == limit) { if (resultArray.size() == limit) {
// System.out.println(startRow); // System.out.println(startRow);
//通过递归同步所有物料信息,测试先不用 //通过递归同步所有物料信息,测试先不用
int i = syncSaleOrderFromErp(startRow + resultArray.size()); int i = syncSaleOrderFromErp(startRow + resultArray.size(),maxErpModifyDate);
// return i; // return i;
return 1; return 1;
} else { } else {
@ -423,27 +494,35 @@ public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService {
} }
/**
* @throws Exception
* @DescrptionERP
*/
@Override
public int syncProjectInfoFromErp(int startRow) throws Exception {
String maxErpModifyDate = mesProjectInfoMapper.selectMaxErpModifyDate();
return syncProjectInfoFromErp(startRow,maxErpModifyDate);
}
/** /**
* @throws Exception * @throws Exception
* @DescrptionERP * @DescrptionERP
*/ */
public int syncProjectInfoFromErp(int startRow) throws Exception { public int syncProjectInfoFromErp(int startRow,String maxErpModifyDate) throws Exception {
K3CloudApi api = new K3CloudApi(); K3CloudApi api = new K3CloudApi();
String FDocumentStatus = "C"; // String FDocumentStatus = "C";
JSONObject queryJson = new JSONObject(); JSONObject queryJson = new JSONObject();
String formId = "TOND_ProjectFile"; String formId = "TOND_ProjectFile";
String fieldKeys = "FID,FNumber,FName,FPlanDate,FDocumentStatus,FForbidStatus,FCreateDate,FModifyDate,FAuditDate"; String fieldKeys = "FID,FNumber,FName,FPlanDate,FDocumentStatus,FForbidStatus,FCreateDate,FModifyDate,FAuditDate";
String filterString = ""; // String filterString = "";
String orderString = ""; String orderString = "";
int topRowCount = 0; int topRowCount = 0;
// int startRow = 0; // int startRow = 0;
int limit = 20; // int limit = 20;
queryJson.put("FormId", formId); queryJson.put("FormId", formId);
queryJson.put("FieldKeys", fieldKeys); queryJson.put("FieldKeys", fieldKeys);
queryJson.put("FilterString", filterString); // queryJson.put("FilterString", filterString);
queryJson.put("OrderString", orderString); queryJson.put("OrderString", orderString);
queryJson.put("TopRowCount", topRowCount); queryJson.put("TopRowCount", topRowCount);
queryJson.put("StartRow", startRow); queryJson.put("StartRow", startRow);
@ -451,33 +530,42 @@ public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService {
queryJson.put("SubSystemId", ""); queryJson.put("SubSystemId", "");
System.out.println(queryJson.toString()); System.out.println(queryJson.toString());
//条件查询
System.out.println("maxErpModifyDate=" + maxErpModifyDate);
if (StringUtils.isNotEmpty(maxErpModifyDate)) {
String filterString = "FModifyDate >'" + maxErpModifyDate + "'";
queryJson.put("FilterString", filterString);
}
System.out.println(queryJson.toString());
String result = api.billQuery(queryJson.toString()); String result = api.billQuery(queryJson.toString());
JSONArray resultArray = JSONArray.parseArray(result); JSONArray resultArray = JSONArray.parseArray(result);
System.out.println(resultArray.size()); System.out.println(resultArray.size());
System.out.println("项目信息单据查询接口: " + result); System.out.println("项目信息单据查询接口: " + result);
List<MesProjectInfo> toInsertProjectInfoList = new ArrayList<>();
List<MesProjectInfo> toUpdateProjectInfoList = new ArrayList<>();
Date currentDate = new Date();
for (int i = 0; i < resultArray.size(); i++) { for (int i = 0; i < resultArray.size(); i++) {
try { try {
JSONObject resultObject = (JSONObject) resultArray.get(i); JSONObject resultObject = (JSONObject) resultArray.get(i);
MesProjectInfo mesProjectInfo = new MesProjectInfo(); MesProjectInfo mesProjectInfo = new MesProjectInfo();
List<MesProjectInfo> projectInfoListUpdate = new ArrayList<MesProjectInfo>(); Long erpId = resultObject.getLong("FID");
List<MesProjectInfo> projectInfoListInsert = new ArrayList<MesProjectInfo>(); String FNumber = resultObject.getString("FNumber");
String FName = resultObject.getString("FName");
String FDocumentStatus = resultObject.getString("FDocumentStatus");
String FForbidStatus = resultObject.getString("FForbidStatus");
String FAuditDate = resultObject.getString("FAuditDate");
String FModifyDate = resultObject.getString("FModifyDate");
String FCreateDate = resultObject.getString("FCreateDate");
Integer FID = resultObject.get("FID") == null ? 0 : (Integer) resultObject.get("FID"); mesProjectInfo.setErpId(erpId);
String FNumber = resultObject.get("FNumber") == null ? null : (String) resultObject.get("FNumber");
String FName = resultObject.get("FName") == null ? null : (String) resultObject.get("FName");
// String FDocumentStatus = resultObject.get("FDocumentStatus")==null? null:(String)resultObject.get("FDocumentStatus");
String FForbidStatus = resultObject.get("FForbidStatus") == null ? null : (String) resultObject.get("FForbidStatus");
String FAuditDate = resultObject.get("FAuditDate") == null ? null : (String) resultObject.get("FAuditDate");
String FModifyDate = resultObject.get("FModifyDate") == null ? null : (String) resultObject.get("FModifyDate");
String FCreateDate = resultObject.get("FCreateDate") == null ? null : (String) resultObject.get("FCreateDate");
mesProjectInfo.setErpId(Long.valueOf(FID));
mesProjectInfo.setProjectNo(FNumber); mesProjectInfo.setProjectNo(FNumber);
mesProjectInfo.setProjectName(FName); mesProjectInfo.setProjectName(FName);
mesProjectInfo.setDocumentStatus(FDocumentStatus); mesProjectInfo.setDocumentStatus(FDocumentStatus);
mesProjectInfo.setForbidStatus(FForbidStatus); mesProjectInfo.setForbidStatus(FForbidStatus);
mesProjectInfo.setIsFlag("1"); mesProjectInfo.setIsFlag("1");
mesProjectInfo.setUpdateTime(currentDate);
if (StringUtils.isNotEmpty(FAuditDate)) { if (StringUtils.isNotEmpty(FAuditDate)) {
mesProjectInfo.setAuditDate(conversionERPTime(FAuditDate)); mesProjectInfo.setAuditDate(conversionERPTime(FAuditDate));
} }
@ -488,38 +576,34 @@ public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService {
mesProjectInfo.setCreateTime(conversionERPTime(FCreateDate)); mesProjectInfo.setCreateTime(conversionERPTime(FCreateDate));
} }
// System.out.println(mesProjectInfo); // System.out.println(mesProjectInfo);
MesProjectInfo mesProjectInfo1 = mesProjectInfoMapper.selectMesProjectInfoByErpId(mesProjectInfo.getErpId()); MesProjectInfo existedProjectInfo = mesProjectInfoMapper.selectMesProjectInfoByErpId(erpId);
if (mesProjectInfo1 != null) if (existedProjectInfo != null) {
{ mesProjectInfo.setProjectId(existedProjectInfo.getProjectId());
mesProjectInfo.setProjectId(mesProjectInfo1.getProjectId()); toUpdateProjectInfoList.add(mesProjectInfo);
projectInfoListUpdate.add(mesProjectInfo); } else {
toInsertProjectInfoList.add(mesProjectInfo);
} }
else {
projectInfoListInsert.add(mesProjectInfo);
}
if (!projectInfoListUpdate.isEmpty()){
for (MesProjectInfo projectInfo : projectInfoListUpdate){
mesProjectInfoMapper.updateMesProjectInfo(projectInfo);
System.out.println(projectInfo);
}
}
if (!projectInfoListInsert.isEmpty()){
for (MesProjectInfo projectInfo : projectInfoListInsert){
mesProjectInfoMapper.insertMesProjectInfo(projectInfo);
System.out.println(projectInfo);
}
}
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
if (!toInsertProjectInfoList.isEmpty()) {
mesProjectInfoMapper.batchMesBaseProjectInfo(toInsertProjectInfoList);
}
if (!toUpdateProjectInfoList.isEmpty()) {
for (MesProjectInfo toUpdatedProjectInfo : toUpdateProjectInfoList) {
mesProjectInfoMapper.updateMesProjectInfo(toUpdatedProjectInfo);
}
}
System.out.println("size:"+resultArray.size());
/**分页递归获取所有物料信息*/ /**分页递归获取所有物料信息*/
if (resultArray.size() == limit) { if (resultArray.size() == limit) {
// System.out.println(startRow); // System.out.println(startRow);
//通过递归同步所有物料信息,测试先不用 //通过递归同步所有物料信息,测试先不用
int i = syncProjectInfoFromErp(startRow + resultArray.size()); int i = syncProjectInfoFromErp(startRow + resultArray.size(),maxErpModifyDate);
// return i; // return i;
return 1; return 1;
} else { } else {
@ -532,23 +616,31 @@ public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService {
* @throws Exception * @throws Exception
* @DescrptionERP * @DescrptionERP
*/ */
@Override
public int syncPurchaseOrderFromErp(int startRow) throws Exception { public int syncPurchaseOrderFromErp(int startRow) throws Exception {
String maxErpModifyDate = mesPurchaseOrderMapper.selectMaxErpModifyDate();
return syncPurchaseOrderFromErp(startRow,maxErpModifyDate);
}
/**
* @throws Exception
* @DescrptionERP
*/
public int syncPurchaseOrderFromErp(int startRow,String maxErpModifyDate) throws Exception {
K3CloudApi api = new K3CloudApi(); K3CloudApi api = new K3CloudApi();
String FDocumentStatus = "C"; // String FDocumentStatus = "C";
JSONObject queryJson = new JSONObject(); JSONObject queryJson = new JSONObject();
String formId = "PUR_PurchaseOrder"; String formId = "PUR_PurchaseOrder";
String fieldKeys = "FID,FBillNo,FApproveDate,FDocumentStatus,FPOOrderEntry_FEntryID,FMaterialId.FNumber,FMaterialId.FName," + String fieldKeys = "FID,FBillNo,FApproveDate,FDocumentStatus,FPOOrderEntry_FEntryID,FMaterialId,FMaterialId.FNumber,FMaterialId.FName," +
"FQty,FDeliveryDate,FUnitId,FStockUnitID,FPriceUnitID,FAuxPropId,FSrcBillNo,FPurchaseOrgId,F_TOND_Base,FSupplierId"; "FQty,FDeliveryDate,FCreateDate,FModifyDate,FUnitId,FStockUnitID,FPriceUnitID,FAuxPropId,FSrcBillNo,FPurchaseOrgId,F_TOND_Base,FSupplierId";
String filterString = ""; // String filterString = "";
String orderString = ""; String orderString = "";
int topRowCount = 0; int topRowCount = 0;
// int startRow = 0; // int startRow = 0;
int limit = 20; // int limit = 20;
queryJson.put("FormId", formId); queryJson.put("FormId", formId);
queryJson.put("FieldKeys", fieldKeys); queryJson.put("FieldKeys", fieldKeys);
queryJson.put("FilterString", filterString); // queryJson.put("FilterString", filterString);
queryJson.put("OrderString", orderString); queryJson.put("OrderString", orderString);
queryJson.put("TopRowCount", topRowCount); queryJson.put("TopRowCount", topRowCount);
queryJson.put("StartRow", startRow); queryJson.put("StartRow", startRow);
@ -556,92 +648,130 @@ public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService {
queryJson.put("SubSystemId", ""); queryJson.put("SubSystemId", "");
System.out.println(queryJson.toString()); System.out.println(queryJson.toString());
//条件查询
System.out.println("maxErpModifyDate=" + maxErpModifyDate);
if (StringUtils.isNotEmpty(maxErpModifyDate)) {
String filterString = "FModifyDate >'" + maxErpModifyDate + "'";
queryJson.put("FilterString", filterString);
}
System.out.println(queryJson.toString());
String result = api.billQuery(queryJson.toString()); String result = api.billQuery(queryJson.toString());
JSONArray resultArray = JSONArray.parseArray(result); JSONArray resultArray = JSONArray.parseArray(result);
System.out.println(resultArray.size()); System.out.println(resultArray.size());
System.out.println("采购订单单据查询接口: " + result); System.out.println("采购订单单据查询接口: " + result);
List<MesPurchaseOrder> mesPurchaseOrderListUpdate = new ArrayList<MesPurchaseOrder>();
List<MesPurchaseOrder> mesPurchaseOrderListInsert = new ArrayList<>(); List<MesPurchaseOrder> toInsertPurchaseOrderList = new ArrayList<>();
List<MesPurchaseOrder> toUpdatePurchaseOrderList = new ArrayList<>();
Date currentDate = new Date();
for (int i = 0; i < resultArray.size(); i++) { for (int i = 0; i < resultArray.size(); i++) {
try { try {
JSONObject resultObject = (JSONObject) resultArray.get(i); JSONObject resultObject = (JSONObject) resultArray.get(i);
MesPurchaseOrder mesPurchaseOrder = new MesPurchaseOrder(); MesPurchaseOrder mesPurchaseOrder = new MesPurchaseOrder();
//erpid //erpid
Integer erpId = resultObject.get("FID")==null?null :(Integer) resultObject.get("FID"); Long erpId = resultObject.getLong("FID");
//采购订单编号 //采购订单编号
String poNo = resultObject.get("FBillNo")==null?null :(String) resultObject.get("FBillNo"); String poNo = resultObject.getString("FBillNo");
//审核日期 //审核日期
String approveDate = resultObject.get("FApproveDate")==null?null :(String) resultObject.get("FApproveDate"); String approveDate = resultObject.getString("FApproveDate");
//单据状态 //单据状态
String documentStatus = resultObject.get("FDocumentStatus")==null?null :(String) resultObject.get("FDocumentStatus"); String documentStatus = resultObject.getString("FDocumentStatus");
//订单明细id //订单明细id
Integer fentryId = resultObject.get("FPOOrderEntry.FEntryID")==null?null:(Integer) resultObject.get("FPOOrderEntry.FEntryID"); Long fentryId = resultObject.getLong("FPOOrderEntry.FEntryID");
//erp物料ID
Long fmaterialId = resultObject.getLong("FMaterialId");
//物料编码 //物料编码
String materialCode = resultObject.get("FMaterialId.FNumber")==null?null:(String) resultObject.get("FMaterialId.FNumber"); String materialCode = resultObject.getString("FMaterialId.FNumber");
//物料名称 //物料名称
String materialName = resultObject.get("FMaterialId.FName")==null?null:(String) resultObject.get("FMaterialId.FName"); String materialName = resultObject.getString("FMaterialId.FName");
//订单计划数量 //订单计划数量
BigDecimal orderAmount = resultObject.get("FQty")==null?new BigDecimal(0):(BigDecimal) resultObject.get("FQty"); BigDecimal orderAmount = resultObject.getBigDecimal("FQty");
//计划交货日期 //计划交货日期
String planDeliveryDate = resultObject.get("FDeliveryDate")==null?null:(String) resultObject.get("FDeliveryDate"); String planDeliveryDate = resultObject.getString("FDeliveryDate");
//采购单位 //采购单位
Integer unitId = resultObject.get("FUnitId")==null?null:(Integer) resultObject.get("FUnitId"); Long unitId = resultObject.getLong("FUnitId");
//库存单位 //库存单位
Integer stockUnitId = resultObject.get("FStockUnitID")==null?null:(Integer) resultObject.get("FStockUnitID"); Long stockUnitId = resultObject.getLong("FStockUnitID");
//计价单位 //计价单位
Integer priceUnitId = resultObject.get("FPriceUnitID")==null?null:(Integer) resultObject.get("FPriceUnitID"); Long priceUnitId = resultObject.getLong("FPriceUnitID");
//辅助属性 //辅助属性
Integer auxPropId = resultObject.get("FAuxPropId") == null?null:(Integer) resultObject.get("FAuxPropId"); Long auxPropId = resultObject.getLong("FAuxPropId");
//源单编号 //源单编号
String srcBillNo = resultObject.get("FSrcBillNo") == null?null:(String) resultObject.get("FSrcBillNo"); String srcBillNo = resultObject.getString("FSrcBillNo");
//采购组织 //采购组织
Integer purchaseOrgId = resultObject.get("FPurchaseOrgId") ==null?null:(Integer) resultObject.get("FPurchaseOrgId"); Long purchaseOrgId = resultObject.getLong("FPurchaseOrgId");
//京源项目 //京源项目
String tondBase = resultObject.get("F_TOND_Base")==null?null:(String) resultObject.get("F_TOND_Base"); String tondBase = resultObject.getString("F.TOND.Base");
//供应商id //供应商id
Integer supplierId = resultObject.get("FSupplierId")==null?null:(Integer) resultObject.get("FSupplierId"); Long supplierId = resultObject.getLong("FSupplierId");
mesPurchaseOrder.setErpId(Long.valueOf(erpId)); //创建时间
String FCreateDate = resultObject.getString("FCreateDate");
//更新时间
String FModifyDate = resultObject.getString("FModifyDate");
mesPurchaseOrder.setErpId(erpId);
mesPurchaseOrder.setPoNo(poNo); mesPurchaseOrder.setPoNo(poNo);
mesPurchaseOrder.setDocumentStatus(documentStatus); mesPurchaseOrder.setDocumentStatus(documentStatus);
mesPurchaseOrder.setFentryId(Long.valueOf(fentryId)); mesPurchaseOrder.setFentryId(fentryId);
mesPurchaseOrder.setMaterialId(fmaterialId);
mesPurchaseOrder.setMaterialCode(materialCode); mesPurchaseOrder.setMaterialCode(materialCode);
mesPurchaseOrder.setMaterialCode(materialName); mesPurchaseOrder.setMaterialName(materialName);
mesPurchaseOrder.setOrderAmount(orderAmount); mesPurchaseOrder.setOrderAmount(orderAmount);
mesPurchaseOrder.setUnitId(unitId.toString()); mesPurchaseOrder.setUnitId(unitId);
mesPurchaseOrder.setStockUnitId(Long.valueOf(stockUnitId)); mesPurchaseOrder.setStockUnitId(stockUnitId);
mesPurchaseOrder.setPriceUnitId(Long.valueOf(priceUnitId)); mesPurchaseOrder.setPriceUnitId(priceUnitId);
mesPurchaseOrder.setAuxPropId(Long.valueOf(auxPropId)); mesPurchaseOrder.setAuxPropId(auxPropId);
mesPurchaseOrder.setSrcBillNo(srcBillNo); mesPurchaseOrder.setSrcBillNo(srcBillNo);
mesPurchaseOrder.setPurchaseOrgId(Long.valueOf(purchaseOrgId)); mesPurchaseOrder.setPurchaseOrgId(purchaseOrgId);
mesPurchaseOrder.setTondBase(tondBase); mesPurchaseOrder.setTondBase(tondBase);
mesPurchaseOrder.setSupplierId(Long.valueOf(supplierId)); mesPurchaseOrder.setSupplierId(supplierId);
mesPurchaseOrder.setUpdateTime(currentDate);
if (approveDate != null) { if (approveDate != null) {
mesPurchaseOrder.setApproveDate(conversionERPTime(approveDate)); mesPurchaseOrder.setApproveDate(conversionERPTime(approveDate));
} }
if (planDeliveryDate != null) { if (planDeliveryDate != null) {
mesPurchaseOrder.setPlanDeliveryDate(conversionERPTime(planDeliveryDate)); mesPurchaseOrder.setPlanDeliveryDate(conversionERPTime(planDeliveryDate));
} }
MesPurchaseOrder mesPurchaseOrder1 = mesPurchaseOrderMapper.selectMesPurchaseOrderByErpId(Long.valueOf(erpId)); if (StringUtils.isNotEmpty(FCreateDate)) {
if (mesPurchaseOrder1!=null){ mesPurchaseOrder.setCreateTime(conversionERPTime(FCreateDate));
mesPurchaseOrder.setPurchaseOrgId(mesPurchaseOrder1.getPurchaseOrgId());
mesPurchaseOrderMapper.updateMesPurchaseOrder(mesPurchaseOrder);
} }
else { if (StringUtils.isNotEmpty(FModifyDate)) {
mesPurchaseOrderMapper.insertMesPurchaseOrder(mesPurchaseOrder); mesPurchaseOrder.setErpModifyDate(conversionERPTime(FModifyDate));
} }
// if (StringUtils.isNotEmpty(FAuditDate)) {
// mesPurchaseOrder.setAuditDate(conversionERPTime(FAuditDate));
// }
MesPurchaseOrder existedPurchaseOrder = mesPurchaseOrderMapper.selectMesPurchaseOrderByUI(erpId, fentryId);
if (existedPurchaseOrder != null) {
mesPurchaseOrder.setPurchaseOrderId(existedPurchaseOrder.getPurchaseOrderId());
toUpdatePurchaseOrderList.add(mesPurchaseOrder);
} else {
toInsertPurchaseOrderList.add(mesPurchaseOrder);
}
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
if (!toInsertPurchaseOrderList.isEmpty()) {
mesPurchaseOrderMapper.batchMesBasePurchaseOrder(toInsertPurchaseOrderList);
}
if (!toUpdatePurchaseOrderList.isEmpty()) {
for (MesPurchaseOrder toUpdatePurchaseOrder : toUpdatePurchaseOrderList) {
mesPurchaseOrderMapper.updateMesPurchaseOrder(toUpdatePurchaseOrder);
}
}
System.out.println("size:"+resultArray.size());
/**分页递归获取所有物料信息*/ /**分页递归获取所有物料信息*/
if (resultArray.size() == limit) { if (resultArray.size() == limit) {
// System.out.println(startRow); // System.out.println(startRow);
//通过递归同步所有物料信息,测试先不用 //通过递归同步所有物料信息,测试先不用
int i = syncPurchaseOrderFromErp(startRow + resultArray.size()); int i = syncPurchaseOrderFromErp(startRow + resultArray.size(),maxErpModifyDate);
// return i; // return i;
return 1; return 1;
} else { } else {
@ -651,8 +781,10 @@ public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService {
} }
public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception {
KingdeeErpSyncServiceImpl k = new KingdeeErpSyncServiceImpl();
k.syncProjectInfoFromErp(0,"");
// int i = syncSupplierInfoFromErp(0); // int i = syncSupplierInfoFromErp(0);
// syncMaterialInfoFromErp(); // syncMaterialInfoFromErpTest(0);
// syncSaleOrderFromErp(); // syncSaleOrderFromErp();
// syncPurchaseOrderFromErp(); // syncPurchaseOrderFromErp();
// syncProjectInfoFromErp(); // syncProjectInfoFromErp();
@ -664,4 +796,51 @@ public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService {
Date date = DateUtils.dateTime("yyyy-MM-dd HH:mm:ss", ERPTime); Date date = DateUtils.dateTime("yyyy-MM-dd HH:mm:ss", ERPTime);
return date; return date;
} }
public static int syncMaterialInfoFromErpTest(int startRow) throws Exception {
K3CloudApi api = new K3CloudApi();
String FDocumentStatus = "C";
JSONObject queryJson = new JSONObject();
String formId = "BD_Material";
String fieldKeys = "FMaterialId,FNumber,FName,FDocumentStatus,FForbidStatus,FMaterialGroup.FNUMBER,FBaseUnitId,FSpecification,FNETWEIGHT,FGROSSWEIGHT," +
"FCreateDate,FModifyDate,FApproveDate,FCreateOrgId,FUseOrgId,FPurchasePriceUnitId";
// String filterString = "FNumber='98010102'";
String orderString = "";
int topRowCount = 0;
// int startRow = 0;
// int limit = 20;
queryJson.put("FormId", formId);
queryJson.put("FieldKeys", fieldKeys);
queryJson.put("OrderString", orderString);
queryJson.put("TopRowCount", topRowCount);
queryJson.put("StartRow", startRow);
queryJson.put("Limit", limit);
queryJson.put("SubSystemId", "");
//条件查询
String filterString = "FNumber ='01010001'";
queryJson.put("FilterString", filterString);
System.out.println(queryJson.toString());
String result = api.billQuery(queryJson.toString());
if (StringUtils.isEmpty(result)) {
return 1;
}
JSONArray resultArray = JSONArray.parseArray(result);
if (resultArray == null) {
return 1;
}
System.out.println("物料单据查询接口: " + result);
return 1;
}
} }

@ -243,7 +243,6 @@
<select id="selectMaxErpModifyDate" resultType="String"> <select id="selectMaxErpModifyDate" resultType="String">
<include refid="selectMesBaseMaterialInfoVo"/>
SELECT max(erp_modify_date) FROM mes_base_material_info order by erp_id SELECT max(erp_modify_date) FROM mes_base_material_info order by erp_id
</select> </select>
@ -253,15 +252,10 @@
</select> </select>
<insert id="batchMesBaseMaterialInfo"> <insert id="batchMesBaseMaterialInfo">
INSERT INTO mes_base_material_info (erp_id, material_code, old_material_code, material_name, material_categories, material_subclass, material_type_id, batch_flag, material_unit_id, material_unit, material_matkl, material_spec, net_weight, gross_weight, factory_id, create_org_id, use_org_id, prodline_id, active_flag, deleted_flag, remark, purchase_price_unit_id, create_by, create_time, approve_date, erp_modify_date) VALUES INSERT INTO mes_base_material_info (erp_id, material_code, old_material_code, material_name, material_categories, material_subclass, material_type_id, batch_flag, material_unit_id, material_unit, material_matkl, material_spec, net_weight, gross_weight, factory_id, create_org_id, use_org_id, prodline_id, active_flag, deleted_flag, remark, purchase_price_unit_id, create_by, create_time, approve_date, erp_modify_date,update_time) VALUES
<foreach item="item" index="index" collection="list" separator=","> <foreach item="item" index="index" collection="list" separator=",">
( #{item.erpId}, #{item.materialCode}, #{item.oldMaterialCode}, #{item.materialName}, #{item.materialCategories}, #{item.materialSubclass}, #{item.materialTypeId}, #{item.batchFlag}, #{item.materialUnifId}, #{item.materialUnit}, #{item.materialMatkl}, #{item.materialSpec}, #{item.netWeight}, #{item.grossWeight}, #{item.factoryId}, #{item.createOrgId}, #{item.useOrgId}, #{item.prodlineId}, #{item.activeFlag}, #{item.deletedFlag}, #{item.remark}, #{item.purchasePriceUnitId}, #{item.createBy}, #{item.createTime}, #{item.approveDate}, #{item.erpModifyDate}) ( #{item.erpId}, #{item.materialCode}, #{item.oldMaterialCode}, #{item.materialName}, #{item.materialCategories}, #{item.materialSubclass}, #{item.materialTypeId}, #{item.batchFlag}, #{item.materialUnitId}, #{item.materialUnit}, #{item.materialMatkl}, #{item.materialSpec}, #{item.netWeight}, #{item.grossWeight}, #{item.factoryId}, #{item.createOrgId}, #{item.useOrgId}, #{item.prodlineId}, #{item.activeFlag}, #{item.deletedFlag}, #{item.remark}, #{item.purchasePriceUnitId}, #{item.createBy}, #{item.createTime}, #{item.approveDate}, #{item.erpModifyDate}, #{item.updateTime})
</foreach> </foreach>
</insert> </insert>
<select id="selectMesBaseMaterialInfoByCode" parameterType="String" resultMap="MesBaseMaterialInfoResult">
<include refid="selectMesBaseMaterialInfoVo"/>
where material_code = #{materialCode}
</select>
</mapper> </mapper>

@ -16,10 +16,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="updateBy" column="update_by" /> <result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time" />
<result property="auditDate" column="audit_date" /> <result property="auditDate" column="audit_date" />
<result property="erpModifyDate" column="erp_modify_date" />
</resultMap> </resultMap>
<sql id="selectMesBaseSupplierInfoVo"> <sql id="selectMesBaseSupplierInfoVo">
select supplier_id, supplier_code, supplier_name, erp_id, supplier_status, remark, create_by, create_time, update_by, update_time, audit_date from mes_base_supplier_info select supplier_id, supplier_code, supplier_name, erp_id, supplier_status, remark, create_by, create_time, update_by, update_time, audit_date,erp_modify_date from mes_base_supplier_info
</sql> </sql>
<select id="selectMesBaseSupplierInfoList" parameterType="MesBaseSupplierInfo" resultMap="MesBaseSupplierInfoResult"> <select id="selectMesBaseSupplierInfoList" parameterType="MesBaseSupplierInfo" resultMap="MesBaseSupplierInfoResult">
@ -51,6 +52,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateBy != null">update_by,</if> <if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if> <if test="updateTime != null">update_time,</if>
<if test="auditDate != null">audit_date,</if> <if test="auditDate != null">audit_date,</if>
<if test="erpModifyDate != null">erp_modify_date,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="supplierCode != null">#{supplierCode},</if> <if test="supplierCode != null">#{supplierCode},</if>
@ -63,6 +65,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateBy != null">#{updateBy},</if> <if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if> <if test="updateTime != null">#{updateTime},</if>
<if test="auditDate != null">#{auditDate},</if> <if test="auditDate != null">#{auditDate},</if>
<if test="erpModifyDate != null">#{erpModifyDate},</if>
</trim> </trim>
</insert> </insert>
@ -79,6 +82,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateBy != null">update_by = #{updateBy},</if> <if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if> <if test="updateTime != null">update_time = #{updateTime},</if>
<if test="auditDate != null">audit_date = #{auditDate},</if> <if test="auditDate != null">audit_date = #{auditDate},</if>
<if test="erpModifyDate != null">erp_modify_date = #{erpModifyDate},</if>
</trim> </trim>
where supplier_id = #{supplierId} where supplier_id = #{supplierId}
</update> </update>
@ -93,4 +97,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{supplierId} #{supplierId}
</foreach> </foreach>
</delete> </delete>
<select id="selectMaxErpModifyDate" resultType="String">
SELECT max(erp_modify_date) FROM mes_base_supplier_info order by erp_id
</select>
<select id="selectMesBaseSupplierInfoByErpId" parameterType="Long"
resultMap="MesBaseSupplierInfoResult">
select supplier_id from mes_base_supplier_info where erp_id = #{erpId} limit 1
</select>
<insert id="batchMesBaseSupplierInfo">
INSERT INTO mes_base_supplier_info (supplier_code, supplier_name, erp_id, supplier_status, remark, create_by, create_time, update_by, update_time, audit_date, erp_modify_date) VALUES
<foreach item="item" index="index" collection="list" separator=",">
(#{item.supplierCode}, #{item.supplierName},#{item.erpId}, #{item.supplierStatus}, #{item.remark}, #{item.createBy}, #{item.createTime}, #{item.updateBy}, #{item.updateTime}, #{item.auditDate}, #{item.erpModifyDate})
</foreach>
</insert>
</mapper> </mapper>

@ -131,6 +131,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectMesProjectInfoByErpId" parameterType="Long" resultMap="MesProjectInfoResult"> <select id="selectMesProjectInfoByErpId" parameterType="Long" resultMap="MesProjectInfoResult">
<include refid="selectMesProjectInfoVo"/> <include refid="selectMesProjectInfoVo"/>
where erp_id = #{erpId} where erp_id = #{erpId} limit 1
</select> </select>
<select id="selectMaxErpModifyDate" resultType="String">
SELECT max(erp_modify_date) FROM mes_project_info order by erp_id
</select>
<insert id="batchMesBaseProjectInfo">
INSERT INTO mes_project_info (erp_id, project_no, project_name, document_status, forbid_status, audit_date, erp_modify_date, order_status, complete_date, create_time,update_time) VALUES
<foreach item="item" index="index" collection="list" separator=",">
(#{item.erpId}, #{item.projectNo}, #{item.projectName},#{item.documentStatus}, #{item.forbidStatus}, #{item.auditDate}, #{item.erpModifyDate}, #{item.orderStatus}, #{item.completeDate}, #{item.createTime}, #{item.updateTime})
</foreach>
</insert>
</mapper> </mapper>

@ -198,8 +198,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{purchaseOrderId} #{purchaseOrderId}
</foreach> </foreach>
</delete> </delete>
<select id="selectMesPurchaseOrderByErpId" parameterType="Long" resultMap="MesPurchaseOrderResult">
<include refid="selectMesPurchaseOrderVo"/> <select id="selectMaxErpModifyDate" resultType="String">
where erp_id = #{erpId} SELECT max(erp_modify_date) FROM mes_purchase_order order by erp_id,fentry_id
</select> </select>
<select id="selectMesPurchaseOrderByUI" resultMap="MesPurchaseOrderResult">
<include refid="selectMesPurchaseOrderVo"/>
where erp_id = #{erpId} and fentry_id = #{fentryId} limit 1
</select>
<insert id="batchMesBasePurchaseOrder">
INSERT INTO mes_purchase_order (erp_id, fentry_id, po_no, document_status, material_id, material_code, material_name, order_amount, complete_amount, approve_date, erp_modify_date, plan_delivery_date, order_status, unit_id, stock_unit_id, price_unit_id, aux_prop_id, src_bill_no, purchase_org_id, tond_base, supplier_id, create_time,update_time) VALUES
<foreach item="item" index="index" collection="list" separator=",">
(#{item.erpId}, #{item.fentryId}, #{item.poNo},#{item.documentStatus}, #{item.materialId}, #{item.materialCode}, #{item.materialName}, #{item.orderAmount}, #{item.completeAmount}, #{item.approveDate}, #{item.erpModifyDate}, #{item.planDeliveryDate}, #{item.orderStatus}, #{item.unitId}, #{item.stockUnitId}, #{item.priceUnitId}, #{item.auxPropId}, #{item.srcBillNo}, #{item.purchaseOrgId}, #{item.tondBase}, #{item.supplierId}, #{item.createTime},#{item.updateTime})
</foreach>
</insert>
</mapper> </mapper>

@ -39,6 +39,7 @@
<result property="ownerId" column="owner_id"/> <result property="ownerId" column="owner_id"/>
<result property="price" column="price"/> <result property="price" column="price"/>
<result property="stockOrgId" column="stock_org_id"/> <result property="stockOrgId" column="stock_org_id"/>
<result property="tondBae" column="tond_base"/>
</resultMap> </resultMap>
<sql id="selectMesSaleOrderVo"> <sql id="selectMesSaleOrderVo">
@ -253,4 +254,24 @@
<include refid="selectMesSaleOrderVo"/> <include refid="selectMesSaleOrderVo"/>
where erp_id = #{erpId} where erp_id = #{erpId}
</select> </select>
<select id="selectMaxErpModifyDate" resultType="String">
SELECT max(erp_modify_date) FROM mes_sale_order order by erp_id,fentry_id
</select>
<select id="selectMesSaleOrderByUI" resultMap="MesSaleOrderResult">
<include refid="selectMesSaleOrderVo"/>
where erp_id = #{erpId} and fentry_id = #{fentryId} limit 1
</select>
<insert id="batchMesBaseSaleOrder">
INSERT INTO mes_sale_order (erp_id, fentry_id, saleorder_code, saleorder_linenumber, document_statsu, material_id, material_code, material_name, matkl, order_amount, complete_amount, release_qty, approve_date, erp_modify_date, plan_delivery_date, stock_id, owner_id, aux_prop_id, sale_dept_id, price, stock_org_id, tond_base, create_time,update_time) VALUES
<foreach item="item" index="index" collection="list" separator=",">
(#{item.erpId}, #{item.fentryId}, #{item.saleorderCode}, #{item.saleorderLinenumber}, #{item.documentStatus}, #{item.materialId}, #{item.materialCode}, #{item.materialName}, #{item.matkl}, #{item.orderAmount}, #{item.completeAmount}, #{item.releaseQty}, #{item.approveDate}, #{item.erpModifyDate}, #{item.planDeliveryDate}, #{item.stockId}, #{item.ownerId}, #{item.auxPropId}, #{item.saleDeptId}, #{item.price}, #{item.stockOrgId}, #{item.tondBase}, #{item.createTime}, #{item.updateTime})
</foreach>
</insert>
</mapper> </mapper>

@ -67,15 +67,28 @@ public class RyTask
System.out.println("++创建保养工单++getDmsMaintInstance"); System.out.println("++创建保养工单++getDmsMaintInstance");
remoteDmsService.getDmsBillsMaintInstance(SecurityConstants.INNER,planMaintCode); remoteDmsService.getDmsBillsMaintInstance(SecurityConstants.INNER,planMaintCode);
} }
public void ERPSynMesSupplierInfo(String beginTime, String endTime){ public void syncSupplierInfoFromErp(){
System.out.println("++同步ERP中物料供应商++ErpSupplierInfo"); System.out.println("++同步ERP中物料供应商++ErpSupplierInfo");
remoteJindieService.ErpSupplierInfo(SecurityConstants.INNER); remoteJindieService.syncSupplierInfoFromErp(SecurityConstants.INNER);
} }
public void ERPSynMesMaterialInfo(String beginTime, String endTime){ public void syncMaterialInfoFromErp(){
//todo 查询createtime>上次执行时间和updatetime>上次执行时间的,要区分是第一次查询还是后续查询
System.out.println("++同步ERP中物料信息++ErpMesMaterialInfo"); System.out.println("++同步ERP中物料信息++ErpMesMaterialInfo");
remoteJindieService.ErpMesMaterialInfo(SecurityConstants.INNER); remoteJindieService.syncMaterialInfoFromErp(SecurityConstants.INNER);
}
public void syncProjectInfoFromErp(){
System.out.println("++同步ERP中项目信息++ErpProjectInfo");
remoteJindieService.syncProjectInfoFromErp(SecurityConstants.INNER);
}
public void syncSaleOrderFromErp(){
System.out.println("++同步ERP中销售订单信息++ErpSaleOrder");
remoteJindieService.syncSaleOrderFromErp(SecurityConstants.INNER);
}
public void syncPurchaseOrderFromErp(){
System.out.println("++同步ERP中采购订单信息++ErpPurchaseOrder");
remoteJindieService.syncPurchaseOrderFromErp(SecurityConstants.INNER);
} }
} }

Loading…
Cancel
Save