自动化立体仓库 - WMS系统
pang.jiabao
2025-02-20 831dbe10d1c0975b0de4251b67b939347b079006
src/main/java/com/zy/asrs/controller/OrderController.java
@@ -10,6 +10,7 @@
import com.core.common.*;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.DefinedExcelExportParam;
import com.zy.asrs.entity.param.OrderDomainParam;
import com.zy.asrs.entity.result.OrderDetlVo;
import com.zy.asrs.mapper.OrderDetlMapper;
@@ -19,6 +20,7 @@
import com.zy.common.web.BaseController;
import com.zy.system.entity.User;
import com.zy.system.service.UserService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
@@ -102,7 +104,7 @@
        // 订单表只存了操作人id,所以操作人姓名查询,只能从姓名先去找id,
        Object userName = param.get("oper_memb");
        if (userName != null && user.getRoleId() != 21) {
            List<User> users = userService.selectList(new EntityWrapper<User>().like("username", (String) param.get("oper_memb")));
            List<User> users = userService.selectList(new EntityWrapper<User>().eq("username", param.get("oper_memb")));
            if (users.size() > 0) {
                wrapper.in("create_by", users.stream().map(User::getId).collect(Collectors.toList()));
            }
@@ -322,7 +324,7 @@
                wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
                wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
            } else {
                wrapper.like(entry.getKey(), val);
                wrapper.eq(entry.getKey(), val);
            }
        }
    }
@@ -474,18 +476,78 @@
                .doWrite(orderDetlVos);
    }
    @PostMapping (value = "/order/exportAll/auth")
    @PostMapping (value = "/order/definedExcelExport/auth")
    @ManagerAuth
    public R export() {
    public void export(HttpServletResponse response, @RequestBody DefinedExcelExportParam definedExcelExportParam) throws IOException {
        User user = getUser();
        Long userId = null;
        if (user.getRoleId() != 2 && user.getRoleId() != 24) {
            userId = user.getId();
        EntityWrapper<OrderDetl> orderDetlEntityWrapper = new EntityWrapper<>();
        if ("all".equals(definedExcelExportParam.getType())) {
            DefinedExcelExportParam.QueryWhere queryWhere = definedExcelExportParam.getQueryWhere();
            EntityWrapper<Order> orderEntityWrapper = new EntityWrapper<>();
            // 限制销售角色只能看自己创建的单子(销售角色id固定21,不能随意修改)
            User user = getUser();
            if (user.getRoleId() != 2 && user.getRoleId() != 24) {
                orderEntityWrapper.eq("create_by", user.getId());
            }
            // 操作人:订单表只存了操作人id,所以操作人姓名查询,只能从姓名先去找id,
            Object userName = queryWhere.getOper_memb();
            if (userName != null && user.getRoleId() != 21) {
                List<User> users = userService.selectList(new EntityWrapper<User>().eq("username", queryWhere.getOper_memb()));
                if (users.size() > 0) {
                    orderEntityWrapper.in("create_by", users.stream().map(User::getId).collect(Collectors.toList()));
                }
            }
            // 订单编号
            if (!Cools.isEmpty(queryWhere.getOrder_no())) {
                orderEntityWrapper.eq("order_no", queryWhere.getOrder_no());
            }
            // 创建时间
            if (queryWhere.getCreate_time().contains(RANGE_TIME_LINK)) {
                String[] dates = queryWhere.getCreate_time().split(RANGE_TIME_LINK);
                orderEntityWrapper.ge("create_time", DateUtils.convert(dates[0]));
                orderEntityWrapper.le("create_time", DateUtils.convert(dates[1]));
            }
            // 单据类型
            if (!Cools.isEmpty(queryWhere.getDoc_type())) {
                orderEntityWrapper.eq("doc_type", queryWhere.getDoc_type());
            }
            // 单据状态
            if (!Cools.isEmpty(queryWhere.getSettle())) {
                orderEntityWrapper.eq("settle", queryWhere.getSettle());
            }
            // 客户名称
            if (!Cools.isEmpty(queryWhere.getCstmr_name())) {
                orderEntityWrapper.eq("cstmr_name", queryWhere.getCstmr_name());
            }
            // 未删除
            orderEntityWrapper.eq("status", 1);
            orderEntityWrapper.setSqlSelect("order_no as orderNo");
            List<Order> orderList = orderService.selectList(orderEntityWrapper);
            orderDetlEntityWrapper.in("order_no", orderList.stream().map(Order::getOrderNo).collect(Collectors.toList()));
        } else {
            orderDetlEntityWrapper.in("order_no", definedExcelExportParam.getOrderNoList());
        }
        List<OrderDetlExcelVo> orderDetlExcelVoList = orderDetlMapper.selectExportExcelAllDataList(userId);
        return R.ok(orderDetlExcelVoList);
        List<OrderDetl> list = orderDetlService.selectList(orderDetlEntityWrapper);
        List<OrderDetlExcelVo> orderDetlExcelVoList = new ArrayList<>();
        for (OrderDetl orderDetl : list) {
            OrderDetlExcelVo orderDetlExcelVo = new OrderDetlExcelVo();
            BeanUtils.copyProperties(orderDetl,orderDetlExcelVo);
            orderDetlExcelVoList.add(orderDetlExcelVo);
        }
        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(), OrderDetlExcelVo.class)
                .sheet("表1")
                .doWrite(orderDetlExcelVoList);
    }
    @RequestMapping(value = "/order/list/all")