|  |  | 
 |  |  | import com.core.common.DateUtils; | 
 |  |  | import com.core.common.R; | 
 |  |  | import com.zy.asrs.entity.InventoryCheckOrder; | 
 |  |  | import com.zy.asrs.entity.InventoryCheckOrderDetl; | 
 |  |  | import com.zy.asrs.entity.WrkDetl; | 
 |  |  | import com.zy.asrs.entity.WrkMast; | 
 |  |  | import com.zy.asrs.service.InventoryCheckOrderDetlService; | 
 |  |  | import com.zy.asrs.service.InventoryCheckOrderService; | 
 |  |  | import com.zy.asrs.service.WrkDetlService; | 
 |  |  | import com.zy.asrs.service.WrkMastService; | 
 |  |  | import com.zy.common.web.BaseController; | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | import org.springframework.web.bind.annotation.*; | 
 |  |  | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private InventoryCheckOrderService inventoryCheckOrderService; | 
 |  |  |     @Autowired | 
 |  |  |     private InventoryCheckOrderDetlService inventoryCheckOrderDetlService; | 
 |  |  |     @Autowired | 
 |  |  |     private WrkMastService wrkMastService; | 
 |  |  |     @Autowired | 
 |  |  |     private WrkDetlService wrkDetlService; | 
 |  |  |  | 
 |  |  |     @RequestMapping("/inventoryCheckOrder/StockCheck/select/barcode") | 
 |  |  |     @ManagerAuth() | 
 |  |  |     public R StockCheckSelectBarcode(@RequestParam String barcode) { | 
 |  |  |         if (Cools.isEmpty(barcode)) { | 
 |  |  |             return R.ok(); | 
 |  |  |         } | 
 |  |  |         WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", barcode)); | 
 |  |  |         if (Cools.isEmpty(wrkMast)) { | 
 |  |  |             return R.error("该条码未查询到盘点任务"); | 
 |  |  |         } | 
 |  |  |         ArrayList<InventoryCheckOrderDetl> checkOrderDetls = new ArrayList<>(); | 
 |  |  |         List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); | 
 |  |  |         for (WrkDetl wrkDetl : wrkDetls) { | 
 |  |  |             InventoryCheckOrderDetl checkDetl = inventoryCheckOrderDetlService.selectOne(new EntityWrapper<InventoryCheckOrderDetl>() | 
 |  |  |                     .eq("order_no", wrkMast.getSheetNo()) | 
 |  |  |                     .eq("matnr", wrkDetl.getMatnr()) | 
 |  |  |                     .eq("batch", wrkDetl.getBatch())); | 
 |  |  |             if (Cools.isEmpty(checkDetl)) { | 
 |  |  |                 continue; | 
 |  |  |             } | 
 |  |  |             checkOrderDetls.add(checkDetl); | 
 |  |  |  | 
 |  |  |         } | 
 |  |  |         return R.ok(checkOrderDetls); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @RequestMapping("/inventoryCheckOrder/select/status/1") | 
 |  |  |     @ManagerAuth() | 
 
 |  |  | 
 |  |  |                 param.remove("modi_time"); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         param.remove("curr"); | 
 |  |  |         param.remove("limit"); | 
 |  |  |         EntityWrapper<LocDetl> wrapper = new EntityWrapper<>(); | 
 |  |  |         if (!Cools.isEmpty(param.get("crnNo"))) { | 
 |  |  |             switch ((String) param.get("crnNo")) { | 
 |  |  |                 case "1": wrapper.le("SUBSTRING(loc_no, 1, 2)",4); | 
 |  |  |                     break; | 
 |  |  |                 case "2":wrapper.ge("SUBSTRING(loc_no, 1, 2)",5).le("SUBSTRING(loc_no, 1, 2)",8); | 
 |  |  |                     break; | 
 |  |  |                 case "3":wrapper.ge("SUBSTRING(loc_no, 1, 2)",9).le("SUBSTRING(loc_no, 1, 2)",12); | 
 |  |  |                     break; | 
 |  |  |                 case "4":wrapper.ge("SUBSTRING(loc_no, 1, 2)",13).le("SUBSTRING(loc_no, 1, 2)",16); | 
 |  |  |                     break; | 
 |  |  |                 case "5": | 
 |  |  |                     break; | 
 |  |  |                 case "6": | 
 |  |  |                     break; | 
 |  |  |                 case "7":wrapper.ge("SUBSTRING(loc_no, 1, 2)",17).le("SUBSTRING(loc_no, 1, 2)",37); | 
 |  |  |                     break; | 
 |  |  |                 case "8":wrapper.ge("SUBSTRING(loc_no, 1, 2)",38).le("SUBSTRING(loc_no, 1, 2)",45); | 
 |  |  |                     break; | 
 |  |  |                 case "9":wrapper.ge("SUBSTRING(loc_no, 1, 2)",46).le("SUBSTRING(loc_no, 1, 2)",53); | 
 |  |  |                     break; | 
 |  |  |                 default: | 
 |  |  |         Page<LocDetl> stockOut = locDetlService.getStockOut(toPage(curr, limit, param, LocDetl.class)); | 
 |  |  |         if (stockOut.getRecords().size()==0){ | 
 |  |  |             stockOut = locDetlService.getStockOut(toPage(1, limit, param, LocDetl.class)); | 
 |  |  |             } | 
 |  |  |             param.remove("crnNo"); | 
 |  |  |         } | 
 |  |  |         convert(param, wrapper); | 
 |  |  |         // 不同继承角色显示不同库信息 | 
 |  |  |         RoleUtils.addRoleWrapperByLocNo(getUserId(),wrapper); | 
 |  |  |         Page<LocDetl> locDetlPage = locDetlService.selectPage(new Page<>(curr, limit), wrapper); | 
 |  |  |         if (locDetlPage.getRecords().size()==0){ | 
 |  |  |             locDetlPage = locDetlService.selectPage(new Page<>(1, limit), wrapper); | 
 |  |  |         } | 
 |  |  |         return R.ok(locDetlPage); | 
 |  |  |         return R.ok(stockOut); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @RequestMapping(value = "/stock/out/crn/list/auth") | 
 
 |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private CommonService commonService; | 
 |  |  |  | 
 |  |  |  | 
 |  |  | //    @PostMapping("/agv/start") | 
 |  |  | //    @ManagerAuth | 
 |  |  | //    public R pdaStockCheck(@RequestBody StockCheckParam param){ | 
 |  |  | // | 
 |  |  | // | 
 |  |  | // | 
 |  |  | //    } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @PostMapping("/agv/start") | 
 |  |  |     @ManagerAuth | 
 |  |  |     public R pdaAgvStart(@RequestBody Map<String,Object> map){ | 
 
| New file | 
 |  |  | 
 |  |  | package com.zy.asrs.entity.param; | 
 |  |  |  | 
 |  |  | import lombok.Data; | 
 |  |  |  | 
 |  |  | import java.util.List; | 
 |  |  |  | 
 |  |  | @Data | 
 |  |  | public class StockCheckParam { | 
 |  |  |  | 
 |  |  |     // 托盘条码 | 
 |  |  |     private String barcode; | 
 |  |  |  | 
 |  |  |     private List<CombMat> combMats; | 
 |  |  |  | 
 |  |  |     @Data | 
 |  |  |     public static class CombMat { | 
 |  |  |  | 
 |  |  |         // 物料编号 | 
 |  |  |         private String matnr; | 
 |  |  |  | 
 |  |  |         // 序列码 | 
 |  |  |         private String batch; | 
 |  |  |  | 
 |  |  |         // 物料数量 | 
 |  |  |         private Double anfme; | 
 |  |  |  | 
 |  |  |         // 商品名称 | 
 |  |  |         private String maktx; | 
 |  |  |  | 
 |  |  |         // 规格 | 
 |  |  |         private String specs; | 
 |  |  |  | 
 |  |  |         private Double checkAnfme; | 
 |  |  |  | 
 |  |  |     } | 
 |  |  | } | 
 
 |  |  | 
 |  |  |             orderDetl.setSuppCode(detlDto.getFromOrderNo()); | 
 |  |  |             orderDetl.setMemo(detlDto.getMemo()); | 
 |  |  |             orderDetl.setManu(detlDto.getMark()); | 
 |  |  |             orderDetl.setSupp(detlDto.getCustomer()); | 
 |  |  |             if (!orderDetlService.insert(orderDetl)) { | 
 |  |  |                 throw new CoolException("生成单据明细失败,请联系管理员"); | 
 |  |  |             } | 
 |  |  | 
 |  |  |             orderDetl.setSuppCode(detlDto.getFromOrderNo()); | 
 |  |  |             orderDetl.setMemo(detlDto.getMemo()); | 
 |  |  |             orderDetl.setManu(detlDto.getMark()); | 
 |  |  |             orderDetl.setSupp(detlDto.getCustomer()); | 
 |  |  |             if (!orderDetlService.insert(orderDetl)) { | 
 |  |  |                 throw new CoolException("生成单据明细失败,请联系管理员"); | 
 |  |  |             } | 
 
 |  |  | 
 |  |  |     private String fromOrderNo; //来源单号 | 
 |  |  |     private String memo; //备注 | 
 |  |  |     private String mark; | 
 |  |  |     private String customer; | 
 |  |  |  | 
 |  |  |     public DetlDto() { | 
 |  |  |     } | 
 
 |  |  | 
 |  |  |         cellMinWidth: 100, | 
 |  |  |         cols: [[ | 
 |  |  |             {type: 'numbers'}, | 
 |  |  |             {field: 'orderNo', title: '单据编号', templet: '#orderNoTpl'}, | 
 |  |  |             {field: 'docType$', align: 'center', title: '类型',  minWidth: 160, width: 160}, | 
 |  |  |             {align: 'center', title: '明细', toolbar: '#tbLook', minWidth: 160, width: 160}, | 
 |  |  |             {field: 'createTime$', title: '创建时间', minWidth: 200, width: 200}, | 
 |  |  |             {field: 'orderNo', title: '单据编号', templet: '#orderNoTpl',minWidth: 200}, | 
 |  |  |             {field: 'docType$', align: 'center', title: '类型'}, | 
 |  |  |             {align: 'center', title: '明细', toolbar: '#tbLook'}, | 
 |  |  |             {field: 'createTime$', title: '创建时间'}, | 
 |  |  |             {field: 'settle$', align: 'center', title: '状态', templet: '#settleTpl',  minWidth: 160, width: 160}, | 
 |  |  |             {field: 'shipName', align: 'center',title: '制单人'}, | 
 |  |  |             {field: 'itemName', align: 'center',title: '仓库'}, | 
 |  |  |             {field: 'memo', align: 'center',title: '备注', hide: true}, | 
 |  |  |             {align: 'center', title: '操作', toolbar: '#operate', width: 180} | 
 |  |  |             {align: 'center', title: '操作', toolbar: '#operate'} | 
 |  |  |         ]], | 
 |  |  |         request: { | 
 |  |  |             pageName: 'curr', | 
 |  |  | 
 |  |  |                         var templateDom = $("#templatePreview1"); | 
 |  |  |                         var className = templateDom.attr("class"); | 
 |  |  |                         var param = "编码:"+data.matnr+";名称:"+data.maktx+";批次:"+data.batch+";规格:"+data.specs | 
 |  |  |                             +";单位:"+data.unit+";数量:"+data.anfme+";客户名称:"+data.cstmrName; | 
 |  |  |                             +";单位:"+data.unit+";数量:"+data.anfme+";销售单号:"+data.suppCode+";客户名称:"+data.supp; | 
 |  |  |                         var encodeUrl = encodeURIComponent(param); | 
 |  |  |                         data["barcodeUrl"]=baseUrl+"/mac/code/auth?type=2¶m="+encodeUrl; | 
 |  |  |                         console.log(data["barcodeUrl"]); | 
 
 |  |  | 
 |  |  | var locDetlData = []; | 
 |  |  | function getCol() { | 
 |  |  |     var cols = [ | 
 |  |  |         {field: 'locNo', align: 'center',title: '库位号', merge: true, style: 'font-weight: bold'} | 
 |  |  |         {field: 'locNo', align: 'center',title: '库位号', style: 'font-weight: bold'} | 
 |  |  |     ]; | 
 |  |  |     cols.push.apply(cols, detlCols); | 
 |  |  |     return cols; | 
 
 |  |  | 
 |  |  |             数量:{{anfme}} | 
 |  |  |         </div> | 
 |  |  |         <div style="font-size: 12px;"> | 
 |  |  |             客户名称:{{cstmrName}} | 
 |  |  |             销售单号:{{suppCode}} | 
 |  |  |         </div> | 
 |  |  |         <div style="font-size: 12px;"> | 
 |  |  |             客户名称:{{supp}} | 
 |  |  |         </div> | 
 |  |  |     </div> | 
 |  |  |     {{/each}} | 
 
 |  |  | 
 |  |  |  | 
 |  |  |     function getCol() { | 
 |  |  |         var cols = [ | 
 |  |  |             {type: 'checkbox', merge: ['locNo']} | 
 |  |  |             {type: 'checkbox'} | 
 |  |  |             ,{field: 'locNo', align: 'center',title: '库位号', merge: true, style: 'font-weight: bold'} | 
 |  |  |             // ,{field: 'locNo$', align: 'center',title: '库位号'} | 
 |  |  |         ]; |