|  |  |  | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @PostMapping("/hand/control/processed/v2") | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | @ManagerAuth(memo = "确认å å·¥å®æV2") | 
|---|
|  |  |  | @Synchronized | 
|---|
|  |  |  | public R processedV2(@RequestBody AgvMobileStartPakin param) { | 
|---|
|  |  |  | agvMobileService.processedV2(param, getUserId()); | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static void main(String[] args) { | 
|---|
|  |  |  | List<AgvLocDetl> agvLocDetls1 = new ArrayList<>(); | 
|---|
|  |  |  | 
|---|
|  |  |  | package com.zy.asrs.controller; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.alibaba.excel.EasyExcel; | 
|---|
|  |  |  | import com.alibaba.fastjson.JSONObject; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.mapper.EntityWrapper; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.mapper.Wrapper; | 
|---|
|  |  |  | 
|---|
|  |  |  | import com.core.common.*; | 
|---|
|  |  |  | import com.zy.asrs.entity.*; | 
|---|
|  |  |  | import com.zy.asrs.entity.result.WrkTraceVo; | 
|---|
|  |  |  | import com.zy.asrs.excel.CloseOrderReadListener; | 
|---|
|  |  |  | import com.zy.asrs.excel.ExcelOrder; | 
|---|
|  |  |  | import com.zy.asrs.service.*; | 
|---|
|  |  |  | import com.zy.asrs.service.impl.OrderServiceImpl; | 
|---|
|  |  |  | import com.zy.common.web.BaseController; | 
|---|
|  |  |  | import lombok.extern.slf4j.Slf4j; | 
|---|
|  |  |  | import org.springframework.beans.BeanUtils; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
|---|
|  |  |  | import org.springframework.web.bind.annotation.*; | 
|---|
|  |  |  | import org.springframework.web.multipart.MultipartFile; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.io.IOException; | 
|---|
|  |  |  | import java.util.*; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Slf4j | 
|---|
|  |  |  | 
|---|
|  |  |  | private LocDetlService locDetlService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private MatService matService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private OrderServiceImpl orderService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/orderLog/nav/list/auth") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | public R navList(@RequestParam(required = false) String orderNo){ | 
|---|
|  |  |  | public R navList(@RequestParam(required = false) String orderNo) { | 
|---|
|  |  |  | EntityWrapper<OrderLog> wrapper = new EntityWrapper<>(); | 
|---|
|  |  |  | if (!Cools.isEmpty(orderNo)) { | 
|---|
|  |  |  | wrapper.like("order_no", orderNo); | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/orderLog/head/page/auth") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | public R head(@RequestParam(defaultValue = "1")Integer curr, | 
|---|
|  |  |  | @RequestParam(defaultValue = "10")Integer limit, | 
|---|
|  |  |  | @RequestParam(required = false)String orderByField, | 
|---|
|  |  |  | @RequestParam(required = false)String orderByType, | 
|---|
|  |  |  | @RequestParam Map<String, Object> param){ | 
|---|
|  |  |  | public R head(@RequestParam(defaultValue = "1") Integer curr, | 
|---|
|  |  |  | @RequestParam(defaultValue = "10") Integer limit, | 
|---|
|  |  |  | @RequestParam(required = false) String orderByField, | 
|---|
|  |  |  | @RequestParam(required = false) String orderByType, | 
|---|
|  |  |  | @RequestParam Map<String, Object> param) { | 
|---|
|  |  |  | EntityWrapper<OrderLog> wrapper = new EntityWrapper<>(); | 
|---|
|  |  |  | excludeTrash(param); | 
|---|
|  |  |  | convert(param, wrapper); | 
|---|
|  |  |  | if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else { | 
|---|
|  |  |  | if (!Cools.isEmpty(orderByField)) { | 
|---|
|  |  |  | wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType)); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | wrapper.orderBy("settle").orderBy("create_time", false); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | wrapper.eq("status", 1); | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/orderLog/detl/all/auth") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | public R head(@RequestParam Long orderId){ | 
|---|
|  |  |  | public R head(@RequestParam Long orderId) { | 
|---|
|  |  |  | return R.ok().add(orderDetlLogService.selectList(new EntityWrapper<OrderDetlLog>().eq("order_id", orderId))); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @PostMapping(value = "/orderLog/wrk/trace/auth") | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/orderLog/list/auth") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | public R list(@RequestParam(defaultValue = "1")Integer curr, | 
|---|
|  |  |  | @RequestParam(defaultValue = "10")Integer limit, | 
|---|
|  |  |  | @RequestParam(required = false)String orderByField, | 
|---|
|  |  |  | @RequestParam(required = false)String orderByType, | 
|---|
|  |  |  | @RequestParam Map<String, Object> param){ | 
|---|
|  |  |  | public R list(@RequestParam(defaultValue = "1") Integer curr, | 
|---|
|  |  |  | @RequestParam(defaultValue = "10") Integer limit, | 
|---|
|  |  |  | @RequestParam(required = false) String orderByField, | 
|---|
|  |  |  | @RequestParam(required = false) String orderByType, | 
|---|
|  |  |  | @RequestParam Map<String, Object> param) { | 
|---|
|  |  |  | EntityWrapper<OrderLog> wrapper = new EntityWrapper<>(); | 
|---|
|  |  |  | excludeTrash(param); | 
|---|
|  |  |  | convert(param, wrapper); | 
|---|
|  |  |  | if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} | 
|---|
|  |  |  | if (!Cools.isEmpty(orderByField)) { | 
|---|
|  |  |  | wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.ok(orderLogService.selectPage(new Page<>(curr, limit), wrapper)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){ | 
|---|
|  |  |  | for (Map.Entry<String, Object> entry : map.entrySet()){ | 
|---|
|  |  |  | private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper) { | 
|---|
|  |  |  | for (Map.Entry<String, Object> entry : map.entrySet()) { | 
|---|
|  |  |  | String val = String.valueOf(entry.getValue()); | 
|---|
|  |  |  | if (val.contains(RANGE_TIME_LINK)){ | 
|---|
|  |  |  | if (val.contains(RANGE_TIME_LINK)) { | 
|---|
|  |  |  | String[] dates = val.split(RANGE_TIME_LINK); | 
|---|
|  |  |  | wrapper.ge(entry.getKey(), DateUtils.convert(dates[0])); | 
|---|
|  |  |  | wrapper.le(entry.getKey(), DateUtils.convert(dates[1])); | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/orderLog/export/auth") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | public R export(@RequestBody JSONObject param){ | 
|---|
|  |  |  | public R export(@RequestBody JSONObject param) { | 
|---|
|  |  |  | EntityWrapper<OrderLog> wrapper = new EntityWrapper<>(); | 
|---|
|  |  |  | List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class); | 
|---|
|  |  |  | Map<String, Object> map = excludeTrash(param.getJSONObject("order")); | 
|---|
|  |  |  | 
|---|
|  |  |  | wrapper.like("id", condition); | 
|---|
|  |  |  | Page<OrderLog> page = orderLogService.selectPage(new Page<>(0, 10), wrapper); | 
|---|
|  |  |  | List<Map<String, Object>> result = new ArrayList<>(); | 
|---|
|  |  |  | for (OrderLog order : page.getRecords()){ | 
|---|
|  |  |  | for (OrderLog order : page.getRecords()) { | 
|---|
|  |  |  | Map<String, Object> map = new HashMap<>(); | 
|---|
|  |  |  | map.put("id", order.getId()); | 
|---|
|  |  |  | map.put("value", order.getOrderNo()); | 
|---|
|  |  |  | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | public R query(@RequestBody JSONObject param) { | 
|---|
|  |  |  | Wrapper<OrderLog> wrapper = new EntityWrapper<OrderLog>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val")); | 
|---|
|  |  |  | if (null != orderLogService.selectOne(wrapper)){ | 
|---|
|  |  |  | if (null != orderLogService.selectOne(wrapper)) { | 
|---|
|  |  |  | return R.parse(BaseRes.REPEAT).add(getComment(Order.class, String.valueOf(param.get("key")))); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * æä»¶ä¸ä¼ ,å
³éåæ® | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @PostMapping("/order/close") | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | public R upload(MultipartFile file) throws IOException { | 
|---|
|  |  |  | EasyExcel.read(file.getInputStream(), ExcelOrder.class, new CloseOrderReadListener(orderService)).sheet().doRead(); | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // ç«ç¹ç  | 
|---|
|  |  |  | private String devNo; | 
|---|
|  |  |  | //订åç¼å·éæBæ¯äºåï¼Gæ¯ä¸å | 
|---|
|  |  |  | private String factory; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private List<CombParam> combParams; | 
|---|
|  |  |  |  | 
|---|
| New file | 
|  |  |  | 
|---|
|  |  |  | package com.zy.asrs.excel; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.alibaba.excel.context.AnalysisContext; | 
|---|
|  |  |  | import com.alibaba.excel.read.listener.ReadListener; | 
|---|
|  |  |  | import com.alibaba.excel.util.ListUtils; | 
|---|
|  |  |  | import com.alibaba.fastjson.JSON; | 
|---|
|  |  |  | import com.zy.asrs.controller.AgvMobileController; | 
|---|
|  |  |  | import com.zy.asrs.entity.Order; | 
|---|
|  |  |  | import com.zy.asrs.service.OrderService; | 
|---|
|  |  |  | import org.slf4j.Logger; | 
|---|
|  |  |  | import org.slf4j.LoggerFactory; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public class CloseOrderReadListener implements ReadListener<ExcelOrder> { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private static final Logger log = LoggerFactory.getLogger(CloseOrderReadListener.class); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * æ¯é5æ¡å卿°æ®åºï¼å®é
使ç¨ä¸å¯ä»¥100æ¡ï¼ç¶åæ¸
çlist ï¼æ¹ä¾¿å
ååæ¶ | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private static final int BATCH_COUNT = 300; | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * ç¼åçæ°æ® | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private List<ExcelOrder> cachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private OrderService orderService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * å¦æä½¿ç¨äºspring,请使ç¨è¿ä¸ªæé æ¹æ³ãæ¯æ¬¡å建Listenerçæ¶åéè¦æspring管ççç±»ä¼ è¿æ¥ | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param orderService | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public CloseOrderReadListener(OrderService orderService) { | 
|---|
|  |  |  | this.orderService = orderService; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * è¿ä¸ªæ¯ä¸æ¡æ°æ®è§£æé½ä¼æ¥è°ç¨ | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param data    one row value. Is is same as | 
|---|
|  |  |  | * @param context | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void invoke(ExcelOrder data, AnalysisContext context) { | 
|---|
|  |  |  | log.info("è§£æå°ä¸æ¡æ°æ®:{}", JSON.toJSONString(data)); | 
|---|
|  |  |  | cachedDataList.add(data); | 
|---|
|  |  |  | // è¾¾å°BATCH_COUNTäºï¼éè¦å»åå¨ä¸æ¬¡æ°æ®åºï¼é²æ¢æ°æ®å ä¸æ¡æ°æ®å¨å
åï¼å®¹æOOM | 
|---|
|  |  |  | if (cachedDataList.size() >= BATCH_COUNT) { | 
|---|
|  |  |  | saveData(); | 
|---|
|  |  |  | // åå¨å®ææ¸
ç list | 
|---|
|  |  |  | cachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * æææ°æ®è§£æå®æäº é½ä¼æ¥è°ç¨ | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param context | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void doAfterAllAnalysed(AnalysisContext context) { | 
|---|
|  |  |  | // è¿éä¹è¦ä¿åæ°æ®ï¼ç¡®ä¿æåéççæ°æ®ä¹åå¨å°æ°æ®åº | 
|---|
|  |  |  | saveData(); | 
|---|
|  |  |  | log.info("æææ°æ®è§£æå®æï¼"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * å ä¸å卿°æ®åº | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private void saveData() { | 
|---|
|  |  |  | log.info("{}æ¡æ°æ®ï¼å¼å§æä½æ°æ®åºï¼", cachedDataList.size()); | 
|---|
|  |  |  | for (ExcelOrder excelOrder : cachedDataList) { | 
|---|
|  |  |  | Order order = orderService.selectByNo(excelOrder.getOrderNo()); | 
|---|
|  |  |  | if (order != null) { | 
|---|
|  |  |  | orderService.updateSettle(order.getId(), 6L, 9529L); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | log.info("å卿°æ®åºæåï¼"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
| New file | 
|  |  |  | 
|---|
|  |  |  | package com.zy.asrs.excel; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.alibaba.excel.annotation.ExcelProperty; | 
|---|
|  |  |  | import lombok.Data; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.io.Serializable; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Data | 
|---|
|  |  |  | public class ExcelOrder implements Serializable { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @ExcelProperty("åæ®ç¼å·") | 
|---|
|  |  |  | private String orderNo; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public void updateLocStsByLocNo(String locNo, String locSts, String barcode,Short containerType); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public void updateLocStsByLocNo(String locNo, String locSts, String barcode,Short containerType,String ctnNo); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public void updateLocStsByLocNo(String locNo, String locSts, String barcode,Short containerType,String locType,Short locType3); | 
|---|
|  |  |  | public List<String> queryGroupEmptyStock(int floor); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | * ç¡®è®¤å å·¥å®æ | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | String processed(AgvMobileStartPakin param, Long userId); | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * ç¡®è®¤å å·¥å®æï¼åæ | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | String processedV2(AgvMobileStartPakin param, Long userId); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * ç©ºæ¶ç¦»åº | 
|---|
|  |  |  | 
|---|
|  |  |  | agvLocMast.setModiTime(new Date()); | 
|---|
|  |  |  | this.updateById(agvLocMast); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public void updateLocStsByLocNo(String locNo, String locSts, String barcode,Short containerType,String ctnNo) { | 
|---|
|  |  |  | AgvLocMast agvLocMast = this.selectById(locNo); | 
|---|
|  |  |  | agvLocMast.setLocSts(locSts); | 
|---|
|  |  |  | agvLocMast.setBarcode(barcode); | 
|---|
|  |  |  | agvLocMast.setLocType2(containerType); | 
|---|
|  |  |  | agvLocMast.setCtnNo(ctnNo); | 
|---|
|  |  |  | agvLocMast.setModiTime(new Date()); | 
|---|
|  |  |  | this.updateById(agvLocMast); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public void updateLocStsByLocNo(String locNo, String locSts, String barcode,Short containerType,String locType,Short locType3) { | 
|---|
|  |  |  | AgvLocMast agvLocMast = this.selectById(locNo); | 
|---|
|  |  |  | agvLocMast.setLocSts(locSts); | 
|---|
|  |  |  | 
|---|
|  |  |  | import com.core.common.BaseRes; | 
|---|
|  |  |  | import com.core.common.Cools; | 
|---|
|  |  |  | import com.core.exception.CoolException; | 
|---|
|  |  |  | import com.zy.asrs.constant.AsrsConstants; | 
|---|
|  |  |  | import com.zy.asrs.entity.*; | 
|---|
|  |  |  | import com.zy.asrs.entity.param.*; | 
|---|
|  |  |  | import com.zy.asrs.service.*; | 
|---|
|  |  |  | import com.zy.asrs.utils.CodeDetectionUtil; | 
|---|
|  |  |  | import com.zy.asrs.utils.OrderUtils; | 
|---|
|  |  |  | import com.zy.common.model.DetlDto; | 
|---|
|  |  |  | import com.zy.common.service.AgvCommonService; | 
|---|
|  |  |  | import lombok.Synchronized; | 
|---|
|  |  |  | 
|---|
|  |  |  | agvWrkMastLogService.save(agvWrkMast); | 
|---|
|  |  |  | agvWrkDetlLogService.save(agvWrkMast.getWrkNo()); | 
|---|
|  |  |  | String sourceLocNo = agvWrkMast.getSourceLocNo(); | 
|---|
|  |  |  | //AgvLocMast newLocMast = agvCommonService.getLocNo(3, 1, false, false); | 
|---|
|  |  |  | // TODO: åæ | 
|---|
|  |  |  | AgvLocMast newLocMast = agvCommonService.getLocNo(3, 1, false, false); | 
|---|
|  |  |  | List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("supp_code", param.getBarcode())); | 
|---|
|  |  |  | String factory = null; | 
|---|
|  |  |  | if (!Cools.isEmpty(agvWrkDetls)) { | 
|---|
|  |  |  | factory = OrderUtils.getFactory(agvWrkDetls.get(0).getThreeCode()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | AgvLocMast newLocMast = agvCommonService.getLocByLocRule(3, 1, factory); | 
|---|
|  |  |  | if (newLocMast == null) { | 
|---|
|  |  |  | throw new CoolException("æ å¯ç¨åºä½"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | return "ok"; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /* | 
|---|
|  |  |  | * ç¡®è®¤å å·¥å®æ | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public String processedV2(AgvMobileStartPakin param, Long userId) { | 
|---|
|  |  |  | Date now = new Date(); | 
|---|
|  |  |  | AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode", param.getBarcode()).eq("loc_no", param.getDevNo())); | 
|---|
|  |  |  | if (Cools.isEmpty(agvWrkMast)) { | 
|---|
|  |  |  | throw new CoolException("ææ å½åè´§æ¶ç工使¡£"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (agvWrkMast.getWrkSts() != 205) { | 
|---|
|  |  |  | throw new CoolException("å½å任塿ªå®æï¼è¯·ç¡®è®¤"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //çæAGVå·¥ä½å岿¡£ + çæAGV工使ç»å岿¡£ | 
|---|
|  |  |  | agvWrkMastLogService.save(agvWrkMast); | 
|---|
|  |  |  | agvWrkDetlLogService.save(agvWrkMast.getWrkNo()); | 
|---|
|  |  |  | String sourceLocNo = agvWrkMast.getSourceLocNo(); | 
|---|
|  |  |  | // TODO: åæ | 
|---|
|  |  |  | List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("supp_code", param.getBarcode())); | 
|---|
|  |  |  | String factory = param.getFactory(); | 
|---|
|  |  |  | AgvLocMast newLocMast = agvCommonService.getLocByLocRule(3, 1, factory); | 
|---|
|  |  |  | if (newLocMast == null) { | 
|---|
|  |  |  | throw new CoolException("æ å¯ç¨åºä½"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | agvWrkMast.setSourceLocNo(agvWrkMast.getLocNo()); | 
|---|
|  |  |  | agvWrkMast.setLocNo(newLocMast.getLocNo()); | 
|---|
|  |  |  | agvWrkMast.setIoType(57); | 
|---|
|  |  |  | agvWrkMast.setWrkSts(201L); | 
|---|
|  |  |  | agvWrkMast.setModiUser(userId); | 
|---|
|  |  |  | agvWrkMast.setModiTime(now); | 
|---|
|  |  |  | agvWrkMast.setIoTime(now); | 
|---|
|  |  |  | // ææ è®°ï¼è¥åºä½ä¸å¤ï¼å
¥åºå°å«ç楼å±ï¼é£ä¹éè¦è·¨å±ç§»åº | 
|---|
|  |  |  | if (!Cools.isEmpty(factory)){ | 
|---|
|  |  |  | if (newLocMast.getLev1() == 1 && factory.equals(AsrsConstants.SANCHANG)) { | 
|---|
|  |  |  | agvWrkMast.setPacked("1"); | 
|---|
|  |  |  | } else if (newLocMast.getLev1() == 2 && factory.equals(AsrsConstants.ERCHANG)) { | 
|---|
|  |  |  | agvWrkMast.setPacked("1"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (!agvWrkMastService.update(agvWrkMast, new EntityWrapper<AgvWrkMast>().eq("wrk_no", agvWrkMast.getWrkNo()))) { | 
|---|
|  |  |  | throw new CoolException("æ´æ°å·¥ä½æ¡£å¤±è´¥"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // æ´æ°æºç«ç¹ + ç®æ åºä½ç¶æ + å岿ºåºä½ | 
|---|
|  |  |  | agvBasDevpService.updateLocStsAndBarcodeByDevNo(param.getDevNo(), "R", param.getBarcode(), agvWrkMast.getWhsType().shortValue()); | 
|---|
|  |  |  | agvLocMastService.updateLocStsByLocNo(newLocMast.getLocNo(), "S", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue()); | 
|---|
|  |  |  | agvLocMastService.updateLocStsByLocNo(sourceLocNo, "O", "", (short) 30); | 
|---|
|  |  |  | agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no", sourceLocNo)); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | agvWrkDetls.forEach(agvWrkDetl -> { | 
|---|
|  |  |  | for (AgvWrkDetl wrkDetl : param.getWrkDetls()) { | 
|---|
|  |  |  | if (wrkDetl.getMatnr().equals(agvWrkDetl.getMatnr()) && wrkDetl.getThreeCode().equals(agvWrkDetl.getThreeCode())) { | 
|---|
|  |  |  | agvWrkDetl.setAnfme(wrkDetl.getAnfme()); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | agvWrkDetl.setProcessSts(2); | 
|---|
|  |  |  | agvWrkDetl.setOrderNo(agvWrkDetl.getOrderNo().substring(2)); | 
|---|
|  |  |  | agvWrkDetl.setModiUser(userId); | 
|---|
|  |  |  | agvWrkDetl.setModiTime(now); | 
|---|
|  |  |  | agvWrkDetl.setIoTime(now); | 
|---|
|  |  |  | if (!agvWrkDetlService.update(agvWrkDetl, new EntityWrapper<AgvWrkDetl>() | 
|---|
|  |  |  | .eq("matnr", agvWrkDetl.getMatnr()) | 
|---|
|  |  |  | .eq("three_code", agvWrkDetl.getThreeCode()) | 
|---|
|  |  |  | .eq("supp_code", param.getBarcode()))) { | 
|---|
|  |  |  | throw new CoolException("æ´æ°å·¥ä½æç»å¤±è´¥"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | return "ok"; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /* | 
|---|
|  |  |  | * ç«ç¹åé | 
|---|
|  |  |  | 
|---|
|  |  |  | import com.zy.asrs.service.*; | 
|---|
|  |  |  | import com.zy.common.service.AgvCommonService; | 
|---|
|  |  |  | import com.zy.common.utils.HttpHandler; | 
|---|
|  |  |  | import com.zy.system.entity.Config; | 
|---|
|  |  |  | import com.zy.system.service.ConfigService; | 
|---|
|  |  |  | import lombok.extern.slf4j.Slf4j; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Value; | 
|---|
|  |  |  | 
|---|
|  |  |  | private AgvCommonService agvCommonService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private AgvWrkMastService agvWrkMastService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private ConfigService configService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public Boolean updateWrkStsByWrkNo(int wrkNo, long wrkSts) { | 
|---|
|  |  |  | 
|---|
|  |  |  | agvWrkMast.setWrkNo(-agvWrkMast.getWrkNo()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | agvTaskCreateParam.setTaskCode(agvWrkMast.getWrkNo().toString()); | 
|---|
|  |  |  | switch (agvWrkMast.getIoType()) { | 
|---|
|  |  |  | case 114: | 
|---|
|  |  |  | case 108: | 
|---|
|  |  |  | case 12: | 
|---|
|  |  |  | agvTaskCreateParam.setTaskTyp("F06"); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 109: | 
|---|
|  |  |  | if (agvWrkMast.getWrkSts() == 201) { | 
|---|
|  |  |  | Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "FOUR")); | 
|---|
|  |  |  | if (config != null && config.getStatus() == 1 && config.getValue().equals("1") && processUseTiShengJi(agvWrkMast.getSourceLocNo(), agvWrkMast.getLocNo())) { | 
|---|
|  |  |  | // TODO åæ | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | switch (agvWrkMast.getIoType()) { | 
|---|
|  |  |  | case 114: | 
|---|
|  |  |  | case 108: | 
|---|
|  |  |  | case 12: | 
|---|
|  |  |  | agvTaskCreateParam.setTaskTyp("F06"); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 109: | 
|---|
|  |  |  | if (agvWrkMast.getWrkSts() == 201) { | 
|---|
|  |  |  | agvTaskCreateParam.setTaskTyp("F06"); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | agvTaskCreateParam.setTaskTyp("F01"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 1: | 
|---|
|  |  |  | case 57: | 
|---|
|  |  |  | // å
¥åºä»»å¡æ¯åªæ æ¥é©³ä½ -- > åºä½ | 
|---|
|  |  |  | AgvLocMast loc = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvWrkMast.getLocNo())); | 
|---|
|  |  |  | String locSub = loc.getLocNo().substring(loc.getLocNo().length() - 4).substring(0, 2).substring(0, 2); | 
|---|
|  |  |  | AgvBasDevp agvBasDevp = agvBasDevpService.selectByDevNo(agvWrkMast.getSourceLocNo()); | 
|---|
|  |  |  | if ("02".equals(locSub)) { | 
|---|
|  |  |  | if (agvBasDevp.getFloor() == 4) { | 
|---|
|  |  |  | agvTaskCreateParam.setTaskTyp("F01"); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | agvTaskCreateParam.setTaskTyp("F06"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | // ç®æ æ¥¼å±ä½1楼 ä½æºåºä½ï¼æ¥é©³ä½ï¼å¨å¸å¡äºæ¥¼ | 
|---|
|  |  |  | if (agvBasDevp.getFloor() == 4) { | 
|---|
|  |  |  | agvTaskCreateParam.setTaskTyp("F06"); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | agvTaskCreateParam.setTaskTyp("F01"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | default: | 
|---|
|  |  |  | agvTaskCreateParam.setTaskTyp("F01"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 1: | 
|---|
|  |  |  | case 57: | 
|---|
|  |  |  | // å
¥åºä»»å¡æ¯åªæ æ¥é©³ä½ -- > åºä½ | 
|---|
|  |  |  | AgvLocMast loc = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvWrkMast.getLocNo())); | 
|---|
|  |  |  | String locSub = loc.getLocNo().substring(loc.getLocNo().length() - 4).substring(0, 2).substring(0, 2); | 
|---|
|  |  |  | AgvBasDevp agvBasDevp = agvBasDevpService.selectByDevNo(agvWrkMast.getSourceLocNo()); | 
|---|
|  |  |  | if ("02".equals(locSub)) { | 
|---|
|  |  |  | if (agvBasDevp.getFloor() == 4) { | 
|---|
|  |  |  | agvTaskCreateParam.setTaskTyp("F01"); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | agvTaskCreateParam.setTaskTyp("F06"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | // ç®æ æ¥¼å±ä½1楼 ä½æºåºä½ï¼æ¥é©³ä½ï¼å¨å¸å¡äºæ¥¼ | 
|---|
|  |  |  | if (agvBasDevp.getFloor() == 4) { | 
|---|
|  |  |  | agvTaskCreateParam.setTaskTyp("F06"); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | agvTaskCreateParam.setTaskTyp("F01"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | default: | 
|---|
|  |  |  | agvTaskCreateParam.setTaskTyp("F01"); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | agvTaskCreateParam.setPositionCodePath(agvTaskParamList); | 
|---|
|  |  |  | 
|---|
|  |  |  | * ä¼å
éæ©å
å°æ¥é©³ä½ï¼æ¥é©³ä½å¯å
¥ï¼ åéæ©ç´æ¥ååº | 
|---|
|  |  |  | * 2楼æ3楼ç«ç¹å¯å
¥ä¿¡å·å
¨é¨æ²¡æï¼ä»£è¡¨èµ°çµæ¢¯èªå¨æ¬è¿æ¨¡å¼ | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Scheduled(cron = "0/2 * * * * ? ") | 
|---|
|  |  |  | @Scheduled(cron = "0/30 * * * * ? ") | 
|---|
|  |  |  | private void autoEmptyBack4() { | 
|---|
|  |  |  | // æ¥è¯¢ ä¸ä¸º1楼çç©ºè´§æ¶ | 
|---|
|  |  |  | List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(new EntityWrapper<AgvLocMast>() | 
|---|
|  |  |  | 
|---|
|  |  |  | * å°äºåç6ç±»åç空货æ¶è°æ¨åå¸å¡äºæ¥¼ | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | // TODO åæ | 
|---|
|  |  |  | @Scheduled(cron = "0/2 * * * * ? ") | 
|---|
|  |  |  | @Scheduled(cron = "0/30 * * * * ? ") | 
|---|
|  |  |  | private void autoEmptyBackSiqi() { | 
|---|
|  |  |  | // æ¥è¯¢6ç±»å空货æ¶è¿åçæ§è¡æ¶é´ç¹ | 
|---|
|  |  |  | Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "RETURN_6_TIME")); | 
|---|
|  |  |  | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | // å¤ææ¯å¦å¨æ§è¡æ¶é´å | 
|---|
|  |  |  | ProcesTimeData procesTimeData = JSONObject.parseObject(config.getValue(), ProcesTimeData.class); | 
|---|
|  |  |  | if (procesTimeData != null && TimeUtils.between(procesTimeData)) { | 
|---|
|  |  |  | if (procesTimeData != null && config.getStatus() == 1 && TimeUtils.between(procesTimeData)) { | 
|---|
|  |  |  | flag = true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | 
|---|
|  |  |  | if (flag) { | 
|---|
|  |  |  | executeLocType6(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | executeLocType6(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //        else { | 
|---|
|  |  |  | //            executeLocType6(); | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | * èªå¨ï¼ çæ 109 èªå¨åæµ | 
|---|
|  |  |  | * æå¨ï¼ çæ 113 æå¨åæµ | 
|---|
|  |  |  | * ä¼å
éæ©å
å°æ¥é©³ä½ï¼æ¥é©³ä½å¯å
¥ï¼ åéæ©ç´æ¥ååº | 
|---|
|  |  |  | * | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Scheduled(cron = "0/2 * * * * ? ") | 
|---|
|  |  |  | private void autoEmptyBack5() { | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * èªå¨ç§»åº | 
|---|
|  |  |  | * | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Scheduled(cron = "0/2 * * * * ? ") | 
|---|
|  |  |  | private void autoEmptyBack7() throws ParseException { | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * èªå¨ç§»åºï¼åæ | 
|---|
|  |  |  | * å¨åºä½ä¸å¤çæ
åµä¸ï¼ç®±å£³å
¥åºå«ç楼å±åºä½çæ¶åï¼æä¸è¿è¡è·¨å±ç§»åº | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Scheduled(cron = "0/2 * * * * ? ") | 
|---|
|  |  |  | private void autoEmptyBack8() throws ParseException { | 
|---|
|  |  |  | Date now = new Date(); | 
|---|
|  |  |  | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); | 
|---|
|  |  |  | String currentDay = sdf.format(now); | 
|---|
|  |  |  | Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "autoTime2")); | 
|---|
|  |  |  | if (Cools.isEmpty(config)) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | if (config.getStatus().intValue() == 0) { | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | JSONObject jsonObject = JSON.parseObject(config.getValue().toString()); | 
|---|
|  |  |  | Integer maxTansk = jsonObject.getInteger("maxTansk"); | 
|---|
|  |  |  | //Integer startTime = jsonObject.getInteger("startTime"); | 
|---|
|  |  |  | String startTime = jsonObject.getString("startTime"); | 
|---|
|  |  |  | long time1 = new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(currentDay + " " + startTime).getTime(); | 
|---|
|  |  |  | long time = now.getTime(); | 
|---|
|  |  |  | long time3 = time - time1; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (time3 > 0 && time3 < (1000 * 60 * 10)) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("io_type", 12)); | 
|---|
|  |  |  | if (agvWrkMasts != null && maxTansk <= agvWrkMasts.size()) { | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(new EntityWrapper<AgvLocMast>().eq("floor", 1).eq("loc_sts", "F").eq("loc_type1", 3).eq("ctn_no", "1")); | 
|---|
|  |  |  | if (agvLocMasts.isEmpty()) { | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for (AgvLocMast agvLocMast : agvLocMasts) { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | autoMoveHandler.autoTransfersV2(agvLocMast, maxTansk); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | log.error("åºä½å·" + agvLocMast.getLocNo() + "åæå®æ¶ç§»åºä»»å¡ å¸å¡ --> å¸å¡,å¤ç失败ï¼===ãå¼å¸¸åå ï¼" + e.getMessage()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | //    private boolean isERP; | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //@Scheduled(cron = "0/10 * * * * ? ") | 
|---|
|  |  |  | @Scheduled(fixedDelay = 600000) | 
|---|
|  |  |  | @Scheduled(fixedDelay = 1000) | 
|---|
|  |  |  | private void execute() { | 
|---|
|  |  |  | List<Order> orders = orderService.selectToBeHistoryOrder(); | 
|---|
|  |  |  | if (orders.isEmpty()) { | 
|---|
|  |  |  | 
|---|
|  |  |  | //æ´æ°åºåæç» | 
|---|
|  |  |  | agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(), agvWrkMast.getLocNo()); | 
|---|
|  |  |  | //ä¿®æ¹æºåºä½ç¶æä¸ºO | 
|---|
|  |  |  | agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(), "O", "", null); | 
|---|
|  |  |  | agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(), "O", "", null,null); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 53: | 
|---|
|  |  |  | //ä¿®æ¹å·¥ä½å
æç» | 
|---|
|  |  |  | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | // æ´æ°ç«ç¹ + åºä½ç¶æ     æºåºä½æ¯ç«ç¹ | 
|---|
|  |  |  | agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(), "O", "", agvWrkMast.getWhsType().shortValue()); | 
|---|
|  |  |  | agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue()); | 
|---|
|  |  |  | agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue(),agvWrkMast.getPacked()); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 58: | 
|---|
|  |  |  | agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue()); | 
|---|
|  |  |  | 
|---|
|  |  |  | //æ£ç´¢åºä½ï¼éæ©åéçåºä½ | 
|---|
|  |  |  | AgvLocMast LocMast = agvCommonService.getLocNo(3, 1, false, false); | 
|---|
|  |  |  | if (LocMast.getLev1() != 2) { | 
|---|
|  |  |  | throw new CoolException("ç®æ æ¥¼å±ä¸æ¯å¸å¡äºæ¥¼"); | 
|---|
|  |  |  | //throw new CoolException("ç®æ æ¥¼å±ä¸æ¯å¸å¡äºæ¥¼"); | 
|---|
|  |  |  | return FAIL; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().like("loc_no", "02F1").like("source_loc_no", "F1").eq("io_type", 12)); | 
|---|
|  |  |  | if (agvWrkMasts.size() >= maxTansk) { | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return SUCCESS; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * åæï¼è·¨å±ç§»åºï¼1楼å°2楼ï¼2楼å°1楼 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param agvLocMast | 
|---|
|  |  |  | * @param maxTansk | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public ReturnT<String> autoTransfersV2(AgvLocMast agvLocMast, Integer maxTansk) { | 
|---|
|  |  |  | Date now = new Date(); | 
|---|
|  |  |  | List<AgvLocDetl> locDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvLocMast.getLocNo())); | 
|---|
|  |  |  | locDetls.forEach(agvLocDetl -> { | 
|---|
|  |  |  | if (agvLocDetl.getProcessSts().equals(1)) { | 
|---|
|  |  |  | throw new CoolException("å½ååºä½æåºåæªå å·¥"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | //æ¥è¯¢å·¥ä½æ¡£ | 
|---|
|  |  |  | AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvLocMast.getBarcode()); | 
|---|
|  |  |  | if (!Cools.isEmpty(agvWrkMast)) { | 
|---|
|  |  |  | throw new CoolException("å½å" + agvLocMast.getBarcode() + "è´§æ¶ç å·²å¨å·¥ä½æ¡£ä¸"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | AgvLocMast LocMast; | 
|---|
|  |  |  | if (agvLocMast.getLev1() == 1) { | 
|---|
|  |  |  | //æ£ç´¢åºä½ï¼éæ©åéçåºä½ | 
|---|
|  |  |  | LocMast = agvCommonService.getLocByLocRule(3, 1, 2); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | LocMast = agvCommonService.getLocByLocRule(3, 1, 1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("io_type", 12)); | 
|---|
|  |  |  | if (agvWrkMasts.size() >= maxTansk) { | 
|---|
|  |  |  | throw new CoolException("èªå¨ç§»åºä»»å¡å·²å°è®¾å®æå¤§å¼ï¼" + maxTansk); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //çæå·¥ä½æ¡£ | 
|---|
|  |  |  | AgvWrkMast mast = new AgvWrkMast(); | 
|---|
|  |  |  | //å·¥ä½ç¶æ | 
|---|
|  |  |  | mast.setWrkSts(201L); | 
|---|
|  |  |  | //å
¥åºåºç±»å | 
|---|
|  |  |  | mast.setIoType(12); | 
|---|
|  |  |  | mast.setIoTime(now); | 
|---|
|  |  |  | //ä¼å
级 | 
|---|
|  |  |  | mast.setIoPri(300.0); | 
|---|
|  |  |  | //æºç«ç¹ | 
|---|
|  |  |  | mast.setSourceLocNo(agvLocMast.getLocNo()); | 
|---|
|  |  |  | //ç®æ ç«ç¹ | 
|---|
|  |  |  | mast.setLocNo(LocMast.getLocNo()); | 
|---|
|  |  |  | //è´§æ¶ç¼ç  | 
|---|
|  |  |  | mast.setBarcode(agvLocMast.getBarcode()); | 
|---|
|  |  |  | //è´§æ¶ç±»å | 
|---|
|  |  |  | mast.setWhsType(30); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | mast.setAppeUser(9527L); | 
|---|
|  |  |  | mast.setAppeTime(now); | 
|---|
|  |  |  | mast.setModiUser(9527L); | 
|---|
|  |  |  | mast.setModiTime(now); | 
|---|
|  |  |  | mast.setLogErrMemo("doAutoMoveV4"); | 
|---|
|  |  |  | if (!agvWrkMastService.insertByIncrease(mast)) { | 
|---|
|  |  |  | throw new CoolException("ä¿å工使¡£å¤±è´¥"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | AgvWrkMast mast1 = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", LocMast.getLocNo()).eq("source_loc_no", agvLocMast.getLocNo())); | 
|---|
|  |  |  | //çæå·¥ä½æ¡£æç» | 
|---|
|  |  |  | List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvLocMast.getLocNo())); | 
|---|
|  |  |  | agvLocDetls.forEach(agvLocDetl -> { | 
|---|
|  |  |  | AgvWrkDetl wrkDetl = new AgvWrkDetl(); | 
|---|
|  |  |  | wrkDetl.setWrkNo(mast1.getWrkNo()); | 
|---|
|  |  |  | wrkDetl.sync(agvLocDetl); | 
|---|
|  |  |  | wrkDetl.setSuppCode(agvLocDetl.getSuppCode()); | 
|---|
|  |  |  | wrkDetl.setIoTime(now); | 
|---|
|  |  |  | wrkDetl.setAppeUser(9527L); | 
|---|
|  |  |  | wrkDetl.setAppeTime(now); | 
|---|
|  |  |  | wrkDetl.setModiUser(9527L); | 
|---|
|  |  |  | wrkDetl.setModiTime(now); | 
|---|
|  |  |  | if (!agvWrkDetlService.insert(wrkDetl)) { | 
|---|
|  |  |  | throw new CoolException("ä¿å工使ç»å¤±è´¥"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | //æ´æ°ç®æ åºä½ç¶æ | 
|---|
|  |  |  | updateAgvLocMast(agvLocMast, "R"); | 
|---|
|  |  |  | updateAgvLocMast(LocMast, "S"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return SUCCESS; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | package com.zy.asrs.utils; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.alibaba.fastjson.JSON; | 
|---|
|  |  |  | import com.zy.asrs.task.core.ProcesTimeData; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.time.LocalDate; | 
|---|
|  |  |  | 
|---|
|  |  |  | LocalDateTime startTime = LocalDateTime.of(LocalDate.now(), LocalTime.of(procesTimeData.getStartHour(), procesTimeData.getStartMinute())); | 
|---|
|  |  |  | LocalDateTime endTime = LocalDateTime.of(LocalDate.now(), LocalTime.of(procesTimeData.getEndHour(), procesTimeData.getEndMinute())); | 
|---|
|  |  |  | if (procesTimeData.getStartHour() > procesTimeData.getEndHour()) { | 
|---|
|  |  |  | endTime = endTime.plusDays(1); | 
|---|
|  |  |  | startTime = startTime.plusDays(-1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | LocalDateTime currentTime = LocalDateTime.now(); // è·åå½åæ¶é´ | 
|---|
|  |  |  | System.out.println(startTime); | 
|---|
|  |  |  | System.out.println(endTime); | 
|---|
|  |  |  | if (currentTime.isAfter(startTime) && currentTime.isBefore(endTime)) { | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static void main(String[] args) { | 
|---|
|  |  |  | ProcesTimeData procesTimeData = new ProcesTimeData(); | 
|---|
|  |  |  | procesTimeData.setStartHour(7); | 
|---|
|  |  |  | procesTimeData.setStartMinute(40); | 
|---|
|  |  |  | procesTimeData.setEndHour(15); | 
|---|
|  |  |  | procesTimeData.setEndMinute(0); | 
|---|
|  |  |  | System.out.println(between(procesTimeData)); | 
|---|
|  |  |  | System.out.println(JSON.toJSONString(procesTimeData)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * æ£ç´¢åºä½å· | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @return locNo æ£ç´¢å°çåºä½å· | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public AgvLocMast getLocNo(int type, int floor, boolean isEmpty, boolean isCurrLev) { | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | // å¼å§æ¥æ¾åºä½ ==============================>> | 
|---|
|  |  |  | // åæé¡¹ç®ï¼éè¦æ¹æ¥æ¾åºä½é»è¾ | 
|---|
|  |  |  | // ç®±å£³å
¥åº | 
|---|
|  |  |  | //            if (type == 3 && factory != null) { | 
|---|
|  |  |  | //                //ä¼å
å
¥åºå¸å¡1楼ï¼å¨2楼 | 
|---|
|  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * åºä½è§åæ¥æ¾ | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public AgvLocMast getLocByLocRule(int type, int floor,  String factory) { | 
|---|
|  |  |  | public AgvLocMast getLocByLocRule(int type, int floor, String factory) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | EntityWrapper<AgvLocMast> wrapper = new EntityWrapper<>(); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | agvLocMasts = agvLocMastService.selectList(wrapper); | 
|---|
|  |  |  | for (AgvLocMast agvLocMast : agvLocMasts) { | 
|---|
|  |  |  | AgvLocMast agvLocMast1 = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocMast.getLocNo())); | 
|---|
|  |  |  | if (agvLocMast1.getLocSts().equals("O")) { | 
|---|
|  |  |  | return agvLocMast1; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | throw new CoolException("æç´¢åºä½æ¶ï¼æªæ¾å°å¯å
¥åºåºä½ã"); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | throw new CoolException("æç´¢åºä½æ¶ï¼æªæ¾å°å¯å
¥åºåºä½ã"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * åºä½è§åæ¥æ¾ | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public AgvLocMast getLocByLocRule(int type, int floor, int lev1) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | EntityWrapper<AgvLocMast> wrapper = new EntityWrapper<>(); | 
|---|
|  |  |  | wrapper.eq("loc_sts", "O").eq("loc_type1", type); | 
|---|
|  |  |  | wrapper.eq("floor", floor).eq("lev1", lev1); | 
|---|
|  |  |  | List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(wrapper); | 
|---|
|  |  |  | for (AgvLocMast agvLocMast : agvLocMasts) { | 
|---|
|  |  |  | AgvLocMast agvLocMast1 = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocMast.getLocNo())); | 
|---|
|  |  |  | if (agvLocMast1.getLocSts().equals("O")) { | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * æ£ç´¢åºä½å· | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @return locNo æ£ç´¢å°çåºä½å· | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public AgvBasDevp getDevpNo(int type, int floor) { | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * æ£ç´¢åºä½å· | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @return locNo æ£ç´¢èªå¨æ¥é©³ä½ | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public AgvBasDevp getDevpNo(int type, int floor, String auto) { | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * æ£ç´¢åºä½å· | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @return locNo æ£ç´¢å¯å
¥æ¥é©³ä½ | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public AgvBasDevp getDevpNo(int type, int floor, String auto, String inEable) { | 
|---|
|  |  |  | 
|---|
|  |  |  | spring: | 
|---|
|  |  |  | profiles: | 
|---|
|  |  |  | #dev loc prod | 
|---|
|  |  |  | active: loc | 
|---|
|  |  |  | active: dev | 
|---|
|  |  |  | 
|---|
|  |  |  | DECLARE @locno VARCHAR(50); -- å£°æ locno åæ®µï¼æå®é¿åº¦ | 
|---|
|  |  |  | DECLARE @locsts NVARCHAR(50); | 
|---|
|  |  |  | DECLARE @row1 INT = 27; | 
|---|
|  |  |  | DECLARE @bay1 INT = 19; | 
|---|
|  |  |  | DECLARE @bay1 INT = 14; | 
|---|
|  |  |  | DECLARE @lev1 INT = 1; | 
|---|
|  |  |  | DECLARE @fullplt VARCHAR(1); -- å设 fullplt åªéè¦ä¸ä¸ªå符 | 
|---|
|  |  |  | DECLARE @loctype1 INT = 6; | 
|---|
|  |  |  | 
|---|
|  |  |  | DECLARE @stas INT; | 
|---|
|  |  |  | DECLARE @floor INT; | 
|---|
|  |  |  | DECLARE @maprow INT = 21; | 
|---|
|  |  |  | DECLARE @mapbay INT = 19; | 
|---|
|  |  |  | DECLARE @mapbay INT = 14; | 
|---|
|  |  |  | DECLARE @rightside INT = 0; | 
|---|
|  |  |  | DECLARE @plttype INT = 777; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | WHILE @row1 <= 38 | 
|---|
|  |  |  | BEGIN | 
|---|
|  |  |  | -- å¨æ¯æ¬¡å¾ªç¯ä¸ï¼æ´æ° lev1 çå¼ | 
|---|
|  |  |  | SET @bay1 = 19; -- éç½® lev1 | 
|---|
|  |  |  | SET @mapbay = 19; -- éç½® lev1 | 
|---|
|  |  |  | SET @bay1 = 14; -- éç½® lev1 | 
|---|
|  |  |  | SET @mapbay = 14; -- éç½® lev1 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | WHILE @bay1 <= 33 | 
|---|
|  |  |  | BEGIN | 
|---|
|  |  |  | 
|---|
|  |  |  | END | 
|---|
|  |  |  |  | 
|---|
|  |  |  | -- è®¾ç½®ä¸æ¥¼ä¸å±é´é | 
|---|
|  |  |  | UPDATE [dbo].[agv_loc_mast] SET right_side = 1 WHERE  floor = 3 AND lev1 = 1 AND row1 IN (1,3,5,7,8,9,11,13,14,16,18,20,21,23,25) | 
|---|
|  |  |  | UPDATE [dbo].[agv_loc_mast] SET right_side = 1 WHERE  floor = 3 AND lev1 = 1 AND row1 IN (1,3,5,7,8,9,11,13,14,16,18,20,21,23,25) | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | UPDATE [dbo].[agv_loc_mast] SET loc_type2 = 31 WHERE  loc_type1 = 6 | 
|---|
| New file | 
|  |  |  | 
|---|
|  |  |  | UPDATE [dbo].[agv_loc_mast] SET loc_sts = 'X' WHERE  loc_type1 = 6 | 
|---|