Commit e3ba36e6 authored by 李驰骋's avatar 李驰骋

ERP提供接口添加

parent b08bd1a2
package com.ximai.mes.bpm;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
/**
* bpm远程调用接口
*/
@FeignClient(value = "bpm-service", url = "${remote.bpm.url}" ,path="${remote.bpm.path}")
public interface BpmService {
/**
* 同步 系统组数据
*/
@PostMapping
String sysSysOrg();
}
package com.ximai.mes.remote;
import com.ximai.mes.remote.dto.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import java.util.List;
/**
* erp远程调用接口
*/
@FeignClient(value = "erp-service", url = "${remote.erp.url}")
public interface ErpService {
/**
* 查询供应商
*/
@PostMapping(value = "/purma/getPurmaList")
ErpResponseResult<List<MdVendorErpDto>> getVendorList(MdVendorErpQuery vendorErpQuery);
/**
* 查询客户
*/
@PostMapping(value = "/copma/getCopmaList")
ErpResponseResult<List<MdClientErpDto>> getClientList(MdClientErpQuery clientErpQuery);
/**
* 查询仓库
*/
@PostMapping(value = "/cmsmc/getCmsmcList")
ErpResponseResult<List<WmWarehouseErpDto>> getClientList(WmWarehouseErpQuery warehouseErpQuery);
/**
* 查询物料基础数据
*/
@PostMapping(value = "/invmb/getInvmbList")
ErpResponseResult<List<MdItemErpDto>> getClientList(MdItemErpQuery itemErpQuery);
/**
* 查询工单
*/
@PostMapping(value = "/mocta/getMoctaList")
ErpResponseResult<List<ProWorkorderErpDto>> getWorkorderList(ProWorkorderErpQuery workorderErpQuery);
}
package com.ximai.mes.remote.dto;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import java.util.List;
import java.util.stream.Collectors;
/**
* <p>Title: PageParams</p>
* <p>Description: 分页参数</p>
*
* @author chicheng.li
* @version V1.0
*/
public class ErpPageParams {
private int current;
private int pageSize;
private Sort sort;
public Pageable toPageable() {
if(sort == null){
return PageRequest.of(current - 1, pageSize);
}
return PageRequest.of(current - 1, pageSize, sort.toJpaSort());
}
public static class Sort{
private List<Order> orders;
org.springframework.data.domain.Sort toJpaSort(){
if(orders == null || orders.size()==0){
return org.springframework.data.domain.Sort.unsorted();
}
return org.springframework.data.domain.Sort.by(orders.stream().map(Order::toJpaOrder).collect(Collectors.toList()));
}
public List<Order> getOrders() {
return orders;
}
public void setOrders(List<Order> orders) {
this.orders = orders;
}
}
public static class Order{
private String direction;
private String property;
org.springframework.data.domain.Sort.Order toJpaOrder(){
if("ASC".equalsIgnoreCase(direction)){
return org.springframework.data.domain.Sort.Order.asc(property);
}
return org.springframework.data.domain.Sort.Order.desc(property);
}
public String getDirection() {
return direction;
}
public void setDirection(String direction) {
this.direction = direction;
}
public String getProperty() {
return property;
}
public void setProperty(String property) {
this.property = property;
}
}
public int getCurrent() {
return current;
}
public void setCurrent(int current) {
this.current = current;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public Sort getSort() {
return sort;
}
public void setSort(Sort sort) {
this.sort = sort;
}
}
package com.ximai.mes.remote.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
public class ErpResponseResult<TReturn>{
/*
interface ErrorInfoStructure {
success: boolean; // if request is success
data?: any; // response data
errorCode?: string; // code for errorType
errorMessage?: string; // message display to user
showType?: number; // error display type: 0 silent; 1 message.warn; 2 message.error; 4 notification; 9 page
traceId?: string; // Convenient for back-end Troubleshooting: unique request ID
host?: string; // Convenient for backend Troubleshooting: host of current access server
}
*/
@JsonProperty("success")
private boolean success;
@JsonProperty("data")
private TReturn data;
@JsonProperty("errorCode")
private String errorCode = "";
@JsonProperty("errorMessage")
private String errorMessage = "";
@JsonProperty("showType")
private Integer showType = 0;
@JsonProperty("traceId")
private String traceId = "";
@JsonProperty("host")
private String host = "";
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
public TReturn getData() {
return data;
}
public void setData(TReturn data) {
this.data = data;
}
public String getErrorCode() {
return errorCode;
}
public void setErrorCode(String errorCode) {
this.errorCode = errorCode;
}
public String getErrorMessage() {
return errorMessage;
}
public void setErrorMessage(String errorMessage) {
this.errorMessage = errorMessage;
}
public Integer getShowType() {
return showType;
}
public void setShowType(Integer showType) {
this.showType = showType;
}
public String getTraceId() {
return traceId;
}
public void setTraceId(String traceId) {
this.traceId = traceId;
}
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
}
package com.ximai.mes.remote.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.ximai.common.core.domain.BaseEntity;
import com.ximai.mes.config.TrimStringDeserializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 客户 MdClientErpDto
*
* @date 2024-10-18
*/
@Data
public class MdClientErpDto
{
private static final long serialVersionUID = 1L;
@ApiModelProperty("客户编号")
@JsonProperty("ma001")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String clientCode;
@ApiModelProperty("客户全称")
@JsonProperty("ma003")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String clientName;
@ApiModelProperty("客户简称")
@JsonProperty("ma002")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String clientNick;
/**
* 1:已核准、2:尚待核准、3:不准交易
*/
@ApiModelProperty("核准状态")
@JsonProperty("ma097")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String verifyStatus;
@ApiModelProperty("备注")
@JsonProperty("ma049")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String remark;
}
package com.ximai.mes.remote.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.ximai.common.core.domain.BaseEntity;
import com.ximai.mes.config.TrimStringDeserializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 客户 MdClientErpQuery
*
* @date 2024-10-18
*/
@Data
public class MdClientErpQuery
{
@ApiModelProperty("客户编号")
@JsonProperty("ma001")
private String clientCode;
@ApiModelProperty("客户全称")
@JsonProperty("ma003")
private String clientName;
@ApiModelProperty("客户简称")
@JsonProperty("ma002")
private String clientNick;
}
package com.ximai.mes.remote.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.ximai.common.annotation.Excel;
import com.ximai.common.core.domain.BaseEntity;
import com.ximai.mes.config.TrimStringDeserializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* 物料对象 MdItemErpDto
*
* @date 2024-10-18
*/
@Data
public class MdItemErpDto
{
private static final long serialVersionUID = 1L;
@JsonProperty("mb001")
@JsonDeserialize(using = TrimStringDeserializer.class)
@ApiModelProperty("物料/产品编码")
private String itemCode;
@JsonProperty("mb002")
@JsonDeserialize(using = TrimStringDeserializer.class)
@ApiModelProperty("物料/产品名称")
private String itemName;
@JsonProperty("mb003")
@JsonDeserialize(using = TrimStringDeserializer.class)
@ApiModelProperty("规格型号")
private String specification;
@JsonProperty("mb004")
@JsonDeserialize(using = TrimStringDeserializer.class)
@ApiModelProperty("计量单位名称")
private String unitOfMeasure;
@JsonProperty("mb005")
@JsonDeserialize(using = TrimStringDeserializer.class)
@ApiModelProperty("物料/产品分类ID")
private Long itemTypeId;
@JsonProperty("mb005")
@JsonDeserialize(using = TrimStringDeserializer.class)
@ApiModelProperty("物料/产品分类")
private String itemTypeName;
@JsonProperty("udf07")
@JsonDeserialize(using = TrimStringDeserializer.class)
@ApiModelProperty("内部图号")
private String inDrawingNo;
@JsonProperty("mb029")
@JsonDeserialize(using = TrimStringDeserializer.class)
@ApiModelProperty("客户图号")
private String customerDrawingNo;
@JsonProperty("udf01")
@JsonDeserialize(using = TrimStringDeserializer.class)
@ApiModelProperty("客户品号")
private String customerProNo;
@JsonProperty("mb017")
@JsonDeserialize(using = TrimStringDeserializer.class)
@ApiModelProperty("主要仓库")
private String manWarehouseId;
/**
* 1:已核准、2:尚待核准、3:不准交易
*/
@JsonProperty("mb109")
@JsonDeserialize(using = TrimStringDeserializer.class)
@ApiModelProperty("核准状态")
private String verifyStatus;
@JsonProperty("mb028")
@JsonDeserialize(using = TrimStringDeserializer.class)
@ApiModelProperty("备注")
private String remark;
@JsonProperty("invmls")
@ApiModelProperty("关联仓库")
private List<MdItemWarehouseErpDto> warehouseList;
}
package com.ximai.mes.remote.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.ximai.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.Date;
/**
* 物料对象 MdItemErpQuery
*
* @date 2024-10-18
*/
@Data
public class MdItemErpQuery extends ErpPageParams
{
@JsonProperty("mb001")
@ApiModelProperty("品号")
private String itemCode;
@JsonProperty("mb002")
@ApiModelProperty("品名")
private String itemName;
@JsonProperty("mb109")
@ApiModelProperty("核准状态")
private String verifyStatus;
@ApiModelProperty("创建日期")
@JsonFormat(pattern = "yyyyMMddHHmmssSSS")
private Date gtEqCreateDate;
@ApiModelProperty("修改日期")
@JsonFormat(pattern = "yyyyMMddHHmmssSSS")
private Date gtEqModiDate;
}
package com.ximai.mes.remote.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.ximai.mes.config.TrimStringDeserializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 物料仓库对象 MdItemWarehouseErpDto
*
* @date 2024-10-18
*/
@Data
public class MdItemWarehouseErpDto
{
private static final long serialVersionUID = 1L;
@JsonProperty("mc001")
@ApiModelProperty("仓库编号")
private String warehouseCode;
@JsonProperty("mc002")
@ApiModelProperty("仓库名称")
private String warehouseName;
@JsonProperty("mc003")
@ApiModelProperty("工厂编号")
private String factoryCode;
}
package com.ximai.mes.remote.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.ximai.common.annotation.Excel;
import com.ximai.common.core.domain.BaseEntity;
import com.ximai.mes.config.TrimStringDeserializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
* 供应商对象 MdVendorErpDto
*
* @date 2024-10-18
*/
@Data
public class MdVendorErpDto
{
private static final long serialVersionUID = 1L;
@ApiModelProperty("供应商名称")
@JsonProperty("ma001")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String vendorCode;
@ApiModelProperty("公司全称")
@JsonProperty("ma003")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String vendorName;
@ApiModelProperty("简称")
@JsonProperty("ma002")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String vendorNick;
@ApiModelProperty("税号")
@JsonProperty("ma005")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String creditCode;
/**
* 1:已核准、2:尚待核准、3:不准交易
*/
@ApiModelProperty("核准状态")
@JsonProperty("ma016")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String verifyStatus;
@ApiModelProperty("交易币种")
@JsonProperty("ma021")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String currency;
/**
* 1.二联式、2.三联式、3.二联式收银机发票、4.三联式收银机发票、5.电子计算机发票、6.免用统一发票、S.可抵扣专用发票、B.普通发票、T.运输发票、N.不可抵扣专用发票 A.农产品收购凭证、G.海关代征完税凭证、W.废旧物资收购凭证、Z.其他 //901025 S06-9009036 MODI A~Z //8
*/
@ApiModelProperty("发票种类")
@JsonProperty("ma030")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String invoiceType;
@ApiModelProperty("备注")
@JsonProperty("ma040")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String remark;
}
package com.ximai.mes.remote.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.ximai.common.annotation.Excel;
import com.ximai.common.core.domain.BaseEntity;
import com.ximai.mes.config.TrimStringDeserializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 供应商对象 MdVendorErpQuery
*
* @date 2024-10-18
*/
@Data
public class MdVendorErpQuery
{
@ApiModelProperty("供应商名称")
@JsonProperty("ma001")
private String vendorCode;
@ApiModelProperty("公司全称")
@JsonProperty("ma003")
private String vendorName;
@ApiModelProperty("简称")
@JsonProperty("ma002")
private String vendorNick;
@ApiModelProperty("核准状态")
@JsonProperty("ma016")
private String verifyStatus;
}
package com.ximai.mes.remote.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.ximai.mes.config.TrimStringDeserializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* 工单BOM对象 ProWorkorderBomErpDto
*
* @date 2024-10-18
*/
@Data
public class ProWorkorderBomErpDto
{
private static final long serialVersionUID = 1L;
@ApiModelProperty("材料品号")
@JsonProperty("tb003")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String itemCode;
@ApiModelProperty("材料品名")
@JsonProperty("tb012")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String itemName;
@ApiModelProperty("材料规格")
@JsonProperty("tb013")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String itemSpc;
@ApiModelProperty("工艺")
@JsonProperty("tb006")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String opName;
@ApiModelProperty("需领用量")
@JsonProperty("tb004")
private BigDecimal quantity;
}
package com.ximai.mes.remote.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.ximai.common.core.domain.BaseEntity;
import com.ximai.mes.config.TrimStringDeserializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* 工单对象 ProWorkorderErpDto
*
* @date 2024-10-18
*/
@Data
public class ProWorkorderErpDto
{
private static final long serialVersionUID = 1L;
@ApiModelProperty("工单单别")
@JsonProperty("ta001")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String orderSource;
@ApiModelProperty("工单单号")
@JsonProperty("ta002")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String workorderCode;
@ApiModelProperty("开单日期")
@JsonProperty("ta003")
@JsonFormat(pattern = "yyyyMMdd")
private Date billingDate;
@ApiModelProperty("产品品号")
@JsonProperty("ta006")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String productCode;
@ApiModelProperty("产品品名")
@JsonProperty("ta034")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String productName;
@ApiModelProperty("产品规格")
@JsonProperty("ta035")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String productSpc;
@ApiModelProperty("单位")
@JsonProperty("ta007")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String unitOfMeasure;
@ApiModelProperty("预计开工")
@JsonProperty("ta009")
@JsonFormat(pattern = "yyyyMMdd")
private Date expectStartDate;
@ApiModelProperty("预计完工")
@JsonFormat(pattern = "yyyyMMdd")
@JsonProperty("ta010")
private Date requestDate;
@ApiModelProperty("状态码")
@JsonProperty("ta011")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String erpStatus;
/**
* 1:已核准、2:尚待核准、3:不准交易
*/
@ApiModelProperty("审核码")
@JsonProperty("ta013")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String verifyStatus;
@ApiModelProperty("预计产量")
@JsonProperty("ta015")
private BigDecimal quantity;
@ApiModelProperty("订单单别")
@JsonProperty("ta026")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String orderType;
@ApiModelProperty("订单单号")
@JsonProperty("ta027")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String orderCode;
@ApiModelProperty("订单序号")
@JsonProperty("ta028")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String orderSerial;
@ApiModelProperty("备注")
@JsonProperty("ta029")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String remark;
@ApiModelProperty("急料")
@JsonProperty("ta044")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String rushOrder;
@ApiModelProperty("客户图号")
@JsonProperty("udf02")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String customerDrawingNo;
@ApiModelProperty("客户项目号")
@JsonProperty("udf03")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String customerProjectNo;
@ApiModelProperty("客户编号")
@JsonProperty("udf04")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String clientCode;
@ApiModelProperty("客户简称")
@JsonProperty("udf05")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String clientName;
@ApiModelProperty("内部图号")
@JsonProperty("udf08")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String inDrawingNo;
@ApiModelProperty("预计完工")
@JsonProperty("moctbDtos")
private List<ProWorkorderBomErpDto> workorderBomList;
}
package com.ximai.mes.remote.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.ximai.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang.time.DateFormatUtils;
import java.text.DateFormat;
import java.time.LocalDateTime;
import java.util.Date;
/**
* 工单对象 ProWorkorderErpQuery
*
* @date 2024-10-18
*/
@Data
public class ProWorkorderErpQuery extends ErpPageParams
{
@ApiModelProperty("审核码")
@JsonProperty("ta013")
private String verifyStatus;
@JsonFormat(pattern = "yyyyMMddHHmmssSSS")
@ApiModelProperty("创建日期")
private Date gtEqCreateDate;
@JsonFormat(pattern = "yyyyMMddHHmmssSSS")
@ApiModelProperty("修改日期")
private Date gtEqModiDate;
}
package com.ximai.mes.remote.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.ximai.common.core.domain.BaseEntity;
import com.ximai.mes.config.TrimStringDeserializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 仓库对象 WmWarehouseErpDto
*
* @date 2024-10-18
*/
@Data
public class WmWarehouseErpDto
{
private static final long serialVersionUID = 1L;
@JsonProperty("mc001")
@JsonDeserialize(using = TrimStringDeserializer.class)
@ApiModelProperty("仓库编号")
private String warehouseCode;
@JsonProperty("mc002")
@JsonDeserialize(using = TrimStringDeserializer.class)
@ApiModelProperty("仓库名称")
private String warehouseName;
@JsonProperty("mc003")
@JsonDeserialize(using = TrimStringDeserializer.class)
@ApiModelProperty("工厂编号")
private String factoryCode;
@ApiModelProperty("备注")
@JsonProperty("mc007")
@JsonDeserialize(using = TrimStringDeserializer.class)
private String remark;
}
package com.ximai.mes.remote.dto;
import com.ximai.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 仓库对象 WmWarehouseErpQuery
*
* @date 2022-05-06
*/
@Data
public class WmWarehouseErpQuery
{
@ApiModelProperty("供应商编号")
private String ma001;
@ApiModelProperty("简称")
private String ma002;
@ApiModelProperty("公司全称")
private String ma003;
@ApiModelProperty("核准状态")
private String ma016;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment