parent
e4c579de67
commit
6cf7f19779
@ -0,0 +1,23 @@
|
||||
package com.chanko.yunxi.mes.module.heli.enums;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 发货单状态枚举
|
||||
* @author chenxi
|
||||
* @date 2024-01-26 12:38
|
||||
*/
|
||||
@Getter
|
||||
public enum DeliverOrderStatusEnum {
|
||||
|
||||
DEFAULT(1, "已保存"),
|
||||
FINISHED(2, "已发货");
|
||||
|
||||
private int code;
|
||||
private String description;
|
||||
|
||||
DeliverOrderStatusEnum(int code, String description) {
|
||||
this.code = code;
|
||||
this.description = description;
|
||||
}
|
||||
}
|
@ -0,0 +1,106 @@
|
||||
package com.chanko.yunxi.mes.module.heli.controller.admin.deliverorder;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
|
||||
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
|
||||
import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog;
|
||||
import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.deliverorder.vo.*;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder.DeliverOrderDO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverordersub.DeliverOrderSubDO;
|
||||
import com.chanko.yunxi.mes.module.heli.service.deliverorder.DeliverOrderService;
|
||||
|
||||
@Tag(name = "管理后台 - 发货订单")
|
||||
@RestController
|
||||
@RequestMapping("/heli/deliver-order")
|
||||
@Validated
|
||||
public class DeliverOrderController {
|
||||
|
||||
@Resource
|
||||
private DeliverOrderService deliverOrderService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建发货订单")
|
||||
@PreAuthorize("@ss.hasPermission('heli:deliver-order:create')")
|
||||
public CommonResult<Long> createDeliverOrder(@Valid @RequestBody DeliverOrderSaveReqVO createReqVO) {
|
||||
return success(deliverOrderService.createDeliverOrder(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新发货订单")
|
||||
@PreAuthorize("@ss.hasPermission('heli:deliver-order:update')")
|
||||
public CommonResult<Boolean> updateDeliverOrder(@Valid @RequestBody DeliverOrderSaveReqVO updateReqVO) {
|
||||
deliverOrderService.updateDeliverOrder(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除发货订单")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('heli:deliver-order:delete')")
|
||||
public CommonResult<Boolean> deleteDeliverOrder(@RequestParam("id") Long id) {
|
||||
deliverOrderService.deleteDeliverOrder(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得发货订单")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('heli:deliver-order:query')")
|
||||
public CommonResult<DeliverOrderRespVO> getDeliverOrder(@RequestParam("id") Long id) {
|
||||
DeliverOrderDO deliverOrder = deliverOrderService.getDeliverOrder(id);
|
||||
return success(BeanUtils.toBean(deliverOrder, DeliverOrderRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得发货订单分页")
|
||||
@PreAuthorize("@ss.hasPermission('heli:deliver-order:query')")
|
||||
public CommonResult<PageResult<DeliverOrderRespVO>> getDeliverOrderPage(@Valid DeliverOrderPageReqVO pageReqVO) {
|
||||
PageResult<DeliverOrderDO> pageResult = deliverOrderService.getDeliverOrderPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, DeliverOrderRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出发货订单 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('heli:deliver-order:export')")
|
||||
@OperateLog(type = EXPORT)
|
||||
public void exportDeliverOrderExcel(@Valid DeliverOrderPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<DeliverOrderDO> list = deliverOrderService.getDeliverOrderPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "发货订单.xls", "数据", DeliverOrderRespVO.class,
|
||||
BeanUtils.toBean(list, DeliverOrderRespVO.class));
|
||||
}
|
||||
|
||||
// ==================== 子表(发货订单子项) ====================
|
||||
|
||||
@GetMapping("/deliver-order-sub/list-by-delivery-order-id")
|
||||
@Operation(summary = "获得发货订单子项列表")
|
||||
@Parameter(name = "deliveryOrderId", description = "订单id")
|
||||
@PreAuthorize("@ss.hasPermission('heli:deliver-order:query')")
|
||||
public CommonResult<List<DeliverOrderSubDO>> getDeliverOrderSubListByDeliveryOrderId(@RequestParam("deliveryOrderId") Long deliveryOrderId) {
|
||||
return success(deliverOrderService.getDeliverOrderSubListByDeliveryOrderId(deliveryOrderId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
package com.chanko.yunxi.mes.module.heli.dal.mysql.deliverorder;
|
||||
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
import com.chanko.yunxi.mes.framework.common.util.collection.ArrayUtils;
|
||||
import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.deliverorder.vo.DeliverOrderPageReqVO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.customer.CustomerDO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder.DeliverOrderDO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderDO;
|
||||
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
|
||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
/**
|
||||
* 发货订单 Mapper
|
||||
*
|
||||
* @author 管理员
|
||||
*/
|
||||
@Mapper
|
||||
public interface DeliverOrderMapper extends BaseMapperX<DeliverOrderDO> {
|
||||
|
||||
default PageResult<DeliverOrderDO> selectPage(DeliverOrderPageReqVO reqVO) {
|
||||
MPJLambdaWrapper<DeliverOrderDO> query = new MPJLambdaWrapper<>();
|
||||
query.selectAll(DeliverOrderDO.class)
|
||||
.select("u.nickname as deliverPersonName", "e.name as customerName")
|
||||
.select("GROUP_CONCAT(distinct p.code) as saleOrderCode", "GROUP_CONCAT(distinct p.mould_name) as mouldName"
|
||||
, "GROUP_CONCAT(distinct p.contract_no) as contractNo", "GROUP_CONCAT(distinct p.property) as property")
|
||||
.leftJoin("project_sale_order p on FIND_IN_SET(p.id, t.sale_order_ids)")
|
||||
.leftJoin(AdminUserDO.class, "u", AdminUserDO::getId, DeliverOrderDO::getDeliverPerson)
|
||||
.leftJoin(CustomerDO.class, "e", CustomerDO::getId, DeliverOrderDO::getCustomerId)
|
||||
.groupBy(DeliverOrderDO::getId)
|
||||
.orderByDesc(DeliverOrderDO::getId)
|
||||
.disableSubLogicDel();
|
||||
query.like(!StringUtils.isEmpty(reqVO.getCode()), DeliverOrderDO::getCode, reqVO.getCode())
|
||||
.like(!StringUtils.isEmpty(reqVO.getSaleOrderCode()), ProjectOrderDO::getCode, reqVO.getSaleOrderCode())
|
||||
.like(!StringUtils.isEmpty(reqVO.getCustomerName()), CustomerDO::getName, reqVO.getCustomerName())
|
||||
.like(!StringUtils.isEmpty(reqVO.getMouldName()), ProjectOrderDO::getMouldName, reqVO.getMouldName())
|
||||
.between(reqVO.getDeliverDate() != null && reqVO.getDeliverDate().length == 2,
|
||||
DeliverOrderDO::getDeliverDate, ArrayUtils.get(reqVO.getDeliverDate(), 0), ArrayUtils.get(reqVO.getDeliverDate(), 1))
|
||||
.eq(reqVO.getDeliverStatus() != null, DeliverOrderDO::getDeliverStatus, reqVO.getDeliverStatus());
|
||||
return selectPage(reqVO, query);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
package com.chanko.yunxi.mes.module.heli.dal.mysql.deliverordersub;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
|
||||
import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverordersub.DeliverOrderSubDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* 发货订单子项 Mapper
|
||||
*
|
||||
* @author 管理员
|
||||
*/
|
||||
@Mapper
|
||||
public interface DeliverOrderSubMapper extends BaseMapperX<DeliverOrderSubDO> {
|
||||
|
||||
default List<DeliverOrderSubDO> selectListByDeliveryOrderId(Long deliveryOrderId) {
|
||||
return selectList(DeliverOrderSubDO::getDeliveryOrderId, deliveryOrderId);
|
||||
}
|
||||
|
||||
default int deleteByDeliveryOrderId(Long deliveryOrderId) {
|
||||
return delete(DeliverOrderSubDO::getDeliveryOrderId, deliveryOrderId);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,66 @@
|
||||
package com.chanko.yunxi.mes.module.heli.service.deliverorder;
|
||||
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.deliverorder.vo.*;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder.DeliverOrderDO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverordersub.DeliverOrderSubDO;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
|
||||
|
||||
/**
|
||||
* 发货订单 Service 接口
|
||||
*
|
||||
* @author 管理员
|
||||
*/
|
||||
public interface DeliverOrderService {
|
||||
|
||||
/**
|
||||
* 创建发货订单
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createDeliverOrder(@Valid DeliverOrderSaveReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新发货订单
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateDeliverOrder(@Valid DeliverOrderSaveReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除发货订单
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteDeliverOrder(Long id);
|
||||
|
||||
/**
|
||||
* 获得发货订单
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 发货订单
|
||||
*/
|
||||
DeliverOrderDO getDeliverOrder(Long id);
|
||||
|
||||
/**
|
||||
* 获得发货订单分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 发货订单分页
|
||||
*/
|
||||
PageResult<DeliverOrderDO> getDeliverOrderPage(DeliverOrderPageReqVO pageReqVO);
|
||||
|
||||
// ==================== 子表(发货订单子项) ====================
|
||||
|
||||
/**
|
||||
* 获得发货订单子项列表
|
||||
*
|
||||
* @param deliveryOrderId 订单id
|
||||
* @return 发货订单子项列表
|
||||
*/
|
||||
List<DeliverOrderSubDO> getDeliverOrderSubListByDeliveryOrderId(Long deliveryOrderId);
|
||||
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export interface DeliverOrderVO {
|
||||
id: number
|
||||
code: string
|
||||
saleOrderIds: string
|
||||
customerId: number
|
||||
deliverDate: Date
|
||||
deliverStatus: number
|
||||
deliverPerson: number
|
||||
deliverPersonMobile: string
|
||||
deliverMode: string
|
||||
receivePersonMobile: string
|
||||
transportDriverName: string
|
||||
transportDriverMobile: string
|
||||
transportBusNumber: string
|
||||
transportWeight: string
|
||||
transportSize: string
|
||||
remark: string
|
||||
status: number
|
||||
receivePersonName: string
|
||||
receiveAddress: string
|
||||
}
|
||||
|
||||
// 查询发货订单分页
|
||||
export const getDeliverOrderPage = async (params) => {
|
||||
return await request.get({ url: `/heli/deliver-order/page`, params })
|
||||
}
|
||||
|
||||
// 查询发货订单详情
|
||||
export const getDeliverOrder = async (id: number) => {
|
||||
return await request.get({ url: `/heli/deliver-order/get?id=` + id })
|
||||
}
|
||||
|
||||
// 新增发货订单
|
||||
export const createDeliverOrder = async (data: DeliverOrderVO) => {
|
||||
return await request.post({ url: `/heli/deliver-order/create`, data })
|
||||
}
|
||||
|
||||
// 修改发货订单
|
||||
export const updateDeliverOrder = async (data: DeliverOrderVO) => {
|
||||
return await request.put({ url: `/heli/deliver-order/update`, data })
|
||||
}
|
||||
|
||||
// 删除发货订单
|
||||
export const deleteDeliverOrder = async (id: number) => {
|
||||
return await request.delete({ url: `/heli/deliver-order/delete?id=` + id })
|
||||
}
|
||||
|
||||
// 导出发货订单 Excel
|
||||
export const exportDeliverOrder = async (params) => {
|
||||
return await request.download({ url: `/heli/deliver-order/export-excel`, params })
|
||||
}
|
||||
|
||||
// ==================== 子表(发货订单子项) ====================
|
||||
|
||||
// 获得发货订单子项列表
|
||||
export const getDeliverOrderSubListByDeliveryOrderId = async (deliveryOrderId) => {
|
||||
return await request.get({ url: `/heli/deliver-order/deliver-order-sub/list-by-delivery-order-id?deliveryOrderId=` + deliveryOrderId })
|
||||
}
|
Loading…
Reference in new issue