From 8ce50189f0b00d62390d67fd27f859ca7831616b Mon Sep 17 00:00:00 2001 From: value <z1292839451@163.com> Date: 星期四, 23 五月 2024 17:32:44 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java | 30 ------- cnas-server/src/main/java/com/yuanchu/mom/service/StandardMethodService.java | 6 + cnas-server/src/main/java/com/yuanchu/mom/mapper/StandardMethodMapper.java | 5 cnas-server/src/main/java/com/yuanchu/mom/controller/StandardMethodController.java | 10 ++ cnas-server/src/main/java/com/yuanchu/mom/service/impl/StandardMethodServiceImpl.java | 136 +++++++++++++++++++++++++++++++++ 5 files changed, 150 insertions(+), 37 deletions(-) diff --git a/cnas-server/src/main/java/com/yuanchu/mom/controller/StandardMethodController.java b/cnas-server/src/main/java/com/yuanchu/mom/controller/StandardMethodController.java index 072928d..cb88f6c 100644 --- a/cnas-server/src/main/java/com/yuanchu/mom/controller/StandardMethodController.java +++ b/cnas-server/src/main/java/com/yuanchu/mom/controller/StandardMethodController.java @@ -11,7 +11,9 @@ import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.Map; @Api(tags = "鏍囧噯鏂规硶") @@ -55,4 +57,12 @@ public Result<?> upStandardMethod(@RequestBody StandardMethod standardMethod) { return Result.success(standardMethodService.upStandardMethod(standardMethod)); } + + @ValueClassify("瀹為獙瀹ょ殑妫�娴嬭兘鍔涙。妗�") + @ApiOperation(value = "瀵煎叆鏍囧噯鏄庣粏") + @PostMapping("/importStandardDetails") + public Result<?> importStandardDetails(@RequestPart("file") MultipartFile file) throws IOException { + standardMethodService.inputExcel(file); + return Result.success(); + } } diff --git a/cnas-server/src/main/java/com/yuanchu/mom/mapper/StandardMethodMapper.java b/cnas-server/src/main/java/com/yuanchu/mom/mapper/StandardMethodMapper.java index 9fcddc7..065b6b1 100644 --- a/cnas-server/src/main/java/com/yuanchu/mom/mapper/StandardMethodMapper.java +++ b/cnas-server/src/main/java/com/yuanchu/mom/mapper/StandardMethodMapper.java @@ -3,9 +3,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yuanchu.mom.mybatis_config.MyBaseMapper; import com.yuanchu.mom.pojo.StandardMethod; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.yuanchu.mom.pojo.StructureItemParameter; /** * @author Administrator @@ -13,7 +12,7 @@ * @createDate 2024-03-03 19:21:41 * @Entity com.yuanchu.mom.pojo.StandardMethod */ -public interface StandardMethodMapper extends BaseMapper<StandardMethod> { +public interface StandardMethodMapper extends MyBaseMapper<StandardMethod> { IPage<StandardMethod> selectStandardMethodList(Page page, QueryWrapper<StandardMethod> ew); diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/StandardMethodService.java b/cnas-server/src/main/java/com/yuanchu/mom/service/StandardMethodService.java index 8bfb29f..7f7d8fb 100644 --- a/cnas-server/src/main/java/com/yuanchu/mom/service/StandardMethodService.java +++ b/cnas-server/src/main/java/com/yuanchu/mom/service/StandardMethodService.java @@ -1,10 +1,11 @@ package com.yuanchu.mom.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.yuanchu.mom.pojo.StandardMethod; import com.baomidou.mybatisplus.extension.service.IService; -import com.yuanchu.mom.pojo.StructureItemParameter; +import com.yuanchu.mom.pojo.StandardMethod; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; import java.util.Map; @@ -25,4 +26,5 @@ int upStandardMethod(StandardMethod standardMethod); + void inputExcel(MultipartFile file) throws IOException; } diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/StandardMethodServiceImpl.java b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/StandardMethodServiceImpl.java index 146faef..2e227d8 100644 --- a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/StandardMethodServiceImpl.java +++ b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/StandardMethodServiceImpl.java @@ -1,5 +1,8 @@ package com.yuanchu.mom.service.impl; +import cn.hutool.json.JSONUtil; +import cn.hutool.poi.excel.ExcelUtil; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -11,10 +14,11 @@ import com.yuanchu.mom.utils.QueryWrappers; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.io.IOException; +import java.util.*; /** * @author Administrator @@ -62,6 +66,132 @@ int i = standardMethodMapper.updateById(standardMethod); return i; } + + @Transactional(rollbackFor = Exception.class) + @Override + public void inputExcel(MultipartFile file) throws IOException { + // 瀛樺偍妫�娴嬪璞ist + List<Object> structureTestObjectIdList = new ArrayList<>(); + List<StandardMethod> result = new ArrayList<>(); + ExcelUtil.readBySax(file.getInputStream(), 0, (i, l, list) -> { + // 鍘婚櫎绗竴琛岃〃澶� + if (l == 0) { + return; + } + // 瀛樺偍鍞竴妫�娴嬪璞� + if (!structureTestObjectIdList.contains(list.get(2))) { + structureTestObjectIdList.add(list.get(2)); + } + StandardMethod standardMethod = formatData(list); + result.add(standardMethod); + }); + addStructureTest(structureTestObjectIdList, result); + } + + // 鏍煎紡鍖栨暟鎹� + public StandardMethod formatData(List<Object> list) { + StandardMethod standardMethod = new StandardMethod(); + standardMethod.setField(list.get(1).toString()); + // 閫犳牸寮� + List<List<Object>> structureTestObjectId = new ArrayList<>(); + if (ObjectUtils.isEmpty(list.get(3))){ + structureTestObjectId.add(Arrays.asList(list.get(2))); + } else { + structureTestObjectId.add(Arrays.asList(list.get(2), list.get(3))); + } + standardMethod.setStructureTestObjectId(JSONUtil.toJsonStr(structureTestObjectId)); + standardMethod.setCode(list.get(4).toString()); + standardMethod.setName(list.get(5).toString()); + standardMethod.setNameEn(list.get(6).toString()); + if (!Objects.equals(list.get(7), null)) { + standardMethod.setRemark(list.get(7).toString()); + } + standardMethod.setQualificationId(list.get(8).toString()); + if (ObjectUtils.isNotEmpty(list.get(9))) { + if (list.get(9).equals("鏄�")) { + standardMethod.setIsProduct(1); + } else if (list.get(9).equals("鍚�")) { + standardMethod.setIsProduct(0); + } + } + if (ObjectUtils.isNotEmpty(list.get(10))) { + if (list.get(10).equals("鏄�")) { + standardMethod.setIsUse(1); + } else if (list.get(9).equals("鍚�")) { + standardMethod.setIsUse(0); + } + } + return standardMethod; + } + + // 鏂板鏁版嵁 + public void addStructureTest(List<Object> structureTestObjectIdList, List<StandardMethod> standardMethodList) { + List<StandardMethod> updateList = new ArrayList<>(); + List<Integer> deleteListId = new ArrayList<>(); + List<StandardMethod> addList = new ArrayList<>(); + if (!structureTestObjectIdList.isEmpty()) { + // 寰幆excel閲岄潰鐨勫垎缁� + structureTestObjectIdList.forEach(j -> { + // 浠xcel涓殑缁勫悕鏌ヨ鏁版嵁搴撲腑鐨勫垎缁� + List<StandardMethod> standardMethods = baseMapper.selectList(Wrappers.<StandardMethod>lambdaQuery() + .like(StandardMethod::getStructureTestObjectId, "\"" + j + "\"")); + // 灏嗙粨鏋滃惊鐜尮閰� + for (int i = 0; i < standardMethods.size(); i++) { + boolean isExistence = false; + for (int i1 = 0; i1 < standardMethodList.size(); i1++) { + // 鏇存柊 + if (standardMethods.get(i).getStructureTestObjectId().equals(standardMethodList.get(i1).getStructureTestObjectId()) + && standardMethods.get(i).getCode().equals(standardMethodList.get(i1).getCode()) + && standardMethods.get(i).getField().equals(standardMethodList.get(i1).getField())) { + // 缁檈xcel鏁版嵁璧嬪�糹d鍋氭洿鏂� + standardMethodList.get(i1).setId(standardMethods.get(i).getId()); + // 鏇存柊 + updateList.add(standardMethodList.get(i1)); + isExistence = true; + break; + } + } + // 鍒犻櫎 + if (!isExistence) { + deleteListId.add(standardMethods.get(i).getId()); + } + } + for (int i = 0; i < standardMethodList.size(); i++) { + if (standardMethodList.get(i).getStructureTestObjectId().contains("\"" + j + "\"")) { + boolean isExistence = false; + for (int i1 = 0; i1 < standardMethods.size(); i1++) { + if (standardMethods.get(i1).getStructureTestObjectId().equals(standardMethodList.get(i).getStructureTestObjectId()) + && standardMethods.get(i1).getCode().equals(standardMethodList.get(i).getCode()) + && standardMethods.get(i1).getField().equals(standardMethodList.get(i).getField())) { + isExistence = true; + break; + } + } + // 鏂板 + if (!isExistence) { + addList.add(standardMethodList.get(i)); + } + } + } + }); + } + if (!addList.isEmpty()) { + // 鏂板 + baseMapper.insertBatchSomeColumn(addList); + } + + if (!deleteListId.isEmpty()) { + // 鍒犻櫎 + baseMapper.deleteBatchIds(deleteListId); + } + + if (!updateList.isEmpty()) { + // 鏇存柊 + updateList.forEach(i -> { + baseMapper.updateById(i); + }); + } + } } diff --git a/system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java b/system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java index 7ff4ee0..c9fa8ae 100644 --- a/system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java +++ b/system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java @@ -1,42 +1,14 @@ package com.yuanchu.mom; -import com.alibaba.excel.EasyExcel; -import com.alibaba.excel.write.style.HorizontalCellStyleStrategy; -import com.yuanchu.mom.service.PerformanceShiftService; -import com.yuanchu.mom.utils.StyleYearUtils; import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; - -import java.util.Collection; -import java.util.List; -import java.util.Map; @SpringBootTest class SystemRunApplicationTest { - @Autowired - private PerformanceShiftService performanceShiftService; - - private static String fileName = "D:\\" + System.currentTimeMillis() + ".xlsx"; - @Test void contextLoads() throws Exception { - Map<Object, Object> data = performanceShiftService.exportToYearExcel("2024-05-01 00:00:00", null, null); - // 璁剧疆鍗曞厓鏍兼牱寮� - HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(StyleYearUtils.getHeadStyle(), StyleYearUtils.getContentStyle()); - EasyExcel.write(fileName) - .head((List<List<String>>) data.get("header")) - .registerWriteHandler(horizontalCellStyleStrategy) - .sheet("鏈堝害") - .doWrite((Collection<?>) data.get("data")); -// String url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?corpid=wwa423654b975441ac&corpsecret=J3fbMJoTn3LmrWDobvS5JpU8N0TvEbGkVl8OhvIsol0"; -// String s = HttpUtil.get(url); -// System.out.println(s); -// Map<String, Object> unmarshal = JSONObject.parseObject(s, Map.class); -// String checkInRecords = "https://qyapi.weixin.qq.com/cgi-bin/checkin/getcheckindata?access_token=" + unmarshal.get("access_token"); -// String body = HttpRequest.post(checkInRecords).execute().body(); -// System.out.println(body); + } } -- Gitblit v1.9.3