| | |
| | | return R.ok(matService.selectOne(new EntityWrapper<Mat>().eq("matnr", matnr))); |
| | | } |
| | | |
| | | |
| | | @RequestMapping(value = "/mat/list/auth") |
| | | @ManagerAuth |
| | | public R list(@RequestParam(defaultValue = "1") Integer curr, |
| | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.baomidou.mybatisplus.mapper.Wrapper; |
| | | import com.baomidou.mybatisplus.plugins.Page; |
| | | import com.core.annotations.ManagerAuth; |
| | | 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.*; |
| | | import com.zy.asrs.entity.param.CombParam; |
| | | import com.zy.asrs.entity.param.MobileAdjustParam; |
| | |
| | | import com.zy.asrs.entity.result.MobileAdjustResult; |
| | | import com.zy.asrs.mapper.ManLocDetlMapper; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.common.model.LocDto; |
| | | import com.zy.common.model.TaskDto; |
| | | import com.zy.common.model.WrkDto; |
| | | import com.zy.common.utils.HttpHandler; |
| | | import com.zy.common.web.BaseController; |
| | | import com.zy.system.entity.Config; |
| | | import com.zy.system.service.ConfigService; |
| | | import com.zy.third.entity.ExdvYanbu; |
| | | import com.zy.third.mapper.ExdMaterialMapper; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | |
| | | @Slf4j |
| | | @RestController |
| | | @RequestMapping("mobile") |
| | | public class MobileController extends BaseController { |
| | | public class MobileController extends BaseController { |
| | | |
| | | @Autowired |
| | | private MobileService mobileService; |
| | |
| | | @Autowired |
| | | private ConfigService configService; |
| | | |
| | | @Autowired |
| | | private ExdMaterialMapper exdMaterialMapper; |
| | | |
| | | // 商品上架 |
| | | @RequestMapping("/mat/onSale/auth") |
| | | @ManagerAuth |
| | | public R matOnSale(@RequestBody CombParam combParam){ |
| | | public R matOnSale(@RequestBody CombParam combParam) { |
| | | mobileService.onSale(combParam); |
| | | return R.ok("上架成功"); |
| | | } |
| | | |
| | | // 商品下架 |
| | | @RequestMapping("/mat/offSale/auth") |
| | | //@ManagerAuth |
| | | public R matOffSale(@RequestBody OffSaleParam offSaleParam){ |
| | | public R matOffSale(@RequestBody OffSaleParam offSaleParam) { |
| | | mobileService.offSale(offSaleParam); |
| | | return R.ok("下架成功"); |
| | | } |
| | | |
| | | |
| | | |
| | | // 组托 ---------------------------------------------------------------------------------------------------- |
| | |
| | | */ |
| | | @RequestMapping("/order/search/orderNo/auth") |
| | | @ManagerAuth |
| | | public R orderSearchByBarcode(@RequestParam String orderNo){ |
| | | public R orderSearchByBarcode(@RequestParam String orderNo) { |
| | | Order order = orderService.selectByNo(orderNo); |
| | | if (order == null) { |
| | | return R.ok(); |
| | |
| | | |
| | | @RequestMapping("/comb/auth") |
| | | @ManagerAuth(memo = "组托") |
| | | public R comb(@RequestBody CombParam combParam){ |
| | | mobileService.comb(combParam, getUserId()); |
| | | public R comb(@RequestBody CombParam combParam) { |
| | | mobileService.comb(combParam, getUserId(), getUser().getEmail()); |
| | | return R.ok("组托成功"); |
| | | } |
| | | |
| | | @RequestMapping("/pack/get/auth") |
| | | @ManagerAuth |
| | | public R packGet(@RequestParam String barcode){ |
| | | public R packGet(@RequestParam String barcode) { |
| | | Pack pack = packService.selectByBarcode(barcode); |
| | | if (pack == null) { |
| | | return R.ok(); |
| | |
| | | |
| | | @RequestMapping("/pack/comb/auth") |
| | | @ManagerAuth(memo = "下线组托") |
| | | public R packComb(@RequestBody CombParam combParam){ |
| | | public R packComb(@RequestBody CombParam combParam) { |
| | | mobileService.packComb(combParam, getUserId()); |
| | | return R.ok("组托成功"); |
| | | } |
| | |
| | | @Deprecated |
| | | public R pakoutQuery(@RequestParam(required = false) String barcode, |
| | | @RequestParam(required = false) Integer staNo, |
| | | @RequestParam(required = false) String matnr){ |
| | | @RequestParam(required = false) String matnr) { |
| | | if (Cools.isEmpty(barcode) && Cools.isEmpty(matnr)) { |
| | | return R.ok(); |
| | | } |
| | |
| | | */ |
| | | @RequestMapping("/pakout/confirm/barcode/auth") |
| | | @ManagerAuth |
| | | public R pakoutQueryByBarcode(@RequestParam(required = false) String barcode){ |
| | | public R pakoutQueryByBarcode(@RequestParam(required = false) String barcode) { |
| | | if (Cools.isEmpty(barcode)) { |
| | | return R.ok(); |
| | | } |
| | |
| | | // 根据库位码和商品码搜索商品 |
| | | @RequestMapping("/mat/find/auth") |
| | | public R find(@RequestParam(required = false) String locNo |
| | | , @RequestParam(required = false) String matnr){ |
| | | , @RequestParam(required = false) String matnr) { |
| | | //List<ManLocDetl> manLocDetls = manLocDetlMapper.selectItem0(locNo, matnr); |
| | | ManLocDetl manLocDetl = manLocDetlMapper.selectLocNo0(locNo, matnr); |
| | | return R.ok(manLocDetl); |
| | |
| | | @RequestMapping("/pakout/confirm/pick/auth") |
| | | @ManagerAuth |
| | | public R pakoutQueryByBarcode(@RequestParam(required = false) Integer wrkNo |
| | | , @RequestParam(required = false) String matnr){ |
| | | , @RequestParam(required = false) String matnr) { |
| | | if (Cools.isEmpty(wrkNo)) { |
| | | return R.ok(); |
| | | } |
| | |
| | | for (WrkDetl wrkDetl : dto.getWrkDetls()) { |
| | | wrkDetlService.updateInspect(wrkDetl.getWrkNo(), wrkDetl.getMatnr(), wrkDetl.getBatch()); |
| | | } |
| | | if(wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107) { |
| | | if (wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107) { |
| | | wrkMast.setWrkSts(34L);//下架完成等待回库 |
| | | }else { |
| | | } else { |
| | | wrkMast.setWrkSts(15L); |
| | | } |
| | | wrkMastService.updateById(wrkMast); |
| | |
| | | |
| | | @RequestMapping("/adjust/auth") |
| | | @ManagerAuth(memo = "盘点") |
| | | public R adjust(@RequestBody MobileAdjustParam combParam){ |
| | | public R adjust(@RequestBody MobileAdjustParam combParam) { |
| | | mobileService.adjust(combParam, getUserId()); |
| | | return R.ok("盘点成功"); |
| | | } |
| | |
| | | @PostMapping("/order/out/pakout/auth") |
| | | @ManagerAuth(memo = "订单出库") |
| | | public synchronized R pakoutByOrder(@RequestBody JSONObject param) { |
| | | if(!param.containsKey("staNo") || !param.containsKey("orderNo")){ |
| | | if (!param.containsKey("staNo") || !param.containsKey("orderNo")) { |
| | | return R.parse(BaseRes.PARAM); |
| | | } |
| | | mobileService.pakoutByOrder(param,getUserId()); |
| | | mobileService.pakoutByOrder(param, getUserId()); |
| | | return R.ok("出库成功"); |
| | | } |
| | | |
| | |
| | | |
| | | /** |
| | | * 补空板 区域到点 |
| | | * |
| | | * @param locNo 目标站点 |
| | | * @param size 托盘大小 1:小托盘 2:大托盘 |
| | | * @return |
| | | */ |
| | | @RequestMapping("/FillEmptyPallets") |
| | | public synchronized R FillEmptyPallets(@RequestParam(required = false) String locNo |
| | | ,@RequestParam(required = false) String size){ |
| | | , @RequestParam(required = false) String size) { |
| | | if (Cools.isEmpty(locNo) || Cools.isEmpty(size)) { |
| | | return R.error("站点或者大小不能为空"); |
| | | |
| | | } |
| | | //空托盘缓冲区 小:E8 大:E9 |
| | | String rStaNo ="E8"; |
| | | if(size.equals("2")){ |
| | | String rStaNo = "E8"; |
| | | if (size.equals("2")) { |
| | | rStaNo = "E9"; |
| | | } |
| | | LinkedHashMap<String,Object> rcsParam=new LinkedHashMap<>(); |
| | | LinkedHashMap<String, Object> rcsParam = new LinkedHashMap<>(); |
| | | rcsParam.put("taskType", "PF-FMR-COMMON"); |
| | | List<LinkedHashMap<String,Object>> targetRoutes=new ArrayList<>(); |
| | | LinkedHashMap<String,Object> t1=new LinkedHashMap<>(); |
| | | LinkedHashMap<String,Object> t2=new LinkedHashMap<>(); |
| | | List<LinkedHashMap<String, Object>> targetRoutes = new ArrayList<>(); |
| | | LinkedHashMap<String, Object> t1 = new LinkedHashMap<>(); |
| | | LinkedHashMap<String, Object> t2 = new LinkedHashMap<>(); |
| | | t1.put("seq", 0); |
| | | t1.put("type","ZONE"); |
| | | t1.put("type", "ZONE"); |
| | | t1.put("code", rStaNo); |
| | | t1.put("autoStart",0); |
| | | t1.put("operation","COLLECT"); |
| | | t1.put("autoStart", 0); |
| | | t1.put("operation", "COLLECT"); |
| | | |
| | | t2.put("seq", 0); |
| | | t2.put("type","SITE"); |
| | | t2.put("type", "SITE"); |
| | | t2.put("code", locNo); |
| | | t2.put("autoStart",0); |
| | | t2.put("operation","DELIVERY"); |
| | | t2.put("autoStart", 0); |
| | | t2.put("operation", "DELIVERY"); |
| | | |
| | | targetRoutes.add(t1); |
| | | targetRoutes.add(t2); |
| | |
| | | rcsParam.put("initPriority", 100); |
| | | |
| | | |
| | | String response =""; |
| | | Boolean bool =false; |
| | | String response = ""; |
| | | Boolean bool = false; |
| | | String msg = ""; |
| | | HashMap<String,Object> map = new HashMap<>(); |
| | | HashMap<String, Object> map = new HashMap<>(); |
| | | Date date = new Date(); |
| | | String time = date.getTime()+""; |
| | | |
| | | map.put("X-LR-REQUEST-ID", time); |
| | | try { |
| | | log.info("wms派发搬运任务给AGV搬运={}", rcsParam); |
| | | response = new HttpHandler.Builder() |
| | | .setHeaders(map) |
| | | .setUri(url) |
| | | .setHttps(true) |
| | | .setPath(attrcs) |
| | | .setJson(JSON.toJSONString(rcsParam)) |
| | | .build() |
| | | .doPostCloseSSL(); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | if(jsonObject.getString("code").equals("SUCCESS")){ |
| | | bool = true; |
| | | }else{ |
| | | msg=jsonObject.getString("message"); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | log.error("wms派发搬运任务给AGV搬运失败返回值={}", response); |
| | | } finally { |
| | | apiLogService.save("wms派发搬运任务给AGV搬运" |
| | | , url + attrcs |
| | | , null |
| | | , "127.0.0.1" |
| | | , JSON.toJSONString(rcsParam) |
| | | , response |
| | | , bool |
| | | ); |
| | | } |
| | | |
| | | if(bool){ |
| | | return R.ok(); |
| | | }else { |
| | | return R.error(msg); |
| | | } |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 空托盘回库 |
| | | * @param sourceStaNo 原站点 |
| | | * @param barcode 托盘大小 1:小托盘 2:大托盘 目标区或者巷道 |
| | | * @return |
| | | */ |
| | | @RequestMapping("/FillEmptyPalletsStack") |
| | | public synchronized R FillEmptyPalletsStack(@RequestParam(required = false) String sourceStaNo |
| | | ,@RequestParam(required = false) String barcode){ |
| | | if (Cools.isEmpty(sourceStaNo) || Cools.isEmpty(barcode)) { |
| | | return R.error("站点或者大小不能为空"); |
| | | |
| | | } |
| | | //空托盘缓冲区 小:E8 大:E9 |
| | | String rStaNo ="E8"; |
| | | if(barcode.substring(0,1).equals("9")){ |
| | | rStaNo = "E9"; |
| | | } |
| | | String type ="ZONE"; //区域 |
| | | Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "autoE").eq("status", "1")); |
| | | if (config != null) { |
| | | type ="STACK"; //巷道 |
| | | if (Cools.isEmpty(config.getValue())) { |
| | | rStaNo = rStaNo + "01"; |
| | | config.setValue("2"); |
| | | }else if (config.getValue().equals("1")) { |
| | | rStaNo = rStaNo + "01"; |
| | | config.setValue("2"); |
| | | }else if (config.getValue().equals("2")) { |
| | | rStaNo = rStaNo + "02"; |
| | | config.setValue("3"); |
| | | }else if (config.getValue().equals("3")) { |
| | | rStaNo = rStaNo + "03"; |
| | | config.setValue("1"); |
| | | } |
| | | configService.updateById(config); |
| | | } |
| | | |
| | | LinkedHashMap<String,Object> rcsParam=new LinkedHashMap<>(); |
| | | rcsParam.put("taskType", "PF-FMR-COMMON"); |
| | | List<LinkedHashMap<String,Object>> targetRoutes=new ArrayList<>(); |
| | | LinkedHashMap<String,Object> t1=new LinkedHashMap<>(); |
| | | LinkedHashMap<String,Object> t2=new LinkedHashMap<>(); |
| | | t1.put("seq", 0); |
| | | t1.put("type","SITE"); |
| | | t1.put("code", sourceStaNo); |
| | | t1.put("autoStart",0); |
| | | t1.put("operation","COLLECT"); |
| | | |
| | | t2.put("seq", 0); |
| | | t2.put("type",type); |
| | | t2.put("code", rStaNo); |
| | | t2.put("autoStart",0); |
| | | t2.put("operation","DELIVERY"); |
| | | |
| | | targetRoutes.add(t1); |
| | | targetRoutes.add(t2); |
| | | rcsParam.put("targetRoute", targetRoutes); |
| | | rcsParam.put("initPriority", 100); |
| | | |
| | | |
| | | String response =""; |
| | | Boolean bool =false; |
| | | String msg = ""; |
| | | HashMap<String,Object> map = new HashMap<>(); |
| | | Date date = new Date(); |
| | | String time = date.getTime()+""; |
| | | String time = date.getTime() + ""; |
| | | |
| | | map.put("X-LR-REQUEST-ID", time); |
| | | try { |
| | |
| | | .build() |
| | | .doPostCloseSSL(); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | if(jsonObject.getString("code").equals("SUCCESS")){ |
| | | if (jsonObject.getString("code").equals("SUCCESS")) { |
| | | bool = true; |
| | | }else{ |
| | | msg=jsonObject.getString("message"); |
| | | } else { |
| | | msg = jsonObject.getString("message"); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | |
| | | ); |
| | | } |
| | | |
| | | if(bool){ |
| | | if (bool) { |
| | | return R.ok(); |
| | | }else { |
| | | } else { |
| | | return R.error(msg); |
| | | } |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 空托盘回库 |
| | | * |
| | | * @param sourceStaNo 原站点 |
| | | * @param barcode 托盘大小 1:小托盘 2:大托盘 目标区或者巷道 |
| | | * @return |
| | | */ |
| | | @RequestMapping("/FillEmptyPalletsStack") |
| | | public synchronized R FillEmptyPalletsStack(@RequestParam(required = false) String sourceStaNo |
| | | , @RequestParam(required = false) String barcode) { |
| | | if (Cools.isEmpty(sourceStaNo) || Cools.isEmpty(barcode)) { |
| | | return R.error("站点或者大小不能为空"); |
| | | |
| | | } |
| | | //空托盘缓冲区 小:E8 大:E9 |
| | | String rStaNo = "E8"; |
| | | if (barcode.substring(0, 1).equals("9")) { |
| | | rStaNo = "E9"; |
| | | } |
| | | String type = "ZONE"; //区域 |
| | | Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "autoE").eq("status", "1")); |
| | | if (config != null) { |
| | | type = "STACK"; //巷道 |
| | | if (Cools.isEmpty(config.getValue())) { |
| | | rStaNo = rStaNo + "01"; |
| | | config.setValue("2"); |
| | | } else if (config.getValue().equals("1")) { |
| | | rStaNo = rStaNo + "01"; |
| | | config.setValue("2"); |
| | | } else if (config.getValue().equals("2")) { |
| | | rStaNo = rStaNo + "02"; |
| | | config.setValue("3"); |
| | | } else if (config.getValue().equals("3")) { |
| | | rStaNo = rStaNo + "03"; |
| | | config.setValue("1"); |
| | | } |
| | | configService.updateById(config); |
| | | } |
| | | |
| | | LinkedHashMap<String, Object> rcsParam = new LinkedHashMap<>(); |
| | | rcsParam.put("taskType", "PF-FMR-COMMON"); |
| | | List<LinkedHashMap<String, Object>> targetRoutes = new ArrayList<>(); |
| | | LinkedHashMap<String, Object> t1 = new LinkedHashMap<>(); |
| | | LinkedHashMap<String, Object> t2 = new LinkedHashMap<>(); |
| | | t1.put("seq", 0); |
| | | t1.put("type", "SITE"); |
| | | t1.put("code", sourceStaNo); |
| | | t1.put("autoStart", 0); |
| | | t1.put("operation", "COLLECT"); |
| | | |
| | | t2.put("seq", 0); |
| | | t2.put("type", type); |
| | | t2.put("code", rStaNo); |
| | | t2.put("autoStart", 0); |
| | | t2.put("operation", "DELIVERY"); |
| | | |
| | | targetRoutes.add(t1); |
| | | targetRoutes.add(t2); |
| | | rcsParam.put("targetRoute", targetRoutes); |
| | | rcsParam.put("initPriority", 100); |
| | | |
| | | |
| | | String response = ""; |
| | | Boolean bool = false; |
| | | String msg = ""; |
| | | HashMap<String, Object> map = new HashMap<>(); |
| | | Date date = new Date(); |
| | | String time = date.getTime() + ""; |
| | | |
| | | map.put("X-LR-REQUEST-ID", time); |
| | | try { |
| | | log.info("wms派发搬运任务给AGV搬运={}", rcsParam); |
| | | response = new HttpHandler.Builder() |
| | | .setHeaders(map) |
| | | .setUri(url) |
| | | .setHttps(true) |
| | | .setPath(attrcs) |
| | | .setJson(JSON.toJSONString(rcsParam)) |
| | | .build() |
| | | .doPostCloseSSL(); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | if (jsonObject.getString("code").equals("SUCCESS")) { |
| | | bool = true; |
| | | } else { |
| | | msg = jsonObject.getString("message"); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | log.error("wms派发搬运任务给AGV搬运失败返回值={}", response); |
| | | } finally { |
| | | apiLogService.save("wms派发搬运任务给AGV搬运" |
| | | , url + attrcs |
| | | , null |
| | | , "127.0.0.1" |
| | | , JSON.toJSONString(rcsParam) |
| | | , response |
| | | , bool |
| | | ); |
| | | } |
| | | |
| | | if (bool) { |
| | | return R.ok(); |
| | | } else { |
| | | return R.error(msg); |
| | | } |
| | | |
| | |
| | | |
| | | /** |
| | | * 执行移库任务--点到点 |
| | | * |
| | | * @param sourceStaNo |
| | | * @param staNo |
| | | * @return |
| | | */ |
| | | @RequestMapping("/SITESITEAGVMove") |
| | | public synchronized R SITESITEAGVMove(@RequestParam(required = false) String sourceStaNo |
| | | ,@RequestParam(required = false) String staNo |
| | | ,@RequestParam(required = false) String taskNo){ |
| | | , @RequestParam(required = false) String staNo |
| | | , @RequestParam(required = false) String taskNo) { |
| | | if (Cools.isEmpty(sourceStaNo) || Cools.isEmpty(staNo)) { |
| | | return R.error("源站点和目标站点不能为空"); |
| | | |
| | | } |
| | | |
| | | LinkedHashMap<String,Object> rcsParam=new LinkedHashMap<>(); |
| | | LinkedHashMap<String, Object> rcsParam = new LinkedHashMap<>(); |
| | | rcsParam.put("taskType", "PF-FMR-COMMON"); |
| | | if(!Cools.isEmpty(taskNo)){ |
| | | if (!Cools.isEmpty(taskNo)) { |
| | | rcsParam.put("robotTaskCode", taskNo); |
| | | } |
| | | |
| | | List<LinkedHashMap<String,Object>> targetRoutes=new ArrayList<>(); |
| | | LinkedHashMap<String,Object> t1=new LinkedHashMap<>(); |
| | | LinkedHashMap<String,Object> t2=new LinkedHashMap<>(); |
| | | List<LinkedHashMap<String, Object>> targetRoutes = new ArrayList<>(); |
| | | LinkedHashMap<String, Object> t1 = new LinkedHashMap<>(); |
| | | LinkedHashMap<String, Object> t2 = new LinkedHashMap<>(); |
| | | t1.put("seq", 0); |
| | | t1.put("type","SITE"); |
| | | t1.put("type", "SITE"); |
| | | t1.put("code", sourceStaNo); |
| | | t1.put("autoStart",0); |
| | | t1.put("operation","COLLECT"); |
| | | t1.put("autoStart", 0); |
| | | t1.put("operation", "COLLECT"); |
| | | |
| | | t2.put("seq", 0); |
| | | t2.put("type","SITE"); |
| | | t2.put("type", "SITE"); |
| | | t2.put("code", staNo); |
| | | t2.put("autoStart",0); |
| | | t2.put("operation","DELIVERY"); |
| | | t2.put("autoStart", 0); |
| | | t2.put("operation", "DELIVERY"); |
| | | |
| | | targetRoutes.add(t1); |
| | | targetRoutes.add(t2); |
| | |
| | | rcsParam.put("initPriority", 100); |
| | | |
| | | |
| | | String response =""; |
| | | Boolean bool =false; |
| | | String response = ""; |
| | | Boolean bool = false; |
| | | String msg = ""; |
| | | HashMap<String,Object> map = new HashMap<>(); |
| | | HashMap<String, Object> map = new HashMap<>(); |
| | | Date date = new Date(); |
| | | String time = date.getTime()+""; |
| | | String time = date.getTime() + ""; |
| | | |
| | | map.put("X-LR-REQUEST-ID", time); |
| | | try { |
| | |
| | | .build() |
| | | .doPostCloseSSL(); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | if(jsonObject.getString("code").equals("SUCCESS")){ |
| | | if (jsonObject.getString("code").equals("SUCCESS")) { |
| | | bool = true; |
| | | }else{ |
| | | msg=jsonObject.getString("message"); |
| | | } else { |
| | | msg = jsonObject.getString("message"); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | |
| | | ); |
| | | } |
| | | |
| | | if(bool){ |
| | | if (bool) { |
| | | return R.ok(); |
| | | }else { |
| | | } else { |
| | | return R.error(msg); |
| | | } |
| | | |
| | |
| | | |
| | | /** |
| | | * 执行移库任务--点到区域 |
| | | * |
| | | * @param sourceStaNo |
| | | * @param staNo |
| | | * @return |
| | | */ |
| | | @RequestMapping("/SITEZONEAGVMove") |
| | | public synchronized R SITEZONEAGVMove(@RequestParam(required = false) String sourceStaNo |
| | | ,@RequestParam(required = false) String staNo |
| | | ,@RequestParam(required = false) String taskNo){ |
| | | , @RequestParam(required = false) String staNo |
| | | , @RequestParam(required = false) String taskNo) { |
| | | if (Cools.isEmpty(sourceStaNo) || Cools.isEmpty(staNo)) { |
| | | return R.error("源站点和目标站点不能为空"); |
| | | |
| | | } |
| | | LinkedHashMap<String,Object> rcsParam=new LinkedHashMap<>(); |
| | | LinkedHashMap<String, Object> rcsParam = new LinkedHashMap<>(); |
| | | rcsParam.put("taskType", "PF-FMR-COMMON"); |
| | | if(!Cools.isEmpty(taskNo)){ |
| | | if (!Cools.isEmpty(taskNo)) { |
| | | rcsParam.put("robotTaskCode", taskNo); |
| | | } |
| | | |
| | | List<LinkedHashMap<String,Object>> targetRoutes=new ArrayList<>(); |
| | | LinkedHashMap<String,Object> t1=new LinkedHashMap<>(); |
| | | LinkedHashMap<String,Object> t2=new LinkedHashMap<>(); |
| | | List<LinkedHashMap<String, Object>> targetRoutes = new ArrayList<>(); |
| | | LinkedHashMap<String, Object> t1 = new LinkedHashMap<>(); |
| | | LinkedHashMap<String, Object> t2 = new LinkedHashMap<>(); |
| | | t1.put("seq", 0); |
| | | t1.put("type","SITE"); |
| | | t1.put("type", "SITE"); |
| | | t1.put("code", sourceStaNo); |
| | | t1.put("autoStart",0); |
| | | t1.put("operation","COLLECT"); |
| | | t1.put("autoStart", 0); |
| | | t1.put("operation", "COLLECT"); |
| | | |
| | | t2.put("seq", 0); |
| | | t2.put("type","ZONE"); |
| | | t2.put("type", "ZONE"); |
| | | t2.put("code", staNo); |
| | | t2.put("autoStart",0); |
| | | t2.put("operation","DELIVERY"); |
| | | t2.put("autoStart", 0); |
| | | t2.put("operation", "DELIVERY"); |
| | | |
| | | targetRoutes.add(t1); |
| | | targetRoutes.add(t2); |
| | |
| | | rcsParam.put("initPriority", 100); |
| | | |
| | | |
| | | String response =""; |
| | | Boolean bool =false; |
| | | String response = ""; |
| | | Boolean bool = false; |
| | | String msg = ""; |
| | | HashMap<String,Object> map = new HashMap<>(); |
| | | HashMap<String, Object> map = new HashMap<>(); |
| | | Date date = new Date(); |
| | | String time = date.getTime()+""; |
| | | String time = date.getTime() + ""; |
| | | |
| | | map.put("X-LR-REQUEST-ID", time); |
| | | try { |
| | |
| | | .build() |
| | | .doPostCloseSSL(); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | if(jsonObject.getString("code").equals("SUCCESS")){ |
| | | if (jsonObject.getString("code").equals("SUCCESS")) { |
| | | bool = true; |
| | | }else{ |
| | | msg=jsonObject.getString("message"); |
| | | } else { |
| | | msg = jsonObject.getString("message"); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | |
| | | ); |
| | | } |
| | | |
| | | if(bool){ |
| | | if (bool) { |
| | | return R.ok(); |
| | | }else { |
| | | } else { |
| | | return R.error(msg); |
| | | } |
| | | |
| | |
| | | |
| | | /** |
| | | * 执行移库任务--区域到点 |
| | | * |
| | | * @param sourceStaNo |
| | | * @param staNo |
| | | * @return |
| | | */ |
| | | @RequestMapping("/ZONESITEAGVMove") |
| | | public synchronized R ZONESITEAGVMove(@RequestParam(required = false) String sourceStaNo |
| | | ,@RequestParam(required = false) String staNo |
| | | ,@RequestParam(required = false) String taskNo){ |
| | | , @RequestParam(required = false) String staNo |
| | | , @RequestParam(required = false) String taskNo) { |
| | | if (Cools.isEmpty(sourceStaNo) || Cools.isEmpty(staNo)) { |
| | | return R.error("源站点和目标站点不能为空"); |
| | | |
| | | } |
| | | LinkedHashMap<String,Object> rcsParam=new LinkedHashMap<>(); |
| | | LinkedHashMap<String, Object> rcsParam = new LinkedHashMap<>(); |
| | | rcsParam.put("taskType", "PF-FMR-COMMON"); |
| | | if(!Cools.isEmpty(taskNo)){ |
| | | if (!Cools.isEmpty(taskNo)) { |
| | | rcsParam.put("robotTaskCode", taskNo); |
| | | } |
| | | |
| | | List<LinkedHashMap<String,Object>> targetRoutes=new ArrayList<>(); |
| | | LinkedHashMap<String,Object> t1=new LinkedHashMap<>(); |
| | | LinkedHashMap<String,Object> t2=new LinkedHashMap<>(); |
| | | List<LinkedHashMap<String, Object>> targetRoutes = new ArrayList<>(); |
| | | LinkedHashMap<String, Object> t1 = new LinkedHashMap<>(); |
| | | LinkedHashMap<String, Object> t2 = new LinkedHashMap<>(); |
| | | t1.put("seq", 0); |
| | | t1.put("type","ZONE"); |
| | | t1.put("type", "ZONE"); |
| | | t1.put("code", sourceStaNo); |
| | | t1.put("autoStart",0); |
| | | t1.put("operation","COLLECT"); |
| | | t1.put("autoStart", 0); |
| | | t1.put("operation", "COLLECT"); |
| | | |
| | | t2.put("seq", 0); |
| | | t2.put("type","SITE"); |
| | | t2.put("type", "SITE"); |
| | | t2.put("code", staNo); |
| | | t2.put("autoStart",0); |
| | | t2.put("operation","DELIVERY"); |
| | | t2.put("autoStart", 0); |
| | | t2.put("operation", "DELIVERY"); |
| | | |
| | | targetRoutes.add(t1); |
| | | targetRoutes.add(t2); |
| | |
| | | rcsParam.put("initPriority", 100); |
| | | |
| | | |
| | | String response =""; |
| | | Boolean bool =false; |
| | | String response = ""; |
| | | Boolean bool = false; |
| | | String msg = ""; |
| | | HashMap<String,Object> map = new HashMap<>(); |
| | | HashMap<String, Object> map = new HashMap<>(); |
| | | Date date = new Date(); |
| | | String time = date.getTime()+""; |
| | | String time = date.getTime() + ""; |
| | | |
| | | map.put("X-LR-REQUEST-ID", time); |
| | | try { |
| | |
| | | .build() |
| | | .doPostCloseSSL(); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | if(jsonObject.getString("code").equals("SUCCESS")){ |
| | | if (jsonObject.getString("code").equals("SUCCESS")) { |
| | | bool = true; |
| | | }else{ |
| | | msg=jsonObject.getString("message"); |
| | | } else { |
| | | msg = jsonObject.getString("message"); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | |
| | | ); |
| | | } |
| | | |
| | | if(bool){ |
| | | if (bool) { |
| | | return R.ok(); |
| | | }else { |
| | | } else { |
| | | return R.error(msg); |
| | | } |
| | | |
| | |
| | | |
| | | /** |
| | | * AGV站点绑定和解绑 |
| | | * @param sourceStaNo //站点 |
| | | * @param barcodeType //托盘码 |
| | | * @param invoke //BIND为绑定 UNBIND为解绑 |
| | | * |
| | | * @param sourceStaNo //站点 |
| | | * @param barcodeType //托盘码 |
| | | * @param invoke //BIND为绑定 UNBIND为解绑 |
| | | * @return |
| | | */ |
| | | @RequestMapping("/siteBindAndUnbind") |
| | | public synchronized R siteBindAndUnbind(@RequestParam(required = false) String sourceStaNo |
| | | ,@RequestParam(required = false) String barcodeType |
| | | ,@RequestParam(required = false) String invoke){ |
| | | , @RequestParam(required = false) String barcodeType |
| | | , @RequestParam(required = false) String invoke) { |
| | | if (Cools.isEmpty(sourceStaNo) || Cools.isEmpty(barcodeType)) { |
| | | return R.error("站点和托盘类型不能为空"); |
| | | |
| | | } |
| | | if(barcodeType.substring(0,1).equals("8")){ |
| | | barcodeType="11"; |
| | | }else if(barcodeType.substring(0,1).equals("9")){ |
| | | barcodeType="21"; |
| | | if (barcodeType.substring(0, 1).equals("8")) { |
| | | barcodeType = "11"; |
| | | } else if (barcodeType.substring(0, 1).equals("9")) { |
| | | barcodeType = "21"; |
| | | } |
| | | LinkedHashMap<String,Object> rcsParam=new LinkedHashMap<>(); |
| | | LinkedHashMap<String, Object> rcsParam = new LinkedHashMap<>(); |
| | | rcsParam.put("slotCategory", "SITE"); |
| | | rcsParam.put("slotCode", sourceStaNo); |
| | | rcsParam.put("carrierCategory", "PALLET"); |
| | | rcsParam.put("carrierType", barcodeType);//11为小托盘 21为大托盘 |
| | | if(sourceStaNo.equals("101")){ |
| | | rcsParam.put("carrierDir","0"); |
| | | }else if(sourceStaNo.equals("R01")||sourceStaNo.equals("R03")){ |
| | | rcsParam.put("carrierDir","-90"); |
| | | if (sourceStaNo.equals("101")) { |
| | | rcsParam.put("carrierDir", "0"); |
| | | } else if (sourceStaNo.equals("R01") || sourceStaNo.equals("R03")) { |
| | | rcsParam.put("carrierDir", "-90"); |
| | | |
| | | }else if(sourceStaNo.equals("R02")){ |
| | | rcsParam.put("carrierDir","90"); |
| | | }else { |
| | | rcsParam.put("carrierDir","180"); |
| | | } |
| | | } else if (sourceStaNo.equals("R02")) { |
| | | rcsParam.put("carrierDir", "90"); |
| | | } else { |
| | | rcsParam.put("carrierDir", "180"); |
| | | } |
| | | |
| | | rcsParam.put("temporary", ""); |
| | | rcsParam.put("invoke", invoke); |
| | | |
| | | |
| | | String response =""; |
| | | Boolean bool =false; |
| | | String response = ""; |
| | | Boolean bool = false; |
| | | String msg = ""; |
| | | HashMap<String,Object> map = new HashMap<>(); |
| | | HashMap<String, Object> map = new HashMap<>(); |
| | | Date date = new Date(); |
| | | String time = date.getTime()+""; |
| | | String time = date.getTime() + ""; |
| | | |
| | | map.put("X-LR-REQUEST-ID", time); |
| | | try { |
| | | log.info("WMS完成"+invoke+"agv站点={},上报参数为={}",sourceStaNo,rcsParam); |
| | | log.info("WMS完成" + invoke + "agv站点={},上报参数为={}", sourceStaNo, rcsParam); |
| | | response = new HttpHandler.Builder() |
| | | .setHeaders(map) |
| | | .setUri(url) |
| | |
| | | .build() |
| | | .doPostCloseSSL(); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | if(jsonObject.getString("code").equals("SUCCESS")){ |
| | | if (jsonObject.getString("code").equals("SUCCESS")) { |
| | | bool = true; |
| | | }else{ |
| | | msg=jsonObject.getString("message"); |
| | | } else { |
| | | msg = jsonObject.getString("message"); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | log.error("WMS完成"+invoke+"agv站点失败={}", response); |
| | | log.error("WMS完成" + invoke + "agv站点失败={}", response); |
| | | } finally { |
| | | apiLogService.save("WMS完成"+invoke+"agv站点"+sourceStaNo |
| | | apiLogService.save("WMS完成" + invoke + "agv站点" + sourceStaNo |
| | | , url + siteBindAndUnbing |
| | | , null |
| | | , "127.0.0.1" |
| | |
| | | ); |
| | | } |
| | | |
| | | if(bool){ |
| | | if (bool) { |
| | | return R.ok(); |
| | | }else { |
| | | } else { |
| | | return R.error(msg); |
| | | } |
| | | |
| | |
| | | |
| | | /** |
| | | * 空板回库或者拣料回库 |
| | | * |
| | | * @param sourceStaNo |
| | | * @param staNo |
| | | * @return |
| | | */ |
| | | @RequestMapping("/AGVStartReturn") |
| | | public synchronized R AGVStartReturn(@RequestParam(required = false) String sourceStaNo |
| | | ,@RequestParam(required = false) String staNo |
| | | ,@RequestParam(required = false) String taskNo){ |
| | | , @RequestParam(required = false) String staNo |
| | | , @RequestParam(required = false) String taskNo) { |
| | | if (Cools.isEmpty(sourceStaNo) || Cools.isEmpty(staNo)) { |
| | | return R.error("源站点和托盘码不能为空"); |
| | | |
| | | } |
| | | |
| | | R r=R.ok(); |
| | | R r = R.ok(); |
| | | |
| | | WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", staNo).in("io_type",103,105,107)); |
| | | WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", staNo).in("io_type", 103, 105, 107)); |
| | | if (wrkMast == null) { |
| | | r=FillEmptyPalletsStack(sourceStaNo,staNo); |
| | | }else { |
| | | if (wrkMast.getWrkSts()>30){ |
| | | r = FillEmptyPalletsStack(sourceStaNo, staNo); |
| | | } else { |
| | | if (wrkMast.getWrkSts() > 30) { |
| | | return R.error("该托盘={},没有下架,请下架后再回库!!!"); |
| | | } |
| | | List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("sta_no", wrkMast.getStaNo()).in("io_type",101,103,105,107).lt("wrk_sts", 33)); |
| | | if (!Cools.isEmpty(wrkMasts)){ |
| | | return R.error(wrkMast.getCrnNo()+"堆垛机,有出库任务,禁止回库!!!"); |
| | | List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("sta_no", wrkMast.getStaNo()).in("io_type", 101, 103, 105, 107).lt("wrk_sts", 33)); |
| | | if (!Cools.isEmpty(wrkMasts)) { |
| | | return R.error(wrkMast.getCrnNo() + "堆垛机,有出库任务,禁止回库!!!"); |
| | | } |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); |
| | | String format = sdf.format(new Date()); |
| | | String s = format+"-" + wrkMast.getWrkNo() + "-" + wrkMast.getBarcode(); |
| | | r=SITESITEAGVMove(sourceStaNo,wrkMast.getStaNo$(),s); |
| | | String s = format + "-" + wrkMast.getWrkNo() + "-" + wrkMast.getBarcode(); |
| | | r = SITESITEAGVMove(sourceStaNo, wrkMast.getStaNo$(), s); |
| | | if (r.get("code").equals(200)) { |
| | | wrkMast.setPdcType(s); |
| | | /** |
| | |
| | | |
| | | /** |
| | | * 获取仓库 |
| | | * |
| | | * @return |
| | | */ |
| | | @RequestMapping("/ck") |
| | | @PostMapping |
| | | public R AGVStartReturn(){ |
| | | List<String> list=new ArrayList<>(); |
| | | public R AGVStartReturn() { |
| | | List<String> list = new ArrayList<>(); |
| | | list.add("半成品仓库"); |
| | | list.add("成品仓库"); |
| | | return R.ok(list); |
| | | } |
| | | |
| | | |
| | | @RequestMapping(value = "/mat/tiaoma/auth") |
| | | @ManagerAuth |
| | | public R find(@RequestParam("barcode") String barcode) { |
| | | ExdvYanbu barcode1 = exdMaterialMapper.getBacode(barcode); |
| | | if (barcode1 == null) { |
| | | return R.error("批次对应的验布数据不存在"); |
| | | } |
| | | return R.ok(barcode1); |
| | | } |
| | | |
| | | @RequestMapping(value = "/getOrderNo/auth") |
| | | @ManagerAuth |
| | | public R findOrderNo(@RequestParam("orderNo") String orderNo) { |
| | | Page<Order> orderPage = orderService.selectPage(new Page<>(0, 10), new EntityWrapper<Order>().like("order_no", "%" + orderNo + "%")); |
| | | List<String> objects = new ArrayList<>(); |
| | | for (Order record : orderPage.getRecords()) { |
| | | objects.add(record.getOrderNo()); |
| | | } |
| | | return R.ok(objects); |
| | | } |
| | | |
| | | } |
| | |
| | | |
| | | private String ck; |
| | | |
| | | private boolean type = false; |
| | | |
| | | |
| | | //agv状态 |
| | | /** |
| | | * 0:无需调用AGV |
| | |
| | | |
| | | int increaseWorkQty(@Param("orderId")Long orderId, @Param("matnr")String matnr, @Param("batch")String batch, @Param("workQty")Double workQty); |
| | | |
| | | |
| | | int increaseWorkQty2(@Param("orderId")Long orderId, @Param("matnr")String matnr, @Param("batch")String batch, @Param("workQty")Double workQty, @Param("color")String color); |
| | | |
| | | |
| | | int increaseWorkQtytest(@Param("orderNo")String orderNo, @Param("matnr")String matnr, @Param("batch")String batch, @Param("anfme")Double anfme); |
| | | |
| | | } |
| | |
| | | /** |
| | | * 组托 |
| | | */ |
| | | void comb(CombParam param, Long userId); |
| | | void comb(CombParam param, Long userId, String fxId); |
| | | |
| | | /** |
| | | * 上架 |
| | |
| | | */ |
| | | boolean increaseWorkQty(Long orderId, String matnr, String batch, Double workQty); |
| | | |
| | | |
| | | boolean increaseWorkQty2(Long orderId, String matnr, String batch, Double workQty, String color); |
| | | |
| | | |
| | | boolean increaseWorkQtytest(String orderNo, String matnr, String batch, Double anfme); |
| | | } |
| | |
| | | |
| | | @Override |
| | | @Transactional |
| | | public void comb(CombParam param, Long userId) { |
| | | public void comb(CombParam param,Long userId,String fxId) { |
| | | if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) { |
| | | throw new CoolException(BaseRes.PARAM); |
| | | } |
| | |
| | | waitPakin.setModiUser(userId); |
| | | waitPakin.setModiTime(now); |
| | | waitPakin.setBrand(param.getCk());//仓库 |
| | | waitPakin.setInspect(param.isType()?1:0); |
| | | if(i==1){ |
| | | // 0:不需要补空托盘 |
| | | // 1:小托盘 |
| | |
| | | throw new CoolException(orderDetl.getMatnr() + "入库数量不合法"); |
| | | } |
| | | // 修改订单作业数量 |
| | | if (!orderDetlService.increaseWorkQty(order.getId(), elem.getMatnr(), elem.getBatch(), elem.getAnfme())) { |
| | | if (!orderDetlService.increaseWorkQty2(order.getId(), elem.getMatnr(), elem.getBatch(), elem.getAnfme(),fxId)) { |
| | | throw new CoolException("修改单据作业数量失败"); |
| | | } |
| | | |
| | |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.baomidou.mybatisplus.plugins.Page; |
| | | import com.core.common.Cools; |
| | | import com.zy.asrs.mapper.OrderDetlMapper; |
| | | import com.zy.asrs.entity.OrderDetl; |
| | | import com.zy.asrs.service.OrderDetlService; |
| | | import com.baomidou.mybatisplus.service.impl.ServiceImpl; |
| | | import com.core.common.Cools; |
| | | import com.zy.asrs.entity.OrderDetl; |
| | | import com.zy.asrs.mapper.OrderDetlMapper; |
| | | import com.zy.asrs.service.OrderDetlService; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.List; |
| | |
| | | |
| | | /** |
| | | * 入出库任务生成时,更新单据表中作业数量 |
| | | * |
| | | * @param orderId |
| | | * @param matnr |
| | | * @param batch |
| | |
| | | |
| | | /** |
| | | * 入出库任务生成时,更新单据表中作业数量 |
| | | * |
| | | * @param orderId |
| | | * @param matnr |
| | | * @param batch |
| | | * @param workQty |
| | | * @return |
| | | */ |
| | | @Override |
| | | public boolean increaseWorkQty2(Long orderId, String matnr, String batch, Double workQty, String color) { |
| | | return this.baseMapper.increaseWorkQty2(orderId, matnr, batch, workQty, color) > 0; |
| | | } |
| | | |
| | | /** |
| | | * 入出库任务生成时,更新单据表中作业数量 |
| | | * |
| | | * @param orderNo |
| | | * @param matnr |
| | | * @param batch |
| | |
| | | package com.zy.asrs.task.handler; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.core.common.Cools; |
| | | import com.core.common.DateUtils; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.entity.DocType; |
| | |
| | | import com.zy.asrs.service.OrderService; |
| | | import com.zy.asrs.task.AbstractHandler; |
| | | import com.zy.asrs.task.core.ReturnT; |
| | | import com.zy.common.constant.MesConstant; |
| | | import com.zy.common.model.MesPakinParam; |
| | | import com.zy.common.model.MesPakoutParam; |
| | | import com.zy.common.utils.HttpHandler; |
| | | import com.zy.third.entity.ExdInstockTarget; |
| | | import com.zy.third.entity.ExdOutstockTarget; |
| | | import com.zy.third.service.ExdInstockTargetService; |
| | | import com.zy.third.service.ExdOutstockTargetService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.jdbc.core.JdbcTemplate; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | |
| | | @Service |
| | | public class OrderSyncHandler extends AbstractHandler<String> { |
| | | |
| | | @Autowired |
| | | private JdbcTemplate jdbcTemplate; |
| | | |
| | | @Autowired |
| | | private OrderService orderService; |
| | | @Autowired |
| | |
| | | private ApiLogService apiLogService; |
| | | @Autowired |
| | | private DocTypeService docTypeService; |
| | | |
| | | @Autowired |
| | | private ExdInstockTargetService exdInstockTargetService; |
| | | |
| | | |
| | | @Autowired |
| | | private ExdOutstockTargetService exdOutstockTargetService; |
| | | |
| | | @Transactional |
| | | public ReturnT<String> start(Order order) { |
| | |
| | | List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId()); |
| | | // 入库完成上报 |
| | | if (docType.getPakin() == 1) { |
| | | MesPakinParam pakinParam = new MesPakinParam(); |
| | | pakinParam.setPakinTime(DateUtils.convert(order.getUpdateTime())); |
| | | pakinParam.setLgortFrom("5008"); |
| | | pakinParam.setLgortTo("5006"); |
| | | ExdInstockTarget exdInstockTarge = null; |
| | | for (OrderDetl orderDetl : orderDetls) { |
| | | String serial = Cools.isEmpty(orderDetl.getBatch()) ? "" : orderDetl.getBatch(); |
| | | pakinParam.getList().add(new MesPakinParam.Detl(orderDetl.getMatnr() + (Cools.isEmpty(serial) ? "" : "-" + serial), orderDetl.getAnfme())); |
| | | } |
| | | String response = ""; |
| | | boolean success = false; |
| | | try { |
| | | response = new HttpHandler.Builder() |
| | | .setUri(MesConstant.URL) |
| | | .setPath(MesConstant.PAKIN_URL) |
| | | .setJson(JSON.toJSONString(pakinParam)) |
| | | .build() |
| | | .doPost(); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | if (jsonObject.getInteger("code").equals(200)) { |
| | | success = true; |
| | | // 修改订单状态 4.完成 ===>> 6.已上报 |
| | | if (!orderService.updateSettle(order.getId(), 6L, null)) { |
| | | throw new CoolException("服务器内部错误,请联系管理员"); |
| | | } |
| | | } else { |
| | | log.error("请求接口失败!!!url:{};request:{};response:{}", MesConstant.URL+MesConstant.PAKIN_URL, JSON.toJSONString(pakinParam), response); |
| | | throw new CoolException("上报mes系统失败"); |
| | | exdInstockTarge = new ExdInstockTarget(); |
| | | exdInstockTarge.setFinterid(orderDetl.getDeadWarn()); |
| | | exdInstockTarge.setFbillno(orderDetl.getOrderNo()); |
| | | exdInstockTarge.setFtrantype(order.getDocType().intValue()); |
| | | exdInstockTarge.setFdate(DateUtils.convert(order.getOrderTime())); |
| | | exdInstockTarge.setFrob(orderDetl.getInspect()); |
| | | exdInstockTarge.setFuserid(Integer.getInteger(orderDetl.getColor())); |
| | | exdInstockTargetService.insert(exdInstockTarge); |
| | | if (!orderService.updateSettle(order.getId(), 6L, null)) { |
| | | throw new CoolException("服务器内部错误,请联系管理员"); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("fail", e); |
| | | // TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | return FAIL.setMsg(e.getMessage()); |
| | | } finally { |
| | | try { |
| | | // 保存接口日志 |
| | | apiLogService.save( |
| | | "成品库入库上报", |
| | | MesConstant.URL + MesConstant.PAKIN_URL, |
| | | null, |
| | | "127.0.0.1", |
| | | JSON.toJSONString(pakinParam), |
| | | response, |
| | | success |
| | | ); |
| | | } catch (Exception e) { log.error("", e); } |
| | | } |
| | | } |
| | | // 出库完成上报 |
| | | if (docType.getPakout() == 1) { |
| | | MesPakoutParam pakoutParam = new MesPakoutParam(); |
| | | pakoutParam.setTag(!order.getDocType$().equalsIgnoreCase("手动出库单")); |
| | | pakoutParam.setPakoutTime(DateUtils.convert(order.getUpdateTime())); |
| | | pakoutParam.setLgortFrom("5006"); |
| | | pakoutParam.setLgortTo("1111"); |
| | | if (!pakoutParam.isTag()) { |
| | | pakoutParam.setKunnr("C1000"); |
| | | } |
| | | pakoutParam.setOrderNo(order.getOrderNo()); |
| | | } else if (docType.getPakout() == 1) { |
| | | // 出库完成上报 |
| | | ExdOutstockTarget exdOutstockTarget = null; |
| | | for (OrderDetl orderDetl : orderDetls) { |
| | | String serial = Cools.isEmpty(orderDetl.getBatch()) ? "" : orderDetl.getBatch(); |
| | | pakoutParam.getList().add(new MesPakoutParam.Detl(orderDetl.getMatnr() + (Cools.isEmpty(serial) ? "" : "-" + serial), orderDetl.getAnfme())); |
| | | } |
| | | String response = ""; |
| | | boolean success = false; |
| | | try { |
| | | response = new HttpHandler.Builder() |
| | | .setUri(MesConstant.URL) |
| | | .setPath(MesConstant.PAKOUT_URL) |
| | | .setJson(JSON.toJSONString(pakoutParam)) |
| | | .build() |
| | | .doPost(); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | if (jsonObject.getInteger("code").equals(200)) { |
| | | success = true; |
| | | // 修改订单状态 4.完成 ===>> 6.已上报 |
| | | if (!orderService.updateSettle(order.getId(), 6L, null)) { |
| | | throw new CoolException("服务器内部错误,请联系管理员"); |
| | | } |
| | | } else { |
| | | log.error("请求接口失败!!!url:{};request:{};response:{}", MesConstant.URL+MesConstant.PAKOUT_URL, JSON.toJSONString(pakoutParam), response); |
| | | throw new CoolException("上报mes系统失败"); |
| | | exdOutstockTarget = new ExdOutstockTarget(); |
| | | exdOutstockTargetService.insert(exdOutstockTarget); |
| | | if (!orderService.updateSettle(order.getId(), 6L, null)) { |
| | | throw new CoolException("服务器内部错误,请联系管理员"); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("fail", e); |
| | | // TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | return FAIL.setMsg(e.getMessage()); |
| | | } finally { |
| | | try { |
| | | // 保存接口日志 |
| | | apiLogService.save( |
| | | "成品库出库上报", |
| | | MesConstant.URL + MesConstant.PAKOUT_URL, |
| | | null, |
| | | "127.0.0.1", |
| | | JSON.toJSONString(pakoutParam), |
| | | response, |
| | | success |
| | | ); |
| | | } catch (Exception e) { log.error("", e); } |
| | | } |
| | | } |
| | | return SUCCESS; |
| | |
| | | import com.zy.asrs.entity.OrderDetl; |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Set; |
| | | |
| | |
| | | |
| | | private Double anfme; |
| | | |
| | | private Integer frob; |
| | | |
| | | private Integer FInterID; |
| | | |
| | | |
| | | public DetlDto() { |
| | | } |
| | | |
| | |
| | | /** |
| | | * |
| | | */ |
| | | @TableId |
| | | private String id; |
| | | |
| | | /** |
| | |
| | | /** |
| | | * |
| | | */ |
| | | @TableId |
| | | private String id; |
| | | |
| | | /** |
| | |
| | | /** |
| | | * |
| | | */ |
| | | @TableId |
| | | private String id; |
| | | |
| | | /** |
| | |
| | | /** |
| | | * |
| | | */ |
| | | @TableId |
| | | private Long id; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private Integer finterid; |
| | | |
| | | /** |
| | |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import java.io.Serializable; |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | import lombok.Data; |
| | | |
| | |
| | | @TableName(value ="Exd_Instock_Target") |
| | | @Data |
| | | public class ExdInstockTarget implements Serializable { |
| | | /** |
| | | * |
| | | */ |
| | | @TableId |
| | | private Long id; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | |
| | | /** |
| | | * |
| | | */ |
| | | private Double gross; |
| | | private BigDecimal gross; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private Double width; |
| | | private BigDecimal width; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private Double defects; |
| | | private BigDecimal defects; |
| | | |
| | | /** |
| | | * |
| | |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | |
| | | /** |
| | | * |
| | | */ |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | @TableId |
| | | private String id; |
| | | |
| | | /** |
| | |
| | | /** |
| | | * |
| | | */ |
| | | @TableId |
| | | private Long id; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private Integer finterid; |
| | | |
| | | /** |
| | |
| | | /** |
| | | * |
| | | */ |
| | | @TableId |
| | | private Long id; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private Integer finterid; |
| | | |
| | | /** |
| | |
| | | /** |
| | | * |
| | | */ |
| | | @TableId |
| | | private String id; |
| | | |
| | | /** |
| | |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | import lombok.Data; |
| | | import org.springframework.data.annotation.Id; |
| | | |
| | | /** |
| | | * |
| | |
| | | /** |
| | | * |
| | | */ |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | @TableId |
| | | private String id; |
| | | |
| | | /** |
| New file |
| | |
| | | package com.zy.third.entity; |
| | | |
| | | import com.baomidou.mybatisplus.annotations.TableField; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import java.io.Serializable; |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * |
| | | * @TableName ExdV_Yanbu |
| | | */ |
| | | @TableName(value ="ExdV_Yanbu") |
| | | @Data |
| | | public class ExdvYanbu implements Serializable { |
| | | /** |
| | | * |
| | | */ |
| | | private String barcode; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private BigDecimal qty; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private String itemnumber; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private String itemname; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private String itemmodel; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private String batchno; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private String icmono; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private String pono; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private BigDecimal gross; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private BigDecimal width; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private Integer defects; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private String cuspartno; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private String supplierpartno; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private String supplierno; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private Date packdate; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private String revision; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private Date createdate; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private Date readdate; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private Integer status; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private String parts; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private String oemproject; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private String qcempid; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private String qcempname; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private Date modifydate; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private String backcode; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private String qualitylevel; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private String reserve01; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private String reserve02; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private String reserve03; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private BigDecimal reserve04; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private BigDecimal reserve05; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private String qcempid2; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private String qcempname2; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private Date packendtime; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private String qcempid3; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | private String qcempname3; |
| | | |
| | | @TableField(exist = false) |
| | | private static final long serialVersionUID = 1L; |
| | | } |
| | |
| | | /** |
| | | * @author zc857 |
| | | * @description 针对表【Exd_Customer】的数据库操作Mapper |
| | | * @createDate 2025-09-23 08:36:03 |
| | | * @createDate 2025-09-24 08:20:14 |
| | | * @Entity com.zy.third.entity.ExdCustomer |
| | | */ |
| | | public interface ExdCustomerMapper extends BaseMapper<ExdCustomer> { |
| | |
| | | /** |
| | | * @author zc857 |
| | | * @description 针对表【Exd_Department】的数据库操作Mapper |
| | | * @createDate 2025-09-23 08:36:03 |
| | | * @createDate 2025-09-24 08:20:14 |
| | | * @Entity com.zy.third.entity.ExdDepartment |
| | | */ |
| | | public interface ExdDepartmentMapper extends BaseMapper<ExdDepartment> { |
| | |
| | | /** |
| | | * @author zc857 |
| | | * @description 针对表【Exd_Emp】的数据库操作Mapper |
| | | * @createDate 2025-09-23 08:36:03 |
| | | * @createDate 2025-09-24 08:20:14 |
| | | * @Entity com.zy.third.entity.ExdEmp |
| | | */ |
| | | public interface ExdEmpMapper extends BaseMapper<ExdEmp> { |
| | |
| | | |
| | | import com.zy.third.entity.ExdInstockSource; |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.zy.third.entity.ExdUser; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | |
| | | /** |
| | | * @author zc857 |
| | | * @description 针对表【Exd_Instock_Source】的数据库操作Mapper |
| | | * @createDate 2025-09-23 08:36:03 |
| | | * @createDate 2025-09-24 08:20:14 |
| | | * @Entity com.zy.third.entity.ExdInstockSource |
| | | */ |
| | | public interface ExdInstockSourceMapper extends BaseMapper<ExdInstockSource> { |
| | |
| | | |
| | | List<String> listOrderNo(); |
| | | |
| | | |
| | | |
| | | List<ExdInstockSource> listAll(@Param("fbillno") String fbillno); |
| | | List<ExdInstockSource> listAll(@Param("orderNo") String orderNo); |
| | | } |
| | |
| | | /** |
| | | * @author zc857 |
| | | * @description 针对表【Exd_Instock_Target】的数据库操作Mapper |
| | | * @createDate 2025-09-23 08:36:03 |
| | | * @createDate 2025-09-24 08:20:14 |
| | | * @Entity com.zy.third.entity.ExdInstockTarget |
| | | */ |
| | | public interface ExdInstockTargetMapper extends BaseMapper<ExdInstockTarget> { |
| | |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.zy.third.entity.ExdMaterial; |
| | | import com.zy.third.entity.ExdvYanbu; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @author zc857 |
| | | * @description 针对表【Exd_Material】的数据库操作Mapper |
| | | * @createDate 2025-09-23 08:36:03 |
| | | * @createDate 2025-09-24 08:20:14 |
| | | * @Entity com.zy.third.entity.ExdMaterial |
| | | */ |
| | | public interface ExdMaterialMapper extends BaseMapper<ExdMaterial> { |
| | | |
| | | ExdvYanbu getBacode(@Param("barcode") String barcode); |
| | | |
| | | |
| | | List<ExdMaterial> listAll(); |
| | | } |
| | |
| | | |
| | | import com.zy.third.entity.ExdOutstockSource; |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.zy.third.entity.ExdUser; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | |
| | | /** |
| | | * @author zc857 |
| | | * @description 针对表【Exd_Outstock_Source】的数据库操作Mapper |
| | | * @createDate 2025-09-23 08:36:03 |
| | | * @createDate 2025-09-24 08:20:14 |
| | | * @Entity com.zy.third.entity.ExdOutstockSource |
| | | */ |
| | | public interface ExdOutstockSourceMapper extends BaseMapper<ExdOutstockSource> { |
| | | |
| | | |
| | | List<String> listOrderNo(); |
| | | |
| | | List<ExdOutstockSource> listAll(@Param("fbillno") String fbillno); |
| | | List<ExdOutstockSource> listAll(@Param("orderNo") String orderNo); |
| | | } |
| | |
| | | /** |
| | | * @author zc857 |
| | | * @description 针对表【Exd_Outstock_Target】的数据库操作Mapper |
| | | * @createDate 2025-09-23 08:36:03 |
| | | * @createDate 2025-09-24 08:20:14 |
| | | * @Entity com.zy.third.entity.ExdOutstockTarget |
| | | */ |
| | | public interface ExdOutstockTargetMapper extends BaseMapper<ExdOutstockTarget> { |
| | |
| | | /** |
| | | * @author zc857 |
| | | * @description 针对表【Exd_Supplier】的数据库操作Mapper |
| | | * @createDate 2025-09-23 08:36:03 |
| | | * @createDate 2025-09-24 08:20:14 |
| | | * @Entity com.zy.third.entity.ExdSupplier |
| | | */ |
| | | public interface ExdSupplierMapper extends BaseMapper<ExdSupplier> { |
| | |
| | | /** |
| | | * @author zc857 |
| | | * @description 针对表【Exd_User】的数据库操作Mapper |
| | | * @createDate 2025-09-23 08:36:03 |
| | | * @createDate 2025-09-24 08:20:14 |
| | | * @Entity com.zy.third.entity.ExdUser |
| | | */ |
| | | public interface ExdUserMapper extends BaseMapper<ExdUser> { |
| | | |
| | | List<ExdUser> listAll(); |
| | | |
| | | List<ExdUser> listAll(); |
| | | } |
| | |
| | | /** |
| | | * @author zc857 |
| | | * @description 针对表【Exd_Customer】的数据库操作Service |
| | | * @createDate 2025-09-23 08:36:03 |
| | | * @createDate 2025-09-24 08:20:14 |
| | | */ |
| | | public interface ExdCustomerService extends IService<ExdCustomer> { |
| | | |
| | |
| | | /** |
| | | * @author zc857 |
| | | * @description 针对表【Exd_Department】的数据库操作Service |
| | | * @createDate 2025-09-23 08:36:03 |
| | | * @createDate 2025-09-24 08:20:14 |
| | | */ |
| | | public interface ExdDepartmentService extends IService<ExdDepartment> { |
| | | |
| | |
| | | /** |
| | | * @author zc857 |
| | | * @description 针对表【Exd_Emp】的数据库操作Service |
| | | * @createDate 2025-09-23 08:36:03 |
| | | * @createDate 2025-09-24 08:20:14 |
| | | */ |
| | | public interface ExdEmpService extends IService<ExdEmp> { |
| | | |
| | |
| | | /** |
| | | * @author zc857 |
| | | * @description 针对表【Exd_Instock_Source】的数据库操作Service |
| | | * @createDate 2025-09-23 08:36:03 |
| | | * @createDate 2025-09-24 08:20:14 |
| | | */ |
| | | public interface ExdInstockSourceService extends IService<ExdInstockSource> { |
| | | |
| | |
| | | /** |
| | | * @author zc857 |
| | | * @description 针对表【Exd_Instock_Target】的数据库操作Service |
| | | * @createDate 2025-09-23 08:36:03 |
| | | * @createDate 2025-09-24 08:20:14 |
| | | */ |
| | | public interface ExdInstockTargetService extends IService<ExdInstockTarget> { |
| | | |
| | |
| | | /** |
| | | * @author zc857 |
| | | * @description 针对表【Exd_Material】的数据库操作Service |
| | | * @createDate 2025-09-23 08:36:03 |
| | | * @createDate 2025-09-24 08:20:14 |
| | | */ |
| | | public interface ExdMaterialService extends IService<ExdMaterial> { |
| | | |
| | |
| | | /** |
| | | * @author zc857 |
| | | * @description 针对表【Exd_Outstock_Source】的数据库操作Service |
| | | * @createDate 2025-09-23 08:36:03 |
| | | * @createDate 2025-09-24 08:20:14 |
| | | */ |
| | | public interface ExdOutstockSourceService extends IService<ExdOutstockSource> { |
| | | |
| | |
| | | /** |
| | | * @author zc857 |
| | | * @description 针对表【Exd_Outstock_Target】的数据库操作Service |
| | | * @createDate 2025-09-23 08:36:03 |
| | | * @createDate 2025-09-24 08:20:14 |
| | | */ |
| | | public interface ExdOutstockTargetService extends IService<ExdOutstockTarget> { |
| | | |
| | |
| | | /** |
| | | * @author zc857 |
| | | * @description 针对表【Exd_Supplier】的数据库操作Service |
| | | * @createDate 2025-09-23 08:36:03 |
| | | * @createDate 2025-09-24 08:20:14 |
| | | */ |
| | | public interface ExdSupplierService extends IService<ExdSupplier> { |
| | | |
| | |
| | | /** |
| | | * @author zc857 |
| | | * @description 针对表【Exd_User】的数据库操作Service |
| | | * @createDate 2025-09-23 08:36:03 |
| | | * @createDate 2025-09-24 08:20:14 |
| | | */ |
| | | public interface ExdUserService extends IService<ExdUser> { |
| | | |
| | |
| | | /** |
| | | * @author zc857 |
| | | * @description 针对表【Exd_Customer】的数据库操作Service实现 |
| | | * @createDate 2025-09-23 08:36:03 |
| | | * @createDate 2025-09-24 08:20:14 |
| | | */ |
| | | @Service |
| | | public class ExdCustomerServiceImpl extends ServiceImpl<ExdCustomerMapper, ExdCustomer> |
| | |
| | | /** |
| | | * @author zc857 |
| | | * @description 针对表【Exd_Department】的数据库操作Service实现 |
| | | * @createDate 2025-09-23 08:36:03 |
| | | * @createDate 2025-09-24 08:20:14 |
| | | */ |
| | | @Service |
| | | public class ExdDepartmentServiceImpl extends ServiceImpl<ExdDepartmentMapper, ExdDepartment> |
| | |
| | | /** |
| | | * @author zc857 |
| | | * @description 针对表【Exd_Emp】的数据库操作Service实现 |
| | | * @createDate 2025-09-23 08:36:03 |
| | | * @createDate 2025-09-24 08:20:14 |
| | | */ |
| | | @Service |
| | | public class ExdEmpServiceImpl extends ServiceImpl<ExdEmpMapper, ExdEmp> |
| | |
| | | /** |
| | | * @author zc857 |
| | | * @description 针对表【Exd_Instock_Source】的数据库操作Service实现 |
| | | * @createDate 2025-09-23 08:36:03 |
| | | * @createDate 2025-09-24 08:20:14 |
| | | */ |
| | | @Service |
| | | public class ExdInstockSourceServiceImpl extends ServiceImpl<ExdInstockSourceMapper, ExdInstockSource> |
| | |
| | | /** |
| | | * @author zc857 |
| | | * @description 针对表【Exd_Instock_Target】的数据库操作Service实现 |
| | | * @createDate 2025-09-23 08:36:03 |
| | | * @createDate 2025-09-24 08:20:14 |
| | | */ |
| | | @Service |
| | | public class ExdInstockTargetServiceImpl extends ServiceImpl<ExdInstockTargetMapper, ExdInstockTarget> |
| | |
| | | /** |
| | | * @author zc857 |
| | | * @description 针对表【Exd_Material】的数据库操作Service实现 |
| | | * @createDate 2025-09-23 08:36:03 |
| | | * @createDate 2025-09-24 08:20:14 |
| | | */ |
| | | @Service |
| | | public class ExdMaterialServiceImpl extends ServiceImpl<ExdMaterialMapper, ExdMaterial> |
| | |
| | | /** |
| | | * @author zc857 |
| | | * @description 针对表【Exd_Outstock_Source】的数据库操作Service实现 |
| | | * @createDate 2025-09-23 08:36:03 |
| | | * @createDate 2025-09-24 08:20:14 |
| | | */ |
| | | @Service |
| | | public class ExdOutstockSourceServiceImpl extends ServiceImpl<ExdOutstockSourceMapper, ExdOutstockSource> |
| | |
| | | /** |
| | | * @author zc857 |
| | | * @description 针对表【Exd_Outstock_Target】的数据库操作Service实现 |
| | | * @createDate 2025-09-23 08:36:03 |
| | | * @createDate 2025-09-24 08:20:14 |
| | | */ |
| | | @Service |
| | | public class ExdOutstockTargetServiceImpl extends ServiceImpl<ExdOutstockTargetMapper, ExdOutstockTarget> |
| | |
| | | /** |
| | | * @author zc857 |
| | | * @description 针对表【Exd_Supplier】的数据库操作Service实现 |
| | | * @createDate 2025-09-23 08:36:03 |
| | | * @createDate 2025-09-24 08:20:14 |
| | | */ |
| | | @Service |
| | | public class ExdSupplierServiceImpl extends ServiceImpl<ExdSupplierMapper, ExdSupplier> |
| | |
| | | /** |
| | | * @author zc857 |
| | | * @description 针对表【Exd_User】的数据库操作Service实现 |
| | | * @createDate 2025-09-23 08:36:03 |
| | | * @createDate 2025-09-24 08:20:14 |
| | | */ |
| | | @Service |
| | | public class ExdUserServiceImpl extends ServiceImpl<ExdUserMapper, ExdUser> |
| | |
| | | @Scheduled(cron = "0/30 * * * * ? ") |
| | | public void readOutOrder() { |
| | | log.info("读取出库单据"); |
| | | List<String> orderNos = exdInstockSourceMapper.listOrderNo(); |
| | | List<String> orderNos = exdOutstockSourceMapper.listOrderNo(); |
| | | for (String orderNo : orderNos) { |
| | | List<ExdOutstockSource> exdOutstockSources = exdOutstockSourceMapper.listAll(orderNo); |
| | | try { |
| | |
| | | order = new Order( |
| | | String.valueOf(snowflakeIdWorker.nextId()), // 编号[非空] |
| | | fbillno, // 订单编号 |
| | | DateUtils.convert(now), // 单据日期 |
| | | DateUtils.convert(exdInstockSource.get(0).getFdate()), // 单据日期 |
| | | docType.getDocId(), // 单据类型 |
| | | null, // 项目编号 |
| | | null, // |
| | |
| | | List<DetlDto> list = new ArrayList<>(); |
| | | for (ExdInstockSource detail : exdInstockSource) { |
| | | DetlDto dto = new DetlDto(detail.getFitemid() + "", detail.getFbatchno(), detail.getFqty()); |
| | | dto.setFrob(detail.getFrob()); |
| | | dto.setFInterID(detail.getFinterid()); |
| | | if (DetlDto.has(list, dto)) { |
| | | DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch()); |
| | | assert detlDto != null; |
| | |
| | | orderDetl.setUpdateTime(now); |
| | | orderDetl.setStatus(1); |
| | | orderDetl.setQty(0.0D); |
| | | orderDetl.setDeadWarn(detlDto.getFInterID()); |
| | | orderDetl.setInspect(detlDto.getFrob()); |
| | | if (!orderDetlService.insert(orderDetl)) { |
| | | throw new CoolException("生成单据明细失败,请联系管理员"); |
| | | } |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper |
| | | PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
| | | "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.zy.third.mapper.ExdvYanbuMapper"> |
| | | |
| | | <resultMap id="BaseResultMap" type="com.zy.third.entity.ExdvYanbu"> |
| | | <result property="barcode" column="Barcode" /> |
| | | </resultMap> |
| | | |
| | | <sql id="Base_Column_List"> |
| | | Barcode |
| | | </sql> |
| | | </mapper> |
| | |
| | | </choose> |
| | | </update> |
| | | |
| | | <update id="increaseWorkQty2"> |
| | | update man_order_detl |
| | | set work_qty = work_qty + #{workQty} |
| | | where 1=1 |
| | | and order_id = #{orderId} |
| | | and matnr = #{matnr} |
| | | <if test="color!=null and color!='' "> |
| | | and color = #{color} |
| | | </if> |
| | | <choose> |
| | | <when test="batch != null and batch != ''"> |
| | | and batch = #{batch} |
| | | </when> |
| | | <otherwise> |
| | | and (batch IS NULL OR batch = '') |
| | | </otherwise> |
| | | </choose> |
| | | </update> |
| | | |
| | | </mapper> |
| | |
| | | <mapper namespace="com.zy.third.mapper.ExdCustomerMapper"> |
| | | |
| | | <resultMap id="BaseResultMap" type="com.zy.third.entity.ExdCustomer"> |
| | | <result property="id" column="ID" /> |
| | | <id property="id" column="ID" /> |
| | | <result property="fnumber" column="Fnumber" /> |
| | | <result property="fname" column="Fname" /> |
| | | <result property="writetime" column="WriteTime" /> |
| | |
| | | <mapper namespace="com.zy.third.mapper.ExdDepartmentMapper"> |
| | | |
| | | <resultMap id="BaseResultMap" type="com.zy.third.entity.ExdDepartment"> |
| | | <result property="id" column="ID" /> |
| | | <id property="id" column="ID" /> |
| | | <result property="fnumber" column="Fnumber" /> |
| | | <result property="fname" column="Fname" /> |
| | | <result property="writetime" column="WriteTime" /> |
| | |
| | | <mapper namespace="com.zy.third.mapper.ExdEmpMapper"> |
| | | |
| | | <resultMap id="BaseResultMap" type="com.zy.third.entity.ExdEmp"> |
| | | <result property="id" column="ID" /> |
| | | <id property="id" column="ID" /> |
| | | <result property="fnumber" column="Fnumber" /> |
| | | <result property="fname" column="Fname" /> |
| | | <result property="writetime" column="WriteTime" /> |
| | |
| | | <mapper namespace="com.zy.third.mapper.ExdInstockSourceMapper"> |
| | | |
| | | <resultMap id="BaseResultMap" type="com.zy.third.entity.ExdInstockSource"> |
| | | <id property="id" column="ID" /> |
| | | <result property="finterid" column="FInterID" /> |
| | | <result property="fbillno" column="FBillNo" /> |
| | | <result property="ftrantype" column="FTranType" /> |
| | |
| | | </resultMap> |
| | | |
| | | <sql id="Base_Column_List"> |
| | | FInterID,FBillNo,FTranType,FDate,FROB,FDeptID, |
| | | FSupplyID,FBillerID,FEntryID,FItemID,FQty, |
| | | Fprice,FBatchNo,FUnitID,FSourceBillNo,FSourceEntryID, |
| | | FSourceInterId,FSourceTranType,FDCSPID,FDCStockID,FOrderBillNo, |
| | | FOrderEntryID,FOrderInterID,FPlanMode,WriteTime,Writor, |
| | | Status,ReadTime,Reador,WritorMsg,ReadorMsg |
| | | ID,FInterID,FBillNo,FTranType,FDate,FROB, |
| | | FDeptID,FSupplyID,FBillerID,FEntryID,FItemID, |
| | | FQty,Fprice,FBatchNo,FUnitID,FSourceBillNo, |
| | | FSourceEntryID,FSourceInterId,FSourceTranType,FDCSPID,FDCStockID, |
| | | FOrderBillNo,FOrderEntryID,FOrderInterID,FPlanMode,WriteTime, |
| | | Writor,Status,ReadTime,Reador,WritorMsg, |
| | | ReadorMsg |
| | | </sql> |
| | | |
| | | |
| | | <select id="listOrderNo" resultMap="BaseResultMap"> |
| | | select top 100 distinct FBillNo |
| | | <include refid="Base_Column_List" /> |
| | | <select id="listOrderNo" resultType="java.lang.String"> |
| | | select distinct fbillno |
| | | from Exd_Instock_Source |
| | | where status = 0 |
| | | </select> |
| | | |
| | | <select id="listAll" resultMap="BaseResultMap"> |
| | | select |
| | | <include refid="Base_Column_List" /> |
| | | from Exd_Instock_Source |
| | | where FBillNo = #{fbillno} |
| | | |
| | | <select id="listAll" resultType="com.zy.third.entity.ExdInstockSource"> |
| | | select * from Exd_Instock_Source where fbillno = #{orderNo} |
| | | </select> |
| | | |
| | | |
| | | </mapper> |
| | |
| | | <mapper namespace="com.zy.third.mapper.ExdInstockTargetMapper"> |
| | | |
| | | <resultMap id="BaseResultMap" type="com.zy.third.entity.ExdInstockTarget"> |
| | | <id property="id" column="ID" /> |
| | | <result property="finterid" column="FInterID" /> |
| | | <result property="fbillno" column="FBillNo" /> |
| | | <result property="ftrantype" column="FTranType" /> |
| | |
| | | </resultMap> |
| | | |
| | | <sql id="Base_Column_List"> |
| | | FInterID,FBillNo,FTranType,FDate,FROB,FUserID, |
| | | FDeptID,FSupplyID,FBillerID,FFManagerID,FSManagerID, |
| | | FEntryID,FItemID,FQty,Fprice,FBatchNo, |
| | | FUnitID,FSourceBillNo,FSourceEntryID,FSourceInterId,FSourceTranType, |
| | | FDCSPID,FDCStockID,FOrderBillNo,FOrderEntryID,FOrderInterID, |
| | | FPlanMode,Barcode,Gross,Width,Defects, |
| | | BackCode,WriteTime,Writor,Status,ReadTime, |
| | | Reador,WritorMsg,ReadorMsg |
| | | ID,FInterID,FBillNo,FTranType,FDate,FROB, |
| | | FUserID,FDeptID,FSupplyID,FBillerID,FFManagerID, |
| | | FSManagerID,FEntryID,FItemID,FQty,Fprice, |
| | | FBatchNo,FUnitID,FSourceBillNo,FSourceEntryID,FSourceInterId, |
| | | FSourceTranType,FDCSPID,FDCStockID,FOrderBillNo,FOrderEntryID, |
| | | FOrderInterID,FPlanMode,Barcode,Gross,Width, |
| | | Defects,BackCode,WriteTime,Writor,Status, |
| | | ReadTime,Reador,WritorMsg,ReadorMsg |
| | | </sql> |
| | | </mapper> |
| | |
| | | <mapper namespace="com.zy.third.mapper.ExdMaterialMapper"> |
| | | |
| | | <resultMap id="BaseResultMap" type="com.zy.third.entity.ExdMaterial"> |
| | | <result property="id" column="ID" /> |
| | | <result property="fnumber" column="Fnumber" /> |
| | | <result property="fname" column="Fname" /> |
| | | <result property="fmodel" column="Fmodel" /> |
| | | <result property="writetime" column="WriteTime" /> |
| | | <result property="writor" column="Writor" /> |
| | | <result property="status" column="Status" /> |
| | | <result property="readtime" column="ReadTime" /> |
| | | <result property="reador" column="Reador" /> |
| | | <result property="writormsg" column="WritorMsg" /> |
| | | <result property="readormsg" column="ReadorMsg" /> |
| | | <id property="id" column="ID"/> |
| | | <result property="fnumber" column="Fnumber"/> |
| | | <result property="fname" column="Fname"/> |
| | | <result property="fmodel" column="Fmodel"/> |
| | | <result property="writetime" column="WriteTime"/> |
| | | <result property="writor" column="Writor"/> |
| | | <result property="status" column="Status"/> |
| | | <result property="readtime" column="ReadTime"/> |
| | | <result property="reador" column="Reador"/> |
| | | <result property="writormsg" column="WritorMsg"/> |
| | | <result property="readormsg" column="ReadorMsg"/> |
| | | </resultMap> |
| | | |
| | | <sql id="Base_Column_List"> |
| | | ID,Fnumber,Fname,Fmodel,WriteTime,Writor, |
| | | ID |
| | | ,Fnumber,Fname,Fmodel,WriteTime,Writor, |
| | | Status,ReadTime,Reador,WritorMsg,ReadorMsg |
| | | </sql> |
| | | |
| | | |
| | | <select id="listAll" resultMap="BaseResultMap"> |
| | | select top 200 |
| | | <include refid="Base_Column_List" /> |
| | | <select id="listAll" resultType="com.zy.third.entity.ExdMaterial"> |
| | | select top 100 * |
| | | from Exd_Material |
| | | where status = 0 |
| | | </select> |
| | | |
| | | <select id="getBacode" resultType="com.zy.third.entity.ExdvYanbu" parameterType="string"> |
| | | SELECT top 1 * |
| | | FROM [Textile].[trade].[TianfuQcResult] |
| | | where Barcode = #{barcode} |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | <mapper namespace="com.zy.third.mapper.ExdOutstockSourceMapper"> |
| | | |
| | | <resultMap id="BaseResultMap" type="com.zy.third.entity.ExdOutstockSource"> |
| | | <id property="id" column="ID" /> |
| | | <result property="finterid" column="FInterID" /> |
| | | <result property="fbillno" column="FBillNo" /> |
| | | <result property="ftrantype" column="FTranType" /> |
| | |
| | | </resultMap> |
| | | |
| | | <sql id="Base_Column_List"> |
| | | FInterID,FBillNo,FTranType,FDate,FROB,FDeptID, |
| | | FSupplyID,FBillerID,FEntryID,FItemID,FQty, |
| | | Fprice,FBatchNo,FUnitID,FSourceBillNo,FSourceEntryID, |
| | | FSourceInterId,FSourceTranType,FDCSPID,FDCStockID,FSCSPID, |
| | | FSCStockID,FOrderBillNo,FOrderEntryID,FOrderInterID,FPlanMode, |
| | | WriteTime,Writor,Status,ReadTime,Reador, |
| | | WritorMsg,ReadorMsg |
| | | ID,FInterID,FBillNo,FTranType,FDate,FROB, |
| | | FDeptID,FSupplyID,FBillerID,FEntryID,FItemID, |
| | | FQty,Fprice,FBatchNo,FUnitID,FSourceBillNo, |
| | | FSourceEntryID,FSourceInterId,FSourceTranType,FDCSPID,FDCStockID, |
| | | FSCSPID,FSCStockID,FOrderBillNo,FOrderEntryID,FOrderInterID, |
| | | FPlanMode,WriteTime,Writor,Status,ReadTime, |
| | | Reador,WritorMsg,ReadorMsg |
| | | </sql> |
| | | |
| | | <select id="listOrderNo" resultMap="BaseResultMap"> |
| | | select top 100 distinct FBillNo |
| | | <include refid="Base_Column_List" /> |
| | | from Exd_Instock_Source |
| | | where status = 0 |
| | | |
| | | <select id="listOrderNo" resultType="java.lang.String"> |
| | | select distinct fbillno |
| | | from Exd_Outstock_Source |
| | | where status = 0 |
| | | </select> |
| | | |
| | | |
| | | <select id="listAll" resultMap="BaseResultMap"> |
| | | select |
| | | <include refid="Base_Column_List" /> |
| | | from Exd_Outstock_Source |
| | | where FBillNo = #{fbillno} |
| | | <select id="listAll" resultType="com.zy.third.entity.ExdOutstockSource"> |
| | | select * from Exd_Outstock_Source where fbillno = #{orderNo} |
| | | </select> |
| | | |
| | | |
| | | </mapper> |
| | |
| | | <mapper namespace="com.zy.third.mapper.ExdOutstockTargetMapper"> |
| | | |
| | | <resultMap id="BaseResultMap" type="com.zy.third.entity.ExdOutstockTarget"> |
| | | <id property="id" column="ID" /> |
| | | <result property="finterid" column="FInterID" /> |
| | | <result property="fbillno" column="FBillNo" /> |
| | | <result property="ftrantype" column="FTranType" /> |
| | |
| | | </resultMap> |
| | | |
| | | <sql id="Base_Column_List"> |
| | | FInterID,FBillNo,FTranType,FDate,FROB,FUserID, |
| | | FDeptID,FSupplyID,FBillerID,FEntryID,FItemID, |
| | | FQtyMust,FQty,Fprice,FBatchNo,FUnitID, |
| | | FSourceBillNo,FSourceEntryID,FSourceInterId,FSourceTranType,FDCSPID, |
| | | FDCStockID,FSCSPID,FSCStockID,FOrderBillNo,FOrderEntryID, |
| | | FOrderInterID,FPlanMode,Barcode,Gross,Width, |
| | | Defects,BackCode,WriteTime,Writor,Status, |
| | | ReadTime,Reador,WritorMsg,ReadorMsg |
| | | ID,FInterID,FBillNo,FTranType,FDate,FROB, |
| | | FUserID,FDeptID,FSupplyID,FBillerID,FEntryID, |
| | | FItemID,FQtyMust,FQty,Fprice,FBatchNo, |
| | | FUnitID,FSourceBillNo,FSourceEntryID,FSourceInterId,FSourceTranType, |
| | | FDCSPID,FDCStockID,FSCSPID,FSCStockID,FOrderBillNo, |
| | | FOrderEntryID,FOrderInterID,FPlanMode,Barcode,Gross, |
| | | Width,Defects,BackCode,WriteTime,Writor, |
| | | Status,ReadTime,Reador,WritorMsg,ReadorMsg |
| | | </sql> |
| | | |
| | | |
| | | |
| | | </mapper> |
| | |
| | | <mapper namespace="com.zy.third.mapper.ExdSupplierMapper"> |
| | | |
| | | <resultMap id="BaseResultMap" type="com.zy.third.entity.ExdSupplier"> |
| | | <result property="id" column="ID" /> |
| | | <id property="id" column="ID" /> |
| | | <result property="fnumber" column="Fnumber" /> |
| | | <result property="fname" column="Fname" /> |
| | | <result property="writetime" column="WriteTime" /> |
| | |
| | | <mapper namespace="com.zy.third.mapper.ExdUserMapper"> |
| | | |
| | | <resultMap id="BaseResultMap" type="com.zy.third.entity.ExdUser"> |
| | | <result property="id" column="ID" /> |
| | | <result property="name" column="Name" /> |
| | | <result property="writetime" column="WriteTime" /> |
| | | <result property="writor" column="Writor" /> |
| | | <result property="status" column="Status" /> |
| | | <result property="readtime" column="ReadTime" /> |
| | | <result property="reador" column="Reador" /> |
| | | <result property="writormsg" column="WritorMsg" /> |
| | | <result property="readormsg" column="ReadorMsg" /> |
| | | <id property="id" column="ID"/> |
| | | <result property="name" column="Name"/> |
| | | <result property="writetime" column="WriteTime"/> |
| | | <result property="writor" column="Writor"/> |
| | | <result property="status" column="Status"/> |
| | | <result property="readtime" column="ReadTime"/> |
| | | <result property="reador" column="Reador"/> |
| | | <result property="writormsg" column="WritorMsg"/> |
| | | <result property="readormsg" column="ReadorMsg"/> |
| | | </resultMap> |
| | | |
| | | <sql id="Base_Column_List"> |
| | | ID,Name,WriteTime,Writor,Status,ReadTime, |
| | | ID |
| | | ,Name,WriteTime,Writor,Status,ReadTime, |
| | | Reador,WritorMsg,ReadorMsg |
| | | </sql> |
| | | |
| | | |
| | | <select id="listAll" resultMap="BaseResultMap"> |
| | | select |
| | | <include refid="Base_Column_List" /> |
| | | <select id="listAll" resultType="com.zy.third.entity.ExdUser"> |
| | | select top 100 * |
| | | from Exd_User |
| | | where status = 0 |
| | | </select> |
| | | |
| | | |
| | | </mapper> |
| | |
| | | <input name="mobile" placeholder="请输入手机号" class="layui-input" lay-vertype="tips" lay-verify="required" required=""> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">邮箱</label> |
| | | <div class="layui-input-block"> |
| | | <input name="email" placeholder="请输入邮箱" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="layui-form-item">--> |
| | | <!-- <label class="layui-form-label">邮箱</label>--> |
| | | <!-- <div class="layui-input-block">--> |
| | | <!-- <input name="email" placeholder="请输入邮箱" class="layui-input">--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | |
| | | </div> |
| | | </div> |