From c468b12a423cb0502cb32f9bbedb798bb2a7542f Mon Sep 17 00:00:00 2001 From: yang_shj <1069818635@QQ.com> Date: Mon, 22 Jan 2024 09:34:25 +0800 Subject: [PATCH 1/6] =?UTF-8?q?#=E6=A3=80=E4=BF=AE=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../access/entity/OperAccessContentEntity.java | 50 +++++----------------- .../service/impl/AccessPlanV4ServiceImpl.java | 1 + 2 files changed, 11 insertions(+), 40 deletions(-) diff --git a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/entity/OperAccessContentEntity.java b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/entity/OperAccessContentEntity.java index 336f1fd..0cb25dc 100644 --- a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/entity/OperAccessContentEntity.java +++ b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/entity/OperAccessContentEntity.java @@ -25,16 +25,11 @@ public class OperAccessContentEntity extends TenantEntity { private static final long serialVersionUID = 1L; - /** - * 库ID - */ + @ApiModelProperty(value = "库ID") @JsonSerialize(nullsUsing = NullSerializer.class) private Long libraryId; - /** - * 计划ID - */ @ApiModelProperty(value = "计划ID") @JsonSerialize(nullsUsing = NullSerializer.class) private Long planId; @@ -43,73 +38,48 @@ public class OperAccessContentEntity extends TenantEntity { @JsonSerialize(nullsUsing = NullSerializer.class) private Long ticketTemplateId; - /** - * 计划开始时间 - */ @ApiModelProperty(value = "计划开始时间") private Date planStartTime; - /** - * 计划结束时间 - */ @ApiModelProperty(value = "计划结束时间") private Date planEndTime; - /** - * 设备编码 - */ + @ApiModelProperty("站点编码") + private String stationCode; + + @ApiModelProperty("站点名称") + private String stationName; + + @ApiModelProperty("设备名称") + private String emName; + @ApiModelProperty(value = "设备编码") private String emCode; - /** - * 名称 - */ @ApiModelProperty(value = "名称") private String name; - /** - * 类型 - */ @ApiModelProperty(value = "类型") @JsonSerialize(nullsUsing = NullSerializer.class) private Integer typeCode; - /** - * 检修等级 - */ @ApiModelProperty(value = "检修等级") private String gradeCode; - /** - * 操作规范 - */ @ApiModelProperty(value = "操作规范") private String workStandards; - /** - * 安全警告 - */ @ApiModelProperty(value = "安全警告") private String safeInfos; - /** - * 实际工时 - */ @ApiModelProperty(value = "实际工时") @JsonSerialize(nullsUsing = NullSerializer.class) private Integer actHours; - /** - * 负责人 - */ @ApiModelProperty(value = "负责人") @JsonSerialize(nullsUsing = NullSerializer.class) private Long manager; - /** - * 描述 - */ @ApiModelProperty(value = "描述") private String descripiton; - } diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/AccessPlanV4ServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/AccessPlanV4ServiceImpl.java index d7eaced..9c2a6c5 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/AccessPlanV4ServiceImpl.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/AccessPlanV4ServiceImpl.java @@ -147,6 +147,7 @@ public class AccessPlanV4ServiceImpl implements AccessPlanV4Service{ material.setIsDeleted(0); materialService.save(material); } + } /** From 9c14f689c63867df9c7a0d4c43652f47df10982b Mon Sep 17 00:00:00 2001 From: yang_shj <1069818635@QQ.com> Date: Mon, 22 Jan 2024 10:06:31 +0800 Subject: [PATCH 2/6] =?UTF-8?q?#=E6=A3=80=E4=BF=AE=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hzims/operational/access/controller/AccessPlanV4Controller.java | 1 - .../hzims/operational/main/service/impl/RunMonthReportServiceImpl.java | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/AccessPlanV4Controller.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/AccessPlanV4Controller.java index 3f73b8b..045776f 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/AccessPlanV4Controller.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/AccessPlanV4Controller.java @@ -16,7 +16,6 @@ import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springframework.web.bind.annotation.*; -import javax.servlet.http.HttpServletResponse; /** diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/RunMonthReportServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/RunMonthReportServiceImpl.java index d7add83..3a13109 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/RunMonthReportServiceImpl.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/RunMonthReportServiceImpl.java @@ -283,7 +283,7 @@ public class RunMonthReportServiceImpl extends ServiceImpl> statorMap = getHisData(emInfoExtendVo.getNumber(), map, df, statorSignages, signKeyMap, date); - runMonthReportUnitVoDZ.setName(emInfoExtendVo.getName() + "定子温度曲线"); + runMonthReportUnitVoDZ.setName(emInfoExtendVo.getName() + "定子电流/电压曲线"); runMonthReportUnitVoDZ.setDataMap(statorMap); unitYcDataList.add(runMonthReportUnitVoDZ); From 8281c5cc44436f6f9a1b252f6fdd68b50edb3ab1 Mon Sep 17 00:00:00 2001 From: haungxing <1203316822@qq.com> Date: Mon, 22 Jan 2024 11:31:27 +0800 Subject: [PATCH 3/6] =?UTF-8?q?#=20=E9=A3=8E=E9=99=A9=E9=9A=90=E6=82=A3?= =?UTF-8?q?=E5=AD=97=E5=85=B8=E8=A1=A5=E5=85=85=E8=84=9A=E6=9C=AC=20#=20?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E7=A5=A8=E6=B0=B4=E5=88=A9=E6=9C=BA=E6=A2=B0?= =?UTF-8?q?=E7=A5=A8=E7=AC=AC=E4=BA=8C=E7=A7=8D=E6=B5=81=E7=A8=8B=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SafetyToolServiceImpl.java | 3 + .../safeproduct/src/main/resources/db/1.0.2.sql | 136 ++++++++++- .../service/impl/TicketProcessServiceImpl.java | 24 ++ .../file/水力机械工作票流程.bpmn20.xml | 149 +++++------- .../水力机械工作票流程.bpmn20_bak.xml | 268 +++++++++++++++++++++ 5 files changed, 495 insertions(+), 85 deletions(-) create mode 100644 hzims-service/ticket/src/main/resources/file/水力机械工作票流程.bpmn20_bak.xml diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/SafetyToolServiceImpl.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/SafetyToolServiceImpl.java index 1e9e002..195239c 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/SafetyToolServiceImpl.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/SafetyToolServiceImpl.java @@ -305,6 +305,9 @@ public class SafetyToolServiceImpl extends BaseServiceImpl - - - - - - @@ -87,16 +81,9 @@ - - - - - - - @@ -119,149 +106,143 @@ + + + + - + - + - + - + - + - + - - - - + - + - + - + - + - + - + - + - + - + - + - - - - - - + + - - + + - - - + + + - - - + + + - - - - - - - + + - - + + - - + + - - - + + + + + + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - - + + - - + + - - - + + diff --git a/hzims-service/ticket/src/main/resources/file/水力机械工作票流程.bpmn20_bak.xml b/hzims-service/ticket/src/main/resources/file/水力机械工作票流程.bpmn20_bak.xml new file mode 100644 index 0000000..f15bd78 --- /dev/null +++ b/hzims-service/ticket/src/main/resources/file/水力机械工作票流程.bpmn20_bak.xml @@ -0,0 +1,268 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From eceb5b74fce67d3954b6324826f770b791b5a776 Mon Sep 17 00:00:00 2001 From: yang_shj <1069818635@QQ.com> Date: Mon, 22 Jan 2024 16:17:10 +0800 Subject: [PATCH 4/6] =?UTF-8?q?#=E6=A3=80=E4=BF=AE=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/hnac/hzims/spare/feign/ISpareClient.java | 2 +- .../access/entity/OperAccessLibraryEntity.java | 6 ++ .../com/hnac/hzims/spare/feign/SpareClient.java | 4 + .../hnac/hzims/spare/mapper/WtSpBasicMapper.java | 3 +- .../hnac/hzims/spare/mapper/WtSpBasicMapper.xml | 8 +- .../controller/OperAccessLibraryController.java | 7 ++ .../controller/OperAccessTaskController.java | 1 + .../access/service/IOperAccessLibraryService.java | 4 + .../service/impl/OperAccessLibraryServiceImpl.java | 104 ++++++++++++++++++++- .../template/excel/access_import_template.xls | Bin 22528 -> 0 bytes .../template/excel/access_import_template.xlsx | Bin 0 -> 22528 bytes .../workTicket/mapper/xml/WorkTicketInfoMapper.xml | 4 +- 12 files changed, 130 insertions(+), 13 deletions(-) delete mode 100644 hzims-service/operational/src/main/resources/template/excel/access_import_template.xls create mode 100644 hzims-service/operational/src/main/resources/template/excel/access_import_template.xlsx diff --git a/hzims-service-api/assets-api/src/main/java/com/hnac/hzims/spare/feign/ISpareClient.java b/hzims-service-api/assets-api/src/main/java/com/hnac/hzims/spare/feign/ISpareClient.java index 0318679..b167472 100644 --- a/hzims-service-api/assets-api/src/main/java/com/hnac/hzims/spare/feign/ISpareClient.java +++ b/hzims-service-api/assets-api/src/main/java/com/hnac/hzims/spare/feign/ISpareClient.java @@ -37,6 +37,6 @@ public interface ISpareClient { @PostMapping(EXCEED_LIMIT) List exceedLimit(@RequestParam("deptId") Long deptId); - @GetMapping(EXCEED_LIMIT) + @PostMapping(SPARE_PART) List sparePart(@RequestParam("basics") List basics); } diff --git a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/entity/OperAccessLibraryEntity.java b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/entity/OperAccessLibraryEntity.java index c354b32..72d1e33 100644 --- a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/entity/OperAccessLibraryEntity.java +++ b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/entity/OperAccessLibraryEntity.java @@ -34,6 +34,12 @@ public class OperAccessLibraryEntity extends TenantEntity { private String emCode; /** + * 设备编码 + */ + @ApiModelProperty(value = "设备名称") + private String emName; + + /** * 检修等级 */ @ApiModelProperty(value = "检修等级") diff --git a/hzims-service/assets/src/main/java/com/hnac/hzims/spare/feign/SpareClient.java b/hzims-service/assets/src/main/java/com/hnac/hzims/spare/feign/SpareClient.java index 7eaa129..fc5eb87 100644 --- a/hzims-service/assets/src/main/java/com/hnac/hzims/spare/feign/SpareClient.java +++ b/hzims-service/assets/src/main/java/com/hnac/hzims/spare/feign/SpareClient.java @@ -14,6 +14,9 @@ import org.springblade.core.tool.utils.CollectionUtil; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.ObjectUtil; import org.springblade.system.feign.ISysClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.annotations.ApiIgnore; @@ -137,6 +140,7 @@ public class SpareClient implements ISpareClient{ * @return */ @Override + @PostMapping(SPARE_PART) public List sparePart(List basics) { return wtSpBasicService.sparePart(basics); } diff --git a/hzims-service/assets/src/main/java/com/hnac/hzims/spare/mapper/WtSpBasicMapper.java b/hzims-service/assets/src/main/java/com/hnac/hzims/spare/mapper/WtSpBasicMapper.java index 3ec89f4..2d619bf 100644 --- a/hzims-service/assets/src/main/java/com/hnac/hzims/spare/mapper/WtSpBasicMapper.java +++ b/hzims-service/assets/src/main/java/com/hnac/hzims/spare/mapper/WtSpBasicMapper.java @@ -4,6 +4,7 @@ import com.hnac.hzims.spare.entity.SpTemporaryStockDetailEntity; import com.hnac.hzims.spare.entity.WtSpBasicEntity; import com.hnac.hzims.spare.vo.SparePartVO; import com.hnac.hzims.spare.vo.WtSpBasicVO; +import org.apache.ibatis.annotations.Param; import org.springblade.core.datascope.annotation.UserDataAuth; import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; import org.springframework.web.bind.annotation.RequestParam; @@ -48,5 +49,5 @@ public interface WtSpBasicMapper extends UserDataScopeBaseMapper getInList(Long spBasicId); - List sparePart(@RequestParam("basics") List basics); + List sparePart(@Param("basicIds") List basics); } diff --git a/hzims-service/assets/src/main/java/com/hnac/hzims/spare/mapper/WtSpBasicMapper.xml b/hzims-service/assets/src/main/java/com/hnac/hzims/spare/mapper/WtSpBasicMapper.xml index 7db89ac..3e12697 100644 --- a/hzims-service/assets/src/main/java/com/hnac/hzims/spare/mapper/WtSpBasicMapper.xml +++ b/hzims-service/assets/src/main/java/com/hnac/hzims/spare/mapper/WtSpBasicMapper.xml @@ -101,10 +101,10 @@ LEFT JOIN WT_SP_WAREHOUSE house ON total.WAREHOUSE_ID = house.id 1 = 2 OR - - and basic.ID in - - #{basic} + + basic.ID in + + #{item} diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/OperAccessLibraryController.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/OperAccessLibraryController.java index 896e2f3..5eeaf3b 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/OperAccessLibraryController.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/OperAccessLibraryController.java @@ -98,4 +98,11 @@ public class OperAccessLibraryController extends BladeController { public void downLoad() { service.downLoad(); } + + @ApiOperation(value = "检修库导入") + @ApiOperationSupport(order = 7) + @PostMapping(value = "/import") + public void libraryImport(@RequestParam("library") MultipartFile multipartFile) { + service.libraryImport(multipartFile); + } } \ No newline at end of file diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/OperAccessTaskController.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/OperAccessTaskController.java index de3219d..2ebc882 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/OperAccessTaskController.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/OperAccessTaskController.java @@ -101,6 +101,7 @@ public class OperAccessTaskController extends BladeController { public R> list(OperAccessTaskDTO req, Query query) { return service.list(req, query); } + /** * 分页 */ diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/IOperAccessLibraryService.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/IOperAccessLibraryService.java index 6704dcd..0abc6f7 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/IOperAccessLibraryService.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/IOperAccessLibraryService.java @@ -10,6 +10,8 @@ import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; + /** * 服务类 * @@ -27,4 +29,6 @@ public interface IOperAccessLibraryService extends BaseService> list(OperAccessLibraryListDTO req, Query query); void downLoad(); + + void libraryImport(MultipartFile multipartFile); } diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/OperAccessLibraryServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/OperAccessLibraryServiceImpl.java index f4d82a6..ef3725f 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/OperAccessLibraryServiceImpl.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/OperAccessLibraryServiceImpl.java @@ -17,25 +17,37 @@ import com.hnac.hzims.operational.access.service.IOperAccessLibraryDetailService import com.hnac.hzims.operational.access.service.IOperAccessLibraryService; import com.hnac.hzims.operational.access.vo.OperAccessLibraryVO; import com.hnac.hzims.operational.access.wrapper.OperAccessLibraryWrapper; +import com.hnac.hzims.operational.util.ExcelUtil; +import com.hnac.hzims.operational.util.PdfUtils; import com.hnac.hzims.safeproduct.feign.IDangerSourceClient; import org.apache.commons.lang.StringUtils; -import org.jfree.chart.util.ExportUtils; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.CollectionUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.system.cache.DictCache; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.io.Resource; +import org.springframework.core.io.support.PathMatchingResourcePatternResolver; +import org.springframework.core.io.support.ResourcePatternResolver; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; +import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; +import java.net.URLEncoder; +import java.nio.file.Files; +import java.util.*; import java.util.stream.Collectors; /** @@ -99,13 +111,95 @@ public class OperAccessLibraryServiceImpl extends BaseServiceImpl details = new ArrayList<>(); + Long libraryId = null; + for (int i = 2; i <= rows + 1; i++) { + // 读取左上端单元格 + Row row = sheet.getRow(i); + // 行不为空 + if (row == null) { + continue; + } + if( (i - 1) % 4 == 1){ + if(StringUtils.isEmpty(row.getCell(1).getStringCellValue())){ + continue; + } + OperAccessLibraryEntity library = new OperAccessLibraryEntity(); + library.setEmName(row.getCell(1).getStringCellValue()); + library.setGradeCode(DictCache.getValue("gradeCode",row.getCell(2).getStringCellValue())); + library.setLastServiceTime(row.getCell(3).getDateCellValue()); + library.setPeriod((int)row.getCell(4).getNumericCellValue()); + library.setStopHours((int)row.getCell(5).getNumericCellValue()); + this.save(library); + libraryId = library.getId(); + } + if(StringUtils.isNotEmpty(row.getCell(6).getStringCellValue())){ + OperAccessLibraryDetailEntity detail = new OperAccessLibraryDetailEntity(); + detail.setName(row.getCell(6).getStringCellValue()); + detail.setContent(row.getCell(7).getStringCellValue()); + detail.setPid(libraryId); + details.add(detail); + } + } + this.libraryDetailService.saveBatch(details); + } + + /** * 调整检修库明细 * * @author xiashandong diff --git a/hzims-service/operational/src/main/resources/template/excel/access_import_template.xls b/hzims-service/operational/src/main/resources/template/excel/access_import_template.xls deleted file mode 100644 index 6c76782a18da17fa4f7c10b268ac91eec2d8453c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22528 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 h2k~$WRbJF|Od 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 h2k~$W - and info.make_date_time >= #{startTime} + and info.plan_start_time >= #{startTime} - and info.make_date_time <= #{endTime} + and info.plan_start_time <= #{endTime} GROUP BY info.EM_CODE,info.`type` From cd4f4b0a3f981d0ceda6ec1a36bf6a4447f52cf1 Mon Sep 17 00:00:00 2001 From: haungxing <1203316822@qq.com> Date: Mon, 22 Jan 2024 16:20:02 +0800 Subject: [PATCH 5/6] =?UTF-8?q?#=20=E6=97=A5=E5=B8=B8=E7=BB=B4=E6=8A=A4?= =?UTF-8?q?=E6=9C=88=E5=BA=A6=E6=9F=A5=E8=AF=A2=E5=88=86=E9=A1=B5=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MaintenanceTaskQueryController.java | 10 ++++++++++ .../maintenance/service/IMaintenanceTaskQueryService.java | 6 +++++- .../service/impl/MaintenanceTaskQueryServiceImpl.java | 14 ++++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/maintenance/controller/MaintenanceTaskQueryController.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/maintenance/controller/MaintenanceTaskQueryController.java index c58ff94..215cfef 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/maintenance/controller/MaintenanceTaskQueryController.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/maintenance/controller/MaintenanceTaskQueryController.java @@ -1,10 +1,12 @@ package com.hnac.hzims.operational.maintenance.controller; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.hnac.hzims.operational.maintenance.service.IMaintenanceTaskQueryService; import com.hnac.hzims.operational.maintenance.vo.MaintenanceTaskQueryVO; import io.swagger.annotations.*; import lombok.AllArgsConstructor; import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -37,6 +39,14 @@ public class MaintenanceTaskQueryController extends BladeController { return R.data(maintenanceTaskQueryService.getMaintenanceTaskQuery(month, deptId)); } + @GetMapping("/getMaintenanceTaskPage") + @ApiOperation("查询日常维护任务-分页查询") + @ApiOperationSupport(order = 1) + public R getMaintenanceTaskPage(@RequestParam("month") @ApiParam(value = "查询月份",required = true) String month, + @RequestParam(value = "deptId",required = false) @ApiParam("查询机构") Long deptId, Query query) { + return R.data(maintenanceTaskQueryService.getMaintenanceTaskPage(month,deptId,query)); + } + @GetMapping("/exportMaintenanceTaskQuery") @ApiOperation("导出日常维护任务") @ApiOperationSupport(order = 1) diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/maintenance/service/IMaintenanceTaskQueryService.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/maintenance/service/IMaintenanceTaskQueryService.java index 4223c84..4fd388c 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/maintenance/service/IMaintenanceTaskQueryService.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/maintenance/service/IMaintenanceTaskQueryService.java @@ -1,13 +1,17 @@ package com.hnac.hzims.operational.maintenance.service; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.hnac.hzims.operational.maintenance.vo.MaintenanceTaskQueryVO; +import org.springblade.core.mp.support.Query; import javax.servlet.http.HttpServletResponse; import java.util.List; public interface IMaintenanceTaskQueryService { - List getMaintenanceTaskQuery(String month,Long deptId); + IPage getMaintenanceTaskPage(String month, Long deptId, Query query); + + List getMaintenanceTaskQuery(String month, Long deptId); void exportMaintenanceTaskQuery(String month, Long deptId, HttpServletResponse response); diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/maintenance/service/impl/MaintenanceTaskQueryServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/maintenance/service/impl/MaintenanceTaskQueryServiceImpl.java index ec533e2..11c2053 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/maintenance/service/impl/MaintenanceTaskQueryServiceImpl.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/maintenance/service/impl/MaintenanceTaskQueryServiceImpl.java @@ -8,8 +8,10 @@ import com.alibaba.excel.write.metadata.style.WriteCellStyle; import com.alibaba.excel.write.style.HorizontalCellStyleStrategy; import com.alibaba.excel.write.style.column.SimpleColumnWidthStyleStrategy; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.google.common.collect.Lists; +import com.hnac.hzims.common.utils.Condition; import com.hnac.hzims.equipment.entity.EmInfoEntity; import com.hnac.hzims.equipment.feign.IEmInfoClient; import com.hnac.hzims.operational.maintenance.constants.DictConstant; @@ -22,6 +24,7 @@ import com.hnac.hzims.spare.entity.WtSpBasicEntity; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.poi.ss.usermodel.BorderStyle; +import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.CollectionUtil; import org.springblade.core.tool.utils.DateUtil; @@ -60,6 +63,17 @@ public class MaintenanceTaskQueryServiceImpl implements IMaintenanceTaskQuerySer @Override + public IPage getMaintenanceTaskPage(String month, Long deptId, Query query) { + LambdaQueryWrapper wq = Wrappers.lambdaQuery() + .like(OperMaintenanceTaskEntity::getDisposeTime, month) + .like(Func.isNotEmpty(deptId),OperMaintenanceTaskEntity::getCreateDept,deptId) + .orderByAsc(OperMaintenanceTaskEntity::getDisposeTime); + IPage page = maintenanceTaskService.page(Condition.getPage(query), wq); + page.setRecords(this.fillTaskQuery(page.getRecords())); + return page; + } + + @Override public List getMaintenanceTaskQuery(String month,Long deptId) { LambdaQueryWrapper wq = Wrappers.lambdaQuery() .like(OperMaintenanceTaskEntity::getDisposeTime, month) From 97ea7d7a639e21e6657cb014bc466f1fdf5f4a89 Mon Sep 17 00:00:00 2001 From: yang_shj <1069818635@QQ.com> Date: Mon, 22 Jan 2024 17:26:51 +0800 Subject: [PATCH 6/6] =?UTF-8?q?#=E6=A3=80=E4=BF=AE=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/OperAccessLibraryController.java | 2 +- .../template/excel/access_import_template.xlsx | Bin 22528 -> 22528 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/OperAccessLibraryController.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/OperAccessLibraryController.java index 5eeaf3b..d83c0c7 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/OperAccessLibraryController.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/OperAccessLibraryController.java @@ -102,7 +102,7 @@ public class OperAccessLibraryController extends BladeController { @ApiOperation(value = "检修库导入") @ApiOperationSupport(order = 7) @PostMapping(value = "/import") - public void libraryImport(@RequestParam("library") MultipartFile multipartFile) { + public void libraryImport(@RequestParam MultipartFile multipartFile) { service.libraryImport(multipartFile); } } \ No newline at end of file diff --git a/hzims-service/operational/src/main/resources/template/excel/access_import_template.xlsx b/hzims-service/operational/src/main/resources/template/excel/access_import_template.xlsx index 6c76782a18da17fa4f7c10b268ac91eec2d8453c..db66ce3aad4a12c2cfba83b5c2cc1f24b39420ab 100644 GIT binary patch delta 1422 zcmc(f&rcIU6vy8zOP3bIGNyqgQxmty0uEH;b3AW`(|f9-}mM_uag!_ ztXN{D8QHNjy!@c+9OmWQ>?3}c3oKv0+3uDG`(X(Hs)c)uCJCUE#UT&Vkb@bBK!Rcp zF2gm5feuR;SNxg%XY5y5UQt3$=E8SAgLU$VQPqh~)yv#sb%|CRJ}>hMg%5M8!Bi17 zyif0%_}-0csu9%b7`s&;z`Uxi_O14T?2K%ZcRzk38u&@4rfT%0pave&jNpMfU5A_* ziPEwnXb>lf_SESLfEh6(AP)+95N{C;HPNV`VSJ$(EQ~STU?JRUsT{VIYByKLDTa7# zQM2YYjMs(okx)`>p&a_HCOQ0L%@ekgJFNT6>8)y>ww2TkQr31~)9>O{zaHj2?w}qp z&;U-Us_2m2KPOK64?8RvI2tdN=l$9-_7$JT-$=6~cqMV1?Uol3@7p|cl8awJx^n$?R!W{5MIh*mjV;rscg8B!d=!2@tFwDr3}5M;HfS< zwZp_GsjSsV?P^Z79lBc*Ud&?`^O<b(Mp(y3`v4?HT z>42mpr7z>J?pPR}c+IwPV`4P8O}a`I7Mo^_O&W#G8ioHfXa4=h7|aa0D%J5tg^p$x WF`XH}VrIcnJYvxwZ@KsUXZZ*15jy1n delta 1163 zcmc&yOK1~882)Fo-DH#6WG0*4W=k|J8X*)KA0Q~SF*Z-^!x-w(f}kKm)r*Q?l8aZN zzfcj;9EA25+~P%PdlJEe2L97*zM$Qwu%3)h+;>obXHEnJqEc7?R2H#iPh$@hI+xU|W?9g0EtV^#te?^=K z-y*iZ9lPH4Nd9Jyqmj#^+dzN;q;M%Rgg+xp$-{w56RQ@}*)W;IU75$ymqYkIvzMH* z^dm1kej+I#aajiNdv1ngaWZctvycTZtbh(ZHk9G8vvM{fM2aKAd}Z9F`~IN2i27GV z7>Qf+^pQd(=F)pN)3H%7LJmX7`W)G_!p3|)Y2B-e3%iD5m^zOT)qMzW7eC{fV#UMh zxKcExT$z}vjWP#$1u4k!*4!rvI1eQ-?X_jaou&PKArLJf5aLT!t<$C39{hZC{=uX! zc}J!C?yt*vj7>ixi}-qaEV{_KYc06Dsp6hvMz!If@Ske=-v?u~ypN9|&Xkjwl6_b! R-%{Y}QoLTWwjX~d{{pG23|0UD