| | |
| | | import com.core.common.DateUtils; |
| | | import com.core.common.R; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.entity.ManLocDetl; |
| | | import com.zy.asrs.entity.Node; |
| | | import com.zy.asrs.entity.param.InitPakoutParam; |
| | | import com.zy.asrs.entity.param.PakinParam; |
| | | import com.zy.asrs.entity.result.KeyValueVo; |
| | | import com.zy.asrs.mapper.ManLocDetlMapper; |
| | | import com.zy.asrs.service.NodeService; |
| | | import com.zy.common.entity.NodeExcel; |
| | | import com.zy.common.entity.NodeExcelListener; |
| | |
| | | import java.net.URLEncoder; |
| | | import java.util.*; |
| | | |
| | | import static jdk.nashorn.api.scripting.ScriptUtils.convert; |
| | | |
| | | @RestController |
| | | public class NodeController extends BaseController { |
| | | |
| | |
| | | private NodeService nodeService; |
| | | @Autowired |
| | | private TreeUtils treeUtils; |
| | | @Autowired |
| | | private ManLocDetlMapper manLocDetlMapper; |
| | | |
| | | @RequestMapping(value = "/node/{id}/auth") |
| | | @ManagerAuth |
| | |
| | | |
| | | @RequestMapping(value = "/node/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<String, Object> param){ |
| | | 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<String, Object> param) { |
| | | EntityWrapper<Node> wrapper = new EntityWrapper<>(); |
| | | excludeTrash(param); |
| | | convert(param, wrapper); |
| | | hostEq(wrapper); |
| | | if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} |
| | | if (!Cools.isEmpty(orderByField)) { |
| | | wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType)); |
| | | } |
| | | return R.ok(nodeService.selectPage(new Page<>(curr, limit), wrapper)); |
| | | } |
| | | |
| | | @RequestMapping(value = "/node/list/tree/auth") |
| | | @ManagerAuth |
| | | public R listTree(@RequestParam(defaultValue = "1")Integer curr, |
| | | @RequestParam(defaultValue = "10")Integer limit, |
| | | @RequestParam(required = false)String orderByField, |
| | | @RequestParam(required = false)String orderByType, |
| | | @RequestParam Map<String, Object> param){ |
| | | public R listTree(@RequestParam(defaultValue = "1") Integer curr, |
| | | @RequestParam(defaultValue = "10") Integer limit, |
| | | @RequestParam(required = false) String orderByField, |
| | | @RequestParam(required = false) String orderByType, |
| | | @RequestParam Map<String, Object> param) { |
| | | EntityWrapper<Node> wrapper = new EntityWrapper<>(); |
| | | excludeTrash(param); |
| | | convert(param, wrapper); |
| | | hostEq(wrapper); |
| | | if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} |
| | | if (!Cools.isEmpty(orderByField)) { |
| | | wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType)); |
| | | } |
| | | return R.parse("0-操作成功").add(nodeService.selectList(wrapper)); |
| | | } |
| | | |
| | | @RequestMapping(value = "/node/tree/auth") |
| | | @ManagerAuth |
| | | public R tree(@RequestParam(defaultValue = "1")Integer curr, |
| | | @RequestParam(defaultValue = "10")Integer limit, |
| | | @RequestParam(required = false)String orderByField, |
| | | @RequestParam(required = false)String orderByType, |
| | | @RequestParam Map<String, Object> param){ |
| | | public R tree(@RequestParam(defaultValue = "1") Integer curr, |
| | | @RequestParam(defaultValue = "10") Integer limit, |
| | | @RequestParam(required = false) String orderByField, |
| | | @RequestParam(required = false) String orderByType, |
| | | @RequestParam Map<String, Object> param) { |
| | | EntityWrapper<Node> wrapper = new EntityWrapper<>(); |
| | | excludeTrash(param); |
| | | convert(param, wrapper); |
| | | hostEq(wrapper); |
| | | if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} |
| | | if (!Cools.isEmpty(orderByField)) { |
| | | wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType)); |
| | | } |
| | | return R.parse("0-操作成功").add(nodeService.selectList(wrapper)); |
| | | } |
| | | |
| | | private void convert(Map<String, Object> map, EntityWrapper wrapper){ |
| | | for (Map.Entry<String, Object> entry : map.entrySet()){ |
| | | private void convert(Map<String, Object> map, EntityWrapper wrapper) { |
| | | for (Map.Entry<String, Object> entry : map.entrySet()) { |
| | | String val = String.valueOf(entry.getValue()); |
| | | if (val.contains(RANGE_TIME_LINK)){ |
| | | if (val.contains(RANGE_TIME_LINK)) { |
| | | String[] dates = val.split(RANGE_TIME_LINK); |
| | | wrapper.ge(entry.getKey(), DateUtils.convert(dates[0])); |
| | | wrapper.le(entry.getKey(), DateUtils.convert(dates[1])); |
| | |
| | | if (node.getType() != 1) { |
| | | Node parentNode = nodeService.selectById(node.getParentId()); |
| | | if (parentNode == null || parentNode.getStatus() == 0) { |
| | | return R.error(node.getType()==2?"所属仓库不存在":"所属库区不存在"); |
| | | return R.error(node.getType() == 2 ? "所属仓库不存在" : "所属库区不存在"); |
| | | } |
| | | node.setParentName(parentNode.getName()); |
| | | node.setLevel(parentNode.getLevel() + 1); |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | @RequestMapping(value = "/node/update/auth") |
| | | @ManagerAuth |
| | | public R update(Node node){ |
| | | public R update(Node node) { |
| | | Node node1 = nodeService.selectByUuid(node.getName()); |
| | | if (!Cools.isEmpty(node1)) { |
| | | throw new CoolException("该编号/名称已存在"); |
| | | } |
| | | if (Cools.isEmpty(node) || null==node.getId()){ |
| | | if (Cools.isEmpty(node) || null == node.getId()) { |
| | | return R.error(); |
| | | } |
| | | if (node.getType() != 1) { |
| | | Node parentNode = nodeService.selectById(node.getParentId()); |
| | | if (parentNode == null || parentNode.getStatus() == 0) { |
| | | return R.error(node.getType()==2?"所属仓库不存在":"所属库区不存在"); |
| | | return R.error(node.getType() == 2 ? "所属仓库不存在" : "所属库区不存在"); |
| | | } |
| | | node.setParentName(parentNode.getName()); |
| | | node.setLevel(parentNode.getLevel() + 1); |
| | |
| | | node.setNamePath(nodeUtils.pathName.toString()); |
| | | node.setUuid(node.getName()); |
| | | |
| | | manLocDetlMapper.updateLocNo0(node.getId(),node.getName()); |
| | | node.setUpdateBy(getUserId()); |
| | | node.setUpdateTime(new Date()); |
| | | nodeService.updateById(node); |
| | |
| | | |
| | | @RequestMapping(value = "/node/delete/auth") |
| | | @ManagerAuth |
| | | public R delete(@RequestParam String param){ |
| | | public R delete(@RequestParam String param) { |
| | | List<Node> list = JSONArray.parseArray(param, Node.class); |
| | | if (Cools.isEmpty(list)){ |
| | | if (Cools.isEmpty(list)) { |
| | | return R.error(); |
| | | } |
| | | for (Node entity : list){ |
| | | for (Node entity : list) { |
| | | nodeService.delete(new EntityWrapper<>(entity)); |
| | | } |
| | | return R.ok(); |
| | |
| | | |
| | | @RequestMapping(value = "/node/delete0/auth") |
| | | @ManagerAuth |
| | | public R delete(@RequestParam(value="ids[]") Long[] ids){ |
| | | for (Long id : ids){ |
| | | public R delete(@RequestParam(value = "ids[]") Long[] ids) { |
| | | for (Long id : ids) { |
| | | nodeService.deleteById(id); |
| | | } |
| | | return R.ok(); |
| | |
| | | |
| | | @RequestMapping(value = "/node/export/auth") |
| | | @ManagerAuth |
| | | public R export(@RequestBody JSONObject param){ |
| | | public R export(@RequestBody JSONObject param) { |
| | | EntityWrapper<Node> wrapper = new EntityWrapper<>(); |
| | | List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class); |
| | | Map<String, Object> map = excludeTrash(param.getJSONObject("node")); |
| | |
| | | hostEq(wrapper); |
| | | Page<Node> page = nodeService.selectPage(new Page<>(0, 10), wrapper); |
| | | List<Map<String, Object>> result = new ArrayList<>(); |
| | | for (Node node : page.getRecords()){ |
| | | for (Node node : page.getRecords()) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("id", node.getId()); |
| | | map.put("value", node.getUuid() + "(" +node.getName()+ ")"); |
| | | map.put("value", node.getUuid() + "(" + node.getName() + ")"); |
| | | result.add(map); |
| | | } |
| | | return R.ok(result); |
| | |
| | | @ManagerAuth |
| | | public R query(@RequestBody JSONObject param) { |
| | | Wrapper<Node> wrapper = new EntityWrapper<Node>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val")); |
| | | if (null != nodeService.selectOne(wrapper)){ |
| | | if (null != nodeService.selectOne(wrapper)) { |
| | | return R.parse(BaseRes.REPEAT).add(getComment(Node.class, String.valueOf(param.get("key")))); |
| | | } |
| | | return R.ok(); |
| | |
| | | public R nodeExcelImport(MultipartFile file) throws IOException { |
| | | NodeExcelListener listener = new NodeExcelListener(getUserId(), getHostId()); |
| | | EasyExcel.read(file.getInputStream(), NodeExcel.class, listener).sheet().doRead(); |
| | | return R.ok("成功同步"+listener.getTotal()+"个货位"); |
| | | return R.ok("成功同步" + listener.getTotal() + "个货位"); |
| | | } |
| | | |
| | | /*************************************** 入库出相关 ***********************************************/ |
| | | |
| | | @RequestMapping("/work/stock/pakin") |
| | | @ManagerAuth(memo = "入库") |
| | | public R stockPakin(@RequestBody PakinParam number) { |
| | | return nodeService.stockPakin(number, getUserId(), getHostId()); |
| | | } |
| | | |
| | | @RequestMapping("/work/stock/pakout") |
| | | @ManagerAuth(memo = "出库") |
| | | public R initPakout(@RequestBody List<InitPakoutParam> params) { |
| | | return nodeService.initPakout(params, getUserId(), getHostId()); |
| | | } |
| | | |
| | | @PostMapping(value = "/work/empty/stock") |
| | | public R getGroupEmptyStock(@RequestParam(required = false) String sourceLocNo) { |
| | | List<Node> allEmptys = nodeService.selectList(new EntityWrapper<Node>() |
| | | .eq("type","3")); |
| | | .eq("type", "3")); |
| | | return R.ok().add(allEmptys); |
| | | } |
| | | @RequestMapping("/work/move/start") |
| | | @ManagerAuth(memo = "库位移转") |
| | | public R locMoveStart(@RequestParam String sourceLocNo, |
| | | @RequestParam String targetLocNo) { |
| | | nodeService.locMove(sourceLocNo, targetLocNo, getUserId()); |
| | | return R.ok("移库启动成功"); |
| | | } |
| | | |
| | | |
| | | |
| | | @RequestMapping(value = "/node/select/{id}/auth") |
| | | @ManagerAuth |
| | | public R getById(@PathVariable("id") String id) { |
| | | Node node = nodeService.selectOne(new EntityWrapper<Node>() |
| | | .eq("uuid",id)); |
| | | .eq("uuid", id)); |
| | | return R.ok(node); |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | @RequestMapping(value = "/node/all/get/loc") |
| | | public R getarea(){ |
| | | public R getarea() { |
| | | EntityWrapper<Node> nodeEntityWrapper = new EntityWrapper<>(); |
| | | nodeEntityWrapper.eq("type",2); |
| | | nodeEntityWrapper.eq("type", 2); |
| | | List<Node> list = nodeService.selectList(nodeEntityWrapper); |
| | | List<KeyValueVo> keyValueVoList = new ArrayList<>(); |
| | | for (Node node : list){ |
| | | for (Node node : list) { |
| | | KeyValueVo vo = new KeyValueVo(); |
| | | vo.setName(node.getName()); |
| | | vo.setValue(node.getId()); |
| | |
| | | Integer value = param.getInteger("value"); |
| | | Integer num = param.getInteger("startRow"); |
| | | EntityWrapper<Node> nodeEntityWrapper = new EntityWrapper<>(); |
| | | nodeEntityWrapper.eq("id",value); |
| | | nodeEntityWrapper.eq("name",area); |
| | | nodeEntityWrapper.eq("id", value); |
| | | nodeEntityWrapper.eq("name", area); |
| | | Node node = nodeService.selectOne(nodeEntityWrapper); |
| | | String[] string = node.getNamePath().split(","); |
| | | for (int i = 1; i <= num; i++) { |
| | | String locNo =area + String.format("%04d", i); |
| | | String locNo = area + String.format("%04d", i); |
| | | String uuid = String.valueOf(System.currentTimeMillis()); |
| | | Date now = new Date(); |
| | | Date now = new Date(); |
| | | Node node1 = new Node(); |
| | | node1.setUuid(uuid); |
| | | node1.setName(locNo); |
| | | node1.setParentId(node.getId()); |
| | | node1.setParentName(node.getName()); |
| | | node1.setType(3); |
| | | node1.setPath(node.getPath()+","+node.getId()); |
| | | node1.setNamePath(node.getNamePath()+","+node.getName()); |
| | | node1.setPath(node.getPath() + "," + node.getId()); |
| | | node1.setNamePath(node.getNamePath() + "," + node.getName()); |
| | | node1.setLevel(3); |
| | | node1.setStatus(1); |
| | | node1.setCreateBy(getUserId()); |
| | | node1.setCreateTime(now); |
| | | node1.setUpdateBy(getUserId()); |
| | | node1.setUpdateTime(now); |
| | | if (!nodeService.insert(node1)){ |
| | | if (!nodeService.insert(node1)) { |
| | | return R.error("数据插入失败"); |
| | | } |
| | | } |