【admin&front】 新增&优化 # 1、优化小程序维修单退仓申请 2、新增信息核对返修功能 3、新增退仓申请,报废申请,领料申请,入库申请审核不通过功能 4、后台管理支持导出多个客户的领机单报表,领机单添加到货时间、客户名称、备注、质保期限;移除维修结果 5、新增除维修人员外,所有可查看领料明细都需要添加配件单价字段;配件单价计算方式客户配件采购因子 * 单价 6、小程序新增报废流程添加质检步骤(上传图片+备注) 7、优化部分检修单bug

dev1.0
renfan 2024-10-29 23:40:42 +08:00
parent 04602a0ffb
commit 8058ce8a52
79 changed files with 2178 additions and 506 deletions

View File

@ -38,6 +38,7 @@ public class ClientController {
PageResult<ClientListVo> list = iClientService.list(pageParam, params); PageResult<ClientListVo> list = iClientService.list(pageParam, params);
return AjaxResult.success(list); return AjaxResult.success(list);
} }
/** /**
* *
* *

View File

@ -8,6 +8,7 @@ import com.hcy.admin.vo.client.EquipmentListVo;
import com.hcy.admin.vo.client.EquipmentDetailVo; import com.hcy.admin.vo.client.EquipmentDetailVo;
import com.hcy.common.core.AjaxResult; import com.hcy.common.core.AjaxResult;
import com.hcy.common.core.PageResult; import com.hcy.common.core.PageResult;
import com.hcy.common.exception.OperateException;
import com.hcy.common.utils.QRCodeUtil; import com.hcy.common.utils.QRCodeUtil;
import com.hcy.common.validator.annotation.IDMust; import com.hcy.common.validator.annotation.IDMust;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -65,7 +66,8 @@ public class EquipmentController {
@PostMapping("/add") @PostMapping("/add")
public Object add(@Validated(value = EquipmentParam.create.class) @RequestBody EquipmentParam equipmentParam) { public Object add(@Validated(value = EquipmentParam.create.class) @RequestBody EquipmentParam equipmentParam) {
if (iEquipmentService.checkEquipmentNumberUnique(equipmentParam)) { if (iEquipmentService.checkEquipmentNumberUnique(equipmentParam)) {
return AjaxResult.success(300,"","新增设备失败,设备编号已存在"); // return AjaxResult.success(300,"","新增设备失败,设备编号已存在");
throw new OperateException("新增设备失败,设备编号已存在!");
} }
iEquipmentService.add(equipmentParam); iEquipmentService.add(equipmentParam);
return AjaxResult.success(); return AjaxResult.success();
@ -82,7 +84,7 @@ public class EquipmentController {
@PostMapping("/edit") @PostMapping("/edit")
public Object edit(@Validated(value = EquipmentParam.update.class) @RequestBody EquipmentParam equipmentParam) { public Object edit(@Validated(value = EquipmentParam.update.class) @RequestBody EquipmentParam equipmentParam) {
if (iEquipmentService.checkEquipmentNumberUnique(equipmentParam)) { if (iEquipmentService.checkEquipmentNumberUnique(equipmentParam)) {
return AjaxResult.success("修改设备失败,设备编号已存在"); throw new OperateException("编辑设备失败,设备编号已存在!");
} }
iEquipmentService.edit(equipmentParam); iEquipmentService.edit(equipmentParam);
return AjaxResult.success(); return AjaxResult.success();

View File

@ -117,4 +117,18 @@ public class ParentRepairOrderController {
public void exportExcel(@Validated @RequestBody ParentRepairOrderParam params, HttpServletResponse response) { public void exportExcel(@Validated @RequestBody ParentRepairOrderParam params, HttpServletResponse response) {
iParentRepairOrderService.exportExcel(params,response); iParentRepairOrderService.exportExcel(params,response);
} }
@ApiOperation(value = "导出客户领机报表")
@PostMapping(value="/clientCollarExcel")
@ResponseBody
public void clientCollarExcel(HttpServletResponse response) {
iParentRepairOrderService.clientCollarExcel(response);
}
@ApiOperation(value = "导出客户入库WIP表")
@PostMapping(value="/warehouseWarrantWIPExcel")
@ResponseBody
public void warehouseWarrantWIPExcel(HttpServletResponse response) {
iParentRepairOrderService.warehouseWarrantWIPExcel(response);
}
} }

View File

@ -136,5 +136,15 @@ public class RepairOrderAuditController {
return AjaxResult.success(); return AjaxResult.success();
} }
/**
* -
*
* @author hcy
* @return Object
*/
@PostMapping("/qualityTesting")
public Object qualityTesting(@RequestBody RepairOrderAuditParam repairOrderAuditParam) {
iRepairOrderAuditService.qualityTesting(repairOrderAuditParam);
return AjaxResult.success();
}
} }

View File

@ -272,4 +272,17 @@ public class RepairOrderController {
List<OrderSparePartListVo> list = iRepairOrderService.partsList(repairOrderParam); List<OrderSparePartListVo> list = iRepairOrderService.partsList(repairOrderParam);
return AjaxResult.success(list); return AjaxResult.success(list);
} }
/**
* id使
*
* @author hcy
* @param repairOrderParam
* @return Object
*/
@GetMapping("/partsUseList")
public Object partsUseList(RepairOrderParam repairOrderParam) {
List<OrderSparePartUseListVo> list = iRepairOrderService.partsUseList(repairOrderParam);
return AjaxResult.success(list);
}
} }

View File

@ -109,4 +109,5 @@ public class SparePartController {
PageResult<SparePartListVo> list = iSparePartService.purchaseList(pageParam, params); PageResult<SparePartListVo> list = iSparePartService.purchaseList(pageParam, params);
return AjaxResult.success(list); return AjaxResult.success(list);
} }
} }

View File

@ -1,5 +1,6 @@
package com.hcy.admin.service.client.impl; package com.hcy.admin.service.client.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
@ -21,6 +22,7 @@ import com.hcy.common.mapper.client.EquipmentMapper;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert; import org.springframework.util.Assert;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -136,10 +138,12 @@ public class ClientServiceImpl implements IClientService {
* @param clientParam * @param clientParam
*/ */
@Override @Override
@Transactional
public void add(ClientParam clientParam) { public void add(ClientParam clientParam) {
LambdaQueryWrapper<Client> queryWrapper = new LambdaQueryWrapper<Client>() LambdaQueryWrapper<Client> queryWrapper = new LambdaQueryWrapper<Client>()
.eq(Client::getIsDelete, GlobalConstant.NOT_DELETE) .eq(Client::getIsDelete, GlobalConstant.NOT_DELETE)
.eq(Client::getPhone, clientParam.getPhone()) .eq(Client::getPhone, clientParam.getPhone())
.or()
.eq(Client::getClientNo, clientParam.getClientNo()); .eq(Client::getClientNo, clientParam.getClientNo());
Integer count = clientMapper.selectCount(queryWrapper); Integer count = clientMapper.selectCount(queryWrapper);
@ -161,12 +165,9 @@ public class ClientServiceImpl implements IClientService {
*/ */
@Override @Override
public void edit(ClientParam clientParam) { public void edit(ClientParam clientParam) {
Long id = clientParam.getId();
String clientNo = clientParam.getClientNo();
Client model = clientMapper.selectOne( Client model = clientMapper.selectOne(
new QueryWrapper<Client>() new QueryWrapper<Client>()
.eq("id", id) .eq("id", clientParam.getId())
.eq("is_delete", GlobalConstant.NOT_DELETE) .eq("is_delete", GlobalConstant.NOT_DELETE)
.last("limit 1")); .last("limit 1"));
@ -174,13 +175,18 @@ public class ClientServiceImpl implements IClientService {
LambdaQueryWrapper<Client> queryWrapper = new LambdaQueryWrapper<Client>() LambdaQueryWrapper<Client> queryWrapper = new LambdaQueryWrapper<Client>()
.eq(Client::getIsDelete, GlobalConstant.NOT_DELETE) .eq(Client::getIsDelete, GlobalConstant.NOT_DELETE)
.ne(Client::getId,id) .eq(Client::getPhone, clientParam.getPhone());
.eq(Client::getPhone, clientParam.getPhone()) Client phone = clientMapper.selectOne(queryWrapper);
.eq(Client::getClientNo,clientNo); if (phone != null && !Objects.equals(phone.getId(), model.getId())) {
throw new OperateException("手机号码不可重复!");
}
Integer count = clientMapper.selectCount(queryWrapper); LambdaQueryWrapper<Client> clientNoQueryWrapper = new LambdaQueryWrapper<Client>()
if(count > 0){ .eq(Client::getIsDelete, GlobalConstant.NOT_DELETE)
throw new OperateException("客户编号或手机号码重复"); .eq(Client::getClientNo, clientParam.getClientNo());
Client clientNo = clientMapper.selectOne(clientNoQueryWrapper);
if (clientNo != null && !Objects.equals(clientNo.getId(), model.getId())) {
throw new OperateException("客户编号不可重复!");
} }
BeanUtils.copyProperties(clientParam,model); BeanUtils.copyProperties(clientParam,model);

View File

@ -205,12 +205,12 @@ public class EquipmentServiceImpl implements IEquipmentService {
model.setClientId(equipmentParam.getClientId()); model.setClientId(equipmentParam.getClientId());
model.setModuleId(equipmentParam.getModuleId()); model.setModuleId(equipmentParam.getModuleId());
model.setNumber(equipmentParam.getNumber()); model.setNumber(equipmentParam.getNumber());
Integer count = equipmentMapper.selectCount(new LambdaQueryWrapper<Equipment>() // Integer count = equipmentMapper.selectCount(new LambdaQueryWrapper<Equipment>()
.eq(Equipment::getIsDelete, GlobalConstant.NOT_DELETE) // .eq(Equipment::getIsDelete, GlobalConstant.NOT_DELETE)
.eq(Equipment::getNumber, equipmentParam.getNumber())); // .eq(Equipment::getNumber, equipmentParam.getNumber()));
if(count > 0){ // if(count > 0){
throw new OperateException("设备编号不可重复!"); // throw new OperateException("设备编号不可重复!");
} // }
model.setName(equipmentParam.getName()); model.setName(equipmentParam.getName());
model.setModel(equipmentParam.getModel()); model.setModel(equipmentParam.getModel());
model.setManufacturers(equipmentParam.getManufacturers()); model.setManufacturers(equipmentParam.getManufacturers());
@ -370,11 +370,11 @@ public class EquipmentServiceImpl implements IEquipmentService {
// 如果查询结果model为null或者查询到的记录的ID等于bo.getId() // 如果查询结果model为null或者查询到的记录的ID等于bo.getId()
// 则表示number是唯一的因此返回true。 // 则表示number是唯一的因此返回true。
if (ObjectUtil.isNull(model) || model.getId().equals(bo.getId())) { if (ObjectUtil.isNull(model) || model.getId().equals(bo.getId())) {
return true; return false;
} }
// 否则返回false表示number不唯一。 // 否则返回false表示number不唯一。
return false; return true;
} }
/** /**

View File

@ -75,4 +75,16 @@ public interface IParentRepairOrderService {
* @return * @return
*/ */
void exportExcel(ParentRepairOrderParam params, HttpServletResponse response); void exportExcel(ParentRepairOrderParam params, HttpServletResponse response);
/**
*
* @param response
*/
void clientCollarExcel(HttpServletResponse response);
/**
* WIP
* @param response
*/
void warehouseWarrantWIPExcel(HttpServletResponse response);
} }

View File

@ -74,4 +74,10 @@ public interface IRepairOrderAuditService {
* *
*/ */
void distributionPrinting(RepairOrderAuditParam repairOrderAuditParam); void distributionPrinting(RepairOrderAuditParam repairOrderAuditParam);
/**
*
* @param repairOrderAuditParam
*/
void qualityTesting(RepairOrderAuditParam repairOrderAuditParam);
} }

View File

@ -3,10 +3,7 @@ package com.hcy.admin.service.order;
import com.hcy.admin.validate.common.PageParam; import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.order.RepairOrderParam; import com.hcy.admin.validate.order.RepairOrderParam;
import com.hcy.admin.vo.excel.ModuleMaintenanceExcel; import com.hcy.admin.vo.excel.ModuleMaintenanceExcel;
import com.hcy.admin.vo.order.MaintenanceReportOrderListVo; import com.hcy.admin.vo.order.*;
import com.hcy.admin.vo.order.OrderSparePartListVo;
import com.hcy.admin.vo.order.RepairOrderListVo;
import com.hcy.admin.vo.order.RepairOrderDetailVo;
import com.hcy.common.core.PageResult; import com.hcy.common.core.PageResult;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
@ -154,4 +151,12 @@ public interface IRepairOrderService {
* @return * @return
*/ */
List<OrderSparePartListVo> partsList(RepairOrderParam repairOrderParam); List<OrderSparePartListVo> partsList(RepairOrderParam repairOrderParam);
/**
* id使
* @param repairOrderParam
* @return
*/
List<OrderSparePartUseListVo> partsUseList(RepairOrderParam repairOrderParam);
} }

View File

@ -280,6 +280,15 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
vo.setSparePartStockAuditDetailVo(sparePartStockAuditDetailVo); vo.setSparePartStockAuditDetailVo(sparePartStockAuditDetailVo);
} }
//全包工单报价为0半包正常显示 actualAmount; // 实际金额 clientType; // 桩点维修类型 0-全包 1-半包
Client clientType = clientMapper.findClientById(vo.getClientId());
if(clientType != null){
if(clientType.getClientType() == ClientStatusEnum.PLIE_POINT_ALL_WRAPPED.getStatus()){
vo.setTotalAmount(BigDecimal.valueOf(0));
vo.setActualAmount(BigDecimal.valueOf(0));
}
}
//设置配件清单 //设置配件清单
List<OrderSparePart> orderSpareParts = orderSparePartMapper.selectList(new LambdaQueryWrapper<OrderSparePart>() List<OrderSparePart> orderSpareParts = orderSparePartMapper.selectList(new LambdaQueryWrapper<OrderSparePart>()
.eq(OrderSparePart::getMaintenanceOrderId, model.getId())); .eq(OrderSparePart::getMaintenanceOrderId, model.getId()));
@ -291,6 +300,14 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
if(warehouse != null){ if(warehouse != null){
orderSparePartListVo.setWarehouseName(warehouse.getWarehouseName()); orderSparePartListVo.setWarehouseName(warehouse.getWarehouseName());
} }
orderSparePartListVo.setUnitPrice(String.valueOf(item.getUnitPrice())); // 单价
//判断是否是全包客户全包客户费用为0
if(clientType != null){
if(clientType.getClientType() == ClientStatusEnum.PLIE_POINT_ALL_WRAPPED.getStatus()){
orderSparePartListVo.setTotalPrice(BigDecimal.valueOf(0));
}
}
orderSparePartListVos.add(orderSparePartListVo); orderSparePartListVos.add(orderSparePartListVo);
} }
vo.setSparePartList(orderSparePartListVos); vo.setSparePartList(orderSparePartListVos);
@ -316,18 +333,10 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
//设置订单操作记录 //设置订单操作记录
LambdaQueryWrapper<OrderOperateRecord> queryWrapper = new LambdaQueryWrapper<OrderOperateRecord>() LambdaQueryWrapper<OrderOperateRecord> queryWrapper = new LambdaQueryWrapper<OrderOperateRecord>()
.eq(OrderOperateRecord::getOrderType, OrderOperateRecordEnum.MAINTENANCE.getStatus()) .eq(OrderOperateRecord::getOrderType, OrderOperateRecordEnum.MAINTENANCE.getStatus())
.eq(OrderOperateRecord::getOrderId, model.getId()); .eq(OrderOperateRecord::getOrderId, model.getId())
.orderByDesc(OrderOperateRecord::getCreateTime);
vo.setOrderOperateRecords(orderOperateRecordMapper.selectList(queryWrapper));; vo.setOrderOperateRecords(orderOperateRecordMapper.selectList(queryWrapper));;
//全包工单报价为0半包正常显示 actualAmount; // 实际金额 clientType; // 桩点维修类型 0-全包 1-半包
Client clientType = clientMapper.findClientById(vo.getClientId());
if(clientType != null){
if(clientType.getClientType() == ClientStatusEnum.PLIE_POINT_ALL_WRAPPED.getStatus()){
vo.setTotalAmount(BigDecimal.valueOf(0));
vo.setActualAmount(BigDecimal.valueOf(0));
}
}
//配件领用状态 //配件领用状态
SparePartStockAudit receiverStatus = sparePartStockAuditMapper.selectOne(new LambdaQueryWrapper<SparePartStockAudit>() SparePartStockAudit receiverStatus = sparePartStockAuditMapper.selectOne(new LambdaQueryWrapper<SparePartStockAudit>()
.eq(SparePartStockAudit::getOrderId, model.getId()) .eq(SparePartStockAudit::getOrderId, model.getId())

View File

@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.query.MPJQueryWrapper; import com.hcy.admin.AdminThreadLocal;
import com.hcy.admin.service.order.IParentRepairOrderService; import com.hcy.admin.service.order.IParentRepairOrderService;
import com.hcy.admin.validate.common.PageParam; import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.order.ParentRepairOrderParam; import com.hcy.admin.validate.order.ParentRepairOrderParam;
@ -37,15 +37,9 @@ import com.hcy.common.mapper.setting.DictDataMapper;
import com.hcy.common.mapper.sparePart.SparePartMapper; import com.hcy.common.mapper.sparePart.SparePartMapper;
import com.hcy.common.mapper.system.SystemAuthAdminMapper; import com.hcy.common.mapper.system.SystemAuthAdminMapper;
import com.hcy.common.mapper.user.UserMapper; import com.hcy.common.mapper.user.UserMapper;
import com.hcy.common.utils.ArrayUtil;
import com.hcy.common.utils.StringUtil; import com.hcy.common.utils.StringUtil;
import com.hcy.common.utils.TimeUtil; import com.hcy.common.utils.TimeUtil;
import com.hcy.common.utils.UrlUtil;
import com.hcy.common.config.GlobalConfig;
import com.hcy.common.utils.excel.EasyExcelUtil;
import com.hcy.common.utils.excel.LocalImageModifyStrategy; import com.hcy.common.utils.excel.LocalImageModifyStrategy;
import org.apache.poi.ss.formula.functions.T;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -54,10 +48,10 @@ import org.springframework.util.Assert;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.ServletOutputStream; import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream; import java.io.InputStream;
import java.math.BigDecimal;
import java.net.URL; import java.net.URL;
import java.text.DecimalFormat;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -418,12 +412,15 @@ public class ParentRepairOrderServiceImpl implements IParentRepairOrderService {
//报废单 //报废单
List<ScrapForm> scrapFormList = new ArrayList<>(); List<ScrapForm> scrapFormList = new ArrayList<>();
int index3 = 1; int index3 = 1;
//报废 //难修改派单 退仓
List<BeyondRepairOrder> beyondRepairOrderList = new ArrayList<>(); List<BeyondRepairOrder> beyondRepairOrderList = new ArrayList<>();
int index4 = 1; int index4 = 1;
//领机单 //领机单
List<MachineClaimNote> machineClaimNoteList = new ArrayList<>(); List<MachineClaimNote> machineClaimNoteList = new ArrayList<>();
int index5 = 1; int index5 = 1;
//维修工序单
List<ClientCollarExcel> clientCollarExcelList = new ArrayList<>();
int index6 = 1;
for (ParentRepairOrder parentRepairOrder : parentRepairOrders) { for (ParentRepairOrder parentRepairOrder : parentRepairOrders) {
List<RepairOrder> repairOrderList = repairOrderMapper.findRepairOrderByParentId(parentRepairOrder.getId()); List<RepairOrder> repairOrderList = repairOrderMapper.findRepairOrderByParentId(parentRepairOrder.getId());
@ -433,10 +430,15 @@ public class ParentRepairOrderServiceImpl implements IParentRepairOrderService {
// if(contentAdmin != null){ // if(contentAdmin != null){
// offerDetail.setCreator(contentAdmin.getUsername()); // offerDetail.setCreator(contentAdmin.getUsername());
// } // }
//设置客户信息 //设置客户信息
Client client = clientMapper.findClientById(parentRepairOrder.getClientId()); Client client = clientMapper.findClientById(parentRepairOrder.getClientId());
//客户配件采购因子
BigDecimal purchaseDivisor = null;
if(client != null){ if(client != null){
offerDetail.setClientName(client.getClientName()); offerDetail.setClientName(client.getClientName());
purchaseDivisor = client.getPurchaseDivisor(); // 配件采购价格因子
} }
//获取工单编号 //获取工单编号
offerDetail.setOrderNo(parentRepairOrder.getOrderNo()); offerDetail.setOrderNo(parentRepairOrder.getOrderNo());
@ -514,11 +516,17 @@ public class ParentRepairOrderServiceImpl implements IParentRepairOrderService {
//单位数据获取配件表数据 //单位数据获取配件表数据
SparePart sparePart = sparePartMapper.selectOne(new LambdaQueryWrapper<SparePart>() SparePart sparePart = sparePartMapper.selectOne(new LambdaQueryWrapper<SparePart>()
.eq(SparePart::getId, orderSparePartDto.getSparePartsId())); .eq(SparePart::getId, orderSparePartDto.getSparePartsId()));
//配件单价 = 客户采购价格因子 * 配件单价
DecimalFormat df1 = new DecimalFormat("0.00");
BigDecimal unitPrice = null;
if(sparePart != null){ if(sparePart != null){
getMaterialsOrder.setUnit(sparePart.getUnit()); getMaterialsOrder.setUnit(sparePart.getUnit());
if(purchaseDivisor != null && sparePart.getUnitPrice() != null){
unitPrice = sparePart.getUnitPrice().multiply(purchaseDivisor);
}
getMaterialsOrder.setUnitPrice(df1.format(unitPrice));
} }
index1++; index1++;
getMaterialsOrderList.add(getMaterialsOrder); getMaterialsOrderList.add(getMaterialsOrder);
offerDetail.setTotalQty(offerDetail.getTotalQty() + orderSparePartDto.getCount()); offerDetail.setTotalQty(offerDetail.getTotalQty() + orderSparePartDto.getCount());
@ -578,7 +586,9 @@ public class ParentRepairOrderServiceImpl implements IParentRepairOrderService {
//返回维修前照片 //返回维修前照片
RepairOrderStepData preMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>() RepairOrderStepData preMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, item.getId()) .eq(RepairOrderStepData::getRepairOrderId, item.getId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.PRE_MAINTENANCE_IMG.getStatus())); .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.PRE_MAINTENANCE_IMG.getStatus())
.orderByDesc(RepairOrderStepData::getCreateTime)
.last("limit 1"));
if(preMaintenanceImg != null){ if(preMaintenanceImg != null){
try{ try{
List<URL> imgList1 = new ArrayList<>(); List<URL> imgList1 = new ArrayList<>();
@ -597,7 +607,9 @@ public class ParentRepairOrderServiceImpl implements IParentRepairOrderService {
//返回维修中照片 //返回维修中照片
RepairOrderStepData inMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>() RepairOrderStepData inMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, item.getId()) .eq(RepairOrderStepData::getRepairOrderId, item.getId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.IN_MAINTENANCE_IMG.getStatus())); .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.IN_MAINTENANCE_IMG.getStatus())
.orderByDesc(RepairOrderStepData::getCreateTime)
.last("limit 1"));
if(inMaintenanceImg != null){ if(inMaintenanceImg != null){
try{ try{
List<URL> imgList1 = new ArrayList<>(); List<URL> imgList1 = new ArrayList<>();
@ -615,7 +627,9 @@ public class ParentRepairOrderServiceImpl implements IParentRepairOrderService {
//返回维修后照片 //返回维修后照片
RepairOrderStepData afterRepairImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>() RepairOrderStepData afterRepairImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, item.getId()) .eq(RepairOrderStepData::getRepairOrderId, item.getId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.AFTER_REPAIR_IMG.getStatus())); .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.AFTER_REPAIR_IMG.getStatus())
.orderByDesc(RepairOrderStepData::getCreateTime)
.last("limit 1"));
if(afterRepairImg != null){ if(afterRepairImg != null){
try{ try{
List<URL> imgList1 = new ArrayList<>(); List<URL> imgList1 = new ArrayList<>();
@ -634,21 +648,43 @@ public class ParentRepairOrderServiceImpl implements IParentRepairOrderService {
/* /*
replacementDetail replacementDetail
* * * * * * * * *
PFCC1 * CST9830-001 * * 30A500V * 1 PFCC1 * CST9830-001 * * 30A500V * 1
1 1
*/ */
List<OrderSparePartUse> orderSparePartUses = orderSparePartUseMapper.selectList(new LambdaQueryWrapper<OrderSparePartUse>()
.eq(OrderSparePartUse::getRepairOrderId, item.getId())); // List<OrderSparePartUse> orderSparePartUses = orderSparePartUseMapper.selectList(new LambdaQueryWrapper<OrderSparePartUse>()
// .eq(OrderSparePartUse::getRepairOrderId, item.getId())
// .eq(repairOrderAudit != null , OrderSparePartUse::getRepairOrderAuditId, repairOrderAudit.getId())
// );
List<OrderSparePartUse> orderSparePartUses = new ArrayList<>();
if(repairOrderAudit != null){
orderSparePartUses = orderSparePartUseMapper.selectList(new LambdaQueryWrapper<OrderSparePartUse>()
.eq(OrderSparePartUse::getRepairOrderId, item.getId())
.eq(repairOrderAudit != null , OrderSparePartUse::getRepairOrderAuditId, repairOrderAudit.getId())
);
}
if(orderSparePartUses != null){ if(orderSparePartUses != null){
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
for (OrderSparePartUse orderSparePartUs : orderSparePartUses) { for (OrderSparePartUse orderSparePartUs : orderSparePartUses) {
if (sb.length() > 0) { if (sb.length() > 0) {
sb.append("\n"); sb.append("\n");
} }
//获取当前配件单价
SparePart sparePart = sparePartMapper.selectOne(new LambdaQueryWrapper<SparePart>()
.eq(SparePart::getId, orderSparePartUs.getSparePartsId()));
//配件单价 = 客户采购价格因子 * 配件单价
DecimalFormat df1 = new DecimalFormat("0.00");
BigDecimal unitPrice = null;
if(purchaseDivisor != null && sparePart.getUnitPrice() != null){
unitPrice = sparePart.getUnitPrice().multiply(purchaseDivisor);
}
sb.append(orderSparePartUs.getRepairMotherboard()).append("").append(orderSparePartUs.getMaterialPositionNumber()).append(" * ") sb.append(orderSparePartUs.getRepairMotherboard()).append("").append(orderSparePartUs.getMaterialPositionNumber()).append(" * ")
.append(orderSparePartUs.getSparePartsCode()).append(" * ").append(orderSparePartUs.getSparePartsName()).append(" * ") .append(orderSparePartUs.getSparePartsCode()).append(" * ").append(orderSparePartUs.getSparePartsName()).append(" * ")
.append(orderSparePartUs.getSpecificationsModel()).append(" * ").append(orderSparePartUs.getUseNumber()); .append(orderSparePartUs.getSpecificationsModel()).append(" * ").append(orderSparePartUs.getUseNumber()).append(" * ")
.append(df1.format(unitPrice));
} }
// 将数据转换为指定格式的字符串 // 将数据转换为指定格式的字符串
String detail = sb.toString(); String detail = sb.toString();
@ -719,7 +755,21 @@ public class ParentRepairOrderServiceImpl implements IParentRepairOrderService {
if(operationsSuggest != null){ if(operationsSuggest != null){
scrapForm.setOperationsSuggest(operationsSuggest.getName()); scrapForm.setOperationsSuggest(operationsSuggest.getName());
} }
scrapForm.setCreator(offerDetail.getCreator()); //审核人
SystemAuthAdmin creator = systemAuthAdminMapper.selectOne(new LambdaQueryWrapper<SystemAuthAdmin>()
.eq(SystemAuthAdmin::getId, repairOrderAudit.getAuditorId())
.eq(SystemAuthAdmin::getIsDelete, GlobalConstant.NOT_DELETE));
if(creator != null){
scrapForm.setCreator(creator.getUsername());
}
//确认人
SystemAuthAdmin qualityTestingName = systemAuthAdminMapper.selectOne(new LambdaQueryWrapper<SystemAuthAdmin>()
.eq(SystemAuthAdmin::getId, repairOrderAudit.getQualityTestingId()) // 质检人id
.eq(SystemAuthAdmin::getIsDelete, GlobalConstant.NOT_DELETE));
if(qualityTestingName != null){
scrapForm.setQualityTestingName(qualityTestingName.getUsername());
}
scrapForm.setDeliveryTime(TimeUtil.dateToString(parentRepairOrder.getCreateTime(), TimeConstant.DATE_FORMAT)); scrapForm.setDeliveryTime(TimeUtil.dateToString(parentRepairOrder.getCreateTime(), TimeConstant.DATE_FORMAT));
scrapFormList.add(scrapForm); scrapFormList.add(scrapForm);
index3++; index3++;
@ -733,75 +783,68 @@ public class ParentRepairOrderServiceImpl implements IParentRepairOrderService {
if(repairOrderAuditsList.isEmpty()){ if(repairOrderAuditsList.isEmpty()){
continue; continue;
} }
for (RepairOrderAudit RepairOrderAudit : repairOrderAuditsList) { BeyondRepairOrder beyondRepairOrder = new BeyondRepairOrder();
BeyondRepairOrder beyondRepairOrder = new BeyondRepairOrder(); beyondRepairOrder.setIndex(index4); //序号
beyondRepairOrder.setIndex(index4); //序号 beyondRepairOrder.setOrderNo(parentRepairOrder.getOrderNo()); //单据编号
beyondRepairOrder.setOrderNo(parentRepairOrder.getOrderNo()); //单据编号 beyondRepairOrder.setSpecificationsModel(item.getModuleNumber()); //型号/规格
beyondRepairOrder.setSpecificationsModel(item.getModuleNumber()); //型号/规格 beyondRepairOrder.setModelCode(item.getModuleCode()); //模块代码
beyondRepairOrder.setModelCode(item.getModuleCode()); //模块代码 beyondRepairOrder.setPower(distMap.get(item.getModulePower().toString())); //功率
beyondRepairOrder.setPower(distMap.get(item.getModulePower().toString())); //功率 if(item.getRepairOrNot() != null){
beyondRepairOrder.setIsRepair(item.getRepairOrNot() == 0 ? "是" : "否"); //是否返修
if(item.getRepairOrNot() != null){
beyondRepairOrder.setIsRepair(item.getRepairOrNot() == 0 ? "是" : "否"); //是否返修
}
String maintenanceManName = null;
if(item.getPreviousMaintenanceStaffId() != null){
SystemAuthAdmin maintenanceMan = systemAuthAdminMapper.findSystemAuthAdminById(Math.toIntExact(item.getPreviousMaintenanceStaffId()));
if(maintenanceMan != null){
maintenanceManName = "原:" + maintenanceMan.getUsername(); //原维修人员
}
}
if(item.getReceiverId() != null){
SystemAuthAdmin maintenanceMan = systemAuthAdminMapper.findSystemAuthAdminById(Math.toIntExact(item.getReceiverId()));
if(maintenanceMan != null){
if(maintenanceManName != null){
maintenanceManName = maintenanceManName + "\n现" + maintenanceMan.getUsername();
}else{
maintenanceManName = "现:" + maintenanceMan.getUsername(); //维修人员
}
}
}
beyondRepairOrder.setMaintenanceMan(maintenanceManName);
//退仓原因
beyondRepairOrder.setReasonForWithdrawal(RepairOrderAudit.getReasonForWithdrawal()); // 退仓原因
/*
replacementDetail
* * * *
PFCC1 * CST9830-001 * * 30A500V * 1
1
*/
List<OrderSparePartUse> orderSparePartUses = orderSparePartUseMapper.selectList(new LambdaQueryWrapper<OrderSparePartUse>()
.eq(OrderSparePartUse::getRepairOrderId, item.getId()));
if(orderSparePartUses != null){
StringBuilder sb = new StringBuilder();
for (OrderSparePartUse orderSparePartUs : orderSparePartUses) {
if (sb.length() > 0) {
sb.append("\n");
}
sb.append(orderSparePartUs.getRepairMotherboard()).append("").append(orderSparePartUs.getMaterialPositionNumber()).append(" * ")
.append(orderSparePartUs.getSparePartsCode()).append(" * ").append(orderSparePartUs.getSparePartsName()).append(" * ")
.append(orderSparePartUs.getSpecificationsModel()).append(" * ").append(orderSparePartUs.getUseNumber());
}
// 将数据转换为指定格式的字符串
String detail = sb.toString();
beyondRepairOrder.setReplacementDetail(detail);
}
beyondRepairOrder.setCreator(offerDetail.getCreator()); //制单人
beyondRepairOrder.setDeliveryTime(TimeUtil.dateToString(parentRepairOrder.getCreateTime(), TimeConstant.DATE_FORMAT)); //制单日期
beyondRepairOrderList.add(beyondRepairOrder);
index4++;
} }
SystemAuthAdmin systemAuthAdmin = new SystemAuthAdmin();
if(item.getReceiverId() != null){
systemAuthAdmin = systemAuthAdminMapper.findSystemAuthAdminById(Math.toIntExact(item.getReceiverId()));
}
String yuan = "";
String reasonForWithdrawal = "";
for (RepairOrderAudit repairOrderAudit : repairOrderAuditsList) {
//获取维修人员
User userById = userMapper.findUserById(repairOrderAudit.getApplicantId());
if(userById != null){
yuan = yuan + userById.getUsername() + ",";
}
//难修原因
reasonForWithdrawal = reasonForWithdrawal + "(" + userById.getUsername() + ")\n" + "维修了什么?\n1、" + repairOrderAudit.getWhatWasRepairedOne() + "\n2、" +
repairOrderAudit.getWhatWasRepairedTwo() + "\n3、" + repairOrderAudit.getWhatWasRepairedThree() + "\n现在遇到了什么问题\n1、"
+ repairOrderAudit.getQuestionOne() + "\n2、" + repairOrderAudit.getQuestionTwo() + "\n3、" + repairOrderAudit.getQuestionThree() + "\n";
}
//删除维修人员最后一个逗号
if(yuan != null && yuan != ""){
yuan= yuan.substring(0,yuan.length() -1);
}
//维修人员
if(StringUtil.isEmpty(yuan)){
beyondRepairOrder.setMaintenanceMan("现:"+systemAuthAdmin.getUsername());
}else{
if(systemAuthAdmin.getUsername() != null){
if(yuan.equals(systemAuthAdmin.getUsername())){
beyondRepairOrder.setMaintenanceMan("现:"+systemAuthAdmin.getUsername());
}else {
beyondRepairOrder.setMaintenanceMan("原:" + yuan + "\n现"+systemAuthAdmin.getUsername());
}
}else{
beyondRepairOrder.setMaintenanceMan("原:" + yuan);
}
}
beyondRepairOrder.setReasonForWithdrawal(reasonForWithdrawal); // 退仓原因
beyondRepairOrder.setCreator(offerDetail.getCreator()); //制单人
beyondRepairOrder.setDeliveryTime(TimeUtil.dateToString(parentRepairOrder.getCreateTime(), TimeConstant.DATE_FORMAT)); //制单日期
beyondRepairOrderList.add(beyondRepairOrder);
index4++;
} }
if(ids.equals("5")){ if(ids.equals("5")){
//5-领机单 //5-领机单
MachineClaimNote machineClaimNote = new MachineClaimNote(); MachineClaimNote machineClaimNote = new MachineClaimNote();
machineClaimNote.setOrderNo(parentRepairOrder.getOrderNo()); //单据编号
machineClaimNote.setIndex(index5); //序号 machineClaimNote.setIndex(index5); //序号
machineClaimNote.setSpecificationsModel(item.getModuleNumber()); //型号/规格 machineClaimNote.setSpecificationsModel(item.getModuleNumber()); //型号/规格
machineClaimNote.setModelCode(item.getModuleCode()); //模块代码 machineClaimNote.setModelCode(item.getModuleCode()); //模块代码
@ -830,11 +873,75 @@ public class ParentRepairOrderServiceImpl implements IParentRepairOrderService {
machineClaimNoteList.add(machineClaimNote); machineClaimNoteList.add(machineClaimNote);
index5++; index5++;
} }
if(ids.equals("6")){
//6-维修工序单
ClientCollarExcel clientCollarExcel = new ClientCollarExcel();
clientCollarExcel.setOrderNo(parentRepairOrder.getOrderNo()); //工单编号
clientCollarExcel.setIndex(index6); //序号
clientCollarExcel.setSpecificationsModel(item.getModuleNumber()); //型号/规格
clientCollarExcel.setModelCode(item.getModuleCode()); //模块代码
clientCollarExcel.setPower(distMap.get(item.getModulePower().toString())); //功率
if(item.getScrapOrNot() != null){ //排查结果
clientCollarExcel.setScrapOrNot(item.getScrapOrNot() == 0 ? "报废" : "维修");
}
//设置客户信息
Client clientName = clientMapper.findClientById(item.getClientId());
if(clientName != null){
clientCollarExcel.setClientName(client.getClientName());
}
// 维修人员
if(item.getReceiverId() != null){
SystemAuthAdmin maintenanceMan = systemAuthAdminMapper.findSystemAuthAdminById(Math.toIntExact(item.getReceiverId()));
if(maintenanceMan != null){
clientCollarExcel.setMaintenanceMan(maintenanceMan.getUsername());
}
}
//拆机图片 setDismantle
clientCollarExcel.setDismantle(imgExcel(item.getId(), RepairOrderStopEnum.DISMANTLE.getStatus()));
//除尘 dedusting
clientCollarExcel.setDedusting(imgExcel(item.getId(), RepairOrderStopEnum.DEDUSTING.getStatus()));
//功能测试 functionalTestImg
clientCollarExcel.setFunctionalTestImg(imgExcel(item.getId(), RepairOrderStopEnum.FUNCTIONAL_TEST.getStatus()));
//DC&PFC组装 assembleImg
clientCollarExcel.setAssembleImg(imgExcel(item.getId(), RepairOrderStopEnum.DC_AND_PFC_ASSEMBLE.getStatus()));
//补强三防漆和点胶 reinforcingThreeAntiPaintAndDispensing
clientCollarExcel.setReinforcingThreeAntiPaintAndDispensing(imgExcel(item.getId(), RepairOrderStopEnum.REINFORCING_THREE_ANTI_PAINT_AND_DISPENSING.getStatus()));
//模块装配 moduleAssembly
clientCollarExcel.setModuleAssembly(imgExcel(item.getId(), RepairOrderStopEnum.MODULE_ASSEMBLY.getStatus()));
//老化测试 agingTest
clientCollarExcel.setAgingTest(imgExcel(item.getId(), RepairOrderStopEnum.AGING_TEST.getStatus()));
//报废图片 scrapPicture
RepairOrderAudit scrapRepairOrderAudit = repairOrderAuditMapper.findRepairOrderAuditByRepairOrderIdAndReviewRequest(item.getId(),3L);
if(scrapRepairOrderAudit != null){
try{
List<URL> imgList1 = new ArrayList<>();
String[] arr = scrapRepairOrderAudit.getScrapImg().split(",");// 报废图片
for (String s : arr) {
imgList1.add(new URL(s));
}
clientCollarExcel.setScrapPicture(imgList1);
}catch (Exception e) {
System.out.println("导出异常");
}
}
//返回维修前照片
clientCollarExcel.setRepairFront(imgExcel(item.getId(), RepairOrderStopEnum.PRE_MAINTENANCE_IMG.getStatus()));
//返回维修中照片
clientCollarExcel.setRepairIng(imgExcel(item.getId(), RepairOrderStopEnum.IN_MAINTENANCE_IMG.getStatus()));
//返回维修后照片
clientCollarExcel.setRepairBack(imgExcel(item.getId(), RepairOrderStopEnum.AFTER_REPAIR_IMG.getStatus()));
clientCollarExcelList.add(clientCollarExcel);
index6++;
}
} }
} }
} }
for (int i = 0; i < 7; i++) { for (int i = 0; i < 8; i++) {
WriteSheet sheet = EasyExcel.writerSheet(i).build(); WriteSheet sheet = EasyExcel.writerSheet(i).build();
switch (i){ switch (i){
case 0: case 0:
@ -864,6 +971,10 @@ public class ParentRepairOrderServiceImpl implements IParentRepairOrderService {
writer.fill(offerDetail, sheet); writer.fill(offerDetail, sheet);
writer.fill(machineClaimNoteList, fillConfig, sheet); writer.fill(machineClaimNoteList, fillConfig, sheet);
break; break;
case 6:
writer.fill(offerDetail, sheet);
writer.fill(clientCollarExcelList, fillConfig, sheet);
break;
} }
} }
@ -877,4 +988,227 @@ public class ParentRepairOrderServiceImpl implements IParentRepairOrderService {
} }
/**
*
* @param repairOrderId
* @param repairStep
* @return
*/
public List<URL> imgExcel(Long repairOrderId, Integer repairStep){
RepairOrderStepData dismantle = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, repairOrderId)
.eq(RepairOrderStepData::getRepairStep, repairStep)
.eq(RepairOrderStepData::getIsDelete, GlobalConstant.NOT_DELETE)
.orderByDesc(RepairOrderStepData::getCreateTime)
.last("limit 1"));
if(dismantle != null){
try{
List<URL> imgList = new ArrayList<>();
String[] arr = dismantle.getImg().split(",");
for (String s : arr) {
imgList.add(new URL(s));
}
return imgList;
}catch (Exception e) {
System.out.println("导出异常");
}
}
return null;
}
/**
*
*
* @param response
*/
@Override
public void clientCollarExcel(HttpServletResponse response) {
try {
LambdaQueryWrapper<ParentRepairOrder> lambdaQueryWrapper = new LambdaQueryWrapper<ParentRepairOrder>()
.eq(ParentRepairOrder::getIsDelete, GlobalConstant.NOT_DELETE);
//查询待导出的维修单
List<ParentRepairOrder> parentRepairOrders = parentRepairOrderMapper.selectList(lambdaQueryWrapper);
// 文件模板输入流,将 excel 模板放到 resources 目录下
InputStream templateFile = new ClassPathResource("templates/excel/ClientCollar.xlsx").getInputStream();
//功率字典
Map<String, String> distMap = dictDataMapper.selectList(new LambdaQueryWrapper<DictData>()
.eq(DictData::getIsDelete, GlobalConstant.NOT_DELETE)
.eq(DictData::getTypeId, 46))
.stream()
.collect(Collectors.toMap(DictData::getValue, DictData::getName));
ServletOutputStream out = response.getOutputStream();
FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build();
//设置多sheet输出流
ExcelWriter writer = EasyExcel
.write(out)
.withTemplate(templateFile)
// 使用图片处理策略
.registerWriteHandler(
// 设置每张图片的宽度为 100px转换因子为 32
new LocalImageModifyStrategy(100, 32))
.build();
//公共数据
OfferDetailEntity offerDetail = new OfferDetailEntity();
//客户领机单
List<ClientCollerExcel> clientCollerExcelList = new ArrayList<>();
int index = 1;
for (ParentRepairOrder parentRepairOrder : parentRepairOrders) {
List<RepairOrder> repairOrderList = repairOrderMapper.findRepairOrderByParentId(parentRepairOrder.getId());
//获取制单时间
offerDetail.setDeliveryTime(TimeUtil.dateToString(new Date(), TimeConstant.DATE_FORMAT));
//获取制单人
SystemAuthAdmin contentAdmin = systemAuthAdminMapper.findSystemAuthAdminById(AdminThreadLocal.getAdminId());
if(contentAdmin != null){
offerDetail.setCreator(contentAdmin.getUsername());
}
for (RepairOrder item : repairOrderList) {
//5-领机单
ClientCollerExcel machineClaimNote = new ClientCollerExcel();
//客户名称
Client client = clientMapper.findClientById(parentRepairOrder.getClientId());
if(client != null){
machineClaimNote.setClientName(client.getClientName());
}
machineClaimNote.setOrderNo(parentRepairOrder.getOrderNo()); //单据编号
machineClaimNote.setIndex(index); //序号
machineClaimNote.setSpecificationsModel(item.getModuleNumber()); //型号/规格
machineClaimNote.setModelCode(item.getModuleCode()); //模块代码
machineClaimNote.setPower(distMap.get(item.getModulePower().toString())); //功率
if(item.getRepairOrNot() != null){
machineClaimNote.setIsRepair(item.getRepairOrNot() == 0 ? "是" : "否"); //是否返修
}
if(item.getReceiverId() != null){
SystemAuthAdmin maintenanceMan = systemAuthAdminMapper.findSystemAuthAdminById(Math.toIntExact(item.getReceiverId()));
if(maintenanceMan != null){
machineClaimNote.setMaintenanceMan(maintenanceMan.getUsername()); //维修人员
}
}else{
machineClaimNote.setMaintenanceMan("未派单"); //没有维修人员就是还没有派单
}
clientCollerExcelList.add(machineClaimNote);
index++;
}
}
WriteSheet sheet = EasyExcel.writerSheet(0).build();
offerDetail.setTotalQty(index == 1 ? 0 : index - 1);
writer.fill(offerDetail, sheet);
writer.fill(clientCollerExcelList, fillConfig, sheet);
writer.finish();
out.close();
templateFile.close();
}catch (Exception e){
e.printStackTrace();
throw new OperateException("导出报表出现错误:"+e.getLocalizedMessage());
}
}
/**
* WIP
*
* @param response
*/
@Override
public void warehouseWarrantWIPExcel(HttpServletResponse response) {
try {
LambdaQueryWrapper<ParentRepairOrder> lambdaQueryWrapper = new LambdaQueryWrapper<ParentRepairOrder>()
.eq(ParentRepairOrder::getIsDelete, GlobalConstant.NOT_DELETE);
//查询待导出的维修单
List<ParentRepairOrder> parentRepairOrders = parentRepairOrderMapper.selectList(lambdaQueryWrapper);
// 文件模板输入流,将 excel 模板放到 resources 目录下
InputStream templateFile = new ClassPathResource("templates/excel/WarehouseWarrantWIP.xlsx").getInputStream();
//功率字典
Map<String, String> distMap = dictDataMapper.selectList(new LambdaQueryWrapper<DictData>()
.eq(DictData::getIsDelete, GlobalConstant.NOT_DELETE)
.eq(DictData::getTypeId, 46))
.stream()
.collect(Collectors.toMap(DictData::getValue, DictData::getName));
ServletOutputStream out = response.getOutputStream();
FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build();
//设置多sheet输出流
ExcelWriter writer = EasyExcel
.write(out)
.withTemplate(templateFile)
// 使用图片处理策略
.registerWriteHandler(
// 设置每张图片的宽度为 100px转换因子为 32
new LocalImageModifyStrategy(100, 32))
.build();
//公共数据
OfferDetailEntity offerDetail = new OfferDetailEntity();
//客户入库WIP单
List<WarehouseWarrantWIPExcel> warehouseWarrantWIPExcelList = new ArrayList<>();
int index = 1;
for (ParentRepairOrder parentRepairOrder : parentRepairOrders) {
List<RepairOrder> repairOrderList = repairOrderMapper.findRepairOrderByParentId(parentRepairOrder.getId());
for (RepairOrder item : repairOrderList) {
//入库WIP表
WarehouseWarrantWIPExcel warehouseWarrantWIPExcel = new WarehouseWarrantWIPExcel();
//客户名称
Client client = clientMapper.findClientById(parentRepairOrder.getClientId());
if(client != null){
warehouseWarrantWIPExcel.setClientName(client.getClientName());
}
warehouseWarrantWIPExcel.setOrderNo(parentRepairOrder.getOrderNo()); //单据编号
warehouseWarrantWIPExcel.setIndex(index); //序号
warehouseWarrantWIPExcel.setWarehousingDate(TimeUtil.dateToString(item.getCreateTime(), TimeConstant.DATE_FORMAT)); // 入库日期
warehouseWarrantWIPExcel.setSpecificationsModel(item.getModuleNumber()); //型号/规格
warehouseWarrantWIPExcel.setModelCode(item.getModuleCode()); //模块代码
warehouseWarrantWIPExcel.setPower(distMap.get(item.getModulePower().toString())); //功率
if(item.getRepairOrNot() != null){
warehouseWarrantWIPExcel.setIsRepair(item.getRepairOrNot() == 0 ? "是" : "否"); //是否返修
}
// if(item.getReceiverId() != null){
// SystemAuthAdmin maintenanceMan = systemAuthAdminMapper.findSystemAuthAdminById(Math.toIntExact(item.getReceiverId()));
// if(maintenanceMan != null){
// warehouseWarrantWIPExcel.setMaintenanceMan(maintenanceMan.getUsername()); //维修人员
// }
// }else{
// warehouseWarrantWIPExcel.setMaintenanceMan("未派单"); //没有维修人员就是还没有派单
// }
warehouseWarrantWIPExcelList.add(warehouseWarrantWIPExcel);
index++;
}
}
WriteSheet sheet = EasyExcel.writerSheet(0).build();
offerDetail.setTotalQty(index == 1 ? 0 : index - 1);
writer.fill(offerDetail, sheet);
writer.fill(warehouseWarrantWIPExcelList, fillConfig, sheet);
writer.finish();
out.close();
templateFile.close();
}catch (Exception e){
e.printStackTrace();
throw new OperateException("导出报表出现错误:"+e.getLocalizedMessage());
}
}
} }

View File

@ -11,6 +11,7 @@ import com.hcy.admin.service.order.IRepairOrderAuditService;
import com.hcy.admin.validate.common.PageParam; import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.order.RepairOrderAuditParam; import com.hcy.admin.validate.order.RepairOrderAuditParam;
import com.hcy.admin.vo.order.*; import com.hcy.admin.vo.order.*;
import com.hcy.common.constant.GlobalConstant;
import com.hcy.common.constant.TimeConstant; import com.hcy.common.constant.TimeConstant;
import com.hcy.common.core.PageResult; import com.hcy.common.core.PageResult;
import com.hcy.common.dto.order.OrderSparePart; import com.hcy.common.dto.order.OrderSparePart;
@ -34,11 +35,14 @@ import com.hcy.common.mapper.user.UserMapper;
import com.hcy.common.mapper.warehouse.WarehouseMapper; import com.hcy.common.mapper.warehouse.WarehouseMapper;
import com.hcy.common.plugin.notice.engine.SmsNotice; import com.hcy.common.plugin.notice.engine.SmsNotice;
import com.hcy.common.utils.TimeUtil; import com.hcy.common.utils.TimeUtil;
import org.apache.xmlbeans.impl.common.GlobalLock;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.Assert; import org.springframework.util.Assert;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.*; import java.util.*;
/** /**
@ -159,10 +163,14 @@ public class RepairOrderAuditServiceImpl implements IRepairOrderAuditService {
.eq(ParentRepairOrder::getId, repairOrder.getParentRepairOrderId())); .eq(ParentRepairOrder::getId, repairOrder.getParentRepairOrderId()));
vo.setOrderNo(parentRepairOrder.getOrderNo()); vo.setOrderNo(parentRepairOrder.getOrderNo());
//客户配件采购因子
BigDecimal purchaseDivisor = null;
//客户名称 //客户名称
Client client = clientMapper.selectOne(new LambdaQueryWrapper<Client>() Client client = clientMapper.selectOne(new LambdaQueryWrapper<Client>()
.eq(Client::getId, repairOrder.getClientId())); .eq(Client::getId, repairOrder.getClientId()));
vo.setClientName(client.getClientName()); vo.setClientName(client.getClientName());
purchaseDivisor = client.getPurchaseDivisor(); // 配件采购价格因子
//模块型号、模块代码 //模块型号、模块代码
vo.setModuleCode(repairOrder.getModuleCode()); vo.setModuleCode(repairOrder.getModuleCode());
@ -173,16 +181,28 @@ public class RepairOrderAuditServiceImpl implements IRepairOrderAuditService {
.eq(User::getId, model.getApplicantId())); .eq(User::getId, model.getApplicantId()));
vo.setApplicantName(user.getUsername()); vo.setApplicantName(user.getUsername());
//配件领料备注 //故障排查 - 配件领料备注
RepairOrderStepData repairOrderStepData = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>() RepairOrderStepData repairOrderStepData = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, model.getRepairOrderId()) .eq(RepairOrderStepData::getRepairOrderId, model.getRepairOrderId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.TROUBLESHOOTING.getStatus()) .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.TROUBLESHOOTING.getStatus())
.or()
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.RECOLLAR_FITTING.getStatus())
.orderByDesc(RepairOrderStepData::getCreateTime) .orderByDesc(RepairOrderStepData::getCreateTime)
.last("limit 1"));//故障排查 .last("limit 1"));//故障排查
if(repairOrderStepData != null){ if(repairOrderStepData != null){
vo.setReceiveRemark(repairOrderStepData.getRemark()); vo.setReceiveRemark(repairOrderStepData.getRemark());
} }
//重领配件备注 recollarFittingRemark
RepairOrderStepData recollarFittingRemark = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, model.getRepairOrderId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.RECOLLAR_FITTING.getStatus())
.orderByDesc(RepairOrderStepData::getCreateTime)
.last("limit 1"));//故障排查
if(recollarFittingRemark != null){
vo.setRecollarFittingRemark(recollarFittingRemark.getRemark());
}
//配件领用数据 //配件领用数据
Integer number = 0; //领用数量 Integer number = 0; //领用数量
@ -199,13 +219,26 @@ public class RepairOrderAuditServiceImpl implements IRepairOrderAuditService {
.eq(Warehouse::getId, orderSparePart.getWarehouseId())); .eq(Warehouse::getId, orderSparePart.getWarehouseId()));
orderSparePartListVo.setWarehouseName(warehouse.getWarehouseName()); orderSparePartListVo.setWarehouseName(warehouse.getWarehouseName());
//单位数据获取配件表数据
SparePart sparePart = sparePartMapper.selectOne(new LambdaQueryWrapper<SparePart>()
.eq(SparePart::getId, orderSparePart.getSparePartsId()));
//配件单价 = 客户采购价格因子 * 配件单价
DecimalFormat df1 = new DecimalFormat("0.00");
BigDecimal unitPrice = null;
if(purchaseDivisor != null && sparePart.getUnitPrice() != null){
unitPrice = sparePart.getUnitPrice().multiply(purchaseDivisor);
}
orderSparePartListVo.setUnitPrice(df1.format(unitPrice));
orderSparePartListVoList.add(orderSparePartListVo); orderSparePartListVoList.add(orderSparePartListVo);
number += orderSparePart.getCount(); number += orderSparePart.getCount();
} }
}else{ }else{
orderSparePartList = orderSparePartMapper.selectList(new LambdaQueryWrapper<OrderSparePart>() orderSparePartList = orderSparePartMapper.selectList(new LambdaQueryWrapper<OrderSparePart>()
.eq(OrderSparePart::getRepairOrderId, model.getRepairOrderId())); .eq(OrderSparePart::getRepairOrderId, model.getRepairOrderId())
.eq(OrderSparePart::getIsDelete, GlobalConstant.NOT_DELETE));
for (OrderSparePart orderSparePart : orderSparePartList) { for (OrderSparePart orderSparePart : orderSparePartList) {
OrderSparePartListVo orderSparePartListVo = new OrderSparePartListVo(); OrderSparePartListVo orderSparePartListVo = new OrderSparePartListVo();
BeanUtils.copyProperties(orderSparePart, orderSparePartListVo); BeanUtils.copyProperties(orderSparePart, orderSparePartListVo);
@ -215,6 +248,17 @@ public class RepairOrderAuditServiceImpl implements IRepairOrderAuditService {
.eq(Warehouse::getId, orderSparePart.getWarehouseId())); .eq(Warehouse::getId, orderSparePart.getWarehouseId()));
orderSparePartListVo.setWarehouseName(warehouse.getWarehouseName()); orderSparePartListVo.setWarehouseName(warehouse.getWarehouseName());
//单位数据获取配件表数据
SparePart sparePart = sparePartMapper.selectOne(new LambdaQueryWrapper<SparePart>()
.eq(SparePart::getId, orderSparePart.getSparePartsId()));
//配件单价 = 客户采购价格因子 * 配件单价
DecimalFormat df1 = new DecimalFormat("0.00");
BigDecimal unitPrice = null;
if(purchaseDivisor != null && sparePart.getUnitPrice() != null){
unitPrice = sparePart.getUnitPrice().multiply(purchaseDivisor);
}
orderSparePartListVo.setUnitPrice(df1.format(unitPrice));
orderSparePartListVoList.add(orderSparePartListVo); orderSparePartListVoList.add(orderSparePartListVo);
number += orderSparePart.getCount(); number += orderSparePart.getCount();
@ -281,28 +325,36 @@ public class RepairOrderAuditServiceImpl implements IRepairOrderAuditService {
//返回维修前照片 //返回维修前照片
RepairOrderStepData preMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>() RepairOrderStepData preMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, model.getRepairOrderId()) .eq(RepairOrderStepData::getRepairOrderId, model.getRepairOrderId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.PRE_MAINTENANCE_IMG.getStatus())); .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.PRE_MAINTENANCE_IMG.getStatus())
.orderByDesc(RepairOrderStepData::getCreateTime)
.last("limit 1"));
if(preMaintenanceImg != null){ if(preMaintenanceImg != null){
vo.setPreMaintenanceImg(preMaintenanceImg.getImg()); vo.setPreMaintenanceImg(preMaintenanceImg.getImg());
} }
//返回维修中照片 //返回维修中照片
RepairOrderStepData inMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>() RepairOrderStepData inMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, model.getRepairOrderId()) .eq(RepairOrderStepData::getRepairOrderId, model.getRepairOrderId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.IN_MAINTENANCE_IMG.getStatus())); .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.IN_MAINTENANCE_IMG.getStatus())
.orderByDesc(RepairOrderStepData::getCreateTime)
.last("limit 1"));
if(inMaintenanceImg != null){ if(inMaintenanceImg != null){
vo.setInMaintenanceImg(inMaintenanceImg.getImg()); vo.setInMaintenanceImg(inMaintenanceImg.getImg());
} }
//返回维修后照片 //返回维修后照片
RepairOrderStepData afterRepairImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>() RepairOrderStepData afterRepairImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, model.getRepairOrderId()) .eq(RepairOrderStepData::getRepairOrderId, model.getRepairOrderId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.AFTER_REPAIR_IMG.getStatus())); .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.AFTER_REPAIR_IMG.getStatus())
.orderByDesc(RepairOrderStepData::getCreateTime)
.last("limit 1"));
if(afterRepairImg != null){ if(afterRepairImg != null){
vo.setAfterRepairImg(afterRepairImg.getImg()); vo.setAfterRepairImg(afterRepairImg.getImg());
} }
//返回良品入库照片 //返回良品入库照片
RepairOrderStepData img = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>() RepairOrderStepData img = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, model.getRepairOrderId()) .eq(RepairOrderStepData::getRepairOrderId, model.getRepairOrderId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.GOOD_PRODUCTS_ARE_STORED.getStatus())); .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.GOOD_PRODUCTS_ARE_STORED.getStatus())
.orderByDesc(RepairOrderStepData::getCreateTime)
.last("limit 1"));
if(img != null){ if(img != null){
vo.setImg(img.getImg()); vo.setImg(img.getImg());
vo.setEnterRemark(img.getRemark()); vo.setEnterRemark(img.getRemark());
@ -312,10 +364,23 @@ public class RepairOrderAuditServiceImpl implements IRepairOrderAuditService {
List<OrderSparePartUseVo> orderSparePartUseListVoList = new ArrayList<>(); List<OrderSparePartUseVo> orderSparePartUseListVoList = new ArrayList<>();
List<OrderSparePartUse> sparePartUseParamsList = orderSparePartUseMapper.selectList(new LambdaQueryWrapper<OrderSparePartUse>() List<OrderSparePartUse> sparePartUseParamsList = orderSparePartUseMapper.selectList(new LambdaQueryWrapper<OrderSparePartUse>()
.eq(OrderSparePartUse::getRepairOrderId, model.getRepairOrderId()) .eq(OrderSparePartUse::getRepairOrderId, model.getRepairOrderId())
.eq(OrderSparePartUse::getRepairOrderAuditId, model.getId())
.eq(OrderSparePartUse::getReviewRequest, RepairOrderAuditStatusEnum.GOOD_PRODUCTS_ARE_STORED.getStatus())); .eq(OrderSparePartUse::getReviewRequest, RepairOrderAuditStatusEnum.GOOD_PRODUCTS_ARE_STORED.getStatus()));
for (OrderSparePartUse orderSparePartUse : sparePartUseParamsList) { for (OrderSparePartUse orderSparePartUse : sparePartUseParamsList) {
OrderSparePartUseVo orderSparePartUsetListVo = new OrderSparePartUseVo(); OrderSparePartUseVo orderSparePartUsetListVo = new OrderSparePartUseVo();
BeanUtils.copyProperties(orderSparePartUse, orderSparePartUsetListVo); BeanUtils.copyProperties(orderSparePartUse, orderSparePartUsetListVo);
//单位数据获取配件表数据
SparePart sparePart = sparePartMapper.selectOne(new LambdaQueryWrapper<SparePart>()
.eq(SparePart::getId, orderSparePartUse.getSparePartsId()));
//配件单价 = 客户采购价格因子 * 配件单价
DecimalFormat df1 = new DecimalFormat("0.00");
BigDecimal unitPrice = null;
if(purchaseDivisor != null && sparePart.getUnitPrice() != null){
unitPrice = sparePart.getUnitPrice().multiply(purchaseDivisor);
}
orderSparePartUsetListVo.setUnitPrice(df1.format(unitPrice));
orderSparePartUseListVoList.add(orderSparePartUsetListVo); orderSparePartUseListVoList.add(orderSparePartUsetListVo);
} }
vo.setSparePartUseParams(orderSparePartUseListVoList); //配件使用列表 vo.setSparePartUseParams(orderSparePartUseListVoList); //配件使用列表
@ -324,10 +389,23 @@ public class RepairOrderAuditServiceImpl implements IRepairOrderAuditService {
List<OrderSparePartUseVo> replaceDamagedPartsListVoList = new ArrayList<>(); List<OrderSparePartUseVo> replaceDamagedPartsListVoList = new ArrayList<>();
List<OrderSparePartUse> replaceDamagedParts = orderSparePartUseMapper.selectList(new LambdaQueryWrapper<OrderSparePartUse>() List<OrderSparePartUse> replaceDamagedParts = orderSparePartUseMapper.selectList(new LambdaQueryWrapper<OrderSparePartUse>()
.eq(OrderSparePartUse::getRepairOrderId, model.getRepairOrderId()) .eq(OrderSparePartUse::getRepairOrderId, model.getRepairOrderId())
.eq(OrderSparePartUse::getRepairOrderAuditId, model.getId())
.eq(OrderSparePartUse::getReviewRequest, RepairOrderAuditStatusEnum.CANCELLATION_REQUEST.getStatus())); .eq(OrderSparePartUse::getReviewRequest, RepairOrderAuditStatusEnum.CANCELLATION_REQUEST.getStatus()));
for (OrderSparePartUse orderSparePartUse : replaceDamagedParts) { for (OrderSparePartUse orderSparePartUse : replaceDamagedParts) {
OrderSparePartUseVo orderSparePartUsetListVo = new OrderSparePartUseVo(); OrderSparePartUseVo orderSparePartUsetListVo = new OrderSparePartUseVo();
BeanUtils.copyProperties(orderSparePartUse, orderSparePartUsetListVo); BeanUtils.copyProperties(orderSparePartUse, orderSparePartUsetListVo);
//单位数据获取配件表数据
SparePart sparePart = sparePartMapper.selectOne(new LambdaQueryWrapper<SparePart>()
.eq(SparePart::getId, orderSparePartUse.getSparePartsId()));
//配件单价 = 客户采购价格因子 * 配件单价
DecimalFormat df1 = new DecimalFormat("0.00");
BigDecimal unitPrice = null;
if(purchaseDivisor != null && sparePart.getUnitPrice() != null){
unitPrice = sparePart.getUnitPrice().multiply(purchaseDivisor);
}
orderSparePartUsetListVo.setUnitPrice(df1.format(unitPrice));
replaceDamagedPartsListVoList.add(orderSparePartUsetListVo); replaceDamagedPartsListVoList.add(orderSparePartUsetListVo);
} }
vo.setReplaceDamagedParts(replaceDamagedPartsListVoList); //更换损坏配件清单 vo.setReplaceDamagedParts(replaceDamagedPartsListVoList); //更换损坏配件清单
@ -342,6 +420,23 @@ public class RepairOrderAuditServiceImpl implements IRepairOrderAuditService {
vo.setWithdrawalImg(withdrawalImg.getImg()); vo.setWithdrawalImg(withdrawalImg.getImg());
} }
//退仓原因
String reasonForWithdrawal = null; // 退仓原因
reasonForWithdrawal = "维修了什么?\n1、" + model.getWhatWasRepairedOne() + "\n2、" +
model.getWhatWasRepairedTwo() + "\n3、" + model.getWhatWasRepairedThree() + "\n现在遇到了什么问题\n1、"
+ model.getQuestionOne() + "\n2、" + model.getQuestionTwo() + "\n3、" + model.getQuestionThree();
vo.setReasonForWithdrawal(reasonForWithdrawal);
//取消原因 reasonOfCancellation; // 取消原因
RepairOrderStepData reasonOfCancellation = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, model.getRepairOrderId())
.eq(RepairOrderStepData::getTitle, "配件领料已取消")
.orderByDesc(RepairOrderStepData::getCreateTime)
.last("limit 1"));
if(reasonOfCancellation != null){
vo.setReasonOfCancellation(reasonOfCancellation.getRemark());
}
return vo; return vo;
} }
@ -487,9 +582,19 @@ public class RepairOrderAuditServiceImpl implements IRepairOrderAuditService {
vo.setApplicantName(applicantName.getUsername()); vo.setApplicantName(applicantName.getUsername());
} }
//1、先获取维修模块单
RepairOrder repairOrder1 = repairOrderMapper.selectOne(new LambdaQueryWrapper<RepairOrder>()
.eq(RepairOrder::getId, item.getRepairOrderId())
.eq(RepairOrder::getIsDelete, GlobalConstant.NOT_DELETE));
//客户配件采购因子
BigDecimal purchaseDivisor = null;
//客户名称
Client client = clientMapper.selectOne(new LambdaQueryWrapper<Client>()
.eq(Client::getId, repairOrder1.getClientId()));
purchaseDivisor = client.getPurchaseDivisor(); // 配件采购价格因子
//配件领用数据 //配件领用数据
Integer number = 0; //领用数量 Integer number = 0; //领用数量
List<OrderSparePartListVo> orderSparePartListVoList = new ArrayList<>(); List<OrderSparePartListVo> orderSparePartListVoList = new ArrayList<>();
List<OrderSparePart> orderSparePartList = orderSparePartMapper.findOrderSparePartByRepairOrderIdAndRepairOrderAuditId( List<OrderSparePart> orderSparePartList = orderSparePartMapper.findOrderSparePartByRepairOrderIdAndRepairOrderAuditId(
item.getRepairOrderId(),item.getId()); item.getRepairOrderId(),item.getId());
@ -499,6 +604,17 @@ public class RepairOrderAuditServiceImpl implements IRepairOrderAuditService {
orderSparePartListVoList.add(orderSparePartListVo); orderSparePartListVoList.add(orderSparePartListVo);
number += orderSparePart.getCount(); number += orderSparePart.getCount();
//单位数据获取配件表数据
SparePart sparePart = sparePartMapper.selectOne(new LambdaQueryWrapper<SparePart>()
.eq(SparePart::getId, orderSparePartListVo.getSparePartsId()));
//配件单价 = 客户采购价格因子 * 配件单价
DecimalFormat df1 = new DecimalFormat("0.00");
BigDecimal unitPrice = null;
if(purchaseDivisor != null && sparePart.getUnitPrice() != null){
unitPrice = sparePart.getUnitPrice().multiply(purchaseDivisor);
}
orderSparePartListVo.setUnitPrice(df1.format(unitPrice));
} }
vo.setOrderSparePartListVoList(orderSparePartListVoList); //订单配件 vo.setOrderSparePartListVoList(orderSparePartListVoList); //订单配件
@ -535,6 +651,12 @@ public class RepairOrderAuditServiceImpl implements IRepairOrderAuditService {
vo.setWithdrawalImg(repairOrderStepData.getImg());// 退仓申请图片 vo.setWithdrawalImg(repairOrderStepData.getImg());// 退仓申请图片
} }
//退仓原因
String reasonForWithdrawal = null; // 退仓原因
reasonForWithdrawal = "维修了什么?\n1、" + item.getWhatWasRepairedOne() + "\n2、" +
item.getWhatWasRepairedTwo() + "\n3、" + item.getWhatWasRepairedThree() + "\n现在遇到了什么问题\n1、"
+ item.getQuestionOne() + "\n2、" + item.getQuestionTwo() + "\n3、" + item.getQuestionThree();
vo.setReasonForWithdrawal(reasonForWithdrawal);
} }
list.add(vo); list.add(vo);
@ -542,6 +664,7 @@ public class RepairOrderAuditServiceImpl implements IRepairOrderAuditService {
return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list); return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
} }
/** /**
* *
* *
@ -568,8 +691,9 @@ public class RepairOrderAuditServiceImpl implements IRepairOrderAuditService {
if(model.getReviewRequest() == RepairOrderAuditStatusEnum.APPLICATION_FOR_SCRAP.getStatus()){ if(model.getReviewRequest() == RepairOrderAuditStatusEnum.APPLICATION_FOR_SCRAP.getStatus()){
//报废申请审核 //报废申请审核
if(repairOrderAuditParam.getAuditResult() == RepairOrderAuditStatusEnum.ALREADY_PASSED.getStatus()){ if(repairOrderAuditParam.getAuditResult() == RepairOrderAuditStatusEnum.ALREADY_PASSED.getStatus()){
//已通过,审核状态为:待入库 // 已通过,审核状态为:待质检
model.setAuditStatus(RepairOrderAuditStatusEnum.STOCK_PENDING.getStatus());// 审核状态0=待审核、1=待入库、2=审核未通过、3=已完成4=待领取、5=待确认) // 审核状态0=待审核、1=待入库、2=审核未通过、3=已完成4=待领取、5=待确认、6=已取消、7=待质检、8=质检不通过)
model.setAuditStatus(RepairOrderAuditStatusEnum.WAIT_FOR_QUALITY_INSPECTION.getStatus());
//新增维修单操作记录 //新增维修单操作记录
RepairOrderStepData repairOrderStepData = new RepairOrderStepData(); RepairOrderStepData repairOrderStepData = new RepairOrderStepData();
@ -583,11 +707,18 @@ public class RepairOrderAuditServiceImpl implements IRepairOrderAuditService {
} else if (repairOrderAuditParam.getAuditResult() == RepairOrderAuditStatusEnum.NOT_PASS.getStatus()) { } else if (repairOrderAuditParam.getAuditResult() == RepairOrderAuditStatusEnum.NOT_PASS.getStatus()) {
//未通过,审核状态为:审核未通过 //未通过,审核状态为:审核未通过
model.setAuditStatus(RepairOrderAuditStatusEnum.FAIL_THE_AUDIT.getStatus());// 审核状态0=待审核、1=待入库、2=审核未通过、3=已完成4=待领取、5=待确认) model.setAuditStatus(RepairOrderAuditStatusEnum.FAIL_THE_AUDIT.getStatus());// 审核状态0=待审核、1=待入库、2=审核未通过、3=已完成4=待领取、5=待确认)
//报废申请不通过-工单步骤回到故障排查
//1、先获取维修模块单
repairOrder.setRepairNextStep(RepairOrderStopEnum.TROUBLESHOOTING.getStatus()); // 下个步骤
repairOrder.setOrderStatus(RepairOrderStatusEnum.UNDER_INVESTIGATION.getStatus()); // 工单状态为2、排查中
repairOrder.setScrapOrNot(null); // 是否报废0=是1=否)
repairOrderMapper.updateById(repairOrder);
//新增维修单操作记录 //新增维修单操作记录
RepairOrderStepData repairOrderStepData = new RepairOrderStepData(); RepairOrderStepData repairOrderStepData = new RepairOrderStepData();
repairOrderStepData.setRepairOrderId(model.getRepairOrderId());// 维修单id repairOrderStepData.setRepairOrderId(model.getRepairOrderId());// 维修单id
repairOrderStepData.setRemark("管理员【"+AdminThreadLocal.get("username")+"】完成审核,审核结果:不通过,审核意见:"+repairOrderAuditParam.getAuditOpinion());// 备注 repairOrderStepData.setRemark("管理员【"+AdminThreadLocal.get("username")+"】完成审核,审核结果:不通过,审核意见:"+repairOrderAuditParam.getAuditOpinion());// 备注
repairOrderStepData.setTitle("管理员进行审核"); // 标题 repairOrderStepData.setTitle("管理员进行报废申请审核"); // 标题
repairOrderStepData.setAuditStatus(AuditStateEnum.NOT_PASS_STATE.getStatus()); //审核不通过 repairOrderStepData.setAuditStatus(AuditStateEnum.NOT_PASS_STATE.getStatus()); //审核不通过
repairOrderStepData.setCreatorId(Long.valueOf(AdminThreadLocal.getAdminId())); //创建人 repairOrderStepData.setCreatorId(Long.valueOf(AdminThreadLocal.getAdminId())); //创建人
repairOrderStepData.setCreateTime(new Date()); // 创建时间 repairOrderStepData.setCreateTime(new Date()); // 创建时间
@ -597,7 +728,9 @@ public class RepairOrderAuditServiceImpl implements IRepairOrderAuditService {
// 领料申请审核 // 领料申请审核
if(repairOrderAuditParam.getAuditResult() == RepairOrderAuditStatusEnum.NOT_PASS.getStatus()){ if(repairOrderAuditParam.getAuditResult() == RepairOrderAuditStatusEnum.NOT_PASS.getStatus()){
//配件领用审核不通过 //配件领用审核不通过
// RepairOrder repairOrder = repairOrderMapper.findRepairOrderById(model.getRepairOrderId()); //未通过,审核状态为:审核未通过
model.setAuditStatus(RepairOrderAuditStatusEnum.FAIL_THE_AUDIT.getStatus());// 审核状态0=待审核、1=待入库、2=审核未通过、3=已完成4=待领取、5=待确认)
if(repairOrder != null){ if(repairOrder != null){
repairOrder.setReturnCause(repairOrderAuditParam.getAuditOpinion()); repairOrder.setReturnCause(repairOrderAuditParam.getAuditOpinion());
repairOrder.setRepairNextStep(RepairOrderStopEnum.RECOLLAR_FITTING.getStatus());//维修单审核不通过步骤为重领配件 repairOrder.setRepairNextStep(RepairOrderStopEnum.RECOLLAR_FITTING.getStatus());//维修单审核不通过步骤为重领配件
@ -609,7 +742,7 @@ public class RepairOrderAuditServiceImpl implements IRepairOrderAuditService {
RepairOrderStepData repairOrderStepData = new RepairOrderStepData(); RepairOrderStepData repairOrderStepData = new RepairOrderStepData();
repairOrderStepData.setRepairOrderId(model.getRepairOrderId());// 维修单id repairOrderStepData.setRepairOrderId(model.getRepairOrderId());// 维修单id
repairOrderStepData.setRemark("管理员【"+AdminThreadLocal.get("username")+"】完成审核,审核结果:不通过,审核意见:"+repairOrderAuditParam.getAuditOpinion());// 备注 repairOrderStepData.setRemark("管理员【"+AdminThreadLocal.get("username")+"】完成审核,审核结果:不通过,审核意见:"+repairOrderAuditParam.getAuditOpinion());// 备注
repairOrderStepData.setTitle("管理员进行审核"); // 标题 repairOrderStepData.setTitle("管理员进行领料申请审核"); // 标题
repairOrderStepData.setAuditStatus(AuditStateEnum.NOT_PASS_STATE.getStatus()); //审核不通过 repairOrderStepData.setAuditStatus(AuditStateEnum.NOT_PASS_STATE.getStatus()); //审核不通过
repairOrderStepData.setCreatorId(Long.valueOf(AdminThreadLocal.getAdminId())); //创建人 repairOrderStepData.setCreatorId(Long.valueOf(AdminThreadLocal.getAdminId())); //创建人
repairOrderStepData.setCreateTime(new Date()); // 创建时间 repairOrderStepData.setCreateTime(new Date()); // 创建时间
@ -638,7 +771,6 @@ public class RepairOrderAuditServiceImpl implements IRepairOrderAuditService {
.last("limit 1")); .last("limit 1"));
// 出库时需要判断库存数量是否大于出库数量,大于才允许出库;反之,提示备件库存数量不足 // 出库时需要判断库存数量是否大于出库数量,大于才允许出库;反之,提示备件库存数量不足
if (sparePart.getQuantity() >= orderSparePart.getCount()) { if (sparePart.getQuantity() >= orderSparePart.getCount()) {
/*model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus());*/
sparePart.setQuantity(sparePart.getQuantity() - orderSparePart.getCount()); sparePart.setQuantity(sparePart.getQuantity() - orderSparePart.getCount());
} else { } else {
throw new OperateException("备件库存数量不足,请联系客服人员!"); throw new OperateException("备件库存数量不足,请联系客服人员!");
@ -676,6 +808,12 @@ public class RepairOrderAuditServiceImpl implements IRepairOrderAuditService {
//未通过,审核状态为:审核未通过 //未通过,审核状态为:审核未通过
model.setAuditStatus(RepairOrderAuditStatusEnum.FAIL_THE_AUDIT.getStatus());// 审核状态0=待审核、1=待入库、2=审核未通过、3=已完成4=待领取、5=待确认) model.setAuditStatus(RepairOrderAuditStatusEnum.FAIL_THE_AUDIT.getStatus());// 审核状态0=待审核、1=待入库、2=审核未通过、3=已完成4=待领取、5=待确认)
//良品入库申请不通过-工单步骤回到上传维修前
//1、先获取维修模块单信息
repairOrder.setRepairNextStep(RepairOrderStopEnum.PRE_MAINTENANCE_IMG.getStatus()); // 下个步骤
repairOrder.setOrderStatus(RepairOrderStatusEnum.IN_MAINTENANCE.getStatus()); // 工单状态为 4、维修中
repairOrderMapper.updateById(repairOrder);
//新增维修单操作记录 //新增维修单操作记录
RepairOrderStepData repairOrderStepData = new RepairOrderStepData(); RepairOrderStepData repairOrderStepData = new RepairOrderStepData();
repairOrderStepData.setRepairOrderId(model.getRepairOrderId());// 维修单id repairOrderStepData.setRepairOrderId(model.getRepairOrderId());// 维修单id
@ -707,6 +845,12 @@ public class RepairOrderAuditServiceImpl implements IRepairOrderAuditService {
model.setAuditStatus(RepairOrderAuditStatusEnum.FAIL_THE_AUDIT.getStatus());// 审核状态0=待审核、1=待入库、2=审核未通过、3=已完成4=待领取、5=待确认) model.setAuditStatus(RepairOrderAuditStatusEnum.FAIL_THE_AUDIT.getStatus());// 审核状态0=待审核、1=待入库、2=审核未通过、3=已完成4=待领取、5=待确认)
//申请退仓是否在退仓中0=是1=否) //申请退仓是否在退仓中0=是1=否)
repairOrder.setReturning(RepairOrderStatusEnum.NO.getStatus()); repairOrder.setReturning(RepairOrderStatusEnum.NO.getStatus());
//如果当前步骤是确认签名,下一个步骤就是重领配件
if(repairOrder.getRepairNextStep() == RepairOrderStopEnum.CONFIRMATION_SIGNATURE.getStatus()){
repairOrder.setRepairNextStep(RepairOrderStopEnum.RECOLLAR_FITTING.getStatus());// 当前步骤为重领配件
}
repairOrderMapper.updateById(repairOrder); repairOrderMapper.updateById(repairOrder);
//新增维修单操作记录 //新增维修单操作记录
@ -753,4 +897,70 @@ public class RepairOrderAuditServiceImpl implements IRepairOrderAuditService {
} }
} }
/**
*
*
* @param repairOrderAuditParam
*/
@Override
public void qualityTesting(RepairOrderAuditParam repairOrderAuditParam) {
RepairOrderAudit model = repairOrderAuditMapper.selectOne(
new QueryWrapper<RepairOrderAudit>()
.eq("id", repairOrderAuditParam.getId())
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
model.setQualityTestingResult(repairOrderAuditParam.getQualityTestingResult()); // 质检结果0=通过1=不通过)
model.setQualityTestingId(Long.valueOf(AdminThreadLocal.getAdminId())); // 质检人
model.setQualityTestingTime(new Date());// 质检时间
model.setQualityTestingOpinion(repairOrderAuditParam.getQualityTestingOpinion()); // 质检意见
model.setQualityTestingImg(repairOrderAuditParam.getQualityTestingImg()); // 质检图片
if(repairOrderAuditParam.getQualityTestingResult() == RepairOrderAuditStatusEnum.ALREADY_PASSED.getStatus()){
// 已通过,审核状态为:待入库
// 审核状态0=待审核、1=待入库、2=审核未通过、3=已完成4=待领取、5=待确认、6=已取消、7=待质检、8=质检不通过)
model.setAuditStatus(RepairOrderAuditStatusEnum.STOCK_PENDING.getStatus());
//新增维修单操作记录
RepairOrderStepData repairOrderStepData = new RepairOrderStepData();
repairOrderStepData.setRepairOrderId(model.getRepairOrderId());// 维修单id
repairOrderStepData.setImg(repairOrderAuditParam.getQualityTestingImg()); // 质检图片
repairOrderStepData.setRemark("管理员【"+AdminThreadLocal.get("username")+"】完成质检,质检通过");// 备注
repairOrderStepData.setTitle("管理员进行报废申请质检"); // 标题
repairOrderStepData.setAuditStatus(AuditStateEnum.ALREADY_PASSED.getStatus()); //审核通过
repairOrderStepData.setCreatorId(Long.valueOf(AdminThreadLocal.getAdminId())); //创建人
repairOrderStepData.setCreateTime(new Date()); // 创建时间
repairOrderStepDataMapper.insert(repairOrderStepData);
} else if (repairOrderAuditParam.getQualityTestingResult() == RepairOrderAuditStatusEnum.NOT_PASS.getStatus()) {
// 未通过,审核状态为:质检不通过
// 审核状态0=待审核、1=待入库、2=审核未通过、3=已完成4=待领取、5=待确认、6=已取消、7=待质检、8=质检不通过)
model.setAuditStatus(RepairOrderAuditStatusEnum.FAILURE_OF_QUALITY_INSPECTION.getStatus());
//报废申请不通过-工单步骤回到故障排查
//1、先获取维修模块单
RepairOrder repairOrder1 = repairOrderMapper.selectOne(new LambdaQueryWrapper<RepairOrder>()
.eq(RepairOrder::getId, model.getRepairOrderId())
.eq(RepairOrder::getIsDelete, GlobalConstant.NOT_DELETE));
repairOrder1.setRepairNextStep(RepairOrderStopEnum.TROUBLESHOOTING.getStatus()); // 下个步骤
repairOrder1.setOrderStatus(RepairOrderStatusEnum.UNDER_INVESTIGATION.getStatus()); // 工单状态为2、排查中
repairOrder1.setScrapOrNot(null); // 是否报废0=是1=否)
repairOrderMapper.updateById(repairOrder1);
//新增维修单操作记录
RepairOrderStepData repairOrderStepData = new RepairOrderStepData();
repairOrderStepData.setRepairOrderId(model.getRepairOrderId());// 维修单id
repairOrderStepData.setImg(repairOrderAuditParam.getQualityTestingImg()); // 质检图片
repairOrderStepData.setRemark("管理员【"+AdminThreadLocal.get("username")+"】完成质检,质检结果:不通过,质检意见:"+repairOrderAuditParam.getQualityTestingOpinion());
repairOrderStepData.setTitle("管理员进行报废申请质检"); // 标题
repairOrderStepData.setAuditStatus(AuditStateEnum.NOT_PASS_STATE.getStatus()); //审核不通过
repairOrderStepData.setCreatorId(Long.valueOf(AdminThreadLocal.getAdminId())); //创建人
repairOrderStepData.setCreateTime(new Date()); // 创建时间
repairOrderStepDataMapper.insert(repairOrderStepData);
}
repairOrderAuditMapper.updateById(model);
}
} }

View File

@ -85,6 +85,7 @@ import java.io.UnsupportedEncodingException;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.net.URL; import java.net.URL;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -234,28 +235,36 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
//返回维修前照片 //返回维修前照片
RepairOrderStepData preMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>() RepairOrderStepData preMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, item.getId()) .eq(RepairOrderStepData::getRepairOrderId, item.getId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.PRE_MAINTENANCE_IMG.getStatus())); .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.PRE_MAINTENANCE_IMG.getStatus())
.orderByDesc(RepairOrderStepData::getCreateTime)
.last("limit 1"));
if(preMaintenanceImg != null){ if(preMaintenanceImg != null){
vo.setPreMaintenanceImg(preMaintenanceImg.getImg()); vo.setPreMaintenanceImg(preMaintenanceImg.getImg());
} }
//返回维修中照片 //返回维修中照片
RepairOrderStepData inMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>() RepairOrderStepData inMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, item.getId()) .eq(RepairOrderStepData::getRepairOrderId, item.getId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.IN_MAINTENANCE_IMG.getStatus())); .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.IN_MAINTENANCE_IMG.getStatus())
.orderByDesc(RepairOrderStepData::getCreateTime)
.last("limit 1"));
if(inMaintenanceImg != null){ if(inMaintenanceImg != null){
vo.setInMaintenanceImg(inMaintenanceImg.getImg()); vo.setInMaintenanceImg(inMaintenanceImg.getImg());
} }
//返回维修后照片 //返回维修后照片
RepairOrderStepData afterRepairImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>() RepairOrderStepData afterRepairImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, item.getId()) .eq(RepairOrderStepData::getRepairOrderId, item.getId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.AFTER_REPAIR_IMG.getStatus())); .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.AFTER_REPAIR_IMG.getStatus())
.orderByDesc(RepairOrderStepData::getCreateTime)
.last("limit 1"));
if(afterRepairImg != null){ if(afterRepairImg != null){
vo.setAfterRepairImg(afterRepairImg.getImg()); vo.setAfterRepairImg(afterRepairImg.getImg());
} }
//返回故障点照片 faultPointImg; // 故障点照片 //返回故障点照片 faultPointImg; // 故障点照片
RepairOrderStepData troubleshooting = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>() RepairOrderStepData troubleshooting = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, item.getId()) .eq(RepairOrderStepData::getRepairOrderId, item.getId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.TROUBLESHOOTING.getStatus())); .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.TROUBLESHOOTING.getStatus())
.orderByDesc(RepairOrderStepData::getCreateTime)
.last("limit 1"));
if(troubleshooting != null){ if(troubleshooting != null){
vo.setFaultPointImg(troubleshooting.getImg()); vo.setFaultPointImg(troubleshooting.getImg());
} }
@ -293,7 +302,9 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
if(model.getOrderStatus() == RepairOrderStatusEnum.FINISHED.getStatus()){ if(model.getOrderStatus() == RepairOrderStatusEnum.FINISHED.getStatus()){
RepairOrderStepData stepData = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>() RepairOrderStepData stepData = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, model.getId()) .eq(RepairOrderStepData::getRepairOrderId, model.getId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.GOOD_PRODUCTS_ARE_STORED.getStatus())); .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.GOOD_PRODUCTS_ARE_STORED.getStatus())
.orderByDesc(RepairOrderStepData::getCreateTime)
.last("limit 1"));
if(stepData != null){ if(stepData != null){
vo.setImg(stepData.getImg()); vo.setImg(stepData.getImg());
vo.setEnterRemark(stepData.getRemark()); vo.setEnterRemark(stepData.getRemark());
@ -305,6 +316,8 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
ParentRepairOrder parentRepairOrder = parentRepairOrderMapper.selectOne(new LambdaQueryWrapper<ParentRepairOrder>() ParentRepairOrder parentRepairOrder = parentRepairOrderMapper.selectOne(new LambdaQueryWrapper<ParentRepairOrder>()
.eq(ParentRepairOrder::getId, model.getParentRepairOrderId())); .eq(ParentRepairOrder::getId, model.getParentRepairOrderId()));
vo.setOrderNo(parentRepairOrder.getOrderNo()); vo.setOrderNo(parentRepairOrder.getOrderNo());
//客户配件采购因子
BigDecimal purchaseDivisor = null;
//客户名称 负责人 联系电话 //客户名称 负责人 联系电话
Client clientName = clientMapper.selectOne( Client clientName = clientMapper.selectOne(
@ -315,6 +328,7 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
vo.setDirector(clientName.getDirector()); vo.setDirector(clientName.getDirector());
vo.setPhone(clientName.getPhone()); vo.setPhone(clientName.getPhone());
vo.setMaintainType(clientName.getMaintainType()); vo.setMaintainType(clientName.getMaintainType());
purchaseDivisor = clientName.getPurchaseDivisor(); // 配件采购价格因子
} }
//创建人名称 //创建人名称
User creatorName = userMapper.selectOne( User creatorName = userMapper.selectOne(
@ -391,7 +405,8 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
} }
//设置配件清单 //设置配件清单
List<OrderSparePart> orderSpareParts = orderSparePartMapper.selectList(new LambdaQueryWrapper<OrderSparePart>() List<OrderSparePart> orderSpareParts = orderSparePartMapper.selectList(new LambdaQueryWrapper<OrderSparePart>()
.eq(OrderSparePart::getRepairOrderId, model.getId())); .eq(OrderSparePart::getRepairOrderId, model.getId())
.eq(OrderSparePart::getIsDelete, GlobalConstant.NOT_DELETE));
List<OrderSparePartListVo> orderSparePartListVos = new ArrayList<>(); List<OrderSparePartListVo> orderSparePartListVos = new ArrayList<>();
for (OrderSparePart item : orderSpareParts) { for (OrderSparePart item : orderSpareParts) {
OrderSparePartListVo orderSparePartListVo = new OrderSparePartListVo(); OrderSparePartListVo orderSparePartListVo = new OrderSparePartListVo();
@ -400,6 +415,18 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
Warehouse warehouse = warehouseMapper.selectOne(new LambdaQueryWrapper<Warehouse>() Warehouse warehouse = warehouseMapper.selectOne(new LambdaQueryWrapper<Warehouse>()
.eq(Warehouse::getId, item.getWarehouseId())); .eq(Warehouse::getId, item.getWarehouseId()));
orderSparePartListVo.setWarehouseName(warehouse.getWarehouseName()); orderSparePartListVo.setWarehouseName(warehouse.getWarehouseName());
//单位数据获取配件表数据
SparePart sparePart = sparePartMapper.selectOne(new LambdaQueryWrapper<SparePart>()
.eq(SparePart::getId, item.getSparePartsId()));
//配件单价 = 客户采购价格因子 * 配件单价
DecimalFormat df1 = new DecimalFormat("0.00");
BigDecimal unitPrice = null;
if(purchaseDivisor != null && sparePart.getUnitPrice() != null){
unitPrice = sparePart.getUnitPrice().multiply(purchaseDivisor);
}
orderSparePartListVo.setUnitPrice(df1.format(unitPrice));
orderSparePartListVos.add(orderSparePartListVo); orderSparePartListVos.add(orderSparePartListVo);
} }
vo.setSparePartList(orderSparePartListVos); vo.setSparePartList(orderSparePartListVos);
@ -477,21 +504,27 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
//返回维修前照片 //返回维修前照片
RepairOrderStepData preMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>() RepairOrderStepData preMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, model.getId()) .eq(RepairOrderStepData::getRepairOrderId, model.getId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.PRE_MAINTENANCE_IMG.getStatus())); .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.PRE_MAINTENANCE_IMG.getStatus())
.orderByDesc(RepairOrderStepData::getCreateTime)
.last("limit 1"));
if(preMaintenanceImg != null){ if(preMaintenanceImg != null){
vo.setPreMaintenanceImg(preMaintenanceImg.getImg()); vo.setPreMaintenanceImg(preMaintenanceImg.getImg());
} }
//返回维修中照片 //返回维修中照片
RepairOrderStepData inMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>() RepairOrderStepData inMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, model.getId()) .eq(RepairOrderStepData::getRepairOrderId, model.getId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.IN_MAINTENANCE_IMG.getStatus())); .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.IN_MAINTENANCE_IMG.getStatus())
.orderByDesc(RepairOrderStepData::getCreateTime)
.last("limit 1"));
if(inMaintenanceImg != null){ if(inMaintenanceImg != null){
vo.setInMaintenanceImg(inMaintenanceImg.getImg()); vo.setInMaintenanceImg(inMaintenanceImg.getImg());
} }
//返回维修后照片 //返回维修后照片
RepairOrderStepData afterRepairImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>() RepairOrderStepData afterRepairImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, model.getId()) .eq(RepairOrderStepData::getRepairOrderId, model.getId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.AFTER_REPAIR_IMG.getStatus())); .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.AFTER_REPAIR_IMG.getStatus())
.orderByDesc(RepairOrderStepData::getCreateTime)
.last("limit 1"));
if(afterRepairImg != null){ if(afterRepairImg != null){
vo.setAfterRepairImg(afterRepairImg.getImg()); vo.setAfterRepairImg(afterRepairImg.getImg());
} }
@ -507,7 +540,8 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
//配件编码 //配件编码
List<OrderPartCode> orderPartCodes = orderPartCodeMapper.selectList(new LambdaQueryWrapper<OrderPartCode>() List<OrderPartCode> orderPartCodes = orderPartCodeMapper.selectList(new LambdaQueryWrapper<OrderPartCode>()
.eq(OrderPartCode::getRepairOrderId, vo.getId())); .eq(OrderPartCode::getRepairOrderId, vo.getId())
.eq(OrderPartCode::getIsDelete, GlobalConstant.NOT_DELETE));
if(orderPartCodes != null){ if(orderPartCodes != null){
vo.setOrderPartCodeList(orderPartCodes); vo.setOrderPartCodeList(orderPartCodes);
} }
@ -554,7 +588,11 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
// 维修信息 // 维修信息
RepairOrderAudit repairOrderAudit1 = repairOrderAuditMapper.selectOne(new LambdaQueryWrapper<RepairOrderAudit>() RepairOrderAudit repairOrderAudit1 = repairOrderAuditMapper.selectOne(new LambdaQueryWrapper<RepairOrderAudit>()
.eq(RepairOrderAudit::getRepairOrderId, model.getId()) .eq(RepairOrderAudit::getRepairOrderId, model.getId())
.in(RepairOrderAudit::getReviewRequest, Arrays.asList(RepairOrderAuditStatusEnum.GOOD_PRODUCTS_ARE_STORED.getStatus(),RepairOrderAuditStatusEnum.FILL_IN_MAINTENANCE_INFORMATION.getStatus()))); .in(RepairOrderAudit::getReviewRequest, Arrays.asList(RepairOrderAuditStatusEnum.GOOD_PRODUCTS_ARE_STORED.getStatus(),
RepairOrderAuditStatusEnum.FILL_IN_MAINTENANCE_INFORMATION.getStatus()))
.eq(RepairOrderAudit::getIsDelete, GlobalConstant.NOT_DELETE)
.orderByDesc(RepairOrderAudit::getCreateTime)
.last("limit 1"));
if(repairOrderAudit1 != null){ if(repairOrderAudit1 != null){
RepairOrderAuditListVo repairOrderAuditListVo = new RepairOrderAuditListVo(); RepairOrderAuditListVo repairOrderAuditListVo = new RepairOrderAuditListVo();
BeanUtils.copyProperties(repairOrderAudit1,repairOrderAuditListVo); BeanUtils.copyProperties(repairOrderAudit1,repairOrderAuditListVo);
@ -593,6 +631,18 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
for (OrderSparePartUse orderSparePartUs : orderSparePartUses) { for (OrderSparePartUse orderSparePartUs : orderSparePartUses) {
OrderSparePartUseVo ospUserVo = new OrderSparePartUseVo(); OrderSparePartUseVo ospUserVo = new OrderSparePartUseVo();
BeanUtils.copyProperties(orderSparePartUs,ospUserVo); BeanUtils.copyProperties(orderSparePartUs,ospUserVo);
//单位数据获取配件表数据
SparePart sparePart = sparePartMapper.selectOne(new LambdaQueryWrapper<SparePart>()
.eq(SparePart::getId, orderSparePartUs.getSparePartsId()));
//配件单价 = 客户采购价格因子 * 配件单价
DecimalFormat df1 = new DecimalFormat("0.00");
BigDecimal unitPrice = null;
if(purchaseDivisor != null && sparePart.getUnitPrice() != null){
unitPrice = sparePart.getUnitPrice().multiply(purchaseDivisor);
}
ospUserVo.setUnitPrice(df1.format(unitPrice));
ospUserVoList.add(ospUserVo); ospUserVoList.add(ospUserVo);
} }
repairOrderAuditListVo.setPartsUseList(ospUserVoList); repairOrderAuditListVo.setPartsUseList(ospUserVoList);
@ -620,6 +670,18 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
for (OrderSparePartUse orderSparePartUs : orderSparePartUses) { for (OrderSparePartUse orderSparePartUs : orderSparePartUses) {
OrderSparePartUseVo ospUserVo = new OrderSparePartUseVo(); OrderSparePartUseVo ospUserVo = new OrderSparePartUseVo();
BeanUtils.copyProperties(orderSparePartUs,ospUserVo); BeanUtils.copyProperties(orderSparePartUs,ospUserVo);
//单位数据获取配件表数据
SparePart sparePart = sparePartMapper.selectOne(new LambdaQueryWrapper<SparePart>()
.eq(SparePart::getId, orderSparePartUs.getSparePartsId()));
//配件单价 = 客户采购价格因子 * 配件单价
DecimalFormat df1 = new DecimalFormat("0.00");
BigDecimal unitPrice = null;
if(purchaseDivisor != null && sparePart.getUnitPrice() != null){
unitPrice = sparePart.getUnitPrice().multiply(purchaseDivisor);
}
ospUserVo.setUnitPrice(df1.format(unitPrice));
ospUserVoList.add(ospUserVo); ospUserVoList.add(ospUserVo);
} }
repairOrderAuditListVo.setPartsUseList(ospUserVoList); repairOrderAuditListVo.setPartsUseList(ospUserVoList);
@ -1129,11 +1191,14 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
.eq(SystemAuthAdmin::getId, repairOrderParam.getReceiverId())); .eq(SystemAuthAdmin::getId, repairOrderParam.getReceiverId()));
//第一次派单维修人员为空,就将第一次派单的人给原维修人员,第二次就获取第一次的维修员为原维修人员 //第一次派单维修人员为空,就将第一次派单的人给原维修人员,第二次就获取第一次的维修员为原维修人员
if(repairOrder.getReceiverId() == null){ if(repairOrder.getReceiverId() == null && repairOrder.getPreviousMaintenanceStaffId() == null){
repairOrder.setPreviousMaintenanceStaffId(repairOrderParam.getReceiverId()); // 原维修人员id repairOrder.setPreviousMaintenanceStaffId(repairOrderParam.getReceiverId()); // 原维修人员id
}else{ }else if(repairOrder.getPreviousMaintenanceStaffId() == null){
repairOrder.setPreviousMaintenanceStaffId(repairOrder.getReceiverId()); repairOrder.setPreviousMaintenanceStaffId(repairOrder.getReceiverId());
} }
// else{
// repairOrder.setPreviousMaintenanceStaffId(repairOrder.getReceiverId());
// }
repairOrder.setReceiverId(repairOrderParam.getReceiverId()); // 接单人id repairOrder.setReceiverId(repairOrderParam.getReceiverId()); // 接单人id
repairOrder.setReceiverTime(new Date());//receiverTime; // 接单时间 repairOrder.setReceiverTime(new Date());//receiverTime; // 接单时间
@ -1452,21 +1517,27 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
//返回维修前照片 //返回维修前照片
RepairOrderStepData preMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>() RepairOrderStepData preMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, item.getId()) .eq(RepairOrderStepData::getRepairOrderId, item.getId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.PRE_MAINTENANCE_IMG.getStatus())); .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.PRE_MAINTENANCE_IMG.getStatus())
.orderByDesc(RepairOrderStepData::getCreateTime)
.last("limit 1"));
if(preMaintenanceImg != null){ if(preMaintenanceImg != null){
vo.setRepairFront(preMaintenanceImg.getImg()); vo.setRepairFront(preMaintenanceImg.getImg());
} }
//返回维修中照片 //返回维修中照片
RepairOrderStepData inMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>() RepairOrderStepData inMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, item.getId()) .eq(RepairOrderStepData::getRepairOrderId, item.getId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.IN_MAINTENANCE_IMG.getStatus())); .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.IN_MAINTENANCE_IMG.getStatus())
.orderByDesc(RepairOrderStepData::getCreateTime)
.last("limit 1"));
if(inMaintenanceImg != null){ if(inMaintenanceImg != null){
vo.setRepairIng(inMaintenanceImg.getImg()); vo.setRepairIng(inMaintenanceImg.getImg());
} }
//返回维修后照片 //返回维修后照片
RepairOrderStepData afterRepairImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>() RepairOrderStepData afterRepairImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, item.getId()) .eq(RepairOrderStepData::getRepairOrderId, item.getId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.AFTER_REPAIR_IMG.getStatus())); .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.AFTER_REPAIR_IMG.getStatus())
.orderByDesc(RepairOrderStepData::getCreateTime)
.last("limit 1"));
if(afterRepairImg != null){ if(afterRepairImg != null){
vo.setRepairBack(afterRepairImg.getImg()); vo.setRepairBack(afterRepairImg.getImg());
} }
@ -1592,6 +1663,7 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
repairOrderDto.setMaintenanceResult(RepairOrderStatusEnum.OK.getStatus()); repairOrderDto.setMaintenanceResult(RepairOrderStatusEnum.OK.getStatus());
List<RepairOrderDto> repairOrderDtoList = repairOrderMapper.maintenanceReportExcel(repairOrderDto); List<RepairOrderDto> repairOrderDtoList = repairOrderMapper.maintenanceReportExcel(repairOrderDto);
for(RepairOrderDto item : repairOrderDtoList) { for(RepairOrderDto item : repairOrderDtoList) {
NormalMaintenanceExcel vo = new NormalMaintenanceExcel(); NormalMaintenanceExcel vo = new NormalMaintenanceExcel();
BeanUtils.copyProperties(item, vo); BeanUtils.copyProperties(item, vo);
@ -1627,7 +1699,9 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
//返回维修前照片 //返回维修前照片
RepairOrderStepData preMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>() RepairOrderStepData preMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, item.getId()) .eq(RepairOrderStepData::getRepairOrderId, item.getId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.PRE_MAINTENANCE_IMG.getStatus())); .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.PRE_MAINTENANCE_IMG.getStatus())
.orderByDesc(RepairOrderStepData::getCreateTime)
.last("limit 1"));
if(preMaintenanceImg != null){ if(preMaintenanceImg != null){
try{ try{
List<URL> imgList1 = new ArrayList<>(); List<URL> imgList1 = new ArrayList<>();
@ -1646,7 +1720,9 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
//返回维修中照片 //返回维修中照片
RepairOrderStepData inMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>() RepairOrderStepData inMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, item.getId()) .eq(RepairOrderStepData::getRepairOrderId, item.getId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.IN_MAINTENANCE_IMG.getStatus())); .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.IN_MAINTENANCE_IMG.getStatus())
.orderByDesc(RepairOrderStepData::getCreateTime)
.last("limit 1"));
if(inMaintenanceImg != null){ if(inMaintenanceImg != null){
try{ try{
List<URL> imgList1 = new ArrayList<>(); List<URL> imgList1 = new ArrayList<>();
@ -1664,7 +1740,9 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
//返回维修后照片 //返回维修后照片
RepairOrderStepData afterRepairImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>() RepairOrderStepData afterRepairImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, item.getId()) .eq(RepairOrderStepData::getRepairOrderId, item.getId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.AFTER_REPAIR_IMG.getStatus())); .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.AFTER_REPAIR_IMG.getStatus())
.orderByDesc(RepairOrderStepData::getCreateTime)
.last("limit 1"));
if(afterRepairImg != null){ if(afterRepairImg != null){
try{ try{
List<URL> imgList1 = new ArrayList<>(); List<URL> imgList1 = new ArrayList<>();
@ -1680,6 +1758,14 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
} }
} }
//设置客户信息
Client client = clientMapper.findClientById(item.getClientId());
//客户配件采购因子
BigDecimal purchaseDivisor = null;
if(client != null){
purchaseDivisor = client.getPurchaseDivisor(); // 配件采购价格因子
}
/* /*
replacementDetail replacementDetail
@ -1695,9 +1781,19 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
if (sb.length() > 0) { if (sb.length() > 0) {
sb.append(""); sb.append("");
} }
//获取当前配件单价
SparePart sparePart = sparePartMapper.selectOne(new LambdaQueryWrapper<SparePart>()
.eq(SparePart::getId, orderSparePartUs.getSparePartsId()));
//配件单价 = 客户采购价格因子 * 配件单价
DecimalFormat df1 = new DecimalFormat("0.00");
BigDecimal unitPrice = null;
if(purchaseDivisor != null && sparePart.getUnitPrice() != null){
unitPrice = sparePart.getUnitPrice().multiply(purchaseDivisor);
}
sb.append(orderSparePartUs.getRepairMotherboard()).append("").append(orderSparePartUs.getMaterialPositionNumber()).append(" * ") sb.append(orderSparePartUs.getRepairMotherboard()).append("").append(orderSparePartUs.getMaterialPositionNumber()).append(" * ")
.append(orderSparePartUs.getSparePartsCode()).append(" * ").append(orderSparePartUs.getSparePartsName()).append(" * ") .append(orderSparePartUs.getSparePartsCode()).append(" * ").append(orderSparePartUs.getSparePartsName()).append(" * ")
.append(orderSparePartUs.getSpecificationsModel()).append(" * ").append(orderSparePartUs.getUseNumber()); .append(orderSparePartUs.getSpecificationsModel()).append(" * ").append(orderSparePartUs.getUseNumber()).append(" * ")
.append(df1.format(unitPrice));
} }
// 将数据转换为指定格式的字符串 // 将数据转换为指定格式的字符串
String detail = sb.toString(); String detail = sb.toString();
@ -1752,7 +1848,9 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
//返回维修前照片 //返回维修前照片
RepairOrderStepData preMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>() RepairOrderStepData preMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, item.getId()) .eq(RepairOrderStepData::getRepairOrderId, item.getId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.PRE_MAINTENANCE_IMG.getStatus())); .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.PRE_MAINTENANCE_IMG.getStatus())
.orderByDesc(RepairOrderStepData::getCreateTime)
.last("limit 1"));
if(preMaintenanceImg != null){ if(preMaintenanceImg != null){
try{ try{
List<URL> imgList1 = new ArrayList<>(); List<URL> imgList1 = new ArrayList<>();
@ -1771,7 +1869,9 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
//返回维修中照片 //返回维修中照片
RepairOrderStepData inMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>() RepairOrderStepData inMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, item.getId()) .eq(RepairOrderStepData::getRepairOrderId, item.getId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.IN_MAINTENANCE_IMG.getStatus())); .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.IN_MAINTENANCE_IMG.getStatus())
.orderByDesc(RepairOrderStepData::getCreateTime)
.last("limit 1"));
if(inMaintenanceImg != null){ if(inMaintenanceImg != null){
try{ try{
List<URL> imgList1 = new ArrayList<>(); List<URL> imgList1 = new ArrayList<>();
@ -1789,7 +1889,9 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
//返回维修后照片 //返回维修后照片
RepairOrderStepData afterRepairImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>() RepairOrderStepData afterRepairImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, item.getId()) .eq(RepairOrderStepData::getRepairOrderId, item.getId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.AFTER_REPAIR_IMG.getStatus())); .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.AFTER_REPAIR_IMG.getStatus())
.orderByDesc(RepairOrderStepData::getCreateTime)
.last("limit 1"));
if(afterRepairImg != null){ if(afterRepairImg != null){
try{ try{
List<URL> imgList1 = new ArrayList<>(); List<URL> imgList1 = new ArrayList<>();
@ -1804,7 +1906,13 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
System.out.println("导出异常"); System.out.println("导出异常");
} }
} }
//设置客户信息
Client client = clientMapper.findClientById(item.getClientId());
//客户配件采购因子
BigDecimal purchaseDivisor = null;
if(client != null){
purchaseDivisor = client.getPurchaseDivisor(); // 配件采购价格因子
}
/* /*
replacementDetail replacementDetail
@ -1820,9 +1928,19 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
if (sb.length() > 0) { if (sb.length() > 0) {
sb.append(""); sb.append("");
} }
//获取当前配件单价
SparePart sparePart = sparePartMapper.selectOne(new LambdaQueryWrapper<SparePart>()
.eq(SparePart::getId, orderSparePartUs.getSparePartsId()));
//配件单价 = 客户采购价格因子 * 配件单价
DecimalFormat df1 = new DecimalFormat("0.00");
BigDecimal unitPrice = null;
if(purchaseDivisor != null && sparePart.getUnitPrice() != null){
unitPrice = sparePart.getUnitPrice().multiply(purchaseDivisor);
}
sb.append(orderSparePartUs.getRepairMotherboard()).append("").append(orderSparePartUs.getMaterialPositionNumber()).append(" * ") sb.append(orderSparePartUs.getRepairMotherboard()).append("").append(orderSparePartUs.getMaterialPositionNumber()).append(" * ")
.append(orderSparePartUs.getSparePartsCode()).append(" * ").append(orderSparePartUs.getSparePartsName()).append(" * ") .append(orderSparePartUs.getSparePartsCode()).append(" * ").append(orderSparePartUs.getSparePartsName()).append(" * ")
.append(orderSparePartUs.getSpecificationsModel()).append(" * ").append(orderSparePartUs.getUseNumber()); .append(orderSparePartUs.getSpecificationsModel()).append(" * ").append(orderSparePartUs.getUseNumber()).append(" * ")
.append(df1.format(unitPrice));
} }
// 将数据转换为指定格式的字符串 // 将数据转换为指定格式的字符串
String detail = sb.toString(); String detail = sb.toString();
@ -2000,6 +2118,17 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
.eq(OrderSparePart::getRepairOrderAuditId, repairOrderParam.getRepairOrderAuditId()) .eq(OrderSparePart::getRepairOrderAuditId, repairOrderParam.getRepairOrderAuditId())
.eq(OrderSparePart::getIsDelete, GlobalConstant.NOT_DELETE)); .eq(OrderSparePart::getIsDelete, GlobalConstant.NOT_DELETE));
//客户配件采购因子
BigDecimal purchaseDivisor = null;
//维修工单信息
RepairOrder repairOrder = repairOrderMapper.selectOne(new LambdaQueryWrapper<RepairOrder>()
.eq(RepairOrder::getId, repairOrderParam.getId()));
//客户信息
Client client = clientMapper.selectOne(new LambdaQueryWrapper<Client>()
.eq(Client::getId, repairOrder.getClientId()));
purchaseDivisor = client.getPurchaseDivisor(); // 配件采购价格因子
List<OrderSparePartListVo> orderSparePartListVos = new ArrayList<>(); List<OrderSparePartListVo> orderSparePartListVos = new ArrayList<>();
for (OrderSparePart item : orderSpareParts) { for (OrderSparePart item : orderSpareParts) {
OrderSparePartListVo orderSparePartListVo = new OrderSparePartListVo(); OrderSparePartListVo orderSparePartListVo = new OrderSparePartListVo();
@ -2008,10 +2137,68 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
Warehouse warehouse = warehouseMapper.selectOne(new LambdaQueryWrapper<Warehouse>() Warehouse warehouse = warehouseMapper.selectOne(new LambdaQueryWrapper<Warehouse>()
.eq(Warehouse::getId, item.getWarehouseId())); .eq(Warehouse::getId, item.getWarehouseId()));
orderSparePartListVo.setWarehouseName(warehouse.getWarehouseName()); orderSparePartListVo.setWarehouseName(warehouse.getWarehouseName());
//单位数据获取配件表数据
SparePart sparePart = sparePartMapper.selectOne(new LambdaQueryWrapper<SparePart>()
.eq(SparePart::getId, item.getSparePartsId()));
//配件单价 = 客户采购价格因子 * 配件单价
DecimalFormat df1 = new DecimalFormat("0.00");
BigDecimal unitPrice = null;
if(purchaseDivisor != null && sparePart.getUnitPrice() != null){
unitPrice = sparePart.getUnitPrice().multiply(purchaseDivisor);
}
orderSparePartListVo.setUnitPrice(df1.format(unitPrice));
orderSparePartListVos.add(orderSparePartListVo); orderSparePartListVos.add(orderSparePartListVo);
} }
return orderSparePartListVos; return orderSparePartListVos;
} }
/**
* id使
*
* @param repairOrderParam
* @return
*/
@Override
public List<OrderSparePartUseListVo> partsUseList(RepairOrderParam repairOrderParam) {
//根据工单号和审核id查出配件列表
List<OrderSparePartUse> orderSparePartsUse = orderSparePartUseMapper.selectList(new LambdaQueryWrapper<OrderSparePartUse>()
.eq(OrderSparePartUse::getRepairOrderId, repairOrderParam.getId())
.eq(OrderSparePartUse::getRepairOrderAuditId, repairOrderParam.getRepairOrderAuditId())
.eq(OrderSparePartUse::getIsDelete, GlobalConstant.NOT_DELETE));
//客户配件采购因子
BigDecimal purchaseDivisor = null;
//维修工单信息
RepairOrder repairOrder = repairOrderMapper.selectOne(new LambdaQueryWrapper<RepairOrder>()
.eq(RepairOrder::getId, repairOrderParam.getId()));
//客户信息
Client client = clientMapper.selectOne(new LambdaQueryWrapper<Client>()
.eq(Client::getId, repairOrder.getClientId()));
purchaseDivisor = client.getPurchaseDivisor(); // 配件采购价格因子
List<OrderSparePartUseListVo> orderSparePartUseListVos = new ArrayList<>();
for (OrderSparePartUse item : orderSparePartsUse) {
OrderSparePartUseListVo orderSparePartUseListVo = new OrderSparePartUseListVo();
BeanUtils.copyProperties(item, orderSparePartUseListVo);
//单位数据获取配件表数据
SparePart sparePart = sparePartMapper.selectOne(new LambdaQueryWrapper<SparePart>()
.eq(SparePart::getId, item.getSparePartsId()));
//配件单价 = 客户采购价格因子 * 配件单价
DecimalFormat df1 = new DecimalFormat("0.00");
BigDecimal unitPrice = null;
if(purchaseDivisor != null && sparePart.getUnitPrice() != null){
unitPrice = sparePart.getUnitPrice().multiply(purchaseDivisor);
}
orderSparePartUseListVo.setUnitPrice(df1.format(unitPrice));
orderSparePartUseListVos.add(orderSparePartUseListVo);
}
return orderSparePartUseListVos;
}
} }

View File

@ -570,6 +570,7 @@ public class RepairOrderShippingServiceImpl implements IRepairOrderShippingServi
releaseRecordListExcel.getRemarkMap().put(RepairOrderStatusEnum.EMPTY.getDesc() releaseRecordListExcel.getRemarkMap().put(RepairOrderStatusEnum.EMPTY.getDesc()
,releaseRecordListExcel.getRemarkMap().get(RepairOrderStatusEnum.EMPTY.getDesc()) == null ? 1 : releaseRecordListExcel.getRemarkMap().get(RepairOrderStatusEnum.EMPTY.getDesc()) + 1); ,releaseRecordListExcel.getRemarkMap().get(RepairOrderStatusEnum.EMPTY.getDesc()) == null ? 1 : releaseRecordListExcel.getRemarkMap().get(RepairOrderStatusEnum.EMPTY.getDesc()) + 1);
} }
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
for (String flag : releaseRecordListExcel.getRemarkMap().keySet()) { for (String flag : releaseRecordListExcel.getRemarkMap().keySet()) {
if(RepairOrderStatusEnum.SCRAP.getDesc().equals(flag)){ if(RepairOrderStatusEnum.SCRAP.getDesc().equals(flag)){

View File

@ -303,7 +303,8 @@ public class SparePartServiceImpl implements ISparePartService {
queryWrapper.or(); queryWrapper.or();
queryWrapper.like("spare_parts_name", pageDto.getLikeWork()); queryWrapper.like("spare_parts_name", pageDto.getLikeWork());
} }
//出库和调拨选配件的时候库存数量为0的不应出现 查询要加个字段
queryWrapper.ne("quantity", 0);
queryWrapper.eq("is_delete", 0); queryWrapper.eq("is_delete", 0);
queryWrapper.orderByDesc("id"); queryWrapper.orderByDesc("id");
@ -352,11 +353,11 @@ public class SparePartServiceImpl implements ISparePartService {
//出库和调拨选配件的时候库存数量为0的不应出现 查询要加个字段 //出库和调拨选配件的时候库存数量为0的不应出现 查询要加个字段
String s = params.get("outAllotType"); String s = params.get("outAllotType");
if(s != null && s.equals("0") && item.getQuantity() == 0){ // if(s != null && s.equals("0") && item.getQuantity() == 0){
System.out.println("出库和调拨时库存数量为0的不应出现"); // System.out.println("出库和调拨时库存数量为0的不应出现");
}else{ // }else{
list.add(vo); list.add(vo);
} // }
} }

View File

@ -466,6 +466,7 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
sparePartAudit.setStockAuditId(model.getId()); sparePartAudit.setStockAuditId(model.getId());
sparePartAudit.setSparePartsId(sparePart.getId()); sparePartAudit.setSparePartsId(sparePart.getId());
sparePartAudit.setCount(item.getCount()); sparePartAudit.setCount(item.getCount());
sparePartAudit.setUnitPrice(item.getUnitPrice()); // 单价
sparePartAuditMapper.insert(sparePartAudit);//插入备件审核信息 sparePartAuditMapper.insert(sparePartAudit);//插入备件审核信息
} }
} }

View File

@ -290,6 +290,7 @@ public class SystemAuthAdminServiceImpl implements ISystemAuthAdminService {
vo.setProvince(regionMap.get(sysAdmin.getProvinceId())); vo.setProvince(regionMap.get(sysAdmin.getProvinceId()));
vo.setCity(regionMap.get(sysAdmin.getCityId())); vo.setCity(regionMap.get(sysAdmin.getCityId()));
vo.setDistrict(regionMap.get(sysAdmin.getDistrictId())); vo.setDistrict(regionMap.get(sysAdmin.getDistrictId()));
vo.setGoodSkill(sysAdmin.getGoodSkill());//goodSkill; //擅长技能
return vo; return vo;
} }
@ -344,6 +345,7 @@ public class SystemAuthAdminServiceImpl implements ISystemAuthAdminService {
user.setLastLoginTime(System.currentTimeMillis() / 1000); // 最后登录时间 user.setLastLoginTime(System.currentTimeMillis() / 1000); // 最后登录时间
user.setCreateTime(System.currentTimeMillis() / 1000); // 最后登录时间 user.setCreateTime(System.currentTimeMillis() / 1000); // 最后登录时间
user.setMobile(systemAuthAdminParam.getPhone()); // 用户电话 user.setMobile(systemAuthAdminParam.getPhone()); // 用户电话
user.setGoodSkill(systemAuthAdminParam.getGoodSkill()); //擅长技能
userMapper.insert(user); userMapper.insert(user);
model.setUserId(user.getId().longValue()); model.setUserId(user.getId().longValue());
} }
@ -371,6 +373,7 @@ public class SystemAuthAdminServiceImpl implements ISystemAuthAdminService {
model.setEmail(systemAuthAdminParam.getEmail()); model.setEmail(systemAuthAdminParam.getEmail());
model.setTechnicalGrade(systemAuthAdminParam.getTechnicalGrade()); model.setTechnicalGrade(systemAuthAdminParam.getTechnicalGrade());
model.setIsApprentice(systemAuthAdminParam.getIsApprentice()); model.setIsApprentice(systemAuthAdminParam.getIsApprentice());
model.setGoodSkill(systemAuthAdminParam.getGoodSkill());
systemAuthAdminMapper.insert(model); systemAuthAdminMapper.insert(model);
//获取管理员id //获取管理员id
Long adminId = model.getId().longValue(); Long adminId = model.getId().longValue();
@ -477,6 +480,7 @@ public class SystemAuthAdminServiceImpl implements ISystemAuthAdminService {
user.setLastLoginTime(System.currentTimeMillis() / 1000); user.setLastLoginTime(System.currentTimeMillis() / 1000);
user.setCreateTime(System.currentTimeMillis() / 1000); user.setCreateTime(System.currentTimeMillis() / 1000);
user.setMobile(systemAuthAdminParam.getPhone()); user.setMobile(systemAuthAdminParam.getPhone());
user.setGoodSkill(systemAuthAdminParam.getGoodSkill());
userMapper.insert(user); userMapper.insert(user);
systemAuthAdmin.setUserId(user.getId().longValue()); systemAuthAdmin.setUserId(user.getId().longValue());
}else if(!systemAuthAdminParam.getPhone().equals(systemAuthAdmin.getPhone())){ }else if(!systemAuthAdminParam.getPhone().equals(systemAuthAdmin.getPhone())){
@ -491,11 +495,13 @@ public class SystemAuthAdminServiceImpl implements ISystemAuthAdminService {
User user = userMapper.selectById(systemAuthAdmin.getUserId()); User user = userMapper.selectById(systemAuthAdmin.getUserId());
user.setPassword(pwd);// 用户密码 user.setPassword(pwd);// 用户密码
user.setSalt(salt);// 加密盐巴 user.setSalt(salt);// 加密盐巴
user.setGoodSkill(systemAuthAdminParam.getGoodSkill());
userMapper.updateById(user); userMapper.updateById(user);
} }
systemAuthAdmin.setUpdateTime(System.currentTimeMillis() / 1000); systemAuthAdmin.setUpdateTime(System.currentTimeMillis() / 1000);
systemAuthAdmin.setGoodSkill(systemAuthAdminParam.getGoodSkill());
systemAuthAdminMapper.updateById(systemAuthAdmin); systemAuthAdminMapper.updateById(systemAuthAdmin);
this.cacheAdminUserByUid(systemAuthAdminParam.getId()); this.cacheAdminUserByUid(systemAuthAdminParam.getId());
@ -536,6 +542,7 @@ public class SystemAuthAdminServiceImpl implements ISystemAuthAdminService {
model.setAvatar(avatar); model.setAvatar(avatar);
model.setNickname(systemAuthAdminParam.getNickname()); model.setNickname(systemAuthAdminParam.getNickname());
model.setUpdateTime(System.currentTimeMillis() / 1000); model.setUpdateTime(System.currentTimeMillis() / 1000);
model.setGoodSkill(systemAuthAdminParam.getGoodSkill());
if (systemAuthAdminParam.getPassword() != null && !systemAuthAdminParam.getPassword().equals("")) { if (systemAuthAdminParam.getPassword() != null && !systemAuthAdminParam.getPassword().equals("")) {
String currPassword = ToolsUtil.makeMd5(systemAuthAdminParam.getCurrPassword() + model.getSalt()); String currPassword = ToolsUtil.makeMd5(systemAuthAdminParam.getCurrPassword() + model.getSalt());

View File

@ -166,22 +166,24 @@ public class WarehouseServiceImpl implements IWarehouseService {
.in("id", ids)); .in("id", ids));
for (Long id : ids) { for (Long id : ids) {
//仓库存在配件且配件数量不为0时不允许删除 //仓库存在配件且配件数量不为0时不允许删除
SparePart sparePart = sparePartMapper.selectOne( List<SparePart> sparePartList = sparePartMapper.selectList(
new QueryWrapper<SparePart>() new QueryWrapper<SparePart>()
.eq("warehouse_id", id) .eq("warehouse_id", id)
.eq("is_delete", 0));
for (SparePart sparePart : sparePartList) {
if(sparePart.getQuantity() != 0){
throw new OperateException("仓库存在配件且配件数量不为0时不允许删除!");
}
}
Warehouse pModel = warehouseMapper.selectOne(
new QueryWrapper<Warehouse>()
.select("id,pid,warehouse_name")
.eq("pid", id)
.eq("is_delete", 0) .eq("is_delete", 0)
.last("limit 1")); .last("limit 1"));
if(sparePart != null && sparePart.getQuantity() != 0){ Assert.isNull(pModel, "请先删除子级仓库");
}else{
Warehouse pModel = warehouseMapper.selectOne(
new QueryWrapper<Warehouse>()
.select("id,pid,warehouse_name")
.eq("pid", id)
.eq("is_delete", 0)
.last("limit 1"));
Assert.isNull(pModel, "请先删除子级仓库");
}
} }

View File

@ -27,8 +27,6 @@ public class ClientParam implements Serializable {
private Long userId; private Long userId;
@NotNull(message = "clientNo参数缺失", groups = {create.class, update.class})
@DecimalMin(value = "0", message = "clientNo参数值不能少于0", groups = {create.class, update.class})
private String clientNo; private String clientNo;
@NotNull(message = "clientName参数缺失", groups = {create.class, update.class}) @NotNull(message = "clientName参数缺失", groups = {create.class, update.class})

View File

@ -84,4 +84,10 @@ public class RepairOrderAuditParam implements Serializable {
private String orderNo; // 订单编号 private String orderNo; // 订单编号
private String moduleCode; // 模块代码 private String moduleCode; // 模块代码
private String clientName; // 客户名称 private String clientName; // 客户名称
private Integer qualityTestingResult; // 质检结果0=通过1=不通过)
private Long qualityTestingId; // 质检人
private Date qualityTestingTime; // 质检时间
private String qualityTestingOpinion; // 质检意见
private String qualityTestingImg; // 质检图片
} }

View File

@ -79,5 +79,5 @@ public class SystemAuthAdminParam implements Serializable {
private Integer receiveOrderStatus; //接单状态0=休假/停止接单中 1=作业中 2=可接单) private Integer receiveOrderStatus; //接单状态0=休假/停止接单中 1=作业中 2=可接单)
private Integer isApprentice; // 是否学徒 0=否1=是 private Integer isApprentice; // 是否学徒 0=否1=是
private String likeWork; // 模糊查询(姓名/联系电话) private String likeWork; // 模糊查询(姓名/联系电话)
private String goodSkill; //擅长技能
} }

View File

@ -39,8 +39,8 @@ public class BeyondRepairOrder {
@ApiModelProperty(value = "退仓原因") @ApiModelProperty(value = "退仓原因")
private String reasonForWithdrawal; private String reasonForWithdrawal;
@ApiModelProperty(value = "更换明细") // @ApiModelProperty(value = "更换明细")
private String replacementDetail; // private String replacementDetail;
@ApiModelProperty(value = "制单人") @ApiModelProperty(value = "制单人")
private String creator; private String creator;

View File

@ -0,0 +1,89 @@
package com.hcy.admin.vo.excel.order;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.hcy.common.utils.excel.DownloadUrlConverter;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.net.URL;
import java.util.List;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ContentRowHeight(100)
public class ClientCollarExcel {
@ApiModelProperty(value = "序号")
private Integer index;
@ApiModelProperty(value = "工单编号")
private String orderNo;
@ApiModelProperty(value = "客户名称")
private String clientName;
@ApiModelProperty(value = "型号/规格")
private String specificationsModel;
@ApiModelProperty(value = "模块代码")
private String modelCode;
@ApiModelProperty(value = "功率")
private String power;
@ApiModelProperty(value = "维修人员")
private String maintenanceMan;
@ApiModelProperty(value = "拆机")
@ExcelProperty(value = "拆机", converter = DownloadUrlConverter.class)
private List<URL> dismantle;
@ApiModelProperty(value = "除尘")
@ExcelProperty(value = "除尘", converter = DownloadUrlConverter.class)
private List<URL> dedusting;
@ApiModelProperty(value = "排查结果")
private String scrapOrNot;
@ApiModelProperty(value = "维修前图片")
@ExcelProperty(value = "维修前图片", converter = DownloadUrlConverter.class)
private List<URL> repairFront;
@ApiModelProperty(value = "维修中图片")
@ExcelProperty(value = "维修中图片", converter = DownloadUrlConverter.class)
private List<URL> repairIng;
@ApiModelProperty(value = "维修后图片")
@ExcelProperty(value = "维修后图片)", converter = DownloadUrlConverter.class)
private List<URL> repairBack;
@ApiModelProperty(value = "功能测试")
@ExcelProperty(value = "功能测试", converter = DownloadUrlConverter.class)
private List<URL> functionalTestImg;
@ApiModelProperty(value = "DC&PFC组装")
@ExcelProperty(value = "DC&PFC组装", converter = DownloadUrlConverter.class)
private List<URL> assembleImg;
@ApiModelProperty(value = "补强三防漆和点胶")
@ExcelProperty(value = "补强三防漆和点胶", converter = DownloadUrlConverter.class)
private List<URL> reinforcingThreeAntiPaintAndDispensing;
@ApiModelProperty(value = "模块装配")
@ExcelProperty(value = "模块装配", converter = DownloadUrlConverter.class)
private List<URL> moduleAssembly;
@ApiModelProperty(value = "老化测试")
@ExcelProperty(value = "老化测试", converter = DownloadUrlConverter.class)
private List<URL> agingTest;
@ApiModelProperty(value = "报废图片")
@ExcelProperty(value = "报废图片", converter = DownloadUrlConverter.class)
private List<URL> scrapPicture;
}

View File

@ -0,0 +1,50 @@
package com.hcy.admin.vo.excel.order;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
/**
*
*/
public class ClientCollerExcel {
@ApiModelProperty(value = "序号")
private Integer index;
@ApiModelProperty(value = "客户名称")
private String clientName;
@ApiModelProperty(value = "单据编号")
private String orderNo;
@ApiModelProperty(value = "型号/规格")
private String specificationsModel;
@ApiModelProperty(value = "模块代码")
private String modelCode;
@ApiModelProperty(value = "功率")
private String power;
@ApiModelProperty(value = "是否返修")
private String isRepair;
@ApiModelProperty(value = "维修人员")
private String maintenanceMan;
@ApiModelProperty(value = "到货日期")
private String arrivalTime;
@ApiModelProperty(value = "质保期限")
private String warrantyPeriod;
@ApiModelProperty(value = "备注")
private String remark;
}

View File

@ -7,6 +7,8 @@ import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.math.BigDecimal;
@Data @Data
@Builder @Builder
@NoArgsConstructor @NoArgsConstructor
@ -46,6 +48,9 @@ public class GetMaterialsOrder {
@ApiModelProperty(value = "领取人员") @ApiModelProperty(value = "领取人员")
private String recipient; private String recipient;
@ApiModelProperty(value = "配件单价")
private String unitPrice;
@ApiModelProperty(value = "制单人") @ApiModelProperty(value = "制单人")
private String creator; private String creator;

View File

@ -18,6 +18,9 @@ public class MachineClaimNote {
@ApiModelProperty(value = "序号") @ApiModelProperty(value = "序号")
private Integer index; private Integer index;
@ApiModelProperty(value = "单据编号")
private String orderNo;
@ApiModelProperty(value = "型号/规格") @ApiModelProperty(value = "型号/规格")
private String specificationsModel; private String specificationsModel;
@ -30,11 +33,19 @@ public class MachineClaimNote {
@ApiModelProperty(value = "是否返修") @ApiModelProperty(value = "是否返修")
private String isRepair; private String isRepair;
@ApiModelProperty(value = "维修结论")
private String result;
@ApiModelProperty(value = "维修人员") @ApiModelProperty(value = "维修人员")
private String maintenanceMan; private String maintenanceMan;
@ApiModelProperty(value = "快递到达日期")
private String deliveryDate;
@ApiModelProperty(value = "维修周期")
private String maintenanceCycle;
@ApiModelProperty(value = "质保期限")
private String warrantyPeriod;
@ApiModelProperty(value = "备注")
private String remark;
} }

View File

@ -59,9 +59,12 @@ public class ScrapForm {
@ApiModelProperty(value = "运维建议") @ApiModelProperty(value = "运维建议")
private String operationsSuggest; private String operationsSuggest;
@ApiModelProperty(value = "制单及经手人") @ApiModelProperty(value = "审核人")
private String creator; private String creator;
@ApiModelProperty(value = "确认人") // 质检人
private String qualityTestingName;
@ApiModelProperty(value = "制单日期") @ApiModelProperty(value = "制单日期")
private String deliveryTime; private String deliveryTime;
} }

View File

@ -0,0 +1,57 @@
package com.hcy.admin.vo.excel.order;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
/**
* WIP
*/
public class WarehouseWarrantWIPExcel {
@ApiModelProperty(value = "序号")
private Integer index;
@ApiModelProperty(value = "客户名称")
private String clientName;
@ApiModelProperty(value = "单据编号")
private String orderNo;
@ApiModelProperty(value = "快递到达日期")
private String deliveryDate;
@ApiModelProperty(value = "入库日期")
private String warehousingDate;
@ApiModelProperty(value = "型号/规格")
private String specificationsModel;
@ApiModelProperty(value = "模块代码")
private String modelCode;
@ApiModelProperty(value = "功率")
private String power;
@ApiModelProperty(value = "是否返修")
private String isRepair;
// @ApiModelProperty(value = "维修人员")
// private String maintenanceMan;
@ApiModelProperty(value = "维修周期")
private String maintenanceCycle;
@ApiModelProperty(value = "质保期限")
private String warrantyPeriod;
@ApiModelProperty(value = "备注")
private String remark;
}

View File

@ -46,4 +46,5 @@ public class UserLargeDataVo implements Serializable {
private String province; //省 private String province; //省
private String city; //市 private String city; //市
private String district; //区 private String district; //区
private String goodSkill; //擅长技能
} }

View File

@ -23,7 +23,7 @@ public class OrderSparePartListVo implements Serializable {
private Long warehouseId; // 所属仓库id private Long warehouseId; // 所属仓库id
private String specificationsModel; // 规格型号 private String specificationsModel; // 规格型号
private String unit; // 单位 private String unit; // 单位
private BigDecimal unitPrice; // 价格 private String unitPrice; // 价格
private Integer quantity; // 库存数量 private Integer quantity; // 库存数量
private Integer count; // 出入库数量 private Integer count; // 出入库数量
private BigDecimal totalPrice; // 总价 private BigDecimal totalPrice; // 总价

View File

@ -23,7 +23,7 @@ public class OrderSparePartUseListVo implements Serializable {
private Long warehouseId; // 仓库id private Long warehouseId; // 仓库id
private String specificationsModel; // 规格型号 private String specificationsModel; // 规格型号
private String unit; // 单位 private String unit; // 单位
private BigDecimal unitPrice; // 价格 private String unitPrice; // 价格
private Integer count; // 出入库数量 private Integer count; // 出入库数量
private Integer quantity; // 库存数量 private Integer quantity; // 库存数量
private Integer useNumber; // 使用数量 private Integer useNumber; // 使用数量

View File

@ -23,7 +23,7 @@ public class OrderSparePartUseVo implements Serializable {
private Long warehouseId; // 仓库id private Long warehouseId; // 仓库id
private String specificationsModel; // 规格型号 private String specificationsModel; // 规格型号
private String unit; // 单位 private String unit; // 单位
private BigDecimal unitPrice; // 价格 private String unitPrice; // 价格
private Integer count; // 出入库数量 private Integer count; // 出入库数量
private Integer quantity; // 库存数量 private Integer quantity; // 库存数量
private Integer useNumber; // 使用数量 private Integer useNumber; // 使用数量

View File

@ -71,5 +71,19 @@ public class RepairOrderAuditDetailVo implements Serializable {
private String withdrawalImg; // 退仓图片 private String withdrawalImg; // 退仓图片
private String recollarFittingRemark; // 重领配件备注
private Integer qualityTestingResult; // 质检结果0=通过1=不通过)
private Long qualityTestingId; // 质检人
private Date qualityTestingTime; // 质检时间
private String qualityTestingOpinion; // 质检意见
private String qualityTestingImg; // 质检图片
private String whatWasRepairedOne; // 维修了什么1
private String whatWasRepairedTwo; // 维修了什么2
private String whatWasRepairedThree; // 维修了什么3
private String questionOne; // 问题1
private String questionTwo; // 问题2
private String questionThree; // 问题3
private String reasonOfCancellation; // 取消原因
} }

View File

@ -61,4 +61,17 @@ public class RepairOrderAuditListVo implements Serializable {
private String withdrawalImg; // 退仓申请图片 private String withdrawalImg; // 退仓申请图片
private List<OrderSparePartUseVo> partsUseList; // 配件使用清单 private List<OrderSparePartUseVo> partsUseList; // 配件使用清单
private String cancellationRequestImg; // 退仓申请图片 private String cancellationRequestImg; // 退仓申请图片
private Integer qualityTestingResult; // 质检结果0=通过1=不通过)
private Long qualityTestingId; // 质检人
private Date qualityTestingTime; // 质检时间
private String qualityTestingOpinion; // 质检意见
private String qualityTestingImg; // 质检图片
private String whatWasRepairedOne; // 维修了什么1
private String whatWasRepairedTwo; // 维修了什么2
private String whatWasRepairedThree; // 维修了什么3
private String questionOne; // 问题1
private String questionTwo; // 问题2
private String questionThree; // 问题3
} }

View File

@ -176,4 +176,6 @@ public class RepairOrderDetailVo implements Serializable {
private RepairOrderAuditListVo cancellationRequestListVo; // 退仓申请信息 private RepairOrderAuditListVo cancellationRequestListVo; // 退仓申请信息
private RepairOrderAuditDetailVo scrapDate;//报废审核信息 private RepairOrderAuditDetailVo scrapDate;//报废审核信息
private Integer receiveOrNot; // 是否已领用0=是1=否)
} }

View File

@ -107,4 +107,16 @@ public class RepairOrderListVo implements Serializable {
private Integer repairNextStep; // 下个步骤0=拆机1=清洗2=故障排查3=确认签名4=重领配件5=上传维修前图片6=上传维修中图片7=上传维修后图片8=补强三防漆9=补强点胶10=DC&PFC组装11=补强三防漆和点胶12=模块装配13=功能测试14=老化测试15=包装出货16=填写回单) private Integer repairNextStep; // 下个步骤0=拆机1=清洗2=故障排查3=确认签名4=重领配件5=上传维修前图片6=上传维修中图片7=上传维修后图片8=补强三防漆9=补强点胶10=DC&PFC组装11=补强三防漆和点胶12=模块装配13=功能测试14=老化测试15=包装出货16=填写回单)
private List<OrderPartCode> orderPartCodeList; // 配件编码列表 private List<OrderPartCode> orderPartCodeList; // 配件编码列表
private Integer timeoutOrNot; // 是否超时0=是1=否) private Integer timeoutOrNot; // 是否超时0=是1=否)
private Long faultPhenomenonId; // 故障现象id
private Long faultCauseId; // 故障原因id
private Long sourceOfDamageId; // 损坏原因id
private Long operationsSuggestId; // 运维建议id
private Integer type; // 扫码核对0=入库1=返修)
private String returnReason; // 返修原因
private Integer returning; //是否在退仓中0=是1=否)
private Integer feedingOrNot; //是否在补料中0=是1=否)
private Integer receiveOrNot; // 是否已领用0=是1=否)
} }

View File

@ -33,4 +33,6 @@ public class RepairOrderShippingListVo implements Serializable {
private Integer index; // 序号 private Integer index; // 序号
private List<RepairOrderListVo> repairOrderList; //发货清单 private List<RepairOrderListVo> repairOrderList; //发货清单
} }

View File

@ -20,4 +20,5 @@ public class RepairOrderStepDataVo implements Serializable {
private Date createTime; // 创建时间 private Date createTime; // 创建时间
private String creatorName; // 创建人名称 private String creatorName; // 创建人名称
private Integer isApprentice; //是否学徒0=否 1=是 private Integer isApprentice; //是否学徒0=否 1=是
private Integer scrapOrNot; // 是否报废0=是1=否)
} }

View File

@ -43,5 +43,5 @@ public class SystemAuthAdminVo implements Serializable {
private Integer technicalGrade; // 技术等级0=初级1=中级2=高级) private Integer technicalGrade; // 技术等级0=初级1=中级2=高级)
private Integer receiveOrderStatus; //接单状态0=休假/停止接单中 1=作业中 2=可接单) private Integer receiveOrderStatus; //接单状态0=休假/停止接单中 1=作业中 2=可接单)
private Integer isApprentice; // 是否学徒 0=否1=是 private Integer isApprentice; // 是否学徒 0=否1=是
private String goodSkill; //擅长技能
} }

View File

@ -40,5 +40,6 @@ public class SystemAuthAdminDto implements Serializable {
private Integer technicalGrade; // 技术等级0=初级1=中级2=高级) private Integer technicalGrade; // 技术等级0=初级1=中级2=高级)
private Integer isApprentice; // 是否学徒 0=否1=是 private Integer isApprentice; // 是否学徒 0=否1=是
private String likeWork; // 模糊查询(姓名/联系电话) private String likeWork; // 模糊查询(姓名/联系电话)
private String goodSkill; //擅长技能
} }

View File

@ -45,5 +45,15 @@ public class RepairOrderAuditDto implements Serializable {
private Date createTime; // 创建时间 private Date createTime; // 创建时间
private Date updateTime; // 更新时间 private Date updateTime; // 更新时间
private Date deleteTime; // 删除时间 private Date deleteTime; // 删除时间
private Integer qualityTestingResult; // 质检结果0=通过1=不通过)
private Long qualityTestingId; // 质检人
private Date qualityTestingTime; // 质检时间
private String qualityTestingOpinion; // 质检意见
private String qualityTestingImg; // 质检图片
private String whatWasRepairedOne; // 维修了什么1
private String whatWasRepairedTwo; // 维修了什么2
private String whatWasRepairedThree; // 维修了什么3
private String questionOne; // 问题1
private String questionTwo; // 问题2
private String questionThree; // 问题3
} }

View File

@ -113,4 +113,6 @@ public class RepairOrderDto implements Serializable {
private String endTime; //结束时间 private String endTime; //结束时间
private String maintenanceMan; //维修人员 private String maintenanceMan; //维修人员
private Integer feedingOrNot; //是否在补料中0=是1=否) private Integer feedingOrNot; //是否在补料中0=是1=否)
private Integer receiveOrNot; // 是否已领用0=是1=否)
} }

View File

@ -46,4 +46,5 @@ public class UserLargeDataDto implements Serializable {
private String province; //省 private String province; //省
private String city; //市 private String city; //市
private String district; //区 private String district; //区
private String goodSkill; //擅长技能
} }

View File

@ -18,5 +18,6 @@ public class OrderPartCode implements Serializable {
private Long id; // 配件编码id private Long id; // 配件编码id
private Long repairOrderId; // 维修单id private Long repairOrderId; // 维修单id
private String partCode; // 配件编码 private String partCode; // 配件编码
private String partName; // 配件名称
private Integer isDelete; // 是否删除 0-未删除 1-删除
} }

View File

@ -18,6 +18,7 @@ public class OrderSparePartUse implements Serializable {
@TableId(value="id", type= IdType.AUTO) @TableId(value="id", type= IdType.AUTO)
private Long id; // 主键id private Long id; // 主键id
private Long repairOrderId; // 维修订单id private Long repairOrderId; // 维修订单id
private Long repairOrderAuditId; // 维修模块审核id
private Integer reviewRequest; // 审核申请0-退仓申请、1-领料申请、2-良品入库、3-报废申请) private Integer reviewRequest; // 审核申请0-退仓申请、1-领料申请、2-良品入库、3-报废申请)
private Long sparePartsId; // 备件id private Long sparePartsId; // 备件id
private String sparePartsCode; // 备件编码 private String sparePartsCode; // 备件编码

View File

@ -102,5 +102,5 @@ public class RepairOrder implements Serializable {
private String returnReason; // 返修原因 private String returnReason; // 返修原因
private Integer returning; //是否在退仓中0=是1=否) private Integer returning; //是否在退仓中0=是1=否)
private Integer feedingOrNot; //是否在补料中0=是1=否) private Integer feedingOrNot; //是否在补料中0=是1=否)
private Integer receiveOrNot; // 是否已领用0=是1=否)
} }

View File

@ -43,4 +43,15 @@ public class RepairOrderAudit implements Serializable {
private Date updateTime; // 更新时间 private Date updateTime; // 更新时间
private Date deleteTime; // 删除时间 private Date deleteTime; // 删除时间
private Integer qualityTestingResult; // 质检结果0=通过1=不通过)
private Long qualityTestingId; // 质检人
private Date qualityTestingTime; // 质检时间
private String qualityTestingOpinion; // 质检意见
private String qualityTestingImg; // 质检图片
private String whatWasRepairedOne; // 维修了什么1
private String whatWasRepairedTwo; // 维修了什么2
private String whatWasRepairedThree; // 维修了什么3
private String questionOne; // 问题1
private String questionTwo; // 问题2
private String questionThree; // 问题3
} }

View File

@ -2,6 +2,7 @@ package com.hcy.common.entity.order;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.models.auth.In;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
@ -33,11 +34,13 @@ public class RepairOrderStepData implements Serializable {
private Long creatorId; // 创建人id private Long creatorId; // 创建人id
private Date createTime; // 创建时间 private Date createTime; // 创建时间
private Integer isDelete; // 是否删除: [0=否, 1=是] private Integer isDelete; // 是否删除: [0=否, 1=是]
private Integer scrapOrNot; // 是否报废0=是1=否)
public RepairOrderStepData() { public RepairOrderStepData() {
} }
public RepairOrderStepData(Long repairOrderId, Integer repairStep, String remark, String img, String title, Long creatorId) { public RepairOrderStepData(Long repairOrderId, Integer repairStep, String remark, String img, String title,
Long creatorId) {
this.repairOrderId = repairOrderId; this.repairOrderId = repairOrderId;
this.repairStep = repairStep; this.repairStep = repairStep;
this.remark = remark; this.remark = remark;
@ -46,17 +49,19 @@ public class RepairOrderStepData implements Serializable {
this.creatorId = creatorId; this.creatorId = creatorId;
} }
public RepairOrderStepData(Long repairOrderId, Integer repairStep, String remark, String img, String title, Integer dscType, Integer auditStatus, Long creatorId) { public RepairOrderStepData(Long repairOrderId, Integer repairStep, String remark, String img, String title,
Long creatorId, Long repairOrderAuditId) {
this.repairOrderId = repairOrderId; this.repairOrderId = repairOrderId;
this.repairStep = repairStep; this.repairStep = repairStep;
this.remark = remark; this.remark = remark;
this.img = img; this.img = img;
this.title = title; this.title = title;
this.dscType = dscType;
this.auditStatus = auditStatus;
this.creatorId = creatorId; this.creatorId = creatorId;
this.repairOrderAuditId = repairOrderAuditId;
} }
public RepairOrderStepData(Long repairOrderId, Integer repairStep, String remark, String img, String title, Integer dscType, Integer auditStatus, Long creatorId, Long repairOrderAuditId) {
public RepairOrderStepData(Long repairOrderId, Integer repairStep, String remark, String img, String title,
Integer dscType, Integer auditStatus, Long creatorId, Long repairOrderAuditId) {
this.repairOrderId = repairOrderId; this.repairOrderId = repairOrderId;
this.repairStep = repairStep; this.repairStep = repairStep;
this.remark = remark; this.remark = remark;
@ -67,7 +72,48 @@ public class RepairOrderStepData implements Serializable {
this.creatorId = creatorId; this.creatorId = creatorId;
this.repairOrderAuditId = repairOrderAuditId; this.repairOrderAuditId = repairOrderAuditId;
} }
public RepairOrderStepData(Long repairOrderId, Integer repairStep, String remark, String img, String title, Integer auditStatus, Long creatorId) {
public RepairOrderStepData(Long repairOrderId, Integer repairStep, String remark, String img, String title,
Integer dscType, Integer auditStatus, Long creatorId, Integer scrapOrNot) {
this.repairOrderId = repairOrderId;
this.repairStep = repairStep;
this.remark = remark;
this.img = img;
this.title = title;
this.dscType = dscType;
this.auditStatus = auditStatus;
this.creatorId = creatorId;
this.scrapOrNot = scrapOrNot;
}
public RepairOrderStepData(Long repairOrderId, Integer repairStep, String remark, String img, String title, Integer dscType,
Integer auditStatus, Long creatorId, Long repairOrderAuditId, Integer scrapOrNot) {
this.repairOrderId = repairOrderId;
this.repairStep = repairStep;
this.remark = remark;
this.img = img;
this.title = title;
this.dscType = dscType;
this.auditStatus = auditStatus;
this.creatorId = creatorId;
this.repairOrderAuditId = repairOrderAuditId;
this.scrapOrNot = scrapOrNot;
}
public RepairOrderStepData(Long repairOrderId, Integer repairStep, String remark, String img, String title, Integer auditStatus,
Long creatorId,Integer scrapOrNot) {
this.repairOrderId = repairOrderId;
this.repairStep = repairStep;
this.remark = remark;
this.img = img;
this.title = title;
this.auditStatus = auditStatus;
this.creatorId = creatorId;
this.scrapOrNot = scrapOrNot;
}
public RepairOrderStepData(Long repairOrderId, Integer repairStep, String remark, String img, String title, Integer auditStatus,
Long creatorId) {
this.repairOrderId = repairOrderId; this.repairOrderId = repairOrderId;
this.repairStep = repairStep; this.repairStep = repairStep;
this.remark = remark; this.remark = remark;
@ -77,7 +123,8 @@ public class RepairOrderStepData implements Serializable {
this.creatorId = creatorId; this.creatorId = creatorId;
} }
public RepairOrderStepData(Long id , Long repairOrderId, Integer repairStep, String remark, String img, String title, Long creatorId, Date createTime) { public RepairOrderStepData(Long id , Long repairOrderId, Integer repairStep, String remark, String img, String title,
Long creatorId, Date createTime) {
this.id = id; this.id = id;
this.repairOrderId = repairOrderId; this.repairOrderId = repairOrderId;
this.repairStep = repairStep; this.repairStep = repairStep;
@ -88,7 +135,21 @@ public class RepairOrderStepData implements Serializable {
this.createTime = createTime; this.createTime = createTime;
} }
public RepairOrderStepData(Long id ,Long repairOrderId, Integer repairStep, String remark, String img, String title, Integer dscType, Integer auditStatus, Long creatorId, Date createTime) { public RepairOrderStepData(Long id , Long repairOrderId, Integer repairStep, String remark, String img, String title,
Long creatorId, Date createTime, Long repairOrderAuditId) {
this.id = id;
this.repairOrderId = repairOrderId;
this.repairStep = repairStep;
this.remark = remark;
this.img = img;
this.title = title;
this.creatorId = creatorId;
this.createTime = createTime;
this.repairOrderAuditId = repairOrderAuditId;
}
public RepairOrderStepData(Long id ,Long repairOrderId, Integer repairStep, String remark, String img, String title,
Integer dscType, Integer auditStatus, Long creatorId, Date createTime, Integer scrapOrNot) {
this.id = id; this.id = id;
this.repairOrderId = repairOrderId; this.repairOrderId = repairOrderId;
this.repairStep = repairStep; this.repairStep = repairStep;
@ -99,9 +160,12 @@ public class RepairOrderStepData implements Serializable {
this.auditStatus = auditStatus; this.auditStatus = auditStatus;
this.creatorId = creatorId; this.creatorId = creatorId;
this.createTime = createTime; this.createTime = createTime;
this.scrapOrNot = scrapOrNot;
} }
public RepairOrderStepData(Long id ,Long repairOrderId, Integer repairStep, String remark, String img, String title, Integer dscType, Integer auditStatus, Long creatorId, Date createTime, Long repairOrderAuditId) {
public RepairOrderStepData(Long id ,Long repairOrderId, Integer repairStep, String remark, String img, String title, Integer dscType,
Integer auditStatus, Long creatorId, Date createTime, Long repairOrderAuditId, Integer scrapOrNot) {
this.id = id; this.id = id;
this.repairOrderId = repairOrderId; this.repairOrderId = repairOrderId;
this.repairStep = repairStep; this.repairStep = repairStep;
@ -113,9 +177,11 @@ public class RepairOrderStepData implements Serializable {
this.creatorId = creatorId; this.creatorId = creatorId;
this.createTime = createTime; this.createTime = createTime;
this.repairOrderAuditId = repairOrderAuditId; this.repairOrderAuditId = repairOrderAuditId;
this.scrapOrNot = scrapOrNot;
} }
public RepairOrderStepData(Long id ,Long repairOrderId, Integer repairStep, String remark, String img, String title, Integer auditStatus, Long creatorId, Date createTime) { public RepairOrderStepData(Long id ,Long repairOrderId, Integer repairStep, String remark, String img,
String title, Integer auditStatus, Long creatorId, Date createTime) {
this.id = id; this.id = id;
this.repairOrderId = repairOrderId; this.repairOrderId = repairOrderId;
this.repairStep = repairStep; this.repairStep = repairStep;
@ -126,4 +192,32 @@ public class RepairOrderStepData implements Serializable {
this.creatorId = creatorId; this.creatorId = creatorId;
this.createTime = createTime; this.createTime = createTime;
} }
public RepairOrderStepData(Long id ,Long repairOrderId, Integer repairStep, String remark, String img,
String title, Integer auditStatus, Long creatorId, Date createTime,Long repairOrderAuditId) {
this.id = id;
this.repairOrderId = repairOrderId;
this.repairStep = repairStep;
this.remark = remark;
this.img = img;
this.title = title;
this.auditStatus = auditStatus;
this.creatorId = creatorId;
this.createTime = createTime;
this.repairOrderAuditId = repairOrderAuditId;
}
public RepairOrderStepData(Long id , Long repairOrderId, Integer repairStep, String remark, String img, String title,
Integer auditStatus, Long creatorId, Date createTime, Integer scrapOrNot) {
this.id = id;
this.repairOrderId = repairOrderId;
this.repairStep = repairStep;
this.remark = remark;
this.img = img;
this.title = title;
this.auditStatus = auditStatus;
this.creatorId = creatorId;
this.createTime = createTime;
this.scrapOrNot = scrapOrNot;
}
} }

View File

@ -48,4 +48,5 @@ public class SystemAuthAdmin implements Serializable {
@TableField(updateStrategy = FieldStrategy.IGNORED) @TableField(updateStrategy = FieldStrategy.IGNORED)
private Long userId; //用户id private Long userId; //用户id
private Integer isApprentice; // 是否学徒 0=否1=是 private Integer isApprentice; // 是否学徒 0=否1=是
private String goodSkill; //擅长技能
} }

View File

@ -45,4 +45,5 @@ public class User implements Serializable {
private String longitude; // 经度 private String longitude; // 经度
private String latitude; // 纬度 private String latitude; // 纬度
private Long warehouseId; // 仓库id private Long warehouseId; // 仓库id
private String goodSkill; //擅长技能
} }

View File

@ -9,7 +9,7 @@ import java.util.Map;
* @author dabin * @author dabin
*/ */
public enum RepairOrderAuditStatusEnum { public enum RepairOrderAuditStatusEnum {
// 审核状态0=待审核、1=待入库、2=审核未通过、3=已完成4=待领取、5=待确认、6=已取消 // 审核状态0=待审核、1=待入库、2=审核未通过、3=已完成4=待领取、5=待确认、6=已取消、7=待质检、8=质检不通过
TO_BE_REVIEWED(0,"待审核"), TO_BE_REVIEWED(0,"待审核"),
STOCK_PENDING(1,"待入库"), STOCK_PENDING(1,"待入库"),
FAIL_THE_AUDIT(2,"审核未通过"), FAIL_THE_AUDIT(2,"审核未通过"),
@ -17,6 +17,9 @@ public enum RepairOrderAuditStatusEnum {
UNCLAIMED(4,"待领取"), UNCLAIMED(4,"待领取"),
TO_BE_CONFIRMED(5,"待确认"), TO_BE_CONFIRMED(5,"待确认"),
CANCELED(6,"已取消"), CANCELED(6,"已取消"),
WAIT_FOR_QUALITY_INSPECTION(7, "待质检"),
FAILURE_OF_QUALITY_INSPECTION(8, "质检不通过"),
//审核事项0-退仓申请、1-领料申请、2-良品入库、3-报废申请、4-填写维修信息) //审核事项0-退仓申请、1-领料申请、2-良品入库、3-报废申请、4-填写维修信息)
CANCELLATION_REQUEST(0,"退仓申请"), CANCELLATION_REQUEST(0,"退仓申请"),

View File

@ -53,6 +53,10 @@ public enum RepairOrderStatusEnum {
APPLICATION_FOR_SCRAP(3,"报废申请"), APPLICATION_FOR_SCRAP(3,"报废申请"),
FILL_IN_MAINTENANCE_INFORMATION(4,"填写维修信息"), FILL_IN_MAINTENANCE_INFORMATION(4,"填写维修信息"),
//扫码核对0=入库1=返修)
STORAGE(0,"入库"),
REPAIR(1,"返修"),
//发货状态0=未发货1=已发货) //发货状态0=未发货1=已发货)
NOT_YET_SHIPPED(0,"未发货"), NOT_YET_SHIPPED(0,"未发货"),
SHIPPED(1,"已发货"); SHIPPED(1,"已发货");

View File

@ -40,7 +40,7 @@ public interface OrderSparePartMapper extends IBaseMapper<OrderSparePart> {
"WHERE\n" + "WHERE\n" +
"\troa.repair_order_id = #{moduleId} \n" + "\troa.repair_order_id = #{moduleId} \n" +
"\tAND roa.review_request = 1\n" + "\tAND roa.review_request = 1\n" +
"\tAND roa.audit_status = 3") "\tAND roa.audit_status = 3 and osp.is_delete = 0")
List<OrderSparePartDto> findOrderSparePartByModuleId(@Param("moduleId") Long moduleId); List<OrderSparePartDto> findOrderSparePartByModuleId(@Param("moduleId") Long moduleId);
/** /**
@ -48,7 +48,7 @@ public interface OrderSparePartMapper extends IBaseMapper<OrderSparePart> {
* @param repairOrderId id * @param repairOrderId id
* @return * @return
*/ */
@Select("SELECT * FROM la_order_spare_part WHERE repair_order_id = #{repairOrderId} and repair_order_audit_id = #{repairOrderAuditId}") @Select("SELECT * FROM la_order_spare_part WHERE is_delete = 0 and repair_order_id = #{repairOrderId} and repair_order_audit_id = #{repairOrderAuditId}")
List<OrderSparePart> findOrderSparePartByRepairOrderIdAndRepairOrderAuditId(@Param("repairOrderId") Long repairOrderId, List<OrderSparePart> findOrderSparePartByRepairOrderIdAndRepairOrderAuditId(@Param("repairOrderId") Long repairOrderId,
@Param("repairOrderAuditId") Long repairOrderAuditId); @Param("repairOrderAuditId") Long repairOrderAuditId);
} }

View File

@ -25,9 +25,9 @@ public interface RepairOrderAuditMapper extends IBaseMapper<RepairOrderAudit> {
*/ */
IPage<RepairOrderAuditDto> auditMattersList(@Param("page") Page page, @Param("param")RepairOrderAuditDto repairOrderAuditDto); IPage<RepairOrderAuditDto> auditMattersList(@Param("page") Page page, @Param("param")RepairOrderAuditDto repairOrderAuditDto);
@Select("select * from la_repair_order_audit where repair_order_id = #{repairOrderId} and review_request = #{reviewRequest}") @Select("select * from la_repair_order_audit where audit_status = 3 and repair_order_id = #{repairOrderId} and review_request = #{reviewRequest} ORDER BY create_time desc LIMIT 1")
RepairOrderAudit findRepairOrderAuditByRepairOrderIdAndReviewRequest(@Param("repairOrderId") Long repairOrderId,@Param("reviewRequest") Long reviewRequest); RepairOrderAudit findRepairOrderAuditByRepairOrderIdAndReviewRequest(@Param("repairOrderId") Long repairOrderId,@Param("reviewRequest") Long reviewRequest);
@Select("select * from la_repair_order_audit where repair_order_id = #{repairOrderId} and (review_request = #{reviewRequestOne} or review_request = #{reviewRequestTwo})") @Select("select * from la_repair_order_audit where repair_order_id = #{repairOrderId} and (review_request = #{reviewRequestOne} or review_request = #{reviewRequestTwo}) ORDER BY create_time desc LIMIT 1")
RepairOrderAudit findRepairOrderAuditByRepairOrderIdAndTwoReviewRequest(@Param("repairOrderId") Long repairOrderId,@Param("reviewRequestOne") Long reviewRequestOne, RepairOrderAudit findRepairOrderAuditByRepairOrderIdAndTwoReviewRequest(@Param("repairOrderId") Long repairOrderId,@Param("reviewRequestOne") Long reviewRequestOne,
@Param("reviewRequestTwo") Long reviewRequestTwo); @Param("reviewRequestTwo") Long reviewRequestTwo);
@Select("select * from la_repair_order_audit where repair_order_id = #{repairOrderId} and (review_request = #{reviewRequestOne} or review_request = #{reviewRequestTwo} or review_request = #{reviewRequestThree})") @Select("select * from la_repair_order_audit where repair_order_id = #{repairOrderId} and (review_request = #{reviewRequestOne} or review_request = #{reviewRequestTwo} or review_request = #{reviewRequestThree})")

View File

@ -83,6 +83,13 @@ public interface RepairOrderMapper extends IBaseMapper<RepairOrder> {
*/ */
Page<RepairOrderDto> repairModulePageList(@Param("page") Page page, @Param("form") RepairOrderDto form); Page<RepairOrderDto> repairModulePageList(@Param("page") Page page, @Param("form") RepairOrderDto form);
/**
*
* @param form
* @return
*/
List<RepairOrderDto> repairModuleList(@Param("form") RepairOrderDto form);
/** /**
* *
* @param page * @param page

View File

@ -239,6 +239,39 @@
order by ro.update_time desc order by ro.update_time desc
</select> </select>
<select id="repairModuleList" resultType="com.hcy.common.dto.order.RepairOrderDto">
SELECT
ro.*,
saa.username AS receiverName,
c.client_name AS clientName,
c.short_name,
pro.order_no
FROM
la_repair_order AS ro
LEFT JOIN la_client AS c ON ro.client_id = c.id
LEFT JOIN la_system_auth_admin AS saa ON ro.receiver_id = saa.id
LEFT JOIN la_parent_repair_order as pro on ro.parent_repair_order_id = pro.id
where
ro.is_delete = 0
<if test="form.receiverId != null">
and ro.receiver_id = #{form.receiverId}
</if>
<if test="form.clientId != null">
and ro.client_id = #{form.clientId}
</if>
<if test="form.creatorId != null">
and ro.creator_id = #{form.creatorId}
</if>
<if test="form.likeWork != null and form.likeWork != ''">
and (pro.order_no like concat('%', #{form.likeWork}, '%')
or ro.module_code LIKE concat('%', #{form.likeWork}, '%')
or c.client_name like concat('%', #{form.likeWork}, '%'))
</if>
<if test="form.orderStatus != null">
and find_in_set(ro.order_status,#{form.orderStatus})
</if>
</select>
<select id="auditMattersList" resultType="com.hcy.common.dto.order.RepairOrderDto"> <select id="auditMattersList" resultType="com.hcy.common.dto.order.RepairOrderDto">
SELECT SELECT
ro.*, ro.*,

View File

@ -10,6 +10,7 @@ import com.hcy.front.validate.PageParam;
import com.hcy.front.validate.order.MaintenanceOrderParam; import com.hcy.front.validate.order.MaintenanceOrderParam;
import com.hcy.front.validate.order.RepairOrderParam; import com.hcy.front.validate.order.RepairOrderParam;
import com.hcy.front.vo.order.OrderSparePartListVo; import com.hcy.front.vo.order.OrderSparePartListVo;
import com.hcy.front.vo.order.OrderSparePartUseListVo;
import com.hcy.front.vo.order.RepairOrderDetailVo; import com.hcy.front.vo.order.RepairOrderDetailVo;
import com.hcy.front.vo.order.RepairOrderListVo; import com.hcy.front.vo.order.RepairOrderListVo;
import lombok.extern.java.Log; import lombok.extern.java.Log;
@ -296,6 +297,19 @@ public class RepairOrderController {
return AjaxResult.success(list); return AjaxResult.success(list);
} }
/**
* id使
*
* @author hcy
* @param repairOrderParam
* @return Object
*/
@GetMapping("/partsUseList")
public Object partsUseList(RepairOrderParam repairOrderParam) {
List<OrderSparePartUseListVo> list = iRepairOrderService.partsUseList(repairOrderParam);
return AjaxResult.success(list);
}
/** /**
* *
* @param repairOrderParam * @param repairOrderParam

View File

@ -95,7 +95,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
@Override @Override
public UserCenterVo center(Integer userId) { public UserCenterVo center(Integer userId) {
User user = userMapper.selectOne(new QueryWrapper<User>() User user = userMapper.selectOne(new QueryWrapper<User>()
.select("id,sn,avatar,real_name,nickname,username,mobile,receive_order_status,warehouse_id") .select("id,sn,avatar,real_name,nickname,username,mobile,receive_order_status,warehouse_id,good_skill")
.eq("id", userId) .eq("id", userId)
.last("limit 1")); .last("limit 1"));

View File

@ -3,10 +3,7 @@ package com.hcy.front.service.order;
import com.hcy.common.core.PageResult; import com.hcy.common.core.PageResult;
import com.hcy.front.validate.PageParam; import com.hcy.front.validate.PageParam;
import com.hcy.front.validate.order.RepairOrderParam; import com.hcy.front.validate.order.RepairOrderParam;
import com.hcy.front.vo.order.OrderSparePartListVo; import com.hcy.front.vo.order.*;
import com.hcy.front.vo.order.OrderStatusCountVo;
import com.hcy.front.vo.order.RepairOrderDetailVo;
import com.hcy.front.vo.order.RepairOrderListVo;
import java.util.List; import java.util.List;
@ -152,4 +149,11 @@ public interface IRepairOrderService {
* @return * @return
*/ */
List<OrderSparePartListVo> partsList(RepairOrderParam repairOrderParam); List<OrderSparePartListVo> partsList(RepairOrderParam repairOrderParam);
/**
* id使
* @param repairOrderParam
* @return
*/
List<OrderSparePartUseListVo> partsUseList(RepairOrderParam repairOrderParam);
} }

View File

@ -972,9 +972,9 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
.eq(maintenanceOrderDto.getReceiverId() != null, MaintenanceOrder::getReceiverId, maintenanceOrderDto.getReceiverId())); .eq(maintenanceOrderDto.getReceiverId() != null, MaintenanceOrder::getReceiverId, maintenanceOrderDto.getReceiverId()));
OrderStatusCountVo orderStatusCountVo = new OrderStatusCountVo(); OrderStatusCountVo orderStatusCountVo = new OrderStatusCountVo();
// orderStatusCountVo.setPendingOrderCount(pendingOrderCount); orderStatusCountVo.setPendingOrderCount(pendingOrderCount);
orderStatusCountVo.setCheckingCount(checkingCount); orderStatusCountVo.setCheckingCount(checkingCount);
// orderStatusCountVo.setToBeConfirmedCount(toBeConfirmedCount); orderStatusCountVo.setToBeConfirmedCount(toBeConfirmedCount);
orderStatusCountVo.setInMaintenanceCount(inMaintenanceCount); orderStatusCountVo.setInMaintenanceCount(inMaintenanceCount);
orderStatusCountVo.setCompletedCount(completedCount); orderStatusCountVo.setCompletedCount(completedCount);
return orderStatusCountVo; return orderStatusCountVo;

View File

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.hcy.common.constant.GlobalConstant; import com.hcy.common.constant.GlobalConstant;
import com.hcy.common.entity.sparePart.SparePart; import com.hcy.common.entity.sparePart.SparePart;
import com.hcy.common.entity.warehouse.Warehouse; import com.hcy.common.entity.warehouse.Warehouse;
import com.hcy.common.exception.OperateException;
import com.hcy.common.mapper.sparePart.SparePartMapper; import com.hcy.common.mapper.sparePart.SparePartMapper;
import com.hcy.common.mapper.warehouse.WarehouseMapper; import com.hcy.common.mapper.warehouse.WarehouseMapper;
import com.hcy.common.utils.ArrayUtil; import com.hcy.common.utils.ArrayUtil;
@ -150,22 +151,24 @@ public class WarehouseServiceImpl implements IWarehouseService {
.in("id", ids)); .in("id", ids));
for (Long id : ids) { for (Long id : ids) {
//仓库存在配件且配件数量不为0时不允许删除 //仓库存在配件且配件数量不为0时不允许删除
SparePart sparePart = sparePartMapper.selectOne( List<SparePart> sparePartList = sparePartMapper.selectList(
new QueryWrapper<SparePart>() new QueryWrapper<SparePart>()
.eq("warehouse_id", id) .eq("warehouse_id", id)
.eq("is_delete", 0));
for (SparePart sparePart : sparePartList) {
if(sparePart.getQuantity() != 0){
throw new OperateException("仓库存在配件且配件数量不为0时不允许删除!");
}
}
Warehouse pModel = warehouseMapper.selectOne(
new QueryWrapper<Warehouse>()
.select("id,pid,warehouse_name")
.eq("pid", id)
.eq("is_delete", 0) .eq("is_delete", 0)
.last("limit 1")); .last("limit 1"));
if(sparePart != null && sparePart.getQuantity() != 0){ Assert.isNull(pModel, "请先删除子级仓库");
}else{
Warehouse pModel = warehouseMapper.selectOne(
new QueryWrapper<Warehouse>()
.select("id,pid,warehouse_name")
.eq("pid", id)
.eq("is_delete", 0)
.last("limit 1"));
Assert.isNull(pModel, "请先删除子级仓库");
}
} }

View File

@ -82,4 +82,16 @@ public class RepairOrderAuditParam implements Serializable {
private String orderNo; // 订单编号 private String orderNo; // 订单编号
private Integer qualityTestingResult; // 质检结果0=通过1=不通过)
private Long qualityTestingId; // 质检人
private Date qualityTestingTime; // 质检时间
private String qualityTestingOpinion; // 质检意见
private String qualityTestingImg; // 质检图片
private String whatWasRepairedOne; // 维修了什么1
private String whatWasRepairedTwo; // 维修了什么2
private String whatWasRepairedThree; // 维修了什么3
private String questionOne; // 问题1
private String questionTwo; // 问题2
private String questionThree; // 问题3
} }

View File

@ -170,4 +170,15 @@ public class RepairOrderParam implements Serializable {
private Long repairOrderAuditId; //维修单审核id private Long repairOrderAuditId; //维修单审核id
private Integer feedingOrNot; //是否在补料中0=是1=否) private Integer feedingOrNot; //是否在补料中0=是1=否)
private Integer changeStepOrNot; //是否改步骤0=是1=否) private Integer changeStepOrNot; //是否改步骤0=是1=否)
private String whatWasRepairedOne; // 维修了什么1
private String whatWasRepairedTwo; // 维修了什么2
private String whatWasRepairedThree; // 维修了什么3
private String questionOne; // 问题1
private String questionTwo; // 问题2
private String questionThree; // 问题3
private Long repairOrderStepDataId; // 步骤记录id
} }

View File

@ -23,7 +23,7 @@ public class OrderSparePartUseListVo implements Serializable {
private Long warehouseId; // 仓库id private Long warehouseId; // 仓库id
private String specificationsModel; // 规格型号 private String specificationsModel; // 规格型号
private String unit; // 单位 private String unit; // 单位
private BigDecimal unitPrice; // 价格 private String unitPrice; // 价格
private Integer count; // 出入库数量 private Integer count; // 出入库数量
private Integer quantity; // 库存数量 private Integer quantity; // 库存数量
private Integer useNumber; // 使用数量 private Integer useNumber; // 使用数量

View File

@ -15,6 +15,7 @@ public class OrderSparePartUseVo implements Serializable {
private Long id; // 主键id private Long id; // 主键id
private Long repairOrderId; // 维修订单id private Long repairOrderId; // 维修订单id
private Long repairOrderAuditId; // 维修模块审核id
private Long sparePartsId; // 备件id private Long sparePartsId; // 备件id
private Integer reviewRequest; // 审核申请0-退仓申请、1-领料申请、2-良品入库、3-报废申请) private Integer reviewRequest; // 审核申请0-退仓申请、1-领料申请、2-良品入库、3-报废申请)
private String sparePartsCode; // 备件编码 private String sparePartsCode; // 备件编码

View File

@ -24,4 +24,6 @@ public class OrderStatusCountVo implements Serializable {
private Integer toBeInspectedCount; // 待巡检数量 private Integer toBeInspectedCount; // 待巡检数量
private Integer duringInspectionCount; // 巡检中 private Integer duringInspectionCount; // 巡检中
private Integer pendingOrderCount; // 待接单数量
private Integer toBeConfirmedCount; // 待确认数量
} }

View File

@ -70,4 +70,16 @@ public class RepairOrderAuditDetailVo implements Serializable {
private String withdrawalImg; // 退仓图片 private String withdrawalImg; // 退仓图片
private Integer qualityTestingResult; // 质检结果0=通过1=不通过)
private Long qualityTestingId; // 质检人
private Date qualityTestingTime; // 质检时间
private String qualityTestingOpinion; // 质检意见
private String qualityTestingImg; // 质检图片
private String whatWasRepairedOne; // 维修了什么1
private String whatWasRepairedTwo; // 维修了什么2
private String whatWasRepairedThree; // 维修了什么3
private String questionOne; // 问题1
private String questionTwo; // 问题2
private String questionThree; // 问题3
} }

View File

@ -46,4 +46,16 @@ public class RepairOrderAuditListVo implements Serializable {
private String moduleCode; // 模块代码 private String moduleCode; // 模块代码
private String cancellationRequestImg; // 退仓申请图片 private String cancellationRequestImg; // 退仓申请图片
private List<OrderSparePartListVo> orderSparePartListVoList; //订单配件 private List<OrderSparePartListVo> orderSparePartListVoList; //订单配件
private Integer qualityTestingResult; // 质检结果0=通过1=不通过)
private Long qualityTestingId; // 质检人
private Date qualityTestingTime; // 质检时间
private String qualityTestingOpinion; // 质检意见
private String qualityTestingImg; // 质检图片
private String whatWasRepairedOne; // 维修了什么1
private String whatWasRepairedTwo; // 维修了什么2
private String whatWasRepairedThree; // 维修了什么3
private String questionOne; // 问题1
private String questionTwo; // 问题2
private String questionThree; // 问题3
} }

View File

@ -165,4 +165,7 @@ public class RepairOrderDetailVo implements Serializable {
private Integer feedingOrNot; //是否在补料中0=是1=否) private Integer feedingOrNot; //是否在补料中0=是1=否)
private RepairOrderAuditDetailVo scrapDate;//报废审核信息 private RepairOrderAuditDetailVo scrapDate;//报废审核信息
private Integer receiveOrNot; // 是否已领用0=是1=否)
} }

View File

@ -136,6 +136,7 @@ public class RepairOrderListVo implements Serializable {
private String returnReason; // 返修原因 private String returnReason; // 返修原因
private Integer returning; //是否在退仓中0=是1=否) private Integer returning; //是否在退仓中0=是1=否)
private Integer feedingOrNot; //是否在补料中0=是1=否) private Integer feedingOrNot; //是否在补料中0=是1=否)
private Integer receiveOrNot; // 是否已领用0=是1=否)
} }

View File

@ -21,5 +21,6 @@ public class RepairOrderStepDataVo implements Serializable {
private String creatorName; // 创建人名称 private String creatorName; // 创建人名称
private Integer isApprentice; //是否学徒0=否 1=是 private Integer isApprentice; //是否学徒0=否 1=是
private String role; // 角色主键 private String role; // 角色主键
private Integer scrapOrNot; // 是否报废0=是1=否)
} }

View File

@ -35,4 +35,5 @@ public class UserCenterVo implements Serializable {
private String clientName; // 客户名称 private String clientName; // 客户名称
private String plantName; // 管辖工厂名称 private String plantName; // 管辖工厂名称
private Integer isApprentice; //是否学徒0=否 1=是 private Integer isApprentice; //是否学徒0=否 1=是
private String goodSkill; //擅长技能
} }