diff --git a/api-admin/pom.xml b/api-admin/pom.xml index aad2b99f..adee74b6 100644 --- a/api-admin/pom.xml +++ b/api-admin/pom.xml @@ -176,6 +176,37 @@ poi-ooxml RELEASE + + + + com.itextpdf + itextpdf + 5.5.10 + + + com.itextpdf + itext-asian + 5.2.0 + + + + + cn.hutool + hutool-all + 5.7.9 + + + + + com.google.zxing + core + 3.3.3 + + + com.google.zxing + javase + 3.3.3 + diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/basic/BasicThirdSysController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/basic/BasicThirdSysController.java index 744c2cbc..af8c8d8f 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/controller/basic/BasicThirdSysController.java +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/basic/BasicThirdSysController.java @@ -1,6 +1,7 @@ package com.glxp.api.admin.controller.basic; import com.github.pagehelper.PageInfo; +import com.glxp.api.admin.annotation.AuthRuleAnnotation; import com.glxp.api.admin.entity.basic.BasicThirdSysDetailEntity; import com.glxp.api.admin.entity.basic.BasicThirdSysEntity; import com.glxp.api.admin.req.basic.FilterBasicThirdSysDetailRequest; @@ -59,10 +60,13 @@ public class BasicThirdSysController { return ResultVOUtils.success(pageSimpleResponse); } + /** + * 扫码精灵获取第三方系统列表 + */ +// @AuthRuleAnnotation("") @GetMapping("/udiwms/basic/thirdsys/get") public BaseResponse get(FilterBasicThirdSysRequest filterBasicThirdSysRequest, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } @@ -74,6 +78,9 @@ public class BasicThirdSysController { BeanUtils.copyProperties(item, basicThirdSysResponse); return basicThirdSysResponse; }).collect(Collectors.toList()); + basicThirdSysResponses.add(new BasicThirdSysResponse("ybbm","医保编码")); + basicThirdSysResponses.add(new BasicThirdSysResponse("sptm","商品条码")); + basicThirdSysResponses.add(new BasicThirdSysResponse("udiCode","UDI最小销售标识")); return ResultVOUtils.success(basicThirdSysResponses); } diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/basic/BasicUnitMaintainController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/basic/BasicUnitMaintainController.java index 3e763282..f40eded8 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/controller/basic/BasicUnitMaintainController.java +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/basic/BasicUnitMaintainController.java @@ -1,6 +1,7 @@ package com.glxp.api.admin.controller.basic; import com.github.pagehelper.PageInfo; +import com.glxp.api.admin.annotation.AuthRuleAnnotation; import com.glxp.api.admin.entity.basic.BasicThirdSysDetailEntity; import com.glxp.api.admin.entity.basic.BasicThirdSysEntity; import com.glxp.api.admin.entity.basic.BasicUnitMaintainEntity; @@ -19,6 +20,7 @@ import com.glxp.api.admin.res.PageSimpleResponse; import com.glxp.api.admin.res.basic.BasicProductThirdSysResponse; import com.glxp.api.admin.res.basic.BasicUnitMaintainResponse; import com.glxp.api.admin.res.basic.ErpUnitsResponse; +import com.glxp.api.admin.res.basic.SrtBasicUnitResponse; import com.glxp.api.admin.res.inout.WarehouseResponse; import com.glxp.api.admin.service.basic.BasicThirdSysDetailService; import com.glxp.api.admin.service.basic.BasicThirdSysService; @@ -138,6 +140,35 @@ public class BasicUnitMaintainController { return ResultVOUtils.success(pageSimpleResponse); } + /** + * 扫码精灵下载往来单位 + */ +// @AuthRuleAnnotation("") + @GetMapping("/udiwms/basic/unit/download") + public BaseResponse downloadBasicUnits(BasicUnitMaintainFilterRequest basicUnitMaintainFilterRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + List basicUnitMaintainEntities; + basicUnitMaintainEntities = basicUnitMaintainService.filterList(basicUnitMaintainFilterRequest); + List srtBasicUnitResponses = new ArrayList<>(); + + for (BasicUnitMaintainEntity basicUnitMaintainEntity : basicUnitMaintainEntities) { + SrtBasicUnitResponse srtBasicUnitResponse = new SrtBasicUnitResponse(); + srtBasicUnitResponse.setUnitId(basicUnitMaintainEntity.getErpId()); + srtBasicUnitResponse.setUnitName(basicUnitMaintainEntity.getName()); + srtBasicUnitResponses.add(srtBasicUnitResponse); + } + PageInfo pageInfo; + pageInfo = new PageInfo<>(basicUnitMaintainEntities); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(srtBasicUnitResponses); + return ResultVOUtils.success(pageSimpleResponse); + } + @PostMapping("/udiwms/basic/unit/maintain/combine") public BaseResponse combine(@RequestBody CombineUnitRequest combineRequest, BindingResult bindingResult) { diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/basic/BussinessTypeController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/basic/BussinessTypeController.java index 69ef53e5..69b3a7e7 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/controller/basic/BussinessTypeController.java +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/basic/BussinessTypeController.java @@ -1,16 +1,20 @@ package com.glxp.api.admin.controller.basic; import com.github.pagehelper.PageInfo; +import com.glxp.api.admin.annotation.AuthRuleAnnotation; import com.glxp.api.admin.constant.BussinessTypeUtils; import com.glxp.api.admin.entity.basic.BussinessTypeEntity; import com.glxp.api.admin.req.inout.DeleteRequest; import com.glxp.api.admin.req.receipt.BussinessTypeFilterRequest; import com.glxp.api.admin.res.PageSimpleResponse; +import com.glxp.api.admin.res.basic.BasicThirdSysResponse; import com.glxp.api.admin.res.basic.BussinessTypResponse; +import com.glxp.api.admin.res.basic.SrBtResponse; import com.glxp.api.admin.service.basic.BussinessTypeService; import com.glxp.api.common.enums.ResultEnum; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; +import org.springframework.beans.BeanUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -20,6 +24,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * 业务类型维护 @@ -67,6 +72,33 @@ public class BussinessTypeController { return ResultVOUtils.success(pageSimpleResponse); } +// @AuthRuleAnnotation("") + @GetMapping("/udiwms/bussinessType/download") + public BaseResponse downloadJoinBussinessType(BussinessTypeFilterRequest bussinessTypeFilterRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + bussinessTypeFilterRequest.setEnabled(true); + List bussinessTypeEntities; + bussinessTypeEntities = bussinessTypeService.filterJoinList(bussinessTypeFilterRequest); + + List basicThirdSysResponses = bussinessTypeEntities.stream().map(item -> + { + SrBtResponse basicThirdSysResponse = new SrBtResponse(); + BeanUtils.copyProperties(item, basicThirdSysResponse); + return basicThirdSysResponse; + }).collect(Collectors.toList()); + + PageInfo pageInfo; + pageInfo = new PageInfo<>(bussinessTypeEntities); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(basicThirdSysResponses); + return ResultVOUtils.success(pageSimpleResponse); + } + @PostMapping("/udiwms/bussinessType/delete") public BaseResponse deleteBussinessType(@RequestBody DeleteRequest deleteRequest, BindingResult bindingResult) { diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/basic/CorpImportLogController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/basic/CorpImportLogController.java index 6d6edd9c..663f9f4d 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/controller/basic/CorpImportLogController.java +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/basic/CorpImportLogController.java @@ -154,11 +154,23 @@ public class CorpImportLogController { continue; } // 滤过第一行标题 - for (int k = sheet.getFirstRowNum(); k <= sheet.getLastRowNum(); k++) { + row = sheet.getRow(0); + if ((row.getCell(0) == null || row.getCell(1) == null || row.getCell(2) == null + || row.getCell(3) == null || row.getCell(4) == null || row.getCell(5) == null|| row.getCell(6) == null) || + (!"往来单位ID".equals(row.getCell(0).getStringCellValue()) + || !"往来单位名称".equals(row.getCell(1).getStringCellValue()) + || !"往来单位拼音简写".equals(row.getCell(2).getStringCellValue()) + || !"地址".equals(row.getCell(3).getStringCellValue()) + || !"联系人".equals(row.getCell(4).getStringCellValue()) + || !"联系电话".equals(row.getCell(5).getStringCellValue()) + || !"社会信用号".equals(row.getCell(6).getStringCellValue()) + || !"往来单位状态".equals(row.getCell(6).getStringCellValue()) + || !"往来单位类型".equals(row.getCell(6).getStringCellValue()) + || !"thirdId".equals(row.getCell(6).getStringCellValue()))) { + return ResultVOUtils.error(500, "文件格式错误!"); + } + for (int k = sheet.getFirstRowNum()+1; k <= sheet.getLastRowNum(); k++) { row = sheet.getRow(k); - if (row == null || row.getFirstCellNum() == k) { - continue; - } CorpImportDetailEntity corpImportDetailEntity = new CorpImportDetailEntity(); Cell cell1 = row.getCell(0); if (cell1 != null) { diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/basic/UdiInfoImportLogController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/basic/UdiInfoImportLogController.java index 07ff401e..92658adf 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/controller/basic/UdiInfoImportLogController.java +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/basic/UdiInfoImportLogController.java @@ -153,11 +153,20 @@ public class UdiInfoImportLogController { continue; } // 滤过第一行标题 - for (int k = sheet.getFirstRowNum(); k <= sheet.getLastRowNum(); k++) { + row = sheet.getRow(0); + if ((row.getCell(0) == null || row.getCell(1) == null || row.getCell(2) == null + || row.getCell(3) == null || row.getCell(4) == null || row.getCell(5) == null|| row.getCell(6) == null) || + (!"udiCode".equals(row.getCell(0).getStringCellValue()) + || !"医保码".equals(row.getCell(1).getStringCellValue()) + || !"商品条码".equals(row.getCell(2).getStringCellValue()) + || !"thirdId".equals(row.getCell(3).getStringCellValue()) + || !"thirdId1".equals(row.getCell(4).getStringCellValue()) + || !"thirdId2".equals(row.getCell(5).getStringCellValue()) + || !"thirdId3".equals(row.getCell(6).getStringCellValue()))) { + return ResultVOUtils.error(500, "文件格式错误!"); + } + for (int k = sheet.getFirstRowNum()+1; k <= sheet.getLastRowNum(); k++) { row = sheet.getRow(k); - if (row == null || row.getFirstCellNum() == k) { - continue; - } UdiInfoImportDetailEntity udiInfoImportEntity = new UdiInfoImportDetailEntity(); Cell cell1 = row.getCell(0); if (cell1 != null) { @@ -261,4 +270,41 @@ public class UdiInfoImportLogController { } + //扫码精灵产品信息接口上传 + @PostMapping("/udiwms/basic/products/srUpload") + public BaseResponse postSrUdiInfo(@RequestBody PostUdiInfoRequest postUdiInfoRequest, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + String genKey = postUdiInfoRequest.getGenKey(); + if (genKey == null) { + genKey = CustomUtil.getId(); + } + UdiInfoImportLogEntity udiInfoImportLogEntity = udiInfoImportLogService.selectByGenKey(genKey); + List udiInfoImportEntities = postUdiInfoRequest.getDatas(); + if(udiInfoImportEntities!=null){ + for(UdiInfoImportDetailEntity udiInfoImportEntity:udiInfoImportEntities){ + udiInfoImportEntity.setGenKeyFk(genKey); + udiInfoImportEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_CODE_UNPROCESS); + udiInfoImportEntity.setUpdateTime(new java.util.Date()); + udiInfoImportService.insertUdiInfoImport(udiInfoImportEntity); + } + } + if(udiInfoImportLogEntity==null){ + udiInfoImportLogEntity = new UdiInfoImportLogEntity(); + udiInfoImportLogEntity.setGenKey(genKey); + udiInfoImportLogEntity.setFromType("扫码精灵上传"); + udiInfoImportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_UNPROCESS); + udiInfoImportLogEntity.setUpdateTime(new Date(System.currentTimeMillis())); + udiInfoImportLogService.insertImportLog(udiInfoImportLogEntity); + }else { + udiInfoImportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_UNPROCESS); + udiInfoImportLogService.updateImportLog(udiInfoImportLogEntity); + } + basicUdiInfoImportService.importUdiInfo(genKey); + return ResultVOUtils.success("上传成功"); + } + + } diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/info/SystemPDFModuleController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/info/SystemPDFModuleController.java new file mode 100644 index 00000000..1804b711 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/info/SystemPDFModuleController.java @@ -0,0 +1,129 @@ +package com.glxp.api.admin.controller.info; + +import com.github.pagehelper.PageInfo; +import com.glxp.api.admin.annotation.AuthRuleAnnotation; +import com.glxp.api.admin.entity.info.SystemPDFModuleEntity; +import com.glxp.api.admin.entity.info.SystemPDFTemplateEntity; +import com.glxp.api.admin.req.info.SystemPDFModuleRequest; +import com.glxp.api.admin.req.info.SystemPDFModuleSaveRequest; +import com.glxp.api.admin.res.PageSimpleResponse; +import com.glxp.api.admin.res.info.SystemPDFModuleResponse; +import com.glxp.api.admin.res.info.SystemPDFModuleSelectResponse; +import com.glxp.api.admin.service.info.SystemPDFModuleService; +import com.glxp.api.admin.service.info.SystemPDFTemplateService; +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +@RestController +public class SystemPDFModuleController { + + @Resource + private SystemPDFModuleService systemPDFModuleService; + @Resource + private SystemPDFTemplateService systemPDFTemplateService; + + @AuthRuleAnnotation("system/pdf/module/list") + @GetMapping("/system/pdf/module/list") + public BaseResponse list(@Valid SystemPDFModuleRequest systemPDFModuleRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + List systemPDFModuleEntityList = systemPDFModuleService.queryPage(systemPDFModuleRequest); + List systemPDFModuleResponseList = systemPDFModuleEntityList.stream().map(item -> { + SystemPDFModuleResponse systemPDFModuleResponse = new SystemPDFModuleResponse(); + BeanUtils.copyProperties(item, systemPDFModuleResponse); + if (item.getTemplateId() != 0) { + SystemPDFTemplateEntity systemPDFTemplateEntity = + systemPDFTemplateService.selectById(String.valueOf(item.getTemplateId())); + if (systemPDFTemplateEntity != null) { + systemPDFModuleResponse.setTemplateName(systemPDFTemplateEntity.getName()); + } + } + return systemPDFModuleResponse; + }).collect(Collectors.toList()); + + PageInfo pageInfo = new PageInfo<>(systemPDFModuleEntityList); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(systemPDFModuleResponseList); + return ResultVOUtils.success(pageSimpleResponse); + } + + @AuthRuleAnnotation("system/pdf/module/list") + @GetMapping("/system/pdf/module/pdfModules") + public BaseResponse pdfModules(@RequestParam(value = "page", defaultValue = "1") Integer page, + @RequestParam(value = "limit", defaultValue = "100") Integer limit) { + + List systemPDFModuleEntityList = systemPDFModuleService.listPDFModules(page, limit); + PageInfo pageInfo = new PageInfo<>(systemPDFModuleEntityList); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + List systemPDFModuleSelectResponses = systemPDFModuleEntityList.stream().map(e -> { + SystemPDFModuleSelectResponse systemPDFModuleSelectResponse = new SystemPDFModuleSelectResponse(); + BeanUtils.copyProperties(e, systemPDFModuleSelectResponse); + systemPDFModuleSelectResponse.setIdStr(String.valueOf(e.getId())); + return systemPDFModuleSelectResponse; + }).collect(Collectors.toList()); + pageSimpleResponse.setList(systemPDFModuleSelectResponses); + + return ResultVOUtils.success(pageSimpleResponse); + } + + @AuthRuleAnnotation("system/pdf/module/save") + @PostMapping("/system/pdf/module/save") + public BaseResponse save(@RequestBody @Valid SystemPDFModuleSaveRequest systemPDFModuleSaveRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + SystemPDFModuleEntity systemPDFModuleEntity = new SystemPDFModuleEntity(); + BeanUtils.copyProperties(systemPDFModuleSaveRequest, systemPDFModuleEntity); + + systemPDFModuleEntity.setCreate_time(new Date()); + systemPDFModuleEntity.setUpdate_time(new Date()); + + boolean b = systemPDFModuleService.insert(systemPDFModuleEntity); + if (!b) { + return ResultVOUtils.error(ResultEnum.NOT_NETWORK); + } + + return ResultVOUtils.success(); + } + + @AuthRuleAnnotation("system/pdf/module/update") + @PostMapping("/system/pdf/module/update") + public BaseResponse update(@RequestBody SystemPDFModuleSaveRequest systemPDFModuleSaveRequest) { + systemPDFModuleSaveRequest.setUpdate_time(new Date()); + systemPDFModuleService.updateById(systemPDFModuleSaveRequest); + + return ResultVOUtils.success("修改成功"); + } + + @AuthRuleAnnotation("system/pdf/module/delete") + @GetMapping("/system/pdf/module/delete") + public BaseResponse deleteById(@RequestParam("id") Integer id) { + + + boolean b = systemPDFModuleService.deleteById(id); + if (b) + return ResultVOUtils.success("删除成功"); + else { + return ResultVOUtils.error(500, "删除失败"); + } + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/info/SystemPDFTemplateController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/info/SystemPDFTemplateController.java new file mode 100644 index 00000000..be90d117 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/info/SystemPDFTemplateController.java @@ -0,0 +1,127 @@ +package com.glxp.api.admin.controller.info; + +import com.github.pagehelper.PageInfo; +import com.glxp.api.admin.annotation.AuthRuleAnnotation; +import com.glxp.api.admin.entity.info.SystemPDFTemplateEntity; +import com.glxp.api.admin.req.info.SystemPDFTemplateRequest; +import com.glxp.api.admin.req.info.SystemPDFTemplateSaveRequest; +import com.glxp.api.admin.res.PageSimpleResponse; +import com.glxp.api.admin.res.info.SystemPDFTemplateResponse; +import com.glxp.api.admin.res.info.SystemPDFTemplateSelectResponse; +import com.glxp.api.admin.service.info.SystemPDFTemplateService; +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.File; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +@RestController +public class SystemPDFTemplateController { + + @Resource + private SystemPDFTemplateService systemPDFTemplateService; + + @AuthRuleAnnotation("system/pdf/template/list") + @GetMapping("/system/pdf/template/list") + public BaseResponse list(@Valid SystemPDFTemplateRequest systemPDFTemplateRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + systemPDFTemplateRequest.setType(2); + List systemPDFTemplateEntityList = systemPDFTemplateService.queryPage(systemPDFTemplateRequest); + List systemPDFTemplateResponseList = systemPDFTemplateEntityList.stream().map(item -> { + SystemPDFTemplateResponse systemPDFTemplateResponse = new SystemPDFTemplateResponse(); + BeanUtils.copyProperties(item, systemPDFTemplateResponse); + return systemPDFTemplateResponse; + }).collect(Collectors.toList()); + + PageInfo pageInfo = new PageInfo<>(systemPDFTemplateEntityList); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(systemPDFTemplateResponseList); + return ResultVOUtils.success(pageSimpleResponse); + } + + @AuthRuleAnnotation("system/pdf/template/list") + @GetMapping("/system/pdf/template/pdfTemplates") + public BaseResponse pdfTemplates(@RequestParam(value = "page", defaultValue = "1") Integer page, + @RequestParam(value = "limit", defaultValue = "100") Integer limit) { + + List systemPDFTemplateEntityList = systemPDFTemplateService.listPDFTemplates(page, limit); + PageInfo pageInfo = new PageInfo<>(systemPDFTemplateEntityList); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + List systemPDFTemplateSelectResponses = systemPDFTemplateEntityList.stream().map(e -> { + SystemPDFTemplateSelectResponse systemPDFTemplateSelectResponse = new SystemPDFTemplateSelectResponse(); + BeanUtils.copyProperties(e, systemPDFTemplateSelectResponse); + systemPDFTemplateSelectResponse.setIdStr(String.valueOf(e.getId())); + return systemPDFTemplateSelectResponse; + }).collect(Collectors.toList()); + pageSimpleResponse.setList(systemPDFTemplateSelectResponses); + + return ResultVOUtils.success(pageSimpleResponse); + } + + @AuthRuleAnnotation("system/pdf/template/save") + @PostMapping("/system/pdf/template/save") + public BaseResponse save(@RequestBody @Valid SystemPDFTemplateSaveRequest systemPDFTemplateSaveRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + SystemPDFTemplateEntity systemPDFTemplateEntity = new SystemPDFTemplateEntity(); + BeanUtils.copyProperties(systemPDFTemplateSaveRequest, systemPDFTemplateEntity); + + systemPDFTemplateEntity.setCreate_time(new Date()); + systemPDFTemplateEntity.setUpdate_time(new Date()); + + boolean b = systemPDFTemplateService.insert(systemPDFTemplateEntity); + if (!b) { + return ResultVOUtils.error(ResultEnum.NOT_NETWORK); + } + + return ResultVOUtils.success(); + } + + @AuthRuleAnnotation("system/pdf/template/update") + @PostMapping("/system/pdf/template/update") + public BaseResponse update(@RequestBody SystemPDFTemplateSaveRequest systemPDFTemplateSaveRequest) { +// systemPDFTemplateSaveRequest.setId(1); + systemPDFTemplateSaveRequest.setUpdate_time(new Date()); + systemPDFTemplateService.updateById(systemPDFTemplateSaveRequest); + + return ResultVOUtils.success("修改成功"); + } + + @AuthRuleAnnotation("system/pdf/template/delete") + @GetMapping("/system/pdf/template/delete") + public BaseResponse deleteById(@RequestParam("id") Integer id, + @RequestParam("path") String path) { + + if (StringUtils.isNotBlank(path)) {//删除文件 + File file = new File(path); + file.delete(); + } + + boolean b = systemPDFTemplateService.deleteById(id); + if (b) + return ResultVOUtils.success("删除成功"); + else { + return ResultVOUtils.error(500, "删除失败"); + } + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/inout/WareHouseController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/inout/WareHouseController.java index 1aa59921..abf1ce36 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/controller/inout/WareHouseController.java +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/inout/WareHouseController.java @@ -1,13 +1,16 @@ package com.glxp.api.admin.controller.inout; import com.github.pagehelper.PageInfo; +import com.glxp.api.admin.entity.basic.BussinessTypeEntity; import com.glxp.api.admin.entity.inout.WarehouseEntity; import com.glxp.api.admin.req.inout.*; import com.glxp.api.admin.res.PageSimpleResponse; import com.glxp.api.admin.res.inout.WarehouseResponse; +import com.glxp.api.admin.service.basic.BussinessTypeService; import com.glxp.api.admin.service.inout.CodesTempService; import com.glxp.api.admin.service.inout.CodesService; import com.glxp.api.admin.thread.IoTransInoutService; +import com.glxp.api.admin.util.DateUtil; import com.glxp.api.common.enums.ResultEnum; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; @@ -16,6 +19,8 @@ import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -27,7 +32,8 @@ public class WareHouseController { private IoTransInoutService transInoutService; @Resource private CodesTempService codesTempService; - + @Resource + private BussinessTypeService bussinessTypeService; @PostMapping("/warehouse/inout/code/deleteCodes") public BaseResponse deleteCodes(@RequestBody DeleteCodeRequest deleteCodeRequest, BindingResult bindingResult) { @@ -124,6 +130,42 @@ public class WareHouseController { return ResultVOUtils.success("导入成功"); } + + //扫码精灵扫码上传 + @PostMapping("warehouse/inout/scanPost") + public BaseResponse postOrders(@RequestBody ScPostOrderRequest postOrderRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + try { + PostOrderRequest.PostOrder postOrder = new PostOrderRequest.PostOrder(); + postOrder.setOrderId(postOrderRequest.getOrderId()); + postOrder.setBillType(postOrderRequest.getBillType()); + BussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findBTByAction(postOrderRequest.getBillType()); + List warehouseEntityList = postOrderRequest.getCodes(); + String date = DateUtil.formatDateTime(new Date()); + for (WarehouseEntity warehouseEntity : warehouseEntityList) { + warehouseEntity.setActDate(date); + warehouseEntity.setMainAction(bussinessTypeEntity.getMainAction()); + warehouseEntity.setAction(postOrderRequest.getBillType()); + warehouseEntity.setCorpOrderId(postOrderRequest.getOrderId()); + warehouseEntity.setFromCorp(postOrderRequest.getFromCorp()); + warehouseEntity.setFromCorpId(postOrderRequest.getFromCorpId()); + } + postOrder.setCodes(warehouseEntityList); + PostOrderRequest commit = new PostOrderRequest(); + List postOrders = new ArrayList<>(); + postOrders.add(postOrder); + commit.setPostOrder(postOrders); + transInoutService.creatOrder(commit); + } catch (Exception e) { + return ResultVOUtils.error(ResultEnum.NOT_NETWORK); + } + + return ResultVOUtils.success("导入成功"); + } + @PostMapping("/warehouse/inout/commit") public BaseResponse commitOrder(@RequestBody CommitRequest commitRequest, BindingResult bindingResult) { diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvPrintController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvPrintController.java index c9f50f29..1340fdf9 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvPrintController.java +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvPrintController.java @@ -199,7 +199,7 @@ public class InvPrintController { return ResultVOUtils.success("后台已开始自动更新,请稍后刷新查看"); } - // 根据存货编码生成内部码 + // 根据第三方产品ID生成内部码 @GetMapping("/udiwarehouse/stockPrint/importBycode") public BaseResponse importBycode(FilterStockprintRequest stockprintRequest) { if (stockprintRequest.getThirdId() == null || stockprintRequest.getThirdId().equals("")) { @@ -216,6 +216,7 @@ public class InvPrintController { return ResultVOUtils.success("后台已开始自动更新,请稍后刷新查看"); } + //根据产品信息生成内部码 @PostMapping("udiwms/stockprint/postByUdiInfo") public BaseResponse postByUdiInfo(@RequestBody PostStockPrintRequest postStockPrintRequest, BindingResult bindingResult) { if (bindingResult.hasErrors()) { @@ -235,6 +236,7 @@ public class InvPrintController { return ResultVOUtils.success("后台已开始自动更新,请稍后刷新查看!"); } + //根据库存产品信息生成内部码 @PostMapping("udiwms/stockprint/postByInvInfo") public BaseResponse postByInvInfo(@RequestBody PostStockPrintRequest postStockPrintRequest, BindingResult bindingResult) { if (bindingResult.hasErrors()) { @@ -254,6 +256,7 @@ public class InvPrintController { return ResultVOUtils.success("后台已开始自动更新,请稍后刷新查看!"); } + //根据库存产品信息一键生成内部码 @GetMapping("udiwms/stockprint/postAllByInvInfo") public BaseResponse postAllByInvInfo(FilterStockprintRequest filterStockprintRequest, BindingResult bindingResult) { if (bindingResult.hasErrors()) { @@ -273,7 +276,7 @@ public class InvPrintController { return ResultVOUtils.success("后台已开始自动更新,请稍后刷新查看!"); } - + //其他系统上传参数生成内部码 @PostMapping("udiwms/stockprint/post") public BaseResponse postInCode(@RequestBody PostStockPrintRequest postStockPrintRequest, BindingResult bindingResult) { diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/itextpdf/PDFDawnloadController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/itextpdf/PDFDawnloadController.java new file mode 100644 index 00000000..7481dc2b --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/itextpdf/PDFDawnloadController.java @@ -0,0 +1,258 @@ +package com.glxp.api.admin.controller.itextpdf; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.glxp.api.admin.entity.basic.BussinessTypeEntity; +import com.glxp.api.admin.entity.info.SystemPDFModuleEntity; +import com.glxp.api.admin.entity.info.SystemPDFTemplateEntity; +import com.glxp.api.admin.entity.info.SystemPDFTemplateRelevanceEntity; +import com.glxp.api.admin.entity.inout.ErpOrderEntity; +import com.glxp.api.admin.entity.inout.FilterErpOrderRequest; +import com.glxp.api.admin.entity.inout.OrderEntity; +import com.glxp.api.admin.req.info.SystemPDFTemplateRequest; +import com.glxp.api.admin.req.itextpdf.InoutOrderDetailPDFCodeRequest; +import com.glxp.api.admin.req.itextpdf.InoutOrderDetailPDFFileRequest; +import com.glxp.api.admin.req.itextpdf.InspectionPDFTemplateRequest; +import com.glxp.api.admin.service.basic.BussinessTypeService; +import com.glxp.api.admin.service.info.SystemPDFModuleService; +import com.glxp.api.admin.service.info.SystemPDFTemplateRelevanceService; +import com.glxp.api.admin.service.info.SystemPDFTemplateService; +import com.glxp.api.admin.service.inout.OrderDetailService; +import com.glxp.api.admin.service.inout.OrderService; +import com.glxp.api.admin.util.ITextPDFUtils; +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController +public class PDFDawnloadController { + + @Resource + private OrderService orderService; + @Resource + private BussinessTypeService bussinessTypeService; + @Resource + private OrderDetailService orderDetailService; + @Resource + private SystemPDFTemplateRelevanceService systemPDFTemplateRelevanceService; + @Resource + private SystemPDFTemplateService systemPDFTemplateService; + @Resource + private SystemPDFModuleService systemPDFModuleService; + + /** + * 下载pdf文档 + * + * @throws Exception + */ + @GetMapping("/udiwms/pdf/download/test") + public void downloadTestPDF(HttpServletRequest request, HttpServletResponse response) throws Exception { +// ITextPDFUtils.exportPDFTest(request, response); + //----------------------------------------------------------- + SystemPDFModuleEntity systemPDFModuleEntity = systemPDFModuleService.selectById(1 + ""); + if (systemPDFModuleEntity != null) { + SystemPDFTemplateEntity systemPDFTemplateEntity = + systemPDFTemplateService.selectById(String.valueOf(systemPDFModuleEntity.getTemplateId())); + if (systemPDFTemplateEntity != null) { + ITextPDFUtils.exportPDFFromTemplateFileTest(systemPDFTemplateEntity.getPath(), request, response); + } + } + //----------------------------------------------------------- + } + + /** + * 代码生成,配置从前端传入 + */ + @PostMapping("/udiwms/pdf/download/inout/order/success") + public void downloadInoutOrderSuccessPDF(@RequestBody InoutOrderDetailPDFCodeRequest inoutOrderDetailPDFCodeRequest, HttpServletRequest request, HttpServletResponse response) throws Exception { + + OrderEntity orderEntity = orderService.findById(inoutOrderDetailPDFCodeRequest.getOrderId()); + if (orderEntity == null) { + return; + } + + inoutOrderDetailPDFCodeRequest.setFromCorp(orderEntity.getFromCorp()); + inoutOrderDetailPDFCodeRequest.setFromType(orderEntity.getFromType()); + BussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findBTByAction(orderEntity.getAction()); + inoutOrderDetailPDFCodeRequest.setActionName(bussinessTypeEntity == null ? " " : bussinessTypeEntity.getName()); + + FilterErpOrderRequest filterErpOrderRequest = new FilterErpOrderRequest(); + filterErpOrderRequest.setOrderIdFk(inoutOrderDetailPDFCodeRequest.getOrderId()); + List erpOrderEntityList = orderDetailService.filterAllMyErpOrder(filterErpOrderRequest); + + ITextPDFUtils.exportInoutOrderSuccessPDF(inoutOrderDetailPDFCodeRequest, erpOrderEntityList, request, response); + } + + + /** + * 代码生成模板,模板数据从数据库获取 + */ + @PostMapping("/udiwms/template/pdf/order/detail/code") + public void orderDetailPDFFromTemplateCode( + @RequestBody InoutOrderDetailPDFCodeRequest inoutOrderDetailPDFCodeRequest, + HttpServletRequest request, HttpServletResponse response) throws Exception { + + OrderEntity orderEntity = orderService.findById(inoutOrderDetailPDFCodeRequest.getOrderId()); + if (orderEntity == null) { + return; + } + +// Map rMap = inspectionCustomerPDFTemplate(inoutOrderSuccessPDFRequest.getCustomerId()); +// if (Integer.parseInt(String.valueOf(rMap.get("code"))) != 0) { +// return; +// } +// String settingDataJsonString = String.valueOf(rMap.get("data")); + + SystemPDFTemplateEntity systemPDFTemplateEntity = systemPDFTemplateService.selectById("1"); + if (systemPDFTemplateEntity == null) return; + String settingDataJsonString = systemPDFTemplateEntity.getParam(); + + JSONObject settingDataJson = JSONObject.parseObject(settingDataJsonString); + InoutOrderDetailPDFCodeRequest.SettingData settingData =//JSON转实体类 + JSON.toJavaObject(settingDataJson, InoutOrderDetailPDFCodeRequest.SettingData.class); + inoutOrderDetailPDFCodeRequest.setSettingData(settingData); + //----------------------------------------------- + inoutOrderDetailPDFCodeRequest.setFromCorp(orderEntity.getFromCorp()); + inoutOrderDetailPDFCodeRequest.setFromType(orderEntity.getFromType()); + BussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findBTByAction(orderEntity.getAction()); + inoutOrderDetailPDFCodeRequest.setActionName(bussinessTypeEntity == null ? " " : bussinessTypeEntity.getName()); + + FilterErpOrderRequest filterErpOrderRequest = new FilterErpOrderRequest(); + filterErpOrderRequest.setOrderId(inoutOrderDetailPDFCodeRequest.getOrderId()); + List erpOrderEntityList = orderDetailService.filterAllMyErpOrder(filterErpOrderRequest); + + ITextPDFUtils.exportInoutOrderSuccessPDF(inoutOrderDetailPDFCodeRequest, erpOrderEntityList, request, response); + } + + /** + * 模板导入,模板文件路径从数据库获取 + */ + @PostMapping("/udiwms/pdf/template/order/detail/file") + public void orderDetailPDFFromTemplateFile( + @RequestBody InoutOrderDetailPDFFileRequest inoutOrderDetailPDFFileRequest, + HttpServletRequest request, HttpServletResponse response) throws Exception { + + OrderEntity orderEntity = orderService.findById(inoutOrderDetailPDFFileRequest.getOrderId()); + if (orderEntity == null) { + return; + } + + SystemPDFModuleEntity systemPDFModuleEntity = systemPDFModuleService.selectById(1 + ""); + if (systemPDFModuleEntity == null) return; + SystemPDFTemplateEntity systemPDFTemplateEntity = + systemPDFTemplateService.selectById(String.valueOf(systemPDFModuleEntity.getTemplateId())); + if (systemPDFTemplateEntity == null) return; + inoutOrderDetailPDFFileRequest.setPath(systemPDFTemplateEntity.getPath()); + inoutOrderDetailPDFFileRequest.setRowCount(systemPDFTemplateEntity.getRowCount()); + inoutOrderDetailPDFFileRequest.setQrcodeCount(systemPDFTemplateEntity.getQrcodeCount()); + //----------------------------------------------- + inoutOrderDetailPDFFileRequest.setFromCorp(orderEntity.getFromCorp()); + inoutOrderDetailPDFFileRequest.setFromType(orderEntity.getFromType()); + inoutOrderDetailPDFFileRequest.setActDate(orderEntity.getActDate()); + BussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findBTByAction(orderEntity.getAction()); + inoutOrderDetailPDFFileRequest.setActionName(bussinessTypeEntity == null ? " " : bussinessTypeEntity.getName()); + + FilterErpOrderRequest filterErpOrderRequest = new FilterErpOrderRequest(); + filterErpOrderRequest.setOrderId(inoutOrderDetailPDFFileRequest.getOrderId()); + List erpOrderEntityList = orderDetailService.filterAllMyErpOrder(filterErpOrderRequest); + + ITextPDFUtils.exportOrderDetailPDFFromTemplateFile( + inoutOrderDetailPDFFileRequest, erpOrderEntityList, request, response); + } + + @PostMapping("/udiwms/pdf/template/preview") + public BaseResponse previewPDFTemplate( + @RequestBody InspectionPDFTemplateRequest inspectionPDFTemplateRequest) throws Exception { + + + + return ResultVOUtils.success(); + } + + /** + * 订单,模板检测 code + */ + @PostMapping("/udiwms/pdf/template/inspection/order/detail/code") + public BaseResponse inspectionOrderDetailPDFFromTemplateCode( + @RequestBody InspectionPDFTemplateRequest inspectionPDFTemplateRequest) throws Exception { + + OrderEntity orderEntity = orderService.findById(inspectionPDFTemplateRequest.getOrderId()); + if (orderEntity == null) { + return ResultVOUtils.error(ResultEnum.DATA_NOT, "未找到订单"); + } + + SystemPDFTemplateEntity systemPDFTemplateEntity = systemPDFTemplateService.selectById("1"); + if (systemPDFTemplateEntity == null) return ResultVOUtils.error(ResultEnum.DATA_NOT, "模板错误"); + +// Map rMap = inspectionCustomerPDFTemplate(inspectionPDFTemplateRequest.getCustomerId()); +// if (Integer.parseInt(String.valueOf(rMap.get("code"))) != 0) { +// return ResultVOUtils.error(ResultEnum.DATA_NOT, String.valueOf(rMap.get("message"))); +// } + + return ResultVOUtils.success(); + } + + /** + * 订单,模板检测 file + */ + @PostMapping("/udiwms/pdf/template/inspection/order/detail/file") + public BaseResponse inspectionOrderDetailPDFFromTemplateFile( + @RequestBody InspectionPDFTemplateRequest inspectionPDFTemplateRequest) throws Exception { + + OrderEntity orderEntity = orderService.findById(inspectionPDFTemplateRequest.getOrderId()); + if (orderEntity == null) { + return ResultVOUtils.error(ResultEnum.DATA_NOT, "未找到订单"); + } + + SystemPDFModuleEntity systemPDFModuleEntity = systemPDFModuleService.selectById(1 + ""); + if (systemPDFModuleEntity == null) return ResultVOUtils.error(ResultEnum.DATA_NOT, "所属模块错误"); + SystemPDFTemplateEntity systemPDFTemplateEntity = + systemPDFTemplateService.selectById(String.valueOf(systemPDFModuleEntity.getTemplateId())); + if (systemPDFTemplateEntity == null) return ResultVOUtils.error(ResultEnum.DATA_NOT, "模板错误"); + + return ResultVOUtils.success(); + } + + /** + * 检测供应商是否设置模板以及模板是否存在。 + */ + public Map inspectionCustomerPDFTemplate(Long customerId) { + + Map rMap = new HashMap<>(); + rMap.put("code", -1); + + List systemPDFTemplateRelevanceEntityList = + systemPDFTemplateRelevanceService.listByCustomerId(customerId); + if (systemPDFTemplateRelevanceEntityList.size() < 1) { + rMap.put("message", "未设置模板"); + return rMap; + } + SystemPDFTemplateRelevanceEntity systemPDFTemplateRelevanceEntity = systemPDFTemplateRelevanceEntityList.get(0); + + SystemPDFTemplateRequest systemPDFTemplateRequest = new SystemPDFTemplateRequest(); + systemPDFTemplateRequest.setId(systemPDFTemplateRelevanceEntity.getTemplate_id()); + + SystemPDFTemplateEntity systemPDFTemplateEntity = + systemPDFTemplateService.findSystemPDFTemplate(systemPDFTemplateRequest); + if (systemPDFTemplateEntity == null) { + rMap.put("message", "模板错误"); + return rMap; + } + + rMap.put("code", 0); + rMap.put("message", "成功"); + rMap.put("data", systemPDFTemplateEntity.getParam()); + return rMap; + } +} \ No newline at end of file diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/scdemon/ScdemonController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/scdemon/ScdemonController.java new file mode 100644 index 00000000..f2932f26 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/scdemon/ScdemonController.java @@ -0,0 +1,4 @@ +package com.glxp.api.admin.controller.scdemon; + +public class ScdemonController { +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/thrsys/ThrOrderController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/thrsys/ThrOrderController.java index e2fb6f31..667db9cf 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/controller/thrsys/ThrOrderController.java +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/thrsys/ThrOrderController.java @@ -5,6 +5,8 @@ import com.alibaba.fastjson.TypeReference; import com.github.pagehelper.PageInfo; import com.glxp.api.admin.constant.BasicProcessStatus; import com.glxp.api.admin.entity.info.SystemParamConfigEntity; +import com.glxp.api.admin.entity.inout.ErpOrderEntity; +import com.glxp.api.admin.entity.inout.FilterErpOrderRequest; import com.glxp.api.admin.entity.thrsys.ThrOrderDetailEntity; import com.glxp.api.admin.entity.thrsys.ThrOrderEntity; import com.glxp.api.admin.entity.thrsys.ThrOrderImportDetailEntity; @@ -14,6 +16,7 @@ import com.glxp.api.admin.req.thrsys.*; import com.glxp.api.admin.res.PageSimpleResponse; import com.glxp.api.admin.res.inout.ErpOrderResponse; import com.glxp.api.admin.service.info.SystemParamConfigService; +import com.glxp.api.admin.service.inout.OrderDetailService; import com.glxp.api.admin.service.thrsys.ThrOrderDetailService; import com.glxp.api.admin.service.thrsys.ThrOrderImportDetailService; import com.glxp.api.admin.service.thrsys.ThrOrderImportLogService; @@ -56,6 +59,9 @@ public class ThrOrderController { @Resource ThrOrderImportService thrOrderImportService; + @Resource + private OrderDetailService myErpOrderService; + @GetMapping("/udiwms/thrsys/getOrders") public BaseResponse getOrders(FilterThrOrderRequest filterThrOrderRequest, BindingResult bindingResult) { @@ -154,11 +160,26 @@ public class ThrOrderController { } String id = deleteRequest.getId(); ThrOrderEntity thrOrderEntity = thrOrderService.findById(id); - boolean b = thrOrderService.deleteById(id); - thrOrderDetailService.deleteByOrderIdFk(thrOrderEntity.getId() + ""); - if (b) - return ResultVOUtils.success("删除成功"); - else return ResultVOUtils.error(500, "无法删除!"); + String msg = selectDelect(thrOrderEntity); + if (msg == null) { + boolean b = thrOrderService.deleteById(id); + thrOrderDetailService.deleteByOrderIdFk(thrOrderEntity.getId() + ""); + if (b) + return ResultVOUtils.success("删除成功"); + else return ResultVOUtils.error(500, "无法删除!"); + } else return ResultVOUtils.error(500, msg); + + } + + public String selectDelect(ThrOrderEntity thrOrderEntity) { + FilterErpOrderRequest filterErpOrderRequest = new FilterErpOrderRequest(); + filterErpOrderRequest.setErpOrderId(thrOrderEntity.getBillNo()); + List erpOrderEntities = myErpOrderService.filterAllMyErpOrder(filterErpOrderRequest); + if (erpOrderEntities != null && erpOrderEntities.size() > 0) { + return "单据" + thrOrderEntity.getBillNo() + "已于出入库单据关联,无法删除"; + } else { + return null; + } } @RequestMapping("/udiwms/thrsys/order/delAll") diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/thrsys/ThrOrderImportLogController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/thrsys/ThrOrderImportLogController.java index fa5a5de1..7bedd9d2 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/controller/thrsys/ThrOrderImportLogController.java +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/thrsys/ThrOrderImportLogController.java @@ -154,11 +154,20 @@ public class ThrOrderImportLogController { continue; } // 滤过第一行标题 - for (int k = sheet.getFirstRowNum(); k <= sheet.getLastRowNum(); k++) { + row = sheet.getRow(0); + if ((row.getCell(0) == null || row.getCell(1) == null || row.getCell(2) == null + || row.getCell(3) == null || row.getCell(4) == null || row.getCell(5) == null|| row.getCell(6) == null) || + (!"单据号".equals(row.getCell(0).getStringCellValue()) + || !"单据日期".equals(row.getCell(1).getStringCellValue()) + || !"往来单位ID".equals(row.getCell(2).getStringCellValue()) + || !"往来单位名称".equals(row.getCell(3).getStringCellValue()) + || !"单据类型".equals(row.getCell(4).getStringCellValue()) + || !"单据状态".equals(row.getCell(5).getStringCellValue()) + || !"产品ID".equals(row.getCell(6).getStringCellValue()))) { + return ResultVOUtils.error(500, "文件格式错误!"); + } + for (int k = sheet.getFirstRowNum()+1; k <= sheet.getLastRowNum(); k++) { row = sheet.getRow(k); - if (row == null || row.getFirstCellNum() == k) { - continue; - } ThrOrderImportDetailEntity corpImportDetailEntity = new ThrOrderImportDetailEntity(); Cell cell1 = row.getCell(0); if (cell1 != null) { @@ -189,9 +198,9 @@ public class ThrOrderImportLogController { cell5.setCellType(CellType.STRING); String billType = cell5.getStringCellValue(); BussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findBTByName(billType); - if(bussinessTypeEntity!=null){ + if (bussinessTypeEntity != null) { corpImportDetailEntity.setBillType(bussinessTypeEntity.getAction()); - }else + } else corpImportDetailEntity.setBillType(billType); @@ -217,20 +226,43 @@ public class ThrOrderImportLogController { Cell cell9 = row.getCell(8); if (cell9 != null) { cell9.setCellType(CellType.STRING); - corpImportDetailEntity.setProductDate(cell9.getStringCellValue()); + corpImportDetailEntity.setSpec(cell9.getStringCellValue()); } Cell cell10 = row.getCell(9); if (cell10 != null) { cell10.setCellType(CellType.STRING); - corpImportDetailEntity.setExpireDate(cell10.getStringCellValue()); + corpImportDetailEntity.setBatchNo(cell10.getStringCellValue()); } Cell cell11 = row.getCell(10); - corpImportDetailEntity.setCount((int) cell11.getNumericCellValue()); + if (cell11 != null) { + cell11.setCellType(CellType.STRING); + corpImportDetailEntity.setProductDate(cell11.getStringCellValue()); + } Cell cell12 = row.getCell(11); - corpImportDetailEntity.setReCount((int) cell12.getNumericCellValue()); + if (cell12 != null) { + cell12.setCellType(CellType.STRING); + corpImportDetailEntity.setExpireDate(cell12.getStringCellValue()); + } + + Cell cell13 = row.getCell(12); + if (cell13 != null) { + cell13.setCellType(CellType.STRING); + String count = cell13.getStringCellValue(); + if (count != null && !"".equals(count)) { + corpImportDetailEntity.setCount(Integer.parseInt(count)); + } + } + Cell cell14 = row.getCell(13); + if (cell14 != null) { + cell14.setCellType(CellType.STRING); + String count = cell14.getStringCellValue(); + if (count != null && !"".equals(count)) { + corpImportDetailEntity.setReCount(Integer.parseInt(count)); + } + } corpImportDetailEntity.setThirdSysFk(thirdSys); corpImportDetailEntity.setGenKeyFk(genKey); diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/thrsys/ThrProductsController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/thrsys/ThrProductsController.java index 1f21653d..6e75b2bf 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/controller/thrsys/ThrProductsController.java +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/thrsys/ThrProductsController.java @@ -4,11 +4,14 @@ import com.github.pagehelper.PageInfo; import com.glxp.api.admin.constant.BasicProcessStatus; import com.glxp.api.admin.entity.thrsys.ThrProductsEntity; import com.glxp.api.admin.entity.thrsys.ThrProductsImportLogEntity; +import com.glxp.api.admin.req.basic.FilterUdiInfoRequest; import com.glxp.api.admin.req.inout.DeleteRequest; import com.glxp.api.admin.req.thrsys.FilterThrProductsRequest; import com.glxp.api.admin.req.thrsys.PostThrProductsRequest; import com.glxp.api.admin.res.PageSimpleResponse; import com.glxp.api.admin.res.basic.ErpProductsResponse; +import com.glxp.api.admin.res.basic.UdiRelevanceResponse; +import com.glxp.api.admin.service.basic.UdiRelevanceService; import com.glxp.api.admin.service.thrsys.ThrProductsImportLogService; import com.glxp.api.admin.service.thrsys.ThrProductsService; import com.glxp.api.admin.thread.ThrProductsDlService; @@ -35,6 +38,8 @@ public class ThrProductsController { private ThrProductsDlService thrProductsDlService; @Resource ThrProductsImportLogService thrProductsImportLogService; + @Resource + UdiRelevanceService udiRelevanceService; @GetMapping("/udiwms/thrsys/getThrProducts") @@ -61,11 +66,48 @@ public class ThrProductsController { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } - String id = deleteRequest.getId(); - thrProductsService.deleteById(id); + if (deleteRequest.getIds() != null && deleteRequest.getIds().size() > 0) { + for (String id : deleteRequest.getIds()) { + selectDetale(id); + } + } else { + String id = deleteRequest.getId(); + String msg = selectDetale(id); + if (msg != null) { + return ResultVOUtils.error(500, msg); + } + } return ResultVOUtils.success("删除成功"); } + + public String selectDetale(String id) { + ThrProductsEntity thrProductsEntity = thrProductsService.selectById(id); + if (thrProductsEntity != null) { + FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest(); + if ("thirdId".equals(thrProductsEntity.getThirdSysFk())) { + filterUdiInfoRequest.setThirdId(thrProductsEntity.getCode()); + } else if ("thirdId1".equals(thrProductsEntity.getThirdSysFk())) { + filterUdiInfoRequest.setThirdId(thrProductsEntity.getCode()); + } else if ("thirdId2".equals(thrProductsEntity.getThirdSysFk())) { + filterUdiInfoRequest.setThirdId(thrProductsEntity.getCode()); + } else if ("thirdId3".equals(thrProductsEntity.getThirdSysFk())) { + filterUdiInfoRequest.setThirdId(thrProductsEntity.getCode()); + } else if ("thirdId4".equals(thrProductsEntity.getThirdSysFk())) { + filterUdiInfoRequest.setThirdId(thrProductsEntity.getCode()); + } + List udiRelevanceResponses = udiRelevanceService.filterUdiRelevance(filterUdiInfoRequest); + if (udiRelevanceResponses != null && udiRelevanceResponses.size() > 0) { + return "该产品已与UDI码关联,无法删除!"; + } + } + boolean b = thrProductsService.deleteById(id); + if (b) + return null; + else return "删除失败!"; + } + + @RequestMapping("/udiwms/thrsys/products/delAll") public BaseResponse delAll() { thrProductsService.deleteAll(); diff --git a/api-admin/src/main/java/com/glxp/api/admin/dao/info/SystemPDFModuleDao.java b/api-admin/src/main/java/com/glxp/api/admin/dao/info/SystemPDFModuleDao.java new file mode 100644 index 00000000..caa31f9b --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/dao/info/SystemPDFModuleDao.java @@ -0,0 +1,26 @@ +package com.glxp.api.admin.dao.info; + +import com.glxp.api.admin.entity.info.SystemPDFModuleEntity; +import com.glxp.api.admin.req.info.SystemPDFModuleRequest; +import com.glxp.api.admin.req.info.SystemPDFModuleSaveRequest; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface SystemPDFModuleDao { + + List queryPage(SystemPDFModuleRequest systemPDFModuleRequest); + + List listPDFModules(); + + SystemPDFModuleEntity findSystemPDFModule(SystemPDFModuleRequest systemPDFModuleRequest); + + SystemPDFModuleEntity selectById(String id); + + boolean updateById(SystemPDFModuleSaveRequest systemPDFModuleSaveRequest); + + boolean insert(SystemPDFModuleEntity systemPDFModuleEntity); + + boolean deleteById(Integer id); +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/dao/info/SystemPDFTemplateDao.java b/api-admin/src/main/java/com/glxp/api/admin/dao/info/SystemPDFTemplateDao.java new file mode 100644 index 00000000..d0c1f1f8 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/dao/info/SystemPDFTemplateDao.java @@ -0,0 +1,26 @@ +package com.glxp.api.admin.dao.info; + +import com.glxp.api.admin.entity.info.SystemPDFTemplateEntity; +import com.glxp.api.admin.req.info.SystemPDFTemplateRequest; +import com.glxp.api.admin.req.info.SystemPDFTemplateSaveRequest; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface SystemPDFTemplateDao { + + List queryPage(SystemPDFTemplateRequest systemPDFTemplateRequest); + + List listPDFTemplates(); + + SystemPDFTemplateEntity findSystemPDFTemplate(SystemPDFTemplateRequest systemPDFTemplateRequest); + + SystemPDFTemplateEntity selectById(String id); + + boolean updateById(SystemPDFTemplateSaveRequest systemPDFTemplateSaveRequest); + + boolean insert(SystemPDFTemplateEntity systemPDFTemplateEntity); + + boolean deleteById(Integer id); +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/dao/info/SystemPDFTemplateRelevanceDao.java b/api-admin/src/main/java/com/glxp/api/admin/dao/info/SystemPDFTemplateRelevanceDao.java new file mode 100644 index 00000000..2594093a --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/dao/info/SystemPDFTemplateRelevanceDao.java @@ -0,0 +1,49 @@ +package com.glxp.api.admin.dao.info; + +import com.glxp.api.admin.entity.info.SystemPDFTemplateRelevanceEntity; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + + +@Mapper +public interface SystemPDFTemplateRelevanceDao { + + /** + * 根据 customerId 查询 + * @param customerId 传入的 customerId + * @return + */ + List listByCustomerId(Long customerId); + + /** + * 根据 多个 customerId 查询 + * @param customerIds 传入的 customerIds + * @return + */ + List listByCustomerIdIn(List customerIds); + + /** + * 根据 template_id 查询 customer_id + * @param templateId 传入的 templateId + * @return + */ + List listByTemplateId(int templateId); + + /** + * 批量插入 + * @param systemPDFTemplateRelevanceEntityList + * @return + */ + int insertSystemPDFTemplateRelevanceAll(List systemPDFTemplateRelevanceEntityList); + + boolean insert(SystemPDFTemplateRelevanceEntity systemPDFTemplateRelevanceEntity); + + + /** + * 根据 customerId 删除 + * @param customerId + * @return + */ + boolean deleteByCustomerId(Long customerId); +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/info/SystemPDFModuleEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/info/SystemPDFModuleEntity.java new file mode 100644 index 00000000..c9a7a15e --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/info/SystemPDFModuleEntity.java @@ -0,0 +1,18 @@ +package com.glxp.api.admin.entity.info; + +import lombok.Data; + +import java.util.Date; + +@Data +public class SystemPDFModuleEntity { + + private int id; + private String name; + private String param; + private String fieldExplain; + private int templateId; + private String remark; + private Date create_time; + private Date update_time; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/info/SystemPDFTemplateEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/info/SystemPDFTemplateEntity.java new file mode 100644 index 00000000..4b7284b8 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/info/SystemPDFTemplateEntity.java @@ -0,0 +1,21 @@ +package com.glxp.api.admin.entity.info; + +import lombok.Data; + +import java.util.Date; + +@Data +public class SystemPDFTemplateEntity { + + private int id; + private String name; + private int type; + private int module; + private String param; + private String path; + private int rowCount; + private int qrcodeCount; + private String remark; + private Date create_time; + private Date update_time; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/info/SystemPDFTemplateRelevanceEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/info/SystemPDFTemplateRelevanceEntity.java new file mode 100644 index 00000000..1fc86fd8 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/info/SystemPDFTemplateRelevanceEntity.java @@ -0,0 +1,15 @@ +package com.glxp.api.admin.entity.info; + +import lombok.Data; + +/** + * 用户角色对应表 + */ +@Data +public class SystemPDFTemplateRelevanceEntity { + private int id; + private int template_id; + private Long customerId; + private int admin_id; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/inout/StockOrderDetailEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/inout/StockOrderDetailEntity.java new file mode 100644 index 00000000..0b7b308f --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/inout/StockOrderDetailEntity.java @@ -0,0 +1,20 @@ +package com.glxp.api.admin.entity.inout; + +import lombok.Data; + +@Data +public class StockOrderDetailEntity { + + private String id; + private String orderIdFk; + private String productId; + private String productName; + private String spec; + private String batchNo; + private String expireDate; + private String productDate; + private String count; + private String reCount; + private String sweepCount; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/inout/StockOrderEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/inout/StockOrderEntity.java new file mode 100644 index 00000000..e70033ad --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/inout/StockOrderEntity.java @@ -0,0 +1,21 @@ +package com.glxp.api.admin.entity.inout; + +import lombok.Data; + +@Data +public class StockOrderEntity { + + private String id; + private String billNo; + private String billdate; + private String corpId; + private String corpName; + private String billType; + private String billFlag; + private String thirdSysFk; + private String status; + private String statusInfo; + private String type; + private String sourceType; + private String status2; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/inout/StockQRCodeTextEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/inout/StockQRCodeTextEntity.java new file mode 100644 index 00000000..e4057f34 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/inout/StockQRCodeTextEntity.java @@ -0,0 +1,24 @@ +package com.glxp.api.admin.entity.inout; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +@Data +public class StockQRCodeTextEntity { + + private String id; + private String orderId; + private String detailId; + private String text; + private String textTag; + private String status; + private String param; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date create_time; + private Date update_time; + + private String count; + private String reCount; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/info/SystemPDFModuleRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/info/SystemPDFModuleRequest.java new file mode 100644 index 00000000..72fc06d7 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/info/SystemPDFModuleRequest.java @@ -0,0 +1,21 @@ +package com.glxp.api.admin.req.info; + +import com.glxp.api.admin.req.ListPageRequest; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +@EqualsAndHashCode(callSuper = true) +@Data +public class SystemPDFModuleRequest extends ListPageRequest { + + private int id; + private String name; + private String param; + private String fieldExplain; + private int templateId; + private String remark; + private Date create_time; + private Date update_time; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/info/SystemPDFModuleSaveRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/info/SystemPDFModuleSaveRequest.java new file mode 100644 index 00000000..caf4220d --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/info/SystemPDFModuleSaveRequest.java @@ -0,0 +1,18 @@ +package com.glxp.api.admin.req.info; + +import lombok.Data; + +import java.util.Date; + +@Data +public class SystemPDFModuleSaveRequest { + + private int id; + private String name; + private String param; + private String fieldExplain; + private int templateId; + private String remark; + private Date create_time; + private Date update_time; +} \ No newline at end of file diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/info/SystemPDFTemplateRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/info/SystemPDFTemplateRequest.java new file mode 100644 index 00000000..4227ee38 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/info/SystemPDFTemplateRequest.java @@ -0,0 +1,24 @@ +package com.glxp.api.admin.req.info; + +import com.glxp.api.admin.req.ListPageRequest; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +@EqualsAndHashCode(callSuper = true) +@Data +public class SystemPDFTemplateRequest extends ListPageRequest { + + private int id; + private String name; + private int type; + private int module; + private String param; + private String path; + private int rowCount; + private int qrcodeCount; + private String remark; + private Date create_time; + private Date update_time; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/info/SystemPDFTemplateSaveRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/info/SystemPDFTemplateSaveRequest.java new file mode 100644 index 00000000..60c8018c --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/info/SystemPDFTemplateSaveRequest.java @@ -0,0 +1,21 @@ +package com.glxp.api.admin.req.info; + +import lombok.Data; + +import java.util.Date; + +@Data +public class SystemPDFTemplateSaveRequest { + + private int id; + private String name; + private int type; + private int module; + private String param; + private String path; + private int rowCount; + private int qrcodeCount; + private String remark; + private Date create_time; + private Date update_time; +} \ No newline at end of file diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/inout/PostOrderRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/inout/PostOrderRequest.java index 39ab54b8..791072e8 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/req/inout/PostOrderRequest.java +++ b/api-admin/src/main/java/com/glxp/api/admin/req/inout/PostOrderRequest.java @@ -5,7 +5,6 @@ import lombok.Data; import java.util.List; -@Data public class PostOrderRequest { List postOrders; diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/inout/ScPostOrderRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/inout/ScPostOrderRequest.java new file mode 100644 index 00000000..1f6bd402 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/inout/ScPostOrderRequest.java @@ -0,0 +1,21 @@ +package com.glxp.api.admin.req.inout; + +import com.glxp.api.admin.entity.inout.WarehouseEntity; +import lombok.Data; + +import java.util.List; + +/** + * 扫码精灵扫码上传 + */ +@Data +public class ScPostOrderRequest { + + List codes; + private String billType; + private String orderId; + private String fromCorpId; + private String fromCorp; + private String actor; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/itextpdf/InoutOrderDetailPDFCodeRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/itextpdf/InoutOrderDetailPDFCodeRequest.java new file mode 100644 index 00000000..bc56a5a0 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/itextpdf/InoutOrderDetailPDFCodeRequest.java @@ -0,0 +1,161 @@ +package com.glxp.api.admin.req.itextpdf; + +import lombok.Data; + +@Data +public class InoutOrderDetailPDFCodeRequest { + private String orderId; + private SettingData settingData; + + private String actionName; + private String fromCorp; + private String fromType; + private Long customerId; + + public static class SettingData { + private boolean orderIdEnable; + private int orderIdWidth; + private boolean actionEnable; + private int actionWidth; + private boolean fromCorpEnable; + private int fromCorpWidth; + private boolean fromTypeEnable; + private int fromTypeWidth; + + private boolean numberEnable; + private int numberWidth; + private boolean coNameEnable; + private int coNameWidth; + private boolean packSpecEnable; + private int packSpecWidth; + private boolean batchNoEnable; + private int batchNoWidth; + private boolean countEnable; + private int countWidth; + private boolean productCompanyEnable; + private int productCompanyWidth; + private boolean authCodeEnable; + private int authCodeWidth; + + public boolean getOrderIdEnable() { return orderIdEnable; } + public void setOrderIdEnable(boolean orderIdEnable) { + this.orderIdEnable = orderIdEnable; + } + public int getOrderIdWidth() { + return orderIdWidth; + } + public void setOrderIdWidth(int orderIdWidth) { + this.orderIdWidth = orderIdWidth; + } + + public boolean getActionEnable() { return actionEnable; } + public void setActionEnable(boolean actionEnable) { + this.actionEnable = actionEnable; + } + public int getActionWidth() { + return actionWidth; + } + public void setActionWidth(int actionWidth) { + this.actionWidth = actionWidth; + } + + public boolean getFromCorpEnable() { return fromCorpEnable; } + public void setFromCorpEnable(boolean fromCorpEnable) { + this.fromCorpEnable = fromCorpEnable; + } + public int getFromCorpWidth() { + return fromCorpWidth; + } + public void setFromCorpWidth(int fromCorpWidth) { + this.fromCorpWidth = fromCorpWidth; + } + + public boolean getFromTypeEnable() { return fromTypeEnable; } + public void setFromTypeEnable(boolean fromTypeEnable) { + this.fromTypeEnable = fromTypeEnable; + } + public int getFromTypeWidth() { + return fromTypeWidth; + } + public void setFromTypeWidth(int fromTypeWidth) { + this.fromTypeWidth = fromTypeWidth; + } + + public boolean getNumberEnable() { return numberEnable; } + public void setNumberEnable(boolean numberEnable) { + this.numberEnable = numberEnable; + } + public int getNumberWidth() { + return numberWidth; + } + public void setNumberWidth(int numberWidth) { + this.numberWidth = numberWidth; + } + + public boolean getCoNameEnable() { return coNameEnable; } + public void setCoNameEnable(boolean coNameEnable) { + this.coNameEnable = coNameEnable; + } + public int getCoNameWidth() { + return coNameWidth; + } + public void setCoNameWidth(int coNameWidth) { + this.coNameWidth = coNameWidth; + } + + public boolean getPackSpecEnable() { return packSpecEnable; } + public void setPackSpecEnable(boolean packSpecEnable) { + this.packSpecEnable = packSpecEnable; + } + public int getPackSpecWidth() { + return packSpecWidth; + } + public void setPackSpecWidth(int packSpecWidth) { + this.packSpecWidth = packSpecWidth; + } + + public boolean getBatchNoEnable() { return batchNoEnable; } + public void setBatchNoEnable(boolean batchNoEnable) { + this.batchNoEnable = batchNoEnable; + } + public int getBatchNoWidth() { + return batchNoWidth; + } + public void setBatchNoWidth(int batchNoWidth) { + this.batchNoWidth = batchNoWidth; + } + + public boolean getCountEnable() { return countEnable; } + public void setCountEnable(boolean countEnable) { + this.countEnable = countEnable; + } + public int getCountWidth() { + return countWidth; + } + public void setCountWidth(int countWidth) { + this.countWidth = countWidth; + } + + public boolean getProductCompanyEnable() { return productCompanyEnable; } + public void setProductCompanyEnable(boolean productCompanyEnable) { + this.productCompanyEnable = productCompanyEnable; + } + public int getProductCompanyWidth() { + return productCompanyWidth; + } + public void setProductCompanyWidth(int productCompanyWidth) { + this.productCompanyWidth = productCompanyWidth; + } + + public boolean getAuthCodeEnable() { return authCodeEnable; } + public void setAuthCodeEnable(boolean authCodeEnable) { + this.authCodeEnable = authCodeEnable; + } + public int getAuthCodeWidth() { + return authCodeWidth; + } + public void setAuthCodeWidth(int authCodeWidth) { + this.authCodeWidth = authCodeWidth; + } + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/itextpdf/InoutOrderDetailPDFFileRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/itextpdf/InoutOrderDetailPDFFileRequest.java new file mode 100644 index 00000000..1c3de5c2 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/itextpdf/InoutOrderDetailPDFFileRequest.java @@ -0,0 +1,18 @@ +package com.glxp.api.admin.req.itextpdf; + +import lombok.Data; + +@Data +public class InoutOrderDetailPDFFileRequest { + private String orderId; + + private String actionName; + private String fromCorp; + private String fromType; + private String actDate; + private Long customerId; + + private String path; + private int rowCount; + private int qrcodeCount; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/itextpdf/InspectionPDFTemplateRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/itextpdf/InspectionPDFTemplateRequest.java new file mode 100644 index 00000000..1f4760d2 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/itextpdf/InspectionPDFTemplateRequest.java @@ -0,0 +1,17 @@ +package com.glxp.api.admin.req.itextpdf; + +import lombok.Data; + +@Data +public class InspectionPDFTemplateRequest { + + private String queryId; + + private String id; + private int type; + private int module; + + private String orderId; + private Long customerId; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/itextpdf/StockQRCodeTextPDFTemplateRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/itextpdf/StockQRCodeTextPDFTemplateRequest.java new file mode 100644 index 00000000..f1abfbdf --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/itextpdf/StockQRCodeTextPDFTemplateRequest.java @@ -0,0 +1,19 @@ +package com.glxp.api.admin.req.itextpdf; + +import lombok.Data; + +@Data +public class StockQRCodeTextPDFTemplateRequest { + + private String id; + private String orderId; + private String billNo; + private String detailId; + + private String actionName; + private String text; + + private String path; + private int rowCount; + private int qrcodeCount; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/res/basic/BasicThirdSysResponse.java b/api-admin/src/main/java/com/glxp/api/admin/res/basic/BasicThirdSysResponse.java index 1b4a076a..6f70e5fb 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/res/basic/BasicThirdSysResponse.java +++ b/api-admin/src/main/java/com/glxp/api/admin/res/basic/BasicThirdSysResponse.java @@ -4,8 +4,15 @@ import lombok.Data; @Data public class BasicThirdSysResponse { + public BasicThirdSysResponse() { + + } + + public BasicThirdSysResponse(String thirdId, String thirdName) { + this.thirdId = thirdId; + this.thirdName = thirdName; + } - private String id; private String thirdId; private String thirdName; diff --git a/api-admin/src/main/java/com/glxp/api/admin/res/basic/SrBtResponse.java b/api-admin/src/main/java/com/glxp/api/admin/res/basic/SrBtResponse.java new file mode 100644 index 00000000..e979b464 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/res/basic/SrBtResponse.java @@ -0,0 +1,13 @@ +package com.glxp.api.admin.res.basic; + +import lombok.Data; + +@Data +public class SrBtResponse { + + private String mainAction; + private String action; + private String name; + private String thirdSysFk; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/res/basic/SrtBasicUnitResponse.java b/api-admin/src/main/java/com/glxp/api/admin/res/basic/SrtBasicUnitResponse.java new file mode 100644 index 00000000..b9cc7723 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/res/basic/SrtBasicUnitResponse.java @@ -0,0 +1,10 @@ +package com.glxp.api.admin.res.basic; + +import lombok.Data; + +@Data +public class SrtBasicUnitResponse { + + private String unitId; + private String unitName; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/res/info/SystemPDFModuleResponse.java b/api-admin/src/main/java/com/glxp/api/admin/res/info/SystemPDFModuleResponse.java new file mode 100644 index 00000000..a46398fc --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/res/info/SystemPDFModuleResponse.java @@ -0,0 +1,20 @@ +package com.glxp.api.admin.res.info; + +import lombok.Data; + +import java.util.Date; + +@Data +public class SystemPDFModuleResponse { + + private int id; + private String name; + private String param; + private String fieldExplain; + private int templateId; + private String remark; + private Date create_time; + private Date update_time; + + private String templateName; +} \ No newline at end of file diff --git a/api-admin/src/main/java/com/glxp/api/admin/res/info/SystemPDFModuleSelectResponse.java b/api-admin/src/main/java/com/glxp/api/admin/res/info/SystemPDFModuleSelectResponse.java new file mode 100644 index 00000000..21e4ca34 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/res/info/SystemPDFModuleSelectResponse.java @@ -0,0 +1,12 @@ +package com.glxp.api.admin.res.info; + +import lombok.Data; + +@Data +public class SystemPDFModuleSelectResponse { + + private int id; + private String idStr; + private String name; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/res/info/SystemPDFTemplateResponse.java b/api-admin/src/main/java/com/glxp/api/admin/res/info/SystemPDFTemplateResponse.java new file mode 100644 index 00000000..b596411d --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/res/info/SystemPDFTemplateResponse.java @@ -0,0 +1,21 @@ +package com.glxp.api.admin.res.info; + +import lombok.Data; + +import java.util.Date; + +@Data +public class SystemPDFTemplateResponse { + + private int id; + private String name; + private int type; + private int module; + private String param; + private String path; + private int rowCount; + private int qrcodeCount; + private String remark; + private Date create_time; + private Date update_time; +} \ No newline at end of file diff --git a/api-admin/src/main/java/com/glxp/api/admin/res/info/SystemPDFTemplateSelectResponse.java b/api-admin/src/main/java/com/glxp/api/admin/res/info/SystemPDFTemplateSelectResponse.java new file mode 100644 index 00000000..dcbe1f42 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/res/info/SystemPDFTemplateSelectResponse.java @@ -0,0 +1,12 @@ +package com.glxp.api.admin.res.info; + +import lombok.Data; + +@Data +public class SystemPDFTemplateSelectResponse { + + private int id; + private String idStr; + private String name; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/info/SystemPDFModuleService.java b/api-admin/src/main/java/com/glxp/api/admin/service/info/SystemPDFModuleService.java new file mode 100644 index 00000000..be713a66 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/info/SystemPDFModuleService.java @@ -0,0 +1,26 @@ +package com.glxp.api.admin.service.info; + + +import com.glxp.api.admin.entity.info.SystemPDFModuleEntity; +import com.glxp.api.admin.req.info.SystemPDFModuleRequest; +import com.glxp.api.admin.req.info.SystemPDFModuleSaveRequest; + +import java.util.List; + + +public interface SystemPDFModuleService { + + List queryPage(SystemPDFModuleRequest systemPDFModuleRequest); + + List listPDFModules(Integer page, Integer limit); + + SystemPDFModuleEntity findSystemPDFModule(SystemPDFModuleRequest systemPDFModuleRequest); + + SystemPDFModuleEntity selectById(String id); + + boolean updateById(SystemPDFModuleSaveRequest systemPDFModuleSaveRequest); + + boolean insert(SystemPDFModuleEntity systemPDFModuleEntity); + + boolean deleteById(Integer id); +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/info/SystemPDFTemplateRelevanceService.java b/api-admin/src/main/java/com/glxp/api/admin/service/info/SystemPDFTemplateRelevanceService.java new file mode 100644 index 00000000..ba113655 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/info/SystemPDFTemplateRelevanceService.java @@ -0,0 +1,24 @@ +package com.glxp.api.admin.service.info; + + +import com.glxp.api.admin.entity.info.SystemPDFTemplateRelevanceEntity; + +import java.util.List; + +public interface SystemPDFTemplateRelevanceService { + + List listByCustomerId(Long customerId); + + List listByCustomerIdIn(List customerIds); + + List listByTemplateId(int templateId); + + int insertSystemPDFTemplateRelevanceAll(List systemPDFTemplateRelevanceEntityList); + + boolean insert(SystemPDFTemplateRelevanceEntity systemPDFTemplateRelevanceEntity); + + int insertRolesCustomerIdAll(List templates, Long customerId); + + boolean deleteByCustomerId(Long customerId); + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/info/SystemPDFTemplateService.java b/api-admin/src/main/java/com/glxp/api/admin/service/info/SystemPDFTemplateService.java new file mode 100644 index 00000000..67cfabd8 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/info/SystemPDFTemplateService.java @@ -0,0 +1,26 @@ +package com.glxp.api.admin.service.info; + + +import com.glxp.api.admin.entity.info.SystemPDFTemplateEntity; +import com.glxp.api.admin.req.info.SystemPDFTemplateRequest; +import com.glxp.api.admin.req.info.SystemPDFTemplateSaveRequest; + +import java.util.List; + + +public interface SystemPDFTemplateService { + + List queryPage(SystemPDFTemplateRequest systemPDFTemplateRequest); + + List listPDFTemplates(Integer page, Integer limit); + + SystemPDFTemplateEntity findSystemPDFTemplate(SystemPDFTemplateRequest systemPDFTemplateRequest); + + SystemPDFTemplateEntity selectById(String id); + + boolean updateById(SystemPDFTemplateSaveRequest systemPDFTemplateSaveRequest); + + boolean insert(SystemPDFTemplateEntity systemPDFTemplateEntity); + + boolean deleteById(Integer id); +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/info/impl/SystemPDFModuleServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/info/impl/SystemPDFModuleServiceImpl.java new file mode 100644 index 00000000..1301c755 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/info/impl/SystemPDFModuleServiceImpl.java @@ -0,0 +1,62 @@ +package com.glxp.api.admin.service.info.impl; + +import com.github.pagehelper.PageHelper; +import com.glxp.api.admin.dao.info.SystemPDFModuleDao; +import com.glxp.api.admin.entity.info.SystemPDFModuleEntity; +import com.glxp.api.admin.req.info.SystemPDFModuleRequest; +import com.glxp.api.admin.req.info.SystemPDFModuleSaveRequest; +import com.glxp.api.admin.service.info.SystemPDFModuleService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +@Service +public class SystemPDFModuleServiceImpl implements SystemPDFModuleService { + @Resource + SystemPDFModuleDao systemPDFModuleDao; + + @Override + public List queryPage(SystemPDFModuleRequest SystemPDFModuleRequest) { + int offset = (SystemPDFModuleRequest.getPage() - 1) * SystemPDFModuleRequest.getLimit(); + PageHelper.offsetPage(offset, SystemPDFModuleRequest.getLimit()); + List list = systemPDFModuleDao.queryPage(SystemPDFModuleRequest); + return list; + } + + @Override + public List listPDFModules(Integer page, Integer limit) { + page = page != null && page > 0 ? page : 1; + limit = limit != null && limit > 0 && limit < 100 ? limit : 100; + int offset = (page - 1) * limit; + PageHelper.offsetPage(offset, limit); + List list = systemPDFModuleDao.listPDFModules(); + return list; + } + + @Override + public SystemPDFModuleEntity findSystemPDFModule(SystemPDFModuleRequest systemPDFModuleRequest) { + return systemPDFModuleDao.findSystemPDFModule(systemPDFModuleRequest); + } + + @Override + public SystemPDFModuleEntity selectById(String id) { + return systemPDFModuleDao.selectById(id); + } + + @Override + public boolean updateById(SystemPDFModuleSaveRequest systemPDFModuleSaveRequest) { + + return systemPDFModuleDao.updateById(systemPDFModuleSaveRequest); + } + + @Override + public boolean insert(SystemPDFModuleEntity systemPDFModuleEntity) { + return systemPDFModuleDao.insert(systemPDFModuleEntity); + } + + @Override + public boolean deleteById(Integer id) { + return systemPDFModuleDao.deleteById(id); + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/info/impl/SystemPDFTemplateRelevanceServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/info/impl/SystemPDFTemplateRelevanceServiceImpl.java new file mode 100644 index 00000000..facdfd2a --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/info/impl/SystemPDFTemplateRelevanceServiceImpl.java @@ -0,0 +1,104 @@ +package com.glxp.api.admin.service.info.impl; + +import com.glxp.api.admin.dao.info.SystemPDFTemplateRelevanceDao; +import com.glxp.api.admin.entity.info.SystemPDFTemplateRelevanceEntity; +import com.glxp.api.admin.service.info.SystemPDFTemplateRelevanceService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +@Service +public class SystemPDFTemplateRelevanceServiceImpl implements SystemPDFTemplateRelevanceService { + + @Resource + private SystemPDFTemplateRelevanceDao systemPDFTemplateRelevanceDao; + + /** + * 根据 customerId 获取模板id + * @param customerId + * @return + */ + @Override + public List listByCustomerId(Long customerId) { + return systemPDFTemplateRelevanceDao.listByCustomerId(customerId); + } + + /** + * 根据多个 customerId 查询角色列表 + * @param customerIds + * @return + */ + @Override + public List listByCustomerIdIn(List customerIds) { + if (customerIds.isEmpty()) { + return Collections.emptyList(); + } + return systemPDFTemplateRelevanceDao.listByCustomerIdIn(customerIds); + } + + /** + * 根据 roleId 获取 customerId + * @param templateId + * @return + */ + @Override + public List listByTemplateId(int templateId) { + return systemPDFTemplateRelevanceDao.listByTemplateId(templateId); + } + + /** + * 批量插入 + * @param systemPDFTemplateRelevanceEntityList + * @return + */ + @Override + public int insertSystemPDFTemplateRelevanceAll(List systemPDFTemplateRelevanceEntityList) { + + if (systemPDFTemplateRelevanceEntityList == null || systemPDFTemplateRelevanceEntityList.isEmpty()) { + return 0; + } + + return systemPDFTemplateRelevanceDao.insertSystemPDFTemplateRelevanceAll(systemPDFTemplateRelevanceEntityList); + } + + @Override + public boolean insert(SystemPDFTemplateRelevanceEntity systemPDFTemplateRelevanceEntity) { + return systemPDFTemplateRelevanceDao.insert(systemPDFTemplateRelevanceEntity); + } + + /** + * 根据 模板ids 和 customerId 批量插入 + * @param templates + * @param customerId + * @return + */ + @Override + public int insertRolesCustomerIdAll(List templates, Long customerId) { + + List systemPDFTemplateRelevanceEntityList = templates.stream().map(aLong -> { + SystemPDFTemplateRelevanceEntity systemPDFTemplateRelevanceEntity = new SystemPDFTemplateRelevanceEntity(); + systemPDFTemplateRelevanceEntity.setTemplate_id(aLong); + systemPDFTemplateRelevanceEntity.setCustomerId(customerId); + return systemPDFTemplateRelevanceEntity; + }).collect(Collectors.toList()); + if (!systemPDFTemplateRelevanceEntityList.isEmpty()) { + return insertSystemPDFTemplateRelevanceAll(systemPDFTemplateRelevanceEntityList); + } + + return 0; + } + + /** + * 根据 customerId 删除对应的模板关联 + * @param customerId + * @return + */ + @Override + public boolean deleteByCustomerId(Long customerId) { + + return systemPDFTemplateRelevanceDao.deleteByCustomerId(customerId); + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/info/impl/SystemPDFTemplateServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/info/impl/SystemPDFTemplateServiceImpl.java new file mode 100644 index 00000000..70d81358 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/info/impl/SystemPDFTemplateServiceImpl.java @@ -0,0 +1,62 @@ +package com.glxp.api.admin.service.info.impl; + +import com.github.pagehelper.PageHelper; +import com.glxp.api.admin.dao.info.SystemPDFTemplateDao; +import com.glxp.api.admin.entity.info.SystemPDFTemplateEntity; +import com.glxp.api.admin.req.info.SystemPDFTemplateRequest; +import com.glxp.api.admin.req.info.SystemPDFTemplateSaveRequest; +import com.glxp.api.admin.service.info.SystemPDFTemplateService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +@Service +public class SystemPDFTemplateServiceImpl implements SystemPDFTemplateService { + @Resource + SystemPDFTemplateDao systemPDFTemplateDao; + + @Override + public List queryPage(SystemPDFTemplateRequest SystemPDFTemplateRequest) { + int offset = (SystemPDFTemplateRequest.getPage() - 1) * SystemPDFTemplateRequest.getLimit(); + PageHelper.offsetPage(offset, SystemPDFTemplateRequest.getLimit()); + List list = systemPDFTemplateDao.queryPage(SystemPDFTemplateRequest); + return list; + } + + @Override + public List listPDFTemplates(Integer page, Integer limit) { + page = page != null && page > 0 ? page : 1; + limit = limit != null && limit > 0 && limit < 100 ? limit : 100; + int offset = (page - 1) * limit; + PageHelper.offsetPage(offset, limit); + List list = systemPDFTemplateDao.listPDFTemplates(); + return list; + } + + @Override + public SystemPDFTemplateEntity findSystemPDFTemplate(SystemPDFTemplateRequest systemPDFTemplateRequest) { + return systemPDFTemplateDao.findSystemPDFTemplate(systemPDFTemplateRequest); + } + + @Override + public SystemPDFTemplateEntity selectById(String id) { + return systemPDFTemplateDao.selectById(id); + } + + @Override + public boolean updateById(SystemPDFTemplateSaveRequest systemPDFTemplateSaveRequest) { + + return systemPDFTemplateDao.updateById(systemPDFTemplateSaveRequest); + } + + @Override + public boolean insert(SystemPDFTemplateEntity systemPDFTemplateEntity) { + return systemPDFTemplateDao.insert(systemPDFTemplateEntity); + } + + @Override + public boolean deleteById(Integer id) { + return systemPDFTemplateDao.deleteById(id); + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/thrsys/impl/ThrOrderDetailServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/thrsys/impl/ThrOrderDetailServiceImpl.java index a8fe26c3..cc428160 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/service/thrsys/impl/ThrOrderDetailServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/api/admin/service/thrsys/impl/ThrOrderDetailServiceImpl.java @@ -58,6 +58,6 @@ public class ThrOrderDetailServiceImpl implements ThrOrderDetailService { @Override public boolean deleteAll() { - return deleteAll(); + return thrOrderDetailDao.deleteAll(); } } diff --git a/api-admin/src/main/java/com/glxp/api/admin/thread/BasicUpdateErpDataTask.java b/api-admin/src/main/java/com/glxp/api/admin/thread/BasicUpdateErpDataTask.java index 934af516..15df8495 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/thread/BasicUpdateErpDataTask.java +++ b/api-admin/src/main/java/com/glxp/api/admin/thread/BasicUpdateErpDataTask.java @@ -51,7 +51,7 @@ public class BasicUpdateErpDataTask implements SchedulingConfigurer { private void process() { - logger.info("定时更新下载ERP产品信息"); + logger.info("定时更新下载第三方产品信息"); SystemParamConfigEntity isUpdate = systemParamConfigService.selectByParamKey("erp_updateErpData"); if (isUpdate != null && "1".equals(isUpdate.getParamValue())) { SystemParamConfigEntity thirdSys = systemParamConfigService.selectByParamKey("erp_updateErpData_thirdSys"); @@ -61,13 +61,19 @@ public class BasicUpdateErpDataTask implements SchedulingConfigurer { } else thirdSysId = "thirdId"; BasicThirdSysDetailEntity piDetailEntity = basicThirdSysDetailService.selectByKey("piQueryUrl", thirdSysId); - BasicThirdSysDetailEntity invPiDetailEntity = basicThirdSysDetailService.selectByKey("invPiUrl", thirdSysId); - if (piDetailEntity.getValue() != null && invPiDetailEntity.getValue() != null) { - updateproductService.updateProduct(piDetailEntity.getValue(), invPiDetailEntity.getValue(),thirdSysId); + + if (piDetailEntity.getFromType() == 0 && !piDetailEntity.getItrCache()) { + BasicThirdSysDetailEntity invPiDetailEntity = basicThirdSysDetailService.selectByKey("invPiUrl", thirdSysId); + if (piDetailEntity.getValue() != null && invPiDetailEntity.getValue() != null) { + updateproductService.updateProduct(piDetailEntity.getValue(), invPiDetailEntity.getValue(), thirdSysId); + } else { + logger.info("接口地址未设置"); + } } else { - logger.info("接口地址未设置"); + updateproductService.loadLocal(thirdSysId); } + } else { logger.info("暂未设置,不更新"); } diff --git a/api-admin/src/main/java/com/glxp/api/admin/thread/BasicUpdateproductService.java b/api-admin/src/main/java/com/glxp/api/admin/thread/BasicUpdateproductService.java index 077211b1..2babf1ce 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/thread/BasicUpdateproductService.java +++ b/api-admin/src/main/java/com/glxp/api/admin/thread/BasicUpdateproductService.java @@ -2,17 +2,20 @@ package com.glxp.api.admin.thread; import com.glxp.api.admin.entity.basic.UdiInfoEntity; import com.glxp.api.admin.entity.basic.UdiRelevanceEntity; +import com.glxp.api.admin.entity.thrsys.ThrProductsEntity; import com.glxp.api.admin.httpclient.ErpBasicClient; import com.glxp.api.admin.httpclient.ErpInvClient; import com.glxp.api.admin.req.basic.CombineRequest; import com.glxp.api.admin.req.basic.FilterErpGoodsRequest; import com.glxp.api.admin.req.inventory.ErpOnhandRequest; +import com.glxp.api.admin.req.thrsys.FilterThrProductsRequest; import com.glxp.api.admin.res.PageSimpleResponse; import com.glxp.api.admin.res.basic.ErpProductsResponse; import com.glxp.api.admin.res.inventory.ErpInvProductResponse; import com.glxp.api.admin.res.inventory.ErpOnHandResponse; import com.glxp.api.admin.service.basic.UdiInfoService; import com.glxp.api.admin.service.basic.UdiRelevanceService; +import com.glxp.api.admin.service.thrsys.ThrProductsService; import com.glxp.api.admin.util.CustomUtil; import com.glxp.api.admin.util.DateUtil; import com.glxp.api.common.res.BaseResponse; @@ -33,7 +36,8 @@ public class BasicUpdateproductService { UdiRelevanceService udiRelevanceService; @Resource UdiInfoService udiInfoService; - + @Resource + ThrProductsService thrProductsService; @Async public void updateProduct(String productUrl, String onHandUrl, String thirdSysId) { @@ -76,6 +80,49 @@ public class BasicUpdateproductService { } } + @Async + public void loadLocal(String thirdSysId) { + FilterThrProductsRequest filterThrInvProductsRequest = new FilterThrProductsRequest(); + List thrProductsEntities = thrProductsService.filterThrProductsRequest(filterThrInvProductsRequest); + if (thrProductsEntities != null && thrProductsEntities.size() > 0) { + for (ThrProductsEntity thrProductsEntity : thrProductsEntities) { + UdiInfoEntity udiInfoEntity = new UdiInfoEntity(); + udiInfoEntity.setNameCode(thrProductsEntity.getCode()); + udiInfoEntity.setCpmctymc(thrProductsEntity.getName()); + udiInfoEntity.setGgxh(thrProductsEntity.getSpec()); + udiInfoEntity.setUuid(CustomUtil.getUUId()); + udiInfoEntity.setYlqxzcrbarmc(thrProductsEntity.getManufactory()); + udiInfoEntity.setZczbhhzbapzbh(thrProductsEntity.getRegisterNo()); + udiInfoService.insertUdiInfo(udiInfoEntity); + UdiRelevanceEntity udiRelevanceEntity1 = new UdiRelevanceEntity(); + udiRelevanceEntity1.setUuid(udiInfoEntity.getUuid()); + + + if ("thirdId".equals(thirdSysId)) { + udiRelevanceEntity1.setThirdId(thrProductsEntity.getCode()); + udiRelevanceEntity1.setThirdName(thrProductsEntity.getName()); + } else if ("thirdId1".equals(thirdSysId)) { + udiRelevanceEntity1.setThirdId1(thrProductsEntity.getCode()); + udiRelevanceEntity1.setThirdName1(thrProductsEntity.getName()); + } else if ("thirdId2".equals(thirdSysId)) { + udiRelevanceEntity1.setThirdId4(thrProductsEntity.getCode()); + udiRelevanceEntity1.setThirdName4(thrProductsEntity.getName()); + } else if ("thirdId3".equals(thirdSysId)) { + udiRelevanceEntity1.setThirdId3(thrProductsEntity.getCode()); + udiRelevanceEntity1.setThirdName3(thrProductsEntity.getName()); + } else if ("thirdId4".equals(thirdSysId)) { + udiRelevanceEntity1.setThirdId4(thrProductsEntity.getCode()); + udiRelevanceEntity1.setThirdName4(thrProductsEntity.getName()); + } + + udiRelevanceEntity1.setThirdId(thrProductsEntity.getCode()); + udiRelevanceEntity1.setThirdName(thrProductsEntity.getName()); + udiRelevanceEntity1.setUpdateTime(DateUtil.getDateTime()); + udiRelevanceService.insertUdiRelevance(udiRelevanceEntity1); + } + } + } + public int getInvmandoc(String invcode, int page, int limit, String productUrl, String onHandUrl, String thirdSysId) { @@ -121,6 +168,24 @@ public class BasicUpdateproductService { udiInfoService.insertUdiInfo(udiInfoEntity); UdiRelevanceEntity udiRelevanceEntity1 = new UdiRelevanceEntity(); udiRelevanceEntity1.setUuid(udiInfoEntity.getUuid()); + + if ("thirdId".equals(thirdSysId)) { + udiRelevanceEntity1.setThirdId(onhandQueryResponse.getCode()); + udiRelevanceEntity1.setThirdName(onhandQueryResponse.getName()); + } else if ("thirdId1".equals(thirdSysId)) { + udiRelevanceEntity1.setThirdId1(onhandQueryResponse.getCode()); + udiRelevanceEntity1.setThirdName1(onhandQueryResponse.getName()); + } else if ("thirdId2".equals(thirdSysId)) { + udiRelevanceEntity1.setThirdId4(onhandQueryResponse.getCode()); + udiRelevanceEntity1.setThirdName4(onhandQueryResponse.getName()); + } else if ("thirdId3".equals(thirdSysId)) { + udiRelevanceEntity1.setThirdId3(onhandQueryResponse.getCode()); + udiRelevanceEntity1.setThirdName3(onhandQueryResponse.getName()); + } else if ("thirdId4".equals(thirdSysId)) { + udiRelevanceEntity1.setThirdId4(onhandQueryResponse.getCode()); + udiRelevanceEntity1.setThirdName4(onhandQueryResponse.getName()); + } + udiRelevanceEntity1.setThirdId(onhandQueryResponse.getCode()); udiRelevanceEntity1.setThirdName(onhandQueryResponse.getName()); udiRelevanceEntity1.setUpdateTime(DateUtil.getDateTime()); diff --git a/api-admin/src/main/java/com/glxp/api/admin/thread/ThrOrdersDlService.java b/api-admin/src/main/java/com/glxp/api/admin/thread/ThrOrdersDlService.java index f02e044a..2eb0000e 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/thread/ThrOrdersDlService.java +++ b/api-admin/src/main/java/com/glxp/api/admin/thread/ThrOrdersDlService.java @@ -119,6 +119,8 @@ public class ThrOrdersDlService { rows.add(erpOrderResponse.getBillFlag()); rows.add(subErpOrder.getProductId()); rows.add(subErpOrder.getProductName()); + rows.add(subErpOrder.getSpec()); + rows.add(subErpOrder.getBatchNo()); rows.add(subErpOrder.getProductDate()); rows.add(subErpOrder.getExpireDate()); rows.add(subErpOrder.getCount() + ""); @@ -224,15 +226,16 @@ public class ThrOrdersDlService { postThrOrderRequest.setGenKey(genKey); postThrOrderRequest.setThirdSys(thrOrderExportRequest.getThirdSysFk()); SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("smp_service_ip"); - if(systemParamConfigEntity!=null){ - String response = HttpClient.uCloudPost(systemParamConfigEntity.getParamValue()+"/udiwms/thrsys/postOrderDetail", postThrOrderRequest); - BaseResponse baseResponse = JSONObject.parseObject(response, new TypeReference() {}); + if (systemParamConfigEntity != null) { + String response = HttpClient.uCloudPost(systemParamConfigEntity.getParamValue() + "/udiwms/thrsys/postOrderDetail", postThrOrderRequest); + BaseResponse baseResponse = JSONObject.parseObject(response, new TypeReference() { + }); if (baseResponse.getCode() == 20000) { thrOrderExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_SUCCESS); } else { thrOrderExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_FAIL); } - }else { + } else { thrOrderExportLogEntity.setRemark("SMP服务IP地址未定义!"); thrOrderExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_FAIL); } diff --git a/api-admin/src/main/java/com/glxp/api/admin/util/ITextPDFCellConfig.java b/api-admin/src/main/java/com/glxp/api/admin/util/ITextPDFCellConfig.java new file mode 100644 index 00000000..877eb744 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/util/ITextPDFCellConfig.java @@ -0,0 +1,18 @@ +package com.glxp.api.admin.util; + +import com.itextpdf.text.Font; +import lombok.Data; + +@Data +public class ITextPDFCellConfig { + private String key; //键 + private String value; //值 + private int keyWidth; //键宽度 + private int valueWidth; //值宽度 + private Font font; //字体,含中文的字符串必须添加,否则乱码 + private int fixedHeight; //行高 + private int totalColumn; //总宽度 + private int cellMaxColumn; //单元格最大宽度 + private int disableBorderSide; //单元格边框设置 0:不隐藏,7:隐藏左、上、下边框,13:隐藏上、左、右边框,15:隐藏全部。 + private int horizontalAlignment; //设置水平位置 0:靠左,1:居中,2:靠右 +} \ No newline at end of file diff --git a/api-admin/src/main/java/com/glxp/api/admin/util/ITextPDFUtils.java b/api-admin/src/main/java/com/glxp/api/admin/util/ITextPDFUtils.java new file mode 100644 index 00000000..37e9baec --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/util/ITextPDFUtils.java @@ -0,0 +1,1157 @@ +package com.glxp.api.admin.util; + +import cn.hutool.extra.qrcode.QrCodeUtil; +import com.glxp.api.admin.entity.inout.ErpOrderEntity; +import com.glxp.api.admin.entity.inout.StockOrderDetailEntity; +import com.glxp.api.admin.entity.inout.StockOrderEntity; +import com.glxp.api.admin.req.itextpdf.InoutOrderDetailPDFCodeRequest; +import com.glxp.api.admin.req.itextpdf.InoutOrderDetailPDFFileRequest; +import com.glxp.api.admin.req.itextpdf.StockQRCodeTextPDFTemplateRequest; +import com.itextpdf.text.*; +import com.itextpdf.text.pdf.*; +import com.itextpdf.text.pdf.draw.LineSeparator; +import org.apache.commons.lang3.StringUtils; + +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.text.SimpleDateFormat; +import java.util.List; +import java.util.*; + +public class ITextPDFUtils { + + private static int eIOSPDFInfoTotalColumn = 20; + + /** + * 代码生成PDF测试 + */ + public static void exportPDFTest(HttpServletRequest request, HttpServletResponse response) throws Exception { + //告诉浏览器用什么软件可以打开此文件 + response.setHeader("content-Type", "application/pdf"); + //下载文件的默认名称 +// response.setHeader("Content-Disposition", "attachment;filename=XXX.pdf");//注释后可直接预览,不注释会直接下载 + //设置中文 + BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); + Font fontChinese = new Font(bfChinese, 12, Font.NORMAL); + + Document document = new Document(); + PdfWriter.getInstance(document, response.getOutputStream()); + // 打开文档 + document.open(); + //设置文档标题 + document.addTitle("PDF"); + //设置文档作者 + document.addAuthor("作者"); + document.addCreationDate(); + //设置关键字 + document.addKeywords("iText"); + document.addLanguage("中文"); + //表头 + PdfPTable title = new PdfPTable(2);//表头行数要对应 + title.addCell(new Paragraph("编号", fontChinese)); + title.addCell(new Paragraph("名称", fontChinese)); + document.add(title); + + //插入数据 + PdfPTable table = new PdfPTable(2); + table.addCell(new Paragraph("1", fontChinese)); + table.addCell(new Paragraph("测试", fontChinese)); + document.add(table); + + document.close(); + } + + /** + * 模板文件导入导出PDF测试 + */ + public static void exportPDFFromTemplateFileTest(String filePath, HttpServletRequest request, HttpServletResponse response) { + try { + // pdf模板所在路径,就是网站制作好后下载的pdf模板路径 + String fileName = "C:/Users/陈进隆/Desktop/pdf_word.pdf"; +// String fileName = filePath; + + //多个PDF页需要多个ByteArrayOutputStream支持数据的封装 + List bosList = new ArrayList<>(); + List readerList = new ArrayList(); + + // 使用中文字体 + BaseFont baseFont = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); + ArrayList fontList = new ArrayList(); + fontList.add(baseFont); + + for (int i = 0; i < 1; i++) { + //以下三个都需新建,否则分页数据相同。 + PdfReader reader = new PdfReader(fileName); + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + PdfStamper stamper = new PdfStamper(reader, bos); + + //这个form就是pdf里面的表单key就是pdf的键 value 就是往里面要放的值 + AcroFields form = stamper.getAcroFields();//获取模板上的预订的参数 + form.setSubstitutionFonts(fontList);//设置中文字体 + + form.setField("orderId", "1233333333332 " + i); + form.setField("fromCorp", "医院"); + form.setField("fromType", "网页端"); + form.setField("actionName", "送货单"); + + //表格 一行数据是一个list + List list1 = new ArrayList(); + list1.add("1"); + + List list2 = new ArrayList(); + list2.add("2"); + + List list3 = new ArrayList(); + list3.add("3"); + + List> listT = new ArrayList>(); + listT.add(list1); + listT.add(list2); + listT.add(list3); + + Map>> listMap = new HashMap>>(); + listMap.put("number", listT); + listMap.put("numberList", listT); + + pdfFileAddTableInColumn(listMap, form, stamper, baseFont, 10); + + List list4 = new ArrayList(); + list4.add("2020-01-01"); + + List list5 = new ArrayList(); + list5.add("2018-01-012222222"); + + List list6 = new ArrayList(); + list6.add("2019-01-01111111111111111111111111111111111111111"); + + listT = new ArrayList>(); + listT.add(list4); + listT.add(list5); + listT.add(list6); + + listMap = new HashMap>>(); + listMap.put("date", listT); + + pdfFileAddTableInColumn(listMap, form, stamper, baseFont, 10); + + List list7 = new ArrayList(); + list7.add("测试 1"); + + List list8 = new ArrayList(); + list8.add("测试 244"); + + List list9 = new ArrayList(); + list9.add("测试 333333测试测试测试测试测试测试测试测试"); + + listT = new ArrayList>(); + listT.add(list7); + listT.add(list8); + listT.add(list9); + + listMap = new HashMap>>(); + listMap.put("name", listT); + + pdfFileAddTableInColumn(listMap, form, stamper, baseFont, 10); + + List stringList1 = new ArrayList<>(); + List stringList2 = new ArrayList<>(); + List stringList3 = new ArrayList<>(); + for (int u = 0; u < 35; u++) { + stringList1.add("测试: " + u); + stringList2.add("测试: " + u); + stringList3.add("测试: " + u); + } + pdfFileAddTableInQRCode("qrcode", 1, stringList1, form, stamper); + + pdfFileAddTableInQRCode("qrcodeList", 35, stringList2, form, stamper); + + pdfFileAddTableInQRCode("qrcodeList2", 135, stringList3, form, stamper); + +// //表格 一行数据是一个list +// List list1 = new ArrayList(); +// list1.add("序号"); +// list1.add("日期"); +// +// List list2 = new ArrayList(); +// list2.add("100"); +// list2.add("2018-01-01"); +// +// List list3 = new ArrayList(); +// list3.add("120"); +// list3.add("2019-01-01"); +// +// List> listT = new ArrayList>(); +// listT.add(list1); +// listT.add(list2); +// listT.add(list3); +// +// Map>> listMapO = new HashMap>>(); +// listMapO.put("testLisst", listT); +// +// Map o = new HashMap(); +// o.put("list", listMapO); +// +// // 表格类 +// Map>> listMap = (Map>>) o.get("list"); +// for (String key : listMap.keySet()) { +// List> lists = listMap.get(key); +// int pageNo = form.getFieldPositions(key).get(0).page; +// PdfContentByte pcb = stamper.getOverContent(pageNo);//获取文本域对应区域。 +// Rectangle signRect = form.getFieldPositions(key).get(0).position;//文本域位置信息,定义一个矩形的区域。 +// //表格位置 +// int column = lists.get(0).size(); +// int row = lists.size(); +// PdfPTable table = new PdfPTable(column); +// float totalWidth = signRect.getRight() - signRect.getLeft() - 1; +// int size = lists.get(0).size(); +// float width[] = new float[size]; +// for (int j = 0; j < size; j++) { +// if (j == 0) { +// width[j] = 60f; +// } else { +// width[j] = (totalWidth - 60) / (size - 1); +// } +// } +// table.setTotalWidth(width); +// table.setLockedWidth(true);//宽度锁定 +// table.setKeepTogether(true); +// //实现单元格跨页显示 +// table.setSplitLate(false); +// table.setSplitRows(true); +// Font FontProve = new Font(baseFont, 10, 0); +// //表格数据填写 +// for (int j = 0; j < row; j++) { +// List tList = lists.get(j); +// for (int k = 0; k < column; k++) { +// Paragraph paragraph = new Paragraph(String.valueOf(tList.get(k)), FontProve); +// PdfPCell cell = new PdfPCell(paragraph); +// cell.setBorderWidth(1); +// cell.setVerticalAlignment(Element.ALIGN_CENTER); +// cell.setHorizontalAlignment(Element.ALIGN_CENTER); +// cell.setLeading(0, (float) 1.4); +// table.addCell(cell); +// } +// } +// +// //将table添加到 +// table.writeSelectedRows(0, -1, signRect.getLeft(), signRect.getTop(), pcb); +// } + + //true代表生成的PDF文件不可编辑 必须要调用这个,否则文档不会生成的 + stamper.setFormFlattening(true); + stamper.close(); + + reader = new PdfReader(bos.toByteArray()); + bosList.add(bos); + readerList.add(reader); + } + + ServletOutputStream outputStream = response.getOutputStream(); + //访问网页可直接预览 + Document doc = new Document(); + PdfCopy copy = new PdfCopy(doc, outputStream); + doc.open(); + + for (int i = 0; i < readerList.size(); i++) { + PdfReader pdfReader = readerList.get(i); + doc.newPage(); + copy.addDocument(readerList.get(i)); +// copy.addDocument(new PdfReader(bosList.get(i).toByteArray())); + } +// doc.newPage(); +// copy.addDocument(reader); +// doc.newPage(); +// copy.addDocument(new PdfReader(bos.toByteArray())); +// doc.newPage(); +// copy.addDocument(new PdfReader(bos.toByteArray())); + copy.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * 模板文件生成配货单二维码PDF 打印码 + */ + public static void exportStockQRCodeTextPDFFromTemplateFile( + StockQRCodeTextPDFTemplateRequest stockQRCodeTextPDFTemplateRequest, + HttpServletRequest request, HttpServletResponse response) { + try { + // pdf模板所在路径,就是网站制作好后下载的pdf模板路径 + String fileName = stockQRCodeTextPDFTemplateRequest.getPath(); + + //多个PDF页需要多个ByteArrayOutputStream支持数据的封装 + List bosList = new ArrayList<>(); + List readerList = new ArrayList(); + + // 使用中文字体 + BaseFont baseFont = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); + ArrayList fontList = new ArrayList(); + fontList.add(baseFont); + + int page = stockQRCodeTextPDFTemplateRequest.getRowCount(); + + for (int i = 0; i < page; i++) { + //以下三个都需新建,否则分页数据相同。 + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + PdfReader reader = new PdfReader(fileName); + PdfStamper stamper = new PdfStamper(reader, bos); + + //这个form就是pdf里面的表单key就是pdf的键 value 就是往里面要放的值 + AcroFields form = stamper.getAcroFields();//获取模板上的预订的参数 + form.setSubstitutionFonts(fontList);//设置中文字体 + + form.setField("code", stockQRCodeTextPDFTemplateRequest.getText()); + + form.setField("nowDate", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); + form.setField("textPage", i + 1 + ""); + form.setField("totalPage", page + ""); + + List qrcodeOneList = new ArrayList<>(); + qrcodeOneList.add(stockQRCodeTextPDFTemplateRequest.getText()); + pdfFileAddTableInQRCode("qrcode", + page, qrcodeOneList, form, stamper); + + //true代表生成的PDF文件不可编辑 必须要调用这个,否则文档不会生成的 + stamper.setFormFlattening(true); + stamper.close(); + + reader = new PdfReader(bos.toByteArray()); + bosList.add(bos); + readerList.add(reader); + } + + ServletOutputStream outputStream = response.getOutputStream(); + //访问网页可直接预览 + Document doc = new Document(); + PdfCopy copy = new PdfCopy(doc, outputStream); + doc.open(); + // 设置文档标题 + doc.addTitle(stockQRCodeTextPDFTemplateRequest.getText()); + for (int i = 0; i < readerList.size(); i++) { + PdfReader pdfReader = readerList.get(i); + doc.newPage(); + copy.addDocument(readerList.get(i)); + } + copy.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * 模板文件生成配货单二维码PDF 打印订单 + */ + public static void exportStockOrderPDFFromTemplateFile( + StockQRCodeTextPDFTemplateRequest stockQRCodeTextPDFTemplateRequest, + StockOrderEntity stockOrderEntity, List stockOrderDetailEntityList, + HttpServletRequest request, HttpServletResponse response) { + try { + // pdf模板所在路径,就是网站制作好后下载的pdf模板路径 + String fileName = stockQRCodeTextPDFTemplateRequest.getPath(); + + //多个PDF页需要多个ByteArrayOutputStream支持数据的封装 + List bosList = new ArrayList<>(); + List readerList = new ArrayList(); + + // 使用中文字体 + BaseFont baseFont = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); + ArrayList fontList = new ArrayList(); + fontList.add(baseFont); + + int rowCount = stockQRCodeTextPDFTemplateRequest.getRowCount(); + int page = rowCount < stockOrderDetailEntityList.size() ? (int) Math.ceil(stockOrderDetailEntityList.size() / rowCount) : 1; + int listI = 0; + int countTotal = 0; + int reCountTotal = 0; + for (int i = 0; i < stockOrderDetailEntityList.size(); i++) { + StockOrderDetailEntity stockOrderDetailEntity = stockOrderDetailEntityList.get(i); + countTotal = countTotal + Integer.parseInt(stockOrderDetailEntity.getCount()); + reCountTotal = reCountTotal + Integer.parseInt(stockOrderDetailEntity.getReCount()); + } + + for (int i = 0; i < page; i++) { + //以下三个都需新建,否则分页数据相同。 + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + PdfReader reader = new PdfReader(fileName); + PdfStamper stamper = new PdfStamper(reader, bos); + + //这个form就是pdf里面的表单key就是pdf的键 value 就是往里面要放的值 + AcroFields form = stamper.getAcroFields();//获取模板上的预订的参数 + form.setSubstitutionFonts(fontList);//设置中文字体 + + form.setField("billNo", stockOrderEntity.getBillNo()); + form.setField("billdate", stockOrderEntity.getBilldate()); + form.setField("corpId", stockOrderEntity.getCorpId()); + form.setField("corpName", stockOrderEntity.getCorpName()); + form.setField("actionName", stockQRCodeTextPDFTemplateRequest.getActionName()); + + String typeName = ""; + if (StringUtils.isNotBlank(stockOrderEntity.getType())) { + switch (stockOrderEntity.getType()) { + case "1": + typeName = "预入库"; + break; + case "2": + typeName = "普通采购"; + break; + default: + typeName = ""; + break; + } + } + form.setField("type", typeName); + + String sourceTypeName = ""; + if (StringUtils.isNotBlank(stockOrderEntity.getSourceType())) { + switch (stockOrderEntity.getSourceType()) { + case "1": + sourceTypeName = "本地网页新增"; + break; + default: + sourceTypeName = ""; + break; + } + } + form.setField("sourceType", sourceTypeName); + form.setField("nowDate", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); + form.setField("textPage", i + 1 + ""); + form.setField("totalPage", page + ""); + form.setField("countTotal", countTotal + ""); + form.setField("reCountTotal", reCountTotal + ""); + +// List qrcodeOneList = new ArrayList<>(); +// qrcodeOneList.add("text");//TODO 待定 +// pdfFileAddTableInQRCode("qrcode", +// stockQRCodeTextPDFTemplateRequest.getQrcodeCount(), qrcodeOneList, form, stamper); +// List stringList1 = new ArrayList<>(); +// for (int u = 0; u < 100; u++) { +// stringList1.add("测试: " + u); +// } +// pdfFileAddTableInQRCode("qrcodeList", +// stockQRCodeTextPDFTemplateRequest.getQrcodeCount(), stringList1, form, stamper); + + List> numberList = new ArrayList>(); + List> productIdList = new ArrayList>(); + List> productNameList = new ArrayList>(); + List> specList = new ArrayList>(); + List> batchNoList = new ArrayList>(); + List> productDateList = new ArrayList>(); + List> expireDateList = new ArrayList>(); + List> countList = new ArrayList>(); + List> reCountList = new ArrayList>(); + + int countSubtotal = 0; + int reCountSubtotal = 0; + + for (int k = 0; k < rowCount && listI < stockOrderDetailEntityList.size(); k++) { + ++listI; + //序号 + List list1 = new ArrayList(); + list1.add(listI + ""); + numberList.add(list1); + + StockOrderDetailEntity stockOrderDetailEntity = stockOrderDetailEntityList.get(listI - 1); + //产品ID + List list2 = new ArrayList(); + list2.add(stockOrderDetailEntity.getProductId()); + productIdList.add(list2); + //产品名称 + List list3 = new ArrayList(); + list3.add(stockOrderDetailEntity.getProductName()); + productNameList.add(list3); + //包装规格 + List list4 = new ArrayList(); + list4.add(stockOrderDetailEntity.getSpec()); + specList.add(list4); + //批次号 + List list5 = new ArrayList(); + list5.add(stockOrderDetailEntity.getBatchNo() + ""); + batchNoList.add(list5); + //生产日期 + List list6 = new ArrayList(); + list6.add(stockOrderDetailEntity.getProductDate() + ""); + productDateList.add(list6); + //失效日期 + List list7 = new ArrayList(); + list7.add(stockOrderDetailEntity.getExpireDate() + ""); + expireDateList.add(list7); + //订单数量 + List list8 = new ArrayList(); + countSubtotal = countSubtotal + Integer.parseInt(stockOrderDetailEntity.getCount()); + list8.add(stockOrderDetailEntity.getCount() + ""); + countList.add(list8); + //配货数量 + List list9 = new ArrayList(); + reCountSubtotal = reCountSubtotal + Integer.parseInt(stockOrderDetailEntity.getReCount()); + list9.add(stockOrderDetailEntity.getReCount() + ""); + reCountList.add(list9); + } + + form.setField("countSubtotal", countSubtotal + ""); + form.setField("reCountSubtotal", reCountSubtotal + ""); + + Map>> listMap = new HashMap>>(); + listMap.put("numberList", numberList); + listMap.put("productIdList", productIdList); + listMap.put("productNameList", productNameList); + listMap.put("specList", specList); + listMap.put("batchNoList", batchNoList); + listMap.put("productDateList", productDateList); + listMap.put("expireDateList", expireDateList); + listMap.put("countList", countList); + listMap.put("reCountList", reCountList); + + pdfFileAddTableInColumn(listMap, form, stamper, baseFont, stockQRCodeTextPDFTemplateRequest.getRowCount()); + + //true代表生成的PDF文件不可编辑 必须要调用这个,否则文档不会生成的 + stamper.setFormFlattening(true); + stamper.close(); + + reader = new PdfReader(bos.toByteArray()); + bosList.add(bos); + readerList.add(reader); + } + + ServletOutputStream outputStream = response.getOutputStream(); + //访问网页可直接预览 + Document doc = new Document(); + PdfCopy copy = new PdfCopy(doc, outputStream); + doc.open(); + // 设置文档标题 + doc.addTitle(stockQRCodeTextPDFTemplateRequest.getBillNo()); + for (int i = 0; i < readerList.size(); i++) { + PdfReader pdfReader = readerList.get(i); + doc.newPage(); + copy.addDocument(readerList.get(i)); + } + copy.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + + + /** + * 导入模板文件并导出PDF + */ + public static void exportOrderDetailPDFFromTemplateFile( + InoutOrderDetailPDFFileRequest inoutOrderDetailPDFFileRequest, List erpOrderEntityList, + HttpServletRequest request, HttpServletResponse response) { + try { + // pdf模板所在路径,就是网站制作好后下载的pdf模板路径 + String fileName = inoutOrderDetailPDFFileRequest.getPath(); + + //多个PDF页需要多个ByteArrayOutputStream支持数据的封装 + List bosList = new ArrayList<>(); + List readerList = new ArrayList(); + + // 使用中文字体 + BaseFont baseFont = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); + ArrayList fontList = new ArrayList(); + fontList.add(baseFont); + + int rowCount = inoutOrderDetailPDFFileRequest.getRowCount(); + int page = rowCount < erpOrderEntityList.size() ? (int) Math.ceil(erpOrderEntityList.size() / rowCount) : 1; + int listI = 0; + int countTotal = 0; + for (int i = 0; i < erpOrderEntityList.size(); i++) { + ErpOrderEntity erpOrderEntity = erpOrderEntityList.get(i); + countTotal = countTotal + erpOrderEntity.getCount(); + } + + for (int i = 0; i < page; i++) { + //以下三个都需新建,否则分页数据相同。 + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + PdfReader reader = new PdfReader(fileName); + PdfStamper stamper = new PdfStamper(reader, bos); + + //这个form就是pdf里面的表单key就是pdf的键 value 就是往里面要放的值 + AcroFields form = stamper.getAcroFields();//获取模板上的预订的参数 + form.setSubstitutionFonts(fontList);//设置中文字体 + + form.setField("orderId", inoutOrderDetailPDFFileRequest.getOrderId()); + form.setField("fromCorp", inoutOrderDetailPDFFileRequest.getFromCorp()); + form.setField("fromType", inoutOrderDetailPDFFileRequest.getFromType()); + form.setField("actionName", inoutOrderDetailPDFFileRequest.getActionName()); + form.setField("actDate", inoutOrderDetailPDFFileRequest.getActDate()); + form.setField("nowDate", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); + form.setField("textPage", i + 1 + ""); + form.setField("totalPage", page + ""); + form.setField("countTotal", countTotal + ""); + + List stringList1 = new ArrayList<>(); + for (int u = 0; u < 100; u++) { + stringList1.add("测试: " + u); + } + pdfFileAddTableInQRCode("qrcodeList", + inoutOrderDetailPDFFileRequest.getQrcodeCount(), stringList1, form, stamper); + + List> numberList = new ArrayList>(); + List> coNameList = new ArrayList>(); + List> packSpecList = new ArrayList>(); + List> batchNoList = new ArrayList>(); + List> countList = new ArrayList>(); + List> productCompanyList = new ArrayList>(); + List> authCodeList = new ArrayList>(); + + int countSubtotal = 0; + + for (int k = 0; k < rowCount && listI < erpOrderEntityList.size(); k++) { + ++listI; + //序号 + List list1 = new ArrayList(); + list1.add(listI + ""); + numberList.add(list1); + + ErpOrderEntity erpOrderEntity = erpOrderEntityList.get(listI - 1); + //产品通用名 + List list2 = new ArrayList(); + list2.add(erpOrderEntity.getCoName()); + coNameList.add(list2); + //包装规格 + List list3 = new ArrayList(); + list3.add(erpOrderEntity.getPackSpec()); + packSpecList.add(list3); + //批次号 + List list4 = new ArrayList(); + list4.add(erpOrderEntity.getBatchNo()); + batchNoList.add(list4); + //扫码数量 + List list5 = new ArrayList(); + countSubtotal = countSubtotal + erpOrderEntity.getCount(); + list5.add(erpOrderEntity.getCount() + ""); + countList.add(list5); + //生产企业 + List list6 = new ArrayList(); + list6.add(erpOrderEntity.getProductCompany() + ""); + productCompanyList.add(list6); + //批准文号 + List list7 = new ArrayList(); + list7.add(erpOrderEntity.getAuthCode() + ""); + authCodeList.add(list7); + } + + form.setField("countSubtotal", countSubtotal + ""); + + Map>> listMap = new HashMap>>(); + listMap.put("numberList", numberList); + listMap.put("coNameList", coNameList); + listMap.put("packSpecList", packSpecList); + listMap.put("batchNoList", batchNoList); + listMap.put("countList", countList); + listMap.put("productCompanyList", productCompanyList); + listMap.put("authCodeList", authCodeList); + + pdfFileAddTableInColumn(listMap, form, stamper, baseFont, inoutOrderDetailPDFFileRequest.getRowCount()); + + //true代表生成的PDF文件不可编辑 必须要调用这个,否则文档不会生成的 + stamper.setFormFlattening(true); + stamper.close(); + + reader = new PdfReader(bos.toByteArray()); + bosList.add(bos); + readerList.add(reader); + } + + ServletOutputStream outputStream = response.getOutputStream(); + //访问网页可直接预览 + Document doc = new Document(); + PdfCopy copy = new PdfCopy(doc, outputStream); + doc.open(); + // 设置文档标题 + doc.addTitle(inoutOrderDetailPDFFileRequest.getOrderId()); + for (int i = 0; i < readerList.size(); i++) { + PdfReader pdfReader = readerList.get(i); + doc.newPage(); + copy.addDocument(readerList.get(i)); +// copy.addDocument(new PdfReader(bosList.get(i).toByteArray())); + } + copy.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * 为导入的模板文件相应字段文本域填入表格 + * + * @param listMap 待生成数据:Map>> + * key为{文本域字段},value为对应的{文本域List}。 + * {文本域List}内{二级List}数量为行数,{二级List}内的字符串数量为列数。 + * + * ---------(文本域字段)-----(文本域List)--------- + * - Map>> - + * - 列1 列2 列3 - + * - 行1:List [String, String, String] - + * - 行2:List [String, String, String] - + * - 行3:List [String, String, String] - + * ---------------------------------------------- + * + * @param form 表单 + * @param stamper 模板 + * @param baseFont 字体 + * @param rowCount 行数 + */ + private static void pdfFileAddTableInColumn( + Map>> listMap, AcroFields form, + PdfStamper stamper, BaseFont baseFont, int rowCount) { + // 表格类 + for (String key : listMap.keySet()) { + List> lists = listMap.get(key);//获取文本域字段对应List + if (form.getFieldPositions(key) == null) continue;//判断模板是否有设置该字段。 + int pageNo = form.getFieldPositions(key).get(0).page; + PdfContentByte pcb = stamper.getOverContent(pageNo);//获取文本域对应区域。 + Rectangle signRect = form.getFieldPositions(key).get(0).position;//文本域位置信息,定义一个矩形的区域。 + //表格位置 + int row = lists.size();//行数,为二级List数量,几个List代表几行。 + int column = lists.get(0).size();//列数,为二级List内字符串数量,几个String代表几列。 + PdfPTable table = new PdfPTable(column);//设置每行列数 + float totalWidth = signRect.getRight() - signRect.getLeft() - 1;//获取总宽 + float totalHeight = signRect.getTop() - signRect.getBottom();//获取总高 + int size = lists.get(0).size();//列数 + float[] width = new float[size]; + + float signRectHeight = signRect.getHeight(); + float signRectWidth = signRect.getWidth(); + + int rowHeight = (int) Math.ceil(signRectHeight / rowCount);//高度 / 行数 + int fontSize = (int) Math.ceil(rowHeight * 0.5);//字体大小 = 行高的50% + + for (int i = 0; i < size; i++) { + if (size == 1) { + width[i] = totalWidth;//单列 宽度等于总宽度 + } else { + if (i == 0) {//多列 宽度计算 + width[i] = 60f; + } else {//后面的列宽度平均 + width[i] = (totalWidth - 60) / (size - 1); + } + } + } + try { + table.setTotalWidth(width);//设置每列宽度 + } catch (DocumentException e) { + e.printStackTrace(); + } + table.setLockedWidth(true);//宽度锁定 + table.setKeepTogether(true); + //实现单元格跨页显示 + table.setSplitLate(false); + table.setSplitRows(true); + //表格数据填写 + for (int i = 0; i < row; i++) { + List tList = lists.get(i); + for (int k = 0; k < column; k++) { + fontSize = 12; + if (tList.get(k).length() / 2 * fontSize > signRectWidth) { + fontSize = 8; + } +// if (tList.get(k).length() * fontSize > signRectWidth) { +// +// fontSize = (int) Math.ceil(signRectWidth / tList.get(k).length());//宽度 / 字数 +// } +// if (fontSize < 12) fontSize = 12; +// else if (fontSize > 48) fontSize = 48; + + Font FontProve = new Font(baseFont, fontSize, 0); + Paragraph paragraph = new Paragraph(String.valueOf(tList.get(k)), FontProve); + PdfPCell cell = new PdfPCell(paragraph); + setStyle(cell, 1, rowHeight); + cell.setBorderWidth(0);//边框宽度 + table.addCell(cell); + } + } + + //将table添加到pdf对应区域 + table.writeSelectedRows(0, -1, signRect.getLeft(), signRect.getTop(), pcb); + } + } + + /** + * 为导入的模板文件相应字段文本域设置二维码 + * + * @param key 字段名 + * @param qrcodeCount 二维码数量 + * @param contentList 二维码内容 List + * @param form 表单 + * @param stamper 模板 + */ + private static void pdfFileAddTableInQRCode( + String key, int qrcodeCount, List contentList, + AcroFields form, PdfStamper stamper) { + // 表格类 + if (qrcodeCount < 1 || contentList.size() < 1) return;//判断二维码数量。 + qrcodeCount = Math.min(qrcodeCount, contentList.size()); + if (form.getFieldPositions(key) == null) return;//判断模板是否有设置该字段。 + int pageNo = form.getFieldPositions(key).get(0).page; + PdfContentByte pcb = stamper.getOverContent(pageNo);//获取文本域对应区域。 + Rectangle signRect = form.getFieldPositions(key).get(0).position;//文本域位置信息,定义一个矩形区域。 + float signRectHeight = signRect.getHeight(); + float signRectWidth = signRect.getWidth(); + float signRectArea = signRectHeight * signRectWidth;//总面积 + float imageArea = signRectArea / qrcodeCount;//二维码面积 + int imageSideLength = (int) Math.floor(Math.sqrt(imageArea));//开方 + if (qrcodeCount == 1) {//如果是单图,使用文本域最小边作为二维码边长。 + imageSideLength = (int) Math.floor(Math.min(signRectWidth, signRectHeight)); + } + + //表格位置 + int column = qrcodeCount <= 1 ? 1 : (int) Math.floor(signRectWidth / imageSideLength);//每行的列数 + int row = 1; + if (column < qrcodeCount) {//总数大于每行列数,计算行数。 + DecimalFormat df = new DecimalFormat("0.00"); + double d = Double.parseDouble(df.format((double) qrcodeCount / column)); + row = (int) Math.ceil(d); + } + PdfPTable table = new PdfPTable(column);//设置每行列数 + float cellWidth = signRectWidth / column;//列宽度,总宽度除以每行列数,如果直接除以图片宽度的话,图片位置会偏左。 + int rowHeight = (int) Math.floor(signRectHeight / row);//行高,总高除以行数。 + int imgSize = (int) Math.floor(Math.min(cellWidth, rowHeight) * 2);//宽和高哪个小选哪个作为二维码的边长。 +// imgSize = 100; + float[] width = new float[column]; + for (int i = 0; i < column; i++) { + width[i] = cellWidth; + } + try { + table.setTotalWidth(width);//设置每列宽度 + } catch (DocumentException e) { + e.printStackTrace(); + } + table.setLockedWidth(true);//宽度锁定 + table.setKeepTogether(true);//设置段落内容是否在一起,设置为true的话,不会把段落写到下一页 + //实现单元格跨页显示 + table.setSplitLate(false); + table.setSplitRows(true); + + int nowQRCodeCount = 0; + //表格数据填写 + for (int j = 0; j < row; j++) { + for (int k = 0; k < column; k++, nowQRCodeCount++) { + try { + Image image = null; + if (nowQRCodeCount < qrcodeCount) { + //生成PNG格式的二维码图片,以byte[]形式表示,宽和高都是 xxx 像素 + byte[] bytes = QrCodeUtil.generatePng(contentList.get(nowQRCodeCount), imgSize, imgSize); + image = Image.getInstance(bytes); + }//每一行的列都要设置内容,否则该行错位或不显示。 + PdfPCell cell = new PdfPCell(image, true); + setStyle(cell, 1, rowHeight); + cell.setBorderWidth(0);//边框宽度//超过总数的内容设置为空图片。 + table.addCell(cell); + } catch (BadElementException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + //将table添加到pdf对应区域 + table.writeSelectedRows(0, -1, signRect.getLeft(), signRect.getTop(), pcb); + } + + /** + * 使用代码的方式根据设置好的模板数据生成PDF + */ + public static void exportInoutOrderSuccessPDF( + InoutOrderDetailPDFCodeRequest inoutOrderDetailPDFCodeRequest, List erpOrderEntityList, + HttpServletRequest request, HttpServletResponse response) throws Exception { + //告诉浏览器用什么软件可以打开此文件 + response.setHeader("content-Type", "application/pdf"); + + //设置中文 + BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); + Font fontChineseSize12 = new Font(bfChinese, 12, Font.NORMAL); + Font fontChineseSize10 = new Font(bfChinese, 10, Font.NORMAL); + + Document document = new Document(PageSize.A4); + + PdfWriter.getInstance(document, response.getOutputStream()); + // 打开文档 + document.open(); + // 设置文档标题 + document.addTitle(inoutOrderDetailPDFCodeRequest.getOrderId()); + // 添加一个内容段落 +// document.add(new Paragraph("P D F 测 试", fontChineseSize12)); + //设置关键字 + document.addKeywords("iText"); + document.addLanguage("中文"); + + PdfPTable table = new PdfPTable(eIOSPDFInfoTotalColumn);//总列数 + table.setWidthPercentage(100); // 宽度100%填充 + table.setSpacingBefore(10f); // 前间距 + table.setSpacingAfter(10f); // 后间距 + + ITextPDFCellConfig iTextPDFCellConfig = new ITextPDFCellConfig(); + iTextPDFCellConfig.setKeyWidth(4); + iTextPDFCellConfig.setFont(fontChineseSize12); + iTextPDFCellConfig.setFixedHeight(20); + iTextPDFCellConfig.setTotalColumn(eIOSPDFInfoTotalColumn); + iTextPDFCellConfig.setCellMaxColumn(12); + iTextPDFCellConfig.setDisableBorderSide(15); + iTextPDFCellConfig.setHorizontalAlignment(1); + +// iTextPDFCellConfig.setValue("订 单 详 情"); +// PdfPTable titleTable = new PdfPTable(table); +// setITextPDFSegmentationCell(0, titleTable, iTextPDFCellConfig); +// document.add(titleTable); + + // 段落 + Paragraph paragraph = new Paragraph("订 单 详 情", fontChineseSize12); + paragraph.setAlignment(1); //设置文字居中 0靠左 1,居中 2,靠右 + paragraph.setIndentationLeft(12); //设置左缩进 + paragraph.setIndentationRight(12); //设置右缩进 +// paragraph.setFirstLineIndent(24); //设置首行缩进 + paragraph.setLeading(20f); //行间距 +// paragraph.setSpacingBefore(5f); //设置段落上空白 +// paragraph.setSpacingAfter(10f); //设置段落下空白 + document.add(paragraph); + + //直线 + Paragraph p1 = new Paragraph(); + p1.add(new Chunk(new LineSeparator())); + document.add(p1); + + InoutOrderDetailPDFCodeRequest.SettingData settingData = inoutOrderDetailPDFCodeRequest.getSettingData(); + + int useColspan = 0; + if (settingData.getOrderIdEnable()) { + iTextPDFCellConfig.setKey("订单ID:"); + iTextPDFCellConfig.setValue(inoutOrderDetailPDFCodeRequest.getOrderId()); + iTextPDFCellConfig.setValueWidth(settingData.getOrderIdWidth()); + useColspan = setITextPDFKeyValueCell( + useColspan, table, iTextPDFCellConfig); + } + + if (settingData.getActionEnable()) { + iTextPDFCellConfig.setKey("业务类型:"); + iTextPDFCellConfig.setValue(inoutOrderDetailPDFCodeRequest.getActionName()); + iTextPDFCellConfig.setValueWidth(settingData.getActionWidth()); + useColspan = setITextPDFKeyValueCell( + useColspan, table, iTextPDFCellConfig); + } + + if (settingData.getFromCorpEnable()) { + iTextPDFCellConfig.setKey("往来单位:"); + iTextPDFCellConfig.setValue(inoutOrderDetailPDFCodeRequest.getFromCorp()); + iTextPDFCellConfig.setValueWidth(settingData.getFromCorpWidth()); + useColspan = setITextPDFKeyValueCell( + useColspan, table, iTextPDFCellConfig); + } + + if (settingData.getFromTypeEnable()) { + iTextPDFCellConfig.setKey("订单来源:"); + iTextPDFCellConfig.setValue(inoutOrderDetailPDFCodeRequest.getFromType()); + iTextPDFCellConfig.setValueWidth(settingData.getFromTypeWidth()); + useColspan = setITextPDFKeyValueCell( + useColspan, table, iTextPDFCellConfig); + } + + iTextPDFCellConfig.setValue(" "); + useColspan = setITextPDFSegmentationCell(useColspan, table, iTextPDFCellConfig); + + iTextPDFCellConfig.setFont(fontChineseSize10); + + if (settingData.getNumberEnable()) { + iTextPDFCellConfig.setValueWidth(settingData.getNumberWidth()); + iTextPDFCellConfig.setValue("序号"); + setITextPDFTableCell(table, iTextPDFCellConfig); + } + if (settingData.getCoNameEnable()) { + iTextPDFCellConfig.setValueWidth(settingData.getCoNameWidth()); + iTextPDFCellConfig.setValue("产品通用名"); + setITextPDFTableCell(table, iTextPDFCellConfig); + } + if (settingData.getPackSpecEnable()) { + iTextPDFCellConfig.setValueWidth(settingData.getPackSpecWidth()); + iTextPDFCellConfig.setValue("包装规格"); + setITextPDFTableCell(table, iTextPDFCellConfig); + } + if (settingData.getBatchNoEnable()) { + iTextPDFCellConfig.setValueWidth(settingData.getBatchNoWidth()); + iTextPDFCellConfig.setValue("批次号"); + setITextPDFTableCell(table, iTextPDFCellConfig); + } + if (settingData.getCountEnable()) { + iTextPDFCellConfig.setValueWidth(settingData.getCountWidth()); + iTextPDFCellConfig.setValue("扫码数量"); + setITextPDFTableCell(table, iTextPDFCellConfig); + } + if (settingData.getProductCompanyEnable()) { + iTextPDFCellConfig.setValueWidth(settingData.getProductCompanyWidth()); + iTextPDFCellConfig.setValue("生产企业"); + setITextPDFTableCell(table, iTextPDFCellConfig); + } + if (settingData.getAuthCodeEnable()) { + iTextPDFCellConfig.setValueWidth(settingData.getAuthCodeWidth()); + iTextPDFCellConfig.setValue("批准文号"); + setITextPDFTableCell(table, iTextPDFCellConfig); + } + + iTextPDFCellConfig.setFixedHeight(40); + + for (int i = 0; i < erpOrderEntityList.size(); i++) { + ErpOrderEntity erpOrderEntity = erpOrderEntityList.get(i); + + if (settingData.getNumberEnable()) { + iTextPDFCellConfig.setValueWidth(settingData.getNumberWidth()); + iTextPDFCellConfig.setValue(i + ""); + setITextPDFTableCell(table, iTextPDFCellConfig); + } + if (settingData.getCoNameEnable()) { + iTextPDFCellConfig.setValueWidth(settingData.getCoNameWidth()); + iTextPDFCellConfig.setValue(erpOrderEntity.getCoName()); + setITextPDFTableCell(table, iTextPDFCellConfig); + } + if (settingData.getPackSpecEnable()) { + iTextPDFCellConfig.setValueWidth(settingData.getPackSpecWidth()); + iTextPDFCellConfig.setValue(erpOrderEntity.getPackSpec()); + setITextPDFTableCell(table, iTextPDFCellConfig); + } + if (settingData.getBatchNoEnable()) { + iTextPDFCellConfig.setValueWidth(settingData.getBatchNoWidth()); + iTextPDFCellConfig.setValue(erpOrderEntity.getBatchNo()); + setITextPDFTableCell(table, iTextPDFCellConfig); + } + if (settingData.getCountEnable()) { + iTextPDFCellConfig.setValueWidth(settingData.getCountWidth()); + iTextPDFCellConfig.setValue(erpOrderEntity.getCount() + ""); + setITextPDFTableCell(table, iTextPDFCellConfig); + } + if (settingData.getProductCompanyEnable()) { + iTextPDFCellConfig.setValueWidth(settingData.getProductCompanyWidth()); + iTextPDFCellConfig.setValue(erpOrderEntity.getProductCompany()); + setITextPDFTableCell(table, iTextPDFCellConfig); + } + if (settingData.getAuthCodeEnable()) { + iTextPDFCellConfig.setValueWidth(settingData.getAuthCodeWidth()); + iTextPDFCellConfig.setValue(erpOrderEntity.getAuthCode()); + setITextPDFTableCell(table, iTextPDFCellConfig); + } + } + + document.add(table); + + document.close(); + } + + /** + * 生成表格键值对及剩余宽度填充。 + * + * @param useColspan 当前行已使用宽度/列数 + * @param table 表格 + * @param iTextPDFCellConfig 单元格配置 + * @return 返回已使用当前行已使用宽度/列数 + */ + private static int setITextPDFKeyValueCell( + int useColspan, PdfPTable table, ITextPDFCellConfig iTextPDFCellConfig) { + + //判断所需宽度是否超过剩余宽度,超过就填充剩余宽度。 + if (iTextPDFCellConfig.getKeyWidth() + iTextPDFCellConfig.getValueWidth() > iTextPDFCellConfig.getTotalColumn() - useColspan) { + // 空格 填充 + PdfPCell cellFill = new PdfPCell(new Phrase(" ")); + cellFill.setColspan(iTextPDFCellConfig.getTotalColumn() - useColspan); // 所占列数 + setStyle(cellFill, iTextPDFCellConfig.getHorizontalAlignment(), iTextPDFCellConfig.getFixedHeight()); + cellFill.disableBorderSide(iTextPDFCellConfig.getDisableBorderSide()); + table.addCell(cellFill); + useColspan = 0; + } + + PdfPCell cell1 = new PdfPCell(new Phrase(iTextPDFCellConfig.getKey(), iTextPDFCellConfig.getFont())); + cell1.setColspan(iTextPDFCellConfig.getKeyWidth()); // 所占列数 + setStyle(cell1, iTextPDFCellConfig.getHorizontalAlignment(), iTextPDFCellConfig.getFixedHeight()); + cell1.disableBorderSide(iTextPDFCellConfig.getDisableBorderSide()); + table.addCell(cell1); + + PdfPCell cell2 = new PdfPCell(new Phrase(iTextPDFCellConfig.getValue(), iTextPDFCellConfig.getFont())); + cell2.setColspan(iTextPDFCellConfig.getValueWidth()); // 所占列数 + setStyle(cell2, iTextPDFCellConfig.getHorizontalAlignment(), iTextPDFCellConfig.getFixedHeight()); + cell2.disableBorderSide(iTextPDFCellConfig.getDisableBorderSide()); + table.addCell(cell2); + + useColspan = useColspan + iTextPDFCellConfig.getKeyWidth() + iTextPDFCellConfig.getValueWidth(); + + //判断使用宽度是否超过单个最大宽度,并小于总宽度,超过就填充剩余宽度。 + if (useColspan > iTextPDFCellConfig.getCellMaxColumn() && useColspan != iTextPDFCellConfig.getTotalColumn()) { + // 空格 填充 + PdfPCell cellFill = new PdfPCell(new Phrase(" ")); + cellFill.setColspan(iTextPDFCellConfig.getTotalColumn() - useColspan); // 所占列数 + setStyle(cellFill, iTextPDFCellConfig.getHorizontalAlignment(), iTextPDFCellConfig.getFixedHeight()); + cellFill.disableBorderSide(iTextPDFCellConfig.getDisableBorderSide()); + table.addCell(cellFill); + useColspan = 0; + } + useColspan = useColspan == iTextPDFCellConfig.getTotalColumn() ? 0 : useColspan; + + return useColspan; + } + + /** + * 生成表格分割行及剩余宽度填充。 + * + * @param useColspan 当前行已使用宽度/列数 + * @param table 表格 + * @param iTextPDFCellConfig 单元格配置 + * @return 返回已使用当前行已使用宽度/列数 + */ + private static int setITextPDFSegmentationCell( + int useColspan, PdfPTable table, ITextPDFCellConfig iTextPDFCellConfig) { + + //判断最后是否还有剩余,有就填充。 + if (useColspan > 0) { + // 空格 填充 + PdfPCell cellFill = new PdfPCell(new Phrase(" ", iTextPDFCellConfig.getFont())); + cellFill.setColspan(iTextPDFCellConfig.getTotalColumn() - useColspan); // 所占列数 + setStyle(cellFill, iTextPDFCellConfig.getHorizontalAlignment(), iTextPDFCellConfig.getFixedHeight()); + cellFill.disableBorderSide(iTextPDFCellConfig.getDisableBorderSide()); + table.addCell(cellFill); + useColspan = 0; + } + // 分割行 + PdfPCell cell = new PdfPCell(new Phrase(iTextPDFCellConfig.getValue(), iTextPDFCellConfig.getFont())); + cell.setColspan(iTextPDFCellConfig.getTotalColumn()); // 所占列数 + cell.disableBorderSide(iTextPDFCellConfig.getDisableBorderSide()); + setStyle(cell, iTextPDFCellConfig.getHorizontalAlignment(), iTextPDFCellConfig.getFixedHeight()); + table.addCell(cell); + + return useColspan; + } + + /** + * 生成表格单元格 + * + * @param table 表格 + * @param iTextPDFCellConfig 单元格配置 + * @return 返回已使用当前行已使用宽度/列数 + */ + private static void setITextPDFTableCell(PdfPTable table, ITextPDFCellConfig iTextPDFCellConfig) { + + PdfPCell cell = new PdfPCell(new Phrase(iTextPDFCellConfig.getValue(), iTextPDFCellConfig.getFont())); + cell.setColspan(iTextPDFCellConfig.getValueWidth()); // 所占列数 + setStyle(cell, iTextPDFCellConfig.getHorizontalAlignment(), iTextPDFCellConfig.getFixedHeight()); + table.addCell(cell); + } + + /** + * 设置样式 + * + * @param cell + */ + private static void setStyle(PdfPCell cell, int horizontalAlignment, int fixedHeight) { + cell.setFixedHeight(fixedHeight);//行高 + if (horizontalAlignment == 0) { + cell.setHorizontalAlignment(Element.ALIGN_LEFT);//设置水平靠左 + } else { + cell.setHorizontalAlignment(Element.ALIGN_CENTER);//设置水平居中 + } + cell.setVerticalAlignment(Element.ALIGN_MIDDLE);//设置垂直居中 + cell.setBorderWidth(1);//边框宽度 + cell.setLeading(0, (float) 1.0);////设置行间距 + } +} \ No newline at end of file diff --git a/api-admin/src/main/java/com/glxp/api/admin/util/QRCodeUtil.java b/api-admin/src/main/java/com/glxp/api/admin/util/QRCodeUtil.java new file mode 100644 index 00000000..f8e7fe36 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/util/QRCodeUtil.java @@ -0,0 +1,211 @@ +package com.glxp.api.admin.util; +import cn.hutool.core.util.StrUtil; +import com.google.zxing.BarcodeFormat; +import com.google.zxing.EncodeHintType; +import com.google.zxing.common.BitMatrix; +import com.google.zxing.qrcode.QRCodeWriter; +import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; +import com.itextpdf.xmp.impl.Base64; +import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; + +import javax.imageio.ImageIO; +import javax.servlet.ServletOutputStream; +import java.awt.*; +import java.awt.geom.RoundRectangle2D; +import java.awt.image.BufferedImage; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.net.URL; +import java.util.HashMap; + +/** + *

QRCodeUtil

+ * + * @author lvhaosir6 + * @version 1.0.0 + * @date 2020/7/8 + */ +@Slf4j +@UtilityClass +public class QRCodeUtil { + /** + * 默认宽度 + */ + private static final Integer WIDTH = 140; + /** + * 默认高度 + */ + private static final Integer HEIGHT = 140; + + /** + * LOGO 默认宽度 + */ + private static final Integer LOGO_WIDTH = 22; + /** + * LOGO 默认高度 + */ + private static final Integer LOGO_HEIGHT = 22; + + /** + * 图片格式 + */ + private static final String IMAGE_FORMAT = "png"; + private static final String CHARSET = "utf-8"; + /** + * 原生转码前面没有 data:image/png;base64 这些字段,返回给前端是无法被解析 + */ + private static final String BASE64_IMAGE = "data:image/png;base64,%s"; + + /** + * 生成二维码,使用默认尺寸 + * + * @param content 内容 + * @return + */ + public String getBase64QRCode(String content) { + return getBase64Image(content, WIDTH, HEIGHT, null, null, null); + } + + /** + * 生成二维码,使用默认尺寸二维码,插入默认尺寸logo + * + * @param content 内容 + * @param logoUrl logo地址 + * @return + */ + public String getBase64QRCode(String content, String logoUrl) { + return getBase64Image(content, WIDTH, HEIGHT, logoUrl, LOGO_WIDTH, LOGO_HEIGHT); + } + + /** + * 生成二维码 + * + * @param content 内容 + * @param width 二维码宽度 + * @param height 二维码高度 + * @param logoUrl logo 在线地址 + * @param logoWidth logo 宽度 + * @param logoHeight logo 高度 + * @return + */ + public String getBase64QRCode(String content, Integer width, Integer height, String logoUrl, Integer logoWidth, Integer logoHeight) { + return getBase64Image(content, width, height, logoUrl, logoWidth, logoHeight); + } + + private String getBase64Image(String content, Integer width, Integer height, String logoUrl, Integer logoWidth, Integer logoHeight) { + ByteArrayOutputStream os = new ByteArrayOutputStream(); + BufferedImage bufferedImage = crateQRCode(content, width, height, logoUrl, logoWidth, logoHeight); + try { + ImageIO.write(bufferedImage, IMAGE_FORMAT, os); + } catch (IOException e) { + log.error("[生成二维码,错误{}]", e); + } + // 转出即可直接使用 + return String.format(BASE64_IMAGE, Base64.encode(os.toByteArray())); + } + + + /** + * 生成二维码 + * + * @param content 内容 + * @param width 二维码宽度 + * @param height 二维码高度 + * @param logoUrl logo 在线地址 + * @param logoWidth logo 宽度 + * @param logoHeight logo 高度 + * @return + */ + private BufferedImage crateQRCode(String content, Integer width, Integer height, String logoUrl, Integer logoWidth, Integer logoHeight) { + if (StrUtil.isNotBlank(content)) { + ServletOutputStream stream = null; + HashMap hints = new HashMap<>(4); + // 指定字符编码为utf-8 + hints.put(EncodeHintType.CHARACTER_SET, CHARSET); + // 指定二维码的纠错等级为中级 + hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M); + // 设置图片的边距 + hints.put(EncodeHintType.MARGIN, 2); + try { + QRCodeWriter writer = new QRCodeWriter(); + BitMatrix bitMatrix = writer.encode(content, BarcodeFormat.QR_CODE, width, height, hints); + BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); + for (int x = 0; x < width; x++) { + for (int y = 0; y < height; y++) { + bufferedImage.setRGB(x, y, bitMatrix.get(x, y) ? 0xFF000000 : 0xFFFFFFFF); + } + } + if (StrUtil.isNotBlank(logoUrl)) { + insertLogo(bufferedImage, width, height, logoUrl, logoWidth, logoHeight); + } + return bufferedImage; + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (stream != null) { + try { + stream.flush(); + stream.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + } + return null; + } + + /** + * 二维码插入logo + * + * @param source 二维码 + * @param width 二维码宽度 + * @param height 二维码高度 + * @param logoUrl logo 在线地址 + * @param logoWidth logo 宽度 + * @param logoHeight logo 高度 + * @throws Exception + */ + private void insertLogo(BufferedImage source, Integer width, Integer height, String logoUrl, Integer logoWidth, Integer logoHeight) throws Exception { + // logo 源可为 File/InputStream/URL + Image src = ImageIO.read(new URL(logoUrl)); + // 插入LOGO + Graphics2D graph = source.createGraphics(); + int x = (width - logoWidth) / 2; + int y = (height - logoHeight) / 2; + graph.drawImage(src, x, y, logoWidth, logoHeight, null); + Shape shape = new RoundRectangle2D.Float(x, y, logoWidth, logoHeight, 6, 6); + graph.setStroke(new BasicStroke(3f)); + graph.draw(shape); + graph.dispose(); + } + + + /** + * 获取二维码 + * + * @param content 内容 + * @param output 输出流 + * @throws IOException + */ + public void getQRCode(String content, OutputStream output) throws IOException { + BufferedImage image = crateQRCode(content, WIDTH, HEIGHT, null, null, null); + ImageIO.write(image, IMAGE_FORMAT, output); + } + + /** + * 获取二维码 + * + * @param content 内容 + * @param logoUrl logo资源 + * @param output 输出流 + * @throws Exception + */ + public void getQRCode(String content, String logoUrl, OutputStream output) throws Exception { + BufferedImage image = crateQRCode(content, WIDTH, HEIGHT, logoUrl, LOGO_WIDTH, LOGO_HEIGHT); + ImageIO.write(image, IMAGE_FORMAT, output); + } + +} \ No newline at end of file diff --git a/api-admin/src/main/resources/mybatis/mapper/basic/BussinessTypeDao.xml b/api-admin/src/main/resources/mybatis/mapper/basic/BussinessTypeDao.xml index 4ce3dd82..73c2eefe 100644 --- a/api-admin/src/main/resources/mybatis/mapper/basic/BussinessTypeDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/basic/BussinessTypeDao.xml @@ -31,10 +31,10 @@ AND name LIKE concat(#{name},'%') - AND action LIKE concat(#{action},'%') + AND `action` LIKE concat(#{action},'%') - AND action LIKE concat(#{mainAction},'%') + AND mainAction LIKE concat(#{mainAction},'%') AND basic_third_sys.enabled =#{enabled} diff --git a/api-admin/src/main/resources/mybatis/mapper/basic/CorpExportLogDao.xml b/api-admin/src/main/resources/mybatis/mapper/basic/CorpExportLogDao.xml index 0f2df686..a11c41a2 100644 --- a/api-admin/src/main/resources/mybatis/mapper/basic/CorpExportLogDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/basic/CorpExportLogDao.xml @@ -17,7 +17,7 @@ AND `type` = #{type} - + ORDER BY updateTime DESC diff --git a/api-admin/src/main/resources/mybatis/mapper/basic/CorpImportLogDao.xml b/api-admin/src/main/resources/mybatis/mapper/basic/CorpImportLogDao.xml index c064a30b..458d6a89 100644 --- a/api-admin/src/main/resources/mybatis/mapper/basic/CorpImportLogDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/basic/CorpImportLogDao.xml @@ -17,7 +17,7 @@ AND status = #{status} - + ORDER BY updateTime DESC diff --git a/api-admin/src/main/resources/mybatis/mapper/basic/UdiInfoExportLogDao.xml b/api-admin/src/main/resources/mybatis/mapper/basic/UdiInfoExportLogDao.xml index d10ec581..05837caf 100644 --- a/api-admin/src/main/resources/mybatis/mapper/basic/UdiInfoExportLogDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/basic/UdiInfoExportLogDao.xml @@ -17,7 +17,7 @@ AND `type` = #{type} - + ORDER BY updateTime DESC diff --git a/api-admin/src/main/resources/mybatis/mapper/basic/UdiInfoImportLogDao.xml b/api-admin/src/main/resources/mybatis/mapper/basic/UdiInfoImportLogDao.xml index 6721bccc..20e9c5d7 100644 --- a/api-admin/src/main/resources/mybatis/mapper/basic/UdiInfoImportLogDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/basic/UdiInfoImportLogDao.xml @@ -20,7 +20,7 @@ AND thirdSysFk = #{thirdSysFk} - + ORDER BY updateTime DESC diff --git a/api-admin/src/main/resources/mybatis/mapper/info/SystemPDFModuleDao.xml b/api-admin/src/main/resources/mybatis/mapper/info/SystemPDFModuleDao.xml new file mode 100644 index 00000000..b011e371 --- /dev/null +++ b/api-admin/src/main/resources/mybatis/mapper/info/SystemPDFModuleDao.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + UPDATE system_pdf_module + + name=#{name}, + param=#{param}, + fieldExplain=#{fieldExplain}, + remark=#{remark}, + templateId=#{templateId}, + create_time=#{create_time}, + update_time=#{update_time}, + + WHERE id=#{id} + + + + insert INTO system_pdf_module(name,param,fieldExplain,remark,templateId,create_time,update_time + ) values + ( + #{name}, + #{param}, + #{fieldExplain}, + #{templateId}, + #{remark}, + #{create_time}, + #{update_time} + ) + + + + + + delete from system_pdf_module where id = #{id} + + \ No newline at end of file diff --git a/api-admin/src/main/resources/mybatis/mapper/info/SystemPDFTemplateDao.xml b/api-admin/src/main/resources/mybatis/mapper/info/SystemPDFTemplateDao.xml new file mode 100644 index 00000000..1d1aaa18 --- /dev/null +++ b/api-admin/src/main/resources/mybatis/mapper/info/SystemPDFTemplateDao.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + UPDATE system_pdf_template + + name=#{name}, + type=#{type}, + module=#{module}, + param=#{param}, + path=#{path}, + rowCount=#{rowCount}, + qrcodeCount=#{qrcodeCount}, + remark=#{remark}, + create_time=#{create_time}, + update_time=#{update_time}, + + WHERE id=#{id} + + + + insert INTO system_pdf_template(name, + type,module,param,path,rowCount,qrcodeCount,remark,create_time,update_time + ) values + ( + #{name}, + #{type}, + #{module}, + #{param}, + #{path}, + #{rowCount}, + #{qrcodeCount}, + #{remark}, + #{create_time}, + #{update_time} + ) + + + + + + delete from system_pdf_template where id = #{id} + + \ No newline at end of file diff --git a/api-admin/src/main/resources/mybatis/mapper/info/SystemPDFTemplateRelevanceDao.xml b/api-admin/src/main/resources/mybatis/mapper/info/SystemPDFTemplateRelevanceDao.xml new file mode 100644 index 00000000..4b08d1bc --- /dev/null +++ b/api-admin/src/main/resources/mybatis/mapper/info/SystemPDFTemplateRelevanceDao.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + INSERT INTO system_pdf_template_relevance + (template_id, customerId) + VALUES + + + (#{item.template_id}, #{item.customerId}) + + + + + + INSERT INTO system_pdf_template_relevance + (template_id,customerId,admin_id) + values + ( + #{template_id}, + #{customerId}, + #{admin_id} + ) + + + + delete from system_pdf_template_relevance where customerId = #{customerId} + + + \ No newline at end of file diff --git a/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrCorpExportLogDao.xml b/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrCorpExportLogDao.xml index 01643803..60cec696 100644 --- a/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrCorpExportLogDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrCorpExportLogDao.xml @@ -17,7 +17,7 @@ AND `type` = #{type} - + ORDER BY updateTime DESC diff --git a/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrCorpImportLogDao.xml b/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrCorpImportLogDao.xml index e6411a21..89801e13 100644 --- a/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrCorpImportLogDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrCorpImportLogDao.xml @@ -17,7 +17,7 @@ AND status = #{status} - + ORDER BY updateTime DESC diff --git a/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrInvProductsExportLogDao.xml b/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrInvProductsExportLogDao.xml index 47d68535..1bfa2c67 100644 --- a/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrInvProductsExportLogDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrInvProductsExportLogDao.xml @@ -17,7 +17,7 @@ AND `type` = #{type} - + ORDER BY updateTime DESC diff --git a/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrInvProductsImportLogDao.xml b/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrInvProductsImportLogDao.xml index 72931891..9a222d09 100644 --- a/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrInvProductsImportLogDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrInvProductsImportLogDao.xml @@ -17,7 +17,7 @@ AND status = #{status} - + ORDER BY updateTime DESC diff --git a/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrOrderExportLogDao.xml b/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrOrderExportLogDao.xml index 45eb81b1..41c06c0a 100644 --- a/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrOrderExportLogDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrOrderExportLogDao.xml @@ -17,7 +17,7 @@ AND `type` = #{type} - + ORDER BY updateTime DESC diff --git a/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrOrderImportLogDao.xml b/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrOrderImportLogDao.xml index 51a66f06..62bd0c6e 100644 --- a/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrOrderImportLogDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrOrderImportLogDao.xml @@ -17,7 +17,7 @@ AND status = #{status} - + ORDER BY updateTime DESC diff --git a/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrProductsExportLogDao.xml b/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrProductsExportLogDao.xml index d6dab2d8..c9a8fa7f 100644 --- a/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrProductsExportLogDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrProductsExportLogDao.xml @@ -17,7 +17,7 @@ AND `type` = #{type} - + ORDER BY updateTime DESC diff --git a/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrProductsImportLogDao.xml b/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrProductsImportLogDao.xml index f9dc01f8..af6cea0f 100644 --- a/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrProductsImportLogDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrProductsImportLogDao.xml @@ -17,7 +17,7 @@ AND status = #{status} - + ORDER BY updateTime DESC