package com.zy.asrs.controller; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.core.annotations.ManagerAuth; import com.core.common.Cools; import com.core.common.DateUtils; import com.core.common.R; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.LocDetlAdjustParam; import com.zy.asrs.service.LocCheckService; import com.zy.asrs.service.LocDetlService; import com.zy.asrs.service.ManLocDetlService; import com.zy.asrs.service.MatService; import com.zy.common.web.BaseController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; import java.util.List; import java.util.Map; @RestController public class ManLocDetlController extends BaseController { @Autowired private ManLocDetlService manLocDetlService; @Autowired private LocDetlService locDetlService; @Autowired private MatService matService; @Autowired private LocCheckService locCheckService; @RequestMapping(value = "/manlocDetl/orderNo") @ManagerAuth public R locNoList(@RequestParam String orderNo){ if (Cools.isEmpty(orderNo)){ return R.error("无数据"); } List list = locCheckService.selectList(new EntityWrapper().eq("order_no", orderNo)); return R.ok(list); } @RequestMapping(value = "/manLocDetl/list/auth") @ManagerAuth public R list(@RequestParam(defaultValue = "1")Integer curr, @RequestParam(defaultValue = "10")Integer limit, @RequestParam(required = false)String orderByField, @RequestParam(required = false)String orderByType, @RequestParam Map param){ Long hostId = getHostId(); if (hostId != null) { param.put("host_id", hostId); } Object nodeId = param.get("node_id"); if (Cools.isEmpty(nodeId)) { nodeId = getOriginNode().getId(); param.put("node_id", String.valueOf(nodeId)); } Object tagId = param.get("tag_id"); if (Cools.isEmpty(tagId)) { tagId = getOriginTag().getId(); param.put("tag_id", String.valueOf(tagId)); } if (!Cools.isEmpty(param.get("update_time"))){ String val = String.valueOf(param.get("update_time")); if (val.contains(RANGE_TIME_LINK)) { String[] dates = val.split(RANGE_TIME_LINK); param.put("startTime", DateUtils.convert(dates[0])); param.put("endTime", DateUtils.convert(dates[1])); param.remove("update_time"); } } Page page = manLocDetlService.getPage(toPage(curr, limit, param, ManLocDetl.class)); return R.ok(page); } @RequestMapping("/manLocDetl/list") public R outList(@RequestParam(defaultValue = "1")Integer curr, @RequestParam(defaultValue = "10")Integer limit, @RequestParam(required = false)String orderByField, @RequestParam(required = false)String orderByType, @RequestParam Map param){ Page manLocDetlPage = toPage(curr, limit, param, ManLocDetl.class); Page outPage = manLocDetlService.getOutPage(manLocDetlPage); // Page page = manLocDetlService.getPage(manLocDetlPage); return R.ok(outPage); } @RequestMapping("/manLocDetl/adjust/start") @ManagerAuth(memo = "库存调整") public R locDetlAdjustStart(@RequestBody LocDetlAdjustParam param) { manLocDetlService.adjustLocDetl(param, getUserId(),getUser()); return R.ok("库存调整成功"); } @RequestMapping(value = "/manLocDetl/asrsAndSaas/list") @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, @RequestParam Map param){ Page manLocDetlPage = toPage(curr, limit, param, ManLocDetl.class); Page all = manLocDetlService.selectAllPage(manLocDetlPage); return R.ok().add(all); } private void convert(Map map, EntityWrapper wrapper){ for (Map.Entry entry : map.entrySet()){ String val = String.valueOf(entry.getValue()); 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])); } else { if (entry.getKey().equals("locNo")) { wrapper.eq("loc_no", String.valueOf(entry.getValue())); } else { wrapper.like(entry.getKey(), String.valueOf(entry.getValue())); } } } } @RequestMapping(value = "/manlocDetl/statis/export") // @ManagerAuth public void statisExport(HttpServletResponse response) throws IOException { List list = manLocDetlService.selectAllWarning(); for (LocDetlWarningDTO locDetl : list) { Mat mat = matService.selectByMatnr(locDetl.getMatnr()); if (mat != null) { locDetl.sync(mat); } } response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("utf-8"); String fileName = URLEncoder.encode("库存预警明细", "UTF-8"); response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); EasyExcel.write(response.getOutputStream(), LocDetlWarningDTO.class) .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) .sheet("表1") .doWrite(list); } // @RequestMapping(value = "/manlocDetl/updateStockFreeze/auth") // @ManagerAuth(memo = "库位冻结") // public R updateStockFreeze(ManLocDetl manLocDetl){ // if (Cools.isEmpty(manLocDetl) || null==manLocDetl.getMatnr()){ // return R.error(); // } // manLocDetlService.updateStockFreeze(manLocDetl.getMatnr(), manLocDetl.getLocNo(), manLocDetl.getStockFreeze()); // return R.ok(); // } @RequestMapping(value = "/manlocDetl/updateStockFreeze") @ManagerAuth(memo = "库位冻结") public R updateStockFreeze(@RequestParam String param){ List list = JSONArray.parseArray(param, ManLocDetl.class); if (Cools.isEmpty(list)){ return R.error("无数据"); } for (ManLocDetl manLocDetl : list){ manLocDetl.setStockFreeze(0); if (manLocDetlService.updateStockFreeze(manLocDetl.getMatnr(), manLocDetl.getLocNo(), manLocDetl.getStockFreeze()) != 1){ return R.error(manLocDetl.getMatnr()+"冻结失败"); } } return R.ok("冻结成功"); } @RequestMapping(value = "/manlocDetl/updateStockDisFreeze") @ManagerAuth(memo = "库位解冻") public R updateStockDisFreeze(@RequestParam String param){ List list = JSONArray.parseArray(param, ManLocDetl.class); if (Cools.isEmpty(list)){ return R.error("无数据"); } for (ManLocDetl manLocDetl : list){ manLocDetl.setStockFreeze(1); if (manLocDetlService.updateStockFreeze(manLocDetl.getMatnr(), manLocDetl.getLocNo(), manLocDetl.getStockFreeze()) != 1){ return R.error(manLocDetl.getMatnr()+"解除冻结失败"); } } return R.ok("解除冻结成功"); } }