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