【某大型MES系统定制服务自动报工出现的BUG】

项目场景:

通过MOM系统下发生产订单,即MOM向中控提交下发请求和参数,中控去接收参数并保存更新到数据库,然后通过数据库的信息去统计报工要用到的参数,统计完成后将参数发送给MOM


问题描述

当服务启动时出现的订单在中控接收却显示服务器繁忙的错误

{
"version": 1,
"taskId": "bc502eb8-859d-4980-8790-4c16e499a4f3",
"code": "500",
"msg": "服务器繁忙稍后再试",
"returnData": null
}

 请求报文如下

{"taskType":"17","task":{"WipOrderNo":"316000015463","SequenceNo":"000000","WorkCenterName":"阀块-粗加工(灯塔)","Quantity":1.0,"NextOprSequenceNo":"0050","OprSequenceType":"1","ComponentList":[],"paramRsrv2":"","WorkStationName":"粗加工工位2","WorkStation":"5802XZ01A0245","ProductNo":"13359230","OprSequenceNo":"0040","ScheduledStartDate":"2022-07-04 11:20:01","ProgressStatus":"110","ProductionLine":"5802XZ01","paramRsrv1":"","ProductAlias":"D","ScheduledCompleteDate":"2022-07-04 13:50:01","Facility":"5802","NextSequenceNo":"000000","WorkCenter":"107634","NextWorkCenter":"107623","OprSequenceName":"车","NextOprSequenceName":"数控卧加"},"version":1,"taskId":"bc502eb8-859d-4980-8790-4c16e499a4f3","SysCode":"XZCJG02"}


原因分析:

根据报错日志的提醒可以判断出时请求参数和程序接收的实体类参数出现了冲突,并且这个冲突在数据库去查询时也出现了错误

### Error querying database.  Cause: java.sql.SQLSyntaxErrorException: Unknown column 'ok_num' in 'field list'
### The error may exist in com/xxx/data/appoint/mom/db/dao/MomOrderDao.java (best guess)
### The error may involve defaultParameterMap
### The error occurred while setting parameters

解决方案:

通过对数据库和实体类映射的字段进行排查发现果然数据库少了两个字段,这也就是查不到的原因了

 添加数据库字段

 实体类对象属性

@Data
public class MomOrderDo implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "MOM 下发订单表 ID")
    private String proTaskOrderId;

    @ApiModelProperty("产线名称")
    private String lineName;

    @ApiModelProperty("产线编号")
    private String lineCode;

    @ApiModelProperty(value = "生产任务订单号")
    private String wiporderno;

    /**
     * 订单类型  1:正常订单;2:返工返修订单
     */
    @ApiModelProperty(value = "订单类型 1:正常订单;2:返工返修订单")
    private String wipOrderType;

    /**
     * 订单物料
     */
    @ApiModelProperty(value = "订单物料=订单物料号")
    private String orderProductNo;

    /**
     * 数量
     */
    @ApiModelProperty(value = "数量 = 订单数量 = 计划生产数量")
    private Integer quantity;

    /**
     *产品物料号
     */
    @ApiModelProperty("产品物料号")
    private String pathProductNo;
    /**
     *工序号
     */
    @ApiModelProperty("工序号")
    private String oprSequenceNo;

    /**
     *工序名称
     */
    @ApiModelProperty("工序名称")
    private String oprSequenceName;


    /**
     *顺序号
     */
    @ApiModelProperty("顺序号")
    private String sequenceNo;



    /**
     * 计划开始时间 yyyy-mm-dd hh24:mi:ss
     */
    @ApiModelProperty("计划开始时间")
    @JsonFormat(pattern = "yyy-MM-dd hh:mm:ss")
    private Date scheduledStartDate;

    /**
     * 计划结束时间  yyyy-mm-dd hh24:mi:ss
     */
    @JsonFormat(pattern = "yyy-MM-dd hh:mm:ss")
    @ApiModelProperty("计划结束时间")
    private Date scheduledCompleteDate;


    @ApiModelProperty("实际开始时间")
    @JsonFormat(pattern = "yyy-MM-dd hh:mm:ss")
    private Date realityStartDate;

    @ApiModelProperty("实际结束时间")
    @JsonFormat(pattern = "yyy-MM-dd hh:mm:ss")
    private Date realityCompleteDate;

    @ApiModelProperty("已生产数量")
    private String actualProduction;

    @ApiModelProperty("合格数量")
    private String qualified;

    @ApiModelProperty("不合格数量")
    private String unqualified;


    /**
     * 订单状态 110已下达 120进行中 130已完工 140已删除 150强制关闭
     */
    @ApiModelProperty("订单状态 110已下达 120进行中 130已完工 140已删除 150强制关闭")
    private String progressStatus;

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Postman是一种用于API开发与测试的工具,可以发送HTTP请求进行接口测试,对于MES(制造执行系统)的测试也非常适用。使用Postman测试MES系统,可以验证其功能是否正常,检查接口的响应是否符合预期。 首先,我们需要准备好MES系统的URL和访问凭证等相关信息。在Postman创建一个新的请求,选择正确的请求类型(GET、POST、PUT等),并填入MES系统的URL。 然后,我们需要设置请求的头部信息和参数。在Postman的请求设置,我们可以添加头部参数、URL参数、表单参数等,根据需要进行配置。这些参数可能包括认证信息、请求类型、数据格式等。 接下来,我们可以发送请求并查看MES系统的响应。在Postman,点击发送按钮,Postman会向MES系统发送请求,并返回响应的结果。我们可以根据需要,查看响应的状态码、头部信息、内容等。 在测试MES系统时,常见的测试需求包括验证登录接口是否正常、检查数据查询接口的返回结果、测试数据修改接口的功能等。通过Postman,可以发送不同类型的请求(如GET、POST、PUT、DELETE)来模拟不同的操作,从而对MES系统的各个接口进行全面的测试。 此外,Postman还提供了一些测试工具,如断言、环境变量等,可以帮助我们进行更深入的测试。通过合理使用这些工具,我们可以编写测试脚本,进行自动化测试。 总的来说,使用Postman测试MES系统可以帮助我们验证接口的正确性和可用性,快速定位与MES系统相关的问题,并提高开发效率和测试覆盖率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值