src/main/java/com/zy/asrs/controller/OpenController.java
@@ -243,4 +243,19 @@ return R.ok().add(openService.digitalTwinRecentOrder(param)); } /** * 6.3近期剩余库位 近期剩余库位数量,默认7天 */ @RequestMapping("/digitalTwin/recentIdleLoc") public R digitalTwinRecentIdleLoc(@RequestHeader(required = false) String appkey, @RequestBody DigitalTwinRecentIdleLocParam param, HttpServletRequest request) { auth(appkey, param, request); if (Cools.isEmpty(param)) { return R.parse(BaseRes.PARAM); } return R.ok().add(openService.digitalTwinRecentIdleLoc(param)); } } src/main/java/com/zy/asrs/entity/param/DigitalTwinRecentIdleLocParam.java
New file @@ -0,0 +1,35 @@ package com.zy.asrs.entity.param; import lombok.Data; import java.util.List; /** * Created by vincent on 2020/6/13 */ @Data public class DigitalTwinRecentIdleLocParam { private int areaId; // 开始日期,格式:20251022。不传默认7天。 private String startDate; // 结束日期,格式:20251022。配合startDate使用。 private String endDate; private String memo; private List<DataCode> dataCodeList; @Data public static class DataCode { private int areaId; // 库存日期,格式:2025-10-22 private String locDate; // 数字 剩余库位数量 private Long idleNum; } } src/main/java/com/zy/asrs/entity/param/DigitalTwinRecentOrderParam.java
@@ -18,7 +18,6 @@ private String memo; private List<ViewOrderParam> viewOrderParamList; private List<DataCode> dataCodeList; @Data src/main/java/com/zy/asrs/entity/param/ViewLocDailyLogParam.java
New file @@ -0,0 +1,44 @@ package com.zy.asrs.entity.param; /** * Created by vincent on 2020/6/13 */ public class ViewLocDailyLogParam { private String ymd; private int area; private Long qty; private String sts; public String getYmd() { return ymd; } public void setYmd(String ymd) { this.ymd = ymd; } public int getArea() { return area; } public void setArea(int area) { this.area = area; } public Long getQty() { return qty; } public void setQty(Long qty) { this.qty = qty; } public String getSts() { return sts; } public void setSts(String sts) { this.sts = sts; } } src/main/java/com/zy/asrs/entity/param/ViewOrderParam.java
@@ -1,9 +1,5 @@ package com.zy.asrs.entity.param; import lombok.Data; import java.util.List; /** * Created by vincent on 2020/6/13 */ src/main/java/com/zy/asrs/mapper/ReportQueryMapper.java
@@ -1,6 +1,7 @@ package com.zy.asrs.mapper; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.ViewLocDailyLogParam; import com.zy.asrs.entity.param.ViewOrderParam; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -83,4 +84,7 @@ Integer selectWorkCountOutSum(String matnr, @Param("start") String startTime, @Param("end") String endTime); List<ViewOrderParam> getAsrOrderView(@Param("ymdS") String startTime, @Param("ymdD") String endTime); List<ViewLocDailyLogParam> getAsrLocDailyLogO(@Param("areaId")int areaId, @Param("ymdS") String startTime, @Param("ymdD") String endTime); List<ViewLocDailyLogParam> getAsrLocDailyLog2(@Param("areaId")int areaId, @Param("ymdS") String startTime, @Param("ymdD") String endTime); void insertAsrLocDailyLog(); } src/main/java/com/zy/asrs/service/OpenService.java
@@ -50,4 +50,5 @@ */ ViewStockUseBeanDigitalTwin digitalTwinOverview(); DigitalTwinRecentOrderParam digitalTwinRecentOrder(DigitalTwinRecentOrderParam digitalTwinRecentOrderParam); DigitalTwinRecentIdleLocParam digitalTwinRecentIdleLoc(DigitalTwinRecentIdleLocParam digitalTwinRecentIdleLocParam); } src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -641,7 +641,45 @@ param.setMemo(param.getMemo()+";初始化日期为 :"+param.getStartDate()+"===>" + param.getEndDate()); } List<ViewOrderParam> asrOrderView = reportQueryMapper.getAsrOrderView(param.getStartDate(), param.getEndDate()); param.setViewOrderParamList(asrOrderView); List<DigitalTwinRecentOrderParam.DataCode> dataCodes = new ArrayList<>(); for (ViewOrderParam view : asrOrderView) { DigitalTwinRecentOrderParam.DataCode dataCode = new DigitalTwinRecentOrderParam.DataCode(); dataCode.setOrderDate(view.getYmd()); dataCode.setOrderNum(view.getQty()); dataCodes.add(dataCode); } param.setDataCodeList(dataCodes); return param; } @Override @Transactional public DigitalTwinRecentIdleLocParam digitalTwinRecentIdleLoc(DigitalTwinRecentIdleLocParam param) { Date date = new Date(); if (Cools.isEmpty(param.getStartDate()) || !TimeCalculatorUtils.isValidDateFormat(param.getStartDate(), DateUtils.yyyyMMdd) || TimeCalculatorUtils.isFutureDate(param.getStartDate(), DateUtils.yyyyMMdd)) { param.setMemo("开始日期异常 :"+param.getStartDate()); String timeFrontSevenYesterday = new SimpleDateFormat(DateUtils.yyyyMMdd).format(TimeCalculatorUtils.timeFrontSevenYesterday6(date));//七天前 param.setStartDate(timeFrontSevenYesterday); String format = new SimpleDateFormat(DateUtils.yyyyMMdd).format(date);//当天 param.setEndDate(format); param.setMemo(param.getMemo()+";初始化日期为 :"+param.getStartDate()+"===>" + param.getEndDate()); } else if (Cools.isEmpty(param.getEndDate()) || !TimeCalculatorUtils.isValidDateFormat(param.getEndDate(), DateUtils.yyyyMMdd)) { param.setMemo("结束日期异常 :"+param.getEndDate()); String format = new SimpleDateFormat(DateUtils.yyyyMMdd).format(date);//当天 param.setEndDate(format); param.setMemo(param.getMemo()+";初始化日期为 :"+param.getStartDate()+"===>" + param.getEndDate()); } // List<ViewLocDailyLogParam> asrLocDailyLogO = reportQueryMapper.getAsrLocDailyLogO(param.getAreaId(), param.getStartDate(), param.getEndDate()); List<ViewLocDailyLogParam> asrLocDailyLogO = reportQueryMapper.getAsrLocDailyLog2(param.getAreaId(), param.getStartDate(), param.getEndDate()); List<DigitalTwinRecentIdleLocParam.DataCode> dataCodes = new ArrayList<>(); for (ViewLocDailyLogParam view : asrLocDailyLogO) { DigitalTwinRecentIdleLocParam.DataCode dataCode = new DigitalTwinRecentIdleLocParam.DataCode(); dataCode.setLocDate(view.getYmd()); dataCode.setIdleNum(view.getQty()); dataCode.setAreaId(view.getArea()); dataCodes.add(dataCode); } param.setDataCodeList(dataCodes); return param; } src/main/java/com/zy/asrs/task/OrderMoveHistoryScheduler.java
@@ -26,4 +26,9 @@ public void executeOrder(){ orderMoveHistoryHandler.startOrder(); } @Scheduled(cron = "59 59 23 * * ?") public void executeAsrLocDailyLog(){ orderMoveHistoryHandler.startAsrLocDailyLog(); } } src/main/java/com/zy/asrs/task/handler/OrderMoveHistoryHandler.java
@@ -3,7 +3,9 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.zy.asrs.entity.*; import com.zy.asrs.mapper.ReportQueryMapper; import com.zy.asrs.service.*; import com.zy.asrs.service.impl.LocMastServiceImpl; import com.zy.asrs.service.impl.OrderDetlPakinServiceImpl; import com.zy.asrs.service.impl.OrderPakinServiceImpl; import com.zy.asrs.task.AbstractHandler; @@ -31,6 +33,8 @@ private OrderDetlPakinServiceImpl orderDetlPakinService; @Autowired private OrderDetlPakoutService orderDetlPakoutService; @Autowired private ReportQueryMapper reportQueryMapper; public ReturnT<String> start(){ // List<Order> settleEqual6 = orderService.selectList(new EntityWrapper<Order>() @@ -114,4 +118,9 @@ } } public ReturnT<String> startAsrLocDailyLog(){ reportQueryMapper.insertAsrLocDailyLog(); return SUCCESS; } } src/main/resources/mapper/ViewWorkInMapper.xml
@@ -179,4 +179,44 @@ Order by ymd desc </select> <!-- 不分页查询所有信息 --> <select id="getAsrLocDailyLogO" parameterType="com.zy.asrs.entity.param.ViewLocDailyLogParam" resultType="com.zy.asrs.entity.param.ViewLocDailyLogParam"> select * from asr_loc_daily_log_view where 1=1 <choose> <when test="areaId != null and areaId != 0"> and sts = 'O' and area = #{areaId} </when> <otherwise> and sts = 'BFQ' and (area IS NULL OR area = 0) </otherwise> </choose> <include refid="viewAsrOrderView"></include> Order by ymd desc </select> <!-- 不分页查询所有信息 --> <select id="getAsrLocDailyLog2" parameterType="com.zy.asrs.entity.param.ViewLocDailyLogParam" resultType="com.zy.asrs.entity.param.ViewLocDailyLogParam"> select * from asr_loc_daily_log_view where 1=1 and sts = 'O' <if test="areaId != null and areaId != 0"> and area = #{areaId} </if> <include refid="viewAsrOrderView"></include> Order by ymd desc </select> <insert id="insertAsrLocDailyLog"> INSERT INTO asr_loc_daily_log (loc_count, area_id) SELECT COUNT(*), crn_no FROM asr_loc_mast WHERE loc_sts = 'O' GROUP BY crn_no; </insert> </mapper>