【admin】新增# 1.新增客户新建检修工单

dev
dabin 2024-08-25 23:49:14 +08:00
parent 416c12469e
commit 825985a425
8 changed files with 84 additions and 29 deletions

View File

@ -132,9 +132,14 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
Equipment equipment = equipmentMapper.selectById(model.getEquipmentId()); Equipment equipment = equipmentMapper.selectById(model.getEquipmentId());
vo.setEquipment(equipment); vo.setEquipment(equipment);
//设置接收人姓名 //设置创建人姓名
if(model.getOrderSource() == OrderStateEnum.CUSTOMER_REPORT.getStatus()){
User user = userMapper.selectById(model.getReceiverId());
vo.setCreatorName(user.getNickname());
}else{
SystemAuthAdmin systemAuthAdmin = systemAuthAdminMapper.selectById(model.getCreatorId()); SystemAuthAdmin systemAuthAdmin = systemAuthAdminMapper.selectById(model.getCreatorId());
vo.setCreatorName(systemAuthAdmin.getNickname()); vo.setCreatorName(systemAuthAdmin.getNickname());
}
//设置接单人名称 //设置接单人名称
User user = userMapper.selectById(model.getReceiverId()); User user = userMapper.selectById(model.getReceiverId());

View File

@ -45,6 +45,8 @@ public class MaintenanceOrderDto implements Serializable {
private Date updateTime; // 更新时间 private Date updateTime; // 更新时间
private Integer isDelete; // 是否删除 0-未删除 1-删除 private Integer isDelete; // 是否删除 0-未删除 1-删除
private Integer repairWorkOrderFlow; //工单去向 0=工单池 1=检修员 private Integer repairWorkOrderFlow; //工单去向 0=工单池 1=检修员
private Integer isMaintain; //是否维修 0-维修 1-不维修
private Integer warehouseType; //仓库类型 0-我的仓库 1-公共仓库
private String faultName; //故障名称 private String faultName; //故障名称
private String equipmentNo; //设备编号 private String equipmentNo; //设备编号

View File

@ -23,6 +23,6 @@ public interface WarehouseMapper extends IBaseMapper<Warehouse> {
* @param id id * @param id id
* @return List<Warehouse> * @return List<Warehouse>
*/ */
@Select("select * from la_warehouse where is_delete = 0 (pid IN ( SELECT id FROM la_warehouse WHERE warehouse_coding = 'topWarehouse' OR warehouse_coding = 'areaWarehouse' ) or id = #{id})") @Select("select * from la_warehouse where is_delete = 0 and pid IN ( SELECT id FROM la_warehouse WHERE warehouse_coding = 'topWarehouse' OR warehouse_coding = 'areaWarehouse') or id = #{id}")
List<Warehouse> findPublicWarehouseList(@Param("id") Long id); List<Warehouse> findPublicWarehouseList(@Param("id") Long id);
} }

View File

@ -93,7 +93,50 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
@Override @Override
public void add(MaintenanceOrderParam maintenanceOrderParam) { public void add(MaintenanceOrderParam maintenanceOrderParam) {
MaintenanceOrder model = new MaintenanceOrder();
BeanUtils.copyProperties(maintenanceOrderParam, model);
//订单来源
model.setOrderSource(OrderStateEnum.CUSTOMER_REPORT.getStatus());
//接单类型
model.setReceiverType((long) OrderStateEnum.REGIONAL_DISPATCH.getStatus());
//订单状态
model.setOrderStatus(OrderStateEnum.WAITING_LIST.getStatus());
model.setOrderNo(getOrderNo());
model.setCreatorId(maintenanceOrderParam.getClientId());
maintenanceOrderMapper.insert(model);
}
private String getOrderNo() {
//获取当前日期并将其进行格式化
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
String formatDate = simpleDateFormat.format(new Date());
StringBuilder currentOrderNo = new StringBuilder(formatDate + "000001");
MaintenanceOrder lastmMaintenanceOrder = maintenanceOrderMapper.selectOne(new LambdaQueryWrapper<MaintenanceOrder>()
.eq(MaintenanceOrder::getIsDelete, GlobalConstant.NOT_DELETE)
.like(MaintenanceOrder::getOrderNo, formatDate)
.orderByDesc(MaintenanceOrder::getOrderNo)
.last("limit 1"));
//当天日期加第一条流水号,如果数据库不存在,则代表今天第一条数据
if (lastmMaintenanceOrder == null) {
return currentOrderNo.toString();
} else {
int lastOrderNo = Integer.parseInt(lastmMaintenanceOrder.getOrderNo().substring(8));
int length = String.valueOf((lastOrderNo + 1)).length();
StringBuilder newOrderNo = new StringBuilder(lastOrderNo + 1 + "");
//如果流水号长度小于6位则在前面补0
if (length < 6) {
for (int i = 0; i < 6 - length; i++) {
newOrderNo.insert(0, "0");
}
}
return formatDate + newOrderNo;
}
} }
/** /**
@ -176,12 +219,10 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
if(maintenanceOrderParam.getIsClient() == MaintenanceOrderStatusEnum.REPAIRER.getStatus()){ if(maintenanceOrderParam.getIsClient() == MaintenanceOrderStatusEnum.REPAIRER.getStatus()){
maintenanceOrderDto.setReceiverId(FrontThreadLocal.getUserId().longValue()); maintenanceOrderDto.setReceiverId(FrontThreadLocal.getUserId().longValue());
maintenanceOrderDto.setOrderStatusIds("1,2,7,8");
}else{ }else{
maintenanceOrderDto.setClientId(maintenanceOrderDto.getClientId()); maintenanceOrderDto.setClientId(maintenanceOrderDto.getClientId());
} maintenanceOrderDto.setOrderStatusIds("0,1,2,7,8");
if(maintenanceOrderParam.getOrderStatus() == null){
maintenanceOrderDto.setOrderStatusIds("1,2,7,8");
} }
List<MaintenanceOrderListVo> returnData = new LinkedList<>(); List<MaintenanceOrderListVo> returnData = new LinkedList<>();
@ -234,6 +275,18 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
Assert.notNull(maintenanceOrder, "数据不存在"); Assert.notNull(maintenanceOrder, "数据不存在");
Assert.notNull(maintenanceOrderParam.getCancelCause(), "退单原因不可为空"); Assert.notNull(maintenanceOrderParam.getCancelCause(), "退单原因不可为空");
maintenanceOrder.setCancelOrderTime(new Date());
maintenanceOrder.setCancelCause(maintenanceOrderParam.getCancelCause());
if(maintenanceOrderParam.getIsClient() == MaintenanceOrderStatusEnum.CLIENT.getStatus()){
if(maintenanceOrder.getOrderStatus() == MaintenanceOrderStatusEnum.WAITING_LIST.getStatus() ||
maintenanceOrder.getOrderStatus() == MaintenanceOrderStatusEnum.PENDING_ORDER.getStatus()){
maintenanceOrder.setOrderStatus(MaintenanceOrderStatusEnum.CLOSED.getStatus());
maintenanceOrderMapper.updateById(maintenanceOrder);
}else{
throw new OperateException("当前订单状态不可退单");
}
}else {
if(maintenanceOrder.getOrderStatus() == MaintenanceOrderStatusEnum.CHECKING.getStatus() || if(maintenanceOrder.getOrderStatus() == MaintenanceOrderStatusEnum.CHECKING.getStatus() ||
maintenanceOrder.getOrderStatus() == MaintenanceOrderStatusEnum.PENDING_ORDER.getStatus()){ maintenanceOrder.getOrderStatus() == MaintenanceOrderStatusEnum.PENDING_ORDER.getStatus()){
@ -243,14 +296,13 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
}else{ }else{
maintenanceOrder.setOrderStatus(MaintenanceOrderStatusEnum.CHARGEBACK.getStatus()); maintenanceOrder.setOrderStatus(MaintenanceOrderStatusEnum.CHARGEBACK.getStatus());
} }
maintenanceOrder.setCancelOrderTime(new Date());
maintenanceOrder.setCancelCause(maintenanceOrderParam.getCancelCause());
maintenanceOrderMapper.updateById(maintenanceOrder); maintenanceOrderMapper.updateById(maintenanceOrder);
}else{ }else{
throw new OperateException("当前订单状态不可退单"); throw new OperateException("当前订单状态不可退单");
} }
} }
}
@Override @Override
public MaintenanceOrderDetailVo detail(Long id) { public MaintenanceOrderDetailVo detail(Long id) {
@ -350,7 +402,7 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
public void confirmServiceOfferPrice(MaintenanceOrderParam maintenanceOrderParam) { public void confirmServiceOfferPrice(MaintenanceOrderParam maintenanceOrderParam) {
MaintenanceOrder maintenanceOrder = maintenanceOrderMapper.findMaintenanceOrderById(maintenanceOrderParam.getId()); MaintenanceOrder maintenanceOrder = maintenanceOrderMapper.findMaintenanceOrderById(maintenanceOrderParam.getId());
Assert.notNull(maintenanceOrder, "数据不存在"); Assert.notNull(maintenanceOrder, "数据不存在");
Assert.isTrue(maintenanceOrder.getOrderStatus() != MaintenanceOrderStatusEnum.WAIT_CONFIRMATION.getStatus(), "订单状态错误"); Assert.isTrue(maintenanceOrder.getOrderStatus() == MaintenanceOrderStatusEnum.WAIT_CONFIRMATION.getStatus(), "订单状态错误");
if(maintenanceOrderParam.getIsMaintain() == MaintenanceOrderStatusEnum.MAINTAIN.getStatus()){ if(maintenanceOrderParam.getIsMaintain() == MaintenanceOrderStatusEnum.MAINTAIN.getStatus()){
maintenanceOrder.setIsMaintain(MaintenanceOrderStatusEnum.MAINTAIN.getStatus()); maintenanceOrder.setIsMaintain(MaintenanceOrderStatusEnum.MAINTAIN.getStatus());

View File

@ -31,8 +31,6 @@ public class MaintenanceOrderParam implements Serializable {
private String orderNo; private String orderNo;
@NotNull(message = "orderSource参数缺失", groups = {create.class})
@DecimalMin(value = "0", message = "orderSource参数值不能少于0", groups = {create.class})
private Integer orderSource; private Integer orderSource;
private Integer orderStatus; private Integer orderStatus;
@ -53,8 +51,6 @@ public class MaintenanceOrderParam implements Serializable {
private String faultImg; private String faultImg;
@NotNull(message = "receiverType参数缺失", groups = {create.class, update.class})
@DecimalMin(value = "0", message = "receiverType参数值不能少于0", groups = {create.class, update.class})
private Long receiverType; private Long receiverType;
private Long provinceId; private Long provinceId;
@ -92,10 +88,6 @@ public class MaintenanceOrderParam implements Serializable {
private String familiarFaultDescription; private String familiarFaultDescription;
/**
* 0- 1-
*/
@NotNull(message = "repairWorkOrderFlow参数缺失", groups = {create.class, update.class})
private Integer repairWorkOrderFlow; //工单去向 0=工单池 1=检修员 private Integer repairWorkOrderFlow; //工单去向 0=工单池 1=检修员
private String faultName; //故障名称 private String faultName; //故障名称

View File

@ -44,6 +44,8 @@ public class MaintenanceOrderDetailVo implements Serializable {
private Long familiarFaultId; // 常见维修结论id private Long familiarFaultId; // 常见维修结论id
private String familiarFaultDescription; // 常见维修结论描述 private String familiarFaultDescription; // 常见维修结论描述
private Integer repairWorkOrderFlow; //工单去向 0=工单池 1=检修员 private Integer repairWorkOrderFlow; //工单去向 0=工单池 1=检修员
private Integer isMaintain; //是否维修 0-维修 1-不维修
private Integer warehouseType; //仓库类型 0-我的仓库 1-公共仓库
private Date createTime; // 创建时间 private Date createTime; // 创建时间
private String clientName; // 客户姓名 private String clientName; // 客户姓名

View File

@ -44,6 +44,8 @@ public class MaintenanceOrderListVo implements Serializable {
private Date createTime; // 创建时间 private Date createTime; // 创建时间
private Date updateTime; // 更新时间 private Date updateTime; // 更新时间
private Integer repairWorkOrderFlow; //工单去向 0=工单池 1=检修员 private Integer repairWorkOrderFlow; //工单去向 0=工单池 1=检修员
private Integer isMaintain; //是否维修 0-维修 1-不维修
private Integer warehouseType; //仓库类型 0-我的仓库 1-公共仓库
private Double distance; //距离 private Double distance; //距离
private String practicalDistance; //实际距离 private String practicalDistance; //实际距离

View File

@ -21,7 +21,7 @@ public class OrderSparePartListVo implements Serializable {
private String specificationsModel; // 规格型号 private String specificationsModel; // 规格型号
private String unit; // 单位 private String unit; // 单位
private BigDecimal price; // 价格 private BigDecimal price; // 价格
private Long quantity; // 数量 private Integer quantity; // 数量
private BigDecimal totalPrice; // 总价 private BigDecimal totalPrice; // 总价
} }