|  |  | 
 |  |  | import com.core.common.Cools; | 
 |  |  | import com.core.common.DateUtils; | 
 |  |  | import com.core.common.R; | 
 |  |  | import com.zy.asrs.entity.AgvLocDetl; | 
 |  |  | import com.zy.asrs.entity.DocType; | 
 |  |  | import com.zy.asrs.entity.Mat; | 
 |  |  | import com.zy.asrs.entity.OrderDetl; | 
 |  |  | import com.zy.asrs.service.AgvLocDetlService; | 
 |  |  | import com.zy.asrs.service.DocTypeService; | 
 |  |  | import com.zy.asrs.service.MatService; | 
 |  |  | import com.zy.asrs.service.OrderDetlService; | 
 |  |  | import com.zy.asrs.entity.*; | 
 |  |  | import com.zy.asrs.service.*; | 
 |  |  | import com.zy.common.web.BaseController; | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | import org.springframework.web.bind.annotation.RequestBody; | 
 |  |  | 
 |  |  |     private OrderDetlService orderDetlService; | 
 |  |  |     @Autowired | 
 |  |  |     private DocTypeService docTypeService; | 
 |  |  |     @Autowired | 
 |  |  |     private AgvWrkDetlService agvWrkDetlService; | 
 |  |  |     @Autowired | 
 |  |  |     private AgvWrkMastService agvWrkMastService; | 
 |  |  |  | 
 |  |  |     @RequestMapping(value = "/locDetl/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(required = false)String condition, | 
 |  |  |     public R list(@RequestParam(defaultValue = "1") Integer curr, | 
 |  |  |                   @RequestParam(defaultValue = "10") Integer limit, | 
 |  |  |                   @RequestParam(required = false) String orderByField, | 
 |  |  |                   @RequestParam(required = false) String orderByType, | 
 |  |  |                   @RequestParam(required = false) String condition, | 
 |  |  |                   @RequestParam Map<String, Object> param, | 
 |  |  |                   @RequestParam(required = false)Boolean unreason){ | 
 |  |  |                   @RequestParam(required = false) Boolean unreason) { | 
 |  |  |         if (!Cools.isEmpty(unreason) && unreason) { | 
 |  |  |  | 
 |  |  |             return R.ok(agvLocDetlService.selectPage(new Page<>(curr, limit), new EntityWrapper<AgvLocDetl>() | 
 |  |  | 
 |  |  |             if (chooseRow.length() == 1) { | 
 |  |  |                 row = "0" + chooseRow; | 
 |  |  |                 param.remove("row"); | 
 |  |  |             }else { | 
 |  |  |             } else { | 
 |  |  |                 row = chooseRow; | 
 |  |  |                 param.remove("row"); | 
 |  |  |             } | 
 |  |  | 
 |  |  |         excludeTrash(param); | 
 |  |  |         convert(param, wrapper); | 
 |  |  |         allLike(AgvLocDetl.class, param.keySet(), wrapper, condition); | 
 |  |  |         if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} | 
 |  |  |         if (!row.equals("")){ | 
 |  |  |         if (!Cools.isEmpty(orderByField)) { | 
 |  |  |             wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType)); | 
 |  |  |         } | 
 |  |  |         if (!row.equals("")) { | 
 |  |  |             wrapper.and() | 
 |  |  |                     .where("loc_no like '" +row +"%'"); | 
 |  |  |                     .where("loc_no like '" + row + "%'"); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         return R.ok(agvLocDetlService.selectPage(new Page<>(curr, limit), wrapper)); | 
 |  |  | 
 |  |  |  | 
 |  |  |     @RequestMapping(value = "/locDetl/list/auth/v2") | 
 |  |  |     @ManagerAuth | 
 |  |  |     public R listV2(@RequestParam(defaultValue = "1")Integer curr, | 
 |  |  |                   @RequestParam(defaultValue = "10")Integer limit, | 
 |  |  |                   @RequestParam(required = false)String orderByField, | 
 |  |  |                   @RequestParam(required = false)String orderByType, | 
 |  |  |                   @RequestParam(required = false)String condition, | 
 |  |  |                   @RequestParam Map<String, Object> param, | 
 |  |  |                   @RequestParam(required = false)Boolean unreason){ | 
 |  |  |     public R listV2(@RequestParam(defaultValue = "1") Integer curr, | 
 |  |  |                     @RequestParam(defaultValue = "10") Integer limit, | 
 |  |  |                     @RequestParam(required = false) String orderByField, | 
 |  |  |                     @RequestParam(required = false) String orderByType, | 
 |  |  |                     @RequestParam(required = false) String condition, | 
 |  |  |                     @RequestParam Map<String, Object> param, | 
 |  |  |                     @RequestParam(required = false) Boolean unreason) { | 
 |  |  |         if (!Cools.isEmpty(unreason) && unreason) { | 
 |  |  |  | 
 |  |  |             return R.ok(agvLocDetlService.selectPage(new Page<>(curr, limit), new EntityWrapper<AgvLocDetl>() | 
 |  |  | 
 |  |  |             if (chooseRow.length() == 1) { | 
 |  |  |                 row = "0" + chooseRow; | 
 |  |  |                 param.remove("row"); | 
 |  |  |             }else { | 
 |  |  |             } else { | 
 |  |  |                 row = chooseRow; | 
 |  |  |                 param.remove("row"); | 
 |  |  |             } | 
 |  |  | 
 |  |  |         excludeTrash(param); | 
 |  |  |         convert(param, wrapper); | 
 |  |  |         allLike(AgvLocDetl.class, param.keySet(), wrapper, condition); | 
 |  |  |         if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} | 
 |  |  |         if (!row.equals("")){ | 
 |  |  |         if (!Cools.isEmpty(orderByField)) { | 
 |  |  |             wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType)); | 
 |  |  |         } | 
 |  |  |         if (!row.equals("")) { | 
 |  |  |             wrapper.and() | 
 |  |  |                     .where("loc_no like '" +row +"%'"); | 
 |  |  |                     .where("loc_no like '" + row + "%'"); | 
 |  |  |         } | 
 |  |  |         Page<AgvLocDetl> agvLocDetlPage = agvLocDetlService.selectPage(new Page<>(curr, limit), wrapper); | 
 |  |  |         AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("source_loc_no", param.get("loc_no"))); | 
 |  |  |         String orderNo = null; | 
 |  |  |         if (agvWrkMast != null) { | 
 |  |  |             List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectByWrkNo(agvWrkMast.getWrkNo()); | 
 |  |  |             if (!agvWrkDetls.isEmpty()) { | 
 |  |  |                 orderNo = agvWrkDetls.get(0).getOrderNo(); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakout", 1)); | 
 |  |  |         List<Long> docIds = new ArrayList<>(); | 
 |  |  |         for (DocType pakin : pakins) { | 
 |  |  | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         for (AgvLocDetl record : agvLocDetlPage.getRecords()) { | 
 |  |  |             OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>() | 
 |  |  |                     .eq("three_code", record.getThreeCode()) | 
 |  |  |                     .eq("matnr", record.getMatnr()) | 
 |  |  |                     .in("source",docIds)); | 
 |  |  |             OrderDetl orderDetl; | 
 |  |  |             if (!Cools.isEmpty(orderNo)) { | 
 |  |  |                 orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>() | 
 |  |  |                         .eq("order_no", orderNo) | 
 |  |  |                         .eq("three_code", record.getThreeCode()) | 
 |  |  |                         .eq("matnr", record.getMatnr()) | 
 |  |  |                         .in("source", docIds)); | 
 |  |  |             } else { | 
 |  |  |                 orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>() | 
 |  |  |                         .eq("three_code", record.getThreeCode()) | 
 |  |  |                         .eq("matnr", record.getMatnr()) | 
 |  |  |                         .in("source", docIds)); | 
 |  |  |             } | 
 |  |  | //            if (orderDetl.getAnfme() - orderDetl.getQty() > 0) { | 
 |  |  | //                record.setStock(orderDetl.getAnfme() - orderDetl.getQty()); | 
 |  |  | //            } else { | 
 |  |  | 
 |  |  |  | 
 |  |  |     @RequestMapping(value = "/locDetl/statis/auth") | 
 |  |  |     @ManagerAuth(memo = "AGV库存明细统计") | 
 |  |  |     public R statis(@RequestParam(defaultValue = "1")Integer curr, | 
 |  |  |                     @RequestParam(defaultValue = "10")Integer limit, | 
 |  |  |     public R statis(@RequestParam(defaultValue = "1") Integer curr, | 
 |  |  |                     @RequestParam(defaultValue = "10") Integer limit, | 
 |  |  |                     @RequestParam Map<String, Object> param) { | 
 |  |  |         Page<AgvLocDetl> stockStatis = agvLocDetlService.getStockStatis(toPage(curr, limit, param, AgvLocDetl.class)); | 
 |  |  |         for (AgvLocDetl locDetl : stockStatis.getRecords()) { | 
 |  |  | 
 |  |  |     获取库存总数 | 
 |  |  |      */ | 
 |  |  |     @RequestMapping("/locDetl/count") | 
 |  |  |     public R getAllCount(){ | 
 |  |  |     public R getAllCount() { | 
 |  |  |         Integer sum = agvLocDetlService.sum(); | 
 |  |  |         return R.ok(sum); | 
 |  |  |     } | 
 |  |  | 
 |  |  |  | 
 |  |  |     @RequestMapping(value = "/locDetl/statis/export") | 
 |  |  |     @ManagerAuth(memo = "库位明细导出") | 
 |  |  |     public synchronized R statisExport(@RequestBody JSONObject param){ | 
 |  |  |     public synchronized R statisExport(@RequestBody JSONObject param) { | 
 |  |  |         List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class); | 
 |  |  |         List<AgvLocDetl> stockStatisExcel = agvLocDetlService.getStockStatisExcel(); | 
 |  |  |         return R.ok(exportSupport(stockStatisExcel, fields)); | 
 |  |  | 
 |  |  |  | 
 |  |  |     @RequestMapping(value = "/locDetl/export/auth") | 
 |  |  |     @ManagerAuth(memo = "库位明细导出") | 
 |  |  |     public synchronized R export(@RequestBody JSONObject param){ | 
 |  |  |     public synchronized R export(@RequestBody JSONObject param) { | 
 |  |  |         List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class); | 
 |  |  |         EntityWrapper<AgvLocDetl> wrapper = new EntityWrapper<>(); | 
 |  |  |         Map<String, Object> map = excludeTrash(param.getJSONObject("locDetl")); | 
 |  |  | 
 |  |  |             if (chooseRow.length() == 1) { | 
 |  |  |                 row = "0" + chooseRow; | 
 |  |  |                 map.remove("row"); | 
 |  |  |             }else { | 
 |  |  |             } else { | 
 |  |  |                 row = chooseRow; | 
 |  |  |                 map.remove("row"); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         convert(map, wrapper); | 
 |  |  |         if (!row.equals("")){ | 
 |  |  |         if (!row.equals("")) { | 
 |  |  |             wrapper.and() | 
 |  |  |                     .where("loc_no like '" +row +"%'"); | 
 |  |  |                     .where("loc_no like '" + row + "%'"); | 
 |  |  |         } | 
 |  |  |         List<AgvLocDetl> list = agvLocDetlService.selectList(wrapper); | 
 |  |  |         return R.ok(exportSupport(list, fields)); | 
 |  |  | 
 |  |  |         return R.ok(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     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])); |