| | |
| | | Integer[] array2 = new Integer[data2.size()]; |
| | | outqty.setData(data2.toArray(array2)); |
| | | list.add(outqty); |
| | | |
| | | AxisBean teu= new AxisBean(); |
| | | teu.setName("TEU"); |
| | | List<WorkTeuTotalAxis> workTeuTotalAxes = reportQueryMapper.getteuTotal(); |
| | | ArrayList<Integer> data3 = new ArrayList<>(); |
| | | for (WorkTeuTotalAxis w : workTeuTotalAxes) { |
| | | data3.add(w.getTeu_total()); |
| | | } |
| | | Integer[] array3 = new Integer[data3.size()]; |
| | | teu.setData(data3.toArray(array3)); |
| | | list.add(teu); |
| | | } |
| | | map.put("rows",list); |
| | | return R.ok(map); |
| | |
| | | list.add(inqty); |
| | | |
| | | AxisBean outqty = new AxisBean(); |
| | | outqty.setName("出库TU"); |
| | | outqty.setName("出库托盘数"); |
| | | Integer[] array2 = new Integer[data2.size()]; |
| | | outqty.setData(data2.toArray(array2)); |
| | | list.add(outqty); |
| New file |
| | |
| | | package com.zy.asrs.entity; |
| | | |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * 出库TEU统计曲线图 |
| | | * @author admin |
| | | * @date 2018年12月12日 |
| | | */ |
| | | @Data |
| | | public class WorkTeuTotalAxis { |
| | | private String ymd; |
| | | private int teu_total; |
| | | |
| | | } |
| | |
| | | private String orderNo; |
| | | |
| | | /** |
| | | * teu |
| | | */ |
| | | @ApiModelProperty(value= "teu") |
| | | @TableField("teu") |
| | | private Integer teu; |
| | | |
| | | /** |
| | | * 规格 |
| | | */ |
| | | @ApiModelProperty(value= "规格") |
| | |
| | | private String orderNo; |
| | | |
| | | /** |
| | | * teu |
| | | */ |
| | | @ApiModelProperty(value= "teu") |
| | | @TableField("teu") |
| | | private Integer teu; |
| | | |
| | | /** |
| | | * 规格 |
| | | */ |
| | | @ApiModelProperty(value= "规格") |
| | |
| | | @TableField("Pdc_type") |
| | | private String PdcType; |
| | | |
| | | @ApiModelProperty(value= "集装箱号") |
| | | @TableField("container_no") |
| | | private String containerNo; |
| | | |
| | | @ApiModelProperty(value= "") |
| | | @TableField("ctn_no") |
| | | private String ctnNo; |
| | |
| | | @TableField("Pdc_type") |
| | | private String PdcType; |
| | | |
| | | @ApiModelProperty(value= "集装箱号") |
| | | @TableField("container_no") |
| | | private String containerNo; |
| | | |
| | | @ApiModelProperty(value= "") |
| | | @TableField("ctn_no") |
| | | private String ctnNo; |
| | |
| | | private String entryWmsCode; |
| | | //出库单号 |
| | | private String orderId; |
| | | //集装箱号 |
| | | private String containerNo; |
| | | //外库门号 |
| | | private String outDoorNo; |
| | | } |
| | |
| | | @Select("SELECT ymd, inqty, outqty FROM v_asr_inout_hourly_stat ORDER BY ymd") |
| | | List<WorkChartAxis> getChartAxisHourly(); |
| | | |
| | | /** |
| | | * 按小时汇总(视图 v_asr_inout_hourly_stat,ymd 与接口 yyyy-MM-dd HH 对齐) |
| | | */ |
| | | @Select("SELECT ymd, teu_total FROM asr_wrk_detl_teu_day_view ORDER BY ymd") |
| | | List<WorkTeuTotalAxis> getteuTotal(); |
| | | |
| | | |
| | | |
| | | List<ViewWorkCountInView> selectWorkCountIn(@Param("curr") Integer curr, @Param("limit") Integer limit, @Param("matnr")String matnr, @Param("start") String startTime, @Param("end") String endTime); |
| | | |
| | | Integer selectWorkCountInTotal(String matnr, @Param("start") String startTime, @Param("end") String endTime); |
| | |
| | | "wrk_no, inv_wh, ymd, mk, whs_type, wrk_sts, io_type, crn_no, sheet_no, io_pri, wrk_date, loc_no, sta_no, source_sta_no, source_loc_no, loc_sts, " + |
| | | "picking, link_mis, online_yn, upd_mk, exit_mk, plt_type, batch_seq, empty_mk, io_time, ctn_type, packed, ove_mk, mtn_type, user_no, crn_str_time, " + |
| | | "crn_end_time, plc_str_time, crn_pos_time, load_time, exp_time, ref_wrkno, ref_iotime, modi_user, modi_time, appe_user, appe_time, pause_mk, " + |
| | | "error_time, error_memo, ctn_kind, manu_type, memo_m, sc_weight, log_mk, log_err_time, log_err_memo, barcode, Pdc_type, ctn_no, full_plt, pre_have, take_none) " + |
| | | "error_time, error_memo, ctn_kind, manu_type, memo_m, sc_weight, log_mk, log_err_time, log_err_memo, barcode, Pdc_type, container_no, ctn_no, full_plt, pre_have, take_none) " + |
| | | "SELECT " + |
| | | "wrk_no, inv_wh, ymd, mk, whs_type, wrk_sts, io_type, crn_no, sheet_no, io_pri, wrk_date, loc_no, sta_no, source_sta_no, source_loc_no, loc_sts, " + |
| | | "picking, link_mis, online_yn, upd_mk, exit_mk, plt_type, batch_seq, empty_mk, io_time, ctn_type, packed, ove_mk, mtn_type, user_no, crn_str_time, " + |
| | | "crn_end_time, plc_str_time, crn_pos_time, load_time, exp_time, ref_wrkno, ref_iotime, modi_user, modi_time, appe_user, appe_time, pause_mk, " + |
| | | "error_time, error_memo, ctn_kind, manu_type, memo, sc_weight, log_mk, log_err_time, log_err_memo, barcode, Pdc_type, ctn_no, full_plt, pre_have, take_none " + |
| | | "error_time, error_memo, ctn_kind, manu_type, memo, sc_weight, log_mk, log_err_time, log_err_memo, barcode, Pdc_type, container_no, ctn_no, full_plt, pre_have, take_none " + |
| | | "FROM asr_wrk_mast WHERE wrk_no=#{workNo}") |
| | | int save(Integer workNo); |
| | | |
| | |
| | | */ |
| | | @Override |
| | | public R outOrder(OutTaskParam param,int count) { |
| | | return outOrder(param, count, 1); |
| | | } |
| | | |
| | | private R outOrder(OutTaskParam param, int count, int teu) { |
| | | LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "F").eq("barcode", param.getPalletId())); |
| | | if (locMast == null) { |
| | | throw new CoolException("没有找到托盘码=" + param.getPalletId() + "对应的库位"); |
| | |
| | | wrkMast.setEmptyMk("N"); // 空板 |
| | | wrkMast.setLinkMis("N"); |
| | | wrkMast.setPdcType("N"); |
| | | wrkMast.setContainerNo(param.getContainerNo()); |
| | | // 7.11:orderId 存 userNo,batchSeq 存批次标识,seq 存批次内顺序。 |
| | | wrkMast.setUserNo(param.getOrderId());//订单号 |
| | | wrkMast.setBatchSeq(param.getBatchSeq());//订单内批次标识 |
| | |
| | | wrkDetl.setAppeUser(9995L); |
| | | wrkDetl.setModiTime(now); |
| | | wrkDetl.setModiUser(9995L); |
| | | wrkDetl.setTeu(teu); |
| | | // 7.11:entryWmsCode、outDoorNo 复用明细备用字段。 |
| | | wrkDetl.setStandby1(param.getEntryWmsCode()); |
| | | wrkDetl.setStandby2(param.getOutDoorNo()); |
| | |
| | | public R outOrderBatch(List<OutTaskParam> params) { |
| | | int n = params.size(); |
| | | Map<String, Integer> batchLineCounts = new HashMap<>(); |
| | | Map<String, Integer> batchTeuCounts = buildOutOrderBatchTeuCounts(params); |
| | | for (OutTaskParam outTaskParam : params) { |
| | | batchLineCounts.merge(buildOutOrderBatchKey(outTaskParam), 1, Integer::sum); |
| | | } |
| | | for (OutTaskParam outTaskParam : params) { |
| | | int count = batchLineCounts.getOrDefault(buildOutOrderBatchKey(outTaskParam), n); |
| | | R r = outOrder(outTaskParam, count); |
| | | int teu = batchTeuCounts.getOrDefault(outTaskParam.getBatchSeq(), 1); |
| | | R r = outOrder(outTaskParam, count, teu); |
| | | if (!Objects.equals(r.get("code"), 200)) { |
| | | throw new CoolException("出库建单失败"); |
| | | } |
| | |
| | | return param.getOrderId() + "#" + param.getBatchSeq(); |
| | | } |
| | | |
| | | private Map<String, Integer> buildOutOrderBatchTeuCounts(List<OutTaskParam> params) { |
| | | Map<String, Set<String>> batchOrderIds = new HashMap<>(); |
| | | for (OutTaskParam param : params) { |
| | | batchOrderIds.computeIfAbsent(param.getBatchSeq(), k -> new LinkedHashSet<>()).add(param.getOrderId()); |
| | | } |
| | | Map<String, Integer> batchTeuCounts = new HashMap<>(); |
| | | for (Map.Entry<String, Set<String>> entry : batchOrderIds.entrySet()) { |
| | | batchTeuCounts.put(entry.getKey(), entry.getValue().size()); |
| | | } |
| | | return batchTeuCounts; |
| | | } |
| | | |
| | | private String resolveOutboundOrderId(String palletId) { |
| | | List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>() |
| | | .eq("io_type", 101) |
| | |
| | | <result column="maktx" property="maktx"/> |
| | | <result column="batch" property="batch"/> |
| | | <result column="order_no" property="orderNo"/> |
| | | <result column="teu" property="teu"/> |
| | | |
| | | <result column="specs" property="specs"/> |
| | | <result column="model" property="model"/> |
| | |
| | | <result column="maktx" property="maktx" /> |
| | | <result column="batch" property="batch" /> |
| | | <result column="order_no" property="orderNo" /> |
| | | <result column="teu" property="teu" /> |
| | | |
| | | <result column="specs" property="specs" /> |
| | | <result column="model" property="model" /> |
| | |
| | | <result column="log_err_memo" property="logErrMemo" /> |
| | | <result column="barcode" property="barcode" /> |
| | | <result column="Pdc_type" property="PdcType" /> |
| | | <result column="container_no" property="containerNo" /> |
| | | <result column="ctn_no" property="ctnNo" /> |
| | | <result column="full_plt" property="fullPlt" /> |
| | | <result column="pre_have" property="preHave" /> |
| | |
| | | <result column="log_err_memo" property="logErrMemo" /> |
| | | <result column="barcode" property="barcode" /> |
| | | <result column="Pdc_type" property="PdcType" /> |
| | | <result column="container_no" property="containerNo" /> |
| | | <result column="ctn_no" property="ctnNo" /> |
| | | <result column="full_plt" property="fullPlt" /> |
| | | <result column="pre_have" property="preHave" /> |
| New file |
| | |
| | | IF COL_LENGTH('dbo.asr_wrk_mast', 'container_no') IS NULL |
| | | BEGIN |
| | | ALTER TABLE [dbo].[asr_wrk_mast] |
| | | ADD [container_no] NVARCHAR(100) NULL; |
| | | END |
| | | GO |
| | | |
| | | IF COL_LENGTH('dbo.asr_wrk_mast_log', 'container_no') IS NULL |
| | | BEGIN |
| | | ALTER TABLE [dbo].[asr_wrk_mast_log] |
| | | ADD [container_no] NVARCHAR(100) NULL; |
| | | END |
| | | GO |
| | | |
| | | IF COL_LENGTH('dbo.asr_wrk_detl', 'teu') IS NULL |
| | | BEGIN |
| | | ALTER TABLE [dbo].[asr_wrk_detl] |
| | | ADD [teu] INT NULL; |
| | | END |
| | | GO |
| | | |
| | | IF COL_LENGTH('dbo.asr_wrk_detl_log', 'teu') IS NULL |
| | | BEGIN |
| | | ALTER TABLE [dbo].[asr_wrk_detl_log] |
| | | ADD [teu] INT NULL; |
| | | END |
| | | GO |
| New file |
| | |
| | | USE [cool] |
| | | GO |
| | | |
| | | SET ANSI_NULLS ON |
| | | GO |
| | | |
| | | SET QUOTED_IDENTIFIER ON |
| | | GO |
| | | |
| | | WITH dedup_detail AS ( |
| | | SELECT |
| | | CONVERT(char(10), d.io_time, 23) AS ymd, |
| | | LTRIM(RTRIM(d.order_no)) AS order_no, |
| | | MAX(ISNULL(d.teu, 0)) AS teu_total |
| | | FROM dbo.asr_wrk_detl_log AS d |
| | | WHERE d.io_time >= DATEADD(day, -11, CONVERT(date, GETDATE())) |
| | | AND d.io_time < DATEADD(day, 1, CONVERT(date, GETDATE())) |
| | | AND d.order_no IS NOT NULL |
| | | AND LTRIM(RTRIM(d.order_no)) <> '' |
| | | GROUP BY |
| | | CONVERT(char(10), d.io_time, 23), |
| | | LTRIM(RTRIM(d.order_no)) |
| | | ) |
| | | SELECT |
| | | ymd, |
| | | SUM(teu_total) AS teu_total |
| | | FROM dedup_detail |
| | | GROUP BY ymd |
| | | GO |