【admin&front】新增# 1.新增检修员服务报价 2.新增检修员模块替换 3.新增设备模块

dev
dabin 2024-08-27 00:23:43 +08:00
parent b107d04592
commit 5e0db033de
43 changed files with 827 additions and 132 deletions

View File

@ -88,4 +88,29 @@ public class MaintenanceOrderController {
return AjaxResult.success();
}
/**
*
*
* @param maintenanceOrderParam
* @return Object
*/
@Log(title = "更新服务报价")
@PostMapping("/updateServiceOfferPrice")
public Object updateServiceOfferPrice(@RequestBody MaintenanceOrderParam maintenanceOrderParam) {
iMaintenanceOrderService.updateServiceOfferPrice(maintenanceOrderParam);
return AjaxResult.success();
}
/**
* 退
*
* @param maintenanceOrderParam
* @return Object
*/
@Log(title = "退回检修")
@PostMapping("/returnMaintain")
public Object returnMaintain(@RequestBody MaintenanceOrderParam maintenanceOrderParam) {
iMaintenanceOrderService.returnMaintain(maintenanceOrderParam);
return AjaxResult.success();
}
}

View File

@ -231,23 +231,8 @@ public class SparePartReceiveServiceImpl implements ISparePartReceiveService {
model.setHandlingTime(System.currentTimeMillis() / 1000); //经办时间
//单据类型0=入库单1=出库单2=仓库调拨单)
model.setReceiptType(AuditStateEnum.OUTWAREHOUSE.getStatus());
model.setReceiptType(AuditStateEnum.OUT_WAREHOUSE.getStatus());
List<SparePartAudit> sparePartAuditList = sparePartStockAuditParam.getSparePartAuditList();
// 使用StringBuilder来拼接id值
StringBuilder sb = new StringBuilder();
for (SparePartAudit sparePartAudit : sparePartAuditList) {
SparePartAudit insertSparePartAudit = new SparePartAudit();
insertSparePartAudit.setSparePartsId(sparePartAudit.getId()); //备件id
sb.append(sparePartAudit.getId()).append(",");
insertSparePartAudit.setCount(sparePartAudit.getCount()); //备件出库数量
insertSparePartAudit.setStockAuditId(model.getId()); // 出入库审核id
insertSparePartAudit.setCreateTime(System.currentTimeMillis() / 1000);
sparePartAuditMapper.insert(insertSparePartAudit);//插入备件审核信息
}
sb.deleteCharAt(sb.length() - 1); // 删除最后一个逗号
model.setSparePartAuditId(String.valueOf(sb));// 备件审核id
model.setCreateTime(System.currentTimeMillis() / 1000);
sparePartStockAuditMapper.insert(model);
}
@ -285,11 +270,10 @@ public class SparePartReceiveServiceImpl implements ISparePartReceiveService {
model.setPurchaseStatus(AuditStateEnum.UNREVIEWED.getStatus()); //状态 未审核
//单据类型0=入库单1=出库单2=仓库调拨单)
model.setReceiptType(AuditStateEnum.OUTWAREHOUSE.getStatus());
model.setReceiptType(AuditStateEnum.OUT_WAREHOUSE.getStatus());
List<SparePartAudit> sparePartAuditList = sparePartStockAuditParam.getSparePartAuditList();
// 使用StringBuilder来拼接id值
StringBuilder sb = new StringBuilder();
List<SparePartAudit> auditList = sparePartAuditMapper.selectList(
new QueryWrapper<SparePartAudit>()
.eq("stock_audit_id", model.getId())
@ -315,7 +299,6 @@ public class SparePartReceiveServiceImpl implements ISparePartReceiveService {
}else {
insertSparePartAudit.setSparePartsId(sparePartAudit.getId());
}
sb.append(sparePartAudit.getId()).append(",");
insertSparePartAudit.setCount(sparePartAudit.getCount()); //备件出库数量
insertSparePartAudit.setStockAuditId(model.getId()); // 出入库审核id
@ -323,8 +306,6 @@ public class SparePartReceiveServiceImpl implements ISparePartReceiveService {
sparePartAuditMapper.insert(insertSparePartAudit);//插入备件审核信息
}
sb.deleteCharAt(sb.length() - 1); // 删除最后一个逗号
model.setSparePartAuditId(String.valueOf(sb));// 备件审核id
model.setUpdateTime(System.currentTimeMillis() / 1000);
sparePartStockAuditMapper.updateById(model);
}
@ -377,7 +358,7 @@ public class SparePartReceiveServiceImpl implements ISparePartReceiveService {
);
System.out.println("单据类型" + model.getReceiptType());
System.out.println(model.getPurchaseStatus());
if(model.getReceiptType() == AuditStateEnum.OUTWAREHOUSE.getStatus()
if(model.getReceiptType() == AuditStateEnum.OUT_WAREHOUSE.getStatus()
&& model.getPurchaseStatus() == AuditStateEnum.CHECKPENDING.getStatus()){
// 通过审核的出库单
//获取备件信息

View File

@ -11,13 +11,18 @@ import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.client.EquipmentParam;
import com.hcy.admin.vo.client.EquipmentListVo;
import com.hcy.admin.vo.client.EquipmentDetailVo;
import com.hcy.admin.vo.client.EquipmentModelDetailVo;
import com.hcy.admin.vo.sparePart.SparePartListVo;
import com.hcy.common.core.PageResult;
import com.hcy.common.entity.client.Client;
import com.hcy.common.entity.client.Equipment;
import com.hcy.common.entity.client.EquipmentModel;
import com.hcy.common.entity.user.User;
import com.hcy.common.enums.equipment.EquipmentStateEnum;
import com.hcy.common.mapper.client.ClientMapper;
import com.hcy.common.mapper.client.EquipmentMapper;
import com.hcy.common.mapper.client.EquipmentModelMapper;
import com.hcy.common.mapper.user.UserMapper;
import com.hcy.common.utils.StringUtil;
import com.hcy.common.utils.TimeUtil;
import org.springframework.beans.BeanUtils;
@ -42,6 +47,12 @@ public class EquipmentServiceImpl implements IEquipmentService {
@Resource
IDevRegionService regionService;
@Resource
EquipmentModelMapper equipmentModelMapper;
@Resource
UserMapper userMapper;
/**
*
*
@ -86,6 +97,19 @@ public class EquipmentServiceImpl implements IEquipmentService {
if (client != null){
vo.setClientName(client.getClientName());
}
//设置设备模块信息
EquipmentModel equipmentModel = equipmentModelMapper.findEquipmentModelByEquipmentId(vo.getId());
EquipmentModelDetailVo equipmentModelDetailVo = new EquipmentModelDetailVo();
if(equipmentModel != null){
BeanUtils.copyProperties(equipmentModel, equipmentModelDetailVo);
User insetallUser = userMapper.selectById(equipmentModel.getUserId());
equipmentModelDetailVo.setInstallationName(insetallUser.getUsername());
}
//设置设备模块信息
vo.setEquipmentModel(equipmentModelDetailVo);
vo.setCreateTime(TimeUtil.timestampToDate(item.getCreateTime()));
list.add(vo);
}

View File

@ -51,4 +51,18 @@ public interface IMaintenanceOrderService {
*/
void del(Long id);
/**
*
*
* @param maintenanceOrderParam
*/
void updateServiceOfferPrice(MaintenanceOrderParam maintenanceOrderParam);
/**
*
*
* @param maintenanceOrderParam
*/
void returnMaintain(MaintenanceOrderParam maintenanceOrderParam);
}

View File

@ -9,13 +9,18 @@ import com.hcy.admin.service.order.IMaintenanceOrderService;
import com.hcy.admin.service.region.IDevRegionService;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.order.MaintenanceOrderParam;
import com.hcy.admin.vo.client.EquipmentModelDetailVo;
import com.hcy.admin.vo.order.MaintenanceOrderListVo;
import com.hcy.admin.vo.order.MaintenanceOrderDetailVo;
import com.hcy.admin.vo.order.OrderSparePartListVo;
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.ClientContacts;
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.system.SystemAuthAdmin;
@ -24,10 +29,13 @@ import com.hcy.common.enums.equipment.EquipmentStateEnum;
import com.hcy.common.enums.order.MaintenanceOrderStatusEnum;
import com.hcy.common.enums.order.OrderStateEnum;
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.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.OrderSparePartMapper;
import com.hcy.common.mapper.system.SystemAuthAdminMapper;
import com.hcy.common.mapper.user.UserMapper;
import org.springframework.beans.BeanUtils;
@ -35,6 +43,7 @@ import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
@ -65,6 +74,15 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
@Resource
UserMapper userMapper;
@Resource
OrderSparePartMapper orderSparePartMapper;
@Resource
ClientContactsMapper clientContactsMapper;
@Resource
EquipmentModelMapper equipmentModelMapper;
/**
*
*
@ -99,6 +117,25 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
vo.setReceiverName(user.getNickname());
}
//设置创建人姓名
if(item.getOrderSource() == OrderStateEnum.CUSTOMER_REPORT.getStatus()){
vo.setCreatorName(item.getClientCreatorName());
}else{
vo.setCreatorName(item.getCreatorName());
}
//设置设备模块信息
EquipmentModel equipmentModel = equipmentModelMapper.findEquipmentModelByEquipmentId(item.getEquipmentId());
EquipmentModelDetailVo equipmentModelDetailVo = new EquipmentModelDetailVo();
if(equipmentModel != null){
BeanUtils.copyProperties(equipmentModel, equipmentModelDetailVo);
User insetallUser = userMapper.selectById(equipmentModel.getUserId());
equipmentModelDetailVo.setInstallationName(insetallUser.getUsername());
}
//设置设备模块信息
vo.setEquipmentModel(equipmentModelDetailVo);
list.add(vo);
}
@ -126,20 +163,29 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
//设置客户信息
Client client = clientMapper.selectById(model.getClientId());
if (client != null) {
vo.setClientName(client.getClientName());
}
//设置设备信息
Equipment equipment = equipmentMapper.selectById(model.getEquipmentId());
if(equipment != null){
vo.setEquipment(equipment);
}
//设置创建人姓名
if(model.getOrderSource() == OrderStateEnum.CUSTOMER_REPORT.getStatus()){
User user = userMapper.selectById(model.getReceiverId());
vo.setCreatorName(user.getNickname());
ClientContacts clientContacts = clientContactsMapper.findClientContactsByUserId(model.getCreatorId());
if(clientContacts != null){
vo.setCreatorName(clientContacts.getName());
}
}else{
SystemAuthAdmin systemAuthAdmin = systemAuthAdminMapper.selectById(model.getCreatorId());
if(systemAuthAdmin != null){
vo.setCreatorName(systemAuthAdmin.getNickname());
}
}
//设置接单人名称
User user = userMapper.selectById(model.getReceiverId());
@ -149,7 +195,20 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
//设置故障名称
Fault fault = faultMapper.selectById(model.getFaultId());
if(fault != null){
vo.setFaultName(fault.getName());
}
//设置配件清单
List<OrderSparePart> orderSpareParts = orderSparePartMapper.selectList(new LambdaQueryWrapper<OrderSparePart>()
.eq(OrderSparePart::getMaintenanceOrderId, model.getId()));
List<OrderSparePartListVo> orderSparePartListVos = new ArrayList<>();
for (OrderSparePart item : orderSpareParts) {
OrderSparePartListVo orderSparePartListVo = new OrderSparePartListVo();
BeanUtils.copyProperties(item, orderSparePartListVo);
orderSparePartListVos.add(orderSparePartListVo);
}
vo.setSparePartList(orderSparePartListVos);
return vo;
}
@ -283,4 +342,36 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
maintenanceOrderMapper.updateById(model);
}
@Override
public void updateServiceOfferPrice(MaintenanceOrderParam maintenanceOrderParam) {
MaintenanceOrder model = maintenanceOrderMapper.findMaintenanceOrderById(maintenanceOrderParam.getId());
Assert.notNull(model, "数据不存在!");
Assert.notNull(maintenanceOrderParam.getActualAmount(),"服务报价不能为空");
if(model.getOrderStatus() == MaintenanceOrderStatusEnum.WAIT_CONFIRMATION.getStatus()){
//更新服务报价
BigDecimal actualAmount = maintenanceOrderParam.getActualAmount();
model.setActualAmount(actualAmount);
maintenanceOrderMapper.updateById(model);
}else{
throw new OperateException("当前工单状态,无法修改服务报价");
}
}
@Override
public void returnMaintain(MaintenanceOrderParam maintenanceOrderParam) {
MaintenanceOrder model = maintenanceOrderMapper.findMaintenanceOrderById(maintenanceOrderParam.getId());
Assert.notNull(model, "数据不存在!");
Assert.notNull(maintenanceOrderParam.getReturnCause(),"退回原因不可为空");
if(model.getOrderStatus() == MaintenanceOrderStatusEnum.WAIT_CONFIRMATION.getStatus()){
//更新服务报价
model.setOrderStatus(MaintenanceOrderStatusEnum.RETURNED.getStatus());
model.setReturnCause(maintenanceOrderParam.getReturnCause());
maintenanceOrderMapper.updateById(model);
}else{
throw new OperateException("当前工单状态,无法退回检修");
}
}
}

View File

@ -182,7 +182,7 @@ public class SpareParAllotServiceImpl implements ISparePartAllotService {
model.setImportWarehouse(sparePartStockAuditParam.getImportWarehouse()); // 调入仓库
model.setRemark(sparePartStockAuditParam.getRemark()); // 备注
model.setReceiptNumber(generateOrderNumber()); // 单据编号
model.setOutInWarehouseType(Long.valueOf(AuditStateEnum.STOCKTRANSFER.getStatus())); //入库类别(2=库存调拨)
model.setOutInWarehouseType(AuditStateEnum.STOCK_TRANSFER.getStatus()); //入库类别(2=库存调拨)
// 获取当前的用户
Object username = AdminThreadLocal.get("username");
@ -196,11 +196,9 @@ public class SpareParAllotServiceImpl implements ISparePartAllotService {
List<SparePartAudit> sparePartAuditList = sparePartStockAuditParam.getSparePartAuditList();
// 使用StringBuilder来拼接id值
StringBuilder sb = new StringBuilder();
for (SparePartAudit sparePartAudit : sparePartAuditList) {
SparePartAudit insertSparePartAudit = new SparePartAudit();
insertSparePartAudit.setSparePartsId(sparePartAudit.getId()); //备件id
sb.append(sparePartAudit.getId()).append(",");
insertSparePartAudit.setCount(sparePartAudit.getCount()); //备件调拨数量
insertSparePartAudit.setStockAuditId(model.getId()); // 出入库审核id
@ -213,8 +211,6 @@ public class SpareParAllotServiceImpl implements ISparePartAllotService {
insertSparePartAudit.setSparePartsCode(sparePart.getSparePartsCode()); //备件编码
sparePartAuditMapper.insert(insertSparePartAudit);//插入备件审核信息
}
sb.deleteCharAt(sb.length() - 1); // 删除最后一个逗号
model.setSparePartAuditId(String.valueOf(sb));// 备件审核id
model.setCreateTime(System.currentTimeMillis() / 1000);
sparePartStockAuditMapper.insert(model);
}
@ -240,8 +236,7 @@ public class SpareParAllotServiceImpl implements ISparePartAllotService {
model.setRemark(sparePartStockAuditParam.getRemark()); // 备注
List<SparePartAudit> sparePartAuditList = sparePartStockAuditParam.getSparePartAuditList();
// 使用StringBuilder来拼接id值
StringBuilder sb = new StringBuilder();
List<SparePartAudit> auditList = sparePartAuditMapper.selectList(
new QueryWrapper<SparePartAudit>()
.eq("stock_audit_id", model.getId())
@ -267,7 +262,6 @@ public class SpareParAllotServiceImpl implements ISparePartAllotService {
}else {
insertSparePartAudit.setSparePartsId(sparePartAudit.getId());
}
sb.append(sparePartAudit.getId()).append(",");
insertSparePartAudit.setCount(sparePartAudit.getCount()); //备件调拨数量
insertSparePartAudit.setStockAuditId(model.getId()); // 出入库审核id
@ -286,12 +280,10 @@ public class SpareParAllotServiceImpl implements ISparePartAllotService {
}
//已审核,但不通过的,重新编辑之后状态也要变成未审核,审核结果改成空
if(model.getAuditState() == AuditStateEnum.AUDITED.getStatus()
&& model.getAuditResult() == AuditStateEnum.NOTPASS.getStatus()){
&& model.getAuditResult() == AuditStateEnum.NOT_PASS.getStatus()){
model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus());
model.setAuditResult(null);
}
sb.deleteCharAt(sb.length() - 1); // 删除最后一个逗号
model.setSparePartAuditId(String.valueOf(sb));// 备件审核id
model.setUpdateTime(System.currentTimeMillis() / 1000);
sparePartStockAuditMapper.updateById(model);
}

View File

@ -188,16 +188,14 @@ public class SparePartInWarehouseServiceImpl implements ISparePartInWarehouseSer
// 审核状态
model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus());
//单据类型0=入库单1=出库单2=仓库调拨单)
model.setReceiptType(AuditStateEnum.INWAREHOUSE.getStatus());
model.setReceiptType(AuditStateEnum.IN_WAREHOUSE.getStatus());
//model.setSparePartAuditId(sparePartStockAuditParam.getSparePartAuditId()); // 备件审核id
List<SparePartAudit> sparePartAuditList = sparePartStockAuditParam.getSparePartAuditList();
// 使用StringBuilder来拼接id值
StringBuilder sb = new StringBuilder();
for (SparePartAudit sparePartAudit : sparePartAuditList) {
SparePartAudit insertSparePartAudit = new SparePartAudit();
insertSparePartAudit.setSparePartsId(sparePartAudit.getId()); //备件id
sb.append(sparePartAudit.getId()).append(",");
insertSparePartAudit.setCount(sparePartAudit.getCount()); //备件入库数量
insertSparePartAudit.setStockAuditId(model.getId()); // 出入库审核id
@ -211,8 +209,6 @@ public class SparePartInWarehouseServiceImpl implements ISparePartInWarehouseSer
sparePartAuditMapper.insert(insertSparePartAudit);//插入备件审核信息
}
sb.deleteCharAt(sb.length() - 1); // 删除最后一个逗号
model.setSparePartAuditId(String.valueOf(sb));// 备件审核id
model.setCreateTime(System.currentTimeMillis() / 1000);
sparePartStockAuditMapper.insert(model);
}
@ -240,8 +236,6 @@ public class SparePartInWarehouseServiceImpl implements ISparePartInWarehouseSer
model.setReceiptNumber(sparePartStockAuditParam.getReceiptNumber()); // 单据编号
List<SparePartAudit> sparePartAuditList = sparePartStockAuditParam.getSparePartAuditList();
// 使用StringBuilder来拼接id值
StringBuilder sb = new StringBuilder();
List<SparePartAudit> auditList = sparePartAuditMapper.selectList(
new QueryWrapper<SparePartAudit>()
@ -269,7 +263,6 @@ public class SparePartInWarehouseServiceImpl implements ISparePartInWarehouseSer
}else {
insertSparePartAudit.setSparePartsId(sparePartAudit.getId());
}
sb.append(sparePartAudit.getId()).append(",");
insertSparePartAudit.setCount(sparePartAudit.getCount()); //备件入库数量
insertSparePartAudit.setStockAuditId(model.getId()); // 出入库审核id
@ -283,13 +276,11 @@ public class SparePartInWarehouseServiceImpl implements ISparePartInWarehouseSer
}
//已审核,但不通过的,重新编辑之后状态也要变成未审核,审核结果改成空
if(model.getAuditState() == AuditStateEnum.AUDITED.getStatus()
&& model.getAuditResult() == AuditStateEnum.NOTPASS.getStatus()){
&& model.getAuditResult() == AuditStateEnum.NOT_PASS.getStatus()){
model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus());
model.setAuditResult(null);
}
sb.deleteCharAt(sb.length() - 1); // 删除最后一个逗号
model.setSparePartAuditId(String.valueOf(sb));// 备件审核id
model.setUpdateTime(System.currentTimeMillis() / 1000);
sparePartStockAuditMapper.updateById(model);
}

View File

@ -195,23 +195,20 @@ public class SparePartOutWarehouseServiceImpl implements ISparePartOutWarehouseS
// 审核状态
model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus());
//单据类型0=入库单1=出库单2=仓库调拨单)
model.setReceiptType(AuditStateEnum.OUTWAREHOUSE.getStatus());
model.setReceiptType(AuditStateEnum.OUT_WAREHOUSE.getStatus());
List<SparePartAudit> sparePartAuditList = sparePartStockAuditParam.getSparePartAuditList();
// 使用StringBuilder来拼接id值
StringBuilder sb = new StringBuilder();
for (SparePartAudit sparePartAudit : sparePartAuditList) {
SparePartAudit insertSparePartAudit = new SparePartAudit();
insertSparePartAudit.setSparePartsId(sparePartAudit.getId()); //备件id
sb.append(sparePartAudit.getId()).append(",");
insertSparePartAudit.setCount(sparePartAudit.getCount()); //备件出库数量
insertSparePartAudit.setStockAuditId(model.getId()); // 出入库审核id
insertSparePartAudit.setCreateTime(System.currentTimeMillis() / 1000);
sparePartAuditMapper.insert(insertSparePartAudit);//插入备件审核信息
}
sb.deleteCharAt(sb.length() - 1); // 删除最后一个逗号
model.setSparePartAuditId(String.valueOf(sb));// 备件审核id
model.setCreateTime(System.currentTimeMillis() / 1000);
sparePartStockAuditMapper.insert(model);
}
@ -239,8 +236,7 @@ public class SparePartOutWarehouseServiceImpl implements ISparePartOutWarehouseS
model.setReceiptNumber(sparePartStockAuditParam.getReceiptNumber()); // 单据编号
List<SparePartAudit> sparePartAuditList = sparePartStockAuditParam.getSparePartAuditList();
// 使用StringBuilder来拼接id值
StringBuilder sb = new StringBuilder();
List<SparePartAudit> auditList = sparePartAuditMapper.selectList(
new QueryWrapper<SparePartAudit>()
.eq("stock_audit_id", model.getId())
@ -266,7 +262,6 @@ public class SparePartOutWarehouseServiceImpl implements ISparePartOutWarehouseS
}else {
insertSparePartAudit.setSparePartsId(sparePartAudit.getId());
}
sb.append(sparePartAudit.getId()).append(",");
insertSparePartAudit.setCount(sparePartAudit.getCount()); //备件出库数量
insertSparePartAudit.setStockAuditId(model.getId()); // 出入库审核id
@ -279,12 +274,10 @@ public class SparePartOutWarehouseServiceImpl implements ISparePartOutWarehouseS
}
//已审核,但不通过的,重新编辑之后状态也要变成未审核,审核结果改成空
if(model.getAuditState() == AuditStateEnum.AUDITED.getStatus()
&& model.getAuditResult() == AuditStateEnum.NOTPASS.getStatus()){
&& model.getAuditResult() == AuditStateEnum.NOT_PASS.getStatus()){
model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus());
model.setAuditResult(null);
}
sb.deleteCharAt(sb.length() - 1); // 删除最后一个逗号
model.setSparePartAuditId(String.valueOf(sb));// 备件审核id
model.setUpdateTime(System.currentTimeMillis() / 1000);
sparePartStockAuditMapper.updateById(model);
}

View File

@ -285,23 +285,19 @@ public class SparePartPurchaseServiceImpl implements ISparePartPurchaseService {
model.setHandlingTime(System.currentTimeMillis() / 1000); //经办时间
//单据类型0=入库单1=出库单2=仓库调拨单)
model.setReceiptType(AuditStateEnum.OUTWAREHOUSE.getStatus());
model.setReceiptType(AuditStateEnum.OUT_WAREHOUSE.getStatus());
List<SparePartAudit> sparePartAuditList = sparePartStockAuditParam.getSparePartAuditList();
// 使用StringBuilder来拼接id值
StringBuilder sb = new StringBuilder();
for (SparePartAudit sparePartAudit : sparePartAuditList) {
SparePartAudit insertSparePartAudit = new SparePartAudit();
insertSparePartAudit.setSparePartsId(sparePartAudit.getId()); //备件id
sb.append(sparePartAudit.getId()).append(",");
insertSparePartAudit.setUnitPrice(sparePartAudit.getUnitPrice());
insertSparePartAudit.setCount(sparePartAudit.getCount()); //备件出库数量
insertSparePartAudit.setStockAuditId(model.getId()); // 出入库审核id
insertSparePartAudit.setCreateTime(System.currentTimeMillis() / 1000);
sparePartAuditMapper.insert(insertSparePartAudit);//插入备件审核信息
}
sb.deleteCharAt(sb.length() - 1); // 删除最后一个逗号
model.setSparePartAuditId(String.valueOf(sb));// 备件审核id
model.setCreateTime(System.currentTimeMillis() / 1000);
sparePartStockAuditMapper.insert(model);
}
@ -350,11 +346,10 @@ public class SparePartPurchaseServiceImpl implements ISparePartPurchaseService {
model.setConsignee((String) username); // 收货单位(人员)
//单据类型0=入库单1=出库单2=仓库调拨单)
model.setReceiptType(AuditStateEnum.OUTWAREHOUSE.getStatus());
model.setReceiptType(AuditStateEnum.OUT_WAREHOUSE.getStatus());
List<SparePartAudit> sparePartAuditList = sparePartStockAuditParam.getSparePartAuditList();
// 使用StringBuilder来拼接id值
StringBuilder sb = new StringBuilder();
List<SparePartAudit> auditList = sparePartAuditMapper.selectList(
new QueryWrapper<SparePartAudit>()
.eq("stock_audit_id", model.getId())
@ -380,7 +375,6 @@ public class SparePartPurchaseServiceImpl implements ISparePartPurchaseService {
}else {
insertSparePartAudit.setSparePartsId(sparePartAudit.getId());
}
sb.append(sparePartAudit.getId()).append(",");
insertSparePartAudit.setCount(sparePartAudit.getCount()); //备件出库数量
insertSparePartAudit.setStockAuditId(model.getId()); // 出入库审核id
@ -388,8 +382,6 @@ public class SparePartPurchaseServiceImpl implements ISparePartPurchaseService {
sparePartAuditMapper.insert(insertSparePartAudit);//插入备件审核信息
}
sb.deleteCharAt(sb.length() - 1); // 删除最后一个逗号
model.setSparePartAuditId(String.valueOf(sb));// 备件审核id
model.setUpdateTime(System.currentTimeMillis() / 1000);
sparePartStockAuditMapper.updateById(model);
}
@ -511,7 +503,7 @@ public class SparePartPurchaseServiceImpl implements ISparePartPurchaseService {
.eq("stock_audit_id", model.getId())
.eq("is_delete", 0)
);
if(model.getReceiptType() == AuditStateEnum.OUTWAREHOUSE.getStatus()
if(model.getReceiptType() == AuditStateEnum.OUT_WAREHOUSE.getStatus()
&& model.getPurchaseStatus() == AuditStateEnum.CHECKPENDING.getStatus()){
// 通过审核的出库单
//获取备件信息

View File

@ -318,7 +318,7 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
model.setId(sparePartStockAuditParam.getId());
model.setAuditResult(sparePartStockAuditParam.getAuditResult()); // 审核结果0=已通过1=未通过)
if(sparePartStockAuditParam.getAuditResult() == AuditStateEnum.NOTPASS.getStatus()){
if(sparePartStockAuditParam.getAuditResult() == AuditStateEnum.NOT_PASS.getStatus()){
model.setPurchaseStatus(AuditStateEnum.NOTPASSSTATE.getStatus()); //审核未通过
}
model.setAuditState(AuditStateEnum.AUDITED.getStatus()); // 审核状态0=未审核1=已审核2=已取消)
@ -332,8 +332,8 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
.eq("stock_audit_id", model.getId())
.eq("is_delete", 0)
);
if(model.getReceiptType() == AuditStateEnum.INWAREHOUSE.getStatus()
&& model.getAuditResult() == AuditStateEnum.ALREADYPASSED.getStatus()){
if(model.getReceiptType() == AuditStateEnum.IN_WAREHOUSE.getStatus()
&& model.getAuditResult() == AuditStateEnum.ALREADY_PASSED.getStatus()){
//已通过审核的入库单
//获取备件信息
for (SparePartAudit sparePartAudit : stockAuditId) {
@ -345,8 +345,8 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
sparePart.setQuantity(sparePart.getQuantity() + sparePartAudit.getCount());
sparePartMapper.updateById(sparePart);
}
}else if(model.getReceiptType() == AuditStateEnum.OUTWAREHOUSE.getStatus()
&& model.getAuditResult() == AuditStateEnum.ALREADYPASSED.getStatus()){
}else if(model.getReceiptType() == AuditStateEnum.OUT_WAREHOUSE.getStatus()
&& model.getAuditResult() == AuditStateEnum.ALREADY_PASSED.getStatus()){
// 通过审核的出库单
//获取备件信息
for (SparePartAudit sparePartAudit : stockAuditId) {
@ -368,7 +368,7 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
}
}else if(model.getReceiptType() == AuditStateEnum.ALLOT.getStatus()
&& model.getAuditResult() == AuditStateEnum.ALREADYPASSED.getStatus()){
&& model.getAuditResult() == AuditStateEnum.ALREADY_PASSED.getStatus()){
//通过审核的调拨单
//获取备件信息
for (SparePartAudit sparePartAudit : stockAuditId) {
@ -455,7 +455,7 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
.eq("stock_audit_id", model.getId())
.eq("is_delete", 0)
);
if(model.getReceiptType() == AuditStateEnum.OUTWAREHOUSE.getStatus()){
if(model.getReceiptType() == AuditStateEnum.OUT_WAREHOUSE.getStatus()){
// 通过审核的出库单
//获取备件信息
for (SparePartAudit sparePartAudit : stockAuditId) {

View File

@ -101,4 +101,5 @@ public class MaintenanceOrderParam implements Serializable {
private String clientName; // 客户姓名
private String creatorName; // 创建人姓名
private String receiverName; // 接单人姓名
private String returnCause; //退回原因
}

View File

@ -0,0 +1,63 @@
package com.hcy.admin.validate.order;
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;
/**
*
*/
@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 = "warehouseId参数缺失", groups = {create.class, update.class})
@Length(max = 100, message = "warehouseId参数不能超出100个字符", groups = {create.class, update.class})
private Long warehouseId;
@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 Integer quantity;
@NotNull(message = "totalPrice参数缺失", groups = {create.class, update.class})
private BigDecimal totalPrice;
}

View File

@ -84,7 +84,7 @@ public class SparePartStockAuditParam implements Serializable {
private String sparePartAuditId; // 备件审核id
private List<SparePartAudit> sparePartAuditList; //待入库的备件
private Long outInWarehouseType; //出入库类别0=采购入库1=库存调拨2=员工领料3=销售出库)
private Integer outInWarehouseType; //出入库类别0=采购入库1=库存调拨2=员工领料3=销售出库)
private String workOrderId; //工单号
private String orderId; //订单编号

View File

@ -1,5 +1,6 @@
package com.hcy.admin.vo.client;
import com.hcy.common.entity.client.EquipmentModel;
import lombok.Data;
import java.io.Serializable;
@ -35,4 +36,6 @@ public class EquipmentListVo implements Serializable {
private String deviceCode; // 设备码
private String createTime; // 创建时间
private String clientName; // 客户名称
private EquipmentModelDetailVo equipmentModel; //设备模块信息
}

View File

@ -0,0 +1,25 @@
package com.hcy.admin.vo.client;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* EquipmentModelVo
*/
@Data
public class EquipmentModelDetailVo implements Serializable {
private static final long serialVersionUID = 1L;
private Long id; // 备件模块id
private Long equipmentId; // 备件id
private String modelNo; // 模块编号
private String brand; // 品牌
private Integer replaceFrequency; // 更换次数
private Long userId; //安装人
private Date installationTime; //安装时间
private String installationName; //安装人名称
}

View File

@ -0,0 +1,25 @@
package com.hcy.admin.vo.client;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* EquipmentModelVo
*/
@Data
public class EquipmentModelListVo implements Serializable {
private static final long serialVersionUID = 1L;
private Long id; // 备件模块id
private Long equipmentId; // 备件id
private String modelNo; // 模块编号
private String brand; // 品牌
private Integer replaceFrequency; // 更换次数
private Long userId; //安装人
private Date installationTime; //安装时间
private String installationName; //安装人名称
}

View File

@ -7,6 +7,7 @@ import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* MaintenanceOrderVo
@ -18,8 +19,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
@ -44,10 +45,16 @@ public class MaintenanceOrderDetailVo implements Serializable {
private Long familiarFaultId; // 常见维修结论id
private String familiarFaultDescription; // 常见维修结论描述
private Integer repairWorkOrderFlow; //工单去向 0=工单池 1=检修员
private Date createTime; // 创建时间
private String clientName; // 客户姓名
private String clientDirector; // 客户负责人姓名
private String clientPhone; //客户电话
private Equipment equipment; //设备信息
private String faultName; //故障名称
private String creatorName; // 创建人姓名
private String receiverName; // 接单人姓名
private String receiverPhone; //接单人手机
private List<OrderSparePartListVo> sparePartList; // 备件清单
}

View File

@ -1,5 +1,7 @@
package com.hcy.admin.vo.order;
import com.hcy.admin.vo.client.EquipmentModelDetailVo;
import com.hcy.common.entity.client.EquipmentModel;
import lombok.Data;
import java.io.Serializable;
@ -53,6 +55,11 @@ public class MaintenanceOrderListVo implements Serializable {
private String clientName; // 客户姓名
private String creatorName; // 创建人姓名
private String receiverName; // 接单人姓名
<<<<<<< Updated upstream
private String shortName; //客户简称
=======
private EquipmentModelDetailVo equipmentModel; //设备模块信息
>>>>>>> Stashed changes
}

View File

@ -0,0 +1,27 @@
package com.hcy.admin.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; // 总价
}

View File

@ -0,0 +1,28 @@
package com.hcy.admin.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 maintenanceOrderId; //检修单id
private Long sparePartsId; // 备件id
private String sparePartsCode; // 备件编码
private String sparePartsName; // 备件名称
private Long warehouseId; // 所属仓库名称
private String specificationsModel; // 规格型号
private String unit; // 单位
private BigDecimal unitPrice; // 价格
private Integer quantity; // 数量
private BigDecimal totalPrice; // 总价
}

View File

@ -47,6 +47,7 @@ public class MaintenanceOrderDto implements Serializable {
private Integer repairWorkOrderFlow; //工单去向 0=工单池 1=检修员
private Integer isMaintain; //是否维修 0-维修 1-不维修
private Integer warehouseType; //仓库类型 0-我的仓库 1-公共仓库
private Integer isConfirmReceipt; //是否确认收货 0-未收货 1-已收货
private String faultName; //故障名称
private String equipmentNo; //设备编号
@ -54,6 +55,7 @@ public class MaintenanceOrderDto implements Serializable {
private String detailedAddress; //设备详情地址
private String clientName; // 客户姓名
private String creatorName; // 创建人姓名
private String clientCreatorName; //客户创建人姓名
private String receiverName; // 接单人姓名
private Long equipmentProvinceId; //设备省id
private Long equipmentDistrictId; //设备区id

View File

@ -0,0 +1,27 @@
package com.hcy.common.entity.client;
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 EquipmentModel implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value="id", type= IdType.AUTO)
private Long id; // 备件模块id
private Long equipmentId; // 备件id
private String modelNo; // 模块编号
private String brand; // 品牌
private Integer replaceFrequency; // 更换次数
private Long userId; //安装人
private Date installationTime; //安装时间
}

View File

@ -43,6 +43,7 @@ public class MaintenanceOrder implements Serializable {
private Date cancelOrderTime; // 取消订单时间
private String cancelCause; // 取消原因
private String refuseMaintenanceCause; // 拒绝维修原因
private String returnCause; //退回原因
private String remark; // 备注
private Long creatorId; // 创建人id
private Date orderAccomplishTime; // 订单完成时间
@ -54,4 +55,5 @@ public class MaintenanceOrder implements Serializable {
private Integer repairWorkOrderFlow; //工单去向 0=工单池 1=检修员
private Integer isMaintain; //是否维修 0-维修 1-不维修
private Integer warehouseType; //仓库类型 0-我的仓库 1-公共仓库
private Integer isConfirmReceipt; //是否确认收货 0-未收货 1-已收货
}

View File

@ -40,10 +40,9 @@ public class SparePartStockAudit implements Serializable {
private Long createTime; // 创建时间
private Long updateTime; // 更新时间
private Long deleteTime; // 删除时间
private String sparePartAuditId; // 备件审核id
private Long outInWarehouseType; // 出入库类别0=采购入库1=库存调拨2=员工领料3=销售出库)
private String workOrderId; //工单号
private String orderId; //订单编号
private Integer outInWarehouseType; // 出入库类别0=采购入库1=库存调拨2=员工领料3=销售出库)
private Long orderId; //订单编号
private Integer orderType; // 0-检修工单 1-维修工单
private String shippingAddress; //收货地址
private String consigner; //发货人
private String consignerPhone; //发货人联系电话

View File

@ -0,0 +1,43 @@
package com.hcy.common.enums;
import com.google.common.collect.Maps;
import java.util.Map;
public enum SparePartStockAuditEnum {
MAINTENANCE_ORDER(0, "检修工单"),
REPAIR_ORDER(1, "维修工单"),
EXPRESSAGE(1,"物流快递"),
SELF_TAKE(2,"自行取件"),
HOME_DELIVERY(3,"送货上门");
private final int status;
private final String desc;
SparePartStockAuditEnum(int status, String desc) {
this.status = status;
this.desc = desc;
}
/**
*
*
* @return Long
* @author fzr
*/
public int getStatus() {
return this.status;
}
/**
*
*
* @return String
* @author fzr
*/
public String getDesc() {
return this.desc;
}
}

View File

@ -23,19 +23,19 @@ public enum AuditStateEnum {
OVERDUE(7, "收货超期"),
//审核结果0=已通过1=未通过)
NOTPASS(1,"未通过"),
ALREADYPASSED(0, "已通过"),
NOT_PASS(1,"未通过"),
ALREADY_PASSED(0, "已通过"),
// 单据类型0=入库单1=出库单2=仓库调拨单)
INWAREHOUSE(0, "入库单"),
OUTWAREHOUSE(1, "出库单"),
IN_WAREHOUSE(0, "入库单"),
OUT_WAREHOUSE(1, "出库单"),
ALLOT(2,"仓库调拨单"),
// 出入库类别0=采购入库1=库存调拨2=员工领料3=销售出库)
STOCKIN(0,"采购入库"),
STOCKTRANSFER(1, "库存调拨"),
GETMATERIALS(2,"员工领料"),
SALESOUTBOUND(3, "销售出库");
STOCK_IN(0,"采购入库"),
STOCK_TRANSFER(1, "库存调拨"),
STAFF_MATERIALS(2,"员工领料"),
SALE_OUT_OF_WAREHOUSE(3, "销售出库");
private final int status;
private final String desc;

View File

@ -20,6 +20,7 @@ public enum MaintenanceOrderStatusEnum {
FINISHED(6,"已完成"),
CHARGEBACK(7,"已退单"),
CLOSED(8,"已关闭"),
RETURNED(9,"已退回"),
NEAREST_TO_ME(0,"离我最近"),
TIME_PRIORITY(1,"时间优先"),
@ -31,7 +32,10 @@ public enum MaintenanceOrderStatusEnum {
NOT_MAINTAIN(1,"不维修"),
MY_WAREHOUSE(0,"我的仓库"),
PUBLIC_WAREHOUSE(1,"全部仓库"),;
PUBLIC_WAREHOUSE(1,"全部仓库"),
NOT_RECEIPT(0,"未收货"),
CONFIRM_RECEIPT(1,"确认收货");
private final int status;
private final String desc;

View File

@ -3,10 +3,20 @@ package com.hcy.common.mapper.address;
import com.hcy.common.core.basics.IBaseMapper;
import com.hcy.common.entity.address.UserAddress;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
/**
* Mapper
*/
@Mapper
public interface UserAddressMapper extends IBaseMapper<UserAddress> {
/**
* id
* @param id id
* @return UserAddress
*/
@Select("select * from la_user_address where is_delete = 0 and id = #{id}")
UserAddress findUserAddressById(@Param("id") Integer id);
}

View File

@ -12,4 +12,7 @@ import org.apache.ibatis.annotations.Select;
@Mapper
public interface ClientContactsMapper extends IBaseMapper<ClientContacts> {
@Select("select * from la_client_contacts where is_delete = 0 and user_id = #{userId}")
ClientContacts findClientContactsByUserId(@Param("userId") Long userId);
}

View File

@ -0,0 +1,23 @@
package com.hcy.common.mapper.client;
import com.hcy.common.core.basics.IBaseMapper;
import com.hcy.common.entity.client.EquipmentModel;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
/**
* Mapper
*/
@Mapper
public interface EquipmentModelMapper extends IBaseMapper<EquipmentModel> {
/**
* id
* @param equipmentId id
* @return EquipmentModel
*/
@Select("select * from la_equipment_model where equipment_id = #{equipmentId}")
EquipmentModel findEquipmentModelByEquipmentId(@Param("equipmentId") Long equipmentId);
}

View File

@ -3,10 +3,22 @@ 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;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* Mapper
*/
@Mapper
public interface OrderSparePartMapper extends IBaseMapper<OrderSparePart> {
/**
* id
* @param maintenanceOrderId id
* @return
*/
@Select("SELECT * FROM la_order_spare_part WHERE maintenance_order_id = #{maintenanceOrderId}")
List<OrderSparePart> findOrderSparePartByMaintenanceOrderId(@Param("maintenanceOrderId") Long maintenanceOrderId);
}

View File

@ -2,7 +2,6 @@ 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;
@ -20,5 +19,7 @@ public interface SparePartMapper extends IBaseMapper<SparePart> {
@Select("select * from la_spare_part where is_delete = 0 and id = #{id}")
SparePart findSparePart(@Param("id") Long id);
SparePart findSparePartById(@Param("id") Long id);
}

View File

@ -12,6 +12,7 @@
le.name as equipmentName,
le.detailed_address as detailedAddress,
lsaa.nickname as creatorName,
lcc.`name` as clientCreatorName,
lu.username as receiverName,
le.province_id as equipmentProvinceId,
le.district_id as equipmentDistrictId,
@ -25,6 +26,7 @@
LEFT JOIN la_fault AS lf On lf.id = lmo.fault_id
LEFT JOIN la_system_auth_admin AS lsaa ON lsaa.id = lmo.creator_id
LEFT JOIN la_user AS lu ON lu.id = lmo.receiver_id
LEFT JOIN la_client_contacts AS lcc ON lcc.user_id = lmo.creator_id
<where>
lmo.is_delete = 0
<if test="param.orderNo != null and param.orderNo != ''">
@ -37,7 +39,7 @@
and lc.client_name like concat('%',#{param.clientName},'%')
</if>
<if test="param.creatorName != null and param.creatorName != ''">
and lsaa.username like concat('%',#{param.creatorName},'%')
and (lsaa.username like concat('%',#{param.creatorName},'%') or lcc.name like concat('%',#{param.creatorName},'%'))
</if>
<if test="param.receiverName != null and param.receiverName != ''">
and lu.username like concat('%',#{param.receiverName},'%')

View File

@ -116,4 +116,37 @@ public class MaintenanceOrderController {
iMaintenanceOrderService.confirmServiceOfferPrice(maintenanceOrderParam);
return AjaxResult.success();
}
/**
*
* @param maintenanceOrderParam
* @return Object
*/
@PostMapping("/sparePartsRequisition")
public Object sparePartsRequisition(@RequestBody MaintenanceOrderParam maintenanceOrderParam) {
iMaintenanceOrderService.sparePartsRequisition(maintenanceOrderParam);
return AjaxResult.success();
}
/**
*
* @param maintenanceOrderParam
* @return Object
*/
@PostMapping("/fillInReceipt")
public Object fillInReceipt(@RequestBody MaintenanceOrderParam maintenanceOrderParam) {
iMaintenanceOrderService.fillInReceipt(maintenanceOrderParam);
return AjaxResult.success();
}
/**
*
* @param maintenanceOrderParam
* @return Object
*/
@PostMapping("/updateEquipmentModel")
public Object updateEquipmentModel(@RequestBody MaintenanceOrderParam maintenanceOrderParam) {
iMaintenanceOrderService.updateEquipmentModel(maintenanceOrderParam);
return AjaxResult.success();
}
}

View File

@ -150,6 +150,7 @@ public class LoginServiceImpl implements ILoginService {
//第一次登录小程序
if(userAuth == null){
try{
UserAuth auth = new UserAuth();
auth.setUserId(user.getId());
auth.setOpenid(openId);
@ -158,6 +159,9 @@ public class LoginServiceImpl implements ILoginService {
auth.setCreateTime(System.currentTimeMillis() / 1000);
auth.setUpdateTime(System.currentTimeMillis() / 1000);
userAuthMapper.insert(auth);
}catch (Exception e){
throw new OperateException("账号已存在");
}
}else{
// 更新微信标识
if (StringUtils.isNotEmpty(openId)) {

View File

@ -65,4 +65,22 @@ public interface IMaintenanceOrderService {
* @param maintenanceOrderParam
*/
void confirmServiceOfferPrice(MaintenanceOrderParam maintenanceOrderParam);
/**
*
* @param maintenanceOrderParam
*/
void sparePartsRequisition(MaintenanceOrderParam maintenanceOrderParam);
/**
*
* @param maintenanceOrderParam
*/
void fillInReceipt(MaintenanceOrderParam maintenanceOrderParam);
/**
*
* @param maintenanceOrderParam
*/
void updateEquipmentModel(MaintenanceOrderParam maintenanceOrderParam);
}

View File

@ -1,36 +1,40 @@
package com.hcy.front.service.order.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.order.MaintenanceOrderDto;
import com.hcy.common.dto.order.OrderSparePart;
import com.hcy.common.entity.address.UserAddress;
import com.hcy.common.entity.client.Client;
import com.hcy.common.entity.client.ClientContacts;
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.sparePart.SparePart;
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.ClientEnum;
import com.hcy.common.enums.ClientStatusEnum;
import com.hcy.common.enums.SparePartStockAuditEnum;
import com.hcy.common.enums.audit.AuditStateEnum;
import com.hcy.common.enums.order.MaintenanceOrderStatusEnum;
import com.hcy.common.enums.order.OrderStateEnum;
import com.hcy.common.exception.OperateException;
import com.hcy.common.mapper.address.UserAddressMapper;
import com.hcy.common.mapper.client.ClientContactsMapper;
import com.hcy.common.mapper.client.ClientMapper;
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.OrderSparePartMapper;
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.mapper.warehouse.WarehouseMapper;
import com.hcy.common.utils.StringUtil;
import com.hcy.common.utils.ToolsUtil;
import com.hcy.front.FrontThreadLocal;
import com.hcy.front.service.order.IMaintenanceOrderService;
@ -38,19 +42,19 @@ 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.client.EquipmentDetailVo;
import com.hcy.front.vo.client.EquipmentModelDetailVo;
import com.hcy.front.vo.order.MaintenanceOrderDetailVo;
import com.hcy.front.vo.order.MaintenanceOrderListVo;
import com.hcy.front.vo.order.OrderSparePartListVo;
import com.hcy.front.vo.order.OrderStaffVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.sql.ClientInfoStatus;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;
@ -84,10 +88,22 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
SparePartMapper sparePartMapper;
@Resource
WarehouseMapper warehouseMapper;
OrderSparePartMapper orderSparePartMapper;
@Resource
OrderSparePartMapper orderSparePartMapper;
ClientContactsMapper clientContactsMapper;
@Resource
UserAddressMapper userAddressMapper;
@Resource
IDevRegionService regionService;
@Resource
SparePartStockAuditMapper sparePartStockAuditMapper;
@Resource
EquipmentModelMapper equipmentModelMapper;
private final DecimalFormat df = new DecimalFormat ("#.#");
@ -104,7 +120,7 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
model.setOrderStatus(OrderStateEnum.WAITING_LIST.getStatus());
model.setOrderNo(getOrderNo());
model.setCreatorId(maintenanceOrderParam.getClientId());
model.setCreatorId(FrontThreadLocal.getUserId().longValue());
maintenanceOrderMapper.insert(model);
}
@ -120,6 +136,7 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
.like(MaintenanceOrder::getOrderNo, formatDate)
.orderByDesc(MaintenanceOrder::getOrderNo)
.last("limit 1"));
//当天日期加第一条流水号,如果数据库不存在,则代表今天第一条数据
if (lastmMaintenanceOrder == null) {
return currentOrderNo.toString();
@ -219,11 +236,15 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
if(maintenanceOrderParam.getIsClient() == MaintenanceOrderStatusEnum.REPAIRER.getStatus()){
maintenanceOrderDto.setReceiverId(FrontThreadLocal.getUserId().longValue());
if(StringUtils.isEmpty(maintenanceOrderParam.getOrderStatusIds())){
maintenanceOrderDto.setOrderStatusIds("1,2,7,8");
}
}else{
maintenanceOrderDto.setClientId(maintenanceOrderDto.getClientId());
if(StringUtils.isEmpty(maintenanceOrderParam.getOrderStatusIds())){
maintenanceOrderDto.setOrderStatusIds("0,1,2,7,8");
}
maintenanceOrderDto.setClientId(maintenanceOrderDto.getClientId());
}
List<MaintenanceOrderListVo> returnData = new LinkedList<>();
@ -314,19 +335,34 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
//设置客户信息
Client client = clientMapper.selectById(maintenanceOrder.getClientId());
if(client != null){
vo.setClientName(client.getClientName());
}
//设置设备信息
Equipment equipment = equipmentMapper.selectById(maintenanceOrder.getEquipmentId());
if(equipment != null){
vo.setEquipment(equipment);
}
//设置故障信息
Fault fault = faultMapper.findFaultById(maintenanceOrder.getFaultId());
if(fault != null){
vo.setFaultName(fault.getName());
}
//设置接收人姓名
//设置创建人姓名
if(maintenanceOrder.getOrderSource() == OrderStateEnum.CUSTOMER_REPORT.getStatus()){
ClientContacts clientContacts = clientContactsMapper.findClientContactsByUserId(maintenanceOrder.getCreatorId());
if(clientContacts != null){
vo.setCreatorName(clientContacts.getName());
}
}else{
SystemAuthAdmin systemAuthAdmin = systemAuthAdminMapper.selectById(maintenanceOrder.getCreatorId());
if(systemAuthAdmin != null){
vo.setCreatorName(systemAuthAdmin.getNickname());
}
}
//设置接单人名称
User user = userMapper.selectById(maintenanceOrder.getReceiverId());
@ -334,6 +370,11 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
vo.setReceiverName(user.getNickname());
}
Fault familiarFault = faultMapper.findFaultById(maintenanceOrder.getFamiliarFaultId());
if(familiarFault != null){
vo.setFamiliarFaultName(familiarFault.getName());
}
//设置配件清单
List<OrderSparePart> orderSpareParts = orderSparePartMapper.selectList(new LambdaQueryWrapper<OrderSparePart>()
.eq(OrderSparePart::getMaintenanceOrderId, maintenanceOrder.getId()));
@ -345,6 +386,17 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
}
vo.setSparePartList(orderSparePartListVos);
EquipmentModel equipmentModel = equipmentModelMapper.findEquipmentModelByEquipmentId(maintenanceOrder.getEquipmentId());
EquipmentModelDetailVo equipmentModelDetailVo = new EquipmentModelDetailVo();
if(equipmentModel != null){
BeanUtils.copyProperties(equipmentModel, equipmentModelDetailVo);
User insetallUser = userMapper.selectById(equipmentModel.getUserId());
equipmentModelDetailVo.setInstallationName(insetallUser.getUsername());
}
//设置设备模块信息
vo.setEquipmentModel(equipmentModelDetailVo);
return vo;
}
@ -369,8 +421,15 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
BigDecimal actualAmount = new BigDecimal("0");
//判断是否已经服务报价过了
List<OrderSparePart> orderSpareParts = orderSparePartMapper.findOrderSparePartByMaintenanceOrderId(maintenanceOrder.getId());
for (OrderSparePart orderSparePart : orderSpareParts) {
//已经报过价就将之前的报价信息删除
orderSparePartMapper.deleteById(orderSparePart);
}
for (SparePartParam item : maintenanceOrderParam.getSparePartParams()) {
SparePart sparePart = sparePartMapper.findSparePart(item.getId());
SparePart sparePart = sparePartMapper.findSparePartById(item.getId());
OrderSparePart orderSparePart = new OrderSparePart();
BeanUtils.copyProperties(sparePart, orderSparePart);
@ -416,4 +475,105 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
maintenanceOrderMapper.updateById(maintenanceOrder);
}
@Override
@Transactional
public void sparePartsRequisition(MaintenanceOrderParam maintenanceOrderParam) {
MaintenanceOrder maintenanceOrder = maintenanceOrderMapper.findMaintenanceOrderById(maintenanceOrderParam.getId());
Assert.notNull(maintenanceOrder, "数据不存在");
//我的仓库领用
if(maintenanceOrder.getWarehouseType() == MaintenanceOrderStatusEnum.MY_WAREHOUSE.getStatus()){
//获取领用备件列表
List<OrderSparePart> orderSpareParts = orderSparePartMapper.findOrderSparePartByMaintenanceOrderId(maintenanceOrder.getId());
for (OrderSparePart item : orderSpareParts) {
//获取备件信息
SparePart sparePart = sparePartMapper.findSparePartById(item.getSparePartsId());
if(sparePart.getQuantity() >= item.getQuantity()){
//扣除对应的数量
sparePart.setQuantity(sparePart.getQuantity() - item.getQuantity());
sparePartMapper.updateById(sparePart);
}else{
throw new OperateException("仓库中【" + sparePart.getSparePartsName() + "】备件数量不足" + item.getQuantity() + sparePart.getUnit() + ",配件领用失败");
}
}
maintenanceOrder.setIsConfirmReceipt(MaintenanceOrderStatusEnum.CONFIRM_RECEIPT.getStatus());
maintenanceOrder.setIsMaintain(MaintenanceOrderStatusEnum.MAINTAIN.getStatus());
maintenanceOrderMapper.updateById(maintenanceOrder);
}else{
User user = userMapper.selectById(FrontThreadLocal.getUserId());
UserAddress userAddress = userAddressMapper.findUserAddressById(maintenanceOrderParam.getAddressId());
SparePartStockAudit sparePartStockAudit = new SparePartStockAudit();
sparePartStockAudit.setOrderId(maintenanceOrderParam.getId());
sparePartStockAudit.setOrderType(SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus());
sparePartStockAudit.setReceiptType(AuditStateEnum.OUT_WAREHOUSE.getStatus());
sparePartStockAudit.setOutInWarehouseType(AuditStateEnum.STAFF_MATERIALS.getStatus());
sparePartStockAudit.setConsignee(user.getUsername());
sparePartStockAudit.setPhone(user.getMobile());
//获取检修员选择地址
Map<Long, String> regionMap = regionService.getRegionMap();
sparePartStockAudit.setShippingAddress(regionMap.get(userAddress.getProvinceId()) +
regionMap.get(userAddress.getCityId()) +
regionMap.get(userAddress.getDistrictId()) +
userAddress.getAddress());
sparePartStockAudit.setDeliveryMethod(maintenanceOrderParam.getDeliveryMethod());
sparePartStockAudit.setRemark(maintenanceOrderParam.getRemark());
sparePartStockAuditMapper.insert(sparePartStockAudit);
}
}
@Override
public void fillInReceipt(MaintenanceOrderParam maintenanceOrderParam) {
MaintenanceOrder maintenanceOrder = maintenanceOrderMapper.findMaintenanceOrderById(maintenanceOrderParam.getId());
Assert.notNull(maintenanceOrder, "数据不存在");
Assert.notNull(maintenanceOrderParam.getFamiliarFaultId(), "结论类型不可为空");
Assert.notNull(maintenanceOrderParam.getFamiliarFaultDescription(), "结论描述不可为空");
if(maintenanceOrder.getOrderStatus() == MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus() &&
maintenanceOrder.getIsConfirmReceipt() == MaintenanceOrderStatusEnum.CONFIRM_RECEIPT.getStatus()){
maintenanceOrder.setFamiliarFaultId(maintenanceOrderParam.getFamiliarFaultId());
maintenanceOrder.setFamiliarFaultDescription(maintenanceOrderParam.getFamiliarFaultDescription());
maintenanceOrder.setOrderStatus(MaintenanceOrderStatusEnum.FINISHED.getStatus());
maintenanceOrder.setOrderAccomplishTime(new Date());
maintenanceOrder.setIsConfirmReceipt(MaintenanceOrderStatusEnum.CONFIRM_RECEIPT.getStatus());
maintenanceOrderMapper.updateById(maintenanceOrder);
}else{
throw new OperateException("当前订单状态无法进行填写回单操作");
}
}
@Override
public void updateEquipmentModel(MaintenanceOrderParam maintenanceOrderParam) {
MaintenanceOrder maintenanceOrder = maintenanceOrderMapper.findMaintenanceOrderById(maintenanceOrderParam.getId());
Assert.notNull(maintenanceOrder, "数据不存在");
Assert.notNull(maintenanceOrderParam.getModelNo(), "模块编码不可为空");
Assert.notNull(maintenanceOrderParam.getBrand(), "品牌不可为空");
if(maintenanceOrder.getOrderStatus() == MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus()){
EquipmentModel equipmentModel = equipmentModelMapper.findEquipmentModelByEquipmentId(maintenanceOrder.getEquipmentId());
//未替换过创建设备模块信息
if(equipmentModel == null){
equipmentModel = new EquipmentModel();
equipmentModel.setEquipmentId(maintenanceOrder.getEquipmentId());
equipmentModel.setModelNo(maintenanceOrderParam.getModelNo());
equipmentModel.setBrand(maintenanceOrderParam.getBrand());
equipmentModel.setReplaceFrequency(1);
equipmentModel.setUserId(FrontThreadLocal.getUserId().longValue());
equipmentModelMapper.insert(equipmentModel);
}else{
//替换过则设备模块替换次数加1
equipmentModel.setModelNo(maintenanceOrderParam.getModelNo());
equipmentModel.setBrand(maintenanceOrderParam.getBrand());
equipmentModel.setReplaceFrequency(equipmentModel.getReplaceFrequency() + 1);
equipmentModelMapper.updateById(equipmentModel);
}
}else{
throw new OperateException("当前订单状态无法进行模块替换");
}
}
}

View File

@ -102,10 +102,15 @@ public class MaintenanceOrderParam implements Serializable {
private double latitude; // 纬度
private Integer queryType; // 查询类型 0-离我最近 1-时间优先
private String likeWork; //关键字
private String orderStatusIds; //订单状态ids
//服务报价列表
private List<SparePartParam> sparePartParams;
private Integer isClient; //是否客户 0-客户端 1-检修员端
private Integer isMaintain; //是否维修 0-维修 1-不维修
private Integer warehouseType; //仓库类型 0-我的仓库 1-公共仓库
private Integer deliveryMethod; //配送方式 0-物流 1-上门取件 2-送货上门
private Integer addressId; //地址id
private String modelNo; //模块编码
private String brand; //品牌
}

View File

@ -0,0 +1,25 @@
package com.hcy.front.vo.client;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* EquipmentModelVo
*/
@Data
public class EquipmentModelDetailVo implements Serializable {
private static final long serialVersionUID = 1L;
private Long id; // 备件模块id
private Long equipmentId; // 备件id
private String modelNo; // 模块编号
private String brand; // 品牌
private Integer replaceFrequency; // 更换次数
private Long userId; //安装人
private Date installationTime; //安装时间
private String installationName; //安装人名称
}

View File

@ -0,0 +1,24 @@
package com.hcy.front.vo.client;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* EquipmentModelVo
*/
@Data
public class EquipmentModelListVo implements Serializable {
private static final long serialVersionUID = 1L;
private Long id; // 备件模块id
private Long equipmentId; // 备件id
private String modelNo; // 模块编号
private String brand; // 品牌
private Integer replaceFrequency; // 更换次数
private Long userId; //安装人
private Date installationTime; //安装时间
}

View File

@ -1,6 +1,8 @@
package com.hcy.front.vo.order;
import com.hcy.common.entity.client.Equipment;
import com.hcy.common.entity.client.EquipmentModel;
import com.hcy.front.vo.client.EquipmentModelDetailVo;
import lombok.Data;
import java.io.Serializable;
@ -38,6 +40,7 @@ public class MaintenanceOrderDetailVo implements Serializable {
private Date cancelOrderTime; // 取消订单时间
private String cancelCause; // 取消原因
private String refuseMaintenanceCause; // 拒绝维修原因
private String returnCause; //退回原因
private String remark; // 备注
private Long creatorId; // 创建人id
private Date orderAccomplishTime; // 订单完成时间
@ -46,6 +49,7 @@ public class MaintenanceOrderDetailVo implements Serializable {
private Integer repairWorkOrderFlow; //工单去向 0=工单池 1=检修员
private Integer isMaintain; //是否维修 0-维修 1-不维修
private Integer warehouseType; //仓库类型 0-我的仓库 1-公共仓库
private Integer isConfirmReceipt; //是否确认收货 0-未收货 1-已收货
private Date createTime; // 创建时间
private String clientName; // 客户姓名
@ -54,5 +58,7 @@ public class MaintenanceOrderDetailVo implements Serializable {
private String creatorName; // 创建人姓名
private String receiverName; // 接单人姓名
private String familiarFaultName; //结论名称
private List<OrderSparePartListVo> sparePartList; // 备件清单
private EquipmentModelDetailVo equipmentModel; //设备模块信息
}

View File

@ -36,6 +36,7 @@ public class MaintenanceOrderListVo implements Serializable {
private Date cancelOrderTime; // 取消订单时间
private String cancelCause; // 取消原因
private String refuseMaintenanceCause; // 拒绝维修原因
private String returnCause; //退回原因
private String remark; // 备注
private Long creatorId; // 创建人id
private Date orderAccomplishTime; // 订单完成时间
@ -48,6 +49,7 @@ public class MaintenanceOrderListVo implements Serializable {
private Integer warehouseType; //仓库类型 0-我的仓库 1-公共仓库
private Double distance; //距离
private String practicalDistance; //实际距离
private Integer isConfirmReceipt; //是否确认收货 0-未收货 1-已收货
private String faultName; //故障名称
private String equipmentNo; //设备编号

View File

@ -14,13 +14,14 @@ public class OrderSparePartListVo implements Serializable {
private static final long serialVersionUID = 1L;
private Long id; // id
private Long maintenanceOrderId; //检修单id
private Long sparePartsId; // 备件id
private String sparePartsCode; // 备件编码
private String sparePartsName; // 备件名称
private String warehouseName; // 所属仓库名称
private Long warehouseId; // 所属仓库名称
private String specificationsModel; // 规格型号
private String unit; // 单位
private BigDecimal price; // 价格
private BigDecimal unitPrice; // 价格
private Integer quantity; // 数量
private BigDecimal totalPrice; // 总价