功能修改

master
sunjianxi 1 year ago
parent 186a75cfa0
commit c7f4741fdb
  1. 2
      src/main/java/org/springblade/modules/business/contraller/DeviceController.java
  2. 14
      src/main/java/org/springblade/modules/business/contraller/MaintenanceController.java
  3. 6
      src/main/java/org/springblade/modules/business/contraller/WorkBenchesController.java
  4. 3
      src/main/java/org/springblade/modules/business/contraller/supplies/ApplyController.java
  5. 2
      src/main/java/org/springblade/modules/business/contraller/supplies/GoodsController.java
  6. 15
      src/main/java/org/springblade/modules/business/excel/supplies/GoodsExcel.java
  7. 2
      src/main/java/org/springblade/modules/business/pojo/vo/MessageVO.java
  8. 5
      src/main/java/org/springblade/modules/business/service/impl/MaintenancePlanServiceImpl.java
  9. 215
      src/main/java/org/springblade/modules/business/service/impl/MaintenanceTaskDetailServiceImpl.java
  10. 2
      src/main/java/org/springblade/modules/business/service/impl/MaintenanceTaskServiceImpl.java
  11. 1
      src/main/java/org/springblade/modules/business/service/impl/MessageServiceImpl.java
  12. 197
      src/main/java/org/springblade/modules/business/service/impl/WorkOrderServiceImpl.java
  13. 42
      src/main/java/org/springblade/modules/business/service/impl/supplies/GoodsServiceImpl.java
  14. 2
      src/main/java/org/springblade/modules/business/service/impl/supplies/InOrderServiceImpl.java
  15. 12
      src/main/java/org/springblade/modules/system/controller/UserController.java

@ -96,7 +96,7 @@ public class DeviceController extends BladeController {
BladeUser user = AuthUtil.getUser(); BladeUser user = AuthUtil.getUser();
if (!user.getRoleName().contains("administrator") && !user.getRoleName().contains("admin")) { if (!user.getRoleName().contains("administrator") && !user.getRoleName().contains("admin")) {
if(user.getRoleName().equals("客服") || user.getRoleName().equals("维修负责人")){ if(user.getRoleName().equals("客服") || user.getRoleName().equals("维修负责人") || user.getRoleName().equals("维修人员")){
List<String> deptIds = null; List<String> deptIds = null;
String deptId = user.getDeptId(); String deptId = user.getDeptId();
List<Dept> deptList = deptService.list(Wrappers.lambdaQuery(Dept.class).eq(Dept::getParentId,deptId).eq(Dept::getIsDeleted,0)); List<Dept> deptList = deptService.list(Wrappers.lambdaQuery(Dept.class).eq(Dept::getParentId,deptId).eq(Dept::getIsDeleted,0));

@ -343,12 +343,16 @@ public class MaintenanceController extends BladeController {
List<MaintenanceTaskDetail> detailList = taskDto.getDetailList(); List<MaintenanceTaskDetail> detailList = taskDto.getDetailList();
for (MaintenanceTaskDetail maintenanceTaskDetail : detailList) { for (MaintenanceTaskDetail maintenanceTaskDetail : detailList) {
Long id = maintenanceTaskDetail.getId(); Long id = maintenanceTaskDetail.getId();
Optional<List<MaintenanceTaskDetailGoods>> detailGoods = Optional.ofNullable(maintenanceTaskDetail.getDetailGoodsList()); List<MaintenanceTaskDetailGoods> detailGoods = maintenanceTaskDetail.getDetailGoodsList();
if (detailGoods.isPresent()) { if (CollectionUtil.isNotEmpty(detailGoods)) {
List<MaintenanceTaskDetailGoods> detailGoodsList = detailGoods.get(); for (MaintenanceTaskDetailGoods maintenanceTaskDetailGoods : detailGoods) {
for (MaintenanceTaskDetailGoods maintenanceTaskDetailGoods : detailGoodsList) {
maintenanceTaskDetailGoods.setParentId(id); maintenanceTaskDetailGoods.setParentId(id);
maintenanceApplyGoodsService.save(maintenanceTaskDetailGoods); if(maintenanceTaskDetailGoods.getId() == null){
maintenanceApplyGoodsService.save(maintenanceTaskDetailGoods);
}else{
maintenanceApplyGoodsService.updateById(maintenanceTaskDetailGoods);
}
} }
} else { } else {
taskDetailService.saveOrUpdate(maintenanceTaskDetail); taskDetailService.saveOrUpdate(maintenanceTaskDetail);

@ -195,10 +195,8 @@ public class WorkBenchesController extends BladeController {
List<String> deptIds = null; List<String> deptIds = null;
if (!user.getRoleName().contains("administrator") && !user.getRoleName().contains("admin")) { if (!user.getRoleName().contains("administrator") && !user.getRoleName().contains("admin")) {
String deptId = user.getDeptId(); String deptId = user.getDeptId();
List<Dept> deptList = deptService.list(Wrappers.lambdaQuery(Dept.class).eq(Dept::getParentId,deptId).eq(Dept::getIsDeleted,0)); deptIds = new ArrayList<>();
if(CollectionUtil.isNotEmpty(deptList)){ deptIds.add(deptId);
deptIds = deptList.stream().map(Dept::getId).map(x->x+"").collect(Collectors.toList());
}
} }
List<PieStatVO> fault = deviceService.selectTypeCount(startTime, endTime,deptIds); List<PieStatVO> fault = deviceService.selectTypeCount(startTime, endTime,deptIds);
map.put("fault", fault); map.put("fault", fault);

@ -77,6 +77,9 @@ public class ApplyController extends BladeController {
wrapper.eq(Apply::getApplyUserId,user.getUserId()); wrapper.eq(Apply::getApplyUserId,user.getUserId());
} }
} }
if(StringUtils.isNotEmpty(apply.getApplyUser())){
wrapper.eq(Apply::getApplyUser,apply.getApplyUser());
}
IPage<Apply> pages = applyService.page(Condition.getPage(query), wrapper); IPage<Apply> pages = applyService.page(Condition.getPage(query), wrapper);
List<Apply> records = pages.getRecords(); List<Apply> records = pages.getRecords();
if (CollectionUtil.isNotEmpty(records)) { if (CollectionUtil.isNotEmpty(records)) {

@ -192,7 +192,7 @@ public class GoodsController extends BladeController {
goodsExcel.setUnifiedQuotation(1275.00); goodsExcel.setUnifiedQuotation(1275.00);
goodsExcel.setWarnNum(85); goodsExcel.setWarnNum(85);
goodsExcel.setRenewNum(13); goodsExcel.setRenewNum(13);
goodsExcel.setAllEnterNum(50); // goodsExcel.setAllEnterNum(50);
goodsExcel.setDeactivate("是"); goodsExcel.setDeactivate("是");
goodsExcel.setRemark("备注"); goodsExcel.setRemark("备注");
list.add(goodsExcel); list.add(goodsExcel);

@ -35,19 +35,28 @@ public class GoodsExcel implements Serializable {
@ExcelProperty("名称") @ExcelProperty("名称")
private String name; private String name;
@ExcelProperty("物品大类")
private String bigClass;
@ExcelProperty("描述") @ExcelProperty("描述")
private String describes; private String describes;
@ExcelProperty("产品型号") @ExcelProperty("产品型号")
private String xh; private String xh;
@ExcelProperty("参数")
private String rule;
@ExcelProperty("品牌") @ExcelProperty("品牌")
private String brand; private String brand;
@ExcelProperty("单位")
private String unit;
@ExcelProperty("采购价格") @ExcelProperty("采购价格")
private Double purchasePrice; private Double purchasePrice;
@ExcelProperty("库数量") @ExcelProperty("库数量")
private Integer num; private Integer num;
// @ExcelProperty("库存价值") // @ExcelProperty("库存价值")
@ -62,8 +71,8 @@ public class GoodsExcel implements Serializable {
@ExcelProperty("续订时间") @ExcelProperty("续订时间")
private Integer renewNum; private Integer renewNum;
@ExcelProperty("实际入库数量") // @ExcelProperty("实际入库数量")
private Integer allEnterNum; // private Integer allEnterNum;
@ExcelProperty("是否已停产?") @ExcelProperty("是否已停产?")
private String deactivate; private String deactivate;

@ -17,4 +17,6 @@ public class MessageVO {
private Integer status; private Integer status;
private Integer messageType; private Integer messageType;
private String requirementCode;
} }

@ -246,7 +246,7 @@ public class MaintenancePlanServiceImpl extends BaseServiceImpl<MaintenancePlanM
// 按计划分组 // 按计划分组
Map<Long, List<MaintenancePlanDetail>> listMap = planDetails.stream().collect(Collectors.groupingBy(MaintenancePlanDetail::getPlanId)); Map<Long, List<MaintenancePlanDetail>> listMap = planDetails.stream().collect(Collectors.groupingBy(MaintenancePlanDetail::getPlanId));
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
String todayStr = format.format(new Date()); String todayStr = format.format(new Date());
int count = 1; int count = 1;
int taskCount = 0; int taskCount = 0;
@ -263,6 +263,9 @@ public class MaintenancePlanServiceImpl extends BaseServiceImpl<MaintenancePlanM
localDate = date; localDate = date;
// 周期:1月 2季度 3半年 // 周期:1月 2季度 3半年
Integer period = detail.getPeriod(); Integer period = detail.getPeriod();
if(period == null){
continue;
}
// 计算下次开始时间 // 计算下次开始时间
if (period.equals(ERIOD_MONTH)) { if (period.equals(ERIOD_MONTH)) {
localDate = localDate.minusMonths(-1); localDate = localDate.minusMonths(-1);

@ -197,64 +197,94 @@ public class MaintenanceTaskDetailServiceImpl extends BaseServiceImpl<Maintenanc
@Override @Override
public void batchMaintenanceOutputService(List<MaintenanceTask> taskList, HttpServletResponse response) throws IOException { public void batchMaintenanceOutputService(List<MaintenanceTask> taskList, HttpServletResponse response) throws IOException {
for (MaintenanceTask task : taskList) { try(ZipOutputStream zos = new ZipOutputStream(response.getOutputStream())){
//数据获取 for (MaintenanceTask task : taskList) {
String templateFile = "MaintenanceTaskReport.xlsx"; //数据获取
InputStream fileInputStream = this.getClass().getClassLoader().getResourceAsStream("excel" + "/" + templateFile); String templateFile = "MaintenanceTaskReport.xlsx";
FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build(); InputStream fileInputStream = this.getClass().getClassLoader().getResourceAsStream("excel" + "/" + templateFile);
Map<String, Object> map0 = new HashMap<>(); FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
map0.put("taskName", task.getDeptName()); Map<String, Object> map0 = new HashMap<>();
String period = baseMapper.findPeriod(); map0.put("taskName", task.getDeptName());
map0.put("period",period + "度报告"); String period = baseMapper.findPeriod();
map0.put("time", DateFormatUtils.format(task.getFinishTime(),"yyyy年MM月dd日")); map0.put("period",period + "度报告");
map0.put("taskCode", task.getTaskCode()); map0.put("time", DateFormatUtils.format(task.getFinishTime(),"yyyy年MM月dd日"));
map0.put("taskCode", task.getTaskCode());
Map<String, Object> map1 = new HashMap<>();
map1.put("taskName", task.getDeptName()); Map<String, Object> map1 = new HashMap<>();
map1.put("address", task.getDeptName()); map1.put("taskName", task.getDeptName());
map1.put("taskContent", task.getTaskContent()); map1.put("address", task.getDeptName());
map1.put("taskContent", task.getTaskContent());
Map<String, Object> map2 = new HashMap<>();
map2.put("taskName", task.getDeptName()); Map<String, Object> map2 = new HashMap<>();
map2.put("address", task.getDeptName()); map2.put("taskName", task.getDeptName());
map2.put("inspectionConclusion", task.getInspectionConclusion()); map2.put("address", task.getDeptName());
map2.put("signatureTime",task.getSignatureTime() != null ? DateFormatUtils.format(task.getSignatureTime(),"yyyy年MM月dd日"): ""); map2.put("inspectionConclusion", task.getInspectionConclusion());
map2.put("signatureTime",task.getSignatureTime() != null ? DateFormatUtils.format(task.getSignatureTime(),"yyyy年MM月dd日"): "");
//获取客户联系人、联系电话
Map<String,String> cusMap = baseMapper.getDeptContact(task.getDeptId()); //获取客户联系人、联系电话
if(CollectionUtils.isNotEmpty(cusMap)){ Map<String,String> cusMap = baseMapper.getDeptContact(task.getDeptId());
map2.put("contact",cusMap.get("name")); //联系人 if(CollectionUtils.isNotEmpty(cusMap)){
map2.put("phone",cusMap.get("phone")); //联系方式 map2.put("contact",cusMap.get("name")); //联系人
} map2.put("phone",cusMap.get("phone")); //联系方式
}
List<MaintenanceTaskDetail> maintenanceTaskDetailList = baseMapper.selectList(Wrappers.lambdaQuery(MaintenanceTaskDetail.class).eq(MaintenanceTaskDetail::getTaskId, task.getId())); List<MaintenanceTaskDetail> maintenanceTaskDetailList = baseMapper.selectList(Wrappers.lambdaQuery(MaintenanceTaskDetail.class).eq(MaintenanceTaskDetail::getTaskId, task.getId()));
List<MaintenanceOutputData> maintenanceOutputDataList = new ArrayList<>(); List<MaintenanceOutputData> maintenanceOutputDataList = new ArrayList<>();
List<MaintenanceOutputData> maintenanceOutputDataList1 = new ArrayList<>(); List<MaintenanceOutputData> maintenanceOutputDataList1 = new ArrayList<>();
long no = 0; long no = 0;
long no1 = 0; long no1 = 0;
for (MaintenanceTaskDetail maintenanceTaskDetail : maintenanceTaskDetailList) { for (MaintenanceTaskDetail maintenanceTaskDetail : maintenanceTaskDetailList) {
no++; no++;
MaintenanceOutputData maintenanceOutputData = new MaintenanceOutputData(); MaintenanceOutputData maintenanceOutputData = new MaintenanceOutputData();
maintenanceOutputData.setNo(no); maintenanceOutputData.setNo(no);
maintenanceOutputData.setFloor(maintenanceTaskDetail.getFloorName()); maintenanceOutputData.setFloor(maintenanceTaskDetail.getFloorName());
maintenanceOutputData.setDeptName(maintenanceTaskDetail.getDeptName()); maintenanceOutputData.setDeptName(maintenanceTaskDetail.getDeptName());
maintenanceOutputData.setMajorName(maintenanceTaskDetail.getMajorName()); maintenanceOutputData.setMajorName(maintenanceTaskDetail.getMajorName());
maintenanceOutputData.setCheckContent(maintenanceTaskDetail.getCheckContent()); maintenanceOutputData.setCheckContent(maintenanceTaskDetail.getCheckContent());
Optional<Integer> status = Optional.ofNullable(maintenanceTaskDetail.getStatus()); Optional<Integer> status = Optional.ofNullable(maintenanceTaskDetail.getStatus());
if (status.isPresent()) { if (status.isPresent()) {
if (status.get() == 1) { if (status.get() == 1) {
maintenanceOutputData.setStatus("异常"); maintenanceOutputData.setStatus("异常");
}
if (status.get() == 0) {
maintenanceOutputData.setStatus("正常");
}
} }
if (status.get() == 0) { maintenanceOutputData.setRemark(maintenanceTaskDetail.getRemark());
maintenanceOutputData.setStatus("正常"); maintenanceOutputData.setSignature(task.getSignUrl());
if (StringUtils.isNotBlank(maintenanceTaskDetail.getPicUrl())) {
try {
//获取图片
URL url = new URL(maintenanceTaskDetail.getPicUrl());
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("GET");
httpURLConnection.setDoInput(true);
InputStream inputStream = httpURLConnection.getInputStream();
BufferedImage image = ImageIO.read(inputStream);
ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
ImageIO.write(image, "png", arrayOutputStream);
byte[] bytes = arrayOutputStream.toByteArray();
maintenanceOutputData.setImage1(bytes);
arrayOutputStream.close();
} catch (Exception e) {
throw new RuntimeException(e);
}
} else {
maintenanceOutputData.setImage1(null);
}
maintenanceOutputDataList.add(maintenanceOutputData);
if(maintenanceTaskDetail.getStatus() == 1){
no1++;
MaintenanceOutputData maintenanceOutputData1 = BeanUtil.copyProperties(maintenanceOutputData,MaintenanceOutputData.class);
maintenanceOutputData1.setNo(no1);
maintenanceOutputDataList1.add(maintenanceOutputData1);
} }
} }
maintenanceOutputData.setRemark(maintenanceTaskDetail.getRemark()); //获取签字图片
maintenanceOutputData.setSignature(task.getSignUrl()); if (StringUtils.isNotBlank(task.getSignatureUrl())) {
if (StringUtils.isNotBlank(maintenanceTaskDetail.getPicUrl())) {
try { try {
//获取图片 //获取图片
URL url = new URL(maintenanceTaskDetail.getPicUrl()); URL url = new URL(task.getSignatureUrl());
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("GET"); httpURLConnection.setRequestMethod("GET");
httpURLConnection.setDoInput(true); httpURLConnection.setDoInput(true);
@ -263,67 +293,42 @@ public class MaintenanceTaskDetailServiceImpl extends BaseServiceImpl<Maintenanc
ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream(); ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
ImageIO.write(image, "png", arrayOutputStream); ImageIO.write(image, "png", arrayOutputStream);
byte[] bytes = arrayOutputStream.toByteArray(); byte[] bytes = arrayOutputStream.toByteArray();
maintenanceOutputData.setImage1(bytes); Double width = Double.valueOf(image.getWidth());
Double height = Double.valueOf(image.getHeight());
WriteCellData<Void> voidWriteCellData = TemplateExcelUtils.imageCells(bytes, width, height, 0.6, 1.9);
map2.put("image", voidWriteCellData);
} catch (Exception e) { } catch (Exception e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
} else { } else {
maintenanceOutputData.setImage1(null); map2.put("image",null);
}
maintenanceOutputDataList.add(maintenanceOutputData);
if(maintenanceTaskDetail.getStatus() == 1){
no1++;
MaintenanceOutputData maintenanceOutputData1 = BeanUtil.copyProperties(maintenanceOutputData,MaintenanceOutputData.class);
maintenanceOutputData1.setNo(no1);
maintenanceOutputDataList1.add(maintenanceOutputData1);
} }
} //将数据导出到Excel
//获取签字图片 String fileName = task.getTaskCode() + "巡检报告.xlsx";
if (StringUtils.isNotBlank(task.getSignatureUrl())) { zos.putNextEntry(new ZipEntry(fileName));
try { ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
//获取图片 try (ExcelWriter excelWriter = EasyExcel.write(byteArrayOutputStream).withTemplate(fileInputStream).build()) {
URL url = new URL(task.getSignatureUrl()); WriteSheet writeSheet0 = EasyExcel.writerSheet(0).build();
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); excelWriter.fill(map0, writeSheet0);
httpURLConnection.setRequestMethod("GET");
httpURLConnection.setDoInput(true); WriteSheet writeSheet1 = EasyExcel.writerSheet(1).build();
InputStream inputStream = httpURLConnection.getInputStream(); excelWriter.fill(maintenanceOutputDataList, fillConfig, writeSheet1);
BufferedImage image = ImageIO.read(inputStream); excelWriter.fill(map1, writeSheet1);
ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
ImageIO.write(image, "png", arrayOutputStream); WriteSheet writeSheet2 = EasyExcel.writerSheet(2).build();
byte[] bytes = arrayOutputStream.toByteArray(); excelWriter.fill(maintenanceOutputDataList1, fillConfig, writeSheet2);
Double width = Double.valueOf(image.getWidth());
Double height = Double.valueOf(image.getHeight()); WriteSheet writeSheet3 = EasyExcel.writerSheet(3).build();
WriteCellData<Void> voidWriteCellData = TemplateExcelUtils.imageCells(bytes, width, height, 0.6, 1.9); excelWriter.fill(map2, writeSheet3);
map2.put("image", voidWriteCellData);
} catch (Exception e) { excelWriter.finish();
throw new RuntimeException(e); byteArrayOutputStream.writeTo(zos);
zos.closeEntry();
} }
} else {
map2.put("image",null);
}
//将数据导出到Excel
ZipOutputStream zos = new ZipOutputStream(response.getOutputStream());
String fileName = task.getTaskCode() + "巡检报告.xlsx";
zos.putNextEntry(new ZipEntry(fileName));
try (ExcelWriter excelWriter = EasyExcel.write(zos).withTemplate(fileInputStream).build()) {
WriteSheet writeSheet0 = EasyExcel.writerSheet(0).build();
excelWriter.fill(map0, writeSheet0);
WriteSheet writeSheet1 = EasyExcel.writerSheet(1).build();
excelWriter.fill(maintenanceOutputDataList, fillConfig, writeSheet1);
excelWriter.fill(map1, writeSheet1);
WriteSheet writeSheet2 = EasyExcel.writerSheet(2).build();
excelWriter.fill(maintenanceOutputDataList1, fillConfig, writeSheet2);
WriteSheet writeSheet3 = EasyExcel.writerSheet(3).build();
excelWriter.fill(map2, writeSheet3);
excelWriter.finish();
zos.flush();
zos.closeEntry();
} }
} }
} }
@Override @Override

@ -166,7 +166,7 @@ public class MaintenanceTaskServiceImpl extends BaseServiceImpl<MaintenanceTaskM
if (!user.getRoleName().contains("administrator") && !user.getRoleName().contains("admin")) { if (!user.getRoleName().contains("administrator") && !user.getRoleName().contains("admin")) {
deptId = user.getDeptId(); deptId = user.getDeptId();
} }
List<Map<String, Object>> list = baseMapper.selectMaintenanceTaskStatus(startTimeBegin,startTimeEnd,deptId); List<Map<String, Object>> list = baseMapper.selectMaintenanceTaskStatus(startDate,endDate,deptId);
Map<String,String> dxjMap = new HashMap<>(); Map<String,String> dxjMap = new HashMap<>();
Map<String,String> xjzMap = new HashMap<>(); Map<String,String> xjzMap = new HashMap<>();
Map<String,String> dqrMap = new HashMap<>(); Map<String,String> dqrMap = new HashMap<>();

@ -81,6 +81,7 @@ public class MessageServiceImpl extends BaseServiceImpl<MessageMapper, Message>
messageVO.setMessageType(record.getMessageType()); messageVO.setMessageType(record.getMessageType());
messageVO.setStatus(record.getIsRead()); messageVO.setStatus(record.getIsRead());
messageVO.setCreateTime(record.getCreateTime()); messageVO.setCreateTime(record.getCreateTime());
messageVO.setRequirementCode(record.getRequirementCode());
messageVOList.add(messageVO); messageVOList.add(messageVO);
} }
PageVO pageVO = new PageVO(); PageVO pageVO = new PageVO();

@ -707,79 +707,87 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
@Override @Override
public void batchReportService(List<WorkOrder> workOrderList, HttpServletResponse response) throws IOException { public void batchReportService(List<WorkOrder> workOrderList, HttpServletResponse response) throws IOException {
for (WorkOrder workOrder : workOrderList) { try(ZipOutputStream zos = new ZipOutputStream(response.getOutputStream())){
//数据获取 for (WorkOrder workOrder : workOrderList) {
String templateFileName = "WorkOrderServiceSheet.xlsx"; //数据获取
InputStream fileInputStream = this.getClass().getClassLoader().getResourceAsStream("excel" + "/" + templateFileName); String templateFileName = "WorkOrderServiceSheet.xlsx";
Map<String, Object> map = new HashMap<>(); InputStream fileInputStream = this.getClass().getClassLoader().getResourceAsStream("excel" + "/" + templateFileName);
double total = workOrder.getTotalPrice(); Map<String, Object> map = new HashMap<>();
FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build(); double total = workOrder.getTotalPrice();
List<WorkOrderRepairMaterial> workOrderRepairMaterialList = workOrderRepairMaterialService.list(Wrappers.lambdaQuery(WorkOrderRepairMaterial.class).eq(WorkOrderRepairMaterial::getOrderId, workOrder.getId())); FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
List<WorkOrderFillData> workOrderFillDataList = new ArrayList<>(); List<WorkOrderRepairMaterial> workOrderRepairMaterialList = workOrderRepairMaterialService.list(Wrappers.lambdaQuery(WorkOrderRepairMaterial.class).eq(WorkOrderRepairMaterial::getOrderId, workOrder.getId()));
int no = 0; List<WorkOrderFillData> workOrderFillDataList = new ArrayList<>();
for (WorkOrderRepairMaterial workOrderRepairMaterial : workOrderRepairMaterialList) { int no = 0;
WorkOrderFillData workOrderFillData = new WorkOrderFillData(); for (WorkOrderRepairMaterial workOrderRepairMaterial : workOrderRepairMaterialList) {
workOrderFillData.setNo(++no); WorkOrderFillData workOrderFillData = new WorkOrderFillData();
workOrderFillData.setMaterialName(workOrderRepairMaterial.getMaterialName()); workOrderFillData.setNo(++no);
workOrderFillData.setMaterialCount(workOrderRepairMaterial.getMaterialCount()); workOrderFillData.setMaterialName(workOrderRepairMaterial.getMaterialName());
workOrderFillData.setMaterialPrice(workOrderRepairMaterial.getMaterialPrice()); workOrderFillData.setMaterialCount(workOrderRepairMaterial.getMaterialCount());
double price = workOrderRepairMaterial.getMaterialPrice() / workOrderRepairMaterial.getMaterialCount(); workOrderFillData.setMaterialPrice(workOrderRepairMaterial.getMaterialPrice());
workOrderFillData.setPrice(price); double price = workOrderRepairMaterial.getMaterialPrice() / workOrderRepairMaterial.getMaterialCount();
workOrderFillDataList.add(workOrderFillData); workOrderFillData.setPrice(price);
} workOrderFillDataList.add(workOrderFillData);
}
// ImageExcelData imageExcelData = new ImageExcelData(); // ImageExcelData imageExcelData = new ImageExcelData();
// imageExcelData.setUrl(new URL(workOrder.getSignatureUrl())); // imageExcelData.setUrl(new URL(workOrder.getSignatureUrl()));
//获取签字图片 //获取签字图片
Optional<String> signatureUrl = Optional.ofNullable(workOrder.getSignatureUrl()); Optional<String> signatureUrl = Optional.ofNullable(workOrder.getSignatureUrl());
if (signatureUrl.isPresent() && StringUtils.isNotBlank(signatureUrl.get())) { if (signatureUrl.isPresent() && StringUtils.isNotBlank(signatureUrl.get())) {
URL url = new URL(signatureUrl.get()); URL url = new URL(signatureUrl.get());
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("GET"); httpURLConnection.setRequestMethod("GET");
httpURLConnection.setDoInput(true); httpURLConnection.setDoInput(true);
InputStream inputStream = httpURLConnection.getInputStream(); InputStream inputStream = httpURLConnection.getInputStream();
BufferedImage image = ImageIO.read(inputStream); BufferedImage image = ImageIO.read(inputStream);
if (image != null) { if (image != null) {
System.out.println("图片加载成功"); System.out.println("图片加载成功");
} else { } else {
System.out.println("图片加载失败"); System.out.println("图片加载失败");
throw new IOException(); throw new IOException();
}
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ImageIO.write(image, "png", byteArrayOutputStream); // 将图片写入输出流
byte[] imageBytes = byteArrayOutputStream.toByteArray();
Double width = Double.valueOf(image.getWidth());
Double height = Double.valueOf(image.getHeight());
WriteCellData<Void> voidWriteCellData = TemplateExcelUtils.imageCells(imageBytes, width, height, 0.6, 1.9);
map.put("image", voidWriteCellData);
} }
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); User repairPerson = userService.getOne(Wrappers.lambdaQuery(User.class).eq(User::getId, workOrder.getRepairPerson()));
ImageIO.write(image, "png", byteArrayOutputStream); // 将图片写入输出流 User customer = userService.getOne(Wrappers.lambdaQuery(User.class).eq(User::getId, workOrder.getInformant()));
byte[] imageBytes = byteArrayOutputStream.toByteArray(); map.put("customerName", customer.getRealName());
Double width = Double.valueOf(image.getWidth()); map.put("informant", customer.getRealName());
Double height = Double.valueOf(image.getHeight()); map.put("informantPhone", customer.getPhone());
WriteCellData<Void> voidWriteCellData = TemplateExcelUtils.imageCells(imageBytes, width, height, 0.6, 1.9); map.put("address", customer.getAddress());
map.put("image", voidWriteCellData); map.put("faultDescribe", workOrder.getFaultDescribe());
} map.put("faultCause", workOrder.getFaultCause());
User repairPerson = userService.getOne(Wrappers.lambdaQuery(User.class).eq(User::getId, workOrder.getRepairPerson())); map.put("total", total);
User customer = userService.getOne(Wrappers.lambdaQuery(User.class).eq(User::getId, workOrder.getInformant())); map.put("processMethod", workOrder.getProcessMethod());
map.put("customerName", customer.getRealName()); map.put("repairPerson", repairPerson.getRealName());
map.put("informant", customer.getRealName()); map.put("repairPersonPhone", repairPerson.getPhone());
map.put("informantPhone", customer.getPhone()); map.put("laborCost", workOrder.getLaborCost());
map.put("address", customer.getAddress()); //转换日期格式
map.put("faultDescribe", workOrder.getFaultDescribe()); Optional<Date> finishTime = Optional.ofNullable(workOrder.getFinishTime());
map.put("faultCause", workOrder.getFaultCause()); if (finishTime.isPresent()) {
map.put("total", total); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日");
map.put("processMethod", workOrder.getProcessMethod()); map.put("finishTime", simpleDateFormat.format(finishTime.get()));
map.put("repairPerson", repairPerson.getRealName()); }
map.put("repairPersonPhone", repairPerson.getPhone()); Optional<Device> device = Optional.ofNullable(deviceService.getOne(Wrappers.lambdaQuery(Device.class).eq(Device::getId, workOrder.getDeviceId())));
map.put("laborCost", workOrder.getLaborCost()); if (device.isPresent()) {
//转换日期格式 Optional<Long> limsId = Optional.ofNullable(device.get().getLimsId());
Optional<Date> finishTime = Optional.ofNullable(workOrder.getFinishTime()); if (limsId.isPresent()) {
if (finishTime.isPresent()) { map.put("in", total + workOrder.getLaborCost());
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日"); map.put("out", "--");
map.put("finishTime", simpleDateFormat.format(finishTime.get())); map.put("sel1", "√");
} map.put("sel2", null);
Optional<Device> device = Optional.ofNullable(deviceService.getOne(Wrappers.lambdaQuery(Device.class).eq(Device::getId, workOrder.getDeviceId()))); map.put("inTravel", workOrder.getTravelExpense());
if (device.isPresent()) { } else {
Optional<Long> limsId = Optional.ofNullable(device.get().getLimsId()); map.put("in", "--");
if (limsId.isPresent()) { map.put("out", total + workOrder.getLaborCost());
map.put("in", total + workOrder.getLaborCost()); map.put("sel2", "√");
map.put("out", "--"); map.put("sel1", null);
map.put("sel1", "√"); map.put("outTravel", workOrder.getTravelExpense());
map.put("sel2", null); }
map.put("inTravel", workOrder.getTravelExpense());
} else { } else {
map.put("in", "--"); map.put("in", "--");
map.put("out", total + workOrder.getLaborCost()); map.put("out", total + workOrder.getLaborCost());
@ -787,36 +795,31 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
map.put("sel1", null); map.put("sel1", null);
map.put("outTravel", workOrder.getTravelExpense()); map.put("outTravel", workOrder.getTravelExpense());
} }
} else { Optional<Integer> status = Optional.ofNullable(workOrder.getStatus());
map.put("in", "--"); if (status.isPresent()) {
map.put("out", total + workOrder.getLaborCost()); if (status.get() == 202) {
map.put("sel2", "√"); map.put("sel4", "√");
map.put("sel1", null); } else {
map.put("outTravel", workOrder.getTravelExpense()); map.put("sel3", "√");
} }
Optional<Integer> status = Optional.ofNullable(workOrder.getStatus());
if (status.isPresent()) {
if (status.get() == 202) {
map.put("sel4", "√");
} else { } else {
map.put("sel3", "√"); map.put("sel4", null);
map.put("sel3", null);
}
//写入Excel并导出
String fileName = workOrder.getRequirementCode() + "运维服务单.xlsx";
zos.putNextEntry(new ZipEntry(fileName));
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
try (ExcelWriter excelWriter = EasyExcel.write(byteArrayOutputStream).withTemplate(fileInputStream).build()) {
WriteSheet writeSheet = EasyExcel.writerSheet().build();
excelWriter.fill(workOrderFillDataList, fillConfig, writeSheet);
excelWriter.fill(map, writeSheet);
excelWriter.finish();
byteArrayOutputStream.writeTo(zos);
zos.closeEntry();
} }
} else {
map.put("sel4", null);
map.put("sel3", null);
}
//写入Excel并导出
ZipOutputStream zos = new ZipOutputStream(response.getOutputStream());
String fileName = workOrder.getReportUnitName() + "运维服务单.xlsx";
zos.putNextEntry(new ZipEntry(fileName));
try (ExcelWriter excelWriter = EasyExcel.write(zos).withTemplate(fileInputStream).build()) {
WriteSheet writeSheet = EasyExcel.writerSheet().build();
excelWriter.fill(workOrderFillDataList, fillConfig, writeSheet);
excelWriter.fill(map, writeSheet);
excelWriter.finish();
zos.flush();
zos.closeEntry();
} }
} }
} }
} }

@ -3,14 +3,19 @@ package org.springblade.modules.business.service.impl.supplies;
import com.aliyun.oss.ServiceException; import com.aliyun.oss.ServiceException;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springblade.core.mp.base.BaseEntity;
import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.CollectionUtil; import org.springblade.core.tool.utils.CollectionUtil;
import org.springblade.modules.business.pojo.entity.supplies.Goods; import org.springblade.modules.business.pojo.entity.supplies.Goods;
import org.springblade.modules.business.excel.supplies.GoodsExcel; import org.springblade.modules.business.excel.supplies.GoodsExcel;
import org.springblade.modules.business.mapper.GoodsMapper; import org.springblade.modules.business.mapper.GoodsMapper;
import org.springblade.modules.business.pojo.entity.supplies.GoodsDetail;
import org.springblade.modules.business.pojo.entity.supplies.WareHouse; import org.springblade.modules.business.pojo.entity.supplies.WareHouse;
import org.springblade.modules.business.service.supplies.IGoodsDetailService;
import org.springblade.modules.business.service.supplies.IGoodsService; import org.springblade.modules.business.service.supplies.IGoodsService;
import org.springblade.modules.business.pojo.vo.supplies.GoodsVO; import org.springblade.modules.business.pojo.vo.supplies.GoodsVO;
import org.springblade.modules.business.service.supplies.IWareHouseService; import org.springblade.modules.business.service.supplies.IWareHouseService;
@ -30,6 +35,7 @@ import java.util.List;
public class GoodsServiceImpl extends BaseServiceImpl<GoodsMapper, Goods> implements IGoodsService { public class GoodsServiceImpl extends BaseServiceImpl<GoodsMapper, Goods> implements IGoodsService {
private final IWareHouseService wareHouseService; private final IWareHouseService wareHouseService;
private final IGoodsDetailService goodsDetailService;
@Override @Override
public IPage<GoodsVO> selectGoodsPage(IPage<GoodsVO> page, GoodsVO goods) { public IPage<GoodsVO> selectGoodsPage(IPage<GoodsVO> page, GoodsVO goods) {
@ -48,13 +54,18 @@ public class GoodsServiceImpl extends BaseServiceImpl<GoodsMapper, Goods> implem
@Override @Override
public void importGoods(List<GoodsExcel> data, Boolean isCovered) { public void importGoods(List<GoodsExcel> data, Boolean isCovered) {
List<Goods> list = new ArrayList<>(); List<Goods> insertList = new ArrayList<>();
List<Goods> updateList = new ArrayList<>();
List<GoodsDetail> insertDetailList = new ArrayList<>();
// 获取仓库数据 // 获取仓库数据
List<WareHouse> wareHouses = wareHouseService.list(); List<WareHouse> wareHouses = wareHouseService.list();
// 遍历保存 // 遍历保存
data.forEach(goodsExcel -> { data.forEach(goodsExcel -> {
Goods goods = BeanUtil.copyProperties(goodsExcel, Goods.class); Goods goods = BeanUtil.copyProperties(goodsExcel, Goods.class);
if (goods != null) { if (goods != null) {
if (StringUtils.isEmpty(goods.getInventoryId())) {
throw new ServiceException("物品【" + goods.getName() + "】未填写库存ID,请修改后再上传!");
}
// 查询符合仓库名称的数据,没有则抛异常 // 查询符合仓库名称的数据,没有则抛异常
List<WareHouse> houseList = wareHouses.stream().filter(wareHouse -> wareHouse.getName().equals(goods.getWarehouseName())).toList(); List<WareHouse> houseList = wareHouses.stream().filter(wareHouse -> wareHouse.getName().equals(goods.getWarehouseName())).toList();
if (CollectionUtil.isEmpty(houseList)) { if (CollectionUtil.isEmpty(houseList)) {
@ -63,14 +74,33 @@ public class GoodsServiceImpl extends BaseServiceImpl<GoodsMapper, Goods> implem
goods.setWarehouseId(houseList.get(0).getId()); goods.setWarehouseId(houseList.get(0).getId());
// 是否已停产 // 是否已停产
goods.setDeactivate("是".equals(goodsExcel.getDeactivate()) ? 1 : 0); goods.setDeactivate("是".equals(goodsExcel.getDeactivate()) ? 1 : 0);
list.add(goods); //根据inventoryId查询是否已存在
Goods oldGoods = baseMapper.selectOne(Wrappers.lambdaQuery(Goods.class).eq(Goods::getInventoryId,goods.getInventoryId()).eq(BaseEntity::getIsDeleted,0));
if(oldGoods != null){
goods.setId(oldGoods.getId());
goods.setNum(goods.getNum() + oldGoods.getNum());
goods.setAllEnterNum(goods.getNum() + oldGoods.getAllEnterNum());
updateList.add(goods);
}else{
goods.setAllEnterNum(goods.getNum());
insertList.add(goods);
}
GoodsDetail goodsDetail = BeanUtil.copyProperties(goods,GoodsDetail.class);
goodsDetail.setId(null);
goodsDetail.setEnterNum(goods.getNum());
insertDetailList.add(goodsDetail);
} }
}); });
if (isCovered) { if(CollectionUtil.isNotEmpty(updateList)){
this.saveOrUpdateBatch(list); this.updateBatchById(updateList);
} else { }
this.saveBatch(list); if(CollectionUtil.isNotEmpty(insertList)){
this.saveBatch(insertList);
} }
if(CollectionUtil.isNotEmpty(insertDetailList)){
goodsDetailService.saveBatch(insertDetailList);
}
} }
} }

@ -79,7 +79,7 @@ public class InOrderServiceImpl extends BaseServiceImpl<InOrderMapper, InOrder>
if (goods.getId().equals(inOrderDetail.getGoodsId())) { if (goods.getId().equals(inOrderDetail.getGoodsId())) {
goods.setNum(goods.getNum() + inOrderDetail.getNum()); goods.setNum(goods.getNum() + inOrderDetail.getNum());
GoodsDetail goodsDetail = BeanUtil.copyProperties(goods,GoodsDetail.class); GoodsDetail goodsDetail = BeanUtil.copyProperties(goods,GoodsDetail.class);
goodsDetail.setInventoryId(null); goodsDetail.setId(null);
goodsDetail.setEnterNum(inOrderDetail.getNum()); goodsDetail.setEnterNum(inOrderDetail.getNum());
goodsDetailList.add(goodsDetail); goodsDetailList.add(goodsDetail);
break; break;

@ -358,7 +358,17 @@ public class UserController {
@Operation(summary = "获取维修人员", description = "获取维修人员") @Operation(summary = "获取维修人员", description = "获取维修人员")
public R<List<User>> repairPersons(boolean isRepair) { public R<List<User>> repairPersons(boolean isRepair) {
BladeUser user = AuthUtil.getUser(); BladeUser user = AuthUtil.getUser();
List<User> users = userService.list(Wrappers.lambdaQuery(User.class).eq(User::getRoleId, "1839552581620793346").eq(User::getDeptId,user.getDeptId())); List<User> users = new ArrayList<>();
if (!user.getRoleName().contains("administrator") && !user.getRoleName().contains("admin")) {
if(user.getRoleName().equals("客服") || user.getRoleName().equals("维修负责人") || user.getRoleName().equals("维修人员")){
users = userService.list(Wrappers.lambdaQuery(User.class).eq(User::getRoleId, "1839552581620793346").eq(User::getDeptId,user.getDeptId()));
}else{
users = userService.list(Wrappers.lambdaQuery(User.class).eq(User::getRoleId, "1839552581620793346").eq(User::getParentDeptId,user.getDeptId()));
}
}else{
users = userService.list(Wrappers.lambdaQuery(User.class).eq(User::getRoleId, "1839552581620793346"));
}
return R.data(users); return R.data(users);
} }

Loading…
Cancel
Save