diff --git a/admin/src/main/java/com/hcy/admin/service/order/IOrderPartService.java b/admin/src/main/java/com/hcy/admin/service/order/IOrderPartService.java deleted file mode 100644 index 715edd7..0000000 --- a/admin/src/main/java/com/hcy/admin/service/order/IOrderPartService.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.hcy.admin.service.order; - -import com.hcy.admin.validate.common.PageParam; -import com.hcy.admin.validate.order.OrderPartParam; -import com.hcy.admin.vo.order.OrderPartDetailVo; -import com.hcy.admin.vo.order.OrderPartListVo; -import com.hcy.common.core.PageResult; - -import java.util.Map; - -/** - * 订单配件服务接口类 - */ -public interface IOrderPartService { - - /** - * 订单配件列表 - * - * @param pageParam 分页参数 - * @param params 搜索参数 - * @return PageResult - */ - PageResult list(PageParam pageParam, Map params); - - /** - * 订单配件详情 - * - * @param id 主键ID - * @return OrderPart - */ - OrderPartDetailVo detail(Integer id); - - /** - * 订单配件新增 - * - * @param orderPartParam 参数 - */ - void add(OrderPartParam orderPartParam); - - /** - * 订单配件编辑 - * - * @param orderPartParam 参数 - */ - void edit(OrderPartParam orderPartParam); - - /** - * 订单配件删除 - * - * @param id 主键ID - */ - void del(Long id); - -} diff --git a/admin/src/main/java/com/hcy/admin/service/order/impl/MaintenanceOrderServiceImpl.java b/admin/src/main/java/com/hcy/admin/service/order/impl/MaintenanceOrderServiceImpl.java index 210a980..490be01 100644 --- a/admin/src/main/java/com/hcy/admin/service/order/impl/MaintenanceOrderServiceImpl.java +++ b/admin/src/main/java/com/hcy/admin/service/order/impl/MaintenanceOrderServiceImpl.java @@ -218,7 +218,14 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService { Assert.notNull(model, "数据不存在!"); if(model.getOrderStatus() == MaintenanceOrderStatusEnum.WAITING_LIST.getStatus() || - model.getOrderStatus() == MaintenanceOrderStatusEnum.PENDING_ORDER.getStatus()){ + model.getOrderStatus() == MaintenanceOrderStatusEnum.PENDING_ORDER.getStatus() + || model.getOrderStatus() == MaintenanceOrderStatusEnum.CHARGEBACK.getStatus() + || model.getOrderStatus() == MaintenanceOrderStatusEnum.ORDER_TIMEOUT.getStatus()){ + + //重新指派员工 + if(param.getReceiverId() != null && param.getId() != null){ + model.setOrderStatus(MaintenanceOrderStatusEnum.PENDING_ORDER.getStatus()); + } model.setReceiverId(param.getReceiverId()); model.setReceiverType(param.getReceiverType()); model.setOrderDistance(param.getOrderDistance()); diff --git a/admin/src/main/java/com/hcy/admin/service/order/impl/OrderPartServiceImpl.java b/admin/src/main/java/com/hcy/admin/service/order/impl/OrderPartServiceImpl.java deleted file mode 100644 index 8b04a4d..0000000 --- a/admin/src/main/java/com/hcy/admin/service/order/impl/OrderPartServiceImpl.java +++ /dev/null @@ -1,154 +0,0 @@ -package com.hcy.admin.service.order.impl; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.hcy.admin.service.order.IOrderPartService; -import com.hcy.admin.validate.common.PageParam; -import com.hcy.admin.validate.order.OrderPartParam; -import com.hcy.admin.vo.order.MaintenanceOrderListVo; -import com.hcy.admin.vo.order.OrderPartDetailVo; -import com.hcy.admin.vo.order.OrderPartListVo; -import com.hcy.common.core.PageResult; -import com.hcy.common.entity.order.MaintenanceOrder; -import com.hcy.common.entity.order.OrderPart; -import com.hcy.common.mapper.order.OrderPartMapper; -import org.springframework.beans.BeanUtils; -import org.springframework.stereotype.Service; -import org.springframework.util.Assert; - -import javax.annotation.Resource; -import java.util.*; - -/** - * 订单配件实现类 - */ -@Service -public class OrderPartServiceImpl implements IOrderPartService { - - @Resource - OrderPartMapper orderPartMapper; - - /** - * 订单配件列表 - * - * @param pageParam 分页参数 - * @param params 搜索参数 - * @return PageResult - */ - @Override - public PageResult list(PageParam pageParam, Map params) { - Integer page = pageParam.getPageNo(); - Integer limit = pageParam.getPageSize(); - - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("is_delete", 0); - queryWrapper.orderByDesc("id"); - - orderPartMapper.setSearch(queryWrapper, params, new String[]{ - "=:partCode@part_code:str", - "like:partName@part_name:str", - "=:specificationModel@specification_model:str", - "=:unit:str", - "=:price:str", - "=:quantity:long", - "=:totalPrice@total_price:str", - }); - - IPage iPage = orderPartMapper.selectPage(new Page<>(page, limit), queryWrapper); - - List list = new LinkedList<>(); - for(OrderPart item : iPage.getRecords()) { - OrderPartListVo vo = new OrderPartListVo(); - BeanUtils.copyProperties(item, vo); - list.add(vo); - } - - return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list); - } - - /** - * 订单配件详情 - * - * @param id 主键参数 - * @return OrderPart - */ - @Override - public OrderPartDetailVo detail(Integer id) { - OrderPart model = orderPartMapper.selectOne( - new QueryWrapper() - .eq("id", id) - .eq("is_delete", 0) - .last("limit 1")); - - Assert.notNull(model, "数据不存在"); - - OrderPartDetailVo vo = new OrderPartDetailVo(); - BeanUtils.copyProperties(model, vo); - return vo; - } - - /** - * 订单配件新增 - * - * @param orderPartParam 参数 - */ - @Override - public void add(OrderPartParam orderPartParam) { - OrderPart model = new OrderPart(); - model.setPartCode(orderPartParam.getPartCode()); - model.setPartName(orderPartParam.getPartName()); - model.setSpecificationModel(orderPartParam.getSpecificationModel()); - model.setUnit(orderPartParam.getUnit()); - model.setPrice(orderPartParam.getPrice()); - model.setQuantity(orderPartParam.getQuantity()); - model.setTotalPrice(orderPartParam.getTotalPrice()); - orderPartMapper.insert(model); - } - - /** - * 订单配件编辑 - * - * @param orderPartParam 参数 - */ - @Override - public void edit(OrderPartParam orderPartParam) { - OrderPart model = orderPartMapper.selectOne( - new QueryWrapper() - .eq("id", orderPartParam.getId()) - .eq("is_delete", 0) - .last("limit 1")); - - Assert.notNull(model, "数据不存在!"); - - model.setId(orderPartParam.getId()); - model.setPartCode(orderPartParam.getPartCode()); - model.setPartName(orderPartParam.getPartName()); - model.setSpecificationModel(orderPartParam.getSpecificationModel()); - model.setUnit(orderPartParam.getUnit()); - model.setPrice(orderPartParam.getPrice()); - model.setQuantity(orderPartParam.getQuantity()); - model.setTotalPrice(orderPartParam.getTotalPrice()); - orderPartMapper.updateById(model); - } - - /** - * 订单配件删除 - * - * @param id 主键ID - */ - @Override - public void del(Long id) { - OrderPart model = orderPartMapper.selectOne( - new QueryWrapper() - .eq("id", id) - .eq("is_delete", 0) - .last("limit 1")); - - Assert.notNull(model, "数据不存在!"); - - model.setIsDelete(1); - orderPartMapper.updateById(model); - } - -} diff --git a/admin/src/main/java/com/hcy/admin/validate/order/OrderPartParam.java b/admin/src/main/java/com/hcy/admin/validate/order/OrderPartParam.java deleted file mode 100644 index 1d33b38..0000000 --- a/admin/src/main/java/com/hcy/admin/validate/order/OrderPartParam.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.hcy.admin.validate.order; - -import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; -import org.hibernate.validator.constraints.Length; - -import lombok.Data; -import javax.validation.constraints.*; -import java.io.Serializable; -import java.math.BigDecimal; - -/** - * 订单配件参数 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@Accessors(chain = true) -public class OrderPartParam implements Serializable { - - private static final long serialVersionUID = 1L; - - public interface create{} - public interface update{} - public interface delete{} - - private Long id; - - @NotNull(message = "partCode参数缺失", groups = {create.class, update.class}) - @Length(max = 100, message = "partCode参数不能超出100个字符", groups = {create.class, update.class}) - private String partCode; - - @NotNull(message = "partName参数缺失", groups = {create.class, update.class}) - @Length(max = 50, message = "partName参数不能超出50个字符", groups = {create.class, update.class}) - private String partName; - - @NotNull(message = "specificationModel参数缺失", groups = {create.class, update.class}) - @Length(max = 50, message = "specificationModel参数不能超出50个字符", groups = {create.class, update.class}) - private String specificationModel; - - @NotNull(message = "unit参数缺失", groups = {create.class, update.class}) - @Length(max = 20, message = "unit参数不能超出20个字符", groups = {create.class, update.class}) - private String unit; - - @NotNull(message = "price参数缺失", groups = {create.class, update.class}) - private BigDecimal price; - - @NotNull(message = "quantity参数缺失", groups = {create.class, update.class}) - @DecimalMin(value = "0", message = "quantity参数值不能少于0", groups = {create.class, update.class}) - private Long quantity; - - @NotNull(message = "totalPrice参数缺失", groups = {create.class, update.class}) - private BigDecimal totalPrice; - -} diff --git a/admin/src/main/java/com/hcy/admin/vo/order/OrderPartDetailVo.java b/admin/src/main/java/com/hcy/admin/vo/order/OrderPartDetailVo.java deleted file mode 100644 index 2e29ffb..0000000 --- a/admin/src/main/java/com/hcy/admin/vo/order/OrderPartDetailVo.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.hcy.admin.vo.order; - -import lombok.Data; - -import java.io.Serializable; -import java.math.BigDecimal; - -/** - * OrderPartVo - */ -@Data -public class OrderPartDetailVo implements Serializable { - - private static final long serialVersionUID = 1L; - - private Long id; // id - private String partCode; // 备件编码 - private String partName; // 备件名称 - private String specificationModel; // 规格型号 - private String unit; // 单位 - private BigDecimal price; // 价格 - private Long quantity; // 数量 - private BigDecimal totalPrice; // 总价 - -} diff --git a/admin/src/main/java/com/hcy/admin/vo/order/OrderPartListVo.java b/admin/src/main/java/com/hcy/admin/vo/order/OrderPartListVo.java deleted file mode 100644 index e3fec69..0000000 --- a/admin/src/main/java/com/hcy/admin/vo/order/OrderPartListVo.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.hcy.admin.vo.order; - -import lombok.Data; - -import java.io.Serializable; -import java.math.BigDecimal; - -/** - * OrderPartVo - */ -@Data -public class OrderPartListVo implements Serializable { - - private static final long serialVersionUID = 1L; - - private Long id; // id - private String partCode; // 备件编码 - private String partName; // 备件名称 - private String specificationModel; // 规格型号 - private String unit; // 单位 - private BigDecimal price; // 价格 - private Long quantity; // 数量 - private BigDecimal totalPrice; // 总价 - -} diff --git a/common/src/main/java/com/hcy/common/dto/SparePartDto.java b/common/src/main/java/com/hcy/common/dto/SparePartDto.java new file mode 100644 index 0000000..31d4fea --- /dev/null +++ b/common/src/main/java/com/hcy/common/dto/SparePartDto.java @@ -0,0 +1,33 @@ +package com.hcy.common.dto; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 备件信息实体 + */ +@Data +public class SparePartDto implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value="id", type= IdType.AUTO) + private Long id; // 主键id + private String sparePartsCode; // 备件编码 + private String sparePartsName; // 备件名称 + private Long warehouseId; // 所属仓库 + private String specificationsModel; // 规格型号 + private String unit; // 单位 + private Integer quantity; // 库存数量 + private BigDecimal unitPrice; // 单价 + private Integer isDelete; // 是否删除: [0=否, 1=是] + private Long createTime; // 创建时间 + private Long updateTime; // 更新时间 + private Long deleteTime; // 删除时间 + + private String keywords; // 关键字 +} \ No newline at end of file diff --git a/common/src/main/java/com/hcy/common/dto/order/MaintenanceOrderDto.java b/common/src/main/java/com/hcy/common/dto/order/MaintenanceOrderDto.java index bd304b9..238e5bd 100644 --- a/common/src/main/java/com/hcy/common/dto/order/MaintenanceOrderDto.java +++ b/common/src/main/java/com/hcy/common/dto/order/MaintenanceOrderDto.java @@ -58,4 +58,6 @@ public class MaintenanceOrderDto implements Serializable { private Long equipmentCityId; //设备市id private double longitude; //经度 private double latitude; //纬度 + private String orderStatusIds; //订单状态ids + private String likeWork; //关键字 } diff --git a/common/src/main/java/com/hcy/common/dto/order/OrderSparePart.java b/common/src/main/java/com/hcy/common/dto/order/OrderSparePart.java new file mode 100644 index 0000000..0df35e7 --- /dev/null +++ b/common/src/main/java/com/hcy/common/dto/order/OrderSparePart.java @@ -0,0 +1,32 @@ +package com.hcy.common.dto.order; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 订单配件实体 + */ +@Data +public class OrderSparePart implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value="id", type= IdType.AUTO) + private Long id; // id + private Long maintenanceOrderId; //检修单id + private Long sparePartsId; // 备件id + private String sparePartsCode; // 备件编码 + private String sparePartsName; // 备件名称 + private String warehouseName; // 所属仓库名称 + private String specificationsModel; // 规格型号 + private String unit; // 单位 + private BigDecimal price; // 价格 + private Long quantity; // 数量 + private BigDecimal totalPrice; // 总价 + private Integer isDelete; // 是否删除 0-未删除 1-删除 + +} \ No newline at end of file diff --git a/common/src/main/java/com/hcy/common/entity/order/MaintenanceOrder.java b/common/src/main/java/com/hcy/common/entity/order/MaintenanceOrder.java index d2f2155..da11a1c 100644 --- a/common/src/main/java/com/hcy/common/entity/order/MaintenanceOrder.java +++ b/common/src/main/java/com/hcy/common/entity/order/MaintenanceOrder.java @@ -35,6 +35,7 @@ public class MaintenanceOrder implements Serializable { private BigDecimal orderDistance; // 订单距离 private BigDecimal totalAmount; // 总金额 private BigDecimal actualAmount; // 实际金额 + @TableField(value = "receiver_id",updateStrategy = FieldStrategy.IGNORED) private Long receiverId; // 接单人id private Long repairId; // 返修id private Date receiverTime; // 接单时间 diff --git a/common/src/main/java/com/hcy/common/mapper/client/ClientMapper.java b/common/src/main/java/com/hcy/common/mapper/client/ClientMapper.java index 01b094c..f41f610 100644 --- a/common/src/main/java/com/hcy/common/mapper/client/ClientMapper.java +++ b/common/src/main/java/com/hcy/common/mapper/client/ClientMapper.java @@ -4,6 +4,8 @@ import com.hcy.common.core.basics.IBaseMapper; import com.hcy.common.dto.largeDataDto.ClientLargeDataDto; import com.hcy.common.entity.client.Client; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -20,4 +22,6 @@ public interface ClientMapper extends IBaseMapper { */ List clientEquipmentList(); + @Select("select * from la_client where is_delete = 0 and id = #{id}") + Client findClientById(@Param("id") Long id); } diff --git a/common/src/main/java/com/hcy/common/mapper/client/EquipmentMapper.java b/common/src/main/java/com/hcy/common/mapper/client/EquipmentMapper.java index 0e84c11..6f07ff8 100644 --- a/common/src/main/java/com/hcy/common/mapper/client/EquipmentMapper.java +++ b/common/src/main/java/com/hcy/common/mapper/client/EquipmentMapper.java @@ -4,6 +4,8 @@ import com.hcy.common.core.basics.IBaseMapper; import com.hcy.common.dto.largeDataDto.ClientLargeDataDto; import com.hcy.common.entity.client.Equipment; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -19,5 +21,4 @@ public interface EquipmentMapper extends IBaseMapper { * @return */ List provinceEquipment(); - } diff --git a/common/src/main/java/com/hcy/common/mapper/fault/FaultMapper.java b/common/src/main/java/com/hcy/common/mapper/fault/FaultMapper.java index bbdafa5..e27c5aa 100644 --- a/common/src/main/java/com/hcy/common/mapper/fault/FaultMapper.java +++ b/common/src/main/java/com/hcy/common/mapper/fault/FaultMapper.java @@ -3,6 +3,8 @@ package com.hcy.common.mapper.fault; import com.hcy.common.core.basics.IBaseMapper; import com.hcy.common.entity.fault.Fault; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** * 常见故障Mapper @@ -10,4 +12,6 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface FaultMapper extends IBaseMapper { + @Select("select * from la_fault where is_delete = 0 and id = #{id}") + Fault findFaultById(@Param("id") Long id); } diff --git a/common/src/main/java/com/hcy/common/mapper/order/MaintenanceOrderMapper.java b/common/src/main/java/com/hcy/common/mapper/order/MaintenanceOrderMapper.java index 37546f1..a0c3a2e 100644 --- a/common/src/main/java/com/hcy/common/mapper/order/MaintenanceOrderMapper.java +++ b/common/src/main/java/com/hcy/common/mapper/order/MaintenanceOrderMapper.java @@ -18,12 +18,12 @@ public interface MaintenanceOrderMapper extends IBaseMapper { Page list(Page page,@Param("param") MaintenanceOrderDto maintenanceOrderDto); - List list(MaintenanceOrderDto maintenanceOrderDto); + List list(@Param("param") MaintenanceOrderDto maintenanceOrderDto); /** * 通过订单id查询检修订单 * @return MaintenanceOrder */ - @Select("select * from lc_maintenance_order where is_delete = 0 and id = #{id}") + @Select("select * from la_maintenance_order where is_delete = 0 and id = #{id}") MaintenanceOrder findMaintenanceOrderById(@Param("id") Long id); } diff --git a/common/src/main/java/com/hcy/common/mapper/order/OrderSparePartMapper.java b/common/src/main/java/com/hcy/common/mapper/order/OrderSparePartMapper.java new file mode 100644 index 0000000..ccf8e12 --- /dev/null +++ b/common/src/main/java/com/hcy/common/mapper/order/OrderSparePartMapper.java @@ -0,0 +1,12 @@ +package com.hcy.common.mapper.order; + +import com.hcy.common.core.basics.IBaseMapper; +import com.hcy.common.dto.order.OrderSparePart; +import org.apache.ibatis.annotations.Mapper; + +/** + * 订单配件Mapper + */ +@Mapper +public interface OrderSparePartMapper extends IBaseMapper { +} diff --git a/common/src/main/java/com/hcy/common/mapper/sparePart/SparePartMapper.java b/common/src/main/java/com/hcy/common/mapper/sparePart/SparePartMapper.java index c389888..2df328a 100644 --- a/common/src/main/java/com/hcy/common/mapper/sparePart/SparePartMapper.java +++ b/common/src/main/java/com/hcy/common/mapper/sparePart/SparePartMapper.java @@ -1,13 +1,24 @@ package com.hcy.common.mapper.sparePart; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.pagehelper.page.PageParams; import com.hcy.common.core.basics.IBaseMapper; +import com.hcy.common.dto.SparePartDto; import com.hcy.common.entity.sparePart.SparePart; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** * 备件信息Mapper */ @Mapper public interface SparePartMapper extends IBaseMapper { + + Page pageList(Page page,@Param("param") SparePartDto sparePartDto); + + + @Select("select * from la_spare_part where is_delete = 0 and id = #{id}") + SparePart findSparePart(@Param("id") Long id); } diff --git a/common/src/main/java/com/hcy/common/mapper/system/SystemAuthAdminMapper.java b/common/src/main/java/com/hcy/common/mapper/system/SystemAuthAdminMapper.java index d278bce..ea354df 100644 --- a/common/src/main/java/com/hcy/common/mapper/system/SystemAuthAdminMapper.java +++ b/common/src/main/java/com/hcy/common/mapper/system/SystemAuthAdminMapper.java @@ -7,6 +7,7 @@ import com.hcy.common.dto.largeDataDto.AdminLargeDataDto; import com.hcy.common.entity.system.SystemAuthAdmin; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** * 系统管理员Mapper @@ -21,4 +22,7 @@ public interface SystemAuthAdminMapper extends IBaseMapper { * @return */ AdminLargeDataDto personnelStatistics(); + + @Select("select * from la_system_auth_admin where is_delete = 0 and user_id = #{userId}") + SystemAuthAdmin findSystemAuthAdminByUserId(@Param("userId") Integer userId); } diff --git a/common/src/main/java/com/hcy/common/mapper/warehouse/WarehouseMapper.java b/common/src/main/java/com/hcy/common/mapper/warehouse/WarehouseMapper.java index 2f88797..1eed64f 100644 --- a/common/src/main/java/com/hcy/common/mapper/warehouse/WarehouseMapper.java +++ b/common/src/main/java/com/hcy/common/mapper/warehouse/WarehouseMapper.java @@ -4,10 +4,14 @@ package com.hcy.common.mapper.warehouse; import com.hcy.common.core.basics.IBaseMapper; import com.hcy.common.entity.warehouse.Warehouse; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; /** * 仓库管理Mapper */ @Mapper public interface WarehouseMapper extends IBaseMapper { + + @Select("select * from la_warehouse where is_delete = 0 and id = #{id}") + Warehouse findWarehouseById(Long id); } diff --git a/common/src/main/resources/mapper/MaintenanceOrderMapper.xml b/common/src/main/resources/mapper/MaintenanceOrderMapper.xml index ad43fcb..010e80e 100644 --- a/common/src/main/resources/mapper/MaintenanceOrderMapper.xml +++ b/common/src/main/resources/mapper/MaintenanceOrderMapper.xml @@ -44,6 +44,18 @@ and find_in_set(lmo.order_status,#{param.orderStatus}) + + and lmo.receiver_id = #{param.receiverId} + + + and find_in_set(lmo.order_status,#{param.orderStatusIds}) + + + and (le.number like concat('%',#{param.likeWork},'%') + or lmo.order_no like concat('%',#{param.likeWork},'%') + or lc.client_name like concat('%',#{param.likeWork},'%')) + + order by create_time desc diff --git a/common/src/main/resources/mapper/SparePartrMapper.xml b/common/src/main/resources/mapper/SparePartrMapper.xml new file mode 100644 index 0000000..5a1a54b --- /dev/null +++ b/common/src/main/resources/mapper/SparePartrMapper.xml @@ -0,0 +1,22 @@ + + + + + + + diff --git a/common/target/classes/mapper/MaintenanceOrderMapper.xml b/common/target/classes/mapper/MaintenanceOrderMapper.xml index ad43fcb..010e80e 100644 --- a/common/target/classes/mapper/MaintenanceOrderMapper.xml +++ b/common/target/classes/mapper/MaintenanceOrderMapper.xml @@ -44,6 +44,18 @@ and find_in_set(lmo.order_status,#{param.orderStatus}) + + and lmo.receiver_id = #{param.receiverId} + + + and find_in_set(lmo.order_status,#{param.orderStatusIds}) + + + and (le.number like concat('%',#{param.likeWork},'%') + or lmo.order_no like concat('%',#{param.likeWork},'%') + or lc.client_name like concat('%',#{param.likeWork},'%')) + + order by create_time desc diff --git a/front/src/main/java/com/hcy/front/controller/order/MaintenanceOrderController.java b/front/src/main/java/com/hcy/front/controller/order/MaintenanceOrderController.java index f3165af..c10bdb7 100644 --- a/front/src/main/java/com/hcy/front/controller/order/MaintenanceOrderController.java +++ b/front/src/main/java/com/hcy/front/controller/order/MaintenanceOrderController.java @@ -35,6 +35,11 @@ public class MaintenanceOrderController { return AjaxResult.success(iMaintenanceOrderService.list(maintenanceOrderParam)); } + @GetMapping("/pageList") + public Object pageList(@Validated PageParam pageParam,MaintenanceOrderParam maintenanceOrderParam) { + return AjaxResult.success(iMaintenanceOrderService.pageList(pageParam,maintenanceOrderParam)); + } + /** * 抢单 * @param maintenanceOrderParam 参数 @@ -62,9 +67,9 @@ public class MaintenanceOrderController { * @param maintenanceOrderParam 参数 * @return Object */ - @PostMapping("/checking") - public Object checking(@RequestBody MaintenanceOrderParam maintenanceOrderParam) { - iMaintenanceOrderService.checking(maintenanceOrderParam); + @PostMapping("/refundOrder") + public Object refundOrder(@RequestBody MaintenanceOrderParam maintenanceOrderParam) { + iMaintenanceOrderService.refundOrder(maintenanceOrderParam); return AjaxResult.success(); } @@ -74,7 +79,18 @@ public class MaintenanceOrderController { * @return Object */ @GetMapping("/detail") - public Object detail() { - return AjaxResult.success(iMaintenanceOrderService.detail()); + public Object detail(Long id) { + return AjaxResult.success(iMaintenanceOrderService.detail(id)); + } + + /** + * 服务报价 + * @param maintenanceOrderParam 参数 + * @return Object + */ + @PostMapping("/serviceOfferPrice") + public Object serviceOfferPrice(@RequestBody MaintenanceOrderParam maintenanceOrderParam) { + iMaintenanceOrderService.serviceOfferPrice(maintenanceOrderParam); + return AjaxResult.success(); } } diff --git a/admin/src/main/java/com/hcy/admin/controller/order/OrderPartController.java b/front/src/main/java/com/hcy/front/controller/order/OrderSparePartController.java similarity index 52% rename from admin/src/main/java/com/hcy/admin/controller/order/OrderPartController.java rename to front/src/main/java/com/hcy/front/controller/order/OrderSparePartController.java index 6660ad0..0d04c04 100644 --- a/admin/src/main/java/com/hcy/admin/controller/order/OrderPartController.java +++ b/front/src/main/java/com/hcy/front/controller/order/OrderSparePartController.java @@ -1,14 +1,13 @@ -package com.hcy.admin.controller.order; +package com.hcy.front.controller.order; -import com.hcy.admin.config.aop.Log; -import com.hcy.admin.service.order.IOrderPartService; -import com.hcy.admin.validate.common.PageParam; -import com.hcy.admin.validate.order.OrderPartParam; -import com.hcy.admin.vo.order.OrderPartDetailVo; -import com.hcy.admin.vo.order.OrderPartListVo; import com.hcy.common.core.AjaxResult; import com.hcy.common.core.PageResult; import com.hcy.common.validator.annotation.IDMust; +import com.hcy.front.service.order.IOrderSparePartService; +import com.hcy.front.validate.PageParam; +import com.hcy.front.validate.order.OrderSparePartParam; +import com.hcy.front.vo.order.OrderSparePartDetailVo; +import com.hcy.front.vo.order.OrderSparePartListVo; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -20,10 +19,10 @@ import java.util.Map; */ @RestController @RequestMapping("api/part") -public class OrderPartController { +public class OrderSparePartController { @Resource - IOrderPartService iOrderPartService; + IOrderSparePartService iOrderSparePartService; /** * 订单配件列表 @@ -35,7 +34,7 @@ public class OrderPartController { @GetMapping("/list") public Object list(@Validated PageParam pageParam, @RequestParam Map params) { - PageResult list = iOrderPartService.list(pageParam, params); + PageResult list = iOrderSparePartService.list(pageParam, params); return AjaxResult.success(list); } /** @@ -46,46 +45,43 @@ public class OrderPartController { */ @GetMapping("/detail") public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) { - OrderPartDetailVo detail = iOrderPartService.detail(id); + OrderSparePartDetailVo detail = iOrderSparePartService.detail(id); return AjaxResult.success(detail); } /** * 订单配件新增 * - * @param orderPartParam 参数 + * @param orderSparePartParam 参数 * @return Object */ - @Log(title = "订单配件新增") @PostMapping("/add") - public Object add(@Validated(value = OrderPartParam.create.class) @RequestBody OrderPartParam orderPartParam) { - iOrderPartService.add(orderPartParam); + public Object add(@Validated(value = OrderSparePartParam.create.class) @RequestBody OrderSparePartParam orderSparePartParam) { + iOrderSparePartService.add(orderSparePartParam); return AjaxResult.success(); } /** * 订单配件编辑 * - * @param orderPartParam 参数 + * @param orderSparePartParam 参数 * @return Object */ - @Log(title = "订单配件编辑") @PostMapping("/edit") - public Object edit(@Validated(value = OrderPartParam.update.class) @RequestBody OrderPartParam orderPartParam) { - iOrderPartService.edit(orderPartParam); + public Object edit(@Validated(value = OrderSparePartParam.update.class) @RequestBody OrderSparePartParam orderSparePartParam) { + iOrderSparePartService.edit(orderSparePartParam); return AjaxResult.success(); } /** * 订单配件删除 * - * @param orderPartParam 参数 + * @param orderSparePartParam 参数 * @return Object */ - @Log(title = "订单配件删除") @PostMapping("/del") - public Object del(@Validated(value = OrderPartParam.delete.class) @RequestBody OrderPartParam orderPartParam) { - iOrderPartService.del(orderPartParam.getId()); + public Object del(@Validated(value = OrderSparePartParam.delete.class) @RequestBody OrderSparePartParam orderSparePartParam) { + iOrderSparePartService.del(orderSparePartParam.getId()); return AjaxResult.success(); } diff --git a/front/src/main/java/com/hcy/front/controller/warehouse/SparePartController.java b/front/src/main/java/com/hcy/front/controller/warehouse/SparePartController.java new file mode 100644 index 0000000..c695e32 --- /dev/null +++ b/front/src/main/java/com/hcy/front/controller/warehouse/SparePartController.java @@ -0,0 +1,51 @@ +package com.hcy.front.controller.warehouse; + +import com.hcy.common.core.AjaxResult; +import com.hcy.common.core.PageResult; +import com.hcy.common.validator.annotation.IDMust; +import com.hcy.front.service.warehouse.ISparePartService; +import com.hcy.front.validate.PageParam; +import com.hcy.front.validate.warehouse.SparePartParam; +import com.hcy.front.vo.warehouse.SparePartDetailVo; +import com.hcy.front.vo.warehouse.SparePartListVo; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +/** + * 备件信息管理 + */ +@RestController +@RequestMapping("api/sparePart") +public class SparePartController { + + @Resource + ISparePartService iSparePartService; + + /** + * 备件信息列表 + * + * @author hcy + * @param pageParam 分页参数 + * @param param 搜索参数 + * @return Object + */ + @GetMapping("/list") + public Object list(@Validated PageParam pageParam, SparePartParam param) { + PageResult list = iSparePartService.list(pageParam, param); + return AjaxResult.success(list); + } + /** + * 备件信息详情 + * + * @author hcy + * @param id 主键ID + * @return Object + */ + @GetMapping("/detail") + public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) { + SparePartDetailVo detail = iSparePartService.detail(id); + return AjaxResult.success(detail); + } +} diff --git a/front/src/main/java/com/hcy/front/controller/warehouse/WarehouseController.java b/front/src/main/java/com/hcy/front/controller/warehouse/WarehouseController.java new file mode 100644 index 0000000..18afef7 --- /dev/null +++ b/front/src/main/java/com/hcy/front/controller/warehouse/WarehouseController.java @@ -0,0 +1,102 @@ +package com.hcy.front.controller.warehouse; + +import com.alibaba.fastjson.JSONArray; +import com.hcy.common.core.AjaxResult; +import com.hcy.common.validator.annotation.IDMust; +import com.hcy.front.service.warehouse.IWarehouseService; +import com.hcy.front.validate.PageParam; +import com.hcy.front.validate.warehouse.WarehouseParam; +import com.hcy.front.vo.warehouse.WarehouseDetailVo; +import com.hcy.front.vo.warehouse.WarehouseVo; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.Map; + +/** + * 仓库管理 + */ +@RestController +@RequestMapping("api/warehouse") +public class WarehouseController { + + @Resource + IWarehouseService iWarehouseService; + + /** + * 仓库管理列表 + * + * @author hcy + * @param params 搜索参数 + * @return Object + */ + @GetMapping("/list") + public Object list(@Validated PageParam pageParam, + @RequestParam Map params) { + JSONArray list = iWarehouseService.list(params); + return AjaxResult.success(list); + } + /** + * 仓库管理详情 + * + * @author hcy + * @param id 主键ID + * @return Object + */ + @GetMapping("/detail") + public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) { + WarehouseDetailVo detail = iWarehouseService.detail(id); + return AjaxResult.success(detail); + } + + /** + * 仓库管理新增 + * + * @author hcy + * @param warehouseParam 参数 + * @return Object + */ + @PostMapping("/add") + public Object add(@Validated(value = WarehouseParam.create.class) @RequestBody WarehouseParam warehouseParam) { + iWarehouseService.add(warehouseParam); + return AjaxResult.success(); + } + + /** + * 仓库管理编辑 + * + * @author hcy + * @param warehouseParam 参数 + * @return Object + */ + @PostMapping("/edit") + public Object edit(@RequestBody WarehouseParam warehouseParam) { + iWarehouseService.edit(warehouseParam); + return AjaxResult.success(); + } + + /** + * 仓库管理删除 + * + * @author hcy + * @param warehouseParam 参数 + * @return Object + */ + @PostMapping("/del") + public Object del(@RequestBody WarehouseParam warehouseParam) { + iWarehouseService.del(warehouseParam.getIds()); + return AjaxResult.success(); + } + + //新增接口:传入仓库id时,查询仓库下的所有子仓库及子仓库的内容 + /** + * 传入仓库id时,查询仓库下的所有子仓库及子仓库的内容 + */ + @GetMapping("/selectWarehouseData") + public Object selectSubcolumnData(WarehouseVo warehouseVo) { + WarehouseVo warehouseVo1 = iWarehouseService.selectWarehouseData(warehouseVo); + return AjaxResult.success(warehouseVo1); + } + +} diff --git a/front/src/main/java/com/hcy/front/service/order/IMaintenanceOrderService.java b/front/src/main/java/com/hcy/front/service/order/IMaintenanceOrderService.java index da2026a..f107d59 100644 --- a/front/src/main/java/com/hcy/front/service/order/IMaintenanceOrderService.java +++ b/front/src/main/java/com/hcy/front/service/order/IMaintenanceOrderService.java @@ -21,6 +21,8 @@ public interface IMaintenanceOrderService { */ List list(MaintenanceOrderParam maintenanceOrderParam); + PageResult pageList(PageParam pageParam,MaintenanceOrderParam maintenanceOrderParam); + /** * 抢单 * @param maintenanceOrderParam 参数 @@ -37,11 +39,17 @@ public interface IMaintenanceOrderService { * 退单 * @param maintenanceOrderParam 参数 */ - void checking(MaintenanceOrderParam maintenanceOrderParam); + void refundOrder(MaintenanceOrderParam maintenanceOrderParam); /** * 检修工单详情 * @return MaintenanceOrderDetailVo */ - MaintenanceOrderDetailVo detail(); + MaintenanceOrderDetailVo detail(Long id); + + /** + * 退单 + * @param maintenanceOrderParam 参数 + */ + void serviceOfferPrice(MaintenanceOrderParam maintenanceOrderParam); } diff --git a/front/src/main/java/com/hcy/front/service/order/IOrderSparePartService.java b/front/src/main/java/com/hcy/front/service/order/IOrderSparePartService.java new file mode 100644 index 0000000..da0d88e --- /dev/null +++ b/front/src/main/java/com/hcy/front/service/order/IOrderSparePartService.java @@ -0,0 +1,54 @@ +package com.hcy.front.service.order; + +import com.hcy.common.core.PageResult; +import com.hcy.front.validate.PageParam; +import com.hcy.front.validate.order.OrderSparePartParam; +import com.hcy.front.vo.order.OrderSparePartDetailVo; +import com.hcy.front.vo.order.OrderSparePartListVo; + +import java.util.Map; + +/** + * 订单配件服务接口类 + */ +public interface IOrderSparePartService { + + /** + * 订单配件列表 + * + * @param pageParam 分页参数 + * @param params 搜索参数 + * @return PageResult + */ + PageResult list(PageParam pageParam, Map params); + + /** + * 订单配件详情 + * + * @param id 主键ID + * @return OrderSparePart + */ + OrderSparePartDetailVo detail(Integer id); + + /** + * 订单配件新增 + * + * @param orderSparePartParam 参数 + */ + void add(OrderSparePartParam orderSparePartParam); + + /** + * 订单配件编辑 + * + * @param orderSparePartParam 参数 + */ + void edit(OrderSparePartParam orderSparePartParam); + + /** + * 订单配件删除 + * + * @param id 主键ID + */ + void del(Long id); + +} diff --git a/front/src/main/java/com/hcy/front/service/order/impl/MaintenanceOrderServiceImpl.java b/front/src/main/java/com/hcy/front/service/order/impl/MaintenanceOrderServiceImpl.java index d50438e..a0f5e67 100644 --- a/front/src/main/java/com/hcy/front/service/order/impl/MaintenanceOrderServiceImpl.java +++ b/front/src/main/java/com/hcy/front/service/order/impl/MaintenanceOrderServiceImpl.java @@ -7,10 +7,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.hcy.common.constant.GlobalConstant; import com.hcy.common.core.PageResult; import com.hcy.common.dto.order.MaintenanceOrderDto; +import com.hcy.common.dto.order.OrderSparePart; import com.hcy.common.entity.client.Client; import com.hcy.common.entity.client.Equipment; import com.hcy.common.entity.fault.Fault; import com.hcy.common.entity.order.MaintenanceOrder; +import com.hcy.common.entity.sparePart.SparePart; import com.hcy.common.entity.system.SystemAuthAdmin; import com.hcy.common.entity.user.User; import com.hcy.common.enums.order.MaintenanceOrderStatusEnum; @@ -20,20 +22,24 @@ import com.hcy.common.mapper.client.ClientMapper; import com.hcy.common.mapper.client.EquipmentMapper; import com.hcy.common.mapper.fault.FaultMapper; import com.hcy.common.mapper.order.MaintenanceOrderMapper; +import com.hcy.common.mapper.sparePart.SparePartMapper; import com.hcy.common.mapper.system.SystemAuthAdminMapper; import com.hcy.common.mapper.user.UserMapper; +import com.hcy.common.utils.StringUtil; import com.hcy.common.utils.ToolsUtil; import com.hcy.front.FrontThreadLocal; import com.hcy.front.service.order.IMaintenanceOrderService; import com.hcy.front.service.region.IDevRegionService; import com.hcy.front.validate.PageParam; import com.hcy.front.validate.order.MaintenanceOrderParam; +import com.hcy.front.validate.warehouse.SparePartParam; import com.hcy.front.vo.order.MaintenanceOrderDetailVo; import com.hcy.front.vo.order.MaintenanceOrderListVo; import com.hcy.front.vo.order.OrderStaffVo; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.util.Assert; +import org.springframework.util.StringUtils; import javax.annotation.Resource; import java.math.BigDecimal; @@ -63,6 +69,12 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService { @Resource UserMapper userMapper; + @Resource + FaultMapper faultMapper; + + @Resource + SparePartMapper sparePartMapper; + private final DecimalFormat df = new DecimalFormat ("#.#"); /** @@ -76,25 +88,43 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService { MaintenanceOrderDto maintenanceOrderDto = new MaintenanceOrderDto(); BeanUtils.copyProperties(maintenanceOrderParam,maintenanceOrderDto); //默认查询订单状态 - if(maintenanceOrderParam.getOrderStatus() == null){ - maintenanceOrderParam.setOrderStatus("1,2,7,8"); - } + List maintenanceOrderList = maintenanceOrderMapper.list(maintenanceOrderDto); + SystemAuthAdmin systemAuthAdmin = systemAuthAdminMapper.findSystemAuthAdminByUserId(FrontThreadLocal.getUserId()); List returnData = new LinkedList<>(); for (MaintenanceOrderDto item : maintenanceOrderList) { - //判断抢单距离大于订单距离则返回订单 - double distance = ToolsUtil.getDistance(item.getLongitude(), item.getLatitude() - , maintenanceOrderParam.getLongitude(), maintenanceOrderParam.getLatitude()); - if(item.getOrderDistance().compareTo(BigDecimal.valueOf((distance / 1000))) >= 0){ - // 计算距离 + if(maintenanceOrderParam.getQueryType() == MaintenanceOrderStatusEnum.NEAREST_TO_ME.getStatus()){ + //判断抢单距离大于订单距离则返回订单 + double distance = ToolsUtil.getDistance(item.getLongitude(), item.getLatitude() + , maintenanceOrderParam.getLongitude(), maintenanceOrderParam.getLatitude()); + + if(item.getReceiverType() == OrderStateEnum.REGIONAL_DISPATCH.getStatus()){ + if(item.getEquipmentProvinceId().equals(systemAuthAdmin.getProvinceId()) && + item.getEquipmentCityId().equals(systemAuthAdmin.getCityId()) && + item.getEquipmentDistrictId().equals(systemAuthAdmin.getDistrictId()) ){ + + // 计算距离 + MaintenanceOrderListVo vo = new MaintenanceOrderListVo(); + BeanUtils.copyProperties(item, vo); + vo.setDistance(distance); + returnData.add(vo); + } + }else{ + if(item.getOrderDistance().compareTo(BigDecimal.valueOf((distance / 1000))) >= 0){ + // 计算距离 + MaintenanceOrderListVo vo = new MaintenanceOrderListVo(); + BeanUtils.copyProperties(item, vo); + vo.setDistance(distance); + returnData.add(vo); + } + } + }else{ MaintenanceOrderListVo vo = new MaintenanceOrderListVo(); BeanUtils.copyProperties(item, vo); - vo.setDistance(String.valueOf(distance)); returnData.add(vo); } - } if(maintenanceOrderParam.getQueryType() == MaintenanceOrderStatusEnum.NEAREST_TO_ME.getStatus()){ @@ -105,12 +135,14 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService { //将米数转换为km for (MaintenanceOrderListVo maintenanceOrderListVo : returnData) { - double distance = Double.parseDouble(maintenanceOrderListVo.getDistance()); - if(distance < 1000){ - maintenanceOrderListVo.setDistance(distance + "米"); - }else{ - double km = distance / 1000; - maintenanceOrderListVo.setDistance(df.format(km) + "km"); + if(maintenanceOrderListVo.getDistance() != null){ + double distance = maintenanceOrderListVo.getDistance(); + if(distance < 1000){ + maintenanceOrderListVo.setPracticalDistance(df.format(distance) + "米"); + }else{ + double km = distance / 1000; + maintenanceOrderListVo.setPracticalDistance(df.format(km) + "km"); + } } } } @@ -118,12 +150,35 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService { return returnData; } + @Override + public PageResult pageList(PageParam pageParam, MaintenanceOrderParam maintenanceOrderParam) { + MaintenanceOrderDto maintenanceOrderDto = new MaintenanceOrderDto(); + BeanUtils.copyProperties(maintenanceOrderParam,maintenanceOrderDto); + maintenanceOrderDto.setReceiverId(FrontThreadLocal.getUserId().longValue()); + if(maintenanceOrderParam.getOrderStatus() == null){ + maintenanceOrderDto.setOrderStatusIds("1,2,7,8"); + } + + List returnData = new LinkedList<>(); + + Page page = maintenanceOrderMapper.list( + new Page<>(pageParam.getPageNo(), pageParam.getPageSize()),maintenanceOrderDto); + for (MaintenanceOrderDto item : page.getRecords()) { + MaintenanceOrderListVo vo = new MaintenanceOrderListVo(); + BeanUtils.copyProperties(item, vo); + returnData.add(vo); + } + + return PageResult.iPageHandle(page.getTotal(), page.getCurrent(), page.getSize(), returnData); + } + @Override public void grabTheOrder(MaintenanceOrderParam maintenanceOrderParam) { MaintenanceOrder maintenanceOrder = maintenanceOrderMapper.findMaintenanceOrderById(maintenanceOrderParam.getId()); Assert.notNull(maintenanceOrder, "数据不存在"); - if(maintenanceOrder.getOrderStatus() == MaintenanceOrderStatusEnum.WAITING_LIST.getStatus()){ + if(maintenanceOrder.getOrderStatus() == MaintenanceOrderStatusEnum.WAITING_LIST.getStatus() + && maintenanceOrder.getReceiverId() == null){ maintenanceOrder.setReceiverId(FrontThreadLocal.getUserId().longValue()); maintenanceOrder.setOrderStatus(MaintenanceOrderStatusEnum.CHECKING.getStatus()); maintenanceOrder.setReceiverTime(new Date()); @@ -149,26 +204,34 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService { } @Override - public void checking(MaintenanceOrderParam maintenanceOrderParam) { + public void refundOrder(MaintenanceOrderParam maintenanceOrderParam) { MaintenanceOrder maintenanceOrder = maintenanceOrderMapper.findMaintenanceOrderById(maintenanceOrderParam.getId()); Assert.notNull(maintenanceOrder, "数据不存在"); - Assert.notNull(maintenanceOrder.getCancelCause(), "接单原因不可为空"); + Assert.notNull(maintenanceOrderParam.getCancelCause(), "退单原因不可为空"); - if(maintenanceOrder.getOrderStatus() == MaintenanceOrderStatusEnum.CHECKING.getStatus()){ + if(maintenanceOrder.getOrderStatus() == MaintenanceOrderStatusEnum.CHECKING.getStatus() || + maintenanceOrder.getOrderStatus() == MaintenanceOrderStatusEnum.PENDING_ORDER.getStatus()){ + + if(maintenanceOrder.getRepairWorkOrderFlow() == OrderStateEnum.WORK_ORDER_TANK.getStatus()){ + maintenanceOrder.setOrderStatus(MaintenanceOrderStatusEnum.WAITING_LIST.getStatus()); + maintenanceOrder.setReceiverId(null); + }else{ + maintenanceOrder.setOrderStatus(MaintenanceOrderStatusEnum.CHARGEBACK.getStatus()); + } maintenanceOrder.setCancelOrderTime(new Date()); - maintenanceOrder.setOrderStatus(MaintenanceOrderStatusEnum.CHARGEBACK.getStatus()); maintenanceOrder.setCancelCause(maintenanceOrderParam.getCancelCause()); + maintenanceOrderMapper.updateById(maintenanceOrder); }else{ - throw new OperateException("订单状态不正确"); + throw new OperateException("当前订单状态不可退单"); } } - @Override - public MaintenanceOrderDetailVo detail() { - Integer userId = FrontThreadLocal.getUserId(); - MaintenanceOrder maintenanceOrder = maintenanceOrderMapper.findMaintenanceOrderById(userId.longValue()); + + @Override + public MaintenanceOrderDetailVo detail(Long id) { + MaintenanceOrder maintenanceOrder = maintenanceOrderMapper.findMaintenanceOrderById(id); Assert.notNull(maintenanceOrder, "数据不存在"); MaintenanceOrderDetailVo vo = new MaintenanceOrderDetailVo(); @@ -182,6 +245,10 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService { Equipment equipment = equipmentMapper.selectById(maintenanceOrder.getEquipmentId()); vo.setEquipment(equipment); + //设置故障信息 + Fault fault = faultMapper.findFaultById(maintenanceOrder.getFaultId()); + vo.setFaultName(fault.getName()); + //设置接收人姓名 SystemAuthAdmin systemAuthAdmin = systemAuthAdminMapper.selectById(maintenanceOrder.getCreatorId()); vo.setCreatorName(systemAuthAdmin.getNickname()); @@ -194,4 +261,27 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService { return vo; } + + @Override + public void serviceOfferPrice(MaintenanceOrderParam maintenanceOrderParam) { + MaintenanceOrder maintenanceOrder = maintenanceOrderMapper.findMaintenanceOrderById(maintenanceOrderParam.getId()); + Assert.notNull(maintenanceOrder, "数据不存在"); + + maintenanceOrder.setFaultDescription(maintenanceOrderParam.getFaultDescription()); + maintenanceOrder.setFaultImg(maintenanceOrderParam.getFaultImg()); + + Client client = clientMapper.findClientById(maintenanceOrder.getClientId()); + for (SparePartParam item : maintenanceOrderParam.getSparePartParams()) { + SparePart sparePart = sparePartMapper.findSparePart(item.getId()); + + OrderSparePart orderSparePart = new OrderSparePart(); + BeanUtils.copyProperties(sparePart, orderSparePart); + + orderSparePart.setSparePartsId(item.getId()); + + } + + maintenanceOrderMapper.updateById(maintenanceOrder); + + } } diff --git a/front/src/main/java/com/hcy/front/service/order/impl/OrderSparePartServiceImpl.java b/front/src/main/java/com/hcy/front/service/order/impl/OrderSparePartServiceImpl.java new file mode 100644 index 0000000..f25a910 --- /dev/null +++ b/front/src/main/java/com/hcy/front/service/order/impl/OrderSparePartServiceImpl.java @@ -0,0 +1,152 @@ +package com.hcy.front.service.order.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.hcy.common.core.PageResult; +import com.hcy.common.dto.order.OrderSparePart; +import com.hcy.common.mapper.order.OrderSparePartMapper; +import com.hcy.front.service.order.IOrderSparePartService; +import com.hcy.front.validate.PageParam; +import com.hcy.front.validate.order.OrderSparePartParam; +import com.hcy.front.vo.order.OrderSparePartDetailVo; +import com.hcy.front.vo.order.OrderSparePartListVo; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.springframework.util.Assert; + +import javax.annotation.Resource; +import java.util.*; + +/** + * 订单配件实现类 + */ +@Service +public class OrderSparePartServiceImpl implements IOrderSparePartService { + + @Resource + OrderSparePartMapper orderSparePartMapper; + + /** + * 订单配件列表 + * + * @param pageParam 分页参数 + * @param params 搜索参数 + * @return PageResult + */ + @Override + public PageResult list(PageParam pageParam, Map params) { + Integer page = pageParam.getPageNo(); + Integer limit = pageParam.getPageSize(); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("is_delete", 0); + queryWrapper.orderByDesc("id"); + + orderSparePartMapper.setSearch(queryWrapper, params, new String[]{ + "=:sparePartsId@spare_parts_id:long", + "=:sparePartsCode@spare_parts_code:str", + "like:sparePartsName@spare_parts_name:str", + "like:warehouseName@warehouse_name:str", + "=:specificationsModel@specifications_model:str", + "=:unit:str", + "=:price:str", + "=:quantity:long", + "=:totalPrice@total_price:str", + }); + + IPage iPage = orderSparePartMapper.selectPage(new Page<>(page, limit), queryWrapper); + + + return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), null); + } + + /** + * 订单配件详情 + * + * @param id 主键参数 + * @return OrderSparePart + */ + @Override + public OrderSparePartDetailVo detail(Integer id) { + OrderSparePart model = orderSparePartMapper.selectOne( + new QueryWrapper() + .eq("id", id) + .eq("is_delete", 0) + .last("limit 1")); + + Assert.notNull(model, "数据不存在"); + + OrderSparePartDetailVo vo = new OrderSparePartDetailVo(); + BeanUtils.copyProperties(model, vo); + return vo; + } + + /** + * 订单配件新增 + * + * @param orderSparePartParam 参数 + */ + @Override + public void add(OrderSparePartParam orderSparePartParam) { + OrderSparePart model = new OrderSparePart(); + model.setSparePartsId(orderSparePartParam.getSparePartsId()); + model.setSparePartsCode(orderSparePartParam.getSparePartsCode()); + model.setSparePartsName(orderSparePartParam.getSparePartsName()); + model.setWarehouseName(orderSparePartParam.getWarehouseName()); + model.setSpecificationsModel(orderSparePartParam.getSpecificationsModel()); + model.setUnit(orderSparePartParam.getUnit()); + model.setPrice(orderSparePartParam.getPrice()); + model.setQuantity(orderSparePartParam.getQuantity()); + model.setTotalPrice(orderSparePartParam.getTotalPrice()); + orderSparePartMapper.insert(model); + } + + /** + * 订单配件编辑 + * + * @param orderSparePartParam 参数 + */ + @Override + public void edit(OrderSparePartParam orderSparePartParam) { + OrderSparePart model = orderSparePartMapper.selectOne( + new QueryWrapper() + .eq("id", orderSparePartParam.getId()) + .eq("is_delete", 0) + .last("limit 1")); + + Assert.notNull(model, "数据不存在!"); + + model.setId(orderSparePartParam.getId()); + model.setSparePartsId(orderSparePartParam.getSparePartsId()); + model.setSparePartsCode(orderSparePartParam.getSparePartsCode()); + model.setSparePartsName(orderSparePartParam.getSparePartsName()); + model.setWarehouseName(orderSparePartParam.getWarehouseName()); + model.setSpecificationsModel(orderSparePartParam.getSpecificationsModel()); + model.setUnit(orderSparePartParam.getUnit()); + model.setPrice(orderSparePartParam.getPrice()); + model.setQuantity(orderSparePartParam.getQuantity()); + model.setTotalPrice(orderSparePartParam.getTotalPrice()); + orderSparePartMapper.updateById(model); + } + + /** + * 订单配件删除 + * + * @param id 主键ID + */ + @Override + public void del(Long id) { + OrderSparePart model = orderSparePartMapper.selectOne( + new QueryWrapper() + .eq("id", id) + .eq("is_delete", 0) + .last("limit 1")); + + Assert.notNull(model, "数据不存在!"); + + model.setIsDelete(1); + orderSparePartMapper.updateById(model); + } + +} diff --git a/front/src/main/java/com/hcy/front/service/warehouse/ISparePartService.java b/front/src/main/java/com/hcy/front/service/warehouse/ISparePartService.java new file mode 100644 index 0000000..3a9d4fc --- /dev/null +++ b/front/src/main/java/com/hcy/front/service/warehouse/ISparePartService.java @@ -0,0 +1,35 @@ +package com.hcy.front.service.warehouse; + +import com.hcy.common.core.PageResult; +import com.hcy.front.validate.PageParam; +import com.hcy.front.validate.warehouse.SparePartParam; +import com.hcy.front.vo.warehouse.SparePartDetailVo; +import com.hcy.front.vo.warehouse.SparePartListVo; + +import java.util.List; +import java.util.Map; + +/** + * 备件信息服务接口类 + */ +public interface ISparePartService { + + /** + * 备件信息列表 + * + * @author hcy + * @param pageParam 分页参数 + * @param param 搜索参数 + * @return PageResult + */ + PageResult list(PageParam pageParam, SparePartParam param); + + /** + * 备件信息详情 + * + * @author hcy + * @param id 主键ID + * @return SparePart + */ + SparePartDetailVo detail(Integer id); +} diff --git a/front/src/main/java/com/hcy/front/service/warehouse/IWarehouseService.java b/front/src/main/java/com/hcy/front/service/warehouse/IWarehouseService.java new file mode 100644 index 0000000..d9e8e01 --- /dev/null +++ b/front/src/main/java/com/hcy/front/service/warehouse/IWarehouseService.java @@ -0,0 +1,59 @@ +package com.hcy.front.service.warehouse; + +import com.alibaba.fastjson.JSONArray; +import com.hcy.front.validate.warehouse.WarehouseParam; +import com.hcy.front.vo.warehouse.WarehouseDetailVo; +import com.hcy.front.vo.warehouse.WarehouseVo; + +import java.util.Map; + +/** + * 仓库管理服务接口类 + */ +public interface IWarehouseService { + + /** + * 仓库管理列表 + * + * @author hcy + * @param params 搜索参数 + * @return JSONArray + */ + JSONArray list(Map params); + + /** + * 仓库管理详情 + * + * @author hcy + * @param id 主键ID + * @return Warehouse + */ + WarehouseDetailVo detail(Integer id); + + /** + * 仓库管理新增 + * + * @author hcy + * @param warehouseParam 参数 + */ + void add(WarehouseParam warehouseParam); + + /** + * 仓库管理编辑 + * + * @author hcy + * @param warehouseParam 参数 + */ + void edit(WarehouseParam warehouseParam); + + /** + * 仓库管理删除 + * + * @author hcy + * @param ids + */ + void del(Long[] ids); + + + WarehouseVo selectWarehouseData(WarehouseVo warehouseVo); +} diff --git a/front/src/main/java/com/hcy/front/service/warehouse/impl/SparePartServiceImpl.java b/front/src/main/java/com/hcy/front/service/warehouse/impl/SparePartServiceImpl.java new file mode 100644 index 0000000..7681807 --- /dev/null +++ b/front/src/main/java/com/hcy/front/service/warehouse/impl/SparePartServiceImpl.java @@ -0,0 +1,124 @@ +package com.hcy.front.service.warehouse.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.hcy.common.constant.GlobalConstant; +import com.hcy.common.core.PageResult; +import com.hcy.common.dto.SparePartDto; +import com.hcy.common.entity.client.Client; +import com.hcy.common.entity.client.ClientContacts; +import com.hcy.common.entity.sparePart.SparePart; +import com.hcy.common.entity.warehouse.Warehouse; +import com.hcy.common.exception.OperateException; +import com.hcy.common.mapper.client.ClientContactsMapper; +import com.hcy.common.mapper.client.ClientMapper; +import com.hcy.common.mapper.sparePart.SparePartMapper; +import com.hcy.common.mapper.warehouse.WarehouseMapper; +import com.hcy.common.utils.StringUtil; +import com.hcy.common.utils.TimeUtil; +import com.hcy.front.FrontThreadLocal; +import com.hcy.front.service.warehouse.ISparePartService; +import com.hcy.front.validate.PageParam; +import com.hcy.front.validate.warehouse.SparePartParam; +import com.hcy.front.vo.warehouse.SparePartDetailVo; +import com.hcy.front.vo.warehouse.SparePartListVo; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.springframework.util.Assert; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.*; + +/** + * 备件信息实现类 + */ +@Service +public class SparePartServiceImpl implements ISparePartService { + + @Resource + SparePartMapper sparePartMapper; + + @Resource + WarehouseMapper warehouseMapper; + + @Resource + ClientMapper clientMapper; + + @Resource + ClientContactsMapper clientContactsMapper; + + /** + * 备件信息列表 + * + * @author hcy + * @param pageParam 分页参数 + * @param param 搜索参数 + * @return PageResult + */ + @Override + public PageResult list(PageParam pageParam, SparePartParam param) { + Integer page = pageParam.getPageNo(); + Integer limit = pageParam.getPageSize(); + + Assert.notNull(param.getClientId(),"客户id不可为空"); + SparePartDto sparePartDto = new SparePartDto(); + BeanUtils.copyProperties(param,sparePartDto); + + Client client = clientMapper.findClientById(param.getClientId()); + Map warehouseMap = new HashMap<>(); + + List sparePartList = new ArrayList<>(); + IPage iPage = sparePartMapper.pageList(new Page<>(page, limit),sparePartDto); + for (SparePartDto item : iPage.getRecords()) { + SparePartListVo sparePartListVo = new SparePartListVo(); + BeanUtils.copyProperties(item, sparePartListVo); + + //设置订单实际价格 + BigDecimal practicalPrice = item.getUnitPrice().multiply(client.getPurchaseDivisor()); + sparePartListVo.setUnitPrice(practicalPrice); + + if(warehouseMap.get(item.getWarehouseId()) == null){ + Warehouse warehouse = warehouseMapper.findWarehouseById(item.getWarehouseId()); + sparePartListVo.setWarehouseName(warehouse.getWarehouseName()); + warehouseMap.put(warehouse.getId(),warehouse.getWarehouseName()); + }else{ + sparePartListVo.setWarehouseName(warehouseMap.get(item.getWarehouseId())); + } + sparePartList.add(sparePartListVo); + } + + return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), sparePartList); + } + + /** + * 备件信息详情 + * + * @author hcy + * @param id 主键参数 + * @return SparePart + */ + @Override + public SparePartDetailVo detail(Integer id) { + SparePart model = sparePartMapper.selectOne( + new QueryWrapper() + .eq("id", id) + .eq("is_delete", 0) + .last("limit 1")); + Assert.notNull(model, "数据不存在"); + + SparePartDetailVo vo = new SparePartDetailVo(); + BeanUtils.copyProperties(model, vo); + //获取仓库名 + Warehouse warehouse = warehouseMapper.selectOne( + new QueryWrapper() + .eq("id", model.getWarehouseId()) + .eq("is_delete", 0) + .last("limit 1")); + vo.setWarehouseName(warehouse.getWarehouseName()); + return vo; + } +} diff --git a/front/src/main/java/com/hcy/front/service/warehouse/impl/WarehouseServiceImpl.java b/front/src/main/java/com/hcy/front/service/warehouse/impl/WarehouseServiceImpl.java new file mode 100644 index 0000000..5b43225 --- /dev/null +++ b/front/src/main/java/com/hcy/front/service/warehouse/impl/WarehouseServiceImpl.java @@ -0,0 +1,262 @@ +package com.hcy.front.service.warehouse.impl; + +import com.alibaba.fastjson.JSONArray; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.hcy.common.constant.GlobalConstant; +import com.hcy.common.entity.sparePart.SparePart; +import com.hcy.common.entity.warehouse.Warehouse; +import com.hcy.common.mapper.sparePart.SparePartMapper; +import com.hcy.common.mapper.warehouse.WarehouseMapper; +import com.hcy.common.utils.ArrayUtil; +import com.hcy.common.utils.TimeUtil; +import com.hcy.front.service.warehouse.IWarehouseService; +import com.hcy.front.validate.warehouse.WarehouseParam; +import com.hcy.front.vo.warehouse.SparePartDetailVo; +import com.hcy.front.vo.warehouse.WarehouseDetailVo; +import com.hcy.front.vo.warehouse.WarehouseVo; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.springframework.util.Assert; + +import javax.annotation.Resource; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +/** + * 仓库管理实现类 + */ +@Service +public class WarehouseServiceImpl implements IWarehouseService { + + @Resource + WarehouseMapper warehouseMapper; + + @Resource + SparePartMapper sparePartMapper; + + /** + * 仓库管理列表 + * + * @author hcy + * @param params 搜索参数 + * @return JSONArray + */ + @Override + public JSONArray list(Map params) { + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("is_delete", 0); + queryWrapper.orderByDesc("id"); + + warehouseMapper.setSearch(queryWrapper, params, new String[]{ + "=:parentId@parent_id:long", + "like:warehouseName@warehouse_name:str", + "like:warehouseCoding@warehouse_coding:str", + "=:warehouseAddress@warehouse_address:str", + }); + + List array = warehouseMapper.selectList(queryWrapper); + + List lists = new LinkedList<>(); + for (Warehouse warehouse : array) { + WarehouseDetailVo vo = new WarehouseDetailVo(); + BeanUtils.copyProperties(warehouse, vo); + + vo.setCreateTime(TimeUtil.timestampToDate(warehouse.getCreateTime())); + vo.setUpdateTime(TimeUtil.timestampToDate(warehouse.getUpdateTime())); + lists.add(vo); + } + + JSONArray jsonArray = JSONArray.parseArray(JSONArray.toJSONString(lists)); + return ArrayUtil.listToTree(jsonArray, "id", "pid", "children"); + } + + /** + * 仓库管理详情 + * + * @author hcy + * @param id 主键参数 + * @return Warehouse + */ + @Override + public WarehouseDetailVo detail(Integer id) { + Warehouse model = warehouseMapper.selectOne( + new QueryWrapper() + .eq("id", id) + .eq("is_delete", 0) + .last("limit 1")); + + Assert.notNull(model, "数据不存在"); + + WarehouseDetailVo vo = new WarehouseDetailVo(); + BeanUtils.copyProperties(model, vo); + return vo; + } + + /** + * 仓库管理新增 + * + * @author hcy + * @param warehouseParam 参数 + */ + @Override + public void add(WarehouseParam warehouseParam) { + Warehouse model = new Warehouse(); + model.setPid(warehouseParam.getPid()); + model.setWarehouseName(warehouseParam.getWarehouseName()); + model.setWarehouseCoding(warehouseParam.getWarehouseCoding()); + model.setWarehouseAddress(warehouseParam.getWarehouseAddress()); + model.setCreateTime(System.currentTimeMillis() / 1000); + warehouseMapper.insert(model); + } + + /** + * 仓库管理编辑 + * + * @author hcy + * @param warehouseParam 参数 + */ + @Override + public void edit(WarehouseParam warehouseParam) { + Warehouse model = warehouseMapper.selectOne( + new QueryWrapper() + .eq("id", warehouseParam.getId()) + .eq("is_delete", 0) + .last("limit 1")); + + Assert.notNull(model, "数据不存在!"); + + model.setId(warehouseParam.getId()); + model.setPid(warehouseParam.getPid()); + model.setWarehouseName(warehouseParam.getWarehouseName()); + model.setWarehouseCoding(warehouseParam.getWarehouseCoding()); + model.setWarehouseAddress(warehouseParam.getWarehouseAddress()); + model.setUpdateTime(System.currentTimeMillis() / 1000); + warehouseMapper.updateById(model); + } + + /** + * 仓库管理删除 + * + * @author hcy + * @param ids 主键ID + */ + @Override + public void del(Long[] ids) { + List modelList = warehouseMapper.selectList( + new QueryWrapper() + .in("id", ids)); + for (Long id : ids) { + //仓库存在配件且配件数量不为0时,不允许删除 + SparePart sparePart = sparePartMapper.selectOne( + new QueryWrapper() + .eq("warehouse_id", id) + .eq("is_delete", 0) + .last("limit 1")); + if(sparePart != null && sparePart.getQuantity() != 0){ + + }else{ + Warehouse pModel = warehouseMapper.selectOne( + new QueryWrapper() + .select("id,pid,warehouse_name") + .eq("pid", id) + .eq("is_delete", 0) + .last("limit 1")); + Assert.isNull(pModel, "请先删除子级仓库"); + } + + + } + + + + // GlobalConstant.NOT_DELETE 调用未删除常量 + // GlobalConstant.DELETE 删除标识 + + for (Warehouse warehouse : modelList) { + warehouse.setIsDelete(GlobalConstant.DELETE); + warehouse.setDeleteTime(System.currentTimeMillis() / 1000); + warehouseMapper.updateById(warehouse);// 进行伪删除 根据id把is_delete修改成1 + } + } + + /** + * 获取子节点仓库信息 + * @param pid 父id + * @return warehousesVo + */ + private List getChildrenWarehouseVo(Long pid){ + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper() + .eq(Warehouse::getPid, pid) + .eq(Warehouse::getIsDelete,"0"); + List warehouses = warehouseMapper.selectList(lambdaQueryWrapper); + //将实体类数据转到vo + List list = new LinkedList<>(); + for(Warehouse item : warehouses) { + WarehouseVo vo = new WarehouseVo(); + BeanUtils.copyProperties(item, vo); + list.add(vo); + } + // + for (WarehouseVo item : list) { + item.setWarehouseVoList(getChildrenWarehouseVo(item.getId())); + + //获取栏目的内容信息 + LambdaQueryWrapper sparePartLqw = new LambdaQueryWrapper<>(); + sparePartLqw.eq(SparePart::getWarehouseId, item.getId()); + //sparePartLqw.orderByDesc(AbContent::getReleaseDate); + + List sparePartVos = sparePartMapper.selectList(sparePartLqw); + //将实体类数据转到vo + List sparePartList = new LinkedList<>(); + for(SparePart sparePartItem : sparePartVos) { + SparePartDetailVo vo = new SparePartDetailVo(); + BeanUtils.copyProperties(sparePartItem, vo); + sparePartList.add(vo); + } + + if(sparePartVos != null){ + item.setSparePartVos(sparePartList); + } + } + return list; + } + + /** + * 传入仓库id时,查询仓库下的所有子仓库及子仓库的备件信息 + * + * @param warehouseVo + * @return + */ + public WarehouseVo selectWarehouseData(WarehouseVo warehouseVo) { + Warehouse warehouse = warehouseMapper.selectById(warehouseVo.getId()); + + WarehouseVo abWarehouseVo = new WarehouseVo(); + BeanUtils.copyProperties(warehouse, abWarehouseVo); + + //查询子仓库信息 + abWarehouseVo.setWarehouseVoList(getChildrenWarehouseVo(abWarehouseVo.getId())); + //获取仓库的备件信息 + LambdaQueryWrapper sparePartLqw = new LambdaQueryWrapper<>(); + sparePartLqw.eq(SparePart::getWarehouseId, warehouseVo.getId()); + //sparePartLqw.orderByDesc(SparePart::getReleaseDate); + List abSparePartVos = sparePartMapper.selectList(sparePartLqw); + + //将实体类数据转到vo + List sparePartList = new LinkedList<>(); + for(SparePart sparePartItem : abSparePartVos) { + SparePartDetailVo vo = new SparePartDetailVo(); + BeanUtils.copyProperties(sparePartItem, vo); + sparePartList.add(vo); + } + + if(abSparePartVos != null){ + abWarehouseVo.setSparePartVos(sparePartList); + } + + return abWarehouseVo; + } + +} diff --git a/front/src/main/java/com/hcy/front/validate/order/MaintenanceOrderParam.java b/front/src/main/java/com/hcy/front/validate/order/MaintenanceOrderParam.java index 43c95eb..7956ef3 100644 --- a/front/src/main/java/com/hcy/front/validate/order/MaintenanceOrderParam.java +++ b/front/src/main/java/com/hcy/front/validate/order/MaintenanceOrderParam.java @@ -1,5 +1,6 @@ package com.hcy.front.validate.order; +import com.hcy.front.validate.warehouse.SparePartParam; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -10,6 +11,7 @@ import javax.validation.constraints.NotNull; import java.io.Serializable; import java.math.BigDecimal; import java.util.Date; +import java.util.List; /** * 检修订单参数 @@ -33,7 +35,7 @@ public class MaintenanceOrderParam implements Serializable { @DecimalMin(value = "0", message = "orderSource参数值不能少于0", groups = {create.class}) private Integer orderSource; - private String orderStatus; + private Integer orderStatus; @NotNull(message = "clientId参数缺失", groups = {create.class}) @DecimalMin(value = "0", message = "clientId参数值不能少于0", groups = {create.class}) @@ -104,8 +106,11 @@ public class MaintenanceOrderParam implements Serializable { private String creatorName; // 创建人姓名 private String receiverName; // 接单人姓名 - private double longitude; // 经度 private double latitude; // 纬度 private Integer queryType; // 查询类型 0-离我最近 1-时间优先 + private String likeWork; //关键字 + + //服务报价列表 + private List sparePartParams; } diff --git a/front/src/main/java/com/hcy/front/validate/order/OrderSparePartParam.java b/front/src/main/java/com/hcy/front/validate/order/OrderSparePartParam.java new file mode 100644 index 0000000..f90e7d9 --- /dev/null +++ b/front/src/main/java/com/hcy/front/validate/order/OrderSparePartParam.java @@ -0,0 +1,62 @@ +package com.hcy.front.validate.order; + +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.hibernate.validator.constraints.Length; + +import lombok.Data; +import javax.validation.constraints.*; +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 订单配件参数 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +public class OrderSparePartParam implements Serializable { + + private static final long serialVersionUID = 1L; + + public interface create{} + public interface update{} + public interface delete{} + + private Long id; + + @NotNull(message = "sparePartsId参数缺失", groups = {create.class, update.class}) + @DecimalMin(value = "0", message = "sparePartsId参数值不能少于0", groups = {create.class, update.class}) + private Long sparePartsId; + + @NotNull(message = "sparePartsCode参数缺失", groups = {create.class, update.class}) + @Length(max = 100, message = "sparePartsCode参数不能超出100个字符", groups = {create.class, update.class}) + private String sparePartsCode; + + @NotNull(message = "sparePartsName参数缺失", groups = {create.class, update.class}) + @Length(max = 50, message = "sparePartsName参数不能超出50个字符", groups = {create.class, update.class}) + private String sparePartsName; + + @NotNull(message = "warehouseName参数缺失", groups = {create.class, update.class}) + @Length(max = 100, message = "warehouseName参数不能超出100个字符", groups = {create.class, update.class}) + private String warehouseName; + + @NotNull(message = "specificationsModel参数缺失", groups = {create.class, update.class}) + @Length(max = 50, message = "specificationsModel参数不能超出50个字符", groups = {create.class, update.class}) + private String specificationsModel; + + @NotNull(message = "unit参数缺失", groups = {create.class, update.class}) + @Length(max = 20, message = "unit参数不能超出20个字符", groups = {create.class, update.class}) + private String unit; + + @NotNull(message = "price参数缺失", groups = {create.class, update.class}) + private BigDecimal price; + + @NotNull(message = "quantity参数缺失", groups = {create.class, update.class}) + @DecimalMin(value = "0", message = "quantity参数值不能少于0", groups = {create.class, update.class}) + private Long quantity; + + @NotNull(message = "totalPrice参数缺失", groups = {create.class, update.class}) + private BigDecimal totalPrice; + +} diff --git a/front/src/main/java/com/hcy/front/validate/warehouse/SparePartParam.java b/front/src/main/java/com/hcy/front/validate/warehouse/SparePartParam.java new file mode 100644 index 0000000..cfff11e --- /dev/null +++ b/front/src/main/java/com/hcy/front/validate/warehouse/SparePartParam.java @@ -0,0 +1,60 @@ +package com.hcy.front.validate.warehouse; + + +import com.hcy.common.entity.client.Client; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.DecimalMin; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.List; + +/** + * 备件信息参数 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +public class SparePartParam implements Serializable { + + private static final long serialVersionUID = 1L; + + public interface create{} + public interface update{} + public interface delete{} + + private Long id; + + @NotNull(message = "sparePartsCode参数缺失", groups = {create.class, update.class}) + @Length(max = 255, message = "sparePartsCode参数不能超出255个字符", groups = {create.class, update.class}) + private String sparePartsCode; + + @NotNull(message = "sparePartsName参数缺失", groups = {create.class, update.class}) + @Length(max = 255, message = "sparePartsName参数不能超出255个字符", groups = {create.class, update.class}) + private String sparePartsName; + + @NotNull(message = "warehouseId参数缺失", groups = {create.class, update.class}) + @DecimalMin(value = "0", message = "warehouseId参数值不能少于0", groups = {create.class, update.class}) + private Long warehouseId; + + @NotNull(message = "specificationsModel参数缺失", groups = {create.class, update.class}) + @Length(max = 255, message = "specificationsModel参数不能超出255个字符", groups = {create.class, update.class}) + private String specificationsModel; + + @NotNull(message = "unit参数缺失", groups = {create.class, update.class}) + @Length(max = 11, message = "unit参数不能超出11个字符", groups = {create.class, update.class}) + private String unit; + + private Integer quantity; + + private BigDecimal unitPrice; + + private List ids; //批量删除 + + private String keywords; //关键字 + private Long clientId; //客户id +} diff --git a/front/src/main/java/com/hcy/front/validate/warehouse/WarehouseParam.java b/front/src/main/java/com/hcy/front/validate/warehouse/WarehouseParam.java new file mode 100644 index 0000000..168e22e --- /dev/null +++ b/front/src/main/java/com/hcy/front/validate/warehouse/WarehouseParam.java @@ -0,0 +1,43 @@ +package com.hcy.front.validate.warehouse; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * 仓库管理参数 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +public class WarehouseParam implements Serializable { + + private static final long serialVersionUID = 1L; + + public interface create{} + public interface update{} + public interface delete{} + + @NotNull(message = "id参数缺失", groups = {update.class, delete.class}) + private Long id; + + private Long pid; + + @NotNull(message = "warehouseName参数缺失", groups = {create.class, update.class}) + @Length(max = 255, message = "warehouseName参数不能超出255个字符", groups = {create.class, update.class}) + private String warehouseName; + + @NotNull(message = "warehouseCoding参数缺失", groups = {create.class, update.class}) + @Length(max = 255, message = "warehouseCoding参数不能超出255个字符", groups = {create.class, update.class}) + private String warehouseCoding; + + @NotNull(message = "warehouseAddress参数缺失", groups = {create.class, update.class}) + @Length(max = 255, message = "warehouseAddress参数不能超出255个字符", groups = {create.class, update.class}) + private String warehouseAddress; + + private Long[] ids; +} diff --git a/front/src/main/java/com/hcy/front/vo/order/MaintenanceOrderDetailVo.java b/front/src/main/java/com/hcy/front/vo/order/MaintenanceOrderDetailVo.java index c2bec74..4384b93 100644 --- a/front/src/main/java/com/hcy/front/vo/order/MaintenanceOrderDetailVo.java +++ b/front/src/main/java/com/hcy/front/vo/order/MaintenanceOrderDetailVo.java @@ -17,8 +17,8 @@ public class MaintenanceOrderDetailVo implements Serializable { private Long id; // id private String orderNo; // 订单编号 - private Long orderSource; // 订单来源 0-客户上报;1-系统创建;2-维修员创建;3-检修员创建;4-客服创建;5-维修主管创建 - private Long orderStatus; // 订单状态 0-待抢单;1-待接单;2-接单超时;3-检测中;4-待客户确认;5-维修中;6-已完成;7-已退单;8-已关闭 + private Integer orderSource; // 订单来源 0-客户上报;1-系统创建;2-维修员创建;3-检修员创建;4-客服创建;5-维修主管创建 + private Integer orderStatus; // 订单状态 0-待抢单;1-待接单;2-接单超时;3-检测中;4-待客户确认;5-维修中;6-已完成;7-已退单;8-已关闭 private Long clientId; // 客户id private Long equipmentId; // 设备id private Long faultId; // 故障id @@ -43,6 +43,7 @@ public class MaintenanceOrderDetailVo implements Serializable { private Long familiarFaultId; // 常见维修结论id private String familiarFaultDescription; // 常见维修结论描述 private Integer repairWorkOrderFlow; //工单去向 0=工单池 1=检修员 + private Date createTime; // 创建时间 private String clientName; // 客户姓名 private Equipment equipment; //设备信息 diff --git a/front/src/main/java/com/hcy/front/vo/order/MaintenanceOrderListVo.java b/front/src/main/java/com/hcy/front/vo/order/MaintenanceOrderListVo.java index 520687c..b081824 100644 --- a/front/src/main/java/com/hcy/front/vo/order/MaintenanceOrderListVo.java +++ b/front/src/main/java/com/hcy/front/vo/order/MaintenanceOrderListVo.java @@ -44,7 +44,8 @@ public class MaintenanceOrderListVo implements Serializable { private Date createTime; // 创建时间 private Date updateTime; // 更新时间 private Integer repairWorkOrderFlow; //工单去向 0=工单池 1=检修员 - private String distance; //距离 + private Double distance; //距离 + private String practicalDistance; //实际距离 private String faultName; //故障名称 private String equipmentNo; //设备编号 diff --git a/front/src/main/java/com/hcy/front/vo/order/OrderSparePartDetailVo.java b/front/src/main/java/com/hcy/front/vo/order/OrderSparePartDetailVo.java new file mode 100644 index 0000000..1a1f7fd --- /dev/null +++ b/front/src/main/java/com/hcy/front/vo/order/OrderSparePartDetailVo.java @@ -0,0 +1,27 @@ +package com.hcy.front.vo.order; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * OrderSparePartVo + */ +@Data +public class OrderSparePartDetailVo implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; // id + private Long sparePartsId; // 备件id + private String sparePartsCode; // 备件编码 + private String sparePartsName; // 备件名称 + private String warehouseName; // 所属仓库名称 + private String specificationsModel; // 规格型号 + private String unit; // 单位 + private BigDecimal price; // 价格 + private Long quantity; // 数量 + private BigDecimal totalPrice; // 总价 + +} diff --git a/front/src/main/java/com/hcy/front/vo/order/OrderSparePartListVo.java b/front/src/main/java/com/hcy/front/vo/order/OrderSparePartListVo.java new file mode 100644 index 0000000..4a77521 --- /dev/null +++ b/front/src/main/java/com/hcy/front/vo/order/OrderSparePartListVo.java @@ -0,0 +1,27 @@ +package com.hcy.front.vo.order; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * OrderSparePartVo + */ +@Data +public class OrderSparePartListVo implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; // id + private Long sparePartsId; // 备件id + private String sparePartsCode; // 备件编码 + private String sparePartsName; // 备件名称 + private String warehouseName; // 所属仓库名称 + private String specificationsModel; // 规格型号 + private String unit; // 单位 + private BigDecimal price; // 价格 + private Long quantity; // 数量 + private BigDecimal totalPrice; // 总价 + +} diff --git a/front/src/main/java/com/hcy/front/vo/warehouse/SparePartDetailVo.java b/front/src/main/java/com/hcy/front/vo/warehouse/SparePartDetailVo.java new file mode 100644 index 0000000..62ee890 --- /dev/null +++ b/front/src/main/java/com/hcy/front/vo/warehouse/SparePartDetailVo.java @@ -0,0 +1,26 @@ +package com.hcy.front.vo.warehouse; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * SparePartVo + */ +@Data +public class SparePartDetailVo implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; // 主键id + private String sparePartsCode; // 备件编码 + private String sparePartsName; // 备件名称 + private Long warehouseId; // 所属仓库 + private String specificationsModel; // 规格型号 + private String unit; // 单位 + private Integer quantity; // 库存数量 + private BigDecimal unitPrice; // 单价 + private String warehouseName; // 所属仓库名 + +} diff --git a/front/src/main/java/com/hcy/front/vo/warehouse/SparePartListVo.java b/front/src/main/java/com/hcy/front/vo/warehouse/SparePartListVo.java new file mode 100644 index 0000000..05f3312 --- /dev/null +++ b/front/src/main/java/com/hcy/front/vo/warehouse/SparePartListVo.java @@ -0,0 +1,30 @@ +package com.hcy.front.vo.warehouse; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * SparePartVo + */ +@Data +public class SparePartListVo implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; // 主键id + private String sparePartsCode; // 备件编码 + private String sparePartsName; // 备件名称 + private Long warehouseId; // 所属仓库 + private String specificationsModel; // 规格型号 + private String unit; // 单位 + private Integer quantity; // 库存数量 + private String createTime; // 创建时间 + private String updateTime; // 更新时间 + private BigDecimal unitPrice; // 单价 + + // 备件模糊关键字 + private String likeWork; + private String warehouseName; // 所属仓库名 +} diff --git a/front/src/main/java/com/hcy/front/vo/warehouse/WarehouseDetailVo.java b/front/src/main/java/com/hcy/front/vo/warehouse/WarehouseDetailVo.java new file mode 100644 index 0000000..9455db8 --- /dev/null +++ b/front/src/main/java/com/hcy/front/vo/warehouse/WarehouseDetailVo.java @@ -0,0 +1,23 @@ +package com.hcy.front.vo.warehouse; + +import lombok.Data; + +import java.io.Serializable; + +/** + * WarehouseVo + */ +@Data +public class WarehouseDetailVo implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; // 主键id + private Long pid; // 上级仓库 + private String warehouseName; // 仓库名称(唯一) + private String warehouseCoding; // 仓库编码 + private String warehouseAddress; // 仓库地址 + private String createTime; // 创建时间 + private String updateTime; // 更新时间 + +} diff --git a/front/src/main/java/com/hcy/front/vo/warehouse/WarehouseListVo.java b/front/src/main/java/com/hcy/front/vo/warehouse/WarehouseListVo.java new file mode 100644 index 0000000..dfcfc13 --- /dev/null +++ b/front/src/main/java/com/hcy/front/vo/warehouse/WarehouseListVo.java @@ -0,0 +1,20 @@ +package com.hcy.front.vo.warehouse; + +import lombok.Data; + +import java.io.Serializable; + +/** + * WarehouseVo + */ +@Data +public class WarehouseListVo implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; // 主键id + private Long pid; // 上级仓库 + private String warehouseName; // 仓库名称(唯一) + private String warehouseCoding; // 仓库编码 + private String warehouseAddress; // 仓库地址 +} diff --git a/front/src/main/java/com/hcy/front/vo/warehouse/WarehouseVo.java b/front/src/main/java/com/hcy/front/vo/warehouse/WarehouseVo.java new file mode 100644 index 0000000..e767039 --- /dev/null +++ b/front/src/main/java/com/hcy/front/vo/warehouse/WarehouseVo.java @@ -0,0 +1,27 @@ +package com.hcy.front.vo.warehouse; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +@Data +public class WarehouseVo implements Serializable { + + private Long id; // 主键id + private Long pid; // 上级仓库 + private String warehouseName; // 仓库名称(唯一) + private String warehouseCoding; // 仓库编码 + private String warehouseAddress; // 仓库地址 + private String createTime; // 创建时间 + private String updateTime; // 更新时间 + /** + * 子栏目 + */ + private List warehouseVoList; + + /** + * 所属内容信息 + */ + private List sparePartVos; +}