提交 e8f71620 authored 作者: 李炎's avatar 李炎

修复环境BUG

上级 9412a57d
package org.jeecg.modules.iost.API.Util;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
public class EipUtil {
private static final String BASE_CHECK_CODES = "qwertyuiplkjhgfdsazxcvbnmQWERTYUPLKJHGFDSAZXCVBNM1234567890";
static public String getTransno(){
String transno = "";
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmssSSS");
String format = formatter.format(new Date());
char[] basicArray = BASE_CHECK_CODES.toCharArray();
Random random = new Random();
char[] result = new char[6];
for (int i = 0; i < result.length; i++) {
int index = random.nextInt(100) % (basicArray.length);
result[i] = basicArray[index];
}
transno = format + "<" + new String(result) + ">";
return transno;
}
}
package org.jeecg.modules.iost.API.dto.kingdee;
import lombok.Data;
import java.util.List;
@Data
public class KingDeeReturn {
public Result Result;
}
package org.jeecg.modules.iost.API.dto.kingdee;
import lombok.Data;
import java.util.List;
@Data
public class ResponseStatus {
public String ErrorCode;
public Boolean IsSuccess;
public List Errors;
public List SuccessEntitys;
public List SuccessMessages;
public String MsgCode;
}
package org.jeecg.modules.iost.API.dto.kingdee;
import lombok.Data;
import java.util.List;
@Data
public class Result {
public ResponseStatus ResponseStatus;
public String Id;
public String Number;
public List NeedReturnData;
}
package org.jeecg.modules.iost.API.entity.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* @Description: 实物ID信息明细
* @Author: jeecg-boot
* @Date: 2021-07-09
* @Version: V1.0
*/
@Data
@TableName("supplier_end_physicalid")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "physicalid对象", description = "实物ID信息明细")
public class Physicalid implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private String id;
@Excel(name = "采购方总部编码", width = 15)
@ApiModelProperty(value = "采购方总部编码")
private String purchaserhqcode;
/**
* 供应商编码
*/
@Excel(name = "供应商编码", width = 15)
@ApiModelProperty(value = "供应商编码")
private String suppliercode;
/**
* 供应商名称
*/
@Excel(name = "供应商名称", width = 15)
@ApiModelProperty(value = "供应商名称")
private String suppliername;
/**
* 实物ID
*/
@Excel(name = "实物ID", width = 15)
@ApiModelProperty(value = "实物ID")
private String entitycode;
/**
* 采购订单行项目id
*/
@Excel(name = "采购订单行项目id", width = 15)
@ApiModelProperty(value = "采购订单行项目id")
private String poitemid;
/**
* 实物生产状态:0:未生产 1:生产中 2:生产完成
*/
@Excel(name = "实物生产状态:0:未生产 1:生产中 2:生产完成", width = 15)
@ApiModelProperty(value = "实物生产状态:0:未生产 1:生产中 2:生产完成")
private String entitystatus;
/**
* 数据来源:0:供应商, 1:网关, 2:代理
*/
@Excel(name = "数据来源:0:供应商, 1:网关, 2:代理", width = 15)
@ApiModelProperty(value = "数据来源:0:供应商, 1:网关, 2:代理")
private String datasource;
/**
* 来源数据创建时间
*/
@Excel(name = "来源数据创建时间", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty(value = "来源数据创建时间")
private Date datasourcecreatetime;
/**
* 备注
*/
@Excel(name = "备注", width = 15)
@ApiModelProperty(value = "备注")
private String remark;
/**
* 数据拥有方:取值:供应商编码
*/
@Excel(name = "数据拥有方:取值:供应商编码", width = 15)
@ApiModelProperty(value = "数据拥有方:取值:供应商编码")
private String ownerid;
/**
* 数据可见方:取值:采购方编码
*/
@Excel(name = "数据可见方:取值:采购方编码", width = 15)
@ApiModelProperty(value = "数据可见方:取值:采购方编码")
private String openid;
/**
* 审核日期记录
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss.SSS")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS")
@ApiModelProperty(value = "审核日期记录")
private Date fapprovedate;
//*实物ID编码*//
private String fbillno;
/**单据编号**/
private String fid;
}
package org.jeecg.modules.iost.API.entity.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* @Description: 采购订单明细
* @Author: jeecg-boot
* @Date: 2021-07-09
* @Version: V1.0
*/
@Data
@TableName("supplier_end_purchaseorder")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "purchaseorder对象", description = "采购订单明细")
public class Purchaseorder implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private String id;
/**
* 采购订单编码
*/
private String poNo;
/**
* 采购订单行项目号
*/
private String poItemNo;
/**
* 采购订单行项目id
*/
private String poItemId;
/**
* 合同编号
*/
private String conCode;
/**
* 合同名称
*/
private String conName;
/**
* 采购方公司名称
*/
private String buyerName;
/**
* 采购方公司编码
*/
private String buyerCode;
/**
* 采购方物料编码
*/
private String materialCode;
/**
* 采购方物料描述
*/
private String materialDesc;
/**
* 采购数量
*/
private String amount;
/**
* 合同编号(国网经法)
*/
private String sellerConCode;
/**
* 技术规范流水号
*/
private String serialNumber;
/**
* 合同签订日期
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date sellerSignTime;
/**
* 合同类型:1标准合同;2协议库存;3采购供货单
*/
private int conType;
/**
* 项目编号
*/
private String prjCode;
/**
* 工程项目名称
*/
private String prjName;
/**
* 物资编码
*/
private String matCode;
/**
* 采购技术固化ID
*/
private String fixedTechId;
// 合同包号
private String pkgNo;
/**招标批次号
*/
private String bidBatCode;
/**
* 固化ID描述
*/
private String extDes;
/**
* 物资大类编码
*/
private String matMaxCode;
/**
* 物资中类编码
*/
private String matMedCode;
/**
* 物资小类编码
*/
private String matMinCode;
/**
* 物资大类名称
*/
private String matMaxName;
/**
* 物资中类名称
*/
private String matMedName;
/**
* 物资小类名称
*/
private String matMinName;
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date modifyTime;
/**
* 销售订单内码
*/
private String FId;
/**
* 销售订单编码
*/
private String FNumber;
}
package org.jeecg.modules.iost.API.mapper.pojo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.jeecg.modules.iost.API.entity.pojo.Physicalid;
public interface PhysicalidMapper extends BaseMapper<Physicalid> {
}
package org.jeecg.modules.iost.API.mapper.pojo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.jeecg.modules.iost.API.entity.pojo.Purchaseorder;
/**
* @Description: 采购订单接口
* @Author: jeecg-boot
* @Date: 2021-07-09
* @Version: V1.0
*/
public interface PurchaseorderMapper extends BaseMapper<Purchaseorder> {
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.iost.API.mapper.pojo.PhysicalidMapper">
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.iost.API.mapper.pojo.PurchaseorderMapper">
</mapper>
\ No newline at end of file
package org.jeecg.modules.iost.API.service;
import com.baomidou.mybatisplus.extension.service.IService;
import net.sf.json.JSONObject;
import org.jeecg.modules.iost.API.entity.GridErrorReturnProcess;
import java.text.ParseException;
import java.util.Map;
public interface IGridErrorReturnProcessService extends IService<GridErrorReturnProcess> {
Map<Boolean, String> setGridError(JSONObject jsonObject, String requestJson, Integer BusinessNo) throws ParseException;
}
package org.jeecg.modules.iost.API.service;
import com.baomidou.mybatisplus.extension.service.IService;
import net.sf.json.JSONObject;
import org.jeecg.modules.iost.API.entity.GridError;
import java.text.ParseException;
import java.util.Map;
public interface IGridErrorService extends IService<GridError> {
Boolean setGridError(JSONObject jsonObject, Map<String, String> json, Integer BusinessNo) throws ParseException;
}
package org.jeecg.modules.iost.API.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.iost.API.entity.kingdeejournal.KingdeeJournalReturnProcess;
public interface IKingdeeJournalReturnProcessService extends IService<KingdeeJournalReturnProcess> {
public void setUpdateKingdee(String setRequest, String setResponse, String ReturnProcessId, String ReturnProcessJson, int BusinessNo, int Synchronization);
}
package org.jeecg.modules.iost.API.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.iost.API.entity.kingdeejournal.KingdeeJournal;
import java.util.List;
public interface IKingdeeJournalService extends IService<KingdeeJournal> {
}
package org.jeecg.modules.iost.API.service.pojo;
import com.baomidou.mybatisplus.extension.service.IService;
import net.sf.json.JSONObject;
import org.jeecg.modules.iost.API.entity.pojo.Materialinventory;
import java.text.ParseException;
import java.util.Map;
public interface IMaterialinventoryPojoService extends IService<Materialinventory> {
/**
* 重点材料添加到库存
* @param
* @return
*/
public Boolean synchronization(Object object) throws ParseException;
Boolean grid(Map<String, String> stringStringMap) throws ParseException;
}
package org.jeecg.modules.iost.API.service.pojo;
import com.baomidou.mybatisplus.extension.service.IService;
import net.sf.json.JSONObject;
import org.jeecg.modules.iost.API.entity.pojo.Physicalid;
import java.text.ParseException;
import java.util.Map;
/**
* @Description: 国网实物ID信息API
* @Author: jeecg-boot
* @Date: 2021-07-14
* @Version: V1.0
*/
public interface IPhysicalidService extends IService<Physicalid> {
public Boolean synchronization(Object object) throws ParseException;
Boolean grid(Map<String, String> stringStringMap) throws ParseException;
}
package org.jeecg.modules.iost.API.service.pojo;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.iost.API.entity.pojo.Productinventory;
import java.text.ParseException;
import java.util.Map;
public interface IProductinventoryPojoService extends IService<Productinventory> {
public Boolean synchronization(Object object) throws ParseException;
Boolean grid(Map<String, String> stringStringMap) throws ParseException;
}
package org.jeecg.modules.iost.API.service.pojo;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.iost.API.entity.pojo.ProductionOrder;
import java.text.ParseException;
import java.util.Map;
public interface IProductionOrderPojoService extends IService<ProductionOrder> {
public Boolean synchronization(Object object) throws ParseException;
public Boolean grid(Map<String, String> data) throws ParseException;
}
package org.jeecg.modules.iost.API.service.pojo;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.iost.API.entity.pojo.Productionscheduling;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Map;
public interface IProductionschedulingPojoService extends IService<Productionscheduling> {
public Boolean synchronization(Object object) throws ParseException;
public Boolean grid(Map<String, String> stringStringMap) throws ParseException;
}
package org.jeecg.modules.iost.API.service.pojo;
import com.baomidou.mybatisplus.extension.service.IService;
import net.sf.json.JSONObject;
import org.jeecg.modules.iost.API.entity.pojo.Purchaseorder;
import java.io.IOException;
import java.text.ParseException;
import java.util.Map;
/**
* @Description: 采购订单接口
* @Author: jeecg-boot
* @Date: 2021-07-09
* @Version: V1.0
*/
public interface IPurchaseorderService extends IService<Purchaseorder> {
public Map synchronization(Map object) throws IOException, ParseException;
public Map manual(Map<String, Object> map, String ReturnProcessId) throws ParseException;
}
package org.jeecg.modules.iost.API.service.pojo;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.iost.API.entity.pojo.Reservestock;
import java.text.ParseException;
import java.util.Map;
public interface IReservestockPojoService extends IService<Reservestock> {
public Boolean synchronization(Object object) throws ParseException;
Boolean grid(Map<String, String> stringStringMap) throws ParseException;
}
package org.jeecg.modules.iost.API.service.pojo;
import com.baomidou.mybatisplus.extension.service.IService;
import net.sf.json.JSONObject;
import org.jeecg.modules.iost.API.entity.pojo.Salesorder;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public interface ISalesorderPojoService extends IService<Salesorder> {
public Boolean synchronization(Object object) throws ParseException;
public Boolean grid(Map<String, String> data) throws ParseException;
}
package org.jeecg.modules.iost.API.service.pojo;
import com.baomidou.mybatisplus.extension.service.IService;
import net.sf.json.JSONObject;
import org.jeecg.modules.iost.API.entity.pojo.Supplylist;
import java.text.ParseException;
import java.util.Map;
public interface ISupplylistPojoService extends IService<Supplylist> {
public String add(Map<String, String> map);
public JSONObject select(Map<String, String> map);
public Boolean synchronization(Object object) throws ParseException;
public Boolean grid(Map<String, String> data) throws ParseException;
}
package org.jeecg.modules.iost.API.service.pojo.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import net.sf.json.JSONObject;
import org.jeecg.modules.iost.API.ExternalInterface.PhysicalIDApi;
import org.jeecg.modules.iost.API.entity.pojo.Physicalid;
import org.jeecg.modules.iost.API.mapper.pojo.PhysicalidMapper;
import org.jeecg.modules.iost.API.service.IGridErrorService;
import org.jeecg.modules.iost.API.service.pojo.IPhysicalidService;
import org.jeecg.modules.iost.API.webapi.PhysicalIDWebapi;
import org.jeecg.modules.iost.API.webapi.Util.WebApiLog;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* @Description: 国网实物ID信息API
* @Author: jeecg-boot
* @Date: 2021-07-14
* @Version: V1.0
*/
@Slf4j
@Service
public class PhysicalidServiceImpl extends ServiceImpl<PhysicalidMapper,Physicalid> implements IPhysicalidService {
private final static String name = "推送实物ID信息";
private final static Integer BusinessNo = 7;
@Autowired
private PhysicalIDApi physicalIDApi;
@Autowired
private PhysicalIDWebapi physicalIDWebapi;
@Autowired
private IGridErrorService gridErrorService;
@Override
public Boolean synchronization(Object object) throws ParseException {
Boolean success = true;
Map<String, List<List<Object>>> stringListMap = null;
if (object == null) {
stringListMap = physicalIDWebapi.selectInList(null, new HashMap<String, String>() {{
put("FApproveDate >", "'" + getTime() + "'");
// put("FApproveDate >", "'2021-08-20 15:00:37.217'");
put("FApproveDate <=", "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(new Date()) + "'");
}});
} else {
stringListMap = physicalIDWebapi.selectWhere((String) object);
}
//解析金蝶返回数据转换为国网字段,获取的数据错误返回为空
List<Map<String, String>> list = kingdeeAs(stringListMap);//记录金蝶日志
if (list == null || list.size() < 1) return false;
for (Map<String, String> stringStringMap : list) {
String rs = physicalIDApi.add(stringStringMap);//数据转存国网
JSONObject jsonObject = JSONObject.fromObject(rs);//获取国网返回
gridErrorService.setGridError(jsonObject, stringStringMap, BusinessNo);//日志记录国网请求
this.save(SplicingDetails(stringStringMap));//记录实物id明细
}
return success;
}
public List<Map<String, String>> kingdeeAs(Map<String, List<List<Object>>> stringListMap) throws ParseException {
List<Map<String, String>> selectInList = null;
if (stringListMap != null)
for (String key : stringListMap.keySet()) {
List<List<Object>> list = stringListMap.get(key);
WebApiLog webApiLog = new WebApiLog();
Boolean ny = webApiLog.setKingdeeJournal(key, name, BusinessNo, list);
if (ny) {//记录金蝶日志并判断是否转换国网字段
selectInList = physicalIDWebapi.PhysicalID(list);//字段转换
}
break;
}
return selectInList;
}
@Override
public Boolean grid(Map<String, String> stringStringMap) throws ParseException {
Boolean aBoolean = false;
String rs = physicalIDApi.add(stringStringMap);//数据转存国网
JSONObject jsonObject = JSONObject.fromObject(rs);//获取国网返回
Boolean aBoolean1 = gridErrorService.setGridError(jsonObject, stringStringMap, BusinessNo);//日志记录国网请求
Boolean save = this.save(SplicingDetails(stringStringMap));//记录实物id明细
aBoolean = aBoolean1 == save;
return aBoolean;
}
public String getTime() {
Physicalid Physicalid_time = this.getBaseMapper().selectOne(new QueryWrapper<Physicalid>().orderByDesc("fapprovedate").last("limit 1").select("fapprovedate"));
String dateString = beforeDayByNowDay();
if (Physicalid_time != null) {//非空判断
if (Physicalid_time.getFapprovedate() != null) {
Date fapprovedate = Physicalid_time.getFapprovedate();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
dateString = formatter.format(fapprovedate);
}
}
return dateString;
}
/**
* 获取当前日期的前一天
* 需要返回的日期格式,例如:yyyy-MM-dd HH:mm:ss
*
* @return 前一天日期字符串
*/
public String beforeDayByNowDay() {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, -1); //得到前一天
Date date = calendar.getTime();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return df.format(date);
}
//map转实体类
public Physicalid SplicingDetails(Map<String, String> stringStringMap) throws ParseException {
String fApproveDate = stringStringMap.get("FApproveDate");
Physicalid physicalid = JSON.parseObject(JSON.toJSONString(stringStringMap), Physicalid.class);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
Date parse = null;
parse = simpleDateFormat.parse(timeSSS(fApproveDate));//时间转换毫秒补丁
physicalid.setFapprovedate(parse);
return physicalid;
}
public String timeSSS(String selectedTimeStamp) {
if (selectedTimeStamp.indexOf(".")>0) {
int x = selectedTimeStamp.length() - selectedTimeStamp.lastIndexOf('.');
if (x == 2)
selectedTimeStamp += "00";
if (x == 3)
selectedTimeStamp += '0';
}else {
selectedTimeStamp += ".000";
}
return selectedTimeStamp;
}
}
package org.jeecg.modules.iost.API.service.pojo.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.parser.Feature;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import net.sf.json.JSONObject;
import org.jeecg.modules.iost.API.ExternalInterface.PurchaseorderApi;
import org.jeecg.modules.iost.API.Util.JsonUtil;
import org.jeecg.modules.iost.API.dto.EIP;
import org.jeecg.modules.iost.API.dto.kingdee.KingDeeReturn;
import org.jeecg.modules.iost.API.dto.kingdee.Result;
import org.jeecg.modules.iost.API.entity.kingdeejournal.KingdeeJournalReturnProcess;
import org.jeecg.modules.iost.API.mapper.pojo.PurchaseorderMapper;
import org.jeecg.modules.iost.API.entity.pojo.Purchaseorder;
import org.jeecg.modules.iost.API.service.*;
import org.jeecg.modules.iost.API.service.pojo.IPurchaseorderService;
import org.jeecg.modules.iost.API.webapi.SalesOrderWebapi;
import org.jeecg.modules.iost.API.webapi.Util.FieldChange;
import org.jeecg.modules.iost.API.webapi.Util.FieldConversion;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* @Description: 采购订单接口
* @Author: jeecg-boot
* @Date: 2021-07-09
* @Version: V1.0
*/
@Service
@Slf4j
public class PurchaseorderServiceImpl extends ServiceImpl<PurchaseorderMapper, Purchaseorder> implements IPurchaseorderService {
private final static String name = "获取合同和采购订单信息,生成销售订单";
private final static Integer BusinessNo = 1;
@Autowired
private PurchaseorderApi purchaseorderApi;
@Autowired
private SalesOrderWebapi salesOrderWebapi;
@Autowired
private IKingdeeJournalReturnProcessService kingdeeJournalService;
@Autowired
private IGridErrorReturnProcessService gridErrorService;
@Override
public synchronized Map synchronization(Map object) throws IOException, ParseException {
List<Purchaseorder> purchaseordersList = new ArrayList<>();
Map<String, String> ReturnResult = new LinkedHashMap<String, String>() {{
put("success", "false");
}};
int savekingdeestate = 0;
Map map = null;
if (null == object) {
map = new HashMap() {{
put("purchaserHqCode", "SGCC");
put("supplierCode", "");
put("supplierName", "共创");
put("modifyStartTime", getTime());
put("modifyEndTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
}};
} else {
map = object;
}
JSONObject jsonObject = JSONObject.fromObject(purchaseorderApi.selectList(map));
if (null == jsonObject.get("success")) {
//请求国网的返回信息
JSONObject resultValue = JSONObject.fromObject(jsonObject.get("resultValue"));
Object data = resultValue.get("data");//获取返回数据的 data对象
List listData = JSON.parseObject(data.toString(), List.class, Feature.OrderedField);
//格式转换
//记录请求国网的返回信息
Map<Boolean, String> booleanStringMap = gridErrorService.setGridError(jsonObject, JsonUtil.Mapjson(map), BusinessNo);
String ReturnProcessId = "";//请求国网日志id
if (booleanStringMap.containsKey(true)) {
ReturnProcessId = booleanStringMap.get(true);
}
if (null != listData) {
for (Object purchaseorder : listData) {
Map mapPurchaseorder = JSON.parseObject(purchaseorder.toString(), LinkedHashMap.class);
String kingdeeSaleOrder = FieldChange.changePurchaseorder(mapPurchaseorder);
String kingdeeReturn = salesOrderWebapi.addKingdee(kingdeeSaleOrder);//同步到金蝶
try {
KingDeeReturn kingDeeReturn = JSON.parseObject(kingdeeReturn, KingDeeReturn.class, Feature.OrderedField);
if (null != kingDeeReturn && null != kingDeeReturn.getResult()) {
Result result = kingDeeReturn.getResult();
if (!result.getId().equals("") && !result.getNumber().equals("")) {
mapPurchaseorder.put("FId", result.getId());
mapPurchaseorder.put("FNumber", result.getNumber());
//获取返回数据记录到记录明细
savekingdeestate = 1;
purchaseordersList.add(JSON.parseObject(JSON.toJSONString(mapPurchaseorder), Purchaseorder.class));
}
}
kingdeeJournalService.setUpdateKingdee(kingdeeSaleOrder, kingdeeReturn, ReturnProcessId, JsonUtil.Objectjson(mapPurchaseorder), BusinessNo, savekingdeestate);
} catch (Exception e) {
}
}
boolean b = this.saveBatch(purchaseordersList);
if (b) {
ReturnResult.put("success", "true");
}
}
}
return ReturnResult;
}
@Override
public synchronized Map manual(Map<String, Object> mapPurchaseorder, String ReturnProcessId) throws ParseException {
Map<String, String> ReturnResult = new LinkedHashMap<String, String>() {{
put("success", "false");
}};
Boolean fn = false;
int savekingdeestate = 0;
Purchaseorder purchaseorder = new Purchaseorder();
String kingdeeSaleOrder = FieldChange.changePurchaseorder(mapPurchaseorder);
String kingdeeReturn = salesOrderWebapi.addKingdee(kingdeeSaleOrder);//同步到金蝶
try {
KingDeeReturn kingDeeReturn = JSON.parseObject(kingdeeReturn, KingDeeReturn.class, Feature.OrderedField);
if (null != kingDeeReturn && null != kingDeeReturn.getResult()) {
Result result = kingDeeReturn.getResult();
if (!result.getId().equals("") && !result.getNumber().equals("")) {
mapPurchaseorder.put("FId", result.getId());
mapPurchaseorder.put("FNumber", result.getNumber());
//获取返回数据记录到记录明细
savekingdeestate = 1;
purchaseorder = JSON.parseObject(JSON.toJSONString(mapPurchaseorder), Purchaseorder.class);
boolean save = save(purchaseorder);
if (save) {
ReturnResult.put("success", "true");
}
}
}
kingdeeJournalService.setUpdateKingdee(kingdeeSaleOrder, kingdeeReturn, ReturnProcessId, JsonUtil.Objectjson(mapPurchaseorder), BusinessNo, savekingdeestate);
} catch (Exception e) {
}
return ReturnResult;
}
/**
* @return 同步成功日志表记录的国网数据最大时间
*/
public String getTime() {
Purchaseorder purchaseorder_api_time = this.getBaseMapper().selectOne(new QueryWrapper<Purchaseorder>().orderByDesc("modify_Time").last("limit 1").select("modify_Time"));
Date currentTime = null;
String dateString = null;
dateString = beforeDayByNowDay();
if (purchaseorder_api_time != null) {//非空判断
if (purchaseorder_api_time.getModifyTime() != null)
currentTime = purchaseorder_api_time.getModifyTime();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
dateString = formatter.format(currentTime);
}
return dateString;
}
/**
* 获取当前日期的前一天
* 需要返回的日期格式,例如:yyyy-MM-dd HH:mm:ss
*
* @return 前一天日期字符串
*/
public String beforeDayByNowDay() {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, -1); //得到前一天
Date date = calendar.getTime();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return df.format(date);
}
}
package org.jeecg.modules.iost.API.webapi.Util;
import net.sf.json.JSONObject;
import org.jeecg.modules.iost.API.Util.JsonUtil;
import org.springframework.stereotype.Component;
import java.util.*;
public class FieldChange {
/**
* API转换成webapi字段
*
* @return
*/
public static String changePurchaseorder(Map map) {
Map<String, Object> mapwebapi = new HashMap<>();
if (map.containsKey("sellerSignTime")) {
mapwebapi.put("FDate", map.get("sellersigntime"));
//map.remove("sellerSignTime");
}
mapwebapi.put("FSaleOrgId", new HashMap<String, String>() {{
put("FNumber", "100.1.06");
}});
mapwebapi.put("FSalerId", new HashMap<String, String>() {{
put("FNumber", "21000035_GW000913_102018");
}});
mapwebapi.put("FCustId", new HashMap<String, String>() {{
put("FNUMBER", "0000");
}});
mapwebapi.put("FBillTypeID", new HashMap<String, String>() {{
put("FNUMBER", "XSDD01_SYS");
}});
mapwebapi.put("FSaleDeptId", new HashMap<String, String>() {{
put("FNumber", "BM000037");
}});
// mapwebapi.put("F_PAEZ_Remarks","" + map.get("prjname").toString()=="null"?"null":map.get("prjname"));
if (null != map.get("prjname")) mapwebapi.put("F_PAEZ_Remarks", "" + map.get("prjname"));
// mapwebapi.put("F_PAEZ_Remarks", "测试项目5");
mapwebapi.put("F_PAEZ_Combo", "A");
mapwebapi.put("F_PAEZ_Combo1", "A");
mapwebapi.put("F_PAEZ_Combo2", "A");
mapwebapi.put("F_PAEZ_Combo3", "B");
mapwebapi.put("F_PAEZ_Combo31", "F");
mapwebapi.put("F_PAEZ_Base2", new HashMap<String, String>() {{
put("FNUMBER", "AT.600G");
}});
mapwebapi.put("F_PAEZ_Base3", new HashMap<String, String>() {{
put("FNUMBER", "01.106026");
}});
mapwebapi.put("F_PAEZ_Base4", new HashMap<String, String>() {{
put("FSTAFFNUMBER", "001");
}});
mapwebapi.put("F_CYGC_Base", new HashMap<String, String>() {{
put("FNUMBER", "0000");
}});
mapwebapi.put("FSaleOrderEntry", FSaleOrderEntry(map));
mapwebapi.put("FSaleOrderFinance", new HashMap<String, Object>() {{
put("FSettleCurrId", new HashMap<String, String>() {{
put("FNumber", "PRE001");
}});
}});
return JsonUtil.Objectjson(mapwebapi);
}
public static List<Map<String, Object>> FSaleOrderEntry(Map<String, Object> map) {
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> FSaleOrder = new LinkedHashMap<>();
if (null != map.get("materialcode")) FSaleOrder.put("FMaterialId", new HashMap<String, Object>() {{
put("FNumber", map.get("materialcode"));
}});
if (null != map.get("amount")) FSaleOrder.put("FQty", map.get("amount"));
FSaleOrder.put("FOwnerId", new HashMap<String, Object>() {{
put("FNumber", "100.1.01");
}});
list.add(FSaleOrder);
return list;
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论