【admin&front】新增# 1.修复若干bug 2.完善大屏通知
parent
d6e9508b3f
commit
75c1388eb9
|
@ -24,6 +24,7 @@ public class AdminConfig {
|
|||
public static String[] notLoginUri = new String[]{
|
||||
"system:login", // 登录接口
|
||||
"common:index:config", // 配置接口
|
||||
"system:notification:sendLargeScreen" //通知大屏接口
|
||||
};
|
||||
|
||||
// 免权限验证
|
||||
|
|
|
@ -1,26 +1,33 @@
|
|||
package com.hcy.admin.controller.system;
|
||||
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.system.SystemNotificationService;
|
||||
import com.hcy.admin.validate.system.SystemAuthAdminParam;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.entity.system.SystemNotification;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("api/system/notification")
|
||||
public class SystemNotificationController {
|
||||
|
||||
@Resource
|
||||
SystemNotificationService systemNotificationService;
|
||||
|
||||
/**
|
||||
* 系统通知
|
||||
* @author dabin
|
||||
* @param systemAuthAdminParam 参数
|
||||
* @param systemNotification 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "系统通知send")
|
||||
@GetMapping("/send")
|
||||
public Object add(SystemAuthAdminParam systemAuthAdminParam) {
|
||||
|
||||
@Log(title = "发送通知到大屏幕")
|
||||
@PostMapping("/sendLargeScreen")
|
||||
public Object add(@RequestBody SystemNotification systemNotification) {
|
||||
systemNotificationService.sendNotificationToLargeScreen(systemNotification);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -350,7 +350,7 @@ public class EquipmentServiceImpl implements IEquipmentService {
|
|||
.eq("is_delete", 0)
|
||||
.last("limit 1"));
|
||||
|
||||
if (ObjectUtil.isNotNull(model) && model.getId().equals(bo.getId())) {
|
||||
if (ObjectUtil.isNotNull(model) && !model.getId().equals(bo.getId())) {
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
|
|
|
@ -361,6 +361,7 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
}
|
||||
}
|
||||
|
||||
//大屏系统通知
|
||||
SystemAuthAdmin systemAuthAdmin = systemAuthAdminMapper.findSystemAuthAdminById(AdminThreadLocal.getAdminId());
|
||||
Client client = clientMapper.findClientById(maintenanceOrderParam.getClientId());
|
||||
if(client != null && systemAuthAdmin != null){
|
||||
|
|
|
@ -112,7 +112,7 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
|
|||
.le(StringUtils.isNotEmpty(params.getCreateTimeEnd()), SparePartStockAudit::getCreateTime, params.getCreateTimeEnd())
|
||||
.orderByDesc(SparePartStockAudit::getCreateTime);
|
||||
|
||||
if(params.getOrderType() == null){
|
||||
/*if(params.getOrderType() == null){
|
||||
//如果当前不是配件采购则将配件采购出入库单排除
|
||||
if (params.getOutInWarehouseType() == null) {
|
||||
if (params.getReceiptType() == null) {
|
||||
|
@ -132,6 +132,25 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
|
|||
queryWrapper.isNotNull(SparePartStockAudit::getPurchaseStatus);
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
if(params.getQueryType() == SparePartStockAuditEnum.PURCHASE.getStatus()){
|
||||
queryWrapper.isNotNull(SparePartStockAudit::getPurchaseStatus);
|
||||
}else if(params.getQueryType() == SparePartStockAuditEnum.AUDIT.getStatus()){
|
||||
queryWrapper.and(query -> query.isNull(SparePartStockAudit::getPurchaseStatus)
|
||||
.or(orQuery -> orQuery.ne(SparePartStockAudit::getPurchaseStatus, AuditStateEnum.UNREVIEWED.getStatus())
|
||||
.ne(SparePartStockAudit::getPurchaseStatus, AuditStateEnum.AUDITED.getStatus())
|
||||
.ne(SparePartStockAudit::getPurchaseStatus, AuditStateEnum.CANCELED_AUDIT.getStatus())
|
||||
.ne(SparePartStockAudit::getPurchaseStatus, AuditStateEnum.FILLING_OUT.getStatus())));
|
||||
}else if(params.getQueryType() == SparePartStockAuditEnum.WAREHOUSING.getStatus()
|
||||
|| params.getQueryType() == SparePartStockAuditEnum.GO_OUT_WAREHOUSE.getStatus()
|
||||
|| params.getQueryType() == SparePartStockAuditEnum.ALLOT.getStatus()){
|
||||
queryWrapper.isNull(SparePartStockAudit::getPurchaseStatus);
|
||||
}else if(params.getQueryType() == SparePartStockAuditEnum.PURCHASE_ORDER.getStatus()){
|
||||
queryWrapper.and(query -> query.ne(SparePartStockAudit::getPurchaseStatus, AuditStateEnum.FILLING_OUT.getStatus())
|
||||
.ne(SparePartStockAudit::getPurchaseStatus,AuditStateEnum.CANCELED_AUDIT.getStatus()));
|
||||
}else if(params.getQueryType() == SparePartStockAuditEnum.APPLY_FOR.getStatus()){
|
||||
queryWrapper.isNotNull(SparePartStockAudit::getOrderType);
|
||||
}
|
||||
|
||||
//领用时间范围,配送方式查询
|
||||
|
@ -381,9 +400,15 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
|
|||
SparePartStockAudit lastSparePartStockAudit = sparePartStockAuditMapper.findLastSparePartStockAuditByTime(TimeUtil.getCurrentTimeYYYYMMDD());
|
||||
model.setReceiptNumber(OrderUtil.getOrderNo(lastSparePartStockAudit == null ? "" : lastSparePartStockAudit.getReceiptNumber())); // 单据编号
|
||||
|
||||
//判断当前订单类型设置对应出入库仓库id
|
||||
if(sparePartStockAuditParam.getReceiptType() == AuditStateEnum.IN_WAREHOUSE.getStatus()){
|
||||
model.setImportWarehouse(sparePartStockAuditParam.getWarehouseId());
|
||||
}else if(sparePartStockAuditParam.getReceiptType() == AuditStateEnum.OUT_WAREHOUSE.getStatus()){
|
||||
model.setExportWarehouse(sparePartStockAuditParam.getWarehouseId());
|
||||
}
|
||||
|
||||
// 获取当前的用户
|
||||
model.setCreatorId(AdminThreadLocal.getAdminId());
|
||||
|
||||
sparePartStockAuditMapper.insert(model);
|
||||
|
||||
List<SparePartAudit> sparePartAuditList = sparePartStockAuditParam.getSparePartAuditList();
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
package com.hcy.admin.service.system;
|
||||
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.entity.system.SystemNotification;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
public interface SystemNotificationService {
|
||||
|
||||
/**
|
||||
* 发送通知到大屏幕
|
||||
* @param systemNotification 通知内容
|
||||
*/
|
||||
void sendNotificationToLargeScreen(SystemNotification systemNotification);
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
package com.hcy.admin.service.system.impl;
|
||||
|
||||
import com.hcy.admin.netty.WebsocketHandler;
|
||||
import com.hcy.admin.service.system.SystemNotificationService;
|
||||
import com.hcy.common.entity.system.SystemNotification;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 系统通知实现类
|
||||
* @author dabin
|
||||
*/
|
||||
@Service
|
||||
public class SystemNotificationServiceImpl implements SystemNotificationService {
|
||||
|
||||
@Override
|
||||
public void sendNotificationToLargeScreen(SystemNotification systemNotification) {
|
||||
if(StringUtils.isNotEmpty(systemNotification.getContent())){
|
||||
//发送通知到大屏幕
|
||||
WebsocketHandler.sendMessageToClient(systemNotification.getContent());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -100,6 +100,8 @@ public class SparePartStockAuditParam implements Serializable {
|
|||
private Integer purchaseStatus; //配件领用状态(0=待审核,1=未通过,2=待管理员审核,3=待发货,4=待收货,5=已完成)
|
||||
private String purchaseIdea; //采购意见
|
||||
private String orderType; // 0-检修工单 1-维修工单
|
||||
private String workOrderNo; //工单号
|
||||
private Integer queryType; // 0-待审核 1-待发货 2-待收货 3-已完成
|
||||
|
||||
private String createTimeStart; //创建时间
|
||||
private String createTimeEnd; //创建时间
|
||||
|
|
|
@ -0,0 +1,107 @@
|
|||
package com.hcy.common.dto;
|
||||
|
||||
import com.hcy.common.entity.SparePartAudit.SparePartAudit;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.hibernate.validator.constraints.Length;
|
||||
|
||||
import javax.validation.constraints.DecimalMin;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 备件出入库审核参数
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
public class SparePartStockAuditDto implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public interface create{}
|
||||
public interface update{}
|
||||
public interface delete{}
|
||||
|
||||
private Long id;
|
||||
|
||||
private String receiptNumber;
|
||||
|
||||
private Integer receiptType;
|
||||
|
||||
//@NotNull(message = "warehouseId参数缺失", groups = {create.class, update.class})
|
||||
@DecimalMin(value = "0", message = "warehouseId参数值不能少于0", groups = {create.class, update.class})
|
||||
private Long warehouseId;
|
||||
|
||||
//@NotNull(message = "importWarehouse参数缺失", groups = {create.class, update.class})
|
||||
@DecimalMin(value = "0", message = "importWarehouse参数值不能少于0", groups = {create.class, update.class})
|
||||
private Long importWarehouse;
|
||||
|
||||
//@NotNull(message = "exportWarehouse参数缺失", groups = {create.class, update.class})
|
||||
@DecimalMin(value = "0", message = "exportWarehouse参数值不能少于0", groups = {create.class, update.class})
|
||||
private Long exportWarehouse;
|
||||
|
||||
//@NotNull(message = "supplier参数缺失", groups = {create.class, update.class})
|
||||
@Length(max = 32, message = "supplier参数不能超出32个字符", groups = {create.class, update.class})
|
||||
private String supplier;
|
||||
|
||||
//@NotNull(message = "responsiblePerson参数缺失", groups = {create.class, update.class})
|
||||
@Length(max = 32, message = "responsiblePerson参数不能超出32个字符", groups = {create.class, update.class})
|
||||
private String responsiblePerson;
|
||||
|
||||
// @NotNull(message = "handlingTime参数缺失", groups = {create.class, update.class})
|
||||
private Date handlingTime;
|
||||
|
||||
//@NotNull(message = "consignee参数缺失", groups = {create.class, update.class})
|
||||
@Length(max = 255, message = "consignee参数不能超出255个字符", groups = {create.class, update.class})
|
||||
private String consignee;
|
||||
|
||||
//@NotNull(message = "auditState参数缺失", groups = {create.class, update.class})
|
||||
@DecimalMin(value = "0", message = "auditState参数值不能少于0", groups = {create.class, update.class})
|
||||
private Integer auditState;
|
||||
|
||||
//@NotNull(message = "auditResult参数缺失", groups = {create.class, update.class})
|
||||
@DecimalMin(value = "0", message = "auditResult参数值不能少于0", groups = {create.class, update.class})
|
||||
private Integer auditResult;
|
||||
|
||||
private Date auditTime;
|
||||
|
||||
//@Length(max = 255, message = "auditIdea参数不能超出255个字符", groups = {create.class, update.class})
|
||||
private String auditIdea;
|
||||
|
||||
//@Length(max = 32, message = "phone参数不能超出32个字符", groups = {create.class, update.class})
|
||||
private String phone;
|
||||
|
||||
//@Length(max = 255, message = "remark参数不能超出255个字符", groups = {create.class, update.class})
|
||||
private String remark;
|
||||
|
||||
private String sparePartAuditId; // 备件审核id
|
||||
|
||||
private List<SparePartAudit> sparePartAuditList; //待入库的备件
|
||||
private Integer outInWarehouseType; //出入库类别(0=采购入库,1=库存调拨,2=员工领料,3=销售出库)
|
||||
|
||||
private String workOrderId; //工单号
|
||||
private String orderId; //订单编号
|
||||
private String shippingAddress; //收货地址
|
||||
private String consigner; //发货人
|
||||
private String consignerPhone; //发货人联系电话
|
||||
private String shipAddress; //发货地址
|
||||
private String logisticsCompany; //物流公司
|
||||
private String trackingNumber; //物流编号
|
||||
private Integer deliveryMethod; //配送方式(0=物流快递,1=上门取件,2=送货上门)
|
||||
private BigDecimal salesPrice; //销售价
|
||||
private String recipient; //领用员工
|
||||
private String recipientPhone; //领用员工联系电话
|
||||
private Integer recipientNumber; //领用数量
|
||||
private Integer purchaseStatus; //配件领用状态(0=待审核,1=未通过,2=待管理员审核,3=待发货,4=待收货,5=已完成)
|
||||
private String purchaseIdea; //采购意见
|
||||
private String orderType; // 0-检修工单 1-维修工单
|
||||
private String workOrderNo; //工单号
|
||||
private Integer queryType; // 0-待审核 1-待发货 2-待收货 3-已完成
|
||||
|
||||
private String createTimeStart; //创建时间
|
||||
private String createTimeEnd; //创建时间
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
package com.hcy.common.entity.system;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class SystemNotification implements Serializable {
|
||||
|
||||
/**
|
||||
* 内容
|
||||
*/
|
||||
private String content;
|
||||
|
||||
/**
|
||||
* 订单id
|
||||
*/
|
||||
private String orderId;
|
||||
|
||||
/**
|
||||
* 订单类型
|
||||
*/
|
||||
private Integer orderType;
|
||||
}
|
|
@ -12,7 +12,15 @@ public enum SparePartStockAuditEnum {
|
|||
|
||||
EXPRESSAGE(1,"物流快递"),
|
||||
SELF_TAKE(2,"自行取件"),
|
||||
HOME_DELIVERY(3,"送货上门");
|
||||
HOME_DELIVERY(3,"送货上门"),
|
||||
|
||||
PURCHASE(0,"配件采购"),
|
||||
AUDIT(1,"配件出入库审核"),
|
||||
WAREHOUSING(2,"配件入库"),
|
||||
GO_OUT_WAREHOUSE(3,"配件出库"),
|
||||
ALLOT(4,"配件调拨"),
|
||||
APPLY_FOR(5,"配件领用申请"),
|
||||
PURCHASE_ORDER(6,"配件采购订单");
|
||||
|
||||
private final int status;
|
||||
private final String desc;
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.hcy.common.mapper.sparePartStockAudit.SparePartStockAuditMapper">
|
||||
|
||||
|
||||
</mapper>
|
|
@ -39,12 +39,11 @@ import com.hcy.common.mapper.sparePart.SparePartMapper;
|
|||
import com.hcy.common.mapper.sparePartStockAudit.SparePartStockAuditMapper;
|
||||
import com.hcy.common.mapper.system.SystemAuthAdminMapper;
|
||||
import com.hcy.common.mapper.user.UserMapper;
|
||||
import com.hcy.common.utils.OrderUtil;
|
||||
import com.hcy.common.utils.TimeUtil;
|
||||
import com.hcy.common.utils.ToolsUtil;
|
||||
import com.hcy.common.utils.*;
|
||||
import com.hcy.front.FrontThreadLocal;
|
||||
import com.hcy.front.service.order.IMaintenanceOrderService;
|
||||
import com.hcy.front.service.region.IDevRegionService;
|
||||
import com.hcy.front.utils.RestTemplateUtil;
|
||||
import com.hcy.front.validate.PageParam;
|
||||
import com.hcy.front.validate.order.MaintenanceOrderParam;
|
||||
import com.hcy.front.validate.warehouse.SparePartParam;
|
||||
|
@ -57,6 +56,7 @@ import com.hcy.front.vo.order.OrderSparePartListVo;
|
|||
import com.hcy.front.vo.sparePartStockAudit.SparePartStockAuditDetailVo;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.Assert;
|
||||
|
@ -118,6 +118,9 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
@Resource
|
||||
OrderOperateRecordServiceImpl orderOperateRecordService;
|
||||
|
||||
@Resource
|
||||
RestTemplateUtil restTemplateUtil;
|
||||
|
||||
private final DecimalFormat df = new DecimalFormat ("#.#");
|
||||
|
||||
@Override
|
||||
|
@ -135,13 +138,20 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
MaintenanceOrder lastmMaintenanceOrder = maintenanceOrderMapper.findLastMaintenanceOrderByTime(TimeUtil.getCurrentTimeYYYYMMDD());
|
||||
model.setOrderNo(OrderUtil.getOrderNo(lastmMaintenanceOrder == null ? "" :lastmMaintenanceOrder.getOrderNo()));
|
||||
|
||||
|
||||
model.setCreatorId(FrontThreadLocal.getUserId().longValue());
|
||||
|
||||
|
||||
|
||||
Date currentTime = new Date();
|
||||
model.setCreateTime(currentTime);
|
||||
maintenanceOrderMapper.insert(model);
|
||||
|
||||
Client client = clientMapper.findClientById(maintenanceOrderParam.getClientId());
|
||||
Equipment equipment = equipmentMapper.findEquipmentById(maintenanceOrderParam.getEquipmentId());
|
||||
if(client != null && equipment != null){
|
||||
//发送通知到大屏
|
||||
String notificationContent = "客户【"+client.getClientName()+"】于【"+TimeUtil.dateTransitionString(currentTime)+"】上报工单,报修设备【"+equipment.getName()+"】";
|
||||
restTemplateUtil.sendPost(notificationContent);
|
||||
}
|
||||
|
||||
//新增检修单操作记录
|
||||
orderOperateRecordService.addMaintenanceOrder(model.getId()
|
||||
, OrderOperateRecordEnum.ORDER_RECEIVING.getDesc()
|
||||
|
@ -558,6 +568,11 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
maintenanceOrder.setOrderStatus(MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus());
|
||||
maintenanceOrder.setIsMaintain(MaintenanceOrderStatusEnum.MAINTAIN.getStatus());
|
||||
|
||||
//修改订单状态为检修中
|
||||
Equipment equipment = equipmentMapper.findEquipmentById(maintenanceOrder.getEquipmentId());
|
||||
equipment.setDeviceStatus(EquipmentStateEnum.UNDEROVERHAUL.getStatus());
|
||||
equipmentMapper.updateById(equipment);
|
||||
|
||||
//新增检修单操作记录
|
||||
orderOperateRecordService.addMaintenanceOrder(maintenanceOrder.getId()
|
||||
,OrderOperateRecordEnum.CUSTOMER_CONFIRM.getDesc()
|
||||
|
@ -615,6 +630,11 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
maintenanceOrder.setIsMaintain(MaintenanceOrderStatusEnum.MAINTAIN.getStatus());
|
||||
maintenanceOrder.setOrderStatus(MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus());
|
||||
|
||||
//修改订单状态为检修中
|
||||
Equipment equipment = equipmentMapper.findEquipmentById(maintenanceOrder.getEquipmentId());
|
||||
equipment.setDeviceStatus(EquipmentStateEnum.UNDEROVERHAUL.getStatus());
|
||||
equipmentMapper.updateById(equipment);
|
||||
|
||||
Client client = clientMapper.findClientById(maintenanceOrder.getClientId());
|
||||
if(client != null){
|
||||
orderOperateRecordService.addMaintenanceOrder(maintenanceOrder.getId()
|
||||
|
@ -759,7 +779,8 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
maintenanceOrder.setFamiliarFaultId(maintenanceOrderParam.getFamiliarFaultId());
|
||||
maintenanceOrder.setFamiliarFaultDescription(maintenanceOrderParam.getFamiliarFaultDescription());
|
||||
maintenanceOrder.setOrderStatus(MaintenanceOrderStatusEnum.FINISHED.getStatus());
|
||||
maintenanceOrder.setOrderAccomplishTime(new Date());
|
||||
Date finishTime = new Date();
|
||||
maintenanceOrder.setOrderAccomplishTime(finishTime);
|
||||
maintenanceOrder.setIsConfirmReceipt(MaintenanceOrderStatusEnum.CONFIRM_RECEIPT.getStatus());
|
||||
maintenanceOrder.setCompleteImg(maintenanceOrderParam.getCompleteImg()); // 完工照片
|
||||
maintenanceOrderMapper.updateById(maintenanceOrder);
|
||||
|
@ -769,6 +790,10 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
if(equipment != null){
|
||||
equipment.setDeviceStatus(EquipmentStateEnum.NORMAL.getStatus());
|
||||
equipmentMapper.updateById(equipment);
|
||||
|
||||
//发送通知到大屏
|
||||
String notificationContent = "检修员【"+FrontThreadLocal.get("username")+"】于【"+TimeUtil.dateTransitionString(finishTime)+"】完成对设备【"+equipment.getName()+"】的检修工作";
|
||||
restTemplateUtil.sendPost(notificationContent);
|
||||
}
|
||||
|
||||
//新增检修单操作记录
|
||||
|
|
|
@ -40,12 +40,11 @@ import com.hcy.common.mapper.sparePartStockAudit.SparePartStockAuditMapper;
|
|||
import com.hcy.common.mapper.system.SystemAuthAdminMapper;
|
||||
import com.hcy.common.mapper.user.UserMapper;
|
||||
import com.hcy.common.mapper.warehouse.WarehouseMapper;
|
||||
import com.hcy.common.utils.OrderUtil;
|
||||
import com.hcy.common.utils.TimeUtil;
|
||||
import com.hcy.common.utils.ToolsUtil;
|
||||
import com.hcy.common.utils.*;
|
||||
import com.hcy.front.FrontThreadLocal;
|
||||
import com.hcy.front.service.order.IRepairOrderService;
|
||||
import com.hcy.front.service.region.IDevRegionService;
|
||||
import com.hcy.front.utils.RestTemplateUtil;
|
||||
import com.hcy.front.validate.PageParam;
|
||||
import com.hcy.front.validate.order.RepairOrderParam;
|
||||
import com.hcy.front.validate.warehouse.SparePartParam;
|
||||
|
@ -55,6 +54,7 @@ import com.hcy.front.vo.order.*;
|
|||
import com.hcy.front.vo.sparePartStockAudit.SparePartStockAuditDetailVo;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.Assert;
|
||||
|
@ -114,6 +114,9 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
@Resource
|
||||
OrderOperateRecordServiceImpl orderOperateRecordService;
|
||||
|
||||
@Resource
|
||||
RestTemplateUtil restTemplateUtil;
|
||||
|
||||
private final DecimalFormat df = new DecimalFormat ("#.#");
|
||||
|
||||
/**
|
||||
|
@ -128,21 +131,17 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
List<RepairOrderDto> repairOrderDtoList = repairOrderMapper.list(repairOrderDto);
|
||||
SystemAuthAdmin systemAuthAdmin = systemAuthAdminMapper.findSystemAuthAdminByUserId(FrontThreadLocal.getUserId());
|
||||
|
||||
|
||||
List<RepairOrderListVo> returnData = new LinkedList<>();
|
||||
for (RepairOrderDto item : repairOrderDtoList) {
|
||||
|
||||
if(repairOrderParam.getQueryType() == MaintenanceOrderStatusEnum.NEAREST_TO_ME.getStatus()){
|
||||
SystemAuthAdmin systemAuthAdminByUserId = systemAuthAdminMapper.findSystemAuthAdminByUserId(Math.toIntExact(item.getCreatorId()));
|
||||
//获取工厂
|
||||
Plant plant = plantMapper.findPlantByAdminId(Long.valueOf(systemAuthAdminByUserId.getPlantId()));
|
||||
//判断抢单距离大于订单距离则返回订单
|
||||
double distance = ToolsUtil.getDistance(item.getLongitude(), item.getLatitude()
|
||||
double distance = ToolsUtil.getDistance(Double.parseDouble(plant.getLongitude()), Double.parseDouble(plant.getLatitude())
|
||||
, repairOrderParam.getLongitude(), repairOrderParam.getLatitude());
|
||||
|
||||
if(item.getReceiverType() == OrderStateEnum.REGIONAL_DISPATCH.getStatus()){
|
||||
|
||||
SystemAuthAdmin systemAuthAdminByUserId = systemAuthAdminMapper.findSystemAuthAdminByUserId(Math.toIntExact(item.getCreatorId()));
|
||||
//获取工厂
|
||||
Plant plant = plantMapper.findPlantByAdminId(Long.valueOf(systemAuthAdminByUserId.getPlantId()));
|
||||
|
||||
if(systemAuthAdmin.getProvinceId().equals(plant.getProvinceId()) &&
|
||||
systemAuthAdmin.getCityId().equals(plant.getCityId()) &&
|
||||
systemAuthAdmin.getDistrictId().equals(plant.getDistrictId()) ){
|
||||
|
@ -394,7 +393,8 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
repairOrder.setFamiliarFaultId(repairOrderParam.getFamiliarFaultId()); // 常见维修结论id
|
||||
repairOrder.setFamiliarFaultDescription(repairOrderParam.getFamiliarFaultDescription()); // 常见维修结论描述
|
||||
repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.FINISHED.getStatus());
|
||||
repairOrder.setOrderAccomplishTime(new Date()); // 订单完成时间
|
||||
Date finishTime = new Date();
|
||||
repairOrder.setOrderAccomplishTime(finishTime); // 订单完成时间
|
||||
repairOrder.setIsConfirmReceipt(MaintenanceOrderStatusEnum.CONFIRM_RECEIPT.getStatus());
|
||||
repairOrder.setCompleteImg(repairOrderParam.getCompleteImg()); // 完工照片
|
||||
repairOrderMapper.updateById(repairOrder);
|
||||
|
@ -403,6 +403,9 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
orderOperateRecordService.addRepairOrder(repairOrder.getId()
|
||||
,OrderOperateRecordEnum.FILL_IN_RECEIPT.getDesc()
|
||||
,"【"+FrontThreadLocal.get("username")+"】已经完成任务");
|
||||
|
||||
String notificationContent = "维修员【"+FrontThreadLocal.get("username")+"】于【"+TimeUtil.dateTransitionString(finishTime)+"】完成对模块【"+repairOrder.getModuleNumber()+"】的维修工作";
|
||||
restTemplateUtil.sendPost(notificationContent);
|
||||
}else{
|
||||
throw new OperateException("当前订单状态无法进行填写回单操作");
|
||||
}
|
||||
|
@ -790,7 +793,8 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
|
||||
// 获取当前的用户
|
||||
model.setCreatorId(FrontThreadLocal.getUserId().longValue()); // 创建人id
|
||||
model.setCreateTime(new Date()); //创建时间
|
||||
Date currentTime = new Date();
|
||||
model.setCreateTime(currentTime); //创建时间
|
||||
|
||||
repairOrderMapper.insert(model);
|
||||
|
||||
|
@ -798,6 +802,14 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
orderOperateRecordService.addRepairOrder(model.getId()
|
||||
, OrderOperateRecordEnum.NEW_CREATE.getDesc()
|
||||
,"维修主管【"+FrontThreadLocal.get("username")+"】创建了维修工单。");
|
||||
|
||||
Client client = clientMapper.findClientById(repairOrderParam.getClientId());
|
||||
Equipment equipment = equipmentMapper.findEquipmentById(repairOrderParam.getEquipmentId());
|
||||
if(client != null && equipment != null){
|
||||
//发送通知到大屏
|
||||
String notificationContent = "客户【"+client.getClientName()+"】于【"+TimeUtil.dateTransitionString(currentTime)+"】上报工单,维修设备【"+equipment.getName()+"】";
|
||||
restTemplateUtil.sendPost(notificationContent);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -936,7 +948,7 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
BigDecimal actualAmount = new BigDecimal("0");
|
||||
|
||||
//判断是否已经服务报价过了
|
||||
List<OrderSparePart> orderSpareParts = orderSparePartMapper.findOrderSparePartByMaintenanceOrderId(repairOrder.getId());
|
||||
List<OrderSparePart> orderSpareParts = orderSparePartMapper.findOrderSparePartByRepairOrderId(repairOrder.getId());
|
||||
for (OrderSparePart orderSparePart : orderSpareParts) {
|
||||
//已经报过价就将之前的报价信息删除
|
||||
orderSparePartMapper.deleteById(orderSparePart);
|
||||
|
|
|
@ -6,7 +6,6 @@ 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.RoutingInspectionOrderDto;
|
||||
import com.hcy.common.dto.order.MaintenanceOrderDto;
|
||||
import com.hcy.common.entity.client.Client;
|
||||
import com.hcy.common.entity.client.Equipment;
|
||||
import com.hcy.common.entity.fault.Fault;
|
||||
|
@ -26,19 +25,19 @@ import com.hcy.common.mapper.order.MaintenanceOrderMapper;
|
|||
import com.hcy.common.mapper.order.RoutingInspectionOrderMapper;
|
||||
import com.hcy.common.mapper.system.SystemAuthAdminMapper;
|
||||
import com.hcy.common.mapper.user.UserMapper;
|
||||
import com.hcy.common.utils.TimeUtil;
|
||||
import com.hcy.common.utils.ToolsUtil;
|
||||
import com.hcy.front.FrontThreadLocal;
|
||||
import com.hcy.front.service.order.IRoutingInspectionOrderService;
|
||||
import com.hcy.front.service.region.IDevRegionService;
|
||||
import com.hcy.front.utils.RestTemplateUtil;
|
||||
import com.hcy.front.validate.PageParam;
|
||||
import com.hcy.front.validate.order.RoutingInspectionOrderParam;
|
||||
import com.hcy.front.vo.client.EquipmentListVo;
|
||||
import com.hcy.front.vo.order.MaintenanceOrderListVo;
|
||||
import com.hcy.front.vo.order.OrderStatusCountVo;
|
||||
import com.hcy.front.vo.order.RoutingInspectionOrderDetailVo;
|
||||
import com.hcy.front.vo.order.RoutingInspectionOrderListVo;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.aspectj.weaver.ast.Or;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
@ -84,6 +83,9 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
|
|||
@Resource
|
||||
IDevRegionService regionService;
|
||||
|
||||
@Resource
|
||||
RestTemplateUtil restTemplateUtil;
|
||||
|
||||
private final DecimalFormat df = new DecimalFormat ("#.#");
|
||||
|
||||
|
||||
|
@ -263,13 +265,13 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
|
|||
model.setFaultId(routingInspectionOrderParam.getFaultId()); // 故障id
|
||||
model.setFaultDescription(routingInspectionOrderParam.getFaultDescription()); // 故障描述
|
||||
model.setInspectionResult(routingInspectionOrderParam.getInspectionResult()); //巡检结果(0=正常 1=异常)
|
||||
Date finishTime = new Date();
|
||||
//设备数据
|
||||
Equipment equipment = equipmentMapper.findEquipmentById(model.getEquipmentId());
|
||||
|
||||
//如果故障检测是选了异常,需要把设备状态改为报修中
|
||||
if(routingInspectionOrderParam.getInspectionResult() == OrderStateEnum.ABNORMAL.getStatus()){
|
||||
Equipment equipment = equipmentMapper.selectOne(
|
||||
new QueryWrapper<Equipment>()
|
||||
.eq("id", model.getEquipmentId())
|
||||
.eq("is_delete", 0)
|
||||
.last("limit 1"));
|
||||
|
||||
equipment.setDeviceStatus(EquipmentStateEnum.UNDERWARRANTY.getStatus());
|
||||
equipmentMapper.updateById(equipment);
|
||||
//如果故障检测异常,需要创建检修单
|
||||
|
@ -277,7 +279,8 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
|
|||
maintenanceOrder.setOrderNo(getOrderNo());
|
||||
|
||||
maintenanceOrder.setCreatorId(FrontThreadLocal.getUserId().longValue()); //创建人id
|
||||
maintenanceOrder.setCreateTime(new Date()); //创建时间
|
||||
Date currentTime = new Date();
|
||||
maintenanceOrder.setCreateTime(currentTime); //创建时间
|
||||
maintenanceOrder.setClientId(model.getClientId()); // 客户id
|
||||
maintenanceOrder.setEquipmentId(model.getEquipmentId()); // 设备id
|
||||
maintenanceOrder.setFaultId(model.getFaultId()); // 故障id
|
||||
|
@ -287,7 +290,6 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
|
|||
maintenanceOrder.setRemark(model.getInspectionResultRemark()); // 备注
|
||||
maintenanceOrder.setOrderSource(OrderStateEnum.MAINTENANCE_MAN_CREATION.getStatus()); //订单来源:3=检修员创建
|
||||
maintenanceOrder.setOrderStatus(OrderStateEnum.WAITING_LIST.getStatus()); // 订单状态 0-待抢单
|
||||
|
||||
maintenanceOrderMapper.insert(maintenanceOrder);
|
||||
|
||||
//新增巡检单操作记录
|
||||
|
@ -295,17 +297,25 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
|
|||
, OrderOperateRecordEnum.FAULT_DETECT.getDesc()
|
||||
,"【"+FrontThreadLocal.get("username")+"】已提交故障检测结果,检测结果: " +
|
||||
OrderStateEnum.ABNORMAL.getDesc() + ";系统会自动创建检修单且流入到工单池。");
|
||||
|
||||
//发送通知到大屏
|
||||
String notificationContent = "检修员【"+FrontThreadLocal.get("username")+"】于【"+ TimeUtil.dateTransitionString(currentTime)+"】上报工单,报修设备【"+equipment.getName()+"】";
|
||||
restTemplateUtil.sendPost(notificationContent);
|
||||
}else{
|
||||
//新增巡检单操作记录
|
||||
orderOperateRecordService.addRoutingInspectionOrder(model.getId()
|
||||
, OrderOperateRecordEnum.FAULT_DETECT.getDesc()
|
||||
,"【"+FrontThreadLocal.get("username")+"】已提交故障检测结果,检测结果: " +
|
||||
OrderStateEnum.NORMAL.getDesc() + ";");
|
||||
|
||||
String notificationContent = "检修员【"+FrontThreadLocal.get("username")+"】于【"+TimeUtil.dateTransitionString(finishTime)+"】完成对设备【"+equipment.getName()+"】的巡检工作";
|
||||
restTemplateUtil.sendPost(notificationContent);
|
||||
}
|
||||
|
||||
model.setInspectionResultRemark(routingInspectionOrderParam.getInspectionResultRemark());//巡检结果备注
|
||||
model.setInspectionPhoto(routingInspectionOrderParam.getInspectionPhoto()); // 巡检照片
|
||||
model.setOrderStatus(OrderStateEnum.COMPLETED.getStatus()); //故障检测完工单状态就为已完成
|
||||
model.setOrderAccomplishTime(new Date()); //订单完成时间
|
||||
model.setOrderAccomplishTime(finishTime); //订单完成时间
|
||||
routingInspectionOrderMapper.updateById(model);
|
||||
|
||||
//新增巡检单操作记录
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
package com.hcy.front.utils;
|
||||
|
||||
import com.hcy.common.entity.system.SystemNotification;
|
||||
import lombok.Data;
|
||||
import lombok.extern.log4j.Log4j2;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
@Data
|
||||
@Component
|
||||
@Log4j2
|
||||
public class RestTemplateUtil {
|
||||
|
||||
@Value("${adminService.sendLargeScreenUrl}")
|
||||
public String sendLargeScreenUrl;
|
||||
|
||||
public void sendPost(String content){
|
||||
try{
|
||||
SystemNotification systemNotification = new SystemNotification();
|
||||
systemNotification.setContent(content);
|
||||
|
||||
RestTemplate restTemplate = new RestTemplate();
|
||||
restTemplate.postForObject(sendLargeScreenUrl, systemNotification, String.class);
|
||||
}catch (Exception e){
|
||||
log.error("上报大屏失败:"+e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
|
@ -59,6 +59,8 @@ spring:
|
|||
mybatis-plus:
|
||||
mapper-locations: classpath*:/mapper/**Mapper.xml # 映射文件路径
|
||||
typeAliasesPackage: com.hcy.**.mapper
|
||||
configuration:
|
||||
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
||||
global-config:
|
||||
banner: false
|
||||
db-config:
|
||||
|
@ -87,5 +89,9 @@ byte:
|
|||
query-order-url: https://developer.toutiao.com/api/apps/ecpay/v1/query_order
|
||||
query-refund-url: https://developer.toutiao.com/api/apps/ecpay/v1/query_refund
|
||||
netty:
|
||||
port: 8081
|
||||
port: 8083
|
||||
path: /staff
|
||||
|
||||
#adnin服务地址
|
||||
adminService:
|
||||
sendLargeScreenUrl : http://localhost:8082/api/system/notification/sendLargeScreen
|
Loading…
Reference in New Issue