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] =?UTF-8?q?#=E6=A3=80=E4=BF=AE=E5=AF=BC=E5=85=A5=E4=BF=AE?= =?UTF-8?q?=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`