| | |
| | | exceptionHandle("删除入库通知档[workNo={0}]失败", wrkMast.getWrkNo()); |
| | | } |
| | | } |
| | | // 手动入库生成单据 【 上报三方平台 】 |
| | | if (!Cools.isEmpty(wrkDetls)) { |
| | | if (!orderService.saveHandlerOrder(Boolean.TRUE, wrkMast, wrkDetls)) { |
| | | exceptionHandle("生成手动入库单据[workNo={0}]失败", wrkMast.getWrkNo()); |
| | | } |
| | | } |
| | | // // 手动入库生成单据 【 上报三方平台 】 |
| | | // if (!Cools.isEmpty(wrkDetls)) { |
| | | // if (!orderService.saveHandlerOrder(Boolean.TRUE, wrkMast, wrkDetls)) { |
| | | // exceptionHandle("生成手动入库单据[workNo={0}]失败", wrkMast.getWrkNo()); |
| | | // } |
| | | // } |
| | | // 拣料再入库 |
| | | } else if (wrkMast.getIoType() == 53) { |
| | | if (!Cools.isEmpty(wrkDetls)) { |
| | | if (!orderService.saveHandlerOrder(Boolean.FALSE, wrkMast, wrkDetls)) { |
| | | exceptionHandle("生成手动出库单据[workNo={0}]失败", wrkMast.getWrkNo()); |
| | | } |
| | | } |
| | | // if (!Cools.isEmpty(wrkDetls)) { |
| | | // if (!orderService.saveHandlerOrder(Boolean.FALSE, wrkMast, wrkDetls)) { |
| | | // exceptionHandle("生成手动出库单据[workNo={0}]失败", wrkMast.getWrkNo()); |
| | | // } |
| | | // } |
| | | } |
| | | |
| | | // 出库 -------------------------------------------------------------------------------- |
| | | } else if (wrkMast.getWrkSts() == 15) { |
| | | if (!Cools.isEmpty(wrkDetls)) { |
| | | if (!orderService.saveHandlerOrder(Boolean.FALSE, wrkMast, wrkDetls)) { |
| | | exceptionHandle("生成手动出库单据[workNo={0}]失败", wrkMast.getWrkNo()); |
| | | } |
| | | } |
| | | // if (!Cools.isEmpty(wrkDetls)) { |
| | | // if (!orderService.saveHandlerOrder(Boolean.FALSE, wrkMast, wrkDetls)) { |
| | | // exceptionHandle("生成手动出库单据[workNo={0}]失败", wrkMast.getWrkNo()); |
| | | // } |
| | | // } |
| | | } |
| | | |
| | | // 保存工作主档历史档 |
| | |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | | @TableName("erp_det_tb") |
| | | @TableName("ERP_DETTB") |
| | | public class ErpDetTb implements Serializable { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * 单据号码 |
| | | * 单据号码 主键 |
| | | */ |
| | | @ApiModelProperty(value = "单据号码") |
| | | @TableId(value = "bill_no", type = IdType.INPUT) |
| | | @TableField("bill_no") |
| | | @TableId(value = "BIL_NO", type = IdType.INPUT) |
| | | @TableField("BIL_NO") |
| | | private String billNo; |
| | | |
| | | /** |
| | |
| | | */ |
| | | @ApiModelProperty(value = "品号") |
| | | @TableId(value = "prd_no", type = IdType.INPUT) |
| | | @TableField("prd_no") |
| | | @TableField("PRD_NO") |
| | | private String prdNo; |
| | | |
| | | /** |
| | |
| | | * 增减符号:1(加,入库)、2(减,出库) |
| | | */ |
| | | @ApiModelProperty(value = "增减符号:1(加,入库)、2(减,出库)") |
| | | @TableField("add_id") |
| | | private String addId; |
| | | |
| | | @ApiModelProperty(value = "增减符号:1(加,入库)、2(减,出库)") |
| | | @TableField("ADD_ID") |
| | | private int addId2; |
| | | |
| | | /** |
| | | * 数量 |
| | | */ |
| | | @ApiModelProperty(value = "数量") |
| | | @TableField("QTY") |
| | | private Double qty; |
| | | |
| | | /** |
| | |
| | | */ |
| | | @ApiModelProperty(value = "货品特征") |
| | | @TableId(value = "prd_mark", type = IdType.INPUT) |
| | | @TableField("prd_mark") |
| | | @TableField("PRD_MARK") |
| | | private String prdMark; |
| | | |
| | | /** |
| | | * 仓库 |
| | | */ |
| | | @ApiModelProperty(value = "仓库") |
| | | @TableField("WH") |
| | | private String wh; |
| | | |
| | | /** |
| | |
| | | */ |
| | | @ApiModelProperty(value = "日期") |
| | | @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | @TableField("BIL_DATE") |
| | | private Date billdate; |
| | | |
| | | /** |
| | | * 状态:0(初始状态)、1(已接收)、2(异常) |
| | | */ |
| | | @ApiModelProperty(value = "状态:0(初始状态)、1(已接收)、2(异常)") |
| | | @TableField("STATUS") |
| | | private Integer status; |
| | | |
| | | /** |
| | | * 行号 主键 |
| | | */ |
| | | @ApiModelProperty(value = "状态:0(初始状态)、1(已接收)、2(异常)") |
| | | @TableField("ITM") |
| | | private Integer itm; |
| | | |
| | | /** |
| | | * 备用字段1 |
| | | */ |
| | | @ApiModelProperty(value = "备用字段1") |
| | | @TableField("Temp1") |
| | | private String temp1; |
| | | |
| | | /** |
| | | * 备用字段2 |
| | | */ |
| | | @ApiModelProperty(value = "备用字段2") |
| | | @TableField("Temp2") |
| | | private String temp2; |
| | | |
| | | /** |
| | | * 备用字段3 |
| | | */ |
| | | @ApiModelProperty(value = "备用字段3") |
| | | @TableField("Temp3") |
| | | private String temp3; |
| | | |
| | | public ErpDetTb() { |
| | | } |
| | | |
| | | public ErpDetTb(String billNo, String prdNo, String iokindid, String addId, Double qty, String prdMark, String wh, Date billdate, Integer status, String temp1, String temp2, String temp3) { |
| | | public ErpDetTb(String billNo, String prdNo, String iokindid, int itm, int addId2, String addId, Double qty, String prdMark, String wh, Date billdate, Integer status, String temp1, String temp2, String temp3) { |
| | | this.billNo = billNo; |
| | | this.prdNo = prdNo; |
| | | this.iokindid = iokindid; |
| | | this.itm = itm; |
| | | this.addId2 = addId2; |
| | | this.addId = addId; |
| | | this.qty = qty; |
| | | this.prdMark = prdMark; |
| | |
| | | this.temp3 = temp3; |
| | | } |
| | | |
| | | public ErpDetTb(String billNo, String prdNo, int itm, int addId2, Double qty, String prdMark, String wh, Date billdate, Integer status, String temp1, String temp2, String temp3) { |
| | | this.billNo = billNo; |
| | | this.prdNo = prdNo; |
| | | this.itm = itm; |
| | | this.addId2 = addId2; |
| | | this.qty = qty; |
| | | this.prdMark = prdMark; |
| | | this.wh = wh; |
| | | this.billdate = billdate; |
| | | this.status = status; |
| | | this.temp1 = temp1; |
| | | this.temp2 = temp2; |
| | | this.temp3 = temp3; |
| | | } |
| | | |
| | | // DetTb detTb = new DetTb( |
| | | // null, // id[非空] |
| | | // null, // 单据号码[非空] |
| | |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | | @TableName("erp_det_tb_bak") |
| | | @TableName("ERP_DETTB_BAK") |
| | | public class ErpDetTbBak implements Serializable { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * 单据号码 |
| | | * 单据号码 主键 |
| | | */ |
| | | @ApiModelProperty(value = "单据号码") |
| | | @TableId(value = "bill_no", type = IdType.INPUT) |
| | | @TableField("bill_no") |
| | | @TableId(value = "BIL_NO", type = IdType.INPUT) |
| | | @TableField("BIL_NO") |
| | | private String billNo; |
| | | |
| | | /** |
| | |
| | | */ |
| | | @ApiModelProperty(value = "品号") |
| | | @TableId(value = "prd_no", type = IdType.INPUT) |
| | | @TableField("prd_no") |
| | | @TableField("PRD_NO") |
| | | private String prdNo; |
| | | |
| | | /** |
| | |
| | | * 增减符号:1(加,入库)、2(减,出库) |
| | | */ |
| | | @ApiModelProperty(value = "增减符号:1(加,入库)、2(减,出库)") |
| | | @TableField("add_id") |
| | | private String addId; |
| | | |
| | | @ApiModelProperty(value = "增减符号:1(加,入库)、2(减,出库)") |
| | | @TableField("ADD_ID") |
| | | private int addId2; |
| | | |
| | | /** |
| | | * 数量 |
| | | */ |
| | | @ApiModelProperty(value = "数量") |
| | | @TableField("QTY") |
| | | private Double qty; |
| | | |
| | | /** |
| | |
| | | */ |
| | | @ApiModelProperty(value = "货品特征") |
| | | @TableId(value = "prd_mark", type = IdType.INPUT) |
| | | @TableField("prd_mark") |
| | | @TableField("PRD_MARK") |
| | | private String prdMark; |
| | | |
| | | /** |
| | | * 仓库 |
| | | */ |
| | | @ApiModelProperty(value = "仓库") |
| | | @TableField("WH") |
| | | private String wh; |
| | | |
| | | /** |
| | |
| | | */ |
| | | @ApiModelProperty(value = "日期") |
| | | @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | @TableField("BIL_DATE") |
| | | private Date billdate; |
| | | |
| | | /** |
| | | * 状态:0(初始状态)、1(已接收)、2(异常) |
| | | */ |
| | | @ApiModelProperty(value = "状态:0(初始状态)、1(已接收)、2(异常)") |
| | | @TableField("STATUS") |
| | | private Integer status; |
| | | |
| | | /** |
| | | * 行号 主键 |
| | | */ |
| | | @ApiModelProperty(value = "状态:0(初始状态)、1(已接收)、2(异常)") |
| | | @TableField("ITM") |
| | | private Integer itm; |
| | | |
| | | /** |
| | | * 备用字段1 |
| | | */ |
| | | @ApiModelProperty(value = "备用字段1") |
| | | @TableField("Temp1") |
| | | private String temp1; |
| | | |
| | | /** |
| | | * 备用字段2 |
| | | */ |
| | | @ApiModelProperty(value = "备用字段2") |
| | | @TableField("Temp2") |
| | | private String temp2; |
| | | |
| | | /** |
| | | * 备用字段3 |
| | | */ |
| | | @ApiModelProperty(value = "备用字段3") |
| | | @TableField("Temp3") |
| | | private String temp3; |
| | | |
| | | public ErpDetTbBak() { |
| | | } |
| | | |
| | | public ErpDetTbBak(String billNo, String prdNo, String iokindid, String addId, Double qty, String prdMark, String wh, Date billdate, Integer status, String temp1, String temp2, String temp3) { |
| | | public ErpDetTbBak(String billNo, String prdNo, String iokindid, int itm, int addId2, String addId, Double qty, String prdMark, String wh, Date billdate, Integer status, String temp1, String temp2, String temp3) { |
| | | this.billNo = billNo; |
| | | this.prdNo = prdNo; |
| | | this.iokindid = iokindid; |
| | | this.itm = itm; |
| | | this.addId2 = addId2; |
| | | this.addId = addId; |
| | | this.qty = qty; |
| | | this.prdMark = prdMark; |
| | |
| | | this.temp3 = temp3; |
| | | } |
| | | |
| | | public ErpDetTbBak(String billNo, String prdNo, int itm, int addId2, Double qty, String prdMark, String wh, Date billdate, Integer status, String temp1, String temp2, String temp3) { |
| | | this.billNo = billNo; |
| | | this.prdNo = prdNo; |
| | | this.itm = itm; |
| | | this.addId2 = addId2; |
| | | this.qty = qty; |
| | | this.prdMark = prdMark; |
| | | this.wh = wh; |
| | | this.billdate = billdate; |
| | | this.status = status; |
| | | this.temp1 = temp1; |
| | | this.temp2 = temp2; |
| | | this.temp3 = temp3; |
| | | } |
| | | |
| | | // DetTb detTb = new DetTb( |
| | | // null, // id[非空] |
| | | // null, // 单据号码[非空] |
| | |
| | | */ |
| | | @Value("${erp.enabled}") |
| | | private Boolean erpEnabled; |
| | | @Value("${erp.enabledErpDetTb}") |
| | | private Boolean erpEnabledErpDetTb; |
| | | @Value("${erp.useName.ip}") |
| | | private String ip; |
| | | @Autowired |
| | |
| | | */ |
| | | @Scheduled(cron = "${erp.refreshtime}") |
| | | public void InOrOutOrder() { |
| | | if (!erpEnabled) return; |
| | | String sqlSelectErpDetTb = "select bill_no as billNo,prd_no as prdNo,iokindid,add_id as addId,qty,prd_mark as prdMark,wh,billdate,status,temp1,temp2,temp3 from erp_det_tb where 1=1"; |
| | | String sqlUpDateErpDetTbOne = "update erp_det_tb set status=1 where 1=1 and prd_no="; |
| | | String sqlUpDateErpDetTbTwo = "update erp_det_tb set status=2 "; |
| | | if (!erpEnabledErpDetTb) return; |
| | | String sqlSelectErpDetTb = "select BIL_NO as billNo,prd_no as prdNo,ITM as itm,ADD_ID as addId2,QTY as qty,PRD_MARK as prdMark,WH as wh,BIL_DATE as billdate,STATUS as status,Temp1 as temp1,Temp2 as temp2,Temp3 as temp3 from ERP_DETTB where 1=1"; |
| | | String sqlUpDateErpDetTbOne = "update ERP_DETTB set STATUS=1 where 1=1 and PRD_NO="; |
| | | String sqlUpDateErpDetTbTwo = "update ERP_DETTB set STATUS=2 "; |
| | | |
| | | try { |
| | | List<ErpDetTb> erpDetTbs = erpSqlServer.select(sqlSelectErpDetTb, ErpDetTb.class); |
| | |
| | | if (status == 0) { |
| | | Mat mat = matService.selectByMatnr(erpDetTb.getPrdNo()); |
| | | if (Cools.isEmpty(mat)) { |
| | | erpSqlServer.update(sqlUpDateErpDetTbTwo + ",temp1='品号信息在立库不存在,请先添加商品!!!'" + "where 1=1 and prd_no=" + "'" + erpDetTb.getPrdNo() + "'"); |
| | | callApiLogSave(erpDetTb, "erp_det_tb", "品号信息在立库不存在,请先添加商品!!!", false); |
| | | erpSqlServer.update(sqlUpDateErpDetTbTwo + ",Temp1='品号信息在立库不存在,请先添加商品!!!'" + "where 1=1 and PRD_NO=" + "'" + erpDetTb.getPrdNo() + "'"); |
| | | callApiLogSave(erpDetTb, "ERP_DETTB", "品号信息在立库不存在,请先添加商品!!!", false); |
| | | } else { |
| | | Order order = orderService.selectByNo(erpDetTb.getBillNo()); |
| | | if (Cools.isEmpty(order)) { |
| | |
| | | now, // 修改时间 |
| | | null // 备注 |
| | | ); |
| | | String InAndOut = erpDetTb.getAddId().equals("2") ? "(出库)" : "(入库)"; |
| | | DocType docType = docTypeService.selectOrAdd(erpDetTb.getIokindid$() + InAndOut, erpDetTb.getAddId().equals("1")); |
| | | String InAndOut = erpDetTb.getAddId2()==2 ? "(出库)" : "(入库)"; |
| | | DocType docType = docTypeService.selectOrAdd("ERP订单"+InAndOut, erpDetTb.getAddId().equals("1")); |
| | | if (!Cools.isEmpty(docType)) { |
| | | order.setDocType(docType.getDocId()); |
| | | if (!orderService.insert(order)) { |
| | | callApiLogSave(erpDetTb, "erp_det_tb", "订单主档添加失败!!", false); |
| | | callApiLogSave(erpDetTb, "ERP_DETTB", "订单主档添加失败!!", false); |
| | | continue; |
| | | } else { |
| | | callApiLogSave(erpDetTb, "erp_det_tb", "订单主档添加成功!!", true); |
| | | callApiLogSave(erpDetTb, "ERP_DETTB", "订单主档添加成功!!", true); |
| | | } |
| | | } |
| | | } |
| | |
| | | orderDetl.setMemo(erpDetTb.getWh()); |
| | | if (orderDetlService.insert(orderDetl)) { |
| | | erpSqlServer.update(sqlUpDateErpDetTbOne + "'" + erpDetTb.getPrdNo() + "'"); |
| | | callApiLogSave(erpDetTb, "erp_det_tb", "接收ERP下发订单接收成功!!", true); |
| | | callApiLogSave(erpDetTb, "ERP_DETTB", "接收ERP下发订单接收成功!!", true); |
| | | } else { |
| | | erpSqlServer.update(sqlUpDateErpDetTbTwo + ",temp1='添加订单明细档失败!!!'" + "where 1=1 and prd_no=" + "'" + erpDetTb.getPrdNo() + "'"); |
| | | callApiLogSave(erpDetTb, "erp_det_tb", "ERP下发订单接收失败!!", false); |
| | | erpSqlServer.update(sqlUpDateErpDetTbTwo + ",temp1='添加订单明细档失败!!!'" + "where 1=1 and PRD_NO=" + "'" + erpDetTb.getPrdNo() + "'"); |
| | | callApiLogSave(erpDetTb, "ERP_DETTB", "ERP下发订单接收失败!!", false); |
| | | } |
| | | } |
| | | } |
| | |
| | | } else if (status == 1) { |
| | | String format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(now); |
| | | HashMap<String, Object> condition = new HashMap<>(); |
| | | condition.put("bill_no", "'" + erpDetTb.getBillNo() + "'"); |
| | | condition.put("prd_no", "'" + erpDetTb.getPrdNo() + "'"); |
| | | condition.put("iokindid", "'" + erpDetTb.getIokindid() + "'"); |
| | | condition.put("add_id", "'" + erpDetTb.getAddId() + "'"); |
| | | condition.put("qty", "'" + erpDetTb.getQty() + "'"); |
| | | condition.put("prd_mark", "'" + erpDetTb.getPrdMark() + "'"); |
| | | condition.put("wh", "'" + erpDetTb.getWh() + "'"); |
| | | condition.put("billdate", "'" + format + "'"); |
| | | condition.put("status", "'" + erpDetTb.getStatus() + "'"); |
| | | condition.put("temp1", "'" + erpDetTb.getTemp1() + "'"); |
| | | condition.put("temp2", "'" + erpDetTb.getTemp2() + "'"); |
| | | condition.put("temp3", "'" + erpDetTb.getTemp3() + "'"); |
| | | condition.put("BIL_NO", "'" + erpDetTb.getBillNo() + "'"); |
| | | condition.put("PRD_NO", "'" + erpDetTb.getPrdNo() + "'"); |
| | | condition.put("ITM", "'" + erpDetTb.getItm() + "'"); |
| | | condition.put("ADD_ID", "'" + erpDetTb.getAddId2() + "'"); |
| | | condition.put("QTY", "'" + erpDetTb.getQty() + "'"); |
| | | condition.put("PRD_MARK", "'" + erpDetTb.getPrdMark() + "'"); |
| | | condition.put("WH", "'" + erpDetTb.getWh() + "'"); |
| | | condition.put("BIL_DATE", "'" + format + "'"); |
| | | condition.put("STATUS", "'" + erpDetTb.getStatus() + "'"); |
| | | condition.put("Temp1", "'" + erpDetTb.getTemp1() + "'"); |
| | | condition.put("Temp2", "'" + erpDetTb.getTemp2() + "'"); |
| | | condition.put("Temp3", "'" + erpDetTb.getTemp3() + "'"); |
| | | erpSqlServer.insert(ErpDetTbBak.class, condition); |
| | | |
| | | // callApiLogSave(erpDetTb, "erp_det_tb_bak", "ERP下发订单备份成功!!", true); |
| | | // callApiLogSave(erpDetTb, "ERP_DETTB_BAK", "ERP下发订单备份成功!!", true); |
| | | |
| | | HashMap<String, String> condition2 = new HashMap<>(); |
| | | condition2.put("bill_no", "'" + erpDetTb.getBillNo() + "'"); |
| | | condition2.put("prd_no", "'" + erpDetTb.getPrdNo() + "'"); |
| | | condition2.put("prd_mark", "'" + erpDetTb.getPrdMark() + "'"); |
| | | condition2.put("BIL_NO", "'" + erpDetTb.getBillNo() + "'"); |
| | | condition2.put("PRD_NO", "'" + erpDetTb.getPrdNo() + "'"); |
| | | condition2.put("ITM", "'" + erpDetTb.getItm() + "'"); |
| | | condition2.put("PRD_MARK", "'" + erpDetTb.getPrdMark() + "'"); |
| | | erpSqlServer.delete(ErpDetTb.class, condition2); |
| | | |
| | | // callApiLogSave(erpDetTb, "erp_det_tb", "ERP下发订单备份后删除成功!!", true); |
| | | // callApiLogSave(erpDetTb, "ERP_DETTB", "ERP下发订单备份后删除成功!!", true); |
| | | |
| | | } else { |
| | | callApiLogSave(erpDetTb, "erp_det_tb", "接收ERP下发订单失败!!!状态异常!!!", false); |
| | | callApiLogSave(erpDetTb, "ERP_DETTB", "接收ERP下发订单失败!!!状态异常!!!", false); |
| | | } |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | Date date = new Date(); |
| | | log.error(date + ": 表名:erp_det_tb :" + e); |
| | | log.error(date + ": 表名:ERP_DETTB :" + e); |
| | | } |
| | | } |
| | | |
| | |
| | | private MatService matService; |
| | | |
| | | /** |
| | | * 获取商品信息表资料 年前 |
| | | * 获取商品信息表资料 |
| | | */ |
| | | @Scheduled(cron = "${erp.refreshtime}") |
| | | public void obtainPedt() { |
| | |
| | | private MatService matService; |
| | | |
| | | /** |
| | | * 获取商品信息表资料 |
| | | * 获取商品信息表资料 年前 |
| | | */ |
| | | @Scheduled(cron = "${erp.refreshtime}") |
| | | public void obtainPedt() { |
| | |
| | | erp: |
| | | enabled: false |
| | | enabledNew: false |
| | | enabledErpDetTb: false |
| | | # enabled: false |
| | | #查看ERP中间表间隔 |
| | | refreshtime: 0/5 * * * * ? |