【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.client.EquipmentModel;
import com.hcy.common.entity.fault.Fault; import com.hcy.common.entity.fault.Fault;
import com.hcy.common.entity.order.MaintenanceOrder; 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.order.repair.MaintenanceRepair;
import com.hcy.common.entity.sparePartStockAudit.SparePartStockAudit; import com.hcy.common.entity.sparePartStockAudit.SparePartStockAudit;
import com.hcy.common.entity.system.SystemAuthAdmin; import com.hcy.common.entity.system.SystemAuthAdmin;
import com.hcy.common.entity.user.User; import com.hcy.common.entity.user.User;
import com.hcy.common.entity.warehouse.Warehouse; 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.equipment.EquipmentStateEnum;
import com.hcy.common.enums.order.MaintenanceOrderStatusEnum; 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.enums.order.OrderStateEnum;
import com.hcy.common.exception.OperateException; import com.hcy.common.exception.OperateException;
import com.hcy.common.mapper.address.UserAddressMapper; 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.client.EquipmentModelMapper;
import com.hcy.common.mapper.fault.FaultMapper; import com.hcy.common.mapper.fault.FaultMapper;
import com.hcy.common.mapper.order.MaintenanceOrderMapper; 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.OrderSparePartMapper;
import com.hcy.common.mapper.order.repair.MaintenanceRepairMapper; import com.hcy.common.mapper.order.repair.MaintenanceRepairMapper;
import com.hcy.common.mapper.sparePartStockAudit.SparePartStockAuditMapper; import com.hcy.common.mapper.sparePartStockAudit.SparePartStockAuditMapper;
@ -53,11 +57,11 @@ import com.hcy.common.utils.OrderUtil;
import com.hcy.common.utils.TimeUtil; import com.hcy.common.utils.TimeUtil;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert; import org.springframework.util.Assert;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
/** /**
@ -108,6 +112,9 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
@Resource @Resource
SparePartStockAuditMapper sparePartStockAuditMapper; 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){ if(sparePartStockAudit != null){
SparePartStockAuditDetailVo sparePartStockAuditDetailVo = new SparePartStockAuditDetailVo(); SparePartStockAuditDetailVo sparePartStockAuditDetailVo = new SparePartStockAuditDetailVo();
BeanUtils.copyProperties(sparePartStockAudit,sparePartStockAuditDetailVo); BeanUtils.copyProperties(sparePartStockAudit,sparePartStockAuditDetailVo);
@ -284,6 +292,7 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
* @param maintenanceOrderParam * @param maintenanceOrderParam
*/ */
@Override @Override
@Transactional
public void add(MaintenanceOrderParam maintenanceOrderParam) { public void add(MaintenanceOrderParam maintenanceOrderParam) {
MaintenanceOrder model = new MaintenanceOrder(); MaintenanceOrder model = new MaintenanceOrder();
BeanUtils.copyProperties(maintenanceOrderParam, model); BeanUtils.copyProperties(maintenanceOrderParam, model);
@ -308,8 +317,12 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
MaintenanceOrder maintenanceOrder = maintenanceOrderMapper.findLastMaintenanceOrderByTime(TimeUtil.getCurrentTimeYYYYMMDD()); MaintenanceOrder maintenanceOrder = maintenanceOrderMapper.findLastMaintenanceOrderByTime(TimeUtil.getCurrentTimeYYYYMMDD());
model.setOrderNo(OrderUtil.getOrderNo(maintenanceOrder == null ? "" :maintenanceOrder.getOrderNo())); model.setOrderNo(OrderUtil.getOrderNo(maintenanceOrder == null ? "" :maintenanceOrder.getOrderNo()));
model.setCreatorId(AdminThreadLocal.getAdminId().longValue()); model.setCreatorId(AdminThreadLocal.getAdminId().longValue());
maintenanceOrderMapper.insert(model); 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){ if(param.getReceiverId() != null && param.getId() != null){
model.setOrderStatus(MaintenanceOrderStatusEnum.PENDING_ORDER.getStatus()); model.setOrderStatus(MaintenanceOrderStatusEnum.PENDING_ORDER.getStatus());
//新增订单操作记录
//orderOperateRecordService.addMaintenanceOrder(model.getId(),OrderOperateRecordEnum.);
} }
model.setReceiverId(param.getReceiverId()); model.setReceiverId(param.getReceiverId());
model.setReceiverType(param.getReceiverType()); 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.setOrderSparePartListVoList(orderSparePartListVoList);
vo.setWorkOrderNo(maintenanceOrder.getOrderNo()); vo.setWorkOrderNo(maintenanceOrder.getOrderNo());
vo.setOrderId(maintenanceOrder.getId());
vo.setRecipient(user.getUsername()); vo.setRecipient(user.getUsername());
vo.setRecipientPhone(user.getMobile()); vo.setRecipientPhone(user.getMobile());
vo.setRecipientNumber(number); 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 * @param orderId id
* @return SparePartStockAudit * @return SparePartStockAudit
*/ */
@Select("select * from la_spare_part_stock_audit where is_delete = 0 and order_type = 0 and order_id = #{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); 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){ if(sparePartStockAudit != null){
SparePartStockAuditDetailVo sparePartStockAuditDetailVo = new SparePartStockAuditDetailVo(); SparePartStockAuditDetailVo sparePartStockAuditDetailVo = new SparePartStockAuditDetailVo();
BeanUtils.copyProperties(sparePartStockAudit,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){ if(sparePartStockAudit != null){
SparePartStockAuditDetailVo sparePartStockAuditDetailVo = new SparePartStockAuditDetailVo(); SparePartStockAuditDetailVo sparePartStockAuditDetailVo = new SparePartStockAuditDetailVo();
BeanUtils.copyProperties(sparePartStockAudit,sparePartStockAuditDetailVo); BeanUtils.copyProperties(sparePartStockAudit,sparePartStockAuditDetailVo);
@ -554,7 +556,8 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
sparePartStockAudit.setPurchaseStatus(AuditStateEnum.DONE.getStatus()); sparePartStockAudit.setPurchaseStatus(AuditStateEnum.DONE.getStatus());
sparePartStockAuditMapper.insert(sparePartStockAudit);*/ sparePartStockAuditMapper.insert(sparePartStockAudit);*/
}else{ }else{
SparePartStockAudit resultSps = sparePartStockAuditMapper.findSparePartStockAuditByOrderId(maintenanceOrder.getId()); SparePartStockAudit resultSps = sparePartStockAuditMapper.findSparePartStockAuditByOrderId(maintenanceOrder.getId()
,SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus());
if(resultSps != null){ if(resultSps != null){
//已有领取记录但被拒绝则重新审核 //已有领取记录但被拒绝则重新审核
resultSps.setPurchaseStatus(AuditStateEnum.UNREVIEWED.getStatus()); resultSps.setPurchaseStatus(AuditStateEnum.UNREVIEWED.getStatus());
@ -679,7 +682,8 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
MaintenanceOrder maintenanceOrder = maintenanceOrderMapper.findMaintenanceOrderById(maintenanceOrderParam.getId()); MaintenanceOrder maintenanceOrder = maintenanceOrderMapper.findMaintenanceOrderById(maintenanceOrderParam.getId());
Assert.notNull(maintenanceOrder, "数据不存在"); Assert.notNull(maintenanceOrder, "数据不存在");
SparePartStockAudit resultSps = sparePartStockAuditMapper.findSparePartStockAuditByOrderId(maintenanceOrder.getId()); SparePartStockAudit resultSps = sparePartStockAuditMapper.findSparePartStockAuditByOrderId(maintenanceOrder.getId()
,SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus());
if(resultSps != null){ if(resultSps != null){
if(resultSps.getPurchaseStatus() == AuditStateEnum.WAITFORRECEIVING.getStatus()){ 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.sparePart.SparePart;
import com.hcy.common.entity.user.User; import com.hcy.common.entity.user.User;
import com.hcy.common.entity.warehouse.Warehouse; import com.hcy.common.entity.warehouse.Warehouse;
import com.hcy.common.enums.SparePartStockAuditEnum;
import com.hcy.common.enums.order.MaintenanceOrderStatusEnum; import com.hcy.common.enums.order.MaintenanceOrderStatusEnum;
import com.hcy.common.exception.OperateException; import com.hcy.common.exception.OperateException;
import com.hcy.common.mapper.client.ClientContactsMapper; import com.hcy.common.mapper.client.ClientContactsMapper;
@ -72,6 +73,7 @@ public class SparePartServiceImpl implements ISparePartService {
Integer limit = pageParam.getPageSize(); Integer limit = pageParam.getPageSize();
Assert.notNull(param.getClientId(),"客户id不可为空"); Assert.notNull(param.getClientId(),"客户id不可为空");
Assert.notNull(param.getOrderType(),"订单类型不可为空");
SparePartDto sparePartDto = new SparePartDto(); SparePartDto sparePartDto = new SparePartDto();
BeanUtils.copyProperties(param,sparePartDto); BeanUtils.copyProperties(param,sparePartDto);
@ -94,8 +96,13 @@ public class SparePartServiceImpl implements ISparePartService {
SparePartListVo sparePartListVo = new SparePartListVo(); SparePartListVo sparePartListVo = new SparePartListVo();
BeanUtils.copyProperties(item, 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); sparePartListVo.setUnitPrice(practicalPrice);
if(warehouseMap.get(item.getWarehouseId()) == null){ if(warehouseMap.get(item.getWarehouseId()) == null){

View File

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