【admin&front】 新增&优化 # 1、优化送货单报表
parent
6ee6cdd841
commit
90ac22fffb
|
@ -186,19 +186,19 @@ public class RepairOrderController {
|
||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
// /**
|
||||||
* 维修模块派单 - 重新派单
|
// * 维修模块派单 - 重新派单
|
||||||
*
|
// *
|
||||||
* @author hcy
|
// * @author hcy
|
||||||
* @param repairOrderParam 参数
|
// * @param repairOrderParam 参数
|
||||||
* @return Object
|
// * @return Object
|
||||||
*/
|
// */
|
||||||
@Log(title = "维修模块派单 - 重新派单")
|
// @Log(title = "维修模块派单 - 重新派单")
|
||||||
@PostMapping("/reorder")
|
// @PostMapping("/reorder")
|
||||||
public Object reorder(@Validated(value = RepairOrderParam.update.class) @RequestBody RepairOrderParam repairOrderParam) {
|
// public Object reorder(@Validated(value = RepairOrderParam.update.class) @RequestBody RepairOrderParam repairOrderParam) {
|
||||||
iRepairOrderService.reorder(repairOrderParam);
|
// iRepairOrderService.reorder(repairOrderParam);
|
||||||
return AjaxResult.success();
|
// return AjaxResult.success();
|
||||||
}
|
// }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 维修模块 - 返修确认
|
* 维修模块 - 返修确认
|
||||||
|
|
|
@ -36,6 +36,7 @@ import com.hcy.common.mapper.order.RepairOrderMapper;
|
||||||
import com.hcy.common.mapper.order.RepairOrderShippingMapper;
|
import com.hcy.common.mapper.order.RepairOrderShippingMapper;
|
||||||
import com.hcy.common.mapper.setting.DictDataMapper;
|
import com.hcy.common.mapper.setting.DictDataMapper;
|
||||||
import com.hcy.common.mapper.system.SystemAuthAdminMapper;
|
import com.hcy.common.mapper.system.SystemAuthAdminMapper;
|
||||||
|
import com.hcy.common.utils.StringUtil;
|
||||||
import com.hcy.common.utils.TimeUtil;
|
import com.hcy.common.utils.TimeUtil;
|
||||||
import com.hcy.common.utils.excel.EasyExcelUtil;
|
import com.hcy.common.utils.excel.EasyExcelUtil;
|
||||||
import com.hcy.common.utils.excel.LocalImageModifyStrategy;
|
import com.hcy.common.utils.excel.LocalImageModifyStrategy;
|
||||||
|
@ -352,6 +353,7 @@ public class RepairOrderShippingServiceImpl implements IRepairOrderShippingServi
|
||||||
OfferDetailEntity offerDetail = new OfferDetailEntity();
|
OfferDetailEntity offerDetail = new OfferDetailEntity();
|
||||||
//送货单
|
//送货单
|
||||||
List<ReleaseRecordListExcel> releaseRecordListExcelList = new LinkedList<>();
|
List<ReleaseRecordListExcel> releaseRecordListExcelList = new LinkedList<>();
|
||||||
|
Map<String,ReleaseRecordListExcel> releaseRecordListExcelMap = new HashMap<>();
|
||||||
int index = 1;
|
int index = 1;
|
||||||
|
|
||||||
//功率字典
|
//功率字典
|
||||||
|
@ -367,66 +369,167 @@ public class RepairOrderShippingServiceImpl implements IRepairOrderShippingServi
|
||||||
offerDetail.setCreator(contentAdmin.getUsername());
|
offerDetail.setCreator(contentAdmin.getUsername());
|
||||||
}
|
}
|
||||||
|
|
||||||
List<RepairOrderShipping> repairOrderShippings = repairOrderShippingMapper.selectList(new LambdaQueryWrapper<RepairOrderShipping>()
|
// List<RepairOrderShipping> repairOrderShippings = repairOrderShippingMapper.selectList(new LambdaQueryWrapper<RepairOrderShipping>()
|
||||||
.in(RepairOrderShipping::getId, params.getIds())
|
// .in(RepairOrderShipping::getId, params.getIds())
|
||||||
.orderByDesc(RepairOrderShipping::getDeliveryTime));
|
// .orderByDesc(RepairOrderShipping::getDeliveryTime));
|
||||||
|
|
||||||
repairOrderMapper.selectList(new LambdaQueryWrapper<RepairOrder>()
|
// for (RepairOrderShipping item : repairOrderShippings) {
|
||||||
|
// ReleaseRecordListExcel releaseRecordListExcel = new ReleaseRecordListExcel();
|
||||||
|
// BeanUtils.copyProperties(item, releaseRecordListExcel);
|
||||||
|
// //序号
|
||||||
|
// releaseRecordListExcel.setIndex(index);
|
||||||
|
// //规格型号
|
||||||
|
// RepairOrder repairOrder = repairOrderMapper.selectOne(new LambdaQueryWrapper<RepairOrder>()
|
||||||
|
// .eq(RepairOrder::getShippingId, item.getId())
|
||||||
|
// .eq(RepairOrder::getIsDelete, GlobalConstant.NOT_DELETE)
|
||||||
|
// .orderByDesc(RepairOrder::getCreateTime)
|
||||||
|
// .last("limit 1"));
|
||||||
|
// releaseRecordListExcel.setModuleNumber(repairOrder.getModuleNumber());
|
||||||
|
// releaseRecordListExcel.setModelCode(repairOrder.getModuleCode()); // 料号
|
||||||
|
// //工单编号
|
||||||
|
// ParentRepairOrder parentRepairOrder = parentRepairOrderMapper.selectOne(new LambdaQueryWrapper<ParentRepairOrder>()
|
||||||
|
// .eq(ParentRepairOrder::getId, repairOrder.getParentRepairOrderId()));
|
||||||
|
// releaseRecordListExcel.setOrderNo(parentRepairOrder.getOrderNo());
|
||||||
|
//
|
||||||
|
// //单位
|
||||||
|
// releaseRecordListExcel.setUnit("PCS");
|
||||||
|
//
|
||||||
|
// //备注 功率 + 本次交货数量 + 返修结论 例如:20KW,5台OK
|
||||||
|
// //模块功率(0=10kw,1=20kw,2=30kw,3=40kw,4=50kw,5=60kw,6=70kw)
|
||||||
|
// String modulePower = distMap.get(repairOrder.getModulePower().toString());
|
||||||
|
//
|
||||||
|
// //1、查询出维修结论报废的数量
|
||||||
|
// Integer scrapCount = repairOrderMapper.selectCount(new LambdaQueryWrapper<RepairOrder>()
|
||||||
|
// .eq(RepairOrder::getShippingId, item.getId())
|
||||||
|
// .eq(RepairOrder::getMaintenanceResult, RepairOrderStatusEnum.SCRAP.getStatus())
|
||||||
|
// .eq(RepairOrder::getIsDelete, GlobalConstant.NOT_DELETE));
|
||||||
|
//
|
||||||
|
// //2、查询出维修结论ok的数量
|
||||||
|
// Integer okCount = repairOrderMapper.selectCount(new LambdaQueryWrapper<RepairOrder>()
|
||||||
|
// .eq(RepairOrder::getShippingId, item.getId())
|
||||||
|
// .eq(RepairOrder::getMaintenanceResult, RepairOrderStatusEnum.OK.getStatus())
|
||||||
|
// .eq(RepairOrder::getIsDelete, GlobalConstant.NOT_DELETE));
|
||||||
|
//
|
||||||
|
// if(scrapCount != 0 && okCount != 0){
|
||||||
|
// releaseRecordListExcel.setRemark(modulePower + "," + scrapCount + "台报废," + okCount + "台OK");
|
||||||
|
// }else if(scrapCount != 0){
|
||||||
|
// releaseRecordListExcel.setRemark(modulePower + "," + scrapCount + "台报废");
|
||||||
|
// }else if(okCount != 0){
|
||||||
|
// releaseRecordListExcel.setRemark(modulePower + "," + okCount + "台OK");
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// //送货日期
|
||||||
|
// releaseRecordListExcel.setDeliveryTime(TimeUtil.dateToString(item.getDeliveryTime(), TimeConstant.DATE_FORMAT));
|
||||||
|
//
|
||||||
|
// releaseRecordListExcelList.add(releaseRecordListExcel);
|
||||||
|
// index++; // 序号累计
|
||||||
|
// offerDetail.setTotalQty(offerDetail.getTotalQty() + item.getTheQuantityShipped()); // 合计
|
||||||
|
// }
|
||||||
|
|
||||||
|
List<RepairOrder> repairOrders = repairOrderMapper.selectList(new LambdaQueryWrapper<RepairOrder>()
|
||||||
.in(RepairOrder::getShippingId, params.getIds())
|
.in(RepairOrder::getShippingId, params.getIds())
|
||||||
.orderByDesc(RepairOrder::getCreateTime));
|
.orderByDesc(RepairOrder::getCreateTime));
|
||||||
|
|
||||||
for (RepairOrderShipping item : repairOrderShippings) {
|
for (RepairOrder item : repairOrders) {
|
||||||
ReleaseRecordListExcel releaseRecordListExcel = new ReleaseRecordListExcel();
|
ReleaseRecordListExcel releaseRecordListExcel = null;
|
||||||
BeanUtils.copyProperties(item, releaseRecordListExcel);
|
|
||||||
|
String key = item.getModuleNumber() + item.getModulePower();
|
||||||
|
if(releaseRecordListExcelMap.get(key) != null){
|
||||||
|
releaseRecordListExcel = releaseRecordListExcelMap.get(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
//客户名称
|
||||||
|
Client client = clientMapper.selectOne(new LambdaQueryWrapper<Client>()
|
||||||
|
.eq(Client::getId, item.getClientId()));
|
||||||
|
if(client != null){
|
||||||
|
offerDetail.setClientName(client.getClientName());
|
||||||
|
}
|
||||||
|
|
||||||
|
if(releaseRecordListExcel == null){
|
||||||
|
releaseRecordListExcel = new ReleaseRecordListExcel();
|
||||||
//序号
|
//序号
|
||||||
releaseRecordListExcel.setIndex(index);
|
releaseRecordListExcel.setIndex(index);
|
||||||
//规格型号
|
|
||||||
RepairOrder repairOrder = repairOrderMapper.selectOne(new LambdaQueryWrapper<RepairOrder>()
|
|
||||||
.eq(RepairOrder::getShippingId, item.getId())
|
|
||||||
.eq(RepairOrder::getIsDelete, GlobalConstant.NOT_DELETE)
|
|
||||||
.orderByDesc(RepairOrder::getCreateTime)
|
|
||||||
.last("limit 1"));
|
|
||||||
releaseRecordListExcel.setModuleNumber(repairOrder.getModuleNumber());
|
|
||||||
releaseRecordListExcel.setModelCode(repairOrder.getModuleCode()); // 料号
|
|
||||||
//工单编号
|
|
||||||
ParentRepairOrder parentRepairOrder = parentRepairOrderMapper.selectOne(new LambdaQueryWrapper<ParentRepairOrder>()
|
|
||||||
.eq(ParentRepairOrder::getId, repairOrder.getParentRepairOrderId()));
|
|
||||||
releaseRecordListExcel.setOrderNo(parentRepairOrder.getOrderNo());
|
|
||||||
|
|
||||||
//单位
|
//单位
|
||||||
releaseRecordListExcel.setUnit("PCS");
|
releaseRecordListExcel.setUnit("PCS");
|
||||||
|
//工单编号
|
||||||
|
ParentRepairOrder parentRepairOrder = parentRepairOrderMapper.selectOne(new LambdaQueryWrapper<ParentRepairOrder>()
|
||||||
|
.eq(ParentRepairOrder::getId, item.getParentRepairOrderId()));
|
||||||
|
releaseRecordListExcel.setOrderNo(parentRepairOrder.getOrderNo());
|
||||||
|
//型号
|
||||||
|
releaseRecordListExcel.setModuleNumber(item.getModuleNumber());
|
||||||
|
//功率
|
||||||
|
releaseRecordListExcel.setPower(distMap.get(item.getModulePower().toString()));
|
||||||
|
//订单数量
|
||||||
|
releaseRecordListExcel.setOrderAmount(1);
|
||||||
|
//本次交货数量
|
||||||
|
releaseRecordListExcel.setTheQuantityShipped(1);
|
||||||
|
|
||||||
|
//发货记录
|
||||||
|
RepairOrderShipping repairOrderShipping = repairOrderShippingMapper.selectOne(new LambdaQueryWrapper<RepairOrderShipping>()
|
||||||
|
.eq(RepairOrderShipping::getId, item.getShippingId()));
|
||||||
|
//累计交货数量
|
||||||
|
releaseRecordListExcel.setAccumulativeQuantityShipped(repairOrderShipping.getAccumulativeQuantityShipped());
|
||||||
|
//未交数量
|
||||||
|
releaseRecordListExcel.setUndeliveredQuantity(repairOrderShipping.getUndeliveredQuantity());
|
||||||
|
|
||||||
|
//维修结论
|
||||||
|
if(item.getMaintenanceResult() != null){
|
||||||
|
String result;
|
||||||
|
if(item.getMaintenanceResult() == 0){
|
||||||
|
result = "报废";
|
||||||
|
releaseRecordListExcel.getRemarkMap().put(RepairOrderStatusEnum.SCRAP.getDesc(),1);
|
||||||
|
}else{
|
||||||
|
result = "OK";
|
||||||
|
releaseRecordListExcel.getRemarkMap().put(RepairOrderStatusEnum.OK.getDesc(),1);
|
||||||
|
}
|
||||||
|
releaseRecordListExcel.setRemark(1 + "台" + result);
|
||||||
|
}else{
|
||||||
//备注 功率 + 本次交货数量 + 返修结论 例如:20KW,5台OK
|
//备注 功率 + 本次交货数量 + 返修结论 例如:20KW,5台OK
|
||||||
//模块功率(0=10kw,1=20kw,2=30kw,3=40kw,4=50kw,5=60kw,6=70kw)
|
releaseRecordListExcel.setRemark(1 + "台");
|
||||||
String modulePower = distMap.get(repairOrder.getModulePower().toString());
|
releaseRecordListExcel.getRemarkMap().put(RepairOrderStatusEnum.EMPTY.getDesc(),1);
|
||||||
|
|
||||||
//1、查询出维修结论报废的数量
|
|
||||||
Integer scrapCount = repairOrderMapper.selectCount(new LambdaQueryWrapper<RepairOrder>()
|
|
||||||
.eq(RepairOrder::getShippingId, item.getId())
|
|
||||||
.eq(RepairOrder::getMaintenanceResult, RepairOrderStatusEnum.SCRAP.getStatus())
|
|
||||||
.eq(RepairOrder::getIsDelete, GlobalConstant.NOT_DELETE));
|
|
||||||
|
|
||||||
//2、查询出维修结论ok的数量
|
|
||||||
Integer okCount = repairOrderMapper.selectCount(new LambdaQueryWrapper<RepairOrder>()
|
|
||||||
.eq(RepairOrder::getShippingId, item.getId())
|
|
||||||
.eq(RepairOrder::getMaintenanceResult, RepairOrderStatusEnum.OK.getStatus())
|
|
||||||
.eq(RepairOrder::getIsDelete, GlobalConstant.NOT_DELETE));
|
|
||||||
|
|
||||||
if(scrapCount != 0 && okCount != 0){
|
|
||||||
releaseRecordListExcel.setRemark(modulePower + "," + scrapCount + "台报废," + okCount + "台OK");
|
|
||||||
}else if(scrapCount != 0){
|
|
||||||
releaseRecordListExcel.setRemark(modulePower + "," + scrapCount + "台报废");
|
|
||||||
}else if(okCount != 0){
|
|
||||||
releaseRecordListExcel.setRemark(modulePower + "," + okCount + "台OK");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//送货日期
|
//送货日期
|
||||||
releaseRecordListExcel.setDeliveryTime(TimeUtil.dateToString(item.getDeliveryTime(), TimeConstant.DATE_FORMAT));
|
releaseRecordListExcel.setDeliveryTime(TimeUtil.dateToString(repairOrderShipping.getDeliveryTime(), TimeConstant.DATE_FORMAT));
|
||||||
|
|
||||||
releaseRecordListExcelList.add(releaseRecordListExcel);
|
releaseRecordListExcelList.add(releaseRecordListExcel);
|
||||||
|
releaseRecordListExcelMap.put(key,releaseRecordListExcel);
|
||||||
index++; // 序号累计
|
index++; // 序号累计
|
||||||
offerDetail.setTotalQty(offerDetail.getTotalQty() + item.getTheQuantityShipped()); // 合计
|
}else{
|
||||||
|
releaseRecordListExcel.setOrderAmount(releaseRecordListExcel.getOrderAmount() + 1);
|
||||||
|
releaseRecordListExcel.setTheQuantityShipped(releaseRecordListExcel.getTheQuantityShipped() + 1);
|
||||||
|
if(item.getMaintenanceResult() != null){
|
||||||
|
String result;
|
||||||
|
if(item.getMaintenanceResult() == 0){
|
||||||
|
result = "报废";
|
||||||
|
releaseRecordListExcel.getRemarkMap().put(RepairOrderStatusEnum.SCRAP.getDesc()
|
||||||
|
,releaseRecordListExcel.getRemarkMap().get(RepairOrderStatusEnum.SCRAP.getDesc()) == null ? 1 : releaseRecordListExcel.getRemarkMap().get(RepairOrderStatusEnum.SCRAP.getDesc()) + 1);
|
||||||
|
}else{
|
||||||
|
result = "OK";
|
||||||
|
releaseRecordListExcel.getRemarkMap().put(RepairOrderStatusEnum.OK.getDesc()
|
||||||
|
,releaseRecordListExcel.getRemarkMap().get(RepairOrderStatusEnum.OK.getDesc()) == null ? 1 : releaseRecordListExcel.getRemarkMap().get(RepairOrderStatusEnum.OK.getDesc()) + 1);
|
||||||
}
|
}
|
||||||
|
releaseRecordListExcel.setRemark(1 + "台" + result);
|
||||||
|
}else{
|
||||||
|
//备注 功率 + 本次交货数量 + 返修结论 例如:20KW,5台OK
|
||||||
|
releaseRecordListExcel.setRemark(1 + "台");
|
||||||
|
releaseRecordListExcel.getRemarkMap().put(RepairOrderStatusEnum.EMPTY.getDesc()
|
||||||
|
,releaseRecordListExcel.getRemarkMap().get(RepairOrderStatusEnum.EMPTY.getDesc()) == null ? 1 : releaseRecordListExcel.getRemarkMap().get(RepairOrderStatusEnum.EMPTY.getDesc()) + 1);
|
||||||
|
}
|
||||||
|
StringBuilder builder = new StringBuilder();
|
||||||
|
for (String flag : releaseRecordListExcel.getRemarkMap().keySet()) {
|
||||||
|
if(RepairOrderStatusEnum.SCRAP.getDesc().equals(flag)){
|
||||||
|
builder.append(StringUtil.isEmpty(builder) ? releaseRecordListExcel.getRemarkMap().get(flag) + "台报废" : "," + releaseRecordListExcel.getRemarkMap().get(flag) + "台报废");
|
||||||
|
}else if(RepairOrderStatusEnum.OK.getDesc().equals(flag)){
|
||||||
|
builder.append(StringUtil.isEmpty(builder) ? releaseRecordListExcel.getRemarkMap().get(flag) + "台OK" : "," + releaseRecordListExcel.getRemarkMap().get(flag) + "台OK");
|
||||||
|
}else if(RepairOrderStatusEnum.EMPTY.getDesc().equals(flag)){
|
||||||
|
builder.append(StringUtil.isEmpty(builder) ? releaseRecordListExcel.getRemarkMap().get(flag) + "台" : "," + releaseRecordListExcel.getRemarkMap().get(flag) + "台");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
releaseRecordListExcel.setRemark(builder.toString());
|
||||||
|
}
|
||||||
|
offerDetail.setTotalQty(offerDetail.getTotalQty() + 1); // 合计
|
||||||
|
}
|
||||||
|
|
||||||
WriteSheet sheet = EasyExcel.writerSheet(0).build();
|
WriteSheet sheet = EasyExcel.writerSheet(0).build();
|
||||||
writer.fill(offerDetail, sheet);
|
writer.fill(offerDetail, sheet);
|
||||||
writer.fill(releaseRecordListExcelList, fillConfig, sheet);
|
writer.fill(releaseRecordListExcelList, fillConfig, sheet);
|
||||||
|
|
|
@ -9,7 +9,9 @@ import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@Builder
|
@Builder
|
||||||
|
@ -43,4 +45,13 @@ public class ReleaseRecordListExcel implements Serializable {
|
||||||
private String remark; //备注
|
private String remark; //备注
|
||||||
@ApiModelProperty(value = "送货日期")
|
@ApiModelProperty(value = "送货日期")
|
||||||
private String deliveryTime;
|
private String deliveryTime;
|
||||||
|
|
||||||
|
private Map<String,Integer> remarkMap;
|
||||||
|
|
||||||
|
public Map<String, Integer> getRemarkMap() {
|
||||||
|
if(remarkMap == null){
|
||||||
|
remarkMap = new HashMap<>();
|
||||||
|
}
|
||||||
|
return remarkMap;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
|
@ -40,6 +40,7 @@ public enum RepairOrderStatusEnum {
|
||||||
// 维修结论(0=报废,1=OK)
|
// 维修结论(0=报废,1=OK)
|
||||||
SCRAP(0, "报废"),
|
SCRAP(0, "报废"),
|
||||||
OK(1, "OK"),
|
OK(1, "OK"),
|
||||||
|
EMPTY(2, "空"),
|
||||||
|
|
||||||
// 事项(0=派单事项、1=发货事项)
|
// 事项(0=派单事项、1=发货事项)
|
||||||
DISPATCH_ITEM(0,"派单事项"),
|
DISPATCH_ITEM(0,"派单事项"),
|
||||||
|
|
Loading…
Reference in New Issue