|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.alibaba.fastjson.JSON; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.mapper.EntityWrapper; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.plugins.Page; | 
|---|
|  |  |  | import com.core.annotations.AppAuth; | 
|---|
|  |  |  | import com.core.common.BaseRes; | 
|---|
|  |  |  | import com.core.common.Cools; | 
|---|
|  |  |  | import com.core.common.R; | 
|---|
|  |  |  | import com.core.exception.CoolException; | 
|---|
|  |  |  | import com.zy.asrs.entity.LocDetl; | 
|---|
|  |  |  | import com.zy.asrs.entity.LocMast; | 
|---|
|  |  |  | import com.zy.asrs.entity.param.*; | 
|---|
|  |  |  | import com.zy.asrs.service.LocDetlService; | 
|---|
|  |  |  | import com.zy.asrs.service.LocMastService; | 
|---|
|  |  |  | import com.zy.asrs.service.OpenService; | 
|---|
|  |  |  | import com.zy.common.web.BaseController; | 
|---|
|  |  |  | 
|---|
|  |  |  | import java.math.BigDecimal; | 
|---|
|  |  |  | import java.math.RoundingMode; | 
|---|
|  |  |  | import java.util.ArrayList; | 
|---|
|  |  |  | import java.util.HashMap; | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  | import java.util.Map; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private LocMastService locMastService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private LocDetlService locDetlService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Deprecated | 
|---|
|  |  |  | @PostMapping("/grouping") | 
|---|
|  |  |  | 
|---|
|  |  |  | //        BigDecimal divisor = new BigDecimal(i1); | 
|---|
|  |  |  | //        BigDecimal quotient = dividend.divide(divisor,4, BigDecimal.ROUND_HALF_UP); | 
|---|
|  |  |  | // 在库率=(总数-空库位数)/总数 | 
|---|
|  |  |  | BigDecimal quotient = BigDecimal.valueOf(12000 - i) | 
|---|
|  |  |  | .divide(BigDecimal.valueOf(12000), 4, RoundingMode.HALF_UP); | 
|---|
|  |  |  | BigDecimal quotient = BigDecimal.valueOf(1200 - i) | 
|---|
|  |  |  | .divide(BigDecimal.valueOf(1200), 4, RoundingMode.HALF_UP); | 
|---|
|  |  |  | return R.ok().add(quotient); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Synchronized | 
|---|
|  |  |  | @PostMapping("/stock/used/v3") | 
|---|
|  |  |  | public R getRate2(@RequestHeader(required = false) String appkey, | 
|---|
|  |  |  | @RequestBody(required = false) LocMast param, | 
|---|
|  |  |  | HttpServletRequest request) { | 
|---|
|  |  |  | auth(appkey, param, request); | 
|---|
|  |  |  | if (param.getRow1() != null) { | 
|---|
|  |  |  | int i = locMastService.selectCount(new EntityWrapper<LocMast>().in("loc_sts", "O").eq("row1", param.getRow1())); | 
|---|
|  |  |  | int i2 = locMastService.selectCount(new EntityWrapper<LocMast>().eq("row1", param.getRow1())); | 
|---|
|  |  |  | // 在库率=(总数-空库位数)/总数 | 
|---|
|  |  |  | BigDecimal quotient = BigDecimal.valueOf(i2 - i) | 
|---|
|  |  |  | .divide(BigDecimal.valueOf(i2), 4, RoundingMode.HALF_UP); | 
|---|
|  |  |  | return R.ok().add(quotient); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | int i = locMastService.selectCount(new EntityWrapper<LocMast>().in("loc_sts", "O")); | 
|---|
|  |  |  | int i2 = locMastService.selectCount(new EntityWrapper<LocMast>()); | 
|---|
|  |  |  | // 在库率=(总数-空库位数)/总数 | 
|---|
|  |  |  | BigDecimal quotient = BigDecimal.valueOf(i2 - i) | 
|---|
|  |  |  | .divide(BigDecimal.valueOf(i2), 4, RoundingMode.HALF_UP); | 
|---|
|  |  |  | return R.ok().add(quotient); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @PostMapping(value = "/loc/info") | 
|---|
|  |  |  | @Synchronized | 
|---|
|  |  |  | public R list(@RequestHeader(required = false) String appkey, @RequestBody(required = false) LocMast param) { | 
|---|
|  |  |  | auth(appkey, param, request); | 
|---|
|  |  |  | LocMast locMast = locMastService.selectById(param.getLocNo()); | 
|---|
|  |  |  | if (locMast == null) { | 
|---|
|  |  |  | return R.error("库位不存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo())); | 
|---|
|  |  |  | HashMap<String, Object> map = new HashMap<>(); | 
|---|
|  |  |  | map.put("status", locMast.getLocSts()); | 
|---|
|  |  |  | map.put("data", locDetls); | 
|---|
|  |  |  | return R.ok(map); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/locMast/sts") | 
|---|
|  |  |  | @Synchronized | 
|---|
|  |  |  | public R list(@RequestParam(defaultValue = "1") Integer curr, | 
|---|
|  |  |  | @RequestParam(defaultValue = "100000") Integer limit) { | 
|---|
|  |  |  | EntityWrapper<LocMast> wrapper = new EntityWrapper<>(); | 
|---|
|  |  |  | Page<LocMast> locMastPage = locMastService.selectPage(new Page<>(curr, limit), wrapper); | 
|---|
|  |  |  | List<Object> list = new ArrayList<>(); | 
|---|
|  |  |  | for (LocMast locmast : locMastPage.getRecords()) { | 
|---|
|  |  |  | HashMap<String, Object> map = new HashMap<>(); | 
|---|
|  |  |  | map.put("sts", locmast.getLocSts()); | 
|---|
|  |  |  | map.put("loc", locmast.getLocNo()); | 
|---|
|  |  |  | list.add(map); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.ok(list); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //    public static void main(String[] args) { | 
|---|
|  |  |  | //        // 1 | 
|---|
|  |  |  | //        System.out.println("======================================"); | 
|---|
|  |  |  | //        OpenOrderPakinParam param = new OpenOrderPakinParam(); | 
|---|
|  |  |  | //        param.setOrderNo(String.valueOf(new SnowflakeIdWorker().nextId())); | 
|---|
|  |  |  | //        param.setOrderType("打包上线单"); | 
|---|
|  |  |  | //        param.setOrderTime(DateUtils.convert(new Date())); | 
|---|
|  |  |  | //        List<DetlDto> orderDetails = new ArrayList<>(); | 
|---|
|  |  |  | //        param.setOrderDetails(orderDetails); | 
|---|
|  |  |  | //        for (int i = 0; i < 3; i++) { | 
|---|
|  |  |  | //            DetlDto detlDto = new DetlDto(locDto); | 
|---|
|  |  |  | //            switch (i) { | 
|---|
|  |  |  | //                case 0: | 
|---|
|  |  |  | //                    detlDto.setMatnr("MDH020030530"); | 
|---|
|  |  |  | //                    detlDto.setBatch("500"); | 
|---|
|  |  |  | //                    detlDto.setAnfme(18.0); | 
|---|
|  |  |  | //                    break; | 
|---|
|  |  |  | //                case 1: | 
|---|
|  |  |  | //                    detlDto.setMatnr("MDH020016416"); | 
|---|
|  |  |  | //                    detlDto.setBatch("500"); | 
|---|
|  |  |  | //                    detlDto.setAnfme(32.0); | 
|---|
|  |  |  | //                    break; | 
|---|
|  |  |  | //                case 2: | 
|---|
|  |  |  | //                    detlDto.setMatnr("LSH90152025"); | 
|---|
|  |  |  | //                    detlDto.setAnfme(50.0); | 
|---|
|  |  |  | //                    break; | 
|---|
|  |  |  | //                default: | 
|---|
|  |  |  | //                    break; | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  | //            orderDetails.add(detlDto); | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | //        System.out.println(JSON.toJSONString(param)); | 
|---|
|  |  |  | //        // 2 | 
|---|
|  |  |  | //        System.out.println("======================================"); | 
|---|
|  |  |  | //        OpenOrderCompleteParam param1 = new OpenOrderCompleteParam(); | 
|---|
|  |  |  | //        param1.setOrderNo("963001846497017856"); | 
|---|
|  |  |  | //        System.out.println(JSON.toJSONString(param1)); | 
|---|
|  |  |  | //    } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|