diff --git a/ServiceSite/facade/src/main/java/com/seasky/seaskyocr/api/IInvoiceSettingController.java b/ServiceSite/facade/src/main/java/com/seasky/seaskyocr/api/IInvoiceSettingController.java index bfe7e07327b006942962ba19450856227af0c8b7..df9076f56a763320f039dd753c95868f98bf9a4a 100644 --- a/ServiceSite/facade/src/main/java/com/seasky/seaskyocr/api/IInvoiceSettingController.java +++ b/ServiceSite/facade/src/main/java/com/seasky/seaskyocr/api/IInvoiceSettingController.java @@ -27,6 +27,24 @@ public interface IInvoiceSettingController { @PostMapping(path = "createInvoiceSetting") Result<Long> createInvoiceSetting(@RequestBody InvoiceSettingCmd cmd); +// @PostMapping("pc/v1/importInvoiceSetting") +// Result<Object> importInvoiceSetting(HttpServletRequest request, HttpServletResponse response, @RequestBody MultipartFile file) throws Exception; + +// @PostMapping("pc/v1/exportInvoiceSetting") +// Result<Object> exportInvoiceSetting(HttpServletRequest request, HttpServletResponse response,@RequestBody InvoiceSettingPageQry qry); + +// @GetMapping("pc/v1/downloadInvoiceSettingTemplate") +// Result<Object> downloadInvoiceSettingTemplate(HttpServletRequest request, HttpServletResponse response); + +// @PostMapping("pc/v1/importInvoicePropertySetting") +// Result<Object> importInvoicePropertySetting(HttpServletRequest request, HttpServletResponse response, @RequestBody MultipartFile file) throws Exception; + +// @PostMapping("pc/v1/exportInvoicePropertySetting") +// Result<Object> exportInvoicePropertySetting(HttpServletRequest request, HttpServletResponse response,@RequestBody InvoicePropertyPageQry qry); + +// @GetMapping("pc/v1/downloadInvoicePropertySettingTemplate") +// Result<Object> downloadInvoicePropertySettingTemplate(HttpServletRequest request, HttpServletResponse response); + @PostMapping(path = "modifyInvoiceSetting") Result<Long> modifyInvoiceSetting(@RequestBody InvoiceSettingCmd cmd); diff --git a/ServiceSite/src/main/java/com/seasky/seaskyocr/application/command/claimAudit/ClaimAuditCmdServiceImpl.java b/ServiceSite/src/main/java/com/seasky/seaskyocr/application/command/claimAudit/ClaimAuditCmdServiceImpl.java index 6f4b21cdffcbd98687ca6d71b155ec95baa488fb..c7e2f250d220216188f3635ce3ec21a3c1f3c32d 100644 --- a/ServiceSite/src/main/java/com/seasky/seaskyocr/application/command/claimAudit/ClaimAuditCmdServiceImpl.java +++ b/ServiceSite/src/main/java/com/seasky/seaskyocr/application/command/claimAudit/ClaimAuditCmdServiceImpl.java @@ -47,6 +47,8 @@ import org.apache.http.util.EntityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; import org.springframework.util.StringUtils; import org.springframework.web.multipart.MultipartFile; @@ -145,7 +147,7 @@ public class ClaimAuditCmdServiceImpl implements ClaimAuditCmdService { for (int i = 0; i < jsonArray.size(); i++) { String rule = jsonArray.get(i).toString(); String jsonValue = ClaimAuditUtil.getJsonValue(ocrResult, rule); - log.info("--->rule:"+rule+"|| value:"+jsonValue); + // log.info("--->rule:"+rule+"|| value:"+jsonValue); if (!Objects.isNull(propertyMap.get(entry.getKey()))){ ClaimAuditOcrOut build = ClaimAuditOcrOut.builder() .key(entry.getKey()) @@ -301,16 +303,7 @@ public class ClaimAuditCmdServiceImpl implements ClaimAuditCmdService { } log.info("--->>>浠呰瘑鍒皟鐢ㄥ悎鍚堟帴鍙�"); //todo 璋冪敤鍚堝悎鎺ュ彛 - List<Map<String, Object>> maps = transactionService.ClaimAuditInvoice(file, invoiceCmd); - //todo 澶囨敞鎽╂槑鎺ュ彛璇嗗埆鍑虹幇寮傚父鐨勫彂绁� - String hashId = null; - try { - hashId = String.valueOf(Base64.encodeBase64String(file.getBytes()).hashCode()); - } catch (IOException f) { - throw ExceptionUtil.getException(null,"hsahId鑾峰彇澶辫触锛�"); - } - invoiceRepository.saveRemark(hashId); - return maps; + return transactionService.ClaimAuditInvoice(file, invoiceCmd); } } @@ -642,7 +635,7 @@ public class ClaimAuditCmdServiceImpl implements ClaimAuditCmdService { for (int i = 0; i < jsonArray.size(); i++) { String rule = jsonArray.get(i).toString(); String jsonValue = ClaimAuditUtil.getJsonValue(ocrResult, rule); - log.info("--->rule:"+rule+"|| value:"+jsonValue); + //log.info("--->rule:"+rule+"|| value:"+jsonValue); if (!Objects.isNull(propertyMap.get(entry.getKey()))){ ClaimAuditOcrOut build = ClaimAuditOcrOut.builder() .key(entry.getKey()) @@ -817,7 +810,7 @@ public class ClaimAuditCmdServiceImpl implements ClaimAuditCmdService { for (int i = 0; i < jsonArray.size(); i++) { String rule = jsonArray.get(i).toString(); String jsonValue = ClaimAuditUtil.getJsonValueForMoMing(ocrResult, rule); - log.info("--->rule:"+rule+"|| value:"+jsonValue); + //log.info("--->rule:"+rule+"|| value:"+jsonValue); if (!Objects.isNull(propertyMap.get(entry.getKey()))){ ClaimAuditOcrOut build = ClaimAuditOcrOut.builder() .key(entry.getKey()) @@ -1211,6 +1204,7 @@ public class ClaimAuditCmdServiceImpl implements ClaimAuditCmdService { } @Override + @Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED ) public Long createInvoiceSetting(InvoiceSettingCmd cmd) { InvoiceSettingAggregate agg = InvoiceSettingAssembler.ToAgg(cmd); Long check = invoiceSettingRepository.check(agg); @@ -1263,6 +1257,7 @@ public class ClaimAuditCmdServiceImpl implements ClaimAuditCmdService { } @Override + @Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED ) public Long createInvoicePropertitySetting(InvoicePropertySettingCmd cmd) { InvoicePropertySettingAggregate agg = InvoiceSettingAssembler.ToPropertyAgg(cmd); Long check = invoicePropertySettingRepository.check(agg); diff --git a/ServiceSite/src/main/java/com/seasky/seaskyocr/application/command/claimAudit/TransactionalService.java b/ServiceSite/src/main/java/com/seasky/seaskyocr/application/command/claimAudit/TransactionalService.java index d20b10b535facc8724c6681a62b428c01f6348ca..2bf8e6c7b95621573a7c25381c2c1734ba2fd86c 100644 --- a/ServiceSite/src/main/java/com/seasky/seaskyocr/application/command/claimAudit/TransactionalService.java +++ b/ServiceSite/src/main/java/com/seasky/seaskyocr/application/command/claimAudit/TransactionalService.java @@ -1,6 +1,8 @@ package com.seasky.seaskyocr.application.command.claimAudit; import com.seasky.seaskyocr.dto.invoice.InvoiceCmd; +import com.seasky.seaskyocr.interfaces.controller.excel.InvoicePropertySettingTemplate; +import com.seasky.seaskyocr.interfaces.controller.excel.InvoiceSettingTemplate; import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; @@ -12,9 +14,14 @@ import java.util.Map; * @Date 2022/7/25 16:35 * @Author 鐜嬪畻淇� */ +@Valid public interface TransactionalService { List<Map<String, Object>> ClaimAuditInvoiceForMoMing(MultipartFile file,@Valid InvoiceCmd invoiceCmd, String fileName); List<Map<String, Object>> ClaimAuditInvoice(MultipartFile file, @Valid InvoiceCmd invoiceCmd); + + Map<Integer, String> createInvoiceSetting( List<InvoiceSettingTemplate> list); + + Map<Integer, String> createInvoicePropertySetting( List<InvoicePropertySettingTemplate> list); } diff --git a/ServiceSite/src/main/java/com/seasky/seaskyocr/application/command/claimAudit/TransactionalServiceImpl.java b/ServiceSite/src/main/java/com/seasky/seaskyocr/application/command/claimAudit/TransactionalServiceImpl.java index b887dfa3e0bbb1fb7b78988d14e9776286093b47..27cd377b2f76facd5b4a56ad45cf5071a053bddc 100644 --- a/ServiceSite/src/main/java/com/seasky/seaskyocr/application/command/claimAudit/TransactionalServiceImpl.java +++ b/ServiceSite/src/main/java/com/seasky/seaskyocr/application/command/claimAudit/TransactionalServiceImpl.java @@ -1,14 +1,22 @@ package com.seasky.seaskyocr.application.command.claimAudit; +import com.seasky.core.util.ExceptionUtil; +import com.seasky.seaskyocr.dto.claimAudit.InvoicePropertySettingCmd; +import com.seasky.seaskyocr.dto.claimAudit.InvoiceSettingCmd; import com.seasky.seaskyocr.dto.invoice.InvoiceCmd; +import com.seasky.seaskyocr.interfaces.controller.excel.InvoicePropertySettingTemplate; +import com.seasky.seaskyocr.interfaces.controller.excel.InvoiceSettingTemplate; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; import org.springframework.web.multipart.MultipartFile; +import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; /** * @Description TODO @@ -34,4 +42,44 @@ public class TransactionalServiceImpl implements TransactionalService{ public List<Map<String, Object>> ClaimAuditInvoice(MultipartFile file, InvoiceCmd invoiceCmd) { return claimAuditCmdService.ClaimAuditInvoice( file, invoiceCmd); } + + @Override + public Map<Integer, String> createInvoiceSetting( List<InvoiceSettingTemplate> list) { + Map<Integer, String> checkMap =new HashMap<>(); + for (int i = 0; i < list.size(); i++) { + InvoiceSettingTemplate t = list.get(i); + try { + try { + Integer.parseInt(t.getSort()); + } catch (NumberFormatException e) { + throw ExceptionUtil.getException(null,"鎺掑簭蹇呴』鏄暟瀛�"); + } + InvoiceSettingCmd cmd = new InvoiceSettingCmd(null, t.getInvoiceNo(), t.getInvoiceType(), t.getInvoiceName(), t.getBusinessType(), StringUtils.isEmpty(t.getSort()) ? null : Integer.parseInt(t.getSort()), Objects.isNull(t.getIsAvailable()) ? null : t.getIsAvailable().equals("鏄�")); + claimAuditCmdService.createInvoiceSetting(cmd); + } catch (Exception e) { + checkMap.put(i,","+e.getMessage()); + } + } + return checkMap; + } + + @Override + public Map<Integer, String> createInvoicePropertySetting(List<InvoicePropertySettingTemplate> list) { + Map<Integer, String> checkMap =new HashMap<>(); + for (int i = 0; i < list.size(); i++) { + InvoicePropertySettingTemplate t = list.get(i); + try { + try { + Integer.parseInt(t.getSort()); + } catch (NumberFormatException e) { + throw ExceptionUtil.getException(null,"鎺掑簭蹇呴』鏄暟瀛�"); + } + InvoicePropertySettingCmd cmd = new InvoicePropertySettingCmd(null, t.getPropertyNo(), t.getPropertyCode(), t.getPropertyName(), t.getPropertyType(), t.getPropertyContent(),StringUtils.isEmpty(t.getSort()) ? null : Integer.parseInt(t.getSort()), Objects.isNull(t.getIsAvailable()) ? null : t.getIsAvailable().equals("鏄�")); + claimAuditCmdService.createInvoicePropertitySetting(cmd); + } catch (Exception e) { + checkMap.put(i,","+e.getMessage()); + } + } + return checkMap; + } } diff --git a/ServiceSite/src/main/java/com/seasky/seaskyocr/infrastructure/reader/claimAudit/ClaimAuditQueryServiceImpl.java b/ServiceSite/src/main/java/com/seasky/seaskyocr/infrastructure/reader/claimAudit/ClaimAuditQueryServiceImpl.java index 58fe8a43d06bb27d81fe2e2598db1a5c2c57720b..0ffd0166e35f3f568fadb77aa1eccab2e82775a9 100644 --- a/ServiceSite/src/main/java/com/seasky/seaskyocr/infrastructure/reader/claimAudit/ClaimAuditQueryServiceImpl.java +++ b/ServiceSite/src/main/java/com/seasky/seaskyocr/infrastructure/reader/claimAudit/ClaimAuditQueryServiceImpl.java @@ -110,6 +110,7 @@ public class ClaimAuditQueryServiceImpl implements ClaimAuditQueryService { } heHeInvoiceParam.setApp_secret(ocrAgg.getSecret()); String jsonData = ClaimAuditUtil.sendPost(ocrAgg.getUrl(), JSON.toJSONString(heHeInvoiceParam), header); + log.info("鍚堝悎楠岀湡缁撴灉杩斿洖锛�"+jsonData); //String jsonData ="{\"message\":\"success\",\"result\":{\"code\":\"106\",\"msg\":\"鏌ラ獙寮傚父\"},\"cost_time\":3006,\"code\":200,\"source\":0}"; JSONObject jsonObject = JSON.parseObject(jsonData);//楠岀湡缁撴灉json瀵硅薄 //todo 鏄惁璋冪敤鎴愬姛 config琛ㄧ殑 code 涓巗uccess_code姣旇緝 ,璋冪敤鎴愬姛 鐢� verifyMap 鍒ゆ柇 @@ -125,10 +126,10 @@ public class ClaimAuditQueryServiceImpl implements ClaimAuditQueryService { JSONObject resultJsonObj = jsonObject.getJSONObject(ocrConfigPO.getResult()); boolean verifyFlag = resultJsonObj.getString(verifyMapJson.getString("verify")).equals(verifyMapJson.getString("success"));//楠岀湡缁撴灉flag if (!verifyFlag){ - throw ExceptionUtil.getException(null,"楠岀湡澶辫触锛�"+resultJsonObj.getString(verifyMapJson.getString("message"))); + throw ExceptionUtil.getException(null,"鍚堝悎楠岀湡鎺ュ彛澶辫触锛�"+resultJsonObj.getString(verifyMapJson.getString("message"))+" || 鍘熷悎鍚堥獙鐪熸帴鍙h繑鍥炵殑鏁版嵁锛�"+jsonData); } }else { - throw ExceptionUtil.getException(null,"楠岀湡鎺ュ彛璋冪敤澶辫触锛�"+jsonObject.getString(ocrConfigPO.getMessage())); + throw ExceptionUtil.getException(null,"鍚堝悎楠岀湡鎺ュ彛璋冪敤澶辫触锛�"+jsonObject.getString(ocrConfigPO.getMessage())); } return true; } diff --git a/ServiceSite/src/main/java/com/seasky/seaskyocr/interfaces/controller/ClaimAuditController.java b/ServiceSite/src/main/java/com/seasky/seaskyocr/interfaces/controller/ClaimAuditController.java index 0b0c68d793844ec3a8c702673c9dad2fca3e087b..2a991ecc40d223c76d66478415f23081d0bfe3b4 100644 --- a/ServiceSite/src/main/java/com/seasky/seaskyocr/interfaces/controller/ClaimAuditController.java +++ b/ServiceSite/src/main/java/com/seasky/seaskyocr/interfaces/controller/ClaimAuditController.java @@ -50,6 +50,9 @@ public class ClaimAuditController implements IClaimAuditController { @ApiOperation("1.绋芥牳鍙戠エOCR璇嗗埆骞跺鐞�") @Override public Result<Map<String, Object>> claimAuditInvoice(ClaimAuditInvoiceCmd cmd) { + if (cmd.getFile().length>=1024*1024*10){ + throw ExceptionUtil.getException(null,"璇疯瘑鍒皬浜�10MB鐨勬枃浠�!"); + } List<Map<String, Object>> maps = new ArrayList<>(); try { ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(cmd.getFile()); diff --git a/ServiceSite/src/main/java/com/seasky/seaskyocr/interfaces/controller/InvoiceSettingController.java b/ServiceSite/src/main/java/com/seasky/seaskyocr/interfaces/controller/InvoiceSettingController.java index ca641503d852e0fa65548ce4a72cd24f4ebab24a..f968ef835e86c3488b2903a689906d39e8bd09ba 100644 --- a/ServiceSite/src/main/java/com/seasky/seaskyocr/interfaces/controller/InvoiceSettingController.java +++ b/ServiceSite/src/main/java/com/seasky/seaskyocr/interfaces/controller/InvoiceSettingController.java @@ -1,17 +1,34 @@ package com.seasky.seaskyocr.interfaces.controller; +import com.seasky.core.common.Pagination; +import com.seasky.core.common.Response; import com.seasky.core.common.ResponseCode; import com.seasky.core.common.Result; +import com.seasky.core.ddd.utils.MapperUtils; +import com.seasky.core.util.EasyExcelUtil; +import com.seasky.core.util.ExceptionUtil; import com.seasky.seaskyocr.api.IInvoiceSettingController; import com.seasky.seaskyocr.application.command.claimAudit.ClaimAuditCmdService; +import com.seasky.seaskyocr.application.command.claimAudit.TransactionalService; import com.seasky.seaskyocr.application.query.claimAudit.ClaimAuditQueryService; import com.seasky.seaskyocr.dto.claimAudit.*; +import com.seasky.seaskyocr.interfaces.controller.excel.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.Objects; import static com.seasky.core.common.Response.ok; @@ -25,6 +42,9 @@ public class InvoiceSettingController implements IInvoiceSettingController { @Autowired ClaimAuditQueryService qryService; + @Autowired + TransactionalService transactionalService; + /** * listBillType 鑾峰彇鎵€鏈夊凡鍚敤鐨勭エ绉嶏紝 * 鍙傛暟锛氭棤 @@ -56,6 +76,104 @@ public class InvoiceSettingController implements IInvoiceSettingController { return ok(ResponseCode.SUCCESS,cmdService.createInvoiceSetting(cmd)); } + @PostMapping("pc/v1/importInvoiceSetting") + @ApiOperation("--->瀵煎叆绁ㄧ璁剧疆") + //@Override + @Transactional(rollbackFor = Exception.class) + public Result<Object> importInvoiceSetting(HttpServletRequest request, HttpServletResponse response, MultipartFile file) throws Exception { + if (Objects.isNull(file)){ + throw ExceptionUtil.getException(null,"璇蜂笂浼犻檮浠�!"); + } + //todo 鏍¢獙瀛︽牎瀹炰緥id + if (!file.getOriginalFilename().contains(".xls")){ + throw ExceptionUtil.getException(null,"鍙厑璁镐笂浼犲悗缂€鏄痚xcel鐨勯檮浠�!"); + } + List<InvoiceSettingTemplate> list = EasyExcelUtil.getList(InvoiceSettingTemplate.class, file.getInputStream(), 0); + //todo 浜嬪姟 + Map<Integer, String> checkMap = transactionalService.createInvoiceSetting(list); + //todo 濡傛灉鏈夐敊璇俊鎭� 鍥炲啓excel + if (checkMap.size() > 0){ + List<InvoiceSettingFailTemplate> exportList = new ArrayList<>(); + for (int i = 0; i < list.size(); i++) { + String errMsg = checkMap.get(i); + InvoiceSettingFailTemplate failTemplate = MapperUtils.INSTANCE.map(InvoiceSettingFailTemplate.class, list.get(i)); + failTemplate.setErrMsg(StringUtils.isEmpty(errMsg)?"":errMsg.substring(1)); + exportList.add(failTemplate); + } + EasyExcelHelper.downExcel(response, exportList,InvoiceSettingFailTemplate.class,"绁ㄧ璁剧疆","绁ㄧ璁剧疆"); + } + return Response.success(); + } + + //@Override + @PostMapping("pc/v1/exportInvoiceSetting") + @ApiOperation("--->瀵煎嚭绁ㄧ璁剧疆excel") + public Result<Object> exportInvoiceSetting(HttpServletRequest request, HttpServletResponse response,InvoiceSettingPageQry qry) { + qry.setPageSize(999); + Pagination<BillTypeOut> billTypeOutPagination = qryService.pageInvoiceSetting(qry); + List<BillTypeOut> records = billTypeOutPagination.getRecords(); + List<InvoiceSettingTemplate> exportList = ExcelConvert.toInvoiceSettingTemplateList(records); + EasyExcelHelper.downExcel(response, exportList,InvoiceSettingTemplate.class,"绁ㄧ璁剧疆","绁ㄧ璁剧疆"); + return Response.success(); + } + + // @Override + @GetMapping("pc/v1/downloadInvoiceSettingTemplate") + @ApiOperation("--->涓嬭浇瀵煎叆妯℃澘 - 绁ㄧ璁剧疆") + public Result<Object> downloadInvoiceSettingTemplate(HttpServletRequest request, HttpServletResponse response) { + EasyExcelHelper.downExcel(response, new ArrayList<>(),InvoiceSettingTemplate.class,"绁ㄧ璁剧疆","绁ㄧ璁剧疆"); + return Response.success(); + } + + @PostMapping("pc/v1/importInvoicePropertySetting") + //@Override + @ApiOperation("--->瀵煎叆绁ㄧ灞炴€ц缃�") + @Transactional(rollbackFor = Exception.class) + public Result<Object> importInvoicePropertySetting(HttpServletRequest request, HttpServletResponse response, MultipartFile file) throws Exception { + if (Objects.isNull(file)){ + throw ExceptionUtil.getException(null,"璇蜂笂浼犻檮浠�!"); + } + //todo 鏍¢獙瀛︽牎瀹炰緥id + if (!file.getOriginalFilename().contains(".xls")){ + throw ExceptionUtil.getException(null,"鍙厑璁镐笂浼犲悗缂€鏄痚xcel鐨勯檮浠�!"); + } + List<InvoicePropertySettingTemplate> list = EasyExcelUtil.getList(InvoicePropertySettingTemplate.class, file.getInputStream(), 0); + //todo 浜嬪姟 + Map<Integer, String> checkMap = transactionalService.createInvoicePropertySetting(list); + //todo 濡傛灉鏈夐敊璇俊鎭� 鍥炲啓excel + if (checkMap.size() > 0){ + List<InvoicePropertySettingFailTemplate> exportList = new ArrayList<>(); + for (int i = 0; i < list.size(); i++) { + String errMsg = checkMap.get(i); + InvoicePropertySettingFailTemplate failTemplate = MapperUtils.INSTANCE.map(InvoicePropertySettingFailTemplate.class, list.get(i)); + failTemplate.setErrMsg(StringUtils.isEmpty(errMsg)?"":errMsg.substring(1)); + exportList.add(failTemplate); + } + EasyExcelHelper.downExcel(response, exportList,InvoicePropertySettingFailTemplate.class,"绁ㄧ灞炴€ц缃�","绁ㄧ灞炴€ц缃�"); + } + return Response.success(); + } + + // @Override + @PostMapping("pc/v1/exportInvoicePropertySetting") + @ApiOperation("--->瀵煎嚭绁ㄧ灞炴€ц缃甧xcel") + public Result<Object> exportInvoicePropertySetting(HttpServletRequest request, HttpServletResponse response, InvoicePropertyPageQry qry) { + qry.setPageSize(999); + Pagination<PropertyOut> propertyOutPagination = qryService.pageInvoiceProperty(qry); + List<PropertyOut> records = propertyOutPagination.getRecords(); + List<InvoicePropertySettingTemplate> exportList = ExcelConvert.toInvoicePropertySettingTemplateList(records); + EasyExcelHelper.downExcel(response, exportList, InvoicePropertySettingTemplate.class,"绁ㄧ灞炴€ц缃�","绁ㄧ灞炴€ц缃�"); + return Response.success(); + } + + // @Override + @GetMapping("pc/v1/downloadInvoicePropertySettingTemplate") + @ApiOperation("--->涓嬭浇瀵煎叆妯℃澘 - 绁ㄧ灞炴€ц缃�") + public Result<Object> downloadInvoicePropertySettingTemplate(HttpServletRequest request, HttpServletResponse response) { + EasyExcelHelper.downExcel(response, new ArrayList<>(), InvoicePropertySettingTemplate.class,"绁ㄧ灞炴€ц缃�","绁ㄧ灞炴€ц缃�"); + return Response.success(); + } + @ApiOperation("2.淇敼绁ㄧ璁剧疆") @Override public Result<Long> modifyInvoiceSetting(InvoiceSettingCmd cmd) { diff --git a/ServiceSite/src/main/java/com/seasky/seaskyocr/interfaces/controller/excel/EasyExcelHelper.java b/ServiceSite/src/main/java/com/seasky/seaskyocr/interfaces/controller/excel/EasyExcelHelper.java new file mode 100644 index 0000000000000000000000000000000000000000..1864d6b8d4bee5d785c96cda699e9ad979b06bbe --- /dev/null +++ b/ServiceSite/src/main/java/com/seasky/seaskyocr/interfaces/controller/excel/EasyExcelHelper.java @@ -0,0 +1,50 @@ +package com.seasky.seaskyocr.interfaces.controller.excel; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; +import com.seasky.core.util.ExceptionUtil; + +import javax.servlet.http.HttpServletResponse; +import java.net.URLEncoder; +import java.util.List; + +/** + * @Description TODO + * @Date 2022/5/16 12:50 + * @Author 鐜嬪畻淇� + */ +public class EasyExcelHelper { + + /** + * @param response + * @param exportList 瑕佸鍑虹殑闆嗗悎 + * @param templateClass 闆嗗悎鐨勬硾鍨媍lass + * @param excelName 瀵煎嚭鏂囦欢鐨勫悕绉� + * @param sheetName 瀵煎嚭鏂囦欢sheet椤电殑鍚嶇О + */ + public static void downExcel(HttpServletResponse response, List<?> exportList, Class<?> templateClass, String excelName, String sheetName) { + response.reset(); + response.setCharacterEncoding("UTF-8"); + response.setContentType("application/x-download"); + try { + String fileName = URLEncoder.encode(excelName, "UTF-8"); + response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ".xlsx"); + EasyExcel.write(response.getOutputStream(), templateClass).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).sheet(sheetName).doWrite(exportList); + } catch (Exception e) { + throw ExceptionUtil.getException(null, "瀵煎嚭寮傚父锛�"); + } + } + + public static void downExcelXls(HttpServletResponse response, List<?> exportList, Class<?> templateClass, String excelName, String sheetName) { + response.reset(); + response.setCharacterEncoding("UTF-8"); + response.setContentType("application/vnd.ms-excel"); + try { + String fileName = URLEncoder.encode(excelName, "UTF-8"); + response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ".xls"); + EasyExcel.write(response.getOutputStream(), templateClass).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).sheet(sheetName).doWrite(exportList); + } catch (Exception e) { + throw ExceptionUtil.getException(null, "瀵煎嚭寮傚父锛�"); + } + } +} diff --git a/ServiceSite/src/main/java/com/seasky/seaskyocr/interfaces/controller/excel/ExcelConvert.java b/ServiceSite/src/main/java/com/seasky/seaskyocr/interfaces/controller/excel/ExcelConvert.java new file mode 100644 index 0000000000000000000000000000000000000000..fc2dfb854e517c7a2d17482f69e4272fec81c111 --- /dev/null +++ b/ServiceSite/src/main/java/com/seasky/seaskyocr/interfaces/controller/excel/ExcelConvert.java @@ -0,0 +1,49 @@ +package com.seasky.seaskyocr.interfaces.controller.excel; + +import com.seasky.seaskyocr.dto.claimAudit.BillTypeOut; +import com.seasky.seaskyocr.dto.claimAudit.PropertyOut; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +/** + * @Description TODO + * @Date 2022/5/16 12:50 + * @Author 鐜嬪畻淇� + */ +public class ExcelConvert { + + public static List<InvoiceSettingTemplate> toInvoiceSettingTemplateList(List<BillTypeOut> outs) { + List<InvoiceSettingTemplate> exportList = new ArrayList<>(); + for (BillTypeOut po:outs) { + InvoiceSettingTemplate build = InvoiceSettingTemplate.builder() + .invoiceNo(po.getInvoiceNo()) + .invoiceType(po.getInvoiceType()) + .invoiceName(po.getInvoiceName()) + .businessType(po.getBusinessType()) + .sort(Objects.isNull(po.getSort())?"":po.getSort().toString()) + .isAvailable(po.getIsAvailable()?"鏄�":"鍚�") + .build(); + exportList.add(build); + } + return exportList; + } + + public static List<InvoicePropertySettingTemplate> toInvoicePropertySettingTemplateList(List<PropertyOut> outs) { + List<InvoicePropertySettingTemplate> exportList = new ArrayList<>(); + for (PropertyOut po:outs) { + InvoicePropertySettingTemplate build = InvoicePropertySettingTemplate.builder() + .propertyNo(po.getPropertyNo()) + .propertyCode(po.getPropertyCode()) + .propertyName(po.getPropertyName()) + .propertyType(po.getPropertyType()) + .propertyContent(po.getPropertyContent()) + .sort(Objects.isNull(po.getSort())?"":po.getSort().toString()) + .isAvailable(po.getIsAvailable()?"鏄�":"鍚�") + .build(); + exportList.add(build); + } + return exportList; + } +} diff --git a/ServiceSite/src/main/java/com/seasky/seaskyocr/interfaces/controller/excel/InvoicePropertySettingFailTemplate.java b/ServiceSite/src/main/java/com/seasky/seaskyocr/interfaces/controller/excel/InvoicePropertySettingFailTemplate.java new file mode 100644 index 0000000000000000000000000000000000000000..3e0fed1083ea822cf34e6d4cd276a28723fc706a --- /dev/null +++ b/ServiceSite/src/main/java/com/seasky/seaskyocr/interfaces/controller/excel/InvoicePropertySettingFailTemplate.java @@ -0,0 +1,49 @@ +package com.seasky.seaskyocr.interfaces.controller.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author 鐜嬪畻淇� + * @version V1.0 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@ContentRowHeight(18) +@HeadRowHeight(20) +@ColumnWidth(30) +@Builder +public class InvoicePropertySettingFailTemplate { + + @ExcelProperty("灞炴€х紪鍙�") + private String propertyNo; + + @ExcelProperty("灞炴€х紪鐮�") + private String propertyCode; + + @ExcelProperty("灞炴€у悕绉�") + private String propertyName; + + @ExcelProperty("灞炴€у綊绫�") + private String propertyType; + + @ExcelProperty("灞炴€ц鏄�") + private String propertyContent; + + @ExcelProperty("鎺掑簭") + private String sort; + + @ExcelProperty("鏄惁鍚敤") + private String isAvailable; + + @ExcelProperty("閿欒淇℃伅") + @ColumnWidth(50) + private String errMsg; +} diff --git a/ServiceSite/src/main/java/com/seasky/seaskyocr/interfaces/controller/excel/InvoicePropertySettingTemplate.java b/ServiceSite/src/main/java/com/seasky/seaskyocr/interfaces/controller/excel/InvoicePropertySettingTemplate.java new file mode 100644 index 0000000000000000000000000000000000000000..9a7760a03369a0bad2e047b47eed35fd53da3315 --- /dev/null +++ b/ServiceSite/src/main/java/com/seasky/seaskyocr/interfaces/controller/excel/InvoicePropertySettingTemplate.java @@ -0,0 +1,45 @@ +package com.seasky.seaskyocr.interfaces.controller.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author 鐜嬪畻淇� + * @version V1.0 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@ContentRowHeight(18) +@HeadRowHeight(20) +@ColumnWidth(30) +@Builder +public class InvoicePropertySettingTemplate { + + @ExcelProperty("灞炴€х紪鍙�") + private String propertyNo; + + @ExcelProperty("灞炴€х紪鐮�") + private String propertyCode; + + @ExcelProperty("灞炴€у悕绉�") + private String propertyName; + + @ExcelProperty("灞炴€у綊绫�") + private String propertyType; + + @ExcelProperty("灞炴€ц鏄�") + private String propertyContent; + + @ExcelProperty("鎺掑簭") + private String sort; + + @ExcelProperty("鏄惁鍚敤") + private String isAvailable; +} diff --git a/ServiceSite/src/main/java/com/seasky/seaskyocr/interfaces/controller/excel/InvoiceSettingFailTemplate.java b/ServiceSite/src/main/java/com/seasky/seaskyocr/interfaces/controller/excel/InvoiceSettingFailTemplate.java new file mode 100644 index 0000000000000000000000000000000000000000..b1820727a408f1a12518f74e3ed8582d11b07f80 --- /dev/null +++ b/ServiceSite/src/main/java/com/seasky/seaskyocr/interfaces/controller/excel/InvoiceSettingFailTemplate.java @@ -0,0 +1,46 @@ +package com.seasky.seaskyocr.interfaces.controller.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author 鐜嬪畻淇� + * @version V1.0 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@ContentRowHeight(18) +@HeadRowHeight(20) +@ColumnWidth(30) +@Builder +public class InvoiceSettingFailTemplate { + + @ExcelProperty("绫诲瀷缂栧彿") + private String invoiceNo; + + @ExcelProperty("绁ㄧ澶х被") + private String invoiceType; + + @ExcelProperty("绁ㄧ鍚嶇О") + private String invoiceName; + + @ExcelProperty("涓氬姟绫诲瀷") + private String businessType; + + @ExcelProperty("鎺掑簭") + private String sort; + + @ExcelProperty("鏄惁鍚敤") + private String isAvailable; + + @ExcelProperty("閿欒淇℃伅") + @ColumnWidth(50) + private String errMsg; +} diff --git a/ServiceSite/src/main/java/com/seasky/seaskyocr/interfaces/controller/excel/InvoiceSettingTemplate.java b/ServiceSite/src/main/java/com/seasky/seaskyocr/interfaces/controller/excel/InvoiceSettingTemplate.java new file mode 100644 index 0000000000000000000000000000000000000000..534de87b8dae3e7043f5b53fab59e361e3437f1c --- /dev/null +++ b/ServiceSite/src/main/java/com/seasky/seaskyocr/interfaces/controller/excel/InvoiceSettingTemplate.java @@ -0,0 +1,42 @@ +package com.seasky.seaskyocr.interfaces.controller.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author 鐜嬪畻淇� + * @version V1.0 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@ContentRowHeight(18) +@HeadRowHeight(20) +@ColumnWidth(30) +@Builder +public class InvoiceSettingTemplate { + + @ExcelProperty("绫诲瀷缂栧彿") + private String invoiceNo; + + @ExcelProperty("绁ㄧ澶х被") + private String invoiceType; + + @ExcelProperty("绁ㄧ鍚嶇О") + private String invoiceName; + + @ExcelProperty("涓氬姟绫诲瀷") + private String businessType; + + @ExcelProperty("鎺掑簭") + private String sort; + + @ExcelProperty("鏄惁鍚敤") + private String isAvailable; +}