【front】新增# 1.新增备件信息根据不同订单类型查询

dev
dabin 2024-08-29 16:06:16 +08:00
parent 7c3b241efb
commit 086186df8d
11 changed files with 197 additions and 11 deletions

View File

@ -0,0 +1,18 @@
package com.hcy.admin.service.order;
import com.hcy.common.entity.order.OrderOperateRecord;
/**
*
*/
public interface IOrderOperateRecordService {
/**
*
* @param orderId id
* @param titleDsc
* @param description
*/
void addMaintenanceOrder(Long orderId,String titleDsc,String description);
}

View File

@ -27,13 +27,16 @@ import com.hcy.common.entity.client.Equipment;
import com.hcy.common.entity.client.EquipmentModel;
import com.hcy.common.entity.fault.Fault;
import com.hcy.common.entity.order.MaintenanceOrder;
import com.hcy.common.entity.order.OrderOperateRecord;
import com.hcy.common.entity.order.repair.MaintenanceRepair;
import com.hcy.common.entity.sparePartStockAudit.SparePartStockAudit;
import com.hcy.common.entity.system.SystemAuthAdmin;
import com.hcy.common.entity.user.User;
import com.hcy.common.entity.warehouse.Warehouse;
import com.hcy.common.enums.SparePartStockAuditEnum;
import com.hcy.common.enums.equipment.EquipmentStateEnum;
import com.hcy.common.enums.order.MaintenanceOrderStatusEnum;
import com.hcy.common.enums.order.OrderOperateRecordEnum;
import com.hcy.common.enums.order.OrderStateEnum;
import com.hcy.common.exception.OperateException;
import com.hcy.common.mapper.address.UserAddressMapper;
@ -43,6 +46,7 @@ import com.hcy.common.mapper.client.EquipmentMapper;
import com.hcy.common.mapper.client.EquipmentModelMapper;
import com.hcy.common.mapper.fault.FaultMapper;
import com.hcy.common.mapper.order.MaintenanceOrderMapper;
import com.hcy.common.mapper.order.OrderOperateRecordMapper;
import com.hcy.common.mapper.order.OrderSparePartMapper;
import com.hcy.common.mapper.order.repair.MaintenanceRepairMapper;
import com.hcy.common.mapper.sparePartStockAudit.SparePartStockAuditMapper;
@ -53,11 +57,11 @@ import com.hcy.common.utils.OrderUtil;
import com.hcy.common.utils.TimeUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
/**
@ -108,6 +112,9 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
@Resource
SparePartStockAuditMapper sparePartStockAuditMapper;
@Resource
OrderOperateRecordServiceImpl orderOperateRecordService;
/**
*
*
@ -235,7 +242,8 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
}
//设置配件领用明细
SparePartStockAudit sparePartStockAudit = sparePartStockAuditMapper.findSparePartStockAuditByOrderId(model.getId());
SparePartStockAudit sparePartStockAudit = sparePartStockAuditMapper.findSparePartStockAuditByOrderId(model.getId()
, SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus());
if(sparePartStockAudit != null){
SparePartStockAuditDetailVo sparePartStockAuditDetailVo = new SparePartStockAuditDetailVo();
BeanUtils.copyProperties(sparePartStockAudit,sparePartStockAuditDetailVo);
@ -284,6 +292,7 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
* @param maintenanceOrderParam
*/
@Override
@Transactional
public void add(MaintenanceOrderParam maintenanceOrderParam) {
MaintenanceOrder model = new MaintenanceOrder();
BeanUtils.copyProperties(maintenanceOrderParam, model);
@ -308,8 +317,12 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
MaintenanceOrder maintenanceOrder = maintenanceOrderMapper.findLastMaintenanceOrderByTime(TimeUtil.getCurrentTimeYYYYMMDD());
model.setOrderNo(OrderUtil.getOrderNo(maintenanceOrder == null ? "" :maintenanceOrder.getOrderNo()));
model.setCreatorId(AdminThreadLocal.getAdminId().longValue());
maintenanceOrderMapper.insert(model);
//新增订单操作记录
orderOperateRecordService.addMaintenanceOrder(model.getId()
,OrderOperateRecordEnum.NEW_CREATE.getDesc()
,"【"+AdminThreadLocal.get("name")+"】创建了检修工单。");
}
/**
@ -335,6 +348,9 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
//重新指派员工
if(param.getReceiverId() != null && param.getId() != null){
model.setOrderStatus(MaintenanceOrderStatusEnum.PENDING_ORDER.getStatus());
//新增订单操作记录
//orderOperateRecordService.addMaintenanceOrder(model.getId(),OrderOperateRecordEnum.);
}
model.setReceiverId(param.getReceiverId());
model.setReceiverType(param.getReceiverType());

View File

@ -0,0 +1,31 @@
package com.hcy.admin.service.order.impl;
import com.hcy.admin.AdminThreadLocal;
import com.hcy.admin.service.order.IOrderOperateRecordService;
import com.hcy.common.entity.order.OrderOperateRecord;
import com.hcy.common.enums.SparePartStockAuditEnum;
import com.hcy.common.enums.order.OrderOperateRecordEnum;
import com.hcy.common.mapper.order.OrderOperateRecordMapper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
*
*/
@Service
public class OrderOperateRecordServiceImpl implements IOrderOperateRecordService {
@Resource
private OrderOperateRecordMapper orderOperateRecordMapper;
@Override
public void addMaintenanceOrder(Long orderId,String titleDsc,String description) {
OrderOperateRecord orderOperateRecord = new OrderOperateRecord();
orderOperateRecord.setOrderId(orderId);
orderOperateRecord.setOrderType(SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus());
orderOperateRecord.setTitle(titleDsc);
orderOperateRecord.setDescription(description);
orderOperateRecordMapper.insert(orderOperateRecord);
}
}

View File

@ -165,7 +165,9 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
}
vo.setOrderSparePartListVoList(orderSparePartListVoList);
vo.setWorkOrderNo(maintenanceOrder.getOrderNo());
vo.setOrderId(maintenanceOrder.getId());
vo.setRecipient(user.getUsername());
vo.setRecipientPhone(user.getMobile());
vo.setRecipientNumber(number);

View File

@ -0,0 +1,27 @@
package com.hcy.common.entity.order;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
*
*/
@Data
public class OrderOperateRecord implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value="id", type= IdType.AUTO)
private Long id; // id
private Long orderId; // 订单id
private Integer orderType; // 订单类型 0-检修工单 1-维修工单
private String title; // 标题
private String description; // 描述
private Integer dscType; // 描述类型0-报价 1-配件领用 2-审核 3-发货
private Date createTime; // 创建时间
}

View File

@ -0,0 +1,66 @@
package com.hcy.common.enums.order;
import com.google.common.collect.Maps;
import java.util.Map;
/**
*
* @author dabin
*/
public enum OrderOperateRecordEnum {
// 标题
NEW_CREATE(0,"新建"),
ORDER_RECEIVING(1,"接单"),
START_SERVICE(2,"开始服务"),
CUSTOMER_QUOTATION(3,"客户报价"),
SPARE_PARTS_APPLY_FOR(4,"备件领用申请"),
SPARE_PARTS_AUDIT(5,"备件领用审核"),
DELIVER_GOODS(6,"发货"),
RECEIVE_GOODS(7,"收货"),
SPARE_PARTS_RECEIVE(8,"配件领用"),
FILL_IN_RECEIPT(9,"填写回单"),
// 描述类型
QUOTATION(0,"报价"),
SPARE_PARTS_RECEIVE_TYPE(1,"配件领用"),
AUDIT(2,"审核"),
DELIVER_GOODS_TYPE(3,"发货");
private final int status;
private final String desc;
OrderOperateRecordEnum(int status, String desc) {
this.status = status;
this.desc = desc;
}
/**
*
*
* @return int
* @author dabin
*/
public int getStatus() {
return this.status;
}
/**
*
*
* @return String
* @author dabin
*/
public String getDesc() {
return this.desc;
}
public static Map<Integer, String> getMap() {
Map<Integer, String> map = Maps.newHashMap();
for (OrderOperateRecordEnum auditStateEnum : OrderOperateRecordEnum.values()) {
map.put(auditStateEnum.status, auditStateEnum.desc);
}
return map;
}
}

View File

@ -0,0 +1,14 @@
package com.hcy.common.mapper.order;
import com.hcy.common.core.basics.IBaseMapper;
import com.hcy.common.entity.order.OrderOperateRecord;
import org.apache.ibatis.annotations.Mapper;
/**
* Mapper
* @author dabin
*/
@Mapper
public interface OrderOperateRecordMapper extends IBaseMapper<OrderOperateRecord> {
}

View File

@ -30,6 +30,6 @@ public interface SparePartStockAuditMapper extends IBaseMapper<SparePartStockAud
* @param orderId id
* @return SparePartStockAudit
*/
@Select("select * from la_spare_part_stock_audit where is_delete = 0 and order_type = 0 and order_id = #{orderId}")
SparePartStockAudit findSparePartStockAuditByOrderId(@Param("orderId") Long orderId);
@Select("select * from la_spare_part_stock_audit where is_delete = 0 and order_type = #{orderType} and order_id = #{orderId}")
SparePartStockAudit findSparePartStockAuditByOrderId(@Param("orderId") Long orderId,@Param("orderType") Integer orderType);
}

View File

@ -255,7 +255,8 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
}
//设置备件领用信息
SparePartStockAudit sparePartStockAudit = sparePartStockAuditMapper.findSparePartStockAuditByOrderId(item.getId());
SparePartStockAudit sparePartStockAudit = sparePartStockAuditMapper.findSparePartStockAuditByOrderId(item.getId()
,SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus());
if(sparePartStockAudit != null){
SparePartStockAuditDetailVo sparePartStockAuditDetailVo = new SparePartStockAuditDetailVo();
BeanUtils.copyProperties(sparePartStockAudit,sparePartStockAuditDetailVo);
@ -426,7 +427,8 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
}
//设置备件领用信息
SparePartStockAudit sparePartStockAudit = sparePartStockAuditMapper.findSparePartStockAuditByOrderId(maintenanceOrder.getId());
SparePartStockAudit sparePartStockAudit = sparePartStockAuditMapper.findSparePartStockAuditByOrderId(maintenanceOrder.getId()
,SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus());
if(sparePartStockAudit != null){
SparePartStockAuditDetailVo sparePartStockAuditDetailVo = new SparePartStockAuditDetailVo();
BeanUtils.copyProperties(sparePartStockAudit,sparePartStockAuditDetailVo);
@ -554,7 +556,8 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
sparePartStockAudit.setPurchaseStatus(AuditStateEnum.DONE.getStatus());
sparePartStockAuditMapper.insert(sparePartStockAudit);*/
}else{
SparePartStockAudit resultSps = sparePartStockAuditMapper.findSparePartStockAuditByOrderId(maintenanceOrder.getId());
SparePartStockAudit resultSps = sparePartStockAuditMapper.findSparePartStockAuditByOrderId(maintenanceOrder.getId()
,SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus());
if(resultSps != null){
//已有领取记录但被拒绝则重新审核
resultSps.setPurchaseStatus(AuditStateEnum.UNREVIEWED.getStatus());
@ -679,7 +682,8 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
MaintenanceOrder maintenanceOrder = maintenanceOrderMapper.findMaintenanceOrderById(maintenanceOrderParam.getId());
Assert.notNull(maintenanceOrder, "数据不存在");
SparePartStockAudit resultSps = sparePartStockAuditMapper.findSparePartStockAuditByOrderId(maintenanceOrder.getId());
SparePartStockAudit resultSps = sparePartStockAuditMapper.findSparePartStockAuditByOrderId(maintenanceOrder.getId()
,SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus());
if(resultSps != null){
if(resultSps.getPurchaseStatus() == AuditStateEnum.WAITFORRECEIVING.getStatus()){
//确认收货后可进行填写回单操作

View File

@ -12,6 +12,7 @@ import com.hcy.common.entity.client.ClientContacts;
import com.hcy.common.entity.sparePart.SparePart;
import com.hcy.common.entity.user.User;
import com.hcy.common.entity.warehouse.Warehouse;
import com.hcy.common.enums.SparePartStockAuditEnum;
import com.hcy.common.enums.order.MaintenanceOrderStatusEnum;
import com.hcy.common.exception.OperateException;
import com.hcy.common.mapper.client.ClientContactsMapper;
@ -72,6 +73,7 @@ public class SparePartServiceImpl implements ISparePartService {
Integer limit = pageParam.getPageSize();
Assert.notNull(param.getClientId(),"客户id不可为空");
Assert.notNull(param.getOrderType(),"订单类型不可为空");
SparePartDto sparePartDto = new SparePartDto();
BeanUtils.copyProperties(param,sparePartDto);
@ -94,8 +96,13 @@ public class SparePartServiceImpl implements ISparePartService {
SparePartListVo sparePartListVo = new SparePartListVo();
BeanUtils.copyProperties(item, sparePartListVo);
//设置订单实际价格
BigDecimal practicalPrice = item.getUnitPrice().multiply(client.getPurchaseDivisor());
//设置订单实际价格 根据不同订单类型计算对应的实际价格
BigDecimal practicalPrice;
if(param.getOrderType() == SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus()){
practicalPrice = item.getUnitPrice().multiply(client.getPointMaintainDivisor());
}else{
practicalPrice = item.getUnitPrice().multiply(client.getPurchaseDivisor());
}
sparePartListVo.setUnitPrice(practicalPrice);
if(warehouseMap.get(item.getWarehouseId()) == null){

View File

@ -58,4 +58,5 @@ public class SparePartParam implements Serializable {
private String keywords; //关键字
private Long clientId; //客户id
private Integer warehouseType; //仓库类型 0-我的仓库 1-公共仓库
private Integer orderType; //订单类型 0-检修单 1-维修单
}